我在产品详细信息页面中添加了一个自定义变量,我可以将自定义变量值传递到“添加到购物车”函数中。
public function add_to_cart( $product_id, $quantity = 1, $mmCentre, $variation_id = \'\', $variation = \'\', $cart_item_data = array() ) {
.........
.........
}
So变量
$mmCentre
是自定义变量。现在我已经做到了
$this->cart_contents[$cart_item_key] = apply_filters( \'woocommerce_add_cart_item\', array_merge( $cart_item_data, array(
\'product_id\' => $product_id,
\'variation_id\' => $variation_id,
\'variation\' => $variation,
\'quantity\' => $quantity,
\'data\' => $product_data,
\'mmCentre\' => $mmCentre
) ), $cart_item_key );
问题是我无法在购物车页面中获取该值。我转储了cart\\u内容,但看不到数组中传递的值。
你能告诉我我做错了什么吗?
最合适的回答,由SO网友:passatgt 整理而成
不久前,我不得不做一些类似的事情,这就是我的工作:
在该示例中,自定义输入名称是add to cart表单中的“test\\u field”,这样,当您转储cart\\u内容时,可以在末尾的某个地方看到该值
//Store the custom field
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[\'test_field\'] = $_POST[\'test_field\'];
return $cart_item_meta;
}
//Get it from the session and add it to the cart variable
function get_cart_items_from_session( $item, $values, $key ) {
if ( array_key_exists( \'test_field\', $values ) )
$item[ \'mmCentre\' ] = $values[\'test_field\'];
return $item;
}
add_filter( \'woocommerce_get_cart_item_from_session\', \'get_cart_items_from_session\', 1, 3 );