访问 Woocommerce 3 中的运费对象数据

问题描述 投票:0回答:1

我想在 Woocommerce 中获取可能的运输方式。我可以进入 WC_Shipping_Rate 类,但我不知道如何“深入”,这让我发疯。

这是我的代码:

$packages = WC()->shipping->get_packages();

foreach ( $packages as $i => $package ) {

    foreach($package['rates'] as $value){
        echo '<pre>'.var_export($value, true).'</pre>';
    }

}

这段代码将其打印在我的屏幕上:

WC_Shipping_Rate::__set_state(array(
   'data' => 
  array (
    'id' => 'flat_rate:1',
    'method_id' => 'flat_rate',
    'instance_id' => 1,
    'label' => 'Per post',
    'cost' => '2.50',
    'taxes' => 
    array (
    ),
  ),
   'meta_data' => 
  array (
    'Items' => '1 Kip × 1',
  ),
))
WC_Shipping_Rate::__set_state(array(
   'data' => 
  array (
    'id' => 'free_shipping:2',
    'method_id' => 'free_shipping',
    'instance_id' => 2,
    'label' => 'Download kaart',
    'cost' => '0.00',
    'taxes' => 
    array (
    ),
  ),
   'meta_data' => 
  array (
    'Items' => '1 Kip × 1',
  ),
))

我的问题是:我如何访问

data
数组,然后访问
label
值?我知道如何获得
label
值,但我无法“达到”
data
...

我尝试使用方法、更多数组来获取它,但

WC_Shipping_Rate::__set_state(array(
让我感到困惑。如有任何帮助,我们将不胜感激。

php wordpress woocommerce shipping-method
1个回答
4
投票

使用

WC_Shipping_Rate
方法或直接使用属性尝试以下操作:

// Loop though shipping packages
foreach ( WC()->shipping->get_packages() as $key => $package ) {
    // Loop through Shipping rates
    foreach($package['rates'] as $rate_id => $rate ){

        echo $rate->get_label(). '<br>';

        // Or:
        echo $rate->label. '<br>';
    }
}

已测试且有效。

WC_Shipping_Rate
对象的可用属性有:

id           // The rate ID (string),
method_id    // The method ID (string),
instance_id  // The instance ID (integer),
label        // The displayed Label name (string),
cost         // The cost (float),
taxes        // The taxes (array),

或者可用的 getter 方法有:

get_id()          // The rate ID (string),
get_method_id()   // The method ID (string),
get_instance_id() // The instance ID (integer),
get_label()       // The displayed Label name (string),
get_cost()        // The cost (float),
get_taxes()       // The taxes (array),

get_shipping_tax() // The tax cost (float)
get_meta_data()    // The metadata for the rate (array)

请注意,您可以使用

WC_Shipping_Rate
对象的属性或方法。

© www.soinside.com 2019 - 2024. All rights reserved.