Мне удалось закодировать мой плагин, чтобы добавить дополнительные пользовательские поля в продукты woocommerce. Это работает от корзины до завершения заказа. Переходя к моей учетной записи и просматривая прошлые заказы, пользовательские поля отображаются правильно.Woocommerce Order Again не копирует пользовательские поля
Однако, когда я решил нажать «заказать еще раз» в прошлом заказе, новая корзина не содержит настраиваемых полей и их значений.
Вот что я в настоящее время, чтобы попытаться это:
// order again
add_filter('woocommerce_order_again_cart_item_data', 'woocommerce_order_again_cart_item_data', 10, 3);
function woocommerce_order_again_cart_item_data($cart_item_meta, $product, $order){
global $woocommerce;
// Disable validation
remove_filter('woocommerce_add_to_cart_validation', array($this, 'validate_add_cart_item'), 10, 3);
if (! array_key_exists('item_meta', $cart_item_meta) || ! is_array($cart_item_meta['item_meta']))
$cart_item_meta['item_meta'] = array();
foreach (array('jhpc_toppings', 'jhpc_sauce', 'jhpc_toppings_half', 'jhpc_sauce_half', 'jhpc_garnish') as $key)
$cart_item_meta['item_meta'][$key] = $product['item_meta'][$key];
return $cart_item_meta;
}