Php Woocommerce:如何在Woocommerce上添加\u订单\u商品\u元\u添加\u到\u购物车挂钩?
用例:Php Woocommerce:如何在Woocommerce上添加\u订单\u商品\u元\u添加\u到\u购物车挂钩?,php,wordpress,woocommerce,Php,Wordpress,Woocommerce,用例: 用户将从列表中选择产品的日期并添加 按按钮将产品运送至购物车 woocommerce\u将\u添加到\u购物车将触发 wc_添加_订单_项目_元数据将日期作为元数据附加到项目 add_action( 'woocommerce_add_to_cart', 'add_event_date_meta', 10, 3 ); function add_event_date_meta($cart_item_key, $product_id, $quantity) { $event_date
add_action( 'woocommerce_add_to_cart', 'add_event_date_meta', 10, 3 );
function add_event_date_meta($cart_item_key, $product_id, $quantity) {
$event_date = get_cart_item_event_date();
$result = wc_add_order_item_meta( $product_id, '_event_date', $event_date);
}
/*
* Add custom data to the cart item
* @param array $cart_item
* @param int $product_id
* @return array
*/
function kia_add_cart_item_data( $cart_item, $product_id ){
if( isset( $_POST['_custom_option'] ) ) {
$cart_item['custom_option'] = sanitize_text_field( $_POST['_custom_option'] );
}
return $cart_item;
}
add_filter( 'woocommerce_add_cart_item_data', 'kia_add_cart_item_data', 10, 2 );
谢谢你和你的评论。我在中找到的解决方案是。这正是我一直在寻找的:
/*
* Add custom data to the cart item
* @param array $cart_item
* @param int $product_id
* @return array
*/
function kia_add_cart_item_data( $cart_item, $product_id ){
if( isset( $_POST['_custom_option'] ) ) {
$cart_item['custom_option'] = sanitize_text_field( $_POST['_custom_option'] );
}
return $cart_item;
}
add_filter( 'woocommerce_add_cart_item_data', 'kia_add_cart_item_data', 10, 2 );
当还没有订单项时,无法添加订单项元。在自定义签出字段中签出我的帐户。检查“在结帐时保存额外数据”部分。@helgatheviking…可能我错了,但我认为这与产品自定义字段有关,而不是自定义结帐字段。Op首先使用“添加到购物车”按钮提交此数据。然后,他需要先将这些数据保存在购物车对象中,然后才能将其从购物车中获取到相关的订单项目。嗯,我想你是对的。我有一本书。无论哪种方式,都不能在没有订单项的情况下添加订单项元数据。如果还没有订单项,则不能添加订单项元数据。在自定义签出字段中签出我的帐户。检查“在结帐时保存额外数据”部分。@helgatheviking…可能我错了,但我认为这与产品自定义字段有关,而不是自定义结帐字段。Op首先使用“添加到购物车”按钮提交此数据。然后,他需要先将这些数据保存在购物车对象中,然后才能将其从购物车中获取到相关的订单项目。嗯,我想你是对的。我有一本书。无论哪种方式,都不能在没有订单项的情况下添加订单项元。