在 WooCommerce 中通过其 Id 获取选择的运输方式标题
Get chosen shipping method title by its Id in WooCommerce
在 WooCommerce includes\class-express-checkout-gateway.php
文件中,我通过以下代码获取送货方式 ID:
$chosen_shipping_methods = WC()->session->get('chosen_shipping_methods');
它得到 flat_rate:1
,但我需要它的标题 - Flat Rate
。
我已经尝试了所有这些 answers 以及更多。
我怎样才能得到这个?
$rate_table = array();
$shipping_methods = WC()->shipping->get_shipping_methods();
foreach($shipping_methods as $shipping_method){
$shipping_method->init();
foreach($shipping_method->rates as $key=>$val)
$rate_table[$key] = $val->label;
}
echo $rate_table[WC()->session->get( 'chosen_shipping_methods' )[0]];
这样试试
如果客户在前端计算了运费,这应该可以:
function get_shipping_name_by_id( $shipping_id ) {
$packages = WC()->shipping->get_packages();
foreach ( $packages as $i => $package ) {
if ( isset( $package['rates'] ) && isset( $package['rates'][ $shipping_id ] ) ) {
$rate = $package['rates'][ $shipping_id ];
/* @var $rate WC_Shipping_Rate */
return $rate->get_label();
}
}
return '';
}
如果找不到给定运输 ID 的名称,这将 return 一个空字符串。
在 WooCommerce includes\class-express-checkout-gateway.php
文件中,我通过以下代码获取送货方式 ID:
$chosen_shipping_methods = WC()->session->get('chosen_shipping_methods');
它得到 flat_rate:1
,但我需要它的标题 - Flat Rate
。
我已经尝试了所有这些 answers 以及更多。
我怎样才能得到这个?
$rate_table = array();
$shipping_methods = WC()->shipping->get_shipping_methods();
foreach($shipping_methods as $shipping_method){
$shipping_method->init();
foreach($shipping_method->rates as $key=>$val)
$rate_table[$key] = $val->label;
}
echo $rate_table[WC()->session->get( 'chosen_shipping_methods' )[0]];
这样试试
如果客户在前端计算了运费,这应该可以:
function get_shipping_name_by_id( $shipping_id ) {
$packages = WC()->shipping->get_packages();
foreach ( $packages as $i => $package ) {
if ( isset( $package['rates'] ) && isset( $package['rates'][ $shipping_id ] ) ) {
$rate = $package['rates'][ $shipping_id ];
/* @var $rate WC_Shipping_Rate */
return $rate->get_label();
}
}
return '';
}
如果找不到给定运输 ID 的名称,这将 return 一个空字符串。