1

I would like to change the "Customer new account" email.

In this line:

<p><?php printf( __( 'Thanks for creating an account on %1$s. Your username is %2$s', 'woocommerce' ), esc_html( $blogname ), '<strong>' . esc_html( $user_login ) . '</strong>' ); ?></p>

I would like to change the parameter %2$s, instead of showing the username I would like to show the email address.

What parameter should I use to show the email address?

This is the complete customer-new-account.php :

<?php
/**
 * Customer new account email
 *
 * This template can be overridden by copying it to yourtheme/woocommerce/emails/customer-new-account.php.
 *
 * HOWEVER, on occasion WooCommerce will need to update template files and you
 * (the theme developer) will need to copy the new files to your theme to
 * maintain compatibility. We try to do this as little as possible, but it does
 * happen. When this occurs the version of the template file will be bumped and
 * the readme will list any important changes.
 *
 * @see         https://docs.woocommerce.com/document/template-structure/
 * @author      WooThemes
 * @package     WooCommerce/Templates/Emails
 * @version     1.6.4
 */

if ( ! defined( 'ABSPATH' ) ) {
    exit; // Exit if accessed directly
}

?>

<?php do_action( 'woocommerce_email_header', $email_heading, $email ); ?>

    <p><?php printf( __( 'Thanks for creating an account on %1$s. Your username is %2$s', 'woocommerce' ), esc_html( $blogname ), '<strong>' . esc_html( $user_login ) . '</strong>' ); ?></p>

<?php if ( 'yes' === get_option( 'woocommerce_registration_generate_password' ) && $password_generated ) : ?>

    <p><?php printf( __( 'Your password has been automatically generated: %s', 'woocommerce' ), '<strong>' . esc_html( $user_pass ) . '</strong>' ); ?></p>

<?php endif; ?>

    <p><?php printf( __( 'You can access your account area to view your orders and change your password here: %s.', 'woocommerce' ), make_clickable( esc_url( wc_get_page_permalink( 'myaccount' ) ) ) ); ?></p>

<?php do_action( 'woocommerce_email_footer', $email );

Thanks for the support!

2
  • Format your question properly, please.
    – Max Yudin
    Sep 19, 2018 at 9:24
  • How are people supposed to know that you are talking about WooCommerce?
    – Hans
    Sep 19, 2018 at 10:46

3 Answers 3

1

The simplest one is to copy the mail template to your theme folder into path/to/your/theme/woocommerce/emails/customer-new-account.php and adjust the argument from user_login to user_email.

0

You can use session variable.

For example,

  • start session in functions.php
  • After submitting my account form store user email in that session variable.
  • Display session variable in the alert box & unset within same page.
0

$user_email variable is accessible inside Customer new account email template. Class WC_Email_Customer_New_Account file

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.