woocommerce结帐更新运输价值不止一次

时间:2017-11-06 04:45:37

标签: wordpress woocommerce

Woocommerce允许使用以下代码更新运费。

$('body').trigger('update_checkout', { update_shipping_method: true });

我使用的是自定义送货插件,并且能够通过ajax更新费用并最终更新我的总数。 问题是,只有在billing_address_1,billing_city,shipping_city和其他一些字段发生更改后,update_checkout才能生效。所以我必须做以下的事情:

$("#billing_address_1").trigger("keypress").val(function(i,val){return val + ' -';});
$('body').trigger('update_checkout', { update_shipping_method: true }); 

有没有更好的方法来实现这一点,除了让表格变脏以便woocommerce更新运费?

提前致谢!!

1 个答案:

答案 0 :(得分:0)

这是通过woocommerce设计的。此脚本假定在更改地址或国家/地区时需要更新。

  jQuery('body').trigger('update_checkout');

  /* what this does is update the order review table but what it doesn't do is update shipping costs;
     the calculate_shipping function of your shipping class will not be called again;
     so if you were like me and you made a shipping method plugin and you had to change costs based on payment method then
     this is the only way to ensure it does just that
  */

如果你想让工作有用,请添加(插件文件或functions.php):

function action_woocommerce_checkout_update_order_review($array, $int)
{
    WC()->cart->calculate_shipping();
    return;
}
add_action('woocommerce_checkout_update_order_review', 'action_woocommerce_checkout_update_order_review', 10, 2);

来自:https://gist.github.com/neamtua/bfdc4521f5a1582f5ad169646f42fcdf

的报价

为了共鸣,请阅读此文章: https://github.com/woocommerce/woocommerce/issues/12349