WooCommerce: display coupons used in an order in the confirmation email and on the edit page

Here is a nice snippet that i really like. It will allow you to show the coupon codes used in order on the order edition page, and on the confirmation email. The snippet provides two functions, one for each action, and using the following hooks woocommerce_email_after_order_table and woocommerce_admin_order_data_after_billing_address. Then, the code is pretty much the same, it uses get_used_coupons() to retrieve coupon code. Here is the result in the administration:

woocommerce-order-coupons-used

Simply add this snippet to the file called functions.php within your theme folder:

add_action( 'woocommerce_email_after_order_table', 'add_payment_method_to_admin_new_order', 15, 2 );

/**
 * Add used coupons to the order confirmation email
 *
*/
function add_payment_method_to_admin_new_order( $order, $is_admin_email ) {

	if ( $is_admin_email ) {

		if( $order->get_used_coupons() ) {

			$coupons_count = count( $order->get_used_coupons() );

		    echo '<h4>' . __('Coupons used') . ' (' . $coupons_count . ')</h4>';

		    echo '<p><strong>' . __('Coupons used') . ':</strong> ';

		    $i = 1;
		    $coupons_list = '';

		    foreach( $order->get_used_coupons() as $coupon) {
		        $coupons_list .=  $coupon;
		        if( $i < $coupons_count )
		        	$coupons_list .= ', ';
		        $i++;
		    }

		    echo '<p><strong>Coupons used (' . $coupons_count . ') :</strong> ' . $coupons_list . '</p>';

		} // endif get_used_coupons

	} // endif $is_admin_email
}



add_action( 'woocommerce_admin_order_data_after_billing_address', 'custom_checkout_field_display_admin_order_meta', 10, 1 );

/**
 * Add used coupons to the order edit page
 *
*/
function custom_checkout_field_display_admin_order_meta($order){

    if( $order->get_used_coupons() ) {

    	$coupons_count = count( $order->get_used_coupons() );

        echo '<h4>' . __('Coupons used') . ' (' . $coupons_count . ')</h4>';

        echo '<p><strong>' . __('Coupons used') . ':</strong> ';

        $i = 1;

        foreach( $order->get_used_coupons() as $coupon) {
	        echo $coupon;
	        if( $i < $coupons_count )
	        	echo ', ';
	        $i++;
        }

        echo '</p>';
    }

}