403Webshell
Server IP : 62.60.133.156  /  Your IP : 216.73.217.51
Web Server : LiteSpeed
System : Linux linux24.centraldnserver.com 4.18.0-553.141.2.lve.el8.x86_64 #1 SMP Wed Jul 8 16:10:02 UTC 2026 x86_64
User : mimradmin ( 1166)
PHP Version : 7.4.33
Disable Function : show_source, system, shell_exec, passthru, exec, popen, proc_open
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : ON |  Sudo : OFF |  Pkexec : OFF
Directory :  /proc/self/cwd/wp-content/plugins/import-woocommerce/importExtensions/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /proc/self/cwd/wp-content/plugins/import-woocommerce/importExtensions/WooCommerceMetaImport.php
<?php

/**
 * Import Woocommerce plugin file.
 *
 * Copyright (C) 2010-2020, Smackcoders Inc - info@smackcoders.com
 */

namespace Smackcoders\SMWC;
use Smackcoders\SMWC\WC_Coupon;
use Smackcoders\SMWC\WC_Product_Attribute;

if (! defined('ABSPATH'))
	exit; // Exit if accessed directly

require_once('ImportHelpers.php');

class WooCommerceMetaImport extends ImportHelpers
{
	private static $woocommerceMetaInstance = null, $media_instance;

	public static function getInstance()
	{

		if (WooCommerceMetaImport::$woocommerceMetaInstance == null) {
			WooCommerceMetaImport::$woocommerceMetaInstance = new WooCommerceMetaImport;
			WooCommerceMetaImport::$media_instance = new MediaHandling();
			return WooCommerceMetaImport::$woocommerceMetaInstance;
		}
		return WooCommerceMetaImport::$woocommerceMetaInstance;
	}
	public function woocommerce_product_bundle_import_function($data_array, $image_meta, $pID, $variation_id, $import_type, $line_number, $mode, $header_array, $value_array, $core_array, $hash_key, $gmode, $templatekey, $poly_values)
	{
		global $wpdb;
		$bundle = wc_get_product($pID);
		foreach ($data_array as $ekey => $eval) {
			switch ($ekey) {
				case 'product_bundle_items':
					if (!empty($data_array[$ekey]) && $bundle->is_type('bundle')) {
						$bundle_product_ids = explode('|', $data_array[$ekey]);

						if ($bundle) {
							// Retrieve existing bundled items
							$existing_bundle_items = $bundle->get_bundled_items();

							// Create a map of existing bundled item IDs by product ID
							$existing_items_map = [];
							foreach ($existing_bundle_items as $existing_item) {
								$existing_items_map[$existing_item->get_product_id()] = $existing_item->get_id();
							}

							$i = 0;
							foreach ($bundle_product_ids as $product_id) {
								if (is_numeric($product_id)) {
									$product_id = intval($product_id);
								} else {
									$product_id = ltrim($product_id);
									$product_id = $wpdb->get_var("SELECT ID FROM {$wpdb->prefix}posts WHERE post_type = 'product' AND post_title = '$product_id' ORDER BY ID DESC");
								}
								if ($product_id) {
									if (isset($existing_items_map[$product_id])) { // case : duplicate bundle ID check
										continue;
									} else {
										// Add new bundled item
										$bundled_items[] = array('product_id' => $product_id, 'bundle_id' => $pID, 'menu_order' => $i,);
										if (!empty($bundled_items)) {
											$bundle->set_bundled_data_items($bundled_items);
										}
									}
								}
								$i++;
							}
						}
					}
					break;
				case 'pb_regular_price':
					$regular_price = !empty($data_array[$ekey]) ? $data_array[$ekey] : '';
					// Set regular price
					if ($bundle && $bundle->is_type('bundle')) {
						if (isset($data_array['pb_regular_price'])) {
							$regular_price = $data_array['pb_regular_price'];
							$bundle->set_regular_price($regular_price);
						}
					}
					break;
				case 'pb_sale_price':
					$regular_price = !empty($data_array[$ekey]) ? $data_array[$ekey] : '';
					// Set regular price
					if ($bundle && $bundle->is_type('bundle')) {
						if (isset($data_array['pb_sale_price'])) {
							$sale_price = $data_array['pb_sale_price'];
							$bundle->set_sale_price($sale_price);
							$bundle->set_price($sale_price);
						}
					}
					break;
				case '_wc_pb_virtual_bundle':
					$virtual_bundle = strtolower($data_array[$ekey]);
					if (isset($virtual_bundle) && $bundle->is_type('bundle')) {
						$bundle->set_virtual_bundle($virtual_bundle);
					}
					break;
				case 'layout':
					$layout_mapping = ['standard' => 'default', 'tabular' => 'tabular', 'grid' => 'grid'];
					$layout_status = $layout_mapping[$data_array[$ekey]] ?? '';
					if (isset($layout_status) && $bundle->is_type('bundle') && !empty($layout_status)) {
						$bundle->set_layout($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';
					}
					if (isset($form_location_status) && $bundle->is_type('bundle')) {
						$bundle->set_add_to_cart_form_location($form_location_status);
					}
					break;
				case 'item_grouping':
					$item_grouping_status = '';
					if ($data_array[$ekey] == 'grouped') {
						$item_grouping_status = 'parent';
					} else if ($data_array[$ekey] == 'flat') {
						$item_grouping_status = 'noindent';
					} else {
						$item_grouping_status = '';
					}
					if (isset($item_grouping_status) && $bundle->is_type('bundle')) {
						$bundle->set_group_mode($item_grouping_status);
					}
					break;
				case 'min_bundle_size':
					$min_size = $data_array[$ekey];
					if (isset($min_size) && $bundle->is_type('bundle')) {
						$bundle->set_min_bundle_size($min_size);
					}
					break;
				case 'max_bundle_size':
					$max_size = $data_array[$ekey];
					if (isset($max_size) && $bundle->is_type('bundle')) {
						$bundle->set_max_bundle_size($max_size);
					}
					break;
				case 'edit_in_cart':
					$edit_cart_status = '';
					if ($data_array[$ekey] == 'Yes') {
						$edit_cart_status = 'yes';
					} elseif ($data_array[$ekey] == 'No') {
						$edit_cart_status = 'no';
					}
					if ($edit_cart_status && $bundle->is_type('bundle')) {
						$bundle->set_editable_in_cart($edit_cart_status);
					}
					break;
				case 'optional':
				case 'priced_individually':
				case 'override_title':
				case 'override_description':
				case 'hide_thumbnail':
					if (isset($data_array[$ekey]) && $data_array[$ekey] && $bundle->is_type('bundle')) {
						$bundle_product_ids = explode('|', $data_array[$ekey]);
						$bundle_product_table = $wpdb->prefix . 'woocommerce_bundled_itemmeta';

						// Fetch existing bundled item IDs
						$bundle_meta_query = $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_query);

						foreach ($bundle_meta_result as $i => $result) {
							$bundle_meta_id = $result->bundled_item_id;
							$bundle_meta_value = isset($bundle_product_ids[$i]) ? $bundle_product_ids[$i] : '';

							// Determine the meta_value based on the provided value
							$bundle_meta_values = '';
							if ($bundle_meta_value == 'Yes') {
								$bundle_meta_values = 'yes';
							} elseif ($bundle_meta_value == 'No') {
								$bundle_meta_values = 'no';
							}

							// Update or insert the metadata
							if ($mode == 'Update') {
								$this->update_bundle_meta($bundle_meta_id, $ekey, $bundle_meta_values);
							} else {
								$this->add_bundle_meta($bundle_meta_id, $ekey, $bundle_meta_values);
							}
						}
					}
					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 (isset($data_array[$ekey]) && $data_array[$ekey] && $bundle->is_type('bundle')) {
						$bundle_product_ids = explode('|', $data_array[$ekey]);
						$bundle_meta_table = $wpdb->prefix . 'woocommerce_bundled_items';

						// Get bundled items
						$bundle_meta_query = $wpdb->prepare("SELECT bundled_item_id FROM {$bundle_meta_table} WHERE bundle_id = %d", $pID);
						$bundle_meta_result = $wpdb->get_results($bundle_meta_query);

						foreach ($bundle_meta_result as $index => $bundle_meta) {
							$bundle_meta_id = $bundle_meta->bundled_item_id;
							$bundle_meta_value = isset($bundle_product_ids[$index]) ? $bundle_product_ids[$index] : '';

							if ($bundle_meta_value == 'Yes') {
								$bundle_meta_values = 'visible';
							} elseif ($bundle_meta_value == 'No') {
								$bundle_meta_values = 'hidden';
							} else {
								continue; // Skip if the value is not recognized
							}

							if ($mode == 'Update') {
								// Custom function or use direct SQL query if no built-in function exists
								$this->update_bundle_meta($bundle_meta_id, $ekey, $bundle_meta_values);
							} else {
								// Custom function or use direct SQL query if no built-in function exists
								$this->add_bundle_meta($bundle_meta_id, $ekey, $bundle_meta_values);
							}
						}
					}
					break;
				case 'quantity_min':
				case 'quantity_max':
				case 'discount':
					if (isset($data_array[$ekey]) && $data_array[$ekey] && $bundle->is_type('bundle')) {
						$bundle_product_ids = explode('|', $data_array[$ekey]);

						// Fetch existing bundled item IDs
						$bundle_meta_query = $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_query);

						foreach ($bundle_meta_result as $i => $result) {
							$bundle_meta_id = $result->bundled_item_id;
							$bundle_meta_value = isset($bundle_product_ids[$i]) ? $bundle_product_ids[$i] : '';

							// Update or insert the metadata
							if ($mode == 'Update') {
								$this->update_bundle_meta($bundle_meta_id, $ekey, $bundle_meta_value);
							} else {
								$this->add_bundle_meta($bundle_meta_id, $ekey, $bundle_meta_value);
							}
						}
					}
					break;
				case 'override_title_value':
					if (isset($data_array[$ekey]) && $data_array[$ekey] && $bundle->is_type('bundle')) {
						$bundle_product_ids = explode('|', $data_array[$ekey]);
						$bundle_product_table = $wpdb->prefix . 'woocommerce_bundled_itemmeta';

						// Fetch existing bundled item IDs
						$bundle_meta_query = $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_query);

						foreach ($bundle_meta_result as $i => $result) {
							$bundle_meta_id = $result->bundled_item_id;
							$bundle_meta_value = isset($bundle_product_ids[$i]) ? $bundle_product_ids[$i] : '';

							// Update or insert the metadata
							if ($mode == 'Update') {
								$this->update_bundle_meta($bundle_meta_id, 'title', $bundle_meta_value);
							} else {
								$this->add_bundle_meta($bundle_meta_id, 'title', $bundle_meta_value);
							}
						}
					}
					break;
				case 'override_description_value':
					if (isset($data_array[$ekey]) && $data_array[$ekey] && $bundle->is_type('bundle')) {
						$bundle_product_ids = explode('|', $data_array[$ekey]);
						$bundle_product_table = $wpdb->prefix . 'woocommerce_bundled_itemmeta';

						// Fetch existing bundled item IDs
						$bundle_meta_query = $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_query);

						foreach ($bundle_meta_result as $i => $result) {
							$bundle_meta_id = $result->bundled_item_id;
							$bundle_meta_value = isset($bundle_product_ids[$i]) ? $bundle_product_ids[$i] : '';

							// Update or insert the metadata
							if ($mode == 'Update') {
								$this->update_bundle_meta($bundle_meta_id, 'description', $bundle_meta_value);
							} else {
								$this->add_bundle_meta($bundle_meta_id, 'description', $bundle_meta_value);
							}
						}
					}
					break;
			}
			$bundle->save();
		}
	}
	public function update_bundle_meta($bundled_item_id, $meta_key, $meta_value)
	{
		global $wpdb;
		$table_name = $wpdb->prefix . 'woocommerce_bundled_itemmeta';

		// Check if metadata already exists
		$existing_meta_id = $wpdb->get_var($wpdb->prepare(
			"SELECT meta_id FROM {$table_name} WHERE bundled_item_id = %d AND meta_key = %s",
			$bundled_item_id,
			$meta_key
		));

		if ($existing_meta_id) {
			// Update existing metadata
			$wpdb->update(
				$table_name,
				array('meta_value' => $meta_value),
				array('meta_id' => $existing_meta_id),
				array('%s'),
				array('%d')
			);
		}
	}

	public function add_bundle_meta($bundled_item_id, $meta_key, $meta_value)
	{
		global $wpdb;
		$table_name = $wpdb->prefix . 'woocommerce_bundled_itemmeta';
		// Insert new metadata
		$wpdb->insert(
			$table_name,
			array(
				'bundled_item_id' => $bundled_item_id,
				'meta_key' => $meta_key,
				'meta_value' => $meta_value
			),
			array('%d', '%s', '%s')
		);
	}
	public function woocommerce_coupons_meta_import_function($data_array, $image_meta, $pID, $variation_id, $import_type, $line_number, $mode, $header_array, $value_array, $hash_key)
	{
		// Initialize the WooCommerce Coupon object
		try {
			$coupon = new \WC_Coupon($pID);
			// Prepare the metadata array for the coupon
			$metaData = [];

			foreach ($data_array as $ekey => $eval) {
				switch ($ekey) {
					case 'discount_type':
						$coupon->set_discount_type($data_array[$ekey]);
						break;
					case 'coupon_amount':
						$coupon->set_amount($data_array[$ekey]);
						break;
					case 'individual_use':
						$coupon->set_individual_use($data_array[$ekey]);
						break;
					case 'exclude_product_ids':
						$coupon->set_excluded_product_ids(explode(',', $data_array[$ekey]));
						break;
					case 'product_ids':
						$coupon->set_product_ids(explode(',', $data_array[$ekey]));
						break;
					case 'usage_limit':
						$coupon->set_usage_limit($data_array[$ekey]);
						break;
					case 'usage_limit_per_user':
						$coupon->set_usage_limit_per_user($data_array[$ekey]);
						break;
					case 'limit_usage_to_x_items':
						$coupon->set_limit_usage_to_x_items($data_array[$ekey]);
						break;
					case 'expiry_date':
						$coupon->set_date_expires(strtotime($data_array[$ekey]));
						break;
					case 'free_shipping':
						$coupon->set_free_shipping($data_array[$ekey]);
						break;
					case 'exclude_sale_items':
						$coupon->set_exclude_sale_items($data_array[$ekey]);
						break;
					case 'wildcard_value':
						if (strpos($data_array[$ekey], '|') !== false) {
							$data = explode('|', $data_array[$ekey]);
							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]);
							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':
						$coupon->set_minimum_amount($data_array[$ekey]);
						break;
					case 'maximum_amount':
						$coupon->set_maximum_amount($data_array[$ekey]);
						break;
					case 'customer_email':
						$coupon->set_email_restrictions(explode(',', $data_array[$ekey]));
						break;
					case 'exclude_product_categories':
						$coupon->set_excluded_product_categories(explode(',', $data_array[$ekey]));
						break;
					case 'product_categories':
						$coupon->set_product_categories(explode(',', $data_array[$ekey]));
						break;
					default:
						$metaData['_subscription_payment_sync_date'] = 'a:2:{s:3:"day";i:0;s:5:"month";i:0;}';
						break;
				}
			}
			// Add custom meta data (if applicable)
			foreach ($metaData as $meta_key => $meta_value) {
				update_post_meta($pID, $meta_key, $meta_value);
			}

			// Save the coupon
			$coupon_id = $coupon->save();
		} catch (\Exception $e) {
			error_log('Error message coupons: ' . $e->getMessage());
		}
	}
	// public function woocommerce_meta_import_function($data_array, $image_meta, $pID, $variation_id, $import_type, $line_number, $header_array, $value_array, $mode, $hash_key,$attr_data)
	// {
	// 	global $wpdb;
	// 	global $core_instance;
	// 	$get_all_gallery_images = array();
	// 	$metaData = 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'];
	// 	// }
	// 	$product = wc_get_product($pID);
	// 	$product_type = $product ? $product->get_type() : '';
	// 	//$methods = get_class_methods($product);
	// 	foreach ($data_array as $ekey => $eval) {
	// 		switch ($ekey) {
	// 			case 'stock':
	// 				$metaData['_stock'] = $data_array[$ekey];
	// 				if (!$product->is_type('external') && method_exists($product, 'set_stock_quantity') && method_exists($product, 'set_manage_stock') && method_exists($product, 'set_stock_status')) {
	// 					// Check if stock is numeric and valid
	// 					if ((!empty($metaData['_stock']) && is_numeric($metaData['_stock']))) {
	// 						$stock_status = '';
	// 						if ($metaData['_stock'] >= 1) {
	// 							$stock_status = 'instock';
	// 							$product->set_stock_quantity($metaData['_stock']);
	// 							$product->set_manage_stock(true);
	// 							$product->set_stock_status($stock_status);
	// 						} else {
	// 							$stock_status = 'outofstock';
	// 							$product->set_manage_stock(true);
	// 							$product->set_stock_quantity($metaData['_stock']);
	// 							$product->set_stock_status($stock_status);
	// 						}
	// 						// Update parent product stock status if it's a variation
	// 						$parent_id = wp_get_post_parent_id($pID);
	// 						if ($parent_id) {
	// 							wc_update_product_stock_status($parent_id, $stock_status);
	// 						}
	// 					} else {
	// 						// If stock is not valid, set the product to 'outofstock'
	// 						$product->set_manage_stock(false);
	// 						$product->set_stock_status('outofstock');
	// 					}
	// 				}
	// 				break;
	// 			case 'stock_status':
	// 				$stock_status = $data_array[$ekey];
	// 				if (!empty($stock_status) && !$product->is_type('external') && method_exists($product, 'set_stock_status')) {
	// 					$product->set_stock_status($stock_status);
	// 					$parent_id = wp_get_post_parent_id($pID);
	// 					if ($parent_id) { //stock status if it's a variation
	// 						wc_update_product_stock_status($parent_id, $stock_status);
	// 					}
	// 				}
	// 				break;
	// 			case 'visibility':
	// 				// Define visibility options
	// 				$visibility_options = array(
	// 					1 => 'visible',
	// 					2 => 'catalog',
	// 					3 => 'search',
	// 					4 => 'hidden'
	// 				);

	// 				// Default visibility
	// 				$visibility = 'visible';

	// 				// Check if the provided visibility value exists in the options
	// 				if (isset($data_array[$ekey]) && array_key_exists($data_array[$ekey], $visibility_options) && method_exists($product, 'set_catalog_visibility')) {
	// 					$visibility = $visibility_options[$data_array[$ekey]];
	// 					$product->set_catalog_visibility($visibility);
	// 				}
	// 				break;

	// 			case 'downloadable':
	// 				if (isset($data_array[$ekey]) && method_exists($product, 'set_downloadable')) {
	// 					$is_downloadable = ($data_array[$ekey] === 'yes' || $data_array[$ekey] === 1 || $data_array[$ekey] === '1');
	// 					$product->set_downloadable($is_downloadable);
	// 				}
	// 				break;

	// 			case 'virtual':
	// 				if (isset($data_array[$ekey]) && method_exists($product, 'set_virtual')) {
	// 					$is_virtual = ($data_array[$ekey] === 'yes' || $data_array[$ekey] === 1 || $data_array[$ekey] === '1');
	// 					$product->set_virtual($is_virtual);
	// 				}
	// 				break;

	// 			case 'product_image_gallery':
	// 				if (!empty($data_array[$ekey]) && method_exists($product, 'set_gallery_image_ids')) {
	// 					// Check the delimiter (',' or '|') for splitting the images
	// 					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];
	// 					}

	// 					// Prepare an array for storing image IDs
	// 					$gallery_image_ids = [];
	// 					$indexs = 0;
	// 					foreach ($get_all_gallery_images as $gallery_image) {
	// 						// If it's already an ID, use it; otherwise, handle the image upload
	// 						if (is_numeric($gallery_image)) {
	// 							$gallery_image_ids[] = $gallery_image;
	// 						} else {
	// 							// Assuming a function to upload image and get its attachment ID exists
	// 							$attachmentId = WooCommerceMetaImport::$media_instance->image_meta_table_entry($line_number, '', $pID, 'product_image_gallery', $gallery_image, $hash_key, 'product', 'post', '', '', '', '', '', '', $indexs);
	// 							$gallery_image_ids[] = $attachmentId;
	// 						}
	// 						$indexs++;
	// 					}
	// 					$product->set_gallery_image_ids($gallery_image_ids);
	// 				}
	// 				break;

	// 			case 'regular_price':
	// 				$regular_price = !empty($data_array[$ekey]) ? $data_array[$ekey] : '';

	// 				if ($product && method_exists($product, 'set_regular_price') && method_exists($product, 'get_regular_price') && method_exists($product, 'get_sale_price')) {
	// 					if ($regular_price) {
	// 						$product->set_regular_price($regular_price);
	// 					} else {
	// 						// If regular price is empty, get the existing price
	// 						$current_regular_price = $product->get_regular_price();
	// 						if ($import_type === 'WooCommerce Product Variations' || $import_type === 'WooCommerce Product') {
	// 							// If there is a sale price set, use it as the price
	// 							$sale_price = $product->get_sale_price();
	// 							$final_price = $sale_price ? $sale_price : $current_regular_price;
	// 							$product->set_price($final_price);
	// 						}
	// 					}
	// 				}
	// 				break;
	// 			case 'sale_price':
	// 				$sale_price = !empty($data_array[$ekey]) ? $data_array[$ekey] : '';
	// 				if ($product && method_exists($product, 'get_regular_price') && method_exists($product, 'set_price') && method_exists($product, 'set_sale_price')) {
	// 					if ($mode === 'Update') {
	// 						if (empty($sale_price)) {
	// 							// If sale price is empty, reset to regular price
	// 							$regular_price = $product->get_regular_price();
	// 							$product->set_price($regular_price); // Set price to regular price
	// 							$product->set_sale_price(''); // Remove sale price
	// 						} else {
	// 							// Set sale price and update product price
	// 							$product->set_sale_price($sale_price);
	// 							$product->set_price($sale_price);
	// 						}
	// 					} else {
	// 						if (empty($sale_price)) {
	// 							// If sale price is empty, use regular price
	// 							$regular_price = $product->get_regular_price();
	// 							$product->set_price($regular_price);
	// 						} else {
	// 							// Set sale price and update product price
	// 							$product->set_sale_price($sale_price);
	// 							$product->set_price($sale_price);
	// 						}
	// 					}
	// 				}
	// 				break;
	// 			case 'tax_status':
	// 				$tax_status_options = array(
	// 					1 => 'taxable',
	// 					2 => 'shipping',
	// 					3 => 'none'
	// 				);
	// 				$tax_status = 'taxable';
	// 				if (isset($data_array[$ekey]) && array_key_exists($data_array[$ekey], $tax_status_options) && method_exists($product, 'set_tax_status')) {
	// 					$tax_status = $tax_status_options[$data_array[$ekey]];
	// 					$product->set_tax_status($tax_status);
	// 				}
	// 				break;
	// 			case 'tax_class':
	// 				$tax_class = !empty($data_array[$ekey]) ? $data_array[$ekey] : '';
	// 				if (method_exists($product, 'set_tax_class')) {
	// 					$product->set_tax_class($tax_class);
	// 				}
	// 				break;
	// 			case 'purchase_note':
	// 				// Set the purchase note meta field
	// 				if (method_exists($product, 'set_purchase_note')) {
	// 					$product->set_purchase_note($data_array[$ekey]);
	// 				}
	// 				break;
	// 			case 'featured_product':
	// 				// Determine if the product should be featured
	// 				$is_featured = !empty($data_array[$ekey]) && $data_array[$ekey] == '1';
	// 				if (method_exists($product, 'set_featured')) {
	// 					$product->set_featured($is_featured);
	// 				}
	// 				break;
	// 			case 'weight':
	// 				$weight = $data_array[$ekey];
	// 				if (method_exists($product, 'set_weight')) {
	// 					$product->set_weight($weight);
	// 				}
	// 				break;

	// 			case 'length':
	// 				$length = $data_array[$ekey];
	// 				if (method_exists($product, 'set_length')) {
	// 					$product->set_length($length);
	// 				}
	// 				break;

	// 			case 'width':
	// 				$width = $data_array[$ekey];
	// 				if (method_exists($product, 'set_width')) {
	// 					$product->set_width($width);
	// 				}
	// 				break;

	// 			case 'height':
	// 				$height = $data_array[$ekey];
	// 				if (method_exists($product, 'set_height')) {
	// 					$product->set_height($height);
	// 				}
	// 				break;
	// 			case 'variation_description':
	// 				if ($product->is_type('variation')) {
	// 					$variation_description = $data_array[$ekey];
	// 					$product->set_description($variation_description);
	// 				}
	// 				break;
	// 			case 'sale_price_dates_from':
	// 				$date_from = strtotime($data_array[$ekey]); // Convert to timestamp
	// 				if (method_exists($product, 'set_date_on_sale_from')) {
	// 					$product->set_date_on_sale_from($date_from);
	// 				}
	// 				break;

	// 			case 'sale_price_dates_to':
	// 				$date_to = strtotime($data_array[$ekey]); // Convert to timestamp
	// 				if (method_exists($product, 'set_date_on_sale_to')) {
	// 					$product->set_date_on_sale_to($date_to);
	// 				}
	// 				break;

	// 			case 'backorders':
	// 				$backorders = '';
	// 				if ($data_array[$ekey] == 1) {
	// 					$backorders = 'no';
	// 				} elseif ($data_array[$ekey] == 2) {
	// 					$backorders = 'notify';
	// 				} elseif ($data_array[$ekey] == 3) {
	// 					$backorders = 'yes';
	// 				}
	// 				if ($product->get_type() !== 'external' && method_exists($product, 'set_backorders')) {
	// 					$product->set_backorders($backorders);
	// 				}
	// 				break;

	// 			case 'manage_stock':
	// 				if ((!$product->is_type('external'))) {
	// 					$manage_stock = ($data_array[$ekey] == 'yes' || $data_array[$ekey] == 1) ? true : false;
	// 					if (method_exists($product, 'set_manage_stock')) {
	// 						$product->set_manage_stock($manage_stock);
	// 					}
	// 				}
	// 				break;

	// 			case 'low_stock_threshold':
	// 				$low_stock_threshold = intval($data_array[$ekey]);
	// 				if (method_exists($product, 'set_low_stock_amount')) {
	// 					$product->set_low_stock_amount($low_stock_threshold);
	// 				}
	// 				break;

	// 			case 'file_paths':
	// 				$file_paths = $data_array[$ekey];
	// 				if (!empty($file_paths) && method_exists($product, 'set_downloadable_files')) {
	// 					$product->set_downloadable_files($file_paths);
	// 				}
	// 				break;

	// 			case 'download_limit':
	// 				$download_limit = intval($data_array[$ekey]);
	// 				if ($product->is_downloadable() && method_exists($product, 'set_download_limit')) {
	// 					$product->set_download_limit($download_limit);
	// 				}
	// 				break;

	// 			case 'comment_status':
	// 				$status = $data_array[$ekey];
	// 				wp_update_post(array('ID' => $pID, 'comment_status' => $status));
	// 				break;

	// 			case 'menu_order':
	// 				$menu_order = intval($data_array[$ekey]);
	// 				wp_update_post(array('ID' => $pID, 'menu_order' => $menu_order));
	// 				break;

	// 			case 'download_expiry':
	// 				$download_expiry = intval($data_array[$ekey]);
	// 				if ($product->is_downloadable() && method_exists($product, 'set_download_expiry')) {
	// 					$product->set_download_expiry($download_expiry);
	// 				}
	// 				break;
	// 			case 'download_type':
	// 				$download_type = $data_array[$ekey];
	// 				if ($product->is_downloadable()) {
	// 					if ($download_type === 'file' || $download_type === 'external') {
	// 						//$product->update_meta_data('_download_type', $download_type);
	// 						update_post_meta($pID, '_download_type', $download_type);
	// 					}
	// 				}
	// 				break;

	// 			case 'product_url':
	// 				if ($product->is_type('external') && method_exists($product, 'set_product_url')) {
	// 					$product_url = $data_array[$ekey];
	// 					!empty($product_url) ? $product->set_product_url($product_url) : '';
	// 				}
	// 				break;

	// 			case 'button_text':
	// 				if ($product->is_type('external') && method_exists($product, 'set_button_text')) {
	// 					$button_text = $data_array[$ekey];
	// 					$product->set_button_text($button_text);
	// 				}
	// 				break;
	// 			case 'product_shipping_class':
	// 			case 'variation_shipping_class':
	// 				$class_name = $data_array[$ekey];
	// 				$class = get_term_by('name', $class_name, 'product_shipping_class');

	// 				if ($class && !is_wp_error($class)) {
	// 					$class_id = $class->term_id;

	// 					if ($product && method_exists($product, 'set_shipping_class_id')) {
	// 						if ($product->is_type('variation')) {
	// 							// Handle variation shipping class
	// 							$product->set_shipping_class_id($class_id);
	// 						} else {
	// 							// Handle simple or other product types
	// 							$product->set_shipping_class_id($class_id);
	// 						}
	// 					}
	// 				}
	// 				break;
	// 			case 'sold_individually':
	// 				$sold_individually = $data_array[$ekey];
	// 				if (method_exists($product, 'set_shipping_class_id')) {
	// 					$product->set_sold_individually($sold_individually === 'yes');
	// 				}
	// 				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 = array(); // Initialize as an array
	// 				if (!empty($data_array[$ekey]) && method_exists($product, 'set_downloadable') && method_exists($product, 'set_downloads')) {
	// 					$product->set_downloadable(true);
	// 					$downloadable_files_raw = explode('|', $data_array[$ekey]);
	// 					$downloadable_files = [];

	// 					foreach ($downloadable_files_raw as $file_entry) {
	// 						$file_info = explode(',', $file_entry);
	// 						$file_url = $file_info[1] ?? '';
	// 						$file_name = $file_info[0] ?? '';
	// 						$downloadable_files[] = [
	// 							'name' => sanitize_text_field($file_name),
	// 							'file' => esc_url($file_url),
	// 						];
	// 					}
	// 					$product->set_downloads($downloadable_files);
	// 				}
	// 				break;
	// 			case 'grouping_product':
	// 				if (!empty($data_array[$ekey])) {
	// 					$grouping_product_ids = explode(',', $data_array[$ekey]);
	// 					if ($product && 'grouped' === $product->get_type()) {
	// 						$my_grouping_product_id = [];
	// 						foreach ($grouping_product_ids as $grouping_product_id) {
	// 							if (is_numeric($grouping_product_id)) {
	// 								$my_grouping_product_id[] = (int) $grouping_product_id;
	// 							} else {
	// 								$my_grouping_product_id[] =  $wpdb->get_var("SELECT ID FROM {$wpdb->prefix}posts WHERE post_type = 'product' AND post_title = '$grouping_product_id' order by ID Desc ");
	// 							}
	// 						}
	// 						if (!empty($my_grouping_product_id)) {
	// 							$product->set_children($my_grouping_product_id);
	// 						}
	// 					}
	// 				}
	// 				break;

	// 			case 'crosssell_ids':
	// 				$crosssellids = [];
	// 				if (!empty($data_array[$ekey])) {
	// 					$exploded_crosssell_ids = explode(',', $data_array[$ekey]);
	// 					foreach ($exploded_crosssell_ids as $crosssell_id) {
	// 						if (is_numeric($crosssell_id)) {
	// 							$crosssellids[] = (int) $crosssell_id;
	// 						} else {
	// 							$product_id =  $wpdb->get_var("SELECT ID FROM {$wpdb->prefix}posts WHERE post_type = 'product' AND post_title = '$crosssell_id' order by ID Desc ");
	// 							if ($product_id) {
	// 								$crosssellids[] = $product_id;
	// 							}
	// 						}
	// 					}
	// 				}

	// 				if (!empty($crosssellids) && method_exists($product, 'set_cross_sell_ids')) {
	// 					$product->set_cross_sell_ids($crosssellids);
	// 				}
	// 				break;
	// 			case 'upsell_ids':
	// 				$upsellids = [];
	// 				if (!empty($data_array[$ekey])) {
	// 					$exploded_upsell_ids = explode(',', $data_array[$ekey]);
	// 					foreach ($exploded_upsell_ids as $upsell_id) {
	// 						if (is_numeric($upsell_id)) {
	// 							$upsellids[] = (int) $upsell_id;
	// 						} else {
	// 							// Fetch product ID based on product title
	// 							$product_id = $wpdb->get_var("SELECT ID FROM {$wpdb->prefix}posts WHERE post_type = 'product' AND post_title = '$upsell_id' order by ID Desc ");
	// 							if ($product_id) {
	// 								$upsellids[] = $product_id;
	// 							}
	// 						}
	// 					}
	// 				}
	// 				if (!empty($upsellids) && method_exists($product, 'set_upsell_ids')) {
	// 					$product->set_upsell_ids($upsellids);
	// 				}
	// 				break;
	// 			case 'thumbnail_id':
	// 				if (method_exists($product, 'set_image_id')) {
	// 					if (is_numeric($data_array[$ekey])) {
	// 						$product->set_image_id((int) $data_array[$ekey]);
	// 					} else {
	// 						$f_path = WooCommerceMetaImport::$media_instance->get_filename_path($data_array[$ekey], '');
	// 						$fimg_name = isset($f_path['fimg_name']) ? $f_path['fimg_name'] : '';
	// 						$attachment_id = $wpdb->get_results("SELECT ID FROM {$wpdb->prefix}posts WHERE post_type = 'attachment' AND guid LIKE '%$fimg_name%'", ARRAY_A);
	// 						!empty($attachment_id[0]['ID']) ? $product->set_image_id($attachment_id[0]['ID']) : '';
	// 					}
	// 				}
	// 				break;
	// 			case 'default_attributes':
	// 				if ($product && $product->is_type('variation')) {
	// 					$dattribute = explode(',', $data_array[$ekey]);
	// 					$default_attributes = [];
	// 					foreach ($dattribute as $dattrkey) {
	// 						$def_attribute = explode('|', $dattrkey);
	// 						$taxonomy = 'pa_' . $def_attribute[0];
	// 						$attribute_taxonomy = wc_sanitize_taxonomy_name($taxonomy);
	// 						$default_attributes[$attribute_taxonomy] = $def_attribute[1];
	// 					}
	// 					// Set the default attributes for the variable product
	// 					if (!empty($default_attributes) && isset($default_attributes)) {
	// 						$parent_product_id = wp_get_post_parent_id($pID);
	// 						$variation = wc_get_product($parent_product_id);
	// 						$variation->set_default_attributes($default_attributes);
	// 						$variation->save();
	// 					}
	// 				}
	// 				break;
	// 			case 'custom_attributes':
	// 				$variation = wc_get_product($pID);
	// 				// Check if the product is a valid variation
	// 				if (! $variation || ! $variation->is_type('variation')) {
	// 					break;
	// 				}
	// 				$excerpt = [];
	// 				$vartitle = [];
	// 				$attributes = explode(',', $data_array[$ekey]);
	// 				foreach ($attributes as $attribute) {
	// 					$attribute_parts = explode('|', $attribute);
	// 					if (count($attribute_parts) === 2) {
	// 						$attribute_label = $attribute_parts[0];
	// 						$attribute_value = $attribute_parts[1];
	// 						$taxonomy_slug = wc_attribute_taxonomy_name($attribute_label);
	// 						$term = get_term_by('name', $attribute_value, $taxonomy_slug);

	// 						if ($term) {
	// 							$term_slug = $term->slug;
	// 							$customAttributes['attribute_' . $taxonomy_slug] = $term_slug;
	// 							$excerpt[] = $attribute_label . ': ' . $term_slug;
	// 							$vartitle[] = $term_slug;
	// 						}
	// 					}
	// 				}
	// 				// Update custom attributes for the variation
	// 				if (! empty($customAttributes)) {
	// 					$variation->set_attributes($customAttributes);
	// 					$variation->save();
	// 				}

	// 				// Update the product title and excerpt
	// 				if (! empty($vartitle) && ! empty($excerpt)) {
	// 					$parent_product_id = wp_get_post_parent_id($variation_id);

	// 					if ($parent_product_id) {
	// 						$parent_product = wc_get_product($parent_product_id);
	// 						$title = $parent_product->get_name();

	// 						// Prepare the title and excerpt
	// 						$vartitle_str = implode(", ", $vartitle);
	// 						$excerpt_str = implode(", ", $excerpt);

	// 						if (strpos($vartitle_str, '-') !== false) {
	// 							$vartitle_str = str_replace('-', ' ', $vartitle_str);
	// 						}

	// 						// Update the product title and excerpt
	// 						$new_title = $title . ' - ' . $vartitle_str;
	// 						$variation->set_name($new_title);
	// 						$variation->set_short_description($excerpt_str);
	// 						$variation->save();
	// 					}
	// 				}
	// 				break;
	// 				//WooCommerce yith-woocommerce Products Fields
	// 			case '_ywbc_barcode_protocol':
	// 				$metaData['_ywbc_barcode_protocol'] = $data_array[$ekey];
	// 				break;
	// 			case '_ywbc_barcode_value':
	// 				$metaData['_ywbc_barcode_value'] = $data_array[$ekey];
	// 				break;
	// 			case '_ywbc_barcode_display_value':
	// 				$metaData['_ywbc_barcode_display_value'] = $data_array[$ekey];
	// 				break;
	// 				//Add support for yith_cog_cost
	// 			case 'yith_cog_cost':
	// 				$metaData['yith_cog_cost'] = $data_array[$ekey];
	// 				break;
	// 			case 'minimum_allowed_quantity':
	// 				$metaData['minimum_allowed_quantity'] = $data_array[$ekey];
	// 				break;
	// 			case 'maximum_allowed_quantity':
	// 				$metaData['maximum_allowed_quantity'] = $data_array[$ekey];
	// 				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;
	// 			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;
	// 			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;
	// 			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;
	// 		}
	// 		$product->save();
	// 	}
	// 	//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;
	// 		}
	// 	}
	// 	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'] = '';
	// 		}
	// 	}
	// 	foreach ($metaData as $meta_key => $meta_value) {
	// 		update_post_meta($pID, $meta_key, $meta_value);
	// 	}
	// }
	public function woocommerce_meta_import_function($data_array, $image_meta, $pID, $variation_id, $import_type, $line_number, $header_array, $value_array, $mode, $hash_key,$attr_meta_data)
	{
		global $wpdb;
		global $core_instance;
		$get_all_gallery_images = array();
		$metaData = 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'];
		// }
		if (is_plugin_active('jet-booking/jet-booking.php')){
			$booking_type = trim(jet_abaf()->settings->get( 'apartment_post_type' ));
		}
		$product = wc_get_product($pID);
		$product_type = $product ? $product->get_type() : '';
		//$methods = get_class_methods($product);
		foreach ($data_array as $ekey => $eval) {
			switch ($ekey) {
				case 'stock':
					$metaData['_stock'] = $data_array[$ekey];
					if (!$product->is_type('external') && method_exists($product, 'set_stock_quantity') && method_exists($product, 'set_manage_stock') && method_exists($product, 'set_stock_status')) {
						// Check if stock is numeric and valid
						if ((!empty($metaData['_stock']) && is_numeric($metaData['_stock']))) {
							$stock_status = '';
							if ($metaData['_stock'] >= 1) {
								$stock_status = 'instock';
								$product->set_stock_quantity($metaData['_stock']);
								$product->set_manage_stock(true);
								$product->set_stock_status($stock_status);
							} else {
								$stock_status = 'outofstock';
								$product->set_manage_stock(true);
								$product->set_stock_quantity($metaData['_stock']);
								$product->set_stock_status($stock_status);
							}
							// Update parent product stock status if it's a variation
							$parent_id = wp_get_post_parent_id($pID);
							if ($parent_id) {
								wc_update_product_stock_status($parent_id, $stock_status);
							}
						} else {
							// If stock is not valid, set the product to 'outofstock'
							$product->set_manage_stock(false);
							$product->set_stock_status('outofstock');
						}
					}
					break;
				case 'stock_status':
					$stock_status = $data_array[$ekey];
					if (!empty($stock_status) && !$product->is_type('external') && method_exists($product, 'set_stock_status')) {
						$product->set_stock_status($stock_status);
						$parent_id = wp_get_post_parent_id($pID);
						if ($parent_id) { //stock status if it's a variation
							wc_update_product_stock_status($parent_id, $stock_status);
						}
					}
					break;
				case 'visibility':
					// Define visibility options
					$visibility_options = array(
						1 => 'visible',
						2 => 'catalog',
						3 => 'search',
						4 => 'hidden'
					);

					// Default visibility
					$visibility = 'visible';

					// Check if the provided visibility value exists in the options
					if (isset($data_array[$ekey]) && array_key_exists($data_array[$ekey], $visibility_options) && method_exists($product, 'set_catalog_visibility')) {
						$visibility = $visibility_options[$data_array[$ekey]];
						$product->set_catalog_visibility($visibility);
					}
					break;
				case 'post_content':
					if(isset($data_array[$ekey]) && !empty($data_array[$ekey]) && $data_array[$ekey] !==null){
						$content = html_entity_decode($data_array[$ekey]);
						$product->set_description( wp_kses_post( $content ) );
					}
					
					break;

				case 'downloadable':
					if (isset($data_array[$ekey]) && method_exists($product, 'set_downloadable')) {
						$is_downloadable = ($data_array[$ekey] === 'yes' || $data_array[$ekey] === 1 || $data_array[$ekey] === '1');
						$product->set_downloadable($is_downloadable);
					}
					break;

				case 'virtual':
					if (isset($data_array[$ekey]) && method_exists($product, 'set_virtual')) {
						$is_virtual = ($data_array[$ekey] === 'yes' || $data_array[$ekey] === 1 || $data_array[$ekey] === '1');
						$product->set_virtual($is_virtual);
					}
					break;

				case 'product_image_gallery':
					if (!empty($data_array[$ekey]) && method_exists($product, 'set_gallery_image_ids')) {
						// Check the delimiter (',' or '|') for splitting the images
						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];
						}

						// Prepare an array for storing image IDs
						$gallery_image_ids = [];
						$indexs = 0;
						foreach ($get_all_gallery_images as $gallery_image) {
							// If it's already an ID, use it; otherwise, handle the image upload
							if (is_numeric($gallery_image)) {
								$gallery_image_ids[] = $gallery_image;
							} else {
								// Assuming a function to upload image and get its attachment ID exists
								$attachmentId = WooCommerceMetaImport::$media_instance->image_meta_table_entry($line_number, '', $pID, 'product_image_gallery', $gallery_image, $hash_key, 'product', 'post', '', '', '', '', '', '', $indexs);
								$gallery_image_ids[] = $attachmentId;
							}
							$indexs++;
						}
						$product->set_gallery_image_ids($gallery_image_ids);
					}
					break;

				case 'regular_price':
					$regular_price = !empty($data_array[$ekey]) ? $data_array[$ekey] : '';

					if ($product && method_exists($product, 'set_regular_price') && method_exists($product, 'get_regular_price') && method_exists($product, 'get_sale_price')) {
						if ($regular_price) {
							$product->set_regular_price($regular_price);
						} else {
							// If regular price is empty, get the existing price
							$current_regular_price = $product->get_regular_price();
							if ($import_type === 'WooCommerce Product Variations' || $import_type === 'WooCommerce Product') {
								// If there is a sale price set, use it as the price
								$sale_price = $product->get_sale_price();
								$final_price = $sale_price ? $sale_price : $current_regular_price;
								$product->set_price($final_price);
							}
						}
					}
					break;
				case 'sale_price':
					$sale_price = !empty($data_array[$ekey]) ? $data_array[$ekey] : '';
					if ($product && method_exists($product, 'get_regular_price') && method_exists($product, 'set_price') && method_exists($product, 'set_sale_price')) {
						if ($mode === 'Update') {
							if (empty($sale_price)) {
								// If sale price is empty, reset to regular price
								$regular_price = $product->get_regular_price();
								$product->set_price($regular_price); // Set price to regular price
								$product->set_sale_price(''); // Remove sale price
							} else {
								// Set sale price and update product price
								$product->set_sale_price($sale_price);
								$product->set_price($sale_price);
							}
						} else {
							if (empty($sale_price)) {
								// If sale price is empty, use regular price
								$regular_price = $product->get_regular_price();
								$product->set_price($regular_price);
							} else {
								// Set sale price and update product price
								$product->set_sale_price($sale_price);
								$product->set_price($sale_price);
							}
						}
					}
					break;
				case 'tax_status':
					$tax_status_options = array(
						1 => 'taxable',
						2 => 'shipping',
						3 => 'none'
					);
					$tax_status = 'taxable';
					if (isset($data_array[$ekey]) && array_key_exists($data_array[$ekey], $tax_status_options) && method_exists($product, 'set_tax_status')) {
						$tax_status = $tax_status_options[$data_array[$ekey]];
						$product->set_tax_status($tax_status);
					}
					break;
				case 'tax_class':
					$tax_class = !empty($data_array[$ekey]) ? $data_array[$ekey] : '';
					if (method_exists($product, 'set_tax_class')) {
						$product->set_tax_class($tax_class);
					}
					break;
				case 'purchase_note':
					// Set the purchase note meta field
					if (method_exists($product, 'set_purchase_note')) {
						$product->set_purchase_note($data_array[$ekey]);
					}
					break;
				case 'featured_product':
					// Determine if the product should be featured
					$is_featured = !empty($data_array[$ekey]) && $data_array[$ekey] == '1';
					if (method_exists($product, 'set_featured')) {
						$product->set_featured($is_featured);
					}
					break;
				case 'weight':
					$weight = $data_array[$ekey];
					if (method_exists($product, 'set_weight')) {
						$product->set_weight($weight);
					}
					break;

				case 'length':
					$length = $data_array[$ekey];
					if (method_exists($product, 'set_length')) {
						$product->set_length($length);
					}
					break;

				case 'width':
					$width = $data_array[$ekey];
					if (method_exists($product, 'set_width')) {
						$product->set_width($width);
					}
					break;

				case 'height':
					$height = $data_array[$ekey];
					if (method_exists($product, 'set_height')) {
						$product->set_height($height);
					}
					break;
				case 'variation_description':
					if ($product->is_type('variation')) {
						$variation_description = $data_array[$ekey];
						$product->set_description($variation_description);
					}
					break;
				case 'sale_price_dates_from':
					$date_from = strtotime($data_array[$ekey]); // Convert to timestamp
					if (method_exists($product, 'set_date_on_sale_from')) {
						$product->set_date_on_sale_from($date_from);
					}
					break;

				case 'sale_price_dates_to':
					$date_to = strtotime($data_array[$ekey]); // Convert to timestamp
					if (method_exists($product, 'set_date_on_sale_to')) {
						$product->set_date_on_sale_to($date_to);
					}
					break;

				case 'backorders':
					$backorders = '';
					if ($data_array[$ekey] == 1) {
						$backorders = 'no';
					} elseif ($data_array[$ekey] == 2) {
						$backorders = 'notify';
					} elseif ($data_array[$ekey] == 3) {
						$backorders = 'yes';
					}
					if ($product->get_type() !== 'external' && method_exists($product, 'set_backorders')) {
						$product->set_backorders($backorders);
					}
					break;

				case 'manage_stock':
					if ((!$product->is_type('external'))) {
						$manage_stock = ($data_array[$ekey] == 'yes' || $data_array[$ekey] == 1) ? true : false;
						if (method_exists($product, 'set_manage_stock')) {
							$product->set_manage_stock($manage_stock);
						}
					}
					break;

				case 'low_stock_threshold':
					$low_stock_threshold = intval($data_array[$ekey]);
					if (method_exists($product, 'set_low_stock_amount')) {
						$product->set_low_stock_amount($low_stock_threshold);
					}
					break;

				case 'file_paths':
					$file_paths = $data_array[$ekey];
					if (!empty($file_paths) && method_exists($product, 'set_downloadable_files')) {
						$product->set_downloadable_files($file_paths);
					}
					break;

				case 'download_limit':
					$download_limit = intval($data_array[$ekey]);
					if ($product->is_downloadable() && method_exists($product, 'set_download_limit')) {
						$product->set_download_limit($download_limit);
					}
					break;

				case 'comment_status':
					$status = $data_array[$ekey];
					wp_update_post(array('ID' => $pID, 'comment_status' => $status));
					break;

				case 'menu_order':
					$menu_order = intval($data_array[$ekey]);
					wp_update_post(array('ID' => $pID, 'menu_order' => $menu_order));
					break;

				case 'download_expiry':
					$download_expiry = intval($data_array[$ekey]);
					if ($product->is_downloadable() && method_exists($product, 'set_download_expiry')) {
						$product->set_download_expiry($download_expiry);
					}
					break;
				case 'download_type':
					$download_type = $data_array[$ekey];
					if ($product->is_downloadable()) {
						if ($download_type === 'file' || $download_type === 'external') {
							//$product->update_meta_data('_download_type', $download_type);
							update_post_meta($pID, '_download_type', $download_type);
						}
					}
					break;

				case 'product_url':
					if ($product->is_type('external') && method_exists($product, 'set_product_url')) {
						$product_url = $data_array[$ekey];
						!empty($product_url) ? $product->set_product_url($product_url) : '';
					}
					break;

				case 'button_text':
					if ($product->is_type('external') && method_exists($product, 'set_button_text')) {
						$button_text = $data_array[$ekey];
						$product->set_button_text($button_text);
					}
					break;
				case 'product_shipping_class':
				case 'variation_shipping_class':
					$class_name = $data_array[$ekey];
					$class = get_term_by('name', $class_name, 'product_shipping_class');

					if ($class && !is_wp_error($class)) {
						$class_id = $class->term_id;

						if ($product && method_exists($product, 'set_shipping_class_id')) {
							if ($product->is_type('variation')) {
								// Handle variation shipping class
								$product->set_shipping_class_id($class_id);
							} else {
								// Handle simple or other product types
								$product->set_shipping_class_id($class_id);
							}
						}
					}
					break;
				case 'sold_individually':
					$sold_individually = $data_array[$ekey];
					if (method_exists($product, 'set_shipping_class_id')) {
						$product->set_sold_individually($sold_individually === 'yes');
					}
					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();
						$downloads = array();
						$product->set_downloadable( true );
						$exploded_file_data = explode('|', $data_array[$ekey]);
						foreach($exploded_file_data as $file_datas){
							$exploded_separate = explode(',', $file_datas);
							$download = new \WC_Product_Download();
							$attachment_id= WooCommerceMetaImport::$media_instance->media_handling($exploded_separate[1], $pID,$data_array,'','','',$header_array,$value_array);
							$file_url = wp_get_attachment_url( $attachment_id ); 
							$download->set_name( $exploded_separate[0]);
							if(!empty($file_url) && isset($file_url)){
								$download->set_id( md5( $file_url ) );
								$download->set_file( $file_url );
								$downloads[] = $download;
							}else{
								$download->set_id( md5( $exploded_separate[1], ) );
								$download->set_file($exploded_separate[1], );
								$downloads[] = $download;
							}
						}
					}
					if(!empty($downloads)){
						$product->set_downloads( $downloads );
					}
					break;
				case 'grouping_product':
					if (!empty($data_array[$ekey])) {
						$grouping_product_ids = explode(',', $data_array[$ekey]);
						if ($product && 'grouped' === $product->get_type()) {
							$my_grouping_product_id = [];
							foreach ($grouping_product_ids as $grouping_product_id) {
								if (is_numeric($grouping_product_id)) {
									$my_grouping_product_id[] = (int) $grouping_product_id;
								} else {
									$my_grouping_product_id[] =  $wpdb->get_var("SELECT ID FROM {$wpdb->prefix}posts WHERE post_type = 'product' AND post_title = '$grouping_product_id' order by ID Desc ");
								}
							}
							if (!empty($my_grouping_product_id)) {
								$product->set_children($my_grouping_product_id);
							}
						}
					}
					break;

				case 'crosssell_ids':
					$crosssellids = [];
					if (!empty($data_array[$ekey])) {
						$exploded_crosssell_ids = explode(',', $data_array[$ekey]);
						foreach ($exploded_crosssell_ids as $crosssell_id) {
							if (is_numeric($crosssell_id)) {
								$crosssellids[] = (int) $crosssell_id;
							} else {
								$product_id =  $wpdb->get_var("SELECT ID FROM {$wpdb->prefix}posts WHERE post_type = 'product' AND post_title = '$crosssell_id' order by ID Desc ");
								if ($product_id) {
									$crosssellids[] = $product_id;
								}
							}
						}
					}

					if (!empty($crosssellids) && method_exists($product, 'set_cross_sell_ids')) {
						$product->set_cross_sell_ids($crosssellids);
					}
					break;
				case 'upsell_ids':
					$upsellids = [];
					if (!empty($data_array[$ekey])) {
						$exploded_upsell_ids = explode(',', $data_array[$ekey]);
						foreach ($exploded_upsell_ids as $upsell_id) {
							if (is_numeric($upsell_id)) {
								$upsellids[] = (int) $upsell_id;
							} else {
								// Fetch product ID based on product title
								$product_id = $wpdb->get_var("SELECT ID FROM {$wpdb->prefix}posts WHERE post_type = 'product' AND post_title = '$upsell_id' order by ID Desc ");
								if ($product_id) {
									$upsellids[] = $product_id;
								}
							}
						}
					}
					if (!empty($upsellids) && method_exists($product, 'set_upsell_ids')) {
						$product->set_upsell_ids($upsellids);
					}
					break;
				case 'thumbnail_id':
					if (method_exists($product, 'set_image_id')) {
						if (is_numeric($data_array[$ekey])) {
							$product->set_image_id((int) $data_array[$ekey]);
						} else {
							$f_path = WooCommerceMetaImport::$media_instance->get_filename_path($data_array[$ekey], '');
							$fimg_name = isset($f_path['fimg_name']) ? $f_path['fimg_name'] : '';
							$attachment_id = $wpdb->get_results("SELECT ID FROM {$wpdb->prefix}posts WHERE post_type = 'attachment' AND guid LIKE '%$fimg_name%'", ARRAY_A);
							!empty($attachment_id[0]['ID']) ? $product->set_image_id($attachment_id[0]['ID']) : '';
						}
					}
					break;
					//WooCommerce yith-woocommerce Products Fields
				case '_ywbc_barcode_protocol':
					$metaData['_ywbc_barcode_protocol'] = $data_array[$ekey];
					break;
				case '_ywbc_barcode_value':
					$metaData['_ywbc_barcode_value'] = $data_array[$ekey];
					break;
				case '_ywbc_barcode_display_value':
					$metaData['_ywbc_barcode_display_value'] = $data_array[$ekey];
					break;
					//Add support for yith_cog_cost
				case 'yith_cog_cost':
					$metaData['yith_cog_cost'] = $data_array[$ekey];
					break;
				case 'minimum_allowed_quantity':
					$metaData['minimum_allowed_quantity'] = $data_array[$ekey];
					break;
				case 'maximum_allowed_quantity':
					$metaData['maximum_allowed_quantity'] = $data_array[$ekey];
					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;
				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;
				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;
				case '_global_unique_id':
					if(!empty($data_array[$ekey])){
						if (is_numeric($data_array[$ekey])) {
							$validated_value = number_format((float)$data_array[$ekey], 0, '.', '');
							// Check if the global unique ID is already assigned to another product
							$args = [
								'post_type'      => 'product',
								'post_status'    => ['publish', 'draft', 'pending', 'private'], // Exclude 'trash'
								'meta_query'     => [
									[
										'key'     => '_global_unique_id', // Replace with the actual meta key for global_unique_id
										'value'   => $validated_value,
										'compare' => '='
									]
								],
								'fields'         => 'ids',
								'posts_per_page' => 1,
							];
							$existing_products = get_posts($args);
							if(empty($existing_products)){
								$product->set_global_unique_id($validated_value);
								if(is_plugin_active('ean-for-woocommerce/ean-for-woocommerce.php')){
									update_post_meta($product_id, '_alg_ean', $validated_value);
								}
							}
						}
					}
					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;
			}
			$product->save();

		}
		//WooCommerce Product attribute Fields
		if($product_type == 'variation' || $product_type == 'variable' || $product_type == 8){
			$helpers_instance = ImportHelpers::getInstance();
			$parentsku = $data_array['parent'];
			$parent_product_id =$wpdb->get_var("SELECT ID from {$wpdb->prefix}posts as p inner join {$wpdb->prefix}postmeta as pm on p.ID=pm.post_id where pm.meta_key='_sku' and pm.meta_value='$parentsku' and post_status='publish'");
			$product->set_parent_id($parent_product_id);
			

			$attr_data =array();
			foreach($attr_meta_data as $attr_value){
				$attr_data[] = $helpers_instance->get_header_values($attr_value,$header_array,$value_array);
			}
			foreach($attr_data as $attr_k => $attr_value){
				foreach($attr_value as $attr_key => $attr_val){
					$i=$attr_k+1;
					if(!empty($attr_value) && is_array($attr_value)){
						foreach($attr_value as $attr_key => $attr_val){
							switch($attr_key){
								case "product_attribute_name$i":
									$attr_name =$attr_val;
									break;
								case "product_attribute_value$i":
									$attr_value =$attr_val;
									break;
								case  "product_attribute_visible$i":
									// $attribute->set_visible( true );
									break;
	
							}
						}
					}
					$taxonomy_slug = wc_attribute_taxonomy_name($attr_name);
						$term = get_term_by('name', $attr_value, $taxonomy_slug);

						if ($term) {
							$term_slug = $term->slug;
							$customAttributes['attribute_' . $taxonomy_slug] = $term_slug;
						}
					$product->set_attributes($customAttributes);
					$product_id = $product->save();
					//   
					// $product->set_manage_stock( true ); 
					
				}
			}
		}
		if(!empty($attr_meta_data) && ($product_type !='variation' && $product_type !=8)){
			$helpers_instance = ImportHelpers::getInstance();
			$attr_data =array();
			$slug =  $name ='';
			foreach($attr_meta_data as $attr_value){
				$attr_data[] = $helpers_instance->get_header_values($attr_value,$header_array,$value_array);
			}
			$booking_attr_index = 0;
			foreach($attr_data as $attr_k => $attr_value){
				$attribute = new \WC_Product_Attribute();
				$i=$attr_k+1;
				foreach($attr_value as $attr_key => $attr_val){
					switch($attr_key){
						case "product_attribute_name$i":
							$name = $attr_val;
								if (strpos($name, '->') !== false && (is_plugin_active('woo-variation-swatches/woo-variation-swatches.php') || is_plugin_active('woo-variation-swatches-pro/woo-variation-swatches.php'))) {
									list($name, $swatch_type) = explode('->', $name);
									$name = $this->import_swatch_and_booking_types(array($name => $swatch_type));
								}elseif(is_plugin_active('jet-booking/jet-booking.php') && ($booking_type == 'product' && $product_type == 'jet_booking')){
									$name = $this->import_swatch_and_booking_types(array($name => 'jet_booking_service') ,'jet_booking');		
								}
								$product_attribute_taxonomy = "product_attribute_taxonomy$i";
								$is_taxonomy = isset($attr_value[$product_attribute_taxonomy]) ? (bool) $attr_value[$product_attribute_taxonomy] : false;
								$slug = 'pa_' . sanitize_title($name);
								$attribute->set_name($slug);
								$attribute_exists = $wpdb->get_var($wpdb->prepare("SELECT attribute_id FROM {$wpdb->prefix}woocommerce_attribute_taxonomies WHERE attribute_name = %s", sanitize_title($name)));
								if (!$attribute_exists) {
									$wpdb->insert(
										"{$wpdb->prefix}woocommerce_attribute_taxonomies",
										[
											'attribute_name' => sanitize_title($name),
											'attribute_label' => ucfirst($name),
											'attribute_type' => 'select',
											'attribute_orderby' => 'menu_order',
											'attribute_public' => 1,
										],
										['%s', '%s', '%s', '%s', '%d']
									);

									$attribute_id = $wpdb->insert_id;

									// Register the taxonomy after inserting
									register_taxonomy($slug, 'product', [
										'label' => ucfirst($name),
										'public' => true,
										'hierarchical' => false,
										'show_ui' => true,
										'show_admin_column' => true,
										'query_var' => true,
										'show_in_quick_edit' => true,
										'rewrite' => ['slug' => sanitize_title($name)],
									]);
									delete_transient('wc_attribute_taxonomies');
								}
								$attribute_id = $wpdb->get_var($wpdb->prepare("SELECT attribute_id FROM {$wpdb->prefix}woocommerce_attribute_taxonomies WHERE attribute_name = %s", sanitize_title($name)));
							break;
						case "product_attribute_value$i":
							$value= explode(',',$attr_val);
							$attribute_datas = [];
							$term_val = explode(',',$attr_val);
							foreach ($term_val as $term_values) {
								if (strpos($term_values, '->') !== false && (is_plugin_active('woo-variation-swatches/woo-variation-swatches.php') || is_plugin_active('woo-variation-swatches-pro/woo-variation-swatches.php'))) {
									list($value, $image_id) = explode('->', $term_values);
									$attribute_datas[$name][$value] = $image_id; // Use dynamic attribute name
								}
							}
							if (!empty($attribute_datas) && isset($attribute_datas)) {
								$values = $this->import_swatch_values($attribute_datas);
								$values = !empty($values) ? explode('|', $values) : [];
							}
							 else {
								$values = $term_val;
							}
							$term_ids = [];
							global $wpdb;

							foreach ($values as $term_name) {
								// Check if the term already exists.
								$existing_term = get_term_by('name', $term_name, $slug);
							
								if (!$existing_term) {
									// Insert the term if it doesn't exist.
									$inserted_term = wp_insert_term($term_name, $slug);
							
									if (!is_wp_error($inserted_term)) {
										$term_id = $inserted_term['term_id'];
										$term_ids[] = $term_id;
										$existing_term = get_term_by('id', $term_id, $slug);
							
										// Jet Booking plugin integration.
										if (is_plugin_active('jet-booking/jet-booking.php') && $booking_type === 'product' && $product_type === 'jet_booking') {
											$this->booking_term_fields_import($existing_term, $post_values, $booking_attr_index++);
										}
							
										// Polylang integration.
										if (!empty($poly_values)) {
											$lang = $poly_values['language_code'];
											pll_set_term_language($term_id, $lang);
										}
									} else {
										$error_message = $inserted_term->get_error_message();
									}
								} else {
									// Handle existing term.
									$term_ids[] = $existing_term->term_id;
							
									// Jet Booking plugin integration.
									if (is_plugin_active('jet-booking/jet-booking.php') && $booking_type === 'product' && $product_type === 'jet_booking') {
										$this->booking_term_fields_import($existing_term, $post_values, $booking_attr_index++);
									}
								}
							}

							$attribute->set_options($term_ids);
							break;
						case "product_attribute_visible$i":
							if($attr_val == '1'){
								$attribute->set_visible( true );
								$attribute->set_variation( true );
							}
							else{
								$attribute->set_visible( false );
								$attribute->set_variation( false );
							}								
							break;

					}
				}
				$attribute->set_id($attribute_id);
				$attribute->set_position( 0 );
				//$attribute->set_variation( true );
				
				$attributes[] = $attribute;
				
			}
			$product->set_attributes( $attributes ) ;
			$product_id = $product->save();
		}
		//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;
			}
		}
		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'] = '';
			}
		}
		foreach ($metaData as $meta_key => $meta_value) {
			update_post_meta($pID, $meta_key, $meta_value);
		}
	}

	public function booking_term_fields_import($terms,$post_values,$index){
		global $wpdb;
		$jet_abaf_service_cost = !empty($post_values['jet_abaf_service_cost']) ? explode(',', str_replace('|', ',', $post_values['jet_abaf_service_cost'])) : '';
		$jet_abaf_service_cost_format = !empty($post_values['jet_abaf_service_cost_format']) ?  explode(',', str_replace('|', ',', $post_values['jet_abaf_service_cost_format'])) : '';
		$jet_abaf_guests_multiplier = !empty($post_values['jet_abaf_guests_multiplier']) ? explode(',', str_replace('|', ',', $post_values['jet_abaf_guests_multiplier'])) : '';
		$jet_abaf_everyday_service = !empty($post_values['jet_abaf_everyday_service']) ? explode(',', str_replace('|', ',', $post_values['jet_abaf_everyday_service'])) : '';
		$term_id = !empty($terms->term_id) ? $terms->term_id : '';
		$attribute_name = !empty($terms->taxonomy) ? $terms->taxonomy : '';

		$attri_name = trim(str_replace('pa_','',$attribute_name));
		$attribute_type = $wpdb->get_var($wpdb->prepare(
			"SELECT attribute_type FROM {$wpdb->prefix}woocommerce_attribute_taxonomies WHERE attribute_name = %s",
			$attri_name
		));
		if($attribute_type == 'jet_booking_service'){
			if(!empty($jet_abaf_service_cost[$index]) && isset($jet_abaf_service_cost[$index])){
				update_term_meta($term_id, 'jet_abaf_service_cost', $jet_abaf_service_cost[$index]);
			}
			if(!empty($jet_abaf_service_cost_format[$index]) && isset($jet_abaf_service_cost_format[$index])){
				update_term_meta($term_id, 'jet_abaf_service_cost_format', $jet_abaf_service_cost_format[$index]);
			}
			if(!empty($jet_abaf_guests_multiplier[$index]) && isset($jet_abaf_guests_multiplier[$index])){
				update_term_meta($term_id, 'jet_abaf_guests_multiplier', true);
			}
			if(!empty($jet_abaf_everyday_service[$index]) && isset($jet_abaf_everyday_service[$index])){
				update_term_meta($term_id, 'jet_abaf_everyday_service', true);
			}
		}

	}
	public function import_swatch_and_booking_types($attribute_data,$produc_type = null)
	{
		global $wpdb;
		$attr_names = [];
		$errors = [];
		foreach ($attribute_data as $attr_name => $type) {
			$attribute_name = sanitize_title($attr_name);
			$taxonomy = 'pa_' . sanitize_title($attr_name);
			// Check if the attribute exists
			$exists = $wpdb->get_var($wpdb->prepare(
				"SELECT attribute_id FROM {$wpdb->prefix}woocommerce_attribute_taxonomies WHERE attribute_name = %s",
				$attribute_name
			));

			// Ensure the taxonomy exists
			if (!taxonomy_exists($taxonomy)) {
				// Create the taxonomy if it does not exist
				register_taxonomy($taxonomy, 'product', [
					'label' => ucfirst($attr_name),
					'public' => true,
					'hierarchical' => false,
					'show_ui' => true,
					'show_admin_column' => true,
					'query_var' => true,
					'rewrite' => ['slug' => sanitize_title($attr_name)],
				]);
			}

			if ($exists) {
				// Update the attribute type if it exists
				$updated = $wpdb->update(
					$wpdb->prefix . 'woocommerce_attribute_taxonomies',
					array('attribute_type' => sanitize_text_field($type)),
					array('attribute_name' => $attribute_name),
					array('%s'),
					array('%s')
				);
			} else {
				// Insert the attribute if it does not exist
				$inserted = $wpdb->insert(
					$wpdb->prefix . 'woocommerce_attribute_taxonomies',
					array(
						'attribute_label'   => sanitize_text_field($attr_name),
						'attribute_name'    => $attribute_name,
						'attribute_type'    => sanitize_text_field($type),
						'attribute_orderby' => 'menu_order',
						'attribute_public'  => 0
					),
					array('%s', '%s', '%s', '%s', '%d')
				);
			}

			$attr_names[] = $attribute_name;

			// Flush cache for attributes
			delete_transient('wc_attribute_taxonomies');
		}

		return !empty($attr_names) ? implode('|', $attr_names) : '';
	}
	public function import_swatch_values($attribute_data)
	{
		global $wpdb;
		$media_instance = MediaHandling::getInstance();
		$att_values = [];
		foreach ($attribute_data as $attr_name => $values) {
			$taxonomy = 'pa_' . sanitize_title($attr_name);
			$attr_type = $wpdb->get_var($wpdb->prepare(
				"SELECT attribute_type FROM {$wpdb->prefix}woocommerce_attribute_taxonomies WHERE attribute_label = %s",
				$attr_name
			));

			// Ensure the taxonomy exists
			if (!taxonomy_exists($taxonomy)) {
				// Create the taxonomy if it does not exist
				register_taxonomy($taxonomy, 'product', [
					'label' => ucfirst($attr_name),
					'public' => true,
					'hierarchical' => false,
					'show_ui' => true,
					'show_admin_column' => true,
					'query_var' => true,
					'rewrite' => ['slug' => sanitize_title($attr_name)],
				]);
			}

			foreach ($values as $value => $swatch_value) {
				$att_values[] = $value;
				$term = get_term_by('name', $value, $taxonomy);

				if (!$term) {
					// Create term if it does not exist
					$slug = sanitize_title($value);
					$term_id = wp_insert_term($value, $taxonomy, ['slug' => $slug])['term_id'];
				} else {
					$term_id = $term->term_id;
				}
				if (is_numeric($swatch_value) && $attr_type == 'image') {
					$meta_value = $swatch_value;
				} else if ($attr_type == 'image') {
					$meta_value = $media_instance->media_handling($swatch_value, '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '');
				} else {
					$meta_value = $swatch_value;
				}
				// Update term meta based on attribute type
				$meta_key = $attr_type === 'image' ? 'product_attribute_image' : 'product_attribute_color';
				update_term_meta($term_id, $meta_key, $meta_value);
			}
		}

		return !empty($att_values) ? implode('|', $att_values) : [];
	}

	public function wcpa_meta_import_function($pro_meta_fields, $post_id) {
		$order = wc_get_order($post_id);
	
		// Check if order exists
		if ($order) {
			// Get the order items
			foreach ($order->get_items() as $item_id => $item) {    
				// Add wcpa meta data to the order items
				foreach ($pro_meta_fields as $ekey => $eval) {
					wc_add_order_item_meta($item_id, $ekey, $eval);
				}
			}
		}
		}

	public function epo_meta_import_function($pro_meta_fields, $post_id) {
		$order = wc_get_order($post_id);
	
		// Check if order exists
		if ($order) {

			// Get the order items
			foreach ($order->get_items() as $item_id => $item) {    
				// Add EPO meta data to the order items
				foreach ($pro_meta_fields as $ekey => $eval) {
					wc_add_order_item_meta($item_id, $ekey, $eval);
				}
			}
		}
		}


	public function ppom_meta_import_function($ppom_fields, $post_id){

		$order = wc_get_order( $post_id );
		
		// Check if order exists
		if ( $order ) {
			// Get the order items
			foreach ( $order->get_items() as $item_id => $item ) {
				
				
			foreach ( $ppom_fields as $pkey => $pval ) {
				
				wc_add_order_item_meta( $item_id, $pkey , $pval );
				
			}
		}
		
	}
}
}

Youez - 2016 - github.com/yon3zu