WooCommerce获取当前用户的选定发货区域ID

时间:2019-03-28 作者:Nikko Dela Cruz

如何根据WooCommerce中的当前用户获取所选装运区id?

我尝试了下面的代码,但没有得到zone id 从购物车页面:

$bh_packages =  $cart->get_shipping_packages();
$shipping_zone = wc_get_shipping_zone( $bh_packages );
$zone = $shipping_zone->get_zone_name();  
var_dump($zone);

1 个回复
SO网友:LoicTheAztec

问题是WC_Cart get_shipping_packages() 方法给出array 装运包装和功能wc_get_shipping_zone( $package ) 期望有一个唯一的包作为参数。

因此,您只需要获得一个包,例如使用phpreset() 功能如下:

// Get cart shipping packages
$shipping_packages =  WC()->cart->get_shipping_packages();

// Get the WC_Shipping_Zones instance object for the first package
$shipping_zone = wc_get_shipping_zone( reset( $shipping_packages ) );

$zone_id   = $shipping_zone->get_id(); // Get the zone ID
$zone_name = $shipping_zone->get_zone_name(); // Get the zone name

// Testing output
echo \'<p>Zone id: \' . $zone_id . \' | Zone name: \' . $zone_name . \'</p>\';
已测试并正常工作。