programing

WooCommerce 3+ 어레이에서 주문 메타를 가져오는 방법

golfzon 2023. 3. 10. 23:03
반응형

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

반응형