Files
roi-theme/wp-content/plugins/wp-ultimate-csv-importer/importExtensions/WooCommerceMetaImport.php
root a22573bf0b Commit inicial - WordPress Análisis de Precios Unitarios
- WordPress core y plugins
- Tema Twenty Twenty-Four configurado
- Plugin allow-unfiltered-html.php simplificado
- .gitignore configurado para excluir wp-config.php y uploads

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 21:04:30 -06:00

2060 lines
73 KiB
PHP
Executable File

<?php
/******************************************************************************************
* Copyright (C) Smackcoders. - All Rights Reserved under Smackcoders Proprietary License
* Unauthorized copying of this file, via any medium is strictly prohibited
* Proprietary and confidential
* You can contact Smackcoders at email address info@smackcoders.com.
*******************************************************************************************/
namespace Smackcoders\FCSV;
use Smackcoders\FCSV\CoreFieldsImport;
use Smackcoders\FCSV\MediaHandling;
if ( ! defined( 'ABSPATH' ) )
exit; // Exit if accessed directly
class WooCommerceMetaImport {
private static $woocommerce_meta_instance = null,$media_instance;
public static function getInstance() {
if (WooCommerceMetaImport::$woocommerce_meta_instance == null) {
WooCommerceMetaImport::$woocommerce_meta_instance = new WooCommerceMetaImport;
WooCommerceMetaImport::$media_instance = new MediaHandling;
return WooCommerceMetaImport::$woocommerce_meta_instance;
}
return WooCommerceMetaImport::$woocommerce_meta_instance;
}
public function woocommerce_meta_import_function ($data_array, $image_meta, $pID, $variation_id ,$import_type , $line_number , $mode, $header_array , $value_array , $core_array, $hash_key,$gmode,$templatekey) {
global $wpdb;
$core_instance = CoreFieldsImport::getInstance();
$variation_instance = CoreFieldsImport::getInstance();
global $core_instance;
$metaData = array();
$variationData = array();
$order_item = array();
if(($import_type == 'WooCommerce Product') && isset($core_array['PRODUCTSKU'])){
$metaData['_sku'] = $core_array['PRODUCTSKU'];
$core_instance->detailed_log[$line_number][' SKU'] = $core_array['PRODUCTSKU'];
}
if(($import_type == 'WooCommerce Product Variations') && isset($core_array['VARIATIONSKU'])){
$metaData['_sku'] = $core_array['VARIATIONSKU'];
$core_instance->detailed_log[$line_number][' SKU'] = $core_array['VARIATIONSKU'];
}
foreach ($data_array as $ekey => $eval) {
switch ($ekey) {
case 'stock_qty' :
$metaData['_stock'] = $data_array[$ekey];
if(!empty($metaData['_stock']) && is_numeric($metaData['_stock'])){
$stock_status = '';
if ($metaData['_stock'] >= 1) {
$stock_status = 'instock';
$wpdb->get_results("UPDATE {$wpdb->prefix}wc_product_meta_lookup SET stock_status = 'instock' WHERE product_id = $pID");
}
$metaData['_stock_status'] = $stock_status;
$metaData['_manage_stock'] = 'yes';
}
else{
$metaData['_stock_status'] = 'outofstock';
$metaData['_manage_stock'] = 'no';
$wpdb->get_results("UPDATE {$wpdb->prefix}wc_product_meta_lookup SET stock_status = 'outofstock' WHERE product_id = $pID");
}
break;
case 'visibility' :
$plugininfo = get_plugin_data( WP_PLUGIN_DIR .'/'.'woocommerce/woocommerce.php');
$versionOfWoocom = $plugininfo['Version'];
$visibility = '';
if ($data_array[$ekey] == 1) {
$visibility = 'visible';
}
if ($data_array[$ekey] == 2) {
$visibility = 'catalog';
}
if ($data_array[$ekey] == 3) {
$visibility = 'search';
}
if ($data_array[$ekey] == 4) {
$visibility = 'hidden';
}
if(empty($data_array[$ekey])){
$visibility = 'visible';
}
if($versionOfWoocom >= 3){
if ($product = wc_get_product($pID)) {
$product->set_catalog_visibility($visibility);
$product->save();
}
}
else
$metaData['_visibility'] = $visibility;
break;
case 'stock_status' :
if(is_numeric($data_array[$ekey])){
$stock_status = '';
if ($data_array[$ekey] == 1) {
$stock_status = 'instock';
$metaData['_manage_stock'] = 'yes';
}
elseif ($data_array[$ekey] == 2) {
$stock_status = 'outofstock';
$metaData['_manage_stock'] = 'no';
}
$wpdb->get_results("UPDATE {$wpdb->prefix}wc_product_meta_lookup SET stock_status = '$stock_status' WHERE product_id = $pID");
$metaData['_stock_status'] = $stock_status;
}
else{
$metaData['_stock_status'] = $data_array[$ekey];
}
break;
case 'downloadable' :
$metaData['_downloadable'] = $data_array[$ekey];
break;
case 'virtual' :
$metaData['_virtual'] = $data_array[$ekey];
break;
case 'product_image_gallery' :
$plugin = 'product';
if(!empty($data_array[$ekey])){
if (strpos($data_array[$ekey], ',') !== false) {
$get_all_gallery_images = explode(',', $data_array[$ekey]);
} elseif (strpos($data_array[$ekey], '|') !== false) {
$get_all_gallery_images = explode('|', $data_array[$ekey]);
}
else{
$get_all_gallery_images[] = $data_array[$ekey];
}
$gallery_image_ids = '';
foreach($get_all_gallery_images as $gallery_image) {
WooCommerceMetaImport::$media_instance->store_image_ids($i=1);
if(is_numeric($gallery_image)) {
$attachids[]=$gallery_image;
$gallery_image_ids .= $gallery_image . ',';
} else {
$attachmentId = WooCommerceMetaImport::$media_instance->image_meta_table_entry($image_meta, $pID, 'product_image_gallery', $gallery_image, $hash_key, 'product', 'post',$templatekey,$gmode);
$atachids[]=$attachmentId;
$gallery_image_ids .= $attachmentId . ',';
}
}
//update_image_meta
$get_existing_image_option = get_option('smack_schedule_image_exists_product_'.$pID);
if($get_existing_image_option){
WooCommerceMetaImport::$media_instance->acfimageMetaImports($atachids, $image_meta, $plugin);
delete_option('smack_schedule_image_exists_product_'.$pID);
}
//WooCommerceMetaImport::$media_instance->acfimageMetaImports($attachids,$image_meta,$plugin);
$product_image_gallery[$ekey] = $gallery_image_ids;
}
break;
case 'regular_price' :
$metaData['_regular_price'] = $data_array[$ekey];
if(empty($metaData['_regular_price'])){
global $wpdb;
$price = $wpdb->get_var("SELECT meta_value FROM ".$wpdb->prefix."postmeta WHERE meta_key = '_price' AND post_id = $pID");
$metaData['_price'] = $price;
if($import_type == 'WooCommerce Product Variations'){
if($metaData['_price']){
$metaData['_price'] = $metaData['_price'];
}
else{
$metaData['_price'] = $data_array[$ekey];
}
}
if($import_type == 'WooCommerce Product'){
if($metaData['_price']){
$metaData['_price'] = $metaData['_price'];
}
else{
$metaData['_price'] = $data_array[$ekey];
}
}
}
else{
global $wpdb;
$saleprice = $wpdb->get_var("SELECT meta_value FROM ".$wpdb->prefix."postmeta WHERE meta_key = '_sale_price' AND post_id = $pID");
if($import_type == 'WooCommerce Product Variations'){
if($saleprice){
$metaData['_price'] = $saleprice;
}
else{
$metaData['_price'] = $data_array[$ekey];
}
}
if($import_type == 'WooCommerce Product'){
if($saleprice){
$metaData['_price'] = $saleprice;
}
else{
$metaData['_price'] = $data_array[$ekey];
}
}
}
break;
case 'sale_price' :
if($mode == 'Update'){
if(empty($data_array[$ekey])){
$metaData['_price']=$metaData['_regular_price'];
delete_post_meta( $pID, '_sale_price' );
}
else{
$metaData['_price'] =$data_array[$ekey];
$metaData['_sale_price'] = $data_array[$ekey];
}
}
else{
$metaData['_price'] =$data_array[$ekey];
$metaData['_sale_price'] = $data_array[$ekey];
}
break;
case 'pb_regular_price' :
$metaData['_wc_pb_base_regular_price'] = $data_array[$ekey];
break;
case 'pb_sale_price' :
$metaData['_wc_pb_base_sale_price'] = $data_array[$ekey];
break;
case 'tax_status' :
$tax_status = '';
if ($data_array[$ekey] == 1) {
$tax_status = 'taxable';
}
if ($data_array[$ekey] == 2) {
$tax_status = 'shipping';
}
if ($data_array[$ekey] == 3) {
$tax_status = 'none';
}
$metaData['_tax_status'] = $tax_status;
break;
case 'tax_class' :
$metaData['_tax_class']=$data_array[$ekey];
break;
case 'purchase_note' :
$metaData['_purchase_note'] = $data_array[$ekey];
break;
case 'featured_product' :
if ($product = wc_get_product($pID)) {
$product->set_featured( $data_array[$ekey] );
$product->save();
}
break;
case 'product_bundle_items':
if ($data_array[$ekey]) {
$bundle_product_ids = explode('|', $data_array[$ekey]);
$bundle_product_table = $wpdb->prefix . 'woocommerce_bundled_items';
foreach($bundle_product_ids as $product_id){
if(is_numeric($product_id)){
$product_id = $product_id;
}
else{
$product_id = $wpdb->get_var("SELECT ID FROM {$wpdb->prefix}posts WHERE post_type = 'product' AND post_title = '$product_id' order by ID Desc ");
}
$wpdb->insert($bundle_product_table, array('product_id' => $product_id, 'bundle_id' => $pID));
}
break;
}
break;
case '_wc_pb_virtual_bundle':
$metaData['_wc_pb_virtual_bundle']=$data_array[$ekey];
break;
case '_wc_pb_virtual_bundle':
$metaData['_wc_pb_virtual_bundle']=$data_array[$ekey];
break;
case '_wc_pb_virtual_bundle':
$metaData['_wc_pb_virtual_bundle']=$data_array[$ekey];
break;
case 'layout' :
$layout_status = '';
if ($data_array[$ekey] == 'Standard') {
$layout_status = 'default';
}
if ($data_array[$ekey] == 'Tabular') {
$layout_status = 'tabular';
}
if ($data_array[$ekey] == 'Grid') {
$layout_status = 'grid';
}
$metaData['_wc_pb_layout_style'] = $layout_status;
break;
case 'form_location' :
$form_location_status = '';
if ($data_array[$ekey] == 'Default') {
$form_location_status = 'default';
}
if ($data_array[$ekey] == 'Before Tabs') {
$form_location_status = 'after_summary';
}
$metaData['_wc_pb_add_to_cart_form_location'] = $form_location_status;
break;
case 'item_grouping' :
$item_grouping_status = '';
if ($data_array[$ekey] == 'Grouped') {
$item_grouping_status = 'parent';
}
if ($data_array[$ekey] == 'Flat') {
$item_grouping_status = 'noindent';
}
if ($data_array[$ekey] == 'None') {
$item_grouping_status = 'none';
}
$metaData['_wc_pb_group_mode'] = $item_grouping_status;
break;
case 'edit_in_cart' :
$edit_cart_status = '';
if ($data_array[$ekey] == 'Yes') {
$edit_cart_status = 'yes';
}
if ($data_array[$ekey] == 'No') {
$edit_cart_status = 'no';
}
$metaData['_wc_pb_edit_in_cart'] = $edit_cart_status;
break;
case 'optional':
case 'priced_individually' :
case 'override_title' :
case 'override_description' :
case 'hide_thumbnail' :
if ($data_array[$ekey]) {
$bundle_product_ids = explode('|', $data_array[$ekey]);
$bundle_product_table = $wpdb->prefix . 'woocommerce_bundled_itemmeta';
$bundle_meta = $wpdb->prepare("SELECT bundled_item_id FROM {$wpdb->prefix}woocommerce_bundled_items where bundle_id = %d", $pID);
$bundle_meta_result = $wpdb->get_results($bundle_meta);
for($i = 0; $i < count($bundle_meta_result); $i++){
$bundle_meta_id = $bundle_meta_result[$i]->bundled_item_id;
$bundle_meta_value = isset($bundle_product_ids[$i])?$bundle_product_ids[$i]:'';
if ($bundle_meta_value == 'Yes') {
$bundle_meta_values = 'yes';
}
if ($bundle_meta_value == 'No') {
$bundle_meta_values = 'no';
}
$wpdb->insert($bundle_product_table, array('bundled_item_id' => $bundle_meta_id ,'meta_key' => $ekey,'meta_value' => $bundle_meta_values));
}
break;
}
break;
case 'single_product_visibility' :
case 'cart_visibility' :
case 'order_visibility' :
case 'single_product_price_visibility' :
case 'cart_price_visibility' :
case 'order_price_visibility' :
if ($data_array[$ekey]) {
$bundle_product_ids = explode('|', $data_array[$ekey]);
$bundle_product_table = $wpdb->prefix . 'woocommerce_bundled_itemmeta';
$bundle_meta = $wpdb->prepare("SELECT bundled_item_id FROM {$wpdb->prefix}woocommerce_bundled_items where bundle_id = %d", $pID);
$bundle_meta_result = $wpdb->get_results($bundle_meta);
for($i = 0; $i < count($bundle_meta_result); $i++){
$bundle_meta_id = $bundle_meta_result[$i]->bundled_item_id;
$bundle_meta_value = isset($bundle_product_ids[$i])?$bundle_product_ids[$i]:'';
if ($bundle_meta_value == 'Yes') {
$bundle_meta_values = 'visible';
}
if ($bundle_meta_value == 'No') {
$bundle_meta_values = 'hidden';
}
$wpdb->insert($bundle_product_table, array('bundled_item_id' => $bundle_meta_id ,'meta_key' => $ekey,'meta_value' => $bundle_meta_values));
}
break;
}
break;
case 'quantity_min' :
case 'quantity_max' :
case 'discount' :
if ($data_array[$ekey]) {
$bundle_product_ids = explode('|', $data_array[$ekey]);
$bundle_product_table = $wpdb->prefix . 'woocommerce_bundled_itemmeta';
$bundle_meta = $wpdb->prepare("SELECT bundled_item_id FROM {$wpdb->prefix}woocommerce_bundled_items where bundle_id = %d", $pID);
$bundle_meta_result = $wpdb->get_results($bundle_meta);
for($i = 0; $i < count($bundle_meta_result); $i++){
$bundle_meta_id = $bundle_meta_result[$i]->bundled_item_id;
$bundle_meta_value = isset($bundle_product_ids[$i])?$bundle_product_ids[$i]:'';
$wpdb->insert($bundle_product_table, array('bundled_item_id' => $bundle_meta_id ,'meta_key' => $ekey,'meta_value' => $bundle_meta_value));
}
break;
}
break;
case 'override_title_value' :
if ($data_array[$ekey]) {
$bundle_product_ids = explode('|', $data_array[$ekey]);
$bundle_product_table = $wpdb->prefix . 'woocommerce_bundled_itemmeta';
$bundle_meta = $wpdb->prepare("SELECT bundled_item_id FROM {$wpdb->prefix}woocommerce_bundled_items where bundle_id = %d", $pID);
$bundle_meta_result = $wpdb->get_results($bundle_meta);
for($i = 0; $i < count($bundle_meta_result); $i++){
$bundle_meta_id = $bundle_meta_result[$i]->bundled_item_id;
$bundle_meta_value = isset($bundle_product_ids[$i])?$bundle_product_ids[$i]:'';
$wpdb->insert($bundle_product_table, array('bundled_item_id' => $bundle_meta_id ,'meta_key' => 'title','meta_value' => $bundle_meta_value));
}
break;
}
break;
case 'override_description_value' :
if ($data_array[$ekey]) {
$bundle_product_ids = explode('|', $data_array[$ekey]);
$bundle_product_table = $wpdb->prefix . 'woocommerce_bundled_itemmeta';
$bundle_meta = $wpdb->prepare("SELECT bundled_item_id FROM {$wpdb->prefix}woocommerce_bundled_items where bundle_id = %d", $pID);
$bundle_meta_result = $wpdb->get_results($bundle_meta);
for($i = 0; $i < count($bundle_meta_result); $i++){
$bundle_meta_id = $bundle_meta_result[$i]->bundled_item_id;
$bundle_meta_value = isset($bundle_product_ids[$i])?$bundle_product_ids[$i]:'';
$wpdb->insert($bundle_product_table, array('bundled_item_id' => $bundle_meta_id ,'meta_key' => 'description','meta_value' => $bundle_meta_value));
}
break;
}
break;
case 'variation_description':
$metaData['_variation_description'] = $data_array[$ekey];
break;
case 'weight' :
$metaData['_weight'] = $data_array[$ekey];
break;
case 'length' :
$metaData['_length'] = $data_array[$ekey];
break;
case 'width' :
$metaData['_width'] = $data_array[$ekey];
break;
case 'height' :
$metaData['_height'] = $data_array[$ekey];
break;
case 'product_attribute_name' :
$attribute_names[$ekey] = $data_array[$ekey];
break;
case 'product_attribute_value' :
$attribute_values[$ekey] = $data_array[$ekey];
break;
case 'product_attribute_visible' :
$attribute_visible[$ekey] = $data_array[$ekey];
break;
case 'product_attribute_variation' :
$attribute_variation[$ekey] = $data_array[$ekey];
break;
case 'product_attribute_position' :
$attribute_position[$ekey] = $data_array[$ekey];
break;
case 'product_attribute_taxonomy' :
$attribute_taxonomy[$ekey] = $data_array[$ekey];
break;
case 'sale_price_dates_from' :
$metaData['_sale_price_dates_from'] = $data_array[$ekey];
break;
case 'sale_price_dates_to' :
$metaData['_sale_price_dates_to'] = $data_array[$ekey];
break;
case 'backorders' :
$backorders = '';
if ($data_array[$ekey] == 1) {
$backorders = 'no';
}
if ($data_array[$ekey] == 2) {
$backorders = 'notify';
}
if ($data_array[$ekey] == 3) {
$backorders = 'yes';
}
$metaData['_backorders'] = $backorders;
break;
case 'manage_stock' :
$metaData['_manage_stock'] = $data_array[$ekey];
break;
case 'low_stock_threshold' :
$metaData['_low_stock_amount'] = $data_array[$ekey];
break;
case 'file_paths' :
$metaData['_file_paths'] = $data_array[$ekey];
break;
case 'download_limit' :
$metaData['_download_limit'] = $data_array[$ekey];
break;
case 'comment_status' :
$status = $data_array[$ekey];
$wpdb->get_results("UPDATE {$wpdb->prefix}posts SET comment_status = '$status' WHERE id = '$pID' ");
break;
case 'menu_order' :
$menu_order = $data_array[$ekey];
$wpdb->get_results("UPDATE {$wpdb->prefix}posts SET menu_order = '$menu_order' WHERE id = '$pID' ");
break;
case 'download_expiry' :
$metaData['_download_expiry'] = $data_array[$ekey];
break;
case 'download_type' :
$metaData['_download_type'] = $data_array[$ekey];
break;
case 'product_url' :
$metaData['_product_url'] = $data_array[$ekey];
break;
case 'button_text' :
$metaData['_button_text'] = $data_array[$ekey];
break;
case 'product_type' :
$product_type = 'simple';
if ($data_array[$ekey] == 1) {
$product_type = 'simple';
}
if ($data_array[$ekey] == 2) {
$product_type = 'grouped';
}
if ($data_array[$ekey] == 3) {
$product_type = 'external';
}
if ($data_array[$ekey] == 4) {
$product_type = 'variable';
}
if ($data_array[$ekey] == 5) {
$product_type = 'subscription';
}
if ($data_array[$ekey] == 6) {
$product_type = 'variable-subscription';
}
if ($data_array[$ekey] == 7) {
$product_type = 'bundle';
}
$core_instance->detailed_log[$line_number][' Type of Product'] = $product_type;
wp_set_object_terms($pID, $product_type, 'product_type');
break;
case 'product_shipping_class' :
case 'variation_shipping_class' :
$class_name = $data_array[$ekey];
$class = $wpdb->get_results("SELECT term_id FROM {$wpdb->prefix}terms where name = '{$class_name}' ");
if(!empty($class)) {
$class_id = $class[0]->term_id;
if ($product = wc_get_product($pID)) {
$product->set_shipping_class_id($class_id);
$product->save();
}
}
break;
case 'sold_individually' :
$metaData['_sold_individually'] = $data_array[$ekey];
break;
case 'default_attributes' :
if ($data_array[$ekey]) {
$dattribute = explode(',',$data_array[$ekey]);
foreach($dattribute as $dattrkey){
$def_attribute = explode('|',$dattrkey);
$def_attr_label = $def_attribute[0];
$attri_name = $wpdb->get_results( "SELECT attribute_name FROM {$wpdb->prefix}woocommerce_attribute_taxonomies where attribute_label = '$def_attr_label' ");
$def_attribute_lower = 'pa_' . $attri_name[0]->attribute_name;
$default_attribute_value = $def_attribute[1];
$def_attri_value = $wpdb->get_var("SELECT slug FROM {$wpdb->prefix}terms WHERE name = '$default_attribute_value' ");
$defAttribute[$def_attribute_lower] = $def_attri_value;
}
}
break;
case 'custom_attributes' :
if ($data_array[$ekey]) {
$cust_att_value=$data_array[$ekey];
$excerpt = [];
$vartitle = [];
$cusattribute = explode(',',$cust_att_value);
foreach($cusattribute as $cusattrkey){
$cus_attribute = explode('|',$cusattrkey);
$cus_attribute_label = $cus_attribute[0];
$attri_name = $wpdb->get_results( "SELECT attribute_name FROM {$wpdb->prefix}woocommerce_attribute_taxonomies where attribute_label = '$cus_attribute_label' ");
$custom_attributes_name='attribute_pa_'.$attri_name[0]->attribute_name;
$cus_attribute_lower = 'pa_' . $attri_name[0]->attribute_name;
$cus_attribute_value = $cus_attribute[1];
$cus_attri_value = $wpdb->get_var("SELECT slug FROM {$wpdb->prefix}terms WHERE name = '$cus_attribute_value' ");
$result = update_post_meta($pID, $custom_attributes_name, $cus_attri_value);
if($result){
$excerpt[] = $attri_name[0]->attribute_name . ': ' . $cus_attri_value;
$vartitle[] = $cus_attri_value;
}
if(empty($cus_attri_value)){
$cus_attri_value = '';
}
$cusAttribute[$cus_attribute_lower] = $cus_attri_value;
}
//Update the post table after variation meta
$product_id = $wpdb->get_var("select post_parent from {$wpdb->prefix}posts where id = $pID");
if($product_id && !empty($vartitle) && !empty($excerpt)){
$excerpt = implode(", ",$excerpt);
$vartitle = implode(", ",$vartitle);
$title = $wpdb->get_var("select post_title from {$wpdb->prefix}posts where id = $product_id");
$title = $title . " - " . $vartitle;
$wpdb->update( $wpdb->prefix . 'posts' ,
array(
'post_title' => $title,
'post_excerpt' => $excerpt
) ,
array( 'id' => $pID, //variable id
)
);
}
}
break;
case 'product_tag' :
$tags[$ekey] = $data_array[$ekey];
$core_instance->detailed_log[$line_number][' Tags'] = $data_array[$ekey];
break;
case 'product_category' :
$categories[$ekey] = $data_array[$ekey];
$core_instance->detailed_log[$line_number][' Categories'] = $data_array[$ekey];
break;
case 'downloadable_files' :
$downloadable_files = '';
if ($data_array[$ekey]) {
$exp_key = array();
$exploded_file_data = explode('|', $data_array[$ekey]);
foreach($exploded_file_data as $file_datas){
$exploded_separate = explode(',', $file_datas);
$convert_value = $exploded_separate[1];
$file_name = hash_hmac('md5', "$convert_value" , 'secret');
$exp_key[$file_name]['id'] = $file_name;
$exp_key[$file_name]['name'] = $exploded_separate[0];
$exp_key[$file_name]['file'] = $exploded_separate[1];
$downloadable_files = $exp_key;
}
}
$metaData['_downloadable_files'] = $downloadable_files;
break;
case 'crosssell_ids' :
$crosssellids = '';
if ($data_array[$ekey]) {
$exploded_crosssell_ids = explode(',', $data_array[$ekey]);
$crosssellids = $exploded_crosssell_ids;
}
if (is_array($crosssellids) || is_object($crosssellids)){
foreach($crosssellids as $crosssell_ids){
if(is_numeric($crosssell_ids)){
$product_id = $crosssell_ids;
}
else{
$product_id = $wpdb->get_var("SELECT ID FROM {$wpdb->prefix}posts WHERE post_type = 'product' AND post_title = '$crosssell_ids' order by ID Desc ");
}
$crosssell_id[]=$product_id;
}
$metaData['_crosssell_ids'] = $crosssell_id;
}
break;
case 'upsell_ids' :
$upcellids = '';
if ($data_array[$ekey]) {
$exploded_upsell_ids = explode(',', $data_array[$ekey]);
$upcellids = $exploded_upsell_ids;
}
if (is_array($upcellids) || is_object($upcellids)){
foreach($upcellids as $upsell_ids){
if(is_numeric($upsell_ids)){
$product_id = $upsell_ids;
}
else{
$product_id = $wpdb->get_var("SELECT ID FROM {$wpdb->prefix}posts WHERE post_type = 'product' AND post_title = '$upsell_ids' order by ID Desc ");
}
$upsell_id[]=$product_id;
}
$metaData['_upsell_ids'] = $upsell_id;
}
break;
case 'thumbnail_id' :
if (is_numeric($data_array[$ekey])) {
$metaData['_thumbnail_id'] = $data_array[$ekey];
}else{
}
break;
//WooCommerce Chained Products Fields
case 'chained_product_detail' :
$arr = array();
$cpid_key = array();
if ($data_array[$ekey]) {
$chainedid = explode('|', $data_array[$ekey]);
foreach ($chainedid as $unitid ) {
$id = $unitid;
$chainedunit = explode(',',$unitid);
if(is_numeric($chainedunit[0])){
$chainid = trim($chainedunit[0]);
$unit = ltrim($chainedunit[1],' ');
$query_result = $wpdb->get_results($wpdb->prepare("select post_title from {$wpdb->prefix}posts where ID = %d",$chainedunit[0]));
$product_name = $query_result[0]->post_title;
$cpid_key[$chainid]['unit'] = $unit;
$cpid_key[$chainid]['product_name'] = $product_name;
$cpid_key[$chainid]['priced_individually'] = 'no';
$arr[] = $chainedunit[0];
}
else{
$query_result = $wpdb->get_results($wpdb->prepare("select ID from {$wpdb->prefix}posts where post_title = %s",$chainedunit[0]));
$product_id = $query_result[0]->ID;
$unit = ltrim($chainedunit[1],' ');
$cpid_key[$product_id]['unit'] = $unit;
$cpid_key[$product_id]['product_name'] = $chainedunit[0];
$cpid_key[$product_id]['priced_individually'] = 'no';
$arr[] = $product_id;
}
}
$chained_product_detail = $cpid_key;
} else {
$chained_product_detail = '';
}
$metaData['_chained_product_detail'] = $chained_product_detail;
$metaData['_chained_product_ids'] = $arr;
break;
// $arr = array();
// $cpid_key = array();
// if ($data_array[$ekey]) {
// $chainedid = explode('|', $data_array[$ekey]);
// foreach ($chainedid as $unitid ) {
// $id = $unitid;
// $query_result = $wpdb->get_results($wpdb->prepare("select post_title from {$wpdb->prefix}posts where ID = %d",$id));
// $product_name = $query_result[0]->post_title;
// $cpid_key[$id]['unit'] = $unitid;
// $cpid_key[$id]['product_name'] = $product_name;
// $cpid_key[$id]['priced_individually'] = 'no';
// $arr[] = $unitid;
// }
// $chained_product_detail = $cpid_key;
// } else {
// $chained_product_detail = '';
// }
// $metaData['_chained_product_detail'] = $chained_product_detail;
// $metaData['_chained_product_ids'] = $arr;
// break;
case 'chained_product_manage_stock' :
$metaData['_chained_product_manage_stock'] = $data_array[$ekey];
break;
//WooCommerce Product Retailers Fields
case 'wc_product_retailers_retailer_only_purchase' :
$metaData['_wc_product_retailers_retailer_only_purchase'] = $data_array[$ekey];
break;
case 'wc_product_retailers_use_buttons' :
$metaData['_wc_product_retailers_use_buttons'] = $data_array[$ekey];
break;
case 'wc_product_retailers_product_button_text' :
$metaData['_wc_product_retailers_product_button_text'] = $data_array[$ekey];
break;
case 'wc_product_retailers_catalog_button_text' :
$metaData['_wc_product_retailers_catalog_button_text'] = $data_array[$ekey];
break;
case 'wc_product_retailers_id' :
$retailer_id[$ekey] = $data_array[$ekey];
break;
case 'wc_product_retailers_price' :
$retailer_price[$ekey] = $data_array[$ekey];
break;
case 'wc_product_retailers_url' :
$retailer_url[$ekey] = $data_array[$ekey];
break;
//WooCommerce Product Add-ons Fields
case 'product_addons_exclude_global' :
$metaData['_product_addons_exclude_global'] = $data_array[$ekey];
break;
case 'product_addons_group_name' :
$product_addons[$ekey] = $data_array[$ekey];
break;
case 'product_addons_group_description' :
$product_addons[$ekey] = $data_array[$ekey];
break;
case 'product_addons_type' :
$product_addons[$ekey] = $data_array[$ekey];
break;
case 'product_addons_position' :
$product_addons[$ekey] = $data_array[$ekey];
break;
case 'product_addons_required' :
$product_addons[$ekey] = $data_array[$ekey];
break;
case 'product_addons_label_name' :
$product_addons[$ekey] = $data_array[$ekey];
break;
case 'product_addons_price' :
$product_addons[$ekey] = $data_array[$ekey];
break;
case 'product_addons_minimum' :
$product_addons[$ekey] = $data_array[$ekey];
break;
case 'product_addons_maximum' :
$product_addons[$ekey] = $data_array[$ekey];
break;
//WooCommerce Warranty Requests Fields
case 'warranty_label' :
$metaData['_warranty_label'] = $data_array[$ekey];
break;
case 'warranty_type' :
$warranty[$ekey] = $data_array[$ekey];
break;
case 'warranty_length' :
$warranty[$ekey] = $data_array[$ekey];
break;
case 'warranty_value' :
$warranty[$ekey] = $data_array[$ekey];
break;
case 'warranty_duration' :
$warranty[$ekey] = $data_array[$ekey];
break;
case 'warranty_addons_amount' :
$warranty[$ekey] = $data_array[$ekey];
break;
case 'warranty_addons_value' :
$warranty[$ekey] = $data_array[$ekey];
break;
case 'warranty_addons_duration' :
$warranty[$ekey] = $data_array[$ekey];
break;
case 'no_warranty_option' :
$warranty[$ekey] = $data_array[$ekey];
break;
//WooCommerce Pre-Orders Fields
case 'preorders_enabled' :
$metaData['_wc_pre_orders_enabled'] = $data_array[$ekey];
break;
case 'preorders_availability_datetime' :
if ($data_array[$ekey]) {
$datetime_value = strtotime($data_array[$ekey]);
}
else {
$datetime_value = '';
}
$metaData['_wc_pre_orders_availability_datetime'] = $datetime_value;
break;
case 'preorders_fee' :
$metaData['_wc_pre_orders_fee'] = $data_array[$ekey];
break;
case 'preorders_when_to_charge' :
$metaData['_wc_pre_orders_when_to_charge'] = $data_array[$ekey];
break;
//woocommerce_coupons starting
case 'discount_type' :
$metaData['discount_type'] = $data_array[$ekey];
break;
case 'coupon_amount' :
$metaData['coupon_amount'] = $data_array[$ekey];
break;
case 'individual_use' :
$metaData['individual_use'] = $data_array[$ekey];
break;
case 'exclude_product_ids' :
$metaData['exclude_product_ids'] = $data_array[$ekey];
break;
case 'product_ids' :
$metaData['product_ids'] = $data_array[$ekey];
break;
case 'usage_limit' :
$metaData['usage_limit'] = $data_array[$ekey];
break;
case 'usage_limit_per_user' :
$metaData['usage_limit_per_user'] = $data_array[$ekey];
break;
case 'limit_usage_to_x_items' :
$metaData['limit_usage_to_x_items'] = $data_array[$ekey];
break;
case 'expiry_date' :
$metaData['date_expires'] = strtotime($data_array[$ekey]);
break;
case 'free_shipping' :
$metaData['free_shipping'] = $data_array[$ekey];
break;
case 'exclude_sale_items' :
$metaData['exclude_sale_items'] = $data_array[$ekey];
break;
case 'wildcard_value' :
if(strpos($data_array[$ekey] , '|') !== false){
$data= explode('|',$data_array[$ekey]);
if(is_array($data)){
foreach($data as $keys => $datameta){
$metaData['wildcard_rules_'.$keys.'_value'] = $datameta;
}
}
}
else{
$metaData['wildcard_rules_0_value'] = $data_array[$ekey];
}
break;
case 'wildcard_type' :
if(strpos($data_array[$ekey] , '|') !== false){
$data= explode('|',$data_array[$ekey]);
if(is_array($data)){
foreach($data as $key => $datameta){
$metaData['wildcard_rules_'.$key.'_type']=$datameta;
}
}
$metaData['wildcard_rules'] = count($data);
}
else{
$metaData['wildcard_rules_0_type'] = $data_array[$ekey];
$metaData['wildcard_rules'] = 1;
}
break;
case 'minimum_amount' :
$metaData['minimum_amount'] = $data_array[$ekey];
break;
case 'maximum_amount' :
$metaData['maximum_amount'] = $data_array[$ekey];
break;
case 'customer_email' :
$customer_email[$ekey] = $data_array[$ekey];
break;
case 'exclude_product_categories' :
$exclude_product[$ekey] = $data_array[$ekey];
break;
case 'product_categories' :
$product_cate[$ekey] = $data_array[$ekey];
break;
//woocommerce_orders starting
case 'payment_method_title' :
$metaData['_payment_method_title'] = $data_array[$ekey];
break;
case 'payment_method' :
$metaData['_payment_method'] = $data_array[$ekey];
break;
case 'transaction_id' :
$metaData['_transaction_id'] = $data_array[$ekey];
break;
case 'billing_first_name' :
$metaData['_billing_first_name'] = $data_array[$ekey];
break;
case 'billing_last_name' :
$metaData['_billing_last_name'] = $data_array[$ekey];
break;
case 'billing_company' :
$metaData['_billing_company'] = $data_array[$ekey];
break;
case 'billing_address_1' :
$metaData['_billing_address_1'] = $data_array[$ekey];
break;
case 'billing_address_2' :
$metaData['_billing_address_2'] = $data_array[$ekey];
break;
case 'billing_city' :
$metaData['_billing_city'] = $data_array[$ekey];
break;
case 'billing_postcode' :
$metaData['_billing_postcode'] = $data_array[$ekey];
break;
case 'billing_state' :
$metaData['_billing_state'] = $data_array[$ekey];
break;
case 'billing_country' :
$metaData['_billing_country'] = $data_array[$ekey];
break;
case 'billing_phone' :
$metaData['_billing_phone'] = $data_array[$ekey];
break;
case 'billing_email' :
$metaData['_billing_email'] = $data_array[$ekey];
break;
case 'shipping_first_name' :
$metaData['_shipping_first_name'] = $data_array[$ekey];
break;
case 'shipping_last_name' :
$metaData['_shipping_last_name'] = $data_array[$ekey];
break;
case 'shipping_company' :
$metaData['_shipping_company'] = $data_array[$ekey];
break;
case 'shipping_address_1' :
$metaData['_shipping_address_1'] = $data_array[$ekey];
break;
case 'shipping_address_2' :
$metaData['_shipping_address_2'] = $data_array[$ekey];
break;
case 'shipping_city' :
$metaData['_shipping_city'] = $data_array[$ekey];
break;
case 'shipping_postcode' :
$metaData['_shipping_postcode'] = $data_array[$ekey];
break;
case 'shipping_state' :
$metaData['_shipping_state'] = $data_array[$ekey];
break;
case 'shipping_country' :
$metaData['_shipping_country'] = $data_array[$ekey];
break;
case 'customer_user' :
$metaData['_customer_user'] = $data_array[$ekey];
break;
case 'order_currency' :
$metaData['_order_currency'] = $data_array[$ekey];
break;
case 'item_name' :
$orderItem['order_item_name'] = explode(',', $data_array[$ekey]);
break;
case 'item_type' :
$orderItem['order_item_type'] = explode(',', $data_array[$ekey]);
break;
case 'item_product_id' :
$Item_metaDatas['_product_id'] = explode(',', $data_array[$ekey]);
break;
case 'item_variation_id' :
$Item_metaDatas['_variation_id'] = explode(',', $data_array[$ekey]);
break;
case 'item_line_subtotal' :
$Item_metaDatas['_line_subtotal'] = explode(',', $data_array[$ekey]);
break;
case 'item_line_subtotal_tax' :
$Item_metaDatas['_line_subtotal_tax'] = explode(',', $data_array[$ekey]);
break;
case 'item_line_total' :
$Item_metaDatas['_line_total'] = explode(',', $data_array[$ekey]);
break;
case 'item_line_tax' :
$Item_metaDatas['_line_tax'] = explode(',', $data_array[$ekey]);
break;
case 'item_line_tax_data' :
$Item_metaDatas['_line_tax_data'] = explode('|', $data_array[$ekey]);
break;
case 'item_tax_class' :
$Item_metaDatas['_tax_class'] = explode(',', $data_array[$ekey]);
break;
case 'item_qty' :
$Item_metaDatas['_qty'] = explode(',', $data_array[$ekey]);
break;
case 'fee_name' :
$orderFee['order_item_name'] = explode(',', $data_array[$ekey]);
break;
case 'fee_type' :
$orderFee['order_item_type'] = explode(',', $data_array[$ekey]);
break;
case 'fee_tax_class' :
$Fee_metaDatas['_tax_class'] = explode(',', $data_array[$ekey]);
break;
case 'fee_line_total' :
$Fee_metaDatas['_line_total'] = explode(',', $data_array[$ekey]);
break;
case 'fee_line_tax' :
$Fee_metaDatas['_line_tax'] = explode(',', $data_array[$ekey]);
break;
case 'fee_line_tax_data' :
$Fee_metaDatas['_line_tax_data'] = explode('|', $data_array[$ekey]);
break;
case 'fee_line_subtotal' :
$Fee_metaDatas['_line_subtotal'] = explode(',', $data_array[$ekey]);
break;
case 'fee_line_subtotal_tax' :
$Fee_metaDatas['_line_subtotal_tax'] = explode(',', $data_array[$ekey]);
break;
case 'shipment_name' :
$Shipment_name['order_item_name'] = explode(',', $data_array[$ekey]);
break;
case 'shipment_method_id' :
$Shipment_metaDatas['method_id'] = explode(',', $data_array[$ekey]);
break;
case 'shipment_cost' :
$Shipment_metaDatas['cost'] = explode(',', $data_array[$ekey]);
break;
case 'shipment_taxes' :
$Shipment_metaDatas['taxes'] = explode('|', $data_array[$ekey]);
break;
//woocommerce_redunds starting
case 'refund_amount' :
$metaData['_refund_amount'] = $data_array[$ekey];
break;
case 'order_shipping_tax' :
$metaData['_order_shipping_tax'] = $data_array[$ekey];
break;
case 'order_tax' :
$metaData['_order_tax'] = $data_array[$ekey];
$taxData['tax_amount'] = $data_array[$ekey];
break;
case 'order_shipping' :
$metaData['_order_shipping'] = $data_array[$ekey];
break;
case 'cart_discount' :
$metaData['_cart_discount'] = $data_array[$ekey];
break;
case 'cart_discount_tax' :
$metaData['_cart_discount_tax'] = $data_array[$ekey];
break;
case 'order_total' :
$metaData['_order_total'] = $data_array[$ekey];
break;
default:
if(empty($variation_id)){
$metaData[$ekey] = $data_array[$ekey];
}
$metaData['_subscription_payment_sync_date'] = 'a:2:{s:3:"day";i:0;s:5:"month";i:0;}';
break;
}
}
if(isset($orderItem) && is_array($orderItem)){
foreach ($orderItem['order_item_name'] as $key => $value) {
$value_order_item[$key]['order_item_name'] = $orderItem['order_item_name'][$key];
$value_order_item[$key]['order_item_type'] = $orderItem['order_item_type'][$key];
}
foreach ($value_order_item as $key => $value) {
if($value['order_item_type'] == 'tax'){
$tax_name = $value['order_item_name'];
$tax =explode('-1',$tax_name);
$tax_label = $tax_name;
$taxy =explode('-',$tax[0]);
$count =count($taxy);
$count --;
global $wpdb;
$res = $wpdb->get_row("SELECT tax_rate_id from {$wpdb->prefix}woocommerce_tax_rates WHERE tax_rate_name = '$taxy[$count]'");
$res1 = json_decode(json_encode($res),true);
$items =$res1['tax_rate_id'];
}
}
foreach ($orderItem['order_item_name'] as $key => $value) {
foreach ($Item_metaDatas as $key1 => $value1) {
$arr = [];
if($key1 == '_line_tax_data'){
$count =count($Item_metaDatas[$key1]);
$l = $Item_metaDatas[$key1];
$Item_metaDatas[$key1][$key]=isset($Item_metaDatas[$key1][$key])?$Item_metaDatas[$key1][$key]:'';
$vals = $Item_metaDatas[$key1][$key];
// $val = explode(',',$vals);
$val = explode(',',$vals);
$items=isset($items)?$items:'';
$arr['total'][$items] = $val[0];
$val[1]=isset($val[1])?$val[1]:'';
$arr['subtotal'][$items] = $val[1];
$Item_metaDatas[$key1][$key] = $arr;
$value_order_item_meta[$key][$key1] = $Item_metaDatas[$key1][$key];
}
else{
$Item_metaDatas[$key1][$key]=isset($Item_metaDatas[$key1][$key])?$Item_metaDatas[$key1][$key]:'';
$value_order_item_meta[$key][$key1] = $Item_metaDatas[$key1][$key];
}
}
}
if($mode == 'Insert'){
foreach ($value_order_item as $key => $value) {
$oid = wc_add_order_item($pID, $value);
foreach ($value_order_item_meta[$key] as $itemkey => $itemvalue) {
if($value['order_item_type'] == 'tax'){
$tax_name = $value['order_item_name'];
$tax =explode('-1',$tax_name);
$taxy =explode('-',$tax[0]);
$count =count($taxy);
$count --;
$tax_label = $tax_name;
global $wpdb;
$res = $wpdb->get_row("SELECT tax_rate_id,tax_rate,tax_rate_compound from {$wpdb->prefix}woocommerce_tax_rates WHERE tax_rate_name = '$taxy[$count]'");
$res1 = json_decode(json_encode($res),true);
foreach($taxData as $taxkey => $taxval){
wc_add_order_item_meta($oid, $taxkey, $taxval);
}
wc_add_order_item_meta($oid, 'rate_id', $res1['tax_rate_id']);
wc_add_order_item_meta($oid, 'label', $taxy[$count]);
wc_add_order_item_meta($oid, 'compound',$res1['compound'] );
wc_add_order_item_meta($oid, 'rate_percent', $res1['tax_rate']);
}
else{
if(!empty($itemvalue)){
wc_add_order_item_meta($oid, $itemkey, $itemvalue);
}
}
}
}
}
if($mode == 'Update'){
$order_line = wc_get_order($pID);
$order_line_ids = array_keys($order_line->get_items());
$i = 0;
$order_line_ids_arr = array();
foreach ($value_order_item as $key => $value) {
if(empty($order_line_ids[$i])){
$oid = wc_add_order_item($pID, $value);
foreach ($value_order_item_meta[$key] as $itemkey => $itemvalue) {
wc_add_order_item_meta($oid, $itemkey, $itemvalue);
}
}else{
wc_update_order_item($order_line_ids[$i], $value);
foreach ($value_order_item_meta[$key] as $itemkey => $itemvalue) {
wc_update_order_item_meta($order_line_ids[$i], $itemkey, $itemvalue);
}
}
$order_line_ids_arr[] = $order_line_ids[$i];
$i++;
}
if(count($order_line->get_items()) > count($value_order_item)){
foreach($order_line->get_items() as $order_lines_ids => $order_lines_values){
if(!in_array($order_lines_ids ,$order_line_ids_arr )){
wc_delete_order_item($order_lines_ids);
wc_delete_order_item_meta( $order_lines_ids, 'line_item');
}
}
}
}
}
if(isset($orderFee) && is_array($orderFee)){
foreach ($orderFee['order_item_name'] as $key => $value) {
$value_order_fee[$key]['order_item_name'] = $orderFee['order_item_name'][$key];
$value_order_fee[$key]['order_item_type'] = $orderFee['order_item_type'][$key];
}
foreach ($orderFee['order_item_name'] as $key => $value) {
foreach ($Fee_metaDatas as $key1 => $value1) {
$value_order_fee_meta[$key][$key1] = $Fee_metaDatas[$key1][$key];
}
}
if($mode == 'Insert'){
foreach ($value_order_fee as $key => $value) {
$oid = wc_add_order_item($pID, $value);
foreach ($value_order_fee_meta[$key] as $feekey => $feevalue) {
wc_add_order_item_meta($oid, $feekey, $feevalue);
}
}
}
if($mode == 'Update'){
$order_fee = wc_get_order($pID);
$order_fee_ids = array_keys($order_fee->get_items('fee'));
$i = 0;
$order_fee_ids_arr = array();
foreach ($value_order_fee as $key => $value) {
if(empty($order_fee_ids[$i])){
$oid = wc_add_order_item($pID, $value);
foreach ($value_order_fee_meta[$key] as $feekey => $feevalue) {
wc_add_order_item_meta($oid, $feekey, $feevalue);
}
}else{
wc_update_order_item($order_fee_ids[$i], $value);
foreach ($value_order_fee_meta[$key] as $feekey => $feevalue) {
wc_update_order_item_meta($order_fee_ids[$i], $feekey, $feevalue);
}
}
$order_fee_ids_arr[] = $order_fee_ids[$i];
$i++;
}
if(count($order_fee->get_items('fee')) > count($value_order_fee)){
foreach($order_fee->get_items('fee') as $fees_ids => $fees_ids_value){
if(!in_array($fees_ids , $order_fee_ids_arr )){
wc_delete_order_item($fees_ids);
wc_delete_order_item_meta( $fees_ids, 'fee');
}
}
}
}
}
if(isset($Shipment_name) && is_array($Shipment_name)){
$value_shipment[] = [];
foreach ($Shipment_name['order_item_name'] as $key => $value) {
if(!empty($value)){
$value_shipment[$key]['order_item_name'] = $Shipment_name['order_item_name'][$key];
$value_shipment[$key]['order_item_type'] = 'shipping';
}
}
foreach ($Shipment_name['order_item_name'] as $key => $value) {
foreach ($Shipment_metaDatas as $key1 => $value1) {
if(!empty($value1)){
$value_shipment_meta[$key][$key1] = $Shipment_metaDatas[$key1][$key];
}
}
}
if($mode == 'Insert' && !empty($value_shipment)){
foreach ($value_shipment as $key => $value) {
$oid = wc_add_order_item($pID, $value);
foreach ($value_shipment_meta[$key] as $shipkey => $shipvalue) {
wc_add_order_item_meta($oid, $shipkey, $shipvalue);
}
}
}
if($mode == 'Update' && !empty($value_shipment)){
$order_ship = wc_get_order($pID);
$order_ship_ids = array_keys($order_ship->get_items('shipping'));
$i = 0;
$order_ship_ids_arr = array();
foreach ($value_shipment as $key => $value) {
if(empty($order_ship_ids[$i])){
$oid = wc_add_order_item($pID, $value);
foreach ($value_shipment_meta[$key] as $shipkey => $shipvalue) {
wc_add_order_item_meta($oid, $shipkey, $shipvalue);
}
}else{
wc_update_order_item($order_ship_ids[$i], $value);
foreach ($value_shipment_meta[$key] as $shipkey => $shipvalue) {
wc_update_order_item_meta($order_ship_ids[$i], $shipkey, $shipvalue);
}
}
$order_ship_ids_arr[] = $order_ship_ids[$i];
$i++;
}
if(is_countable($order_ship->get_items('shipping')) && count($order_ship->get_items('shipping')) > is_countable($value_shipment)&&count($value_shipment)){
foreach($order_ship->get_items('shipping') as $ship_ids => $ship_ids_value){
if(!in_array($ship_ids ,$order_ship_ids_arr )){
wc_delete_order_item($ship_ids);
wc_delete_order_item_meta( $ship_ids, 'shipping');
}
}
}
}
}
if (!empty($customer_email)) {
$exploded_email = explode(',', $customer_email['customer_email']);
foreach ($exploded_email as $cus_email) {
$metaData['customer_email'][] = $cus_email;
}
}
if(!empty($exclude_product)) {
$exploded_exclude = explode(',', $exclude_product['exclude_product_categories']);
foreach ($exploded_exclude as $exp_cat) {
$metaData['exclude_product_categories'][] = $exp_cat;
}
}
if(!empty($product_cate)) {
$exploded_cate = explode(',', $product_cate['product_categories']);
foreach ($exploded_cate as $pro_cat) {
$metaData['product_categories'][] = $pro_cat;
}
}
if (!empty($product_image_gallery)) {
$exploded_gallery_images = explode('|', $product_image_gallery['product_image_gallery']);
$image_gallery = '';
foreach ($exploded_gallery_images as $images) {
$image_gallery .= $images . ',';
}
$Gallery = substr($image_gallery, 0, -1);
$productImageGallery = $Gallery;
if ($productImageGallery) {
$metaData['_product_image_gallery'] = $productImageGallery;
}
}
if (!empty($attribute_names)) {
$exploded_att_names = explode('|', $attribute_names['product_attribute_name']);
$get_csvpro_settings = get_option('sm_uci_pro_settings');
foreach ($exploded_att_names as $attr_name) {
$attri_name = $wpdb->get_results( "SELECT attribute_name FROM {$wpdb->prefix}woocommerce_attribute_taxonomies where attribute_label = '$attr_name' ");
if(empty($attri_name) && ($get_csvpro_settings['woocomattr'] == 'false')){
$attr_value = wc_sanitize_taxonomy_name($attr_name);
$wpdb->query("insert into {$wpdb->prefix}woocommerce_attribute_taxonomies(attribute_label,attribute_name,attribute_type,attribute_orderby,attribute_public) values('".$attr_name."','".$attr_value."','select','menu_order','0')");
$attri_name = $wpdb->get_results( "SELECT attribute_name FROM {$wpdb->prefix}woocommerce_attribute_taxonomies where attribute_label = '$attr_name' ");
$attribute['name'][] = $attri_name[0]->attribute_name;
}
elseif(empty($attri_name) && ($get_csvpro_settings['woocomattr'] == 'true')){
$attribute['name'][] = wc_attribute_taxonomy_name($attr_name);
}
else{
$attribute['name'][] = $attri_name[0]->attribute_name;
}
}
}
if (!empty($attribute_values)) {
$exploded_att_values = explode(',', $attribute_values['product_attribute_value']);
for($i=0 ; $i< count($exploded_att_values) ; $i++) {
$attribute['value'][] = $exploded_att_values[$i];
$term_val = explode('|',$exploded_att_values[$i]);
foreach ($term_val as $term_value) {
$attribute_slug = 'pa_'. $attribute['name'][$i];
$slug_val = $wpdb->get_results( "SELECT slug FROM {$wpdb->prefix}terms where name = '$term_value' ");
$slug_value = isset($slug_val[0]->slug) ? $slug_val[0]->slug : '';
if(empty($slug_value)){
$slug_value = wc_sanitize_taxonomy_name($term_value);
$wpdb->get_results("INSERT into {$wpdb->prefix}terms(name, slug) values ('{$term_value}', '{$slug_value}')");
}
$term_id = $wpdb->get_var("SELECT term_id from {$wpdb->prefix}terms where name = '$term_value' and slug = '$slug_value'");
$taxonomy_value = $wpdb->get_var("SELECT taxonomy from {$wpdb->prefix}term_taxonomy where term_id = '$term_id'");
if(empty($taxonomy_value)){
$wpdb->get_results("INSERT into {$wpdb->prefix}term_taxonomy (term_id, taxonomy) values ('{$term_id}', '{$attribute_slug}')");
}
}
}
}
if (!empty($attribute_visible)) {
$exploded_att_visible = explode('|', $attribute_visible['product_attribute_visible']);
foreach ($exploded_att_visible as $attr_visible) {
$attribute['is_visible'][] = $attr_visible;
}
}
if (!empty($attribute_variation)) {
$exploded_att_variation = explode('|', $attribute_variation['product_attribute_variation']);
foreach ($exploded_att_variation as $attr_variation) {
$attribute['is_variation'][] = $attr_variation;
}
}
if (!empty($attribute_position)) {
$exploded_att_position = explode('|', $attribute_position['product_attribute_position']);
foreach ($exploded_att_position as $attr_position) {
$attribute['position'][] = $attr_position;
}
}
if(!empty($attribute_taxonomy)) {
$exploded_att_taxonomy = explode('|', $attribute_taxonomy['product_attribute_taxonomy']);
foreach ($exploded_att_taxonomy as $attr_taxonomy) {
$attribute['is_taxonomy'][] = $attr_taxonomy;
}
}
//WooCommerce Product Retailers Fields
if (!empty($retailer_id)) {
$exploded_ret_id = explode('|', $retailer_id['wc_product_retailers_id']);
foreach ($exploded_ret_id as $ret_id) {
$product_retailer['id'][] = $ret_id;
}
}
if (!empty($retailer_price)) {
$exploded_ret_price = explode('|', $retailer_price['wc_product_retailers_price']);
foreach ($exploded_ret_price as $ret_price) {
$product_retailer['product_price'][] = $ret_price;
}
}
if (!empty($retailer_url)) {
$exploded_ret_url = explode('|', $retailer_url['wc_product_retailers_url']);
foreach ($exploded_ret_url as $ret_url) {
$product_retailer['product_url'][] = $ret_url;
}
}
if (!empty($product_retailer)) {
$retailers_detail = array();
$count_value = count($product_retailer['id']);
for ($at = 0; $at < $count_value; $at++) {
if (isset($product_retailer['id']) && isset($product_retailer['id'][$at])) {
$retailers_detail[$product_retailer['id'][$at]]['id'] = $product_retailer['id'][$at];
}
if (isset($product_retailer['product_price']) && isset($product_retailer['product_price'][$at])) {
$retailers_detail[$product_retailer['id'][$at]]['product_price'] = $product_retailer['product_price'][$at];
}
if (isset($product_retailer['product_url']) && isset($product_retailer['product_url'][$at])) {
$retailers_detail[$product_retailer['id'][$at]]['product_url'] = $product_retailer['product_url'][$at];
}
}
}
if (!empty($retailers_detail)) {
$metaData['_wc_product_retailers'] = $retailers_detail;
}
//WooCommerce Product Add-ons
if (!empty($product_addons)) {
$exploded_lab_name = explode('|', $product_addons['product_addons_label_name']);
$count_lab_name = count($exploded_lab_name);
for ($i = 0; $i < $count_lab_name; $i++) {
$exploded_label_name = explode(',', $exploded_lab_name[$i]);
foreach ($exploded_label_name as $lname) {
$addons_option['label'][$i][] = $lname;
}
}
$explode_lab_price = explode('|', $product_addons['product_addons_price']);
$count_lab_price = count($explode_lab_price);
for ($i = 0; $i < $count_lab_price; $i++) {
$exploded_price = explode(',', $explode_lab_price[$i]);
foreach ($exploded_price as $lprice) {
$addons_option['price'][$i][] = $lprice;
}
}
$expl_min = explode('|', $product_addons['product_addons_minimum']);
$count_min = count($expl_min);
for ($i = 0; $i < $count_min; $i++) {
$exploded_min = explode(',', $expl_min[$i]);
foreach ($exploded_min as $min) {
$addons_option['min'][$i][] = $min;
}
}
$expl_mac = explode('|',$product_addons['product_addons_maximum']);
$count_max = count($expl_mac);
for($i = 0; $i < $count_max; $i++){
$exploded_max = explode(',', $expl_mac[$i]);
foreach ($exploded_max as $max) {
$addons_option['max'][] = $max;
}
}
if(!empty($addons_option)) {
$options_array = array();
$cv = count($addons_option['label']);
for ($a = 0; $a < $cv; $a++) {
if (isset($addons_option['label']) && isset($addons_option['label'][$a])){
$options_array[$a]['label'] =$addons_option['label'][$a];
}
if (isset($addons_option['price']) && isset($addons_option['price'][$a])){
$options_array[$a]['price'] =$addons_option['price'][$a];
}
if (isset($addons_option['min']) && isset($addons_option['min'][$a])) {
$options_array[$a]['min'] =$addons_option['min'][$a];
}
if (isset($addons_option['max']) && isset($addons_option['max'][$a])) {
$options_array[$a]['max'] =$addons_option['max'][$a];
}
}
}
$exploded_group_name = explode('|', $product_addons['product_addons_group_name']);
foreach ($exploded_group_name as $gname) {
$addons['name'][] = $gname;
}
$exploded_group_description = explode('|', $product_addons['product_addons_group_description']);
foreach ($exploded_group_description as $gdes) {
$addons['description'][] = $gdes;
}
$exploded_position = explode('|', $product_addons['product_addons_position']);
foreach ($exploded_position as $pos) {
$addons['position'][] = $pos;
}
$exploded_type = explode('|', $product_addons['product_addons_type']);
foreach ($exploded_type as $type) {
$addons['type'][] = $type;
}
$exploded_required = explode('|', $product_addons['product_addons_required']);
foreach ($exploded_required as $req) {
$addons['required'][] = $req;
}
if(!empty($addons)) {
$addons_array = array();
$cnt = count($addons['name']);
for ($b = 0; $b < $cnt; $b++) {
if (isset($addons['name']) && isset($addons['name'][$b])) {
$addons_array[$addons['name'][$b]]['name'] = $addons['name'][$b];
}
if (isset($addons['description']) && isset($addons['description'][$b])) {
$addons_array[$addons['name'][$b]]['description'] = $addons['description'][$b];
}
if (isset($addons['type']) && isset($addons['type'][$b])) {
$addons_array[$addons['name'][$b]]['type'] = $addons['type'][$b];
}
if (isset($addons['position']) && isset($addons['position'][$b])) {
$addons_array[$addons['name'][$b]]['position'] = $addons['position'][$b];
}
if (isset($addons_option['label']) && isset($addons_option['label'][$b])){
for ($i = 0; $i < count($addons_option['label'][$b]); $i++) {
$addons_array[$addons['name'][$b]]['options'][$i]['label'] = $addons_option['label'][$b][$i];
}
}
if (isset($addons_option['price']) && isset($addons_option['price'][$b])){
for ($i = 0; $i < count($addons_option['price'][$b]); $i++) {
$addons_array[$addons['name'][$b]]['options'][$i]['price'] = $addons_option['price'][$b][$i];
}
}
if (isset($addons_option['min']) && isset($addons_option['min'][$b])) {
for ($i = 0; $i < count($addons_option['min'][$b]); $i++) {
$addons_array[$addons['name'][$b]]['options'][$i]['min'] = $addons_option['min'][$b][$i];
}
}
if (isset($addons_option['max']) && isset($addons_option['max'][$b])) {
for ($i = 0; $i < count($addons_option['max'][$b]); $i++) {
$addons_array[$addons['name'][$b]]['options'][$i]['max'] = $addons_option['max'][$b][$i];
}
}
if (isset($addons['required']) && isset($addons['required'][$b])) {
$addons_array[$addons['name'][$b]]['required'] =$addons['required'][$b];
}
}
}
if(!empty($addons_array)) {
$metaData['_product_addons'] = $addons_array;
}
}
//WooCommerce Warranty Requests
if (!empty($warranty)) {
if ($warranty['warranty_type'] == 'included_warranty') {
$warranty_result['type'] = $warranty['warranty_type'];
$warranty_result['length'] = $warranty['warranty_length'];
$warranty_result['value'] = $warranty['warranty_value'];
$warranty_result['duration'] = $warranty['warranty_duration'];
$metaData['_warranty'] = $warranty_result;
}else if ( $warranty['warranty_type'] == 'addon_warranty' ) {
if($warranty['warranty_addons_amount'] != '') {
$addon_amt = explode('|', $warranty['warranty_addons_amount']);
foreach ($addon_amt as $amt) {
$warranty_addons['amount'][] = $amt;
}
}
if($warranty['warranty_addons_value'] != '') {
$addon_val = explode('|', $warranty['warranty_addons_value']);
foreach ($addon_val as $val) {
$warranty_addons['value'][] = $val;
}
}
if($warranty['warranty_addons_duration'] != '') {
$addon_dur = explode('|', $warranty['warranty_addons_duration']);
foreach ($addon_dur as $dur) {
$warranty_addons['duration'][] = $dur;
}
}
if (!empty($warranty_addons)) {
$warranty_addons_detail = array();
$addon_count = count($warranty_addons['amount']);
for ($ad = 0; $ad < $addon_count; $ad++) {
if (isset($warranty_addons['amount']) && isset($warranty_addons['amount'][$ad])) {
$warranty_addons_detail[$warranty_addons['amount'][$ad]]['amount'] = $warranty_addons['amount'][$ad];
}
if (isset($warranty_addons['value']) && isset($warranty_addons['value'][$ad])) {
$warranty_addons_detail[$warranty_addons['amount'][$ad]]['value'] = $warranty_addons['value'][$ad];
}
if (isset($warranty_addons['duration']) && isset($warranty_addons['duration'][$ad])) {
$warranty_addons_detail[$warranty_addons['amount'][$ad]]['duration'] = $warranty_addons['duration'][$ad];
}
}
}
if (!empty($warranty_addons_detail)) {
$warranty_result['type'] = $warranty['warranty_type'];
$warranty_result['addons'] = $warranty_addons_detail;
$warranty_result['no_warranty_option'] = $warranty['no_warranty_option'];
$metaData['_warranty'] = $warranty_result;
}
}else {
$metaData['_warranty'] = '';
}
}
//attributes
if (!empty($attribute)) {
$product_attributes = $exploded_attribute_value = array();
if(isset($attribute['name'])) {
$attr_count = count($attribute['name']);
}
if(isset($attr_count)){
for ($att = 0; $att < $attr_count; $att++) {
$get_csvpro_settings = get_option('sm_uci_pro_settings');
$woo_attribute_name = $attribute['name'][$att];
$check_for_existing_attributes = $wpdb->get_var("SELECT attribute_id FROM {$wpdb->prefix}woocommerce_attribute_taxonomies WHERE attribute_name = '$woo_attribute_name' ");
if(empty($check_for_existing_attributes)){
$attrlabel = $attribute['name'][$att];
}
else{
$attrlabel ='pa_'. $attribute['name'][$att];
}
if (isset($attribute['name']) && isset($attribute['name'][$att])) {
$product_attributes[$attrlabel]['name'] = $attrlabel;
}
if (isset($attribute['value']) && isset($attribute['value'][$att])) {
$product_attributes[$attrlabel]['value'] = $attribute['value'][$att];
} else {
$product_attributes[$attrlabel]['value'] = '';
}
if (isset($attribute['position']) && isset($attribute['position'][$att])){
$product_attributes[$attrlabel]['position'] = $attribute['position'][$att];
} else {
$product_attributes[$attrlabel]['position'] = 0;
}
if (isset($attribute['is_visible']) && isset($attribute['is_visible'][$att])) {
$visible=$attribute['is_visible'][$att];
$product_attributes[$attrlabel]['is_visible'] = intval($visible);
} else
{
$product_attributes[$attrlabel]['is_visible'] = '';
}
if (isset($attribute['is_variation']) && isset($attribute['is_variation'][$att])) {
$variation=$attribute['is_variation'][$att];
$product_attributes[$attrlabel]['is_variation'] = intval($variation);
}
else
{
$product_attributes[$attrlabel]['is_variation'] = '';
}
if (isset($attribute['is_taxonomy']) && isset($attribute['is_taxonomy'][$att])) {
$taxonomy=$attribute['is_taxonomy'][$att];
$product_attributes[$attrlabel]['is_taxonomy'] =intval($taxonomy);
}
else
{
$product_attributes[$attrlabel]['is_taxonomy'] = 0;
}
if($import_type == 'WooCommerce Product Variations'){
$product_attributes[$attrlabel]['is_taxonomy'] = 1;
}
// product attributes
if (!empty($product_attributes)) {
if($import_type == 'WooCommerce Product Variations'){
$product_detail = $wpdb->get_col($wpdb->prepare("select post_parent from {$wpdb->prefix}posts where ID = %d", $pID));
if(!empty($product_detail))
$productID = $product_detail[0];
else
$productID = '';
if($productID != '') {
$explode_attr = explode('|' , $product_attributes[$attrlabel]['value']);
$reg_attribute_id = wp_set_object_terms($productID, $explode_attr , $product_attributes[$attrlabel]['name']);
$product_attributes[$attrlabel]['value'] = '';
update_post_meta($productID, '_product_attributes', $product_attributes);
}
if(isset($metaData['_price'])){
update_post_meta($productID, '_price', $metaData['_price']);
}
}
else{
$metaData['_product_attributes'] = $product_attributes;
}
//default attribute for variations
if(!empty($defAttribute)){
if($import_type == 'WooCommerce Product Variations'){
$product_detail = $wpdb->get_col($wpdb->prepare("select post_parent from {$wpdb->prefix}posts where ID = %d",$pID));
if(!empty($product_detail))
$productID = $product_detail[0];
else
$productID = '';
if($productID != ''){
update_post_meta($productID,'_default_attributes',$defAttribute);
}
}
}
//custom attribute for variations
if(empty($check_for_existing_attributes)){
if(!empty($cusAttribute)){
foreach($cusAttribute as $cusAttkey => $cusAttval){
$metaData['attribute_'.$cusAttkey] = $cusAttval;
}
}
}
else{
if(!empty($cusAttribute)){
foreach($cusAttribute as $cusAttkey => $cusAttval){
$product_detail = $wpdb->get_col($wpdb->prepare("select post_parent from {$wpdb->prefix}posts where ID = %d",$pID));
if(!empty($product_detail))
$productID = $product_detail[0];
else
$productID = '';
if($productID != ''){
$wpdb->insert($wpdb->prefix.'term_relationships',
array('object_id' => $productID,
'term_taxonomy_id' => $term_id
),
array('%d','%d')
);
}
$metaData['attribute_'.$cusAttkey] = $cusAttval;
}
}
}
}
}
} // WooCommerce attribute registration ends here
}
$get_csvpro_settings = get_option('sm_uci_pro_settings');
if (isset($metaData['_product_attributes']) && !empty($metaData['_product_attributes']) && $import_type !== 'WooCommerce Product Variations') {
foreach($metaData['_product_attributes'] as $attrKey => $attrVal) {
if($get_csvpro_settings['woocomattr'] == 'true'){
$attrVal['name'] = str_replace( 'pa_' , '' , $attrVal['name']);
$get_attributeLabel = $wpdb->get_results( "SELECT attribute_id, attribute_label FROM {$wpdb->prefix}woocommerce_attribute_taxonomies WHERE attribute_name = '{$attrVal['name']}'" );
$attrlabel = trim($attrVal['name']);
$attrslug = strtolower($attrlabel);
$attrslug = preg_replace('/\s/', '-', $attrslug);
$custom_attribute_name = "pa_" . $attrslug;
$attrtype = 'text';
$attrordr = 'menu_order';
$attr_data = $attrVal['value'];
$get_transistent_atrributes = get_option('_transient_wc_attribute_taxonomies');
$get_count_transistent_attr = is_array($get_transistent_atrributes) ? count($get_transistent_atrributes) : 0;
$count_transistent_attr = $get_count_transistent_attr + 1;
if(!empty($get_transistent_atrributes)){
foreach($get_transistent_atrributes as $tak => $tav) {
$new_trans_attr_list[$tak] = new \stdClass();
foreach($tav as $attr_reg_key => $attr_reg_val) {
$new_trans_attr_list[$tak]->$attr_reg_key = $attr_reg_val;
}
}
}
if(empty($get_attributeLabel)) {
$wpdb->insert("{$wpdb->prefix}woocommerce_attribute_taxonomies", array('attribute_name' => $attrslug, 'attribute_label' => $attrlabel, 'attribute_type' => $attrtype, 'attribute_orderby' => $attrordr));
$attr_taxo_id = $wpdb->insert_id;
if (!isset($new_trans_attr_list[$count_transistent_attr]))
$new_trans_attr_list[$count_transistent_attr] = new \stdClass();
$new_trans_attr_list[$count_transistent_attr]->attribute_id = $attr_taxo_id;
$new_trans_attr_list[$count_transistent_attr]->attribute_name = $attrslug;
$new_trans_attr_list[$count_transistent_attr]->attribute_label = $attrlabel;
$new_trans_attr_list[$count_transistent_attr]->attribute_type = $attrtype;
$new_trans_attr_list[$count_transistent_attr]->attribute_orderby = $attrordr;
$new_trans_attr_list[$count_transistent_attr]->attribute_public = 0;
update_option('_transient_wc_attribute_taxonomies', $new_trans_attr_list);
$split_line = explode('|', $attr_data);
register_taxonomy($custom_attribute_name , 'product');
$reg_attribute_id = wp_set_object_terms($pID, $split_line, $custom_attribute_name);
$woocomm_term_data = 'order_'.$custom_attribute_name;
} else {
$attrId = $get_attributeLabel[0]->attribute_id;
$custom_attribute_name = 'pa_' . $attrVal['name'];
$split_line = explode('|', $attr_data);
$reg_attribute_id = wp_set_object_terms($pID, $split_line, $custom_attribute_name);
}
}
elseif($get_csvpro_settings['woocomattr'] == 'false'){
$attrVal['name'] = str_replace( 'pa_' , '' , $attrVal['name']);
$get_attributeLabel = $wpdb->get_results( "SELECT attribute_id, attribute_label FROM {$wpdb->prefix}woocommerce_attribute_taxonomies WHERE attribute_name = '{$attrVal['name']}'" );
$attrlabel = trim($attrVal['name']);
$attrslug = strtolower($attrlabel);
$attrslug = preg_replace('/\s/', '-', $attrslug);
$custom_attribute_name = "pa_" . $attrslug;
$attrtype = 'text';
$attrordr = 'menu_order';
$attr_data = $attrVal['value'];
$get_transistent_atrributes = get_option('_transient_wc_attribute_taxonomies');
$get_count_transistent_attr = is_array($get_transistent_atrributes) ? count($get_transistent_atrributes) : 0;
$count_transistent_attr = $get_count_transistent_attr + 1;
if(!empty($get_transistent_atrributes)){
foreach($get_transistent_atrributes as $tak => $tav) {
$new_trans_attr_list[$tak] = new \stdClass();
foreach($tav as $attr_reg_key => $attr_reg_val) {
$new_trans_attr_list[$tak]->$attr_reg_key = $attr_reg_val;
}
}
}
if(empty($get_attributeLabel)){
}else {
$attrId = $get_attributeLabel[0]->attribute_id;
$custom_attribute_name = 'pa_' . $attrVal['name'];
$split_line = explode('|', $attr_data);
$reg_attribute_id = wp_set_object_terms($pID, $split_line, $custom_attribute_name);
$metaData['_product_attributes'][$attrKey]['value'] = '';
}
}
}
if($get_csvpro_settings['woocomattr'] == 'true'){
foreach($metaData['_product_attributes'] as $attr_keys => $attr_values){
$metaData['_product_attributes'][$attr_keys]['value'] = '';
}
}
}
if(!empty($variation_id)){
for($i=0 ; $i< count($variation_id) ; $i++) {
if(($import_type == 'WooCommerce Product' || $import_type == 'WooCommerce Product Variations') && isset($core_array['VARIATIONSKU'])){
$core_array_sku = explode('->', $core_array['VARIATIONSKU']);
$variationData['_sku'] = $core_array_sku[$i];
}
foreach ($data_array as $ekey => $eval) {
$variation_eval = explode('->', $eval);
switch ($ekey) {
case 'variation_stock_qty' :
$variationData['_stock'] = $variation_eval[$i];
break;
case 'variation_stock_status' :
if(is_numeric($variation_eval[$i])){
$stock_status = '';
if ($variation_eval[$i] == 1) {
$stock_status = 'instock';
}
if ($variation_eval[$i] == 2) {
$stock_status = 'outofstock';
}
$variationData['_stock_status'] = $stock_status;
}
else{
$variationData['_stock_status'] = $data_array[$ekey];
}
break;
case 'variation_tax_status' :
$tax_status = '';
if ($variation_eval[$i] == 1) {
$tax_status = 'taxable';
}
if ($variation_eval[$i] == 2) {
$tax_status = 'shipping';
}
if ($variation_eval[$i] == 3) {
$tax_status = 'none';
}
$variationData['_tax_status'] = $tax_status;
break;
case 'variation_tax_class' :
$variationData['_tax_class']=$variation_eval[$i];
break;
case 'variation_backorders' :
$backorders = '';
if ($variation_eval[$i] == 1) {
$backorders = 'no';
}
if ($variation_eval[$i] == 2) {
$backorders = 'notify';
}
if ($variation_eval[$i] == 3) {
$backorders = 'yes';
}
$variationData['_backorders'] = $backorders;
break;
case 'variation_manage_stock' :
$variationData['_manage_stock'] = $variation_eval[$i];
break;
case 'variation_downloadable' :
$variationData['_downloadable'] = $variation_eval[$i];
break;
case 'variation_download_limit' :
$variationData['_download_limit'] = $variation_eval[$i];
break;
case 'variation_download_expiry' :
$variationData['_ownload_expiry'] = $variation_eval[$i];
break;
case 'variation_sold_individually' :
$variationData['_sold_individually'] = $variation_eval[$i];
break;
case 'variation_virtual' :
$variationData['_virtual'] = $variation_eval[$i];
break;
case 'variation_description':
$variationData['_variation_description'] = $variation_eval[$i];
break;
case 'variation_weight' :
$variationData['_weight'] = $variation_eval[$i];
break;
case 'variation_length' :
$variationData['_length'] = $variation_eval[$i];
break;
case 'variation_width' :
$variationData['_width'] = $variation_eval[$i];
break;
case 'variation_height' :
$variationData['_height'] = $variation_eval[$i];
break;
case 'variation_regular_price' :
$variationData['_regular_price'] = $variation_eval[$i];
if(empty($variationData['_regular_price'])){
global $wpdb;
$price = $wpdb->get_var("SELECT meta_value FROM .$wpdb->prefix.postmeta WHERE meta_key = '_price' AND post_id = $pID");
$variationData['_price'] = $price;
if($variationData['_price']){
$variationData['_price'] = $variationData['_price'];
}
else{
$variationData['_price'] = $variation_eval[$i];
}
}
else{
$variationData['_price'] = $variation_eval[$i];
}
break;
case 'variation_sale_price' :
if(empty($variation_eval[$i])){
$variationData['_price']= $variationData['_regular_price'];
}
else{
$variationData['_price'] = $variation_eval[$i];
$variationData['_sale_price'] = $variation_eval[$i];
}
break;
case 'variation_thumbnail_id' :
if (is_numeric($variation_eval[$i])) {
$variationData['_thumbnail_id'] = $variation_eval[$i];
}
break;
case 'variation_attributes' :
if ($variation_eval[$i]) {
$cusattribute = explode(',',$variation_eval[$i]);
foreach($cusattribute as $cusattrkey){
$cus_attribute = explode('|',$cusattrkey);
$cus_attribute_label = $cus_attribute[0];
$attri_name = $wpdb->get_results( "SELECT attribute_name FROM {$wpdb->prefix}woocommerce_attribute_taxonomies where attribute_label = '$cus_attribute_label' ");
$cus_attribute_lower = $attri_name[0]->attribute_name;
$cus_attribute_value = $cus_attribute[1];
$cus_attri_value = $wpdb->get_var("SELECT slug FROM {$wpdb->prefix}terms WHERE name = '$cus_attribute_value' ");
if(empty($cus_attri_value)){
$cus_attri_value = '';
}
$variationData['attribute_'.$cus_attribute_lower] = $cus_attri_value;
}
}
break;
}
}
foreach ($variationData as $variation_key => $variation_value) {
update_post_meta($variation_id[$i], $variation_key, $variation_value);
}
}
}
// Insert all meta information
foreach ($metaData as $meta_key => $meta_value) {
update_post_meta($pID, $meta_key, $meta_value);
}
}
}