在WooCommerce结帐页面上获取实时的客户送货位置

时间:2019-05-21 17:03:27

标签: php wordpress woocommerce hook-woocommerce shipping-method

我正在尝试在WooCommerce内的运费下,在结帐页面上将估计的交货时间添加到订单中。

我已经知道如何执行此操作,例如:

add_action( 'woocommerce_after_shipping_rate', 'blm_action_after_shipping_rate', 20, 2 );

function blm_action_after_shipping_rate ( $method, $index ) {
    if( is_cart() ) {
        return; // Exit on cart page
    }

    // Use $method->method_id in here to check delivery option

}

现在,要能够估算出所需的天数(不幸的是,运送API不会返回此数据),我需要在此处查找运送国家和运送州/省-有办法吗?

1 个答案:

答案 0 :(得分:1)

运费是根据客户的送货地点计算得出的。

因此,您询问了客户的运送国家/地区,并声明可以使用以下专用方法从WC_Customer对象中获取商品:

add_action( 'woocommerce_after_shipping_rate', 'blm_action_after_shipping_rate', 20, 2 );
function blm_action_after_shipping_rate ( $method, $index ) {
    if( is_cart() ) {
        return; // Exit on cart page
    }

    $shipping_country = WC()->customer->get_shipping_country();
    $shipping_state   = WC()->customer->get_shipping_state();

    // Testing output
    echo '<br><small>Country code:' . $shipping_country . ' | State code: ' . $shipping_state . '</small>';
}

代码进入活动子主题(或活动主题)的function.php文件中。经过测试,可以正常工作。

如果客户更改国家和州,则刷新数据,并在WC_Customer对象中设置新的国家和州。