WooCommerce: Add Payment Method to Order Emails

If you wish to print the payment gateway name on order emails (in its own paragraph below the order items table), here’s a handy snippet for you.

All you need to use is the “woocommerce_email_after_order_table” hook to pick the correct position, and then the “get_payment_method_title” WooCommerce function to return the payment gateway name. Enjoy!

Add payment type to order emails in WooCommerce
Add payment type to order emails in WooCommerce

PHP Snippet: Show Payment Gateway Name @ WooCommerce Order Emails

/**
 * @snippet       Echo Payment Method Name @ Order Emails
 * @how-to        businessbloomer.com/woocommerce-customization
 * @author        Rodolfo Melogli, Business Bloomer
 * @testedwith    WooCommerce 3.9
 * @community     https://businessbloomer.com/club/
 */

add_action( 'woocommerce_email_after_order_table', 'bbloomer_display_payment_type_name_emails', 15 );
 
function bbloomer_display_payment_type_name_emails( $order ) {
   echo '<h2>Payment Type:</h2><p> ' . $order->get_payment_method_title() . '</p>';
}

Where to add custom code?

You should place custom PHP in functions.php and custom CSS in style.css of your child theme: where to place WooCommerce customization?

This code still works, unless you report otherwise. To exclude conflicts, temporarily switch to the Storefront theme, disable all plugins except WooCommerce, and test the snippet again: WooCommerce troubleshooting 101

Related content

Rodolfo Melogli

Business Bloomer Founder

Author, WooCommerce expert and WordCamp speaker, Rodolfo has worked as an independent WooCommerce freelancer since 2011. His goal is to help entrepreneurs and developers overcome their WooCommerce nightmares. Rodolfo loves travelling, chasing tennis & soccer balls and, of course, wood fired oven pizza. Follow @rmelogli

16 thoughts on “WooCommerce: Add Payment Method to Order Emails

  1. I would like it to show the last4 of the card number and brand “visa” etc not just payment ‘type’
    Is there anyway you could show me a snippet for that?

    1. Hey Leah, thanks so much for your comment! Yes, this is definitely possible, but I’m afraid it’s custom work. If you’d like to get a quote, feel free to contact me here. Thanks a lot for your understanding!

  2. I believe this should be simple enough but I haven’t a clue. All I want to do is place the total dollar amount of an order into the “Additonal Content” field that is available in the standard woo emails….

    Reference: {order_number} this works fine and the email has the number xxxxx or whatever
    Amount: {order_total} this never works and the email has {order_total} instead of $50.00 or whatever

    Please help!
    -Mudkayak

    1. Maybe a bug? Disable all plugins except Woo and try again

  3. Hallo
    I tried your “Add Payment Method to Order Emails” snippet. It shows the text “Payment Type” but not paypal or Credit card…,
    Any idea what it can be.
    Thanks a lot.

    Dear
    Sascha

    1. Hello Sascha, thanks for your comment! I just tested this again with Storefront theme and it works perfectly. Maybe your theme (or another plugin) is messing/conflicting with my snippet.

      To troubleshoot, disable all plugins but WooCommerce and also switch temporarily to “Twentytwenty” theme (load the snippet there in functions.php) as explained here: https://www.businessbloomer.com/lesson/trwm4l01/

      Once you do that, does it work? If yes, you have a problem with your current theme or one of the plugins.

      Hope this helps!

  4. Hi,
    i have a woocommerce email sales report add on, but it doesnt show the payment types.
    For example i want to see how much money was accumulated through CASH and CREDIT CARD.
    May I know how to incorporate this in the daily email report?

    Thanks.

    1. Hi Abdul, thanks so much for your comment! Yes, this is definitely possible, but I’m afraid it’s custom work. If you’d like to get a quote, feel free to contact me here. Thanks a lot for your understanding!

  5. I’m using this code snippet but getting “payment_method_title was called incorrectly. Order properties should not be accessed directly.” errors in the php log. This seems to be related to recent changes in WooCommerce. Is there now a new way to call payment_method_title?

    I should add the code still works, just generates a warning.

    1. Spot on, snippet revised and updated. Thank you!

  6. Hi Rodolfo, we would be happy to pay for your email function that would include the STRIPE “brand” and “last4” of the credit card used.

    1. Hello Laz, thanks so much for your comment! Yes, this is definitely possible – if you’d like to get a quote, feel free to contact me here. Thanks a lot!

  7. Hi,

    this solution is putting payment info to all E-mails, is there solution for putting it on only to mails for orders sent from admin?

    1. Hi Filip, thanks so much for your comment! Yes, this is definitely possible, but I’m afraid it’s custom work. If you’d like to get a quote, feel free to contact me here. Thanks a lot for your understanding!

  8. Hi there,
    thanks for your snippet. How d I have to modify it, if I want to add more payment infos, like account number.

    Thanks in advance!

    Cheers, Riccardo

    1. Riccardo, thanks so much for your comment! Once again, yes, this is possible – but unfortunately this is custom work and I cannot provide a complementary solution here via the blog comments. Thanks a lot for your understanding! ~R

Questions? Feedback? Customization? Leave your comment now!
_____

If you are writing code, please wrap it like so: [php]code_here[/php]. Failure to complying with this, as well as going off topic or not using the English language will result in comment disapproval. You should expect a reply in about 2 weeks - this is a popular blog but I need to get paid work done first. Please consider joining the Business Bloomer Club to get quick WooCommerce support. Thank you!

Your email address will not be published. Required fields are marked *