如何在钩子中访问WooCommerce自定义结算字段
问题描述:
我正在编写一个自定义WordPress功能,当客户从选择菜单中更改“状态”字段时,将更改flat_rate运输。目前我正在做我的主题的功能.php如何在钩子中访问WooCommerce自定义结算字段
我已经创建了一个自定义字段来表示“状态”字段作为结算字段中的下拉菜单。我使用“WooCommerce Checkout Manager”插件来设置自定义字段并禁用默认的“状态”字段。
现在我想根据自定义“状态”字段的值更改运费。我无法检索该字段的数据。另外,我想知道一旦该字段的值发生变化,我可以使用哪种挂钩来更改统一费率发货。
我已经使用这个过滤器钩子(woocommerce_package_rates),它不起作用。
这里是我的代码来做到这一点,我得到了它从另一个教程然后做我的定制
function wc_ninja_change_flat_rates_cost($rates, $package) {
$destination = $package['destination'];
$city = $destination['myfield12']; // getting the city field value
// Make sure flat rate is available
if (isset($rates['flat_rate'])) {
if ($city == 'Alex' || $city == 'الإسكندرية') {
// Set flat rate to cost $10 more
$rates['flat_rate']->cost = 30;
}
else {
$rates['flat_rate']->cost = 20;
}
}
return $rates;
}
add_filter('woocommerce_package_rates', 'wc_ninja_change_flat_rates_cost', 10, 2);
答
我发现这一点:
基本上它捕获通过JS现场数据并向服务器发送Ajax请求,然后将该值存储在会话中。然后增加额外的费用。这不是我正在寻求做的,而是它的一个功能解决方法。
希望这会帮助你http://stackoverflow.com/questions/31315357/updating-woocommerce-shipping-method-via-ajax –