Wordpress 获取当前配送区域

Wordpress 获取当前配送区域,wordpress,woocommerce,storefront,Wordpress,Woocommerce,Storefront,我需要计算一下在免费送货之前要多少钱。我有两个装运区,我需要知道哪个是最新的。我只获得了所有已定义的装运区,但找不到任何东西来获取有关当前装运区的信息。这必须根据装运计算器进行相应更改 有没有办法获得当前的装运区 function action_woocommerce_cart_totals_after_order_total() { echo 'Bis kostenloser versand'; // till free shipping $IsValue = WC()->c

我需要计算一下在免费送货之前要多少钱。我有两个装运区,我需要知道哪个是最新的。我只获得了所有已定义的装运区,但找不到任何东西来获取有关当前装运区的信息。这必须根据装运计算器进行相应更改

有没有办法获得当前的装运区

function action_woocommerce_cart_totals_after_order_total() {
  echo 'Bis kostenloser versand'; // till free shipping

  $IsValue = WC()->cart->get_subtotal();
  $delivery_zones = WC_Shipping_Zones::get_zones();
  foreach ((array) $delivery_zones as $key => $the_zone ) {
    echo $the_zone['zone_name'];

    // I need to know which is current
  }

};
add_action( 'woocommerce_cart_totals_after_order_total', 'action_woocommerce_cart_totals_after_order_total', 10, 0 );
要获取“获取当前配送区域”,您可以使用
get\u zone\u matching\u package()
,为此,您必须传递通过此
WC()->session->get('selected\u shipping\u methods')[0]
可以获取的当前包。试试下面的代码

function action_woocommerce_cart_totals_after_order_total() {
    $shipping_id = WC()->session->get( 'chosen_shipping_methods' )[0];
    $packages    = WC()->shipping->get_packages();
    foreach ( $packages as $i => $package ) {
        if ( isset( $package['rates'] ) && isset( $package['rates'][ $shipping_id ] ) ) {
            $package = $package;
            break;
        }
    }
    $shipping_zone = WC_Shipping_Zones::get_zone_matching_package( $package );
    $zone          = $shipping_zone->get_zone_name();
    echo "zone => ".$zone;

};
add_action( 'woocommerce_cart_totals_after_order_total', 'action_woocommerce_cart_totals_after_order_total', 10, 0 );

Bhautik谢谢你,这很有效欢迎。。。很高兴能帮上忙。