【发布时间】:2022-11-14 22:39:12
【问题描述】:
在 WooCommerce 中,我使用以下 JS 代码,在更改账单国家/地区时触发刷新片段:
jQuery(document).ready(function(){
// Change Billing Country: Refresh WC Fragment
jQuery(document.body).on('change', 'select[name=billing_country]', function(){
jQuery(document.body).trigger('wc_fragment_refresh');
});
});
这可以完美运行并运行以下 PHP 函数:
function wc_refresh_mini_cart_billing_country($fragments){
ob_start();
// Hidden code, works perfectly...
// Get and output billing country
$billing_country = WC()->customer->get_billing_country();
echo $billing_country;
// Update fragment
$fragments['#your-billing-country'] = ob_get_clean();
return $fragments;
}
add_filter( 'woocommerce_add_to_cart_fragments', 'wc_refresh_mini_cart_billing_country');
现在这可行,但我总是得到旧的计费国家,而不是当前的。例如:我在结帐页面上,国家设置为德国。如果我把它改成法国,上面的代码会显示“DE”(德国),再改成意大利后,上面的代码就会显示“FR”(法国)。所以它总是采用最后选择的国家,而不是当前选择的国家。
我错过了什么?
【问题讨论】:
标签: woocommerce hook-woocommerce