Add the Coupon Code names to Woocommerce View Order details and email notifications Add the Coupon Code names to Woocommerce View Order details and email notifications wordpress wordpress

Add the Coupon Code names to Woocommerce View Order details and email notifications


Updated - Handling discounts with a zero value

The following code will after "discount" line in order totals lines, displaying the applied coupons to the order:

add_filter( 'woocommerce_get_order_item_totals', 'add_coupons_codes_line_to_order_totals_lines', 10, 3 );function add_coupons_codes_line_to_order_totals_lines( $total_rows, $order, $tax_display ) {    // Exit if there is no coupons applied    if( sizeof( $order->get_used_coupons() ) == 0 )        return $total_rows;    $new_total_rows = []; // Initializing    foreach($total_rows as $key => $total ){        $new_total_rows[$key] = $total;        if( $key == 'discount' ){            // Get applied coupons            $applied_coupons = $order->get_used_coupons();            // Insert applied coupon codes in total lines after discount line            $new_total_rows['coupon_codes'] = array(                'label' => __('Applied coupons:', 'woocommerce'),                'value' => implode( ', ', $applied_coupons ),            );        }    }    return $new_total_rows;}

Display on customer order view, with 2 applied coupons:

enter image description here


Additional code version: Handle applied coupons with a zero discount amount use this instead:

add_filter( 'woocommerce_get_order_item_totals', 'add_coupons_codes_line_to_order_totals_lines', 10, 3 );function add_coupons_codes_line_to_order_totals_lines( $total_rows, $order, $tax_display ) {    $has_used_coupons = sizeof( $order->get_used_coupons() ) > 0 ? true : false;    // Exit if there is no coupons applied    if( ! $has_used_coupons )        return $total_rows;    $new_total_rows  = []; // Initializing    $applied_coupons = $order->get_used_coupons(); // Get applied coupons    foreach($total_rows as $key => $total ){        $new_total_rows[$key] = $total;        // Adding the discount line for orders with applied coupons and zero discount amount        if( ! isset($total_rows['discount']) && $key === 'shipping' ) {            $new_total_rows['discount'] = array(                'label' => __( 'Discount:', 'woocommerce' ),                'value'    => wc_price(0),            );        }        // Adding applied coupon codes line        if( $key === 'discount' || isset($new_total_rows['discount']) ){            // Get applied coupons            $applied_coupons = $order->get_used_coupons();            // Insert applied coupon codes in total lines after discount line            $new_total_rows['coupon_codes'] = array(                'label' => __('Applied coupons:', 'woocommerce'),                'value' => implode( ', ', $applied_coupons ),            );        }    }    return $new_total_rows;}

Display on email notifications with a coupon that has 0 discount:

enter image description here


Code goes in function.php file of your active child theme (or active theme). Tested and works.