我定义了那两个应该将表格值保存到会话变量的函数。
add_filter( 'woocommerce_add_cart_item_data', 'add_cart_item_custom_data_vase', 10, 2 );
function add_cart_item_custom_data_vase( $cart_item_meta, $product_id ) {
global $woocommerce;
$cart_item_meta['colour'] = $_POST['colour'][$product_id];
return $cart_item_meta;
}
function get_cart_items_from_session( $item, $values, $key ) {
if ( array_key_exists( 'colour', $values ) )
$item[ 'colour' ] = $values['colour'];
return $item;
}
add_filter( 'woocommerce_get_cart_item_from_session', 'get_cart_items_from_session', 1, 3 );
但我不知道如何将该值保存为Woocommerce订单作为项目元。我试着用下面的方式,但我的价值(颜色)没有显示在商品中,也没有显示在$ _SESSION或$ _COOKIE中。
add_action('woocommerce_thankyou', 'add_my_meta', 1, 1);
function add_my_meta($order_id) {
$order = new WC_Order($order_id);
$items = $order->get_items(); /* this doesn't include colour item */
foreach($items as $idx => $val){
wc_update_order_item_meta( $idx, "colour",$what_variable); // here is my problem, what value use instead of $what_variable?
}
}