I'm trying to reduce the number of emails sent per order on one of my WooCommerce sites.
Right now, customers receive emails for
- New account created (unless they previously have one)
- Order Received
- Order On Hold
- Order Completed.
I've checked off the Order On Hold and Received emalls, so that takes me from four to two.
I want to display the account login info on the Order Completed email, so I can eliminate sending the Account Created email as well, but when I just copied over the code from the customer-new-account.php
email template into the customer-completed-order.php
email, the placeholders to list both the username and password become blank, which is quite odd.
This is the code I pasted over into my child theme's WooCommerce folder:
<?php /* translators: %s Customer username */ ?>
<p><?php printf( esc_html__( 'Hi %s,', 'woocommerce' ), esc_html( $user_login ) ); ?></p>
<?php /* translators: %1$s: Site title, %2$s: Username, %3$s: My account link */ ?>
<p><?php printf( __( 'Thanks for creating an account on %1$s. Your username is %2$s. You can access your account area to view orders, change your password, and more at: %3$s', 'woocommerce' ), esc_html( $blogname ), '<strong>' . esc_html( $user_login ) . '</strong>', make_clickable( esc_url( wc_get_page_permalink( 'myaccount' ) ) ) ); ?></p><?php // phpcs:ignore WordPress.XSS.EscapeOutput.OutputNotEscaped ?>
<?php if ( 'yes' === get_option( 'woocommerce_registration_generate_password' ) && $password_generated ) : ?>
<?php /* translators: %s Auto generated password */ ?>
<p><?php printf( esc_html__( 'Your password has been automatically generated: %s', 'woocommerce' ), '<strong>' . esc_html( $user_pass ) . '</strong>' ); ?></p>
<?php endif; ?>