Send coupons used in an order by email in WooCommerce

This snippet sends by email the list of coupons used in an order. You can customize the $to variable and define your own email address, and the $message to have your own text.

Add this code to your child theme’s functions.php file or via a plugin that allows custom functions to be added, such as the Dessky Snippets plugin. Please don’t add custom code directly to your parent theme’s functions.php file as this will be overwritten completely when you update the theme.

 * Send an email each time an order with coupon(s) is completed
 * The email contains coupon(s) used during checkout process
function woo_email_order_coupons( $order_id ) {
        $order = new WC_Order( $order_id );
        if( $order->get_used_coupons() ) {
          $to = '';
	        $subject = 'New Order Completed';
	        $headers = 'From: My Name <>' . "\r\n";
	        $message = 'A new order has been completed.\n';
	        $message .= 'Order ID: '.$order_id.'\n';
	        $message .= 'Coupons used:\n';
	        foreach( $order->get_used_coupons() as $coupon) {
		        $message .= $coupon.'\n';
	        @wp_mail( $to, $subject, $message, $headers );
add_action( 'woocommerce_thankyou', 'woo_email_order_coupons' );
1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Oopps, sorry. This discussion is closed.

If you are a paying customer and you are looking for Tech Support please post a ticket on our Support Tickets page and we will respond promptly.

If you are not a paying customer and you would like to post a pre-sale question or a quote request please use our Contact form.

Why did we close the discussion?

Many of the customers started reporting issues as comments instead of the ticketing system and this started delaying our response time.

We are making this change to serve our customers better. We have ramped up our support team and we are trying to get the reply out on the same day.

Thanks for understanding.