2016-06-24 120 views
1

我正在使用Wordpress網站,我想在提交後立即獲取一些訂單詳細信息。其中之一,返回一個很長的字符串,我想根據需要分割和格式化它。這裏是例子:未能按字符拆分字符串中的字符串

echo $order->get_formatted_shipping_address(); 
My name<br />My address<br />My postcode 

我儘量拆分在<br />字符串使用每個字段的在不同的地方。我想是這樣的:

$data = explode("<br />", $order->get_formatted_shipping_address()); 
$name = $data[0]; 
$address = $data[1]; 
$post = $data[2]; 

但是,<br />就繼續在字符串中和$name有整個字符串作爲$data

有什麼想法?

+1

[不能夠產生相同的。](https://3v4l.org/ApCsc) –

+0

你使用什麼版本的wordpress和woocommerce? –

+0

@AlexAndrei WordPress 4.5.3,Woocommerce 2.5.5 – Tasos

回答

0

試戴WooCommerce 2.6.1

$data = explode('<br/>',$order->get_formatted_shipping_address()); 

請注意以下的分隔符是<br/>而不是你用它<br />,你有一個額外的空間。

作爲一種替代方案,您應該使用類WC_Abstract_Order中的magic properties而不是explode

print $order->shipping_first_name; 
print $order->shipping_address_1; 
print $order->shipping_postcode; 

這將輸出而不通過內發生的implode去字段get_formatted_shipping_address()

+0

我對不同的功能使用了第二個建議。謝謝 – Tasos

0

你的代碼應該可以工作,我甚至在我的機器上測試過它。把這段代碼放在一個新文件中,然後測試它是否給出了想要的結果。如果是這樣,那麼你在這個地方犯了一個錯誤。你確定你正在使用正確的變量嗎?

<?php 
    class wp { 
     public function get_formatted_shipping_address() { 
      return "My name<br />My address<br />My postcode"; 
     } 
    } 

    $order = new wp; 

    $data = explode("<br />", $order->get_formatted_shipping_address()); 
    print_r($data); 
    $name = $data[0]; 
    $address = $data[1]; 
    $post = $data[2]; 
+0

當我複製粘貼這裏的代碼並將一些變量名改爲英文時,出現了一個愚蠢的錯誤。我使用實際的'$ data'變量。對不起 – Tasos

+0

@Tasos你的代碼工作。請參閱上面的uchiha註釋 –