2016-06-24 2 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

은 구분 기호 <br/>이라는 주

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

WooCommerce 2.6.1에서 다음을 시도하고 당신이 그것을 <br />을 사용하지, 당신은 여분의 공간이 마련되어 있습니다.

대신 explode 대신 WC_Abstract_Order 클래스의 magic properties을 사용해야합니다.

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

@ 귀하의 코드가 작동합니다. 위에 uchiha 코멘트를보십시오 –

관련 문제