Wordpress 将Woocomece会话数据传递到数据库,或创建自定义购物车数据并将其传递到db
我需要为添加到购物车的每个产品添加一个有效期,并希望在订单完成后在订单详细信息中看到它Wordpress 将Woocomece会话数据传递到数据库,或创建自定义购物车数据并将其传递到db,wordpress,woocommerce,shopping-cart,Wordpress,Woocommerce,Shopping Cart,我需要为添加到购物车的每个产品添加一个有效期,并希望在订单完成后在订单详细信息中看到它 $woocommerce->cart->add_to_cart($each_item[0],$each_item[1],'','',array('__expirydate',$d_expiry)); 但是我传递的数组,数组''uuuExpiryDate',$d_expiry'没有显示在我的购物车中。或者在woocommerce会话中添加 所以我使用 WC()->session->se
$woocommerce->cart->add_to_cart($each_item[0],$each_item[1],'','',array('__expirydate',$d_expiry));
但是我传递的数组,数组''uuuExpiryDate',$d_expiry'没有显示在我的购物车中。或者在woocommerce会话中添加
所以我使用
WC()->session->set( 'expiry'.$each_item[0], $d_expiry );
并且工作完全正常。但是在签出时,数据不会存储在任何地方。如何添加它。订单完成后,会话将被清除。您可能需要为订购的商品保存一些元信息,这可以通过woocommerce\u add\u order\u item\u meta hook来完成 请记住,这不是一个剪切粘贴解决方案,而是沿着正确的路径推进 此外,为了替代会话方法,您可能会考虑使用以下过滤器组合:woocommerce\u add\u cart\u item\u data、woocommerce\u add\u cart\u item和woocommerce\u get\u cart\u item\u from\u session将数据添加到购物车中的项目,这将与我发布的代码配合使用 祝你好运。我使用了woocommerce\u checkout\u order\u processed钩子。但是会话仍然存在。
add_action( 'woocommerce_add_order_item_meta', 'so_add_order_item_meta', 10, 3 );
function so_add_order_item_meta( $order_item_id, $cart_item, $cart_item_key ) {
if ( isset( $cart_item[ '__expirydate' ] ) && ! empty( $cart_item[ '__expirydate' ] ) ) {
wc_add_order_item_meta( $order_item_id, __( 'Expiration date' ), $cart_item[ '__expirydate' ] );
}
}