Я использую последнюю версию Woocommerce 3.4.2.Как я могу получить метаданные элемента заказа и присвоить им пользовательское значение?
- Я получаю метаданные с общим массивом
$item_product_data_array
. - Мне нужно получить определенное значение -(Дополнительная модификация для продукта).И назначить пользовательский sku.
Пример: у меня есть coffe - sku 1001, в массиве - ключ [0] Продукт coffe имеет дополнительную модификацию - sugar (метаданные) Нужно найти «Sugar» и назначить ему customsku - 50005.
[label] => Optionally select [value] => Array ( [0] => Cinnamon [1] => Sugar [2] => Mint )
То есть эта добавка должна быть в одном цикле как цена или количество.Все они должны относиться к своему продукту со значением [0].
// Get product details
$items = $order->get_items();
$sku = array();
$product_kol = array();
$product_price = array();
$item_product_meta_data_array = array();
foreach( $items as $key => $item){
$product_kol[] = $item['qty'];
$product_price[] = $item['line_total'];
$item_id = $item['product_id'];
$product = wc_get_product($item_id);
$sku[] = $product->get_sku();
$items_meta_data[] = $item->get_meta_data();
$meta_data1 = $item->get_meta('Sugar');
if( ! empty( $meta_data1 ) ) {
$skus[] = "50005";
$item_quantities[] = "1";
}
}
// Product details for sending as one line to an external service
foreach ($sku as $key => $value){
$data .= "&product[".$key."]=".$value."";
$data .= "&product_kol[".$key."]=".$product_kol[$key]."";
$data .= "&product_price[".$key."]=".$product_price[$key]."";
if(isset($product_mod[$key])) {
$data .= "&product_mod[".$key."]=".$product_mod[$key]."";
}
}
Я думаю, что это будет полезным, поскольку все модули дополнительных опций для продукта добавляют все значения в метаданные.И их трудно вытащить и включить в нужный цикл.
Итак, мы должны получить:
//products sku
$product[0] = "10000"; // Coffe
$product[1] = "10001"; // Juice - second product for axample
$product[2] = "50005"; // Sugar
//products quantity
$product_kol[0] = "1"; // Аmount of coffee
$product_kol[1] = "1"; // Аmount of juice
$product_kol[2] = "1"; // Аmount of sugar
//Modifiers if they exist
$product_mod[2] = "0"; //The product with key 2 is the product modifier with key 0