在WooCommerce中使用AJAX调用Calculate_Shipping()

时间:2018-08-08 作者:Jorgen

我正在创建一种发货方法,客户可以选择发货时间。可以在产品页面、购物车和结帐上进行选择。选中后,它将使用ajax更新会话值。

然而,问题是,如果时间改变,我需要重新计算购物车上的配送和结帐,但woocommerce不计算配送,除非在购物车中添加或删除项目。

如果我刷新页面,它甚至不会重新计算,我必须手动更改购物车的内容才能启动。

有什么建议吗?

2 个回复
SO网友:user164084

我在创建发货方法时也遇到了同样的问题,我所做的是在ajax调用的函数上添加一些东西,只是为了在购物车上进行更新:

global $woocommerce;
$packages = $woocommerce->cart->get_shipping_packages();
foreach( $packages as $package_key => $package ) {
    $session_key  = \'shipping_for_package_\'.$package_key;
    $stored_rates = WC()->session->__unset( $session_key );
}

SO网友:djboris

请尝试在需要的地方添加:

WC()->cart->calculate_shipping();
WC()->cart->calculate_totals();
这就是WooCommerce在自己的Ajax调用中处理它的方式。

我在WC_Ajax::update_order_review() (class-wc-ajax.php:354).

结束

相关推荐