在 WooCommerce 中检索客户可用的运输方式详细信息
Retrieve customer available shipping methods details in WooCommerce
如何检索最终用户可见的送货方式? (并非 Woocommerce 中定义的所有运输方式)。我正在使用 "Shipping Zones by Drawing for WooCommerce" 插件。我需要商店周围的多个半径。问题是我有不止一个,这个插件只会隐藏用户所在的半径,并会显示其余部分(我只需要显示其中一个,最便宜的)。
我尝试打印 woocommerce_package_rates
和 WC()->session
的费率,但这些将显示定义的所有送货方式,包括未向用户显示的方式。
要在定义了送货地点且购物车不为空时获取客户可用的送货方式,您可以使用:
// Get shipping packages
$shipping_packages = WC()->cart->get_shipping_packages();
foreach( array_keys( $shipping_packages ) as $key ) {
if( $shipping_for_package = WC()->session->get('shipping_for_package_'.$key) ) {
if( isset($shipping_for_package['rates']) ) {
// Loop through customer available shipping methods
foreach ( $shipping_for_package['rates'] as $rate_key => $rate ) {
$rate_id = $rate->id; // the shipping method rate ID (or $rate_key)
$method_id = $rate->method_id; // the shipping method label
$instance_id = $rate->instance_id; // The instance ID
$cost = $rate->label; // The cost
$label = $rate->label; // The label name
$taxes = $rate->taxes; // The taxes (array)
print_pr($label);
}
}
}
}
现在获取您将使用的所选送货方式:
WC()->session->get('chosen_shipping_methods'); // (Array)
如何检索最终用户可见的送货方式? (并非 Woocommerce 中定义的所有运输方式)。我正在使用 "Shipping Zones by Drawing for WooCommerce" 插件。我需要商店周围的多个半径。问题是我有不止一个,这个插件只会隐藏用户所在的半径,并会显示其余部分(我只需要显示其中一个,最便宜的)。
我尝试打印 woocommerce_package_rates
和 WC()->session
的费率,但这些将显示定义的所有送货方式,包括未向用户显示的方式。
要在定义了送货地点且购物车不为空时获取客户可用的送货方式,您可以使用:
// Get shipping packages
$shipping_packages = WC()->cart->get_shipping_packages();
foreach( array_keys( $shipping_packages ) as $key ) {
if( $shipping_for_package = WC()->session->get('shipping_for_package_'.$key) ) {
if( isset($shipping_for_package['rates']) ) {
// Loop through customer available shipping methods
foreach ( $shipping_for_package['rates'] as $rate_key => $rate ) {
$rate_id = $rate->id; // the shipping method rate ID (or $rate_key)
$method_id = $rate->method_id; // the shipping method label
$instance_id = $rate->instance_id; // The instance ID
$cost = $rate->label; // The cost
$label = $rate->label; // The label name
$taxes = $rate->taxes; // The taxes (array)
print_pr($label);
}
}
}
}
现在获取您将使用的所选送货方式:
WC()->session->get('chosen_shipping_methods'); // (Array)