Created
July 17, 2020 09:07
-
-
Save hmbashar/9ac6fe348331c4a09e33f3c2e6485577 to your computer and use it in GitHub Desktop.
woocommerce hook order details
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
//Using some WC_Order and WC_Abstract_Order methods (example): | |
// Get an instance of the WC_Order object (same as before) | |
$order = wc_get_order( $order_id ); | |
$order_id = $order->get_id(); // Get the order ID | |
$parent_id = $order->get_parent_id(); // Get the parent order ID (for subscriptions…) | |
$user_id = $order->get_user_id(); // Get the costumer ID | |
$user = $order->get_user(); // Get the WP_User object | |
$order_status = $order->get_status(); // Get the order status (see the conditional method has_status() below) | |
$currency = $order->get_currency(); // Get the currency used | |
$payment_method = $order->get_payment_method(); // Get the payment method ID | |
$payment_title = $order->get_payment_method_title(); // Get the payment method title | |
$date_created = $order->get_date_created(); // Get date created (WC_DateTime object) | |
$date_modified = $order->get_date_modified(); // Get date modified (WC_DateTime object) | |
$billing_country = $order->get_billing_country(); // Customer billing country | |
// ... and so on ... | |
//For order status as a conditional method (where "the_targeted_status" need to be defined and replaced by an order status to target a specific order status): | |
if ( $order->has_status('completed') ) { | |
// Do something | |
} | |
//Get and access to the order data properties (in an array of values): | |
// Get an instance of the WC_Order object | |
$order = wc_get_order( $order_id ); | |
$order_data = $order->get_data(); // The Order data | |
$order_id = $order_data['id']; | |
$order_parent_id = $order_data['parent_id']; | |
$order_status = $order_data['status']; | |
$order_currency = $order_data['currency']; | |
$order_version = $order_data['version']; | |
$order_payment_method = $order_data['payment_method']; | |
$order_payment_method_title = $order_data['payment_method_title']; | |
$order_payment_method = $order_data['payment_method']; | |
$order_payment_method = $order_data['payment_method']; | |
## Creation and modified WC_DateTime Object date string ## | |
// Using a formated date ( with php date() function as method) | |
$order_date_created = $order_data['date_created']->date('Y-m-d H:i:s'); | |
$order_date_modified = $order_data['date_modified']->date('Y-m-d H:i:s'); | |
// Using a timestamp ( with php getTimestamp() function as method) | |
$order_timestamp_created = $order_data['date_created']->getTimestamp(); | |
$order_timestamp_modified = $order_data['date_modified']->getTimestamp(); | |
$order_discount_total = $order_data['discount_total']; | |
$order_discount_tax = $order_data['discount_tax']; | |
$order_shipping_total = $order_data['shipping_total']; | |
$order_shipping_tax = $order_data['shipping_tax']; | |
$order_total = $order_data['cart_tax']; | |
$order_total_tax = $order_data['total_tax']; | |
$order_customer_id = $order_data['customer_id']; // ... and so on | |
## BILLING INFORMATION: | |
$order_billing_first_name = $order_data['billing']['first_name']; | |
$order_billing_last_name = $order_data['billing']['last_name']; | |
$order_billing_company = $order_data['billing']['company']; | |
$order_billing_address_1 = $order_data['billing']['address_1']; | |
$order_billing_address_2 = $order_data['billing']['address_2']; | |
$order_billing_city = $order_data['billing']['city']; | |
$order_billing_state = $order_data['billing']['state']; | |
$order_billing_postcode = $order_data['billing']['postcode']; | |
$order_billing_country = $order_data['billing']['country']; | |
$order_billing_email = $order_data['billing']['email']; | |
$order_billing_phone = $order_data['billing']['phone']; | |
## SHIPPING INFORMATION: | |
$order_shipping_first_name = $order_data['shipping']['first_name']; | |
$order_shipping_last_name = $order_data['shipping']['last_name']; | |
$order_shipping_company = $order_data['shipping']['company']; | |
$order_shipping_address_1 = $order_data['shipping']['address_1']; | |
$order_shipping_address_2 = $order_data['shipping']['address_2']; | |
$order_shipping_city = $order_data['shipping']['city']; | |
$order_shipping_state = $order_data['shipping']['state']; | |
$order_shipping_postcode = $order_data['shipping']['postcode']; | |
$order_shipping_country = $order_data['shipping']['country']; | |
//Get the order items and access the data with WC_Order_Item_Product and WC_Order_Item methods: | |
// Get an instance of the WC_Order object | |
$order = wc_get_order($order_id); | |
// Iterating through each WC_Order_Item_Product objects | |
foreach ($order->get_items() as $item_key => $item ): | |
## Using WC_Order_Item methods ## | |
// Item ID is directly accessible from the $item_key in the foreach loop or | |
$item_id = $item->get_id(); | |
## Using WC_Order_Item_Product methods ## | |
$product = $item->get_product(); // Get the WC_Product object | |
$product_id = $item->get_product_id(); // the Product id | |
$variation_id = $item->get_variation_id(); // the Variation id | |
$item_type = $item->get_type(); // Type of the order item ("line_item") | |
$item_name = $item->get_name(); // Name of the product | |
$quantity = $item->get_quantity(); | |
$tax_class = $item->get_tax_class(); | |
$line_subtotal = $item->get_subtotal(); // Line subtotal (non discounted) | |
$line_subtotal_tax = $item->get_subtotal_tax(); // Line subtotal tax (non discounted) | |
$line_total = $item->get_total(); // Line total (discounted) | |
$line_total_tax = $item->get_total_tax(); // Line total tax (discounted) | |
## Access Order Items data properties (in an array of values) ## | |
$item_data = $item->get_data(); | |
$product_name = $item_data['name']; | |
$product_id = $item_data['product_id']; | |
$variation_id = $item_data['variation_id']; | |
$quantity = $item_data['quantity']; | |
$tax_class = $item_data['tax_class']; | |
$line_subtotal = $item_data['subtotal']; | |
$line_subtotal_tax = $item_data['subtotal_tax']; | |
$line_total = $item_data['total']; | |
$line_total_tax = $item_data['total_tax']; | |
// Get data from The WC_product object using methods (examples) | |
$product = $item->get_product(); // Get the WC_Product object | |
$product_type = $product->get_type(); | |
$product_sku = $product->get_sku(); | |
$product_price = $product->get_price(); | |
$stock_quantity = $product->get_stock_quantity(); | |
endforeach; | |
//Credit https://stackoverflow.com/questions/39401393/how-to-get-woocommerce-order-details | |
//https://stackoverflow.com/questions/39401393/how-to-get-woocommerce-order-details |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment