Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Add Applied Coupon Code in Admin New Order Email Template - WooCommerce

Let me clear my question:

  • I have downloaded & activated WooCommerce Plugin for E-Commerce Functionality.
  • I want to add "Applied coupon code" in Admin New Order Email Template using my custom plugin.

Now:

  1. Can you tell me that exact Hook or Function which is actually setting up that New Order Email Template so that i will override it?
  2. Can you tell me how to call applied coupon code, so that i will display this in email template?

It would be great, if you help me please.

like image 946
Surabhi Gupta Avatar asked Jan 30 '23 05:01

Surabhi Gupta


1 Answers

This can be done using a custom function hooked in woocommerce_email_order_details action hook (for example) that will display in admin emails notifications the used coupons in the order:

// The email function hooked that display the text
add_action( 'woocommerce_email_order_details', 'display_applied_coupons', 10, 4 );
function display_applied_coupons( $order, $sent_to_admin, $plain_text, $email ) {

    // Only for admins and when there at least 1 coupon in the order
    if ( ! $sent_to_admin && count($order->get_items('coupon') ) == 0 ) return;

    foreach( $order->get_items('coupon') as $coupon ){
        $coupon_codes[] = $coupon->get_code();
    }
    // For one coupon
    if( count($coupon_codes) == 1 ){
        $coupon_code = reset($coupon_codes);
        echo '<p>'.__( 'Coupon Used: ').$coupon_code.'<p>';
    } 
    // For multiple coupons
    else {
        $coupon_codes = implode( ', ', $coupon_codes);
        echo '<p>'.__( 'Coupons Used: ').$coupon_codes.'<p>';
    }
}

Code goes in function.php file of your active child theme (or theme) or also in any plugin file.

Tested and works...

like image 132
LoicTheAztec Avatar answered Jan 31 '23 20:01

LoicTheAztec