2016-06-24 20 views
1

私はWordpressのWebサイトで作業しています。投稿後に注文の詳細を取得したいと思います。そのうちの1人は、私が必要とするように分割してフォーマットしたい長い文字列で返されました。次に例を示します。文字列で文字列を分割できない

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

内部で起こるimplodeを介さずフィールド[同じを生成することができない。](https://3v4l.org/ApCsc) –

+0

どのバージョンのWordPressとWoocommerceを使用していますか? –

+0

@AlexAndrei WordPress 4.5.3、Woocommerce 2.5.5 – Tasos

答えて

0

は、区切り文字が<br/>であることに注意してください

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

WooCommerce 2.6.1に、次の試み、あなたがそれ<br />を使用していないとして、あなたは余分なスペースがあります。

explodeの代わりに、WC_Abstract_Ordermagic propertiesを使用する必要があります。

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

この意志出力get_formatted_shipping_address()

+0

私は、さまざまな機能で2番目の提案を使用しました。ありがとうございました – 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

@あなたのコードは動作します。上記のuchihaのコメントを参照してください –