Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wordpress 将Woocomece会话数据传递到数据库,或创建自定义购物车数据并将其传递到db_Wordpress_Woocommerce_Shopping Cart - Fatal编程技术网

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' ] );
        }
}