2017-09-07 17 views
2

에서 방법의 세부 사항을 선적 주문을 받기가 어떻게이 위해 배송 방법 ID ....WooCommerce 3

예를 들어 'flate_rate'를 얻을 수 있습니다.

WooCommerce 3.x.x 이후로 모든 것이 바뀌기 때문에 쉽지 않습니다.

foreach 루프에서 $order->get_data()으로 시도했지만 데이터가 보호되어 있습니다. 당신은 데이터 배송 주문 항목 얻고 싶은 경우에

답변

7

, 당신은 ('shipping' 항목 유형)를 foreach 루프에서 그들을 얻을 수 및 데이터

$order_id = 528; // For example 

// An instance of 
$order = wc_get_order($order_id); 

// Iterating through order shipping items 
foreach($order->get_items('shipping') as $item_id => $shipping_item_obj){ 
    $order_item_name   = $shipping_item_obj->get_name(); 
    $order_item_type   = $shipping_item_obj->get_type(); 
    $shipping_method_title  = $shipping_item_obj->get_method_title(); 
    $shipping_method_id  = $shipping_item_obj->get_method_id(); // The method ID 
    $shipping_method_total  = $shipping_item_obj->get_total); 
    $shipping_method_total_tax = $shipping_item_obj->get_total_tax(); 
    $shipping_method_taxes  = $shipping_item_obj->get_taxes(); 
} 

당신이 할 수있는 액세스 할 수 WC_Order_Item_Shipping 방법을 사용하여 먼저 필요 이 foreach 루프 내부 WC_Dataget_data() 방법을 사용하여이 (보호 및 접근) 데이터의 배열을 얻을 :

$order_id = 528; // For example 

// An instance of 
$order = wc_get_order($order_id); 

// Iterating through order shipping items 
foreach($order->get_items('shipping') as $item_id => $shipping_item_obj){ 
    // Get the data in an unprotected array 
    $shipping_item_data = $shipping_item_obj->get_data(); 

    $shipping_data_id   = $shipping_data['id']; 
    $shipping_data_order_id  = $shipping_data['order_id']; 
    $shipping_data_name   = $shipping_data['name']; 
    $shipping_data_method_title = $shipping_data['method_title']; 
    $shipping_data_method_id = $shipping_data['method_id']; 
    $shipping_data_total  = $shipping_data['total']; 
    $shipping_data_total_tax = $shipping_data['total_tax']; 
    $shipping_data_taxes  = $shipping_data['taxes']; 
} 

내지 F를 다음 예와 같이 '배송 데이터'와 관련된 WC_Abstract_Order 방법을 사용할 수 있습니다.

// Get an instance of the WC_Order object 
$order = wc_get_order(522); 

// Return an array of shipping costs within this order. 
$order->get_shipping_methods(); 

// Conditional function based on the Order shipping method 
if($order->has_shipping_method('flat_rate')) { 

    // Output formatted shipping method title. 
    echo '<p>Shipping method name: '. $order->get_shipping_method()) .'</p>';