반응형
WooCommerce 3+ 어레이에서 주문 메타를 가져오는 방법
내 플러그인 중 하나인 WooCommerce Dymo Print에 값을 반환하는 함수를 만들어야 합니다.그것은 필요하다$order_id,$label그리고.$object.그$object값을 반환해야 하는 필드입니다.
다음 코드를 만들었습니다.
add_filter('wc_dymo_order_function', 'wpf_dymo_order_output',10,3);
function wpf_dymo_order_output( $order_id, $label, $object ) {
if($label=='shipping' && $object='DEL_DATE') {
//Get order from order ID
$order=wc_get_order($order_id);
$del_date='';
$order_data = $order->get_data(); // The Order data
$order_del_date = $order_data['delivery_date'];
//Return a list (string) of all product inside this order, make sure it's well formatted before printing.
return $order_del_date;
} else {
//Return order_id if is not correct label and object
return '';
}
}
그러나 동작하지 않는 것 같습니다.delivery_date가 배열에 네스트되어 제대로 취득되지 않았기 때문이라고 생각합니다.
메타 데이터는 이런 모양이어야 합니다.
Array
(
[31040763] => Array
(
[shipment_id] => 31040763
[tracktrace] => 3SMYPA000000000
[shipment] => Array
(
[barcode] => 3SMYPA000000000
[pickup] => Array
(
[postal_code] => XXXAA
[street] => STRAAT
[city] => STAD
[number] => XX
[location_name] => Gamma
)
[options] => Array
(
[signature] => 0
[delivery_date] => 2018-03-10 00:00:00
)
)
)
)
여기서 delivery_date는 반환해야 합니다.
다음 코드로 해결:
$order=wc_get_order($order_id);
$order_data = $order->get_meta('_shipments');
$final_array = array_values($order_data);
$order_del_date = $final_array[0]['options']['delivery_date'];
return $order_del_date;
사용할 수 있습니다.get_post_meta메타 가치를 얻습니다.
get_post_meta( $order_id, 'your_meta_key', true );
심플하지만 효과적입니다.
언급URL : https://stackoverflow.com/questions/49193917/how-to-get-order-meta-from-array-in-woocommerce-3
반응형
'programing' 카테고리의 다른 글
| href는 Angular.js에서 ng-click을 덮어씁니다. (0) | 2023.03.15 |
|---|---|
| Jersey 예외 : SERVE : Java 클래스의 메시지 본문 리더 (0) | 2023.03.15 |
| WordPress remove_menu_page() 함수가 오류를 발생시킵니다. (0) | 2023.03.10 |
| React Dev 도구에 내 구성 요소가 알 수 없음으로 표시됨 (0) | 2023.03.10 |
| enum을 값 배열로 변환(배열 내 모든 JSON 값 배치) (0) | 2023.03.10 |