Php Woocommerce WC_Order get_shipping_address()未作为数组返回

Php Woocommerce WC_Order get_shipping_address()未作为数组返回,php,wordpress,woocommerce,Php,Wordpress,Woocommerce,从Woocommerce检索订单信息时,它会声明它应该是一个数组,请参阅 相反,它返回一个逗号分隔的字符串 查看Woocommerce核心代码中的函数 public function get_shipping_address() { if ( ! $this->shipping_address ) { if ( $this->shipping_address_1 ) { // Formatted Addresses

从Woocommerce检索订单信息时,它会声明它应该是一个数组,请参阅

相反,它返回一个逗号分隔的字符串

查看Woocommerce核心代码中的函数

 public function get_shipping_address() {
  if ( ! $this->shipping_address ) {
      if ( $this->shipping_address_1 ) {
          // Formatted Addresses
                $address = array(
                'address_1'     => $this->shipping_address_1,
                'address_2'     => $this->shipping_address_2,
                'city'          => $this->shipping_city,
                'state'         => $this->shipping_state,
                'postcode'      => $this->shipping_postcode,
                'country'       => $this->shipping_country
                );
         $joined_address = array();
            foreach ( $address as $part ) {
                if ( ! empty( $part ) ) {
                    $joined_address[] = $part;
                }
            }
            $this->shipping_address = implode( ', ', $joined_address );
        }
 }
  return $this->shipping_address;
 }
我可以看到它使用内爆来创建字符串,而不修改这个函数,我如何调用这个函数并以数组的形式检索$address?(如果可能的话?)


原因是我可以分解返回值,但地址中的逗号会破坏它。

回答我自己问题的习惯

所以要像上面解释的那样接收字符串,您可以这样做

$order = new WC_Order($order_id);
echo $order->get_shipping_address();  //Road , Street, City, County, Postcode, Country
$order = new WC_Order($order_id);
echo $order->shipping_city;      //London
echo $order->shipping_country;   //GB
如果你想收到单独的行,你可以这样做

$order = new WC_Order($order_id);
echo $order->get_shipping_address();  //Road , Street, City, County, Postcode, Country
$order = new WC_Order($order_id);
echo $order->shipping_city;      //London
echo $order->shipping_country;   //GB
在我看来,后者将更加有用