woocommerce_new_order action-hookWC 2.7.0

Fires when a new order is created.

Usage

add_action( 'woocommerce_new_order', 'wp_kama_woocommerce_new_order_action', 10, 2 );

/**
 * Function for `woocommerce_new_order` action-hook.
 * 
 * @param int       $order_id Order ID.
 * @param \WC_Order $order    Order object.
 *
 * @return void
 */
function wp_kama_woocommerce_new_order_action( $order_id, $order ){

	// action...
}
$order_id(int)
Order ID.
$order(\WC_Order)
Order object.

Changelog

Since 2.7.0 Introduced.

Where the hook is called

OrdersTableDataStore::create()
woocommerce_new_order
OrdersTableDataStore::update()
woocommerce_new_order
WC_Order_Data_Store_CPT::create()
woocommerce_new_order
WC_Order_Data_Store_CPT::update()
woocommerce_new_order
woocommerce/src/Internal/DataStores/Orders/OrdersTableDataStore.php 2829
do_action( 'woocommerce_new_order', $order->get_id(), $order );
woocommerce/src/Internal/DataStores/Orders/OrdersTableDataStore.php 2927
do_action( 'woocommerce_new_order', $order->get_id(), $order ); // phpcs:ignore WooCommerce.Commenting.CommentHooks.MissingHookComment
woocommerce/includes/data-stores/class-wc-order-data-store-cpt.php 117
do_action( 'woocommerce_new_order', $order->get_id(), $order );
woocommerce/includes/data-stores/class-wc-order-data-store-cpt.php 240
do_action( 'woocommerce_new_order', $order->get_id(), $order );  // phpcs:ignore WooCommerce.Commenting.CommentHooks.MissingHookComment

Where the hook is used in WooCommerce

woocommerce/src/Caches/OrderCountCacheService.php 48
add_action( 'woocommerce_new_order', array( $this, 'update_on_new_order' ), 10, 2 );
woocommerce/src/Internal/Admin/Agentic/AgenticWebhookManager.php 70
add_action( 'woocommerce_new_order', array( $this, 'handle_order_created' ), 999, 2 ); // Hook late to give a chance for other plugins to modify.
woocommerce/src/Internal/Caches/OrdersVersionStringInvalidator.php 64
add_action( 'woocommerce_new_order', array( $this, 'handle_woocommerce_new_order' ), 10, 2 );
woocommerce/src/Internal/DataStores/Orders/DataSynchronizer.php 105
add_action( 'woocommerce_new_order', array( $this, 'handle_updated_order' ), 100 );