再次告诉我,我会快速告诉你们我正在做什么 (我将购物车信息从一家woocommerce商店传递到另一家woocommerce商店) 我终于能够将商品 A 的product_id和数量发送到商店 B ,在这一个我使用的是woocommerce WC() - >购物车功能可以在最后一个商店中创建购物车的副本,这样客户就无法处理他的购买行为,并且运作良好。
这是代码。
$incoming_cart=unserialize(base64_decode($_POST["p_cart_t"]));
foreach ( $incoming_cart as $cart_item_key => $cart_item ) {
$product_id=$cart_item['product_id'];
$quantity_pro=$cart_item['quantity'];
print_r($product_id);
print_r($quantity_pro);
WC()->cart->empty_cart();
WC()->cart->add_to_cart($product_id,$quantity_pro);
}
我的问题是,当我按结帐时,系统会再次将我发送到购物车页面,就像刷新一样,购物车信息会丢失。
我必须说我将来自商店 A 的购物车信息传递到商店 cart-empty.ph p文件 B 因为我在商店之间切换,商店里没有购物车 B 并且它说购物车是空的,所以我做的是粘贴 cart.php < / strong>代码进入 cart-empty.php 及其工作,该文件正在捕获信息并镜像购物车,但我在结帐时遇到此问题。
答案 0 :(得分:0)
我可以在这里感受到执行问题的逻辑
一个问题是你何时何地解雇你提供的代码。我建议,在woocommerce_loaded
钩子上开火。然后将所有内容添加到购物车后,重定向到购物车页面。
WooCommerce有一个选项,在将产品添加到购物车后,您将被重定向到购物车。我建议你去寻找。
另外,我无法帮助自己注意到您的代码在每个循环中都清空了购物车。我会在WC()->cart->empty_cart();
循环之外转移foreach
。也许在检查$incoming_cart
非空后,清空您的购物车,然后运行循环以添加$incoming_cart
的所有产品。然后将页面重定向到购物车页面。此时购物车不是空的。
有了这个,您就不必编辑WooCommerce中的文件。忘记编辑cart-empty.php