WooCommerce: $order 개체에서 주문 정보(총계, 품목 등) 가져오기

게시 됨: 2018-05-16

WooCommerce 개발 프리랜서로서 저는 매일 많은 코딩 작업을 반복하여 시간을 낭비합니다. 그 중 하나는 다음과 같습니다. " $order 변수/객체가 있는 경우 ____을(를) 가져오는 방법은 무엇입니까? ".

예를 들어 " 주문 총액 을 어떻게 알 수 있습니까?" 또는 " 주문 항목 을 어떻게 얻을 수 있습니까?" 또는 주문 ID, 고객 ID, 청구 정보 , 지불 방법, 총 환불 등... 이 기사가 시간 절약에도 도움이 되길 바랍니다!

다른 기사에서 보았듯이 $product 개체에서 제품 정보를 가져오고 $cart 개체에서 장바구니 정보를 가져옵니다. 항상 $order 변수에 직접 액세스할 수 있는 것은 아닙니다.

예를 들어 $order_id를 사용할 수 있는 경우가 있습니다. 이 시나리오에서 wc_get_order WooCommerce 함수를 사용하여 주문 개체를 "가져올" 수 있습니다.

이메일 템플릿에 있는 경우 $order 정보를 얻을 수도 있습니다. 이는 트랜잭션 통신에 추가 $order 정보를 표시하거나 사용자 정의 기능을 트리거하는 데 도움이 될 수 있습니다. 어느 쪽이든, 즐기십시오!

1. $order 변수에 접근할 수 있습니다.

후크(do_action 및 apply_filters)는 함수에 전달되는 추가 인수를 사용합니다. 그들이 "$order" 개체를 사용하도록 허용한다면 당신은 사업을 하고 있는 것입니다. 모든 주문 정보를 얻는 방법은 다음과 같습니다.

// Get Order ID and Key
$order->get_id();
$order->get_order_key();

// Get Order Totals $0.00
$order->get_formatted_order_total();
$order->get_cart_tax();
$order->get_currency();
$order->get_discount_tax();
$order->get_discount_to_display();
$order->get_discount_total();
$order->get_fees();
$order->get_formatted_line_subtotal();
$order->get_shipping_tax();
$order->get_shipping_total();
$order->get_subtotal();
$order->get_subtotal_to_display();
$order->get_tax_location();
$order->get_tax_totals();
$order->get_taxes();
$order->get_total();
$order->get_total_discount();
$order->get_total_tax();
$order->get_total_refunded();
$order->get_total_tax_refunded();
$order->get_total_shipping_refunded();
$order->get_item_count_refunded();
$order->get_total_qty_refunded();
$order->get_qty_refunded_for_item();
$order->get_total_refunded_for_item();
$order->get_tax_refunded_for_item();
$order->get_total_tax_refunded_by_rate_id();
$order->get_remaining_refund_amount();
 
// Get and Loop Over Order Items
foreach ( $order->get_items() as $item_id => $item ) {
   $product_id = $item->get_product_id();
   $variation_id = $item->get_variation_id();
   $product = $item->get_product(); // see link above to get $product info
   $product_name = $item->get_name();
   $quantity = $item->get_quantity();
   $subtotal = $item->get_subtotal();
   $total = $item->get_total();
   $tax = $item->get_subtotal_tax();
   $tax_class = $item->get_tax_class();
   $tax_status = $item->get_tax_status();
   $allmeta = $item->get_meta_data();
   $somemeta = $item->get_meta( '_whatever', true );
   $item_type = $item->get_type(); // e.g. "line_item"
}

// Other Secondary Items Stuff
$order->get_items_key();
$order->get_items_tax_classes();
$order->get_item_count();
$order->get_item_total();
$order->get_downloadable_items();
$order->get_coupon_codes();
 
// Get Order Lines
$order->get_line_subtotal();
$order->get_line_tax();
$order->get_line_total();
 
// Get Order Shipping
$order->get_shipping_method();
$order->get_shipping_methods();
$order->get_shipping_to_display();
 
// Get Order Dates
$order->get_date_created();
$order->get_date_modified();
$order->get_date_completed();
$order->get_date_paid();
 
// Get Order User, Billing & Shipping Addresses
$order->get_customer_id();
$order->get_user_id();
$order->get_user();
$order->get_customer_ip_address();
$order->get_customer_user_agent();
$order->get_created_via();
$order->get_customer_note();
$order->get_address_prop();
$order->get_billing_first_name();
$order->get_billing_last_name();
$order->get_billing_company();
$order->get_billing_address_1();
$order->get_billing_address_2();
$order->get_billing_city();
$order->get_billing_state();
$order->get_billing_postcode();
$order->get_billing_country();
$order->get_billing_email();
$order->get_billing_phone();
$order->get_shipping_first_name();
$order->get_shipping_last_name();
$order->get_shipping_company();
$order->get_shipping_address_1();
$order->get_shipping_address_2();
$order->get_shipping_city();
$order->get_shipping_state();
$order->get_shipping_postcode();
$order->get_shipping_country();
$order->get_address();
$order->get_shipping_address_map_url();
$order->get_formatted_billing_full_name();
$order->get_formatted_shipping_full_name();
$order->get_formatted_billing_address();
$order->get_formatted_shipping_address();
 
// Get Order Payment Details
$order->get_payment_method();
$order->get_payment_method_title();
$order->get_transaction_id();
 
// Get Order URLs
$order->get_checkout_payment_url();
$order->get_checkout_order_received_url();
$order->get_cancel_order_url();
$order->get_cancel_order_url_raw();
$order->get_cancel_endpoint();
$order->get_view_order_url();
$order->get_edit_order_url();
 
// Get Order Status
$order->get_status();

// Get Thank You Page URL
$order->get_checkout_order_received_url();

2. $order_id 변수에 대한 액세스 권한이 있습니다.

주문 ID에 액세스할 수 있는 경우(다시 한 번 일반적으로 do_action 또는 apply_filters가 이를 제공할 수 있음) 주문 개체를 먼저 가져와야 합니다. 그런 다음 위와 똑같은 작업을 수행합니다.

// Get $order object from order ID
 
$order = wc_get_order( $order_id );
 
// Now you have access to (see above)...
 
if ( $order ) {
   $order->get_formatted_order_total( );
   // etc.
   // etc.
}

3. $email 변수에 접근할 수 있습니다.

WooCommerce 이메일로 작업하는 경우 종종 $email 객체를 매개변수로 사용할 수 있습니다. 거기에서 객체를 얻으려면 추가 단계가 필요합니다. 그런 다음 위와 똑같은 작업을 수행합니다.

// Get $order object from $email
 
$order = $email->object;
 
// Now you have access to (see above)...
 
if ( $order ) {
   $order->get_id();
   $order->get_formatted_order_total( );
   // etc.
   // etc.
}