用于检索购物车总数的 Woocommerce 购物车模型
Woocommerce cart mockup for retrieving cart total
我需要计算添加多个产品和优惠券后购物车的总费用。我需要在不改变全局 WC()->cart 的情况下获得这个总数。所以我的想法是创建一个临时购物车,添加所有商品和优惠券,然后 return WC_Cart:get_total();
这是我的代码:
//5438 is my product (simple subscription, with a 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;
这个方法在我得到总数时有效,不需要添加优惠券。但是当我想添加优惠券时,它似乎将优惠券应用于用户会话,因为当我转到购物车页面时(与我使用上述代码的地方完全分开,我看到一条消息 'Coupon loaded successfully.' . 当我刷新页面时它就不见了。
第二个问题是,在我再次请求 运行 之前,它不会 return 新的总数(使用优惠券)。
为什么它会在我的购物车页面上显示我的消息?它不应该适用于我告诉它的购物车吗?在这种情况下,我的 $tmpCart?
我需要获取购物车的总数,因为我正在编写自己的模块,该模块允许我的客户创建购物车模型。
这里是我使用的方法的参考:
您不能同时拥有 2 个 Cart 对象。当您创建一个新的购物车对象时,它会替换现有的(如果有的话)。购物车对象是一个活动的前端对象,所以它不能这样工作。
对于消息: 这是正常的,因为 apply_coupon()
方法会生成一个通知,该通知存储在 WC_Session
中,然后在加载页面后立即显示(或 ajax).
对于总问题:我没有您所涉及的问题。我得到正确的总计,即带有优惠券折扣的购物车总计。
我需要计算添加多个产品和优惠券后购物车的总费用。我需要在不改变全局 WC()->cart 的情况下获得这个总数。所以我的想法是创建一个临时购物车,添加所有商品和优惠券,然后 return WC_Cart:get_total();
这是我的代码:
//5438 is my product (simple subscription, with a 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;
这个方法在我得到总数时有效,不需要添加优惠券。但是当我想添加优惠券时,它似乎将优惠券应用于用户会话,因为当我转到购物车页面时(与我使用上述代码的地方完全分开,我看到一条消息 'Coupon loaded successfully.' . 当我刷新页面时它就不见了。 第二个问题是,在我再次请求 运行 之前,它不会 return 新的总数(使用优惠券)。
为什么它会在我的购物车页面上显示我的消息?它不应该适用于我告诉它的购物车吗?在这种情况下,我的 $tmpCart?
我需要获取购物车的总数,因为我正在编写自己的模块,该模块允许我的客户创建购物车模型。
这里是我使用的方法的参考:
您不能同时拥有 2 个 Cart 对象。当您创建一个新的购物车对象时,它会替换现有的(如果有的话)。购物车对象是一个活动的前端对象,所以它不能这样工作。
对于消息: 这是正常的,因为 apply_coupon()
方法会生成一个通知,该通知存储在 WC_Session
中,然后在加载页面后立即显示(或 ajax).
对于总问题:我没有您所涉及的问题。我得到正确的总计,即带有优惠券折扣的购物车总计。