Skip to content

Instantly share code, notes, and snippets.

@abegit
Created February 2, 2016 20:11
Show Gist options
  • Star 42 You must be signed in to star a gist
  • Fork 18 You must be signed in to fork a gist
  • Save abegit/74e691d877cadc37d7b6 to your computer and use it in GitHub Desktop.
Save abegit/74e691d877cadc37d7b6 to your computer and use it in GitHub Desktop.
WooCommerce Hooks for Order Status Changes
function mysite_pending($order_id) {
error_log("$order_id set to PENDING", 0);
}
function mysite_failed($order_id) {
error_log("$order_id set to FAILED", 0);
}
function mysite_hold($order_id) {
error_log("$order_id set to ON HOLD", 0);
}
function mysite_processing($order_id) {
error_log("$order_id set to PROCESSING", 0);
}
function mysite_completed($order_id) {
error_log("$order_id set to COMPLETED", 0);
}
function mysite_refunded($order_id) {
error_log("$order_id set to REFUNDED", 0);
}
function mysite_cancelled($order_id) {
error_log("$order_id set to CANCELLED", 0);
}
add_action( ‘woocommerce_order_status_pending’, ‘mysite_pending’);
add_action( ‘woocommerce_order_status_failed’, ‘mysite_failed’);
add_action( ‘woocommerce_order_status_on-hold’, ‘mysite_hold’);
// Note that it’s woocommerce_order_status_on-hold, not on_hold.
add_action( ‘woocommerce_order_status_processing’, ‘mysite_processing’);
add_action( ‘woocommerce_order_status_completed’, ‘mysite_completed’);
add_action( ‘woocommerce_order_status_refunded’, ‘mysite_refunded’);
add_action( ‘woocommerce_order_status_cancelled’, ‘mysite_cancelled’);
@s-espriz
Copy link

where does those logs save ?

@abegit
Copy link
Author

abegit commented Oct 3, 2019

@s-espriz

I believe to activate the error logs you need to add a few lines to wp-config.php so that it starts capturing all the errors.
https://stackoverflow.com/a/24330117

Add these lines to wp-config.php

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_DISPLAY', false );
define( 'WP_DEBUG_LOG', true );

this should activate the debug log and save to the default location .../wp-content/debug.log

WP_DEBUG — turns the debugging features ON/OFF
WP_DEBUG_DISPLAY — sets to display the errors on your website at exact moment they happen, even if logged off
WP_DEBUG_LOG — sets to print out the errors to file .../wp-content/debug.log

@th3r4ven
Copy link

th3r4ven commented Feb 6, 2020

This $order_id that is passed as param. is dynamic? for exemple, if i make an order with id = 30, this $order_id will be the 30?

@FreshLondon
Copy link

Just to note that your ‘ should be '.
A small difference but a crucial one.

Thanks for the script! <3

@michaelbarley
Copy link

@abegit

Where does it get $order_id from ? I have put this in my functions.php, getting the error: Undefined variable: order_id.

Thanks

@smiell
Copy link

smiell commented May 10, 2024

@abegit

Where does it get $order_id from ? I have put this in my functions.php, getting the error: Undefined variable: order_id.

Thanks

I am also wondering many times ;) This error only comes from IDE, but I think $order_id come from deeper...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment