Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

WooCommerce new order action - get order information

I am using this to create a new function in my functions.php file

add_action( 'woocommerce_new_order', 'create_invoice_for_wc_order',  1, 1  );
function create_invoice_for_wc_order() {

}

it is to execute some custom code when a new order is placed, how can i get the order information (ordered products etc) inside my function

like image 228
charlie Avatar asked Jun 16 '16 19:06

charlie


2 Answers

All answers here are correct but if you need the line items the above wont work since line items can't be fetched with new WC_Order at that time.

The hook now has a second $order parameter that will work.

add_action( 'woocommerce_new_order', 'create_invoice_for_wc_order',  1, 2  );
function create_invoice_for_wc_order( $order_id, $order ) {
    $items = $order->get_items();
    // etc...
}
like image 76
Sigurd Heggemsnes Avatar answered Oct 17 '22 09:10

Sigurd Heggemsnes


woocommerce_new_order includes an $order_id parameter. You can use it in your callback:

add_action( 'woocommerce_new_order', 'create_invoice_for_wc_order',  1, 1  );
function create_invoice_for_wc_order( $order_id ) {
    $order = new WC_Order( $order_id );
    $items = $order->get_items();
    // etc...
}
like image 30
rnevius Avatar answered Oct 17 '22 08:10

rnevius