Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.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
Php 用于检索购物车总数的购物车模型_Php_Wordpress_Methods_Woocommerce_Cart - Fatal编程技术网

Php 用于检索购物车总数的购物车模型

Php 用于检索购物车总数的购物车模型,php,wordpress,methods,woocommerce,cart,Php,Wordpress,Methods,Woocommerce,Cart,我需要计算的总金额,一车将与多个产品和优惠券成本增加。我需要在不更改全局WC()->购物车的情况下获取此总数。所以我的想法是创建一个临时购物车,添加所有物品和优惠券,然后返回WC_购物车:get_total() 这是我的密码: //5438 is my product (simple subscription, $55 with a $50 signup fee) //product_schedule_discount is the coupon code that removes 100% o

我需要计算的总金额,一车将与多个产品和优惠券成本增加。我需要在不更改全局WC()->购物车的情况下获取此总数。所以我的想法是创建一个临时购物车,添加所有物品和优惠券,然后返回WC_购物车:get_total()

这是我的密码:

//5438 is my product (simple subscription, $55 with a $50 signup fee)
//product_schedule_discount is the coupon code that removes 100% of the signup fee

$tmpCart = new WC_Cart();
$tmpCart->add_to_cart( 5438, '1', '0', array(), array() );
$tmpCart->apply_coupon('product_schedule_discount');
$tmpCart->calculate_totals( );
$cartTotal = $tmpCart->get_total();
$tmpCart->remove_coupon('product_schedule_discount');
return $cartTotal;
这种方法在我得到总数时有效,不需要添加优惠券。但当我想添加优惠券时,它似乎会将优惠券应用到用户会话,因为当我转到购物车页面(与我使用上述代码的位置完全不同)时,我会看到一条消息“优惠券加载成功”。当我刷新页面时,它就消失了。 第二个问题是,在我请求它再次运行之前,它不会返回新的总数(应用了优惠券)

为什么它在我的购物车页面上显示我的信息?它是否应该应用于我告诉它的购物车?在这种情况下,我的$tmpCart

我需要得到购物车的总数,因为我正在编写自己的模块,该模块允许我的客户创建模型购物车

以下是我使用的方法的参考:


您不能同时拥有两个购物车对象。当您创建一个新的购物车对象时,它会替换现有的购物车对象(如果有)。购物车对象是一个活动的前端对象,因此无法以这种方式工作

对于消息:这是正常的,因为
应用优惠券()
方法生成一个通知,该通知存储在
WC\u会话中,然后在加载页面后立即显示(或使用ajax)


总发行量:我没有你提到的问题。我得到了正确的总发行量,即购物车总发行量和优惠券折扣。

这完全有道理。我也得到了正确的总发行量,但只是偶尔。这很奇怪。但我想我不得不用这一个进行漫长的过程。谢谢