Woocommerce 从送货方式 ID 获取送货区域名称
Woocommerce get shipping zone name from the shipping method id
我有一个函数 returns $shipping_method_id
(例如 flat_rate:3
)。我想获取此运输方式费率 ID 的区域名称...
如何根据Shipping method rate ID获取区域名称?
构建将使用非常简单的 SQL 查询的自定义函数:
function get_shipping_zone_from_method_rate_id( $method_rate_id ){
global $wpdb;
$data = explode( ':', $method_rate_id );
$method_id = $data[0];
$instance_id = $data[1];
// The first SQL query
$zone_id = $wpdb->get_col( "
SELECT wszm.zone_id
FROM {$wpdb->prefix}woocommerce_shipping_zone_methods as wszm
WHERE wszm.instance_id = '$instance_id'
AND wszm.method_id LIKE '$method_id'
" );
$zone_id = reset($zone_id); // converting to string
// 1. Wrong Shipping method rate id
if( empty($zone_id) )
{
return __("Error! doesn't exist…");
}
// 2. Default WC Zone name
elseif( $zone_id == 0 )
{
return __("All Other countries");
}
// 3. Created Zone name
else
{
// The 2nd SQL query
$zone_name = $wpdb->get_col( "
SELECT wsz.zone_name
FROM {$wpdb->prefix}woocommerce_shipping_zones as wsz
WHERE wsz.zone_id = '$zone_id'
" );
return reset($zone_name); // converting to string and returning the value
}
}
代码进入您的活动子主题(或主题)的 function.php 文件或任何插件文件。
已测试并有效。
用法示例 (输出区域名称):
// Set HERE your shipping method rate id
$rate_id = 'flat_rate:3';
// Get the zone name
$zone_name = get_shipping_zone_from_method_rate_id( $rate_id );
// Output zone name
echo $zone_name;
我有一个函数 returns $shipping_method_id
(例如 flat_rate:3
)。我想获取此运输方式费率 ID 的区域名称...
如何根据Shipping method rate ID获取区域名称?
构建将使用非常简单的 SQL 查询的自定义函数:
function get_shipping_zone_from_method_rate_id( $method_rate_id ){
global $wpdb;
$data = explode( ':', $method_rate_id );
$method_id = $data[0];
$instance_id = $data[1];
// The first SQL query
$zone_id = $wpdb->get_col( "
SELECT wszm.zone_id
FROM {$wpdb->prefix}woocommerce_shipping_zone_methods as wszm
WHERE wszm.instance_id = '$instance_id'
AND wszm.method_id LIKE '$method_id'
" );
$zone_id = reset($zone_id); // converting to string
// 1. Wrong Shipping method rate id
if( empty($zone_id) )
{
return __("Error! doesn't exist…");
}
// 2. Default WC Zone name
elseif( $zone_id == 0 )
{
return __("All Other countries");
}
// 3. Created Zone name
else
{
// The 2nd SQL query
$zone_name = $wpdb->get_col( "
SELECT wsz.zone_name
FROM {$wpdb->prefix}woocommerce_shipping_zones as wsz
WHERE wsz.zone_id = '$zone_id'
" );
return reset($zone_name); // converting to string and returning the value
}
}
代码进入您的活动子主题(或主题)的 function.php 文件或任何插件文件。
已测试并有效。
用法示例 (输出区域名称):
// Set HERE your shipping method rate id
$rate_id = 'flat_rate:3';
// Get the zone name
$zone_name = get_shipping_zone_from_method_rate_id( $rate_id );
// Output zone name
echo $zone_name;