如何在钩子中访问WooCommerce自定义计费字段

时间:2016-12-14 07:56:23

标签: php wordpress woocommerce

我正在编写一个自定义WordPress功能,当客户更改"状态"选择菜单中的字段。目前我正在使用我的主题函数.php

我创建了一个自定义字段来表示" State"字段作为结算字段中的下拉菜单。我用了#34; 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 );

1 个答案:

答案 0 :(得分:-1)

我发现了这个:

http://phpwpinfo.com/how-to-update-shipping-cost-in-cart-dynamically-based-on-a-custom-field-in-woocommerce/

基本上它通过JS捕获字段数据并向服务器发送Ajax请求,然后服务器将值存储在会话中。然后再增加一笔费用。这不是我想要做的,而是一个功能性的解决方法。