在创建WooCommerce用户时发送带有生成密码的电子邮件通知

问题描述 投票:1回答:2

我用下面的代码碰壁。我正在自学编程方面的所有知识,因此,如果这是一个真正的新手问题,请原谅。但是,使用下面的代码,我使用随机密码创建了新的WP用户,并将用户角色设置为客户(我想在购买时自动创建帐户)。然后,我使用WC_Emails将登录详细信息发送给买方。在那种情况下,我需要普通密码,但是我真的不知道为什么还要附加所有其他数据(用户名,名称等),只是密码为空。

  // random password with 12 chars
$user_pass = wp_generate_password();

// create new user with email as username & newly created pw
$user_id = wp_create_user( $order_email, $user_pass, $order_email );
$user_id_role = new WP_User($user_id);
$user_id_role->set_role('customer');


$wc = new WC_Emails();
$wc->customer_new_account($user_id, $user_pass);




//WC guest customer identification
update_user_meta( $user_id, 'guest', 'yes' );

update_user_meta( $user_id, 'first_name', $order->billing_first_name );
update_user_meta( $user_id, 'last_name', $order->billing_last_name );


//user's billing data
update_user_meta( $user_id, 'billing_address_1', $order->billing_address_1 );
update_user_meta( $user_id, 'billing_address_2', $order->billing_address_2 );
update_user_meta( $user_id, 'billing_city', $order->billing_city );
update_user_meta( $user_id, 'billing_company', $order->billing_company );
update_user_meta( $user_id, 'billing_country', $order->billing_country );
update_user_meta( $user_id, 'billing_email', $order->billing_email );
update_user_meta( $user_id, 'billing_first_name', $order->billing_first_name );
update_user_meta( $user_id, 'billing_last_name', $order->billing_last_name );
update_user_meta( $user_id, 'billing_phone', $order->billing_phone );
update_user_meta( $user_id, 'billing_postcode', $order->billing_postcode );
update_user_meta( $user_id, 'billing_state', $order->billing_state );

// user's shipping data
update_user_meta( $user_id, 'shipping_address_1', $order->shipping_address_1 );
update_user_meta( $user_id, 'shipping_address_2', $order->shipping_address_2 );
update_user_meta( $user_id, 'shipping_city', $order->shipping_city );
update_user_meta( $user_id, 'shipping_company', $order->shipping_company );
update_user_meta( $user_id, 'shipping_country', $order->shipping_country );
update_user_meta( $user_id, 'shipping_first_name', $order->shipping_first_name );
update_user_meta( $user_id, 'shipping_last_name', $order->shipping_last_name );
update_user_meta( $user_id, 'shipping_method', $order->shipping_method );
update_user_meta( $user_id, 'shipping_postcode', $order->shipping_postcode );
update_user_meta( $user_id, 'shipping_state', $order->shipping_state );

// link past orders to this newly created customer
wc_update_new_customer_past_orders( $user_id );
}

谢谢您的帮助或建议。

php wordpress woocommerce email-notifications user-data
2个回答
0
投票

尝试启用以下选项,并检查邮件中是否包含密码。

这没有经过测试确定

enter image description here


0
投票

当您通过创建程序创建用户时,要发送WooCommerce客户新帐户通知,可以使用具有3个参数的WC_Email_Customer_New_Account trigger()方法:

  • WC_Email_Customer_New_Account-用户ID(必填)
  • trigger()-用户密码(可选)
  • $user_id-密码是否自动生成(是或否)。设置为[$user_pass
  • 时,此参数显示电子邮件通知上的密码。

要使生成的密码显示在“客户新帐户”电子邮件通知中,您需要在WooCommerce>设置>帐户和隐私中启用选项行:

“创建帐户时,会自动生成一个帐户密码”

完成后,您的工作代码将为:

$password_generated

现在,您将看到一条通知,它的登录名和密码以及到登录区域的链接已发送给客户...


“客户新帐户电子邮件”的模板自定义:

[相关模板路径为true并可以通过将其复制到// Customer Billing Email $order_email = $order->get_billing_email(); // Generate a random password with 12 chars $user_pass = wp_generate_password(); // Create new user with email as username & newly generated password $user_id = wp_create_user( $order_email, $user_pass, $order_email ); $user = new WP_User($user_id); // Get the WP_User Object instance from user ID $user->set_role('customer'); // Set the WooCommerce "customer" user role // Get all WooCommerce emails Objects from WC_Emails Class $emails = WC()->mailer()->get_emails(); // Send WooCommerce "Customer New Account" email notification with the password $emails['WC_Email_Customer_New_Account']->trigger( $user_id, $user_pass, true ); //WC guest customer identification update_user_meta( $user_id, 'guest', 'yes' ); update_user_meta( $user_id, 'first_name', $order->billing_first_name() ); update_user_meta( $user_id, 'last_name', $order->billing_last_name() ); //user's billing data update_user_meta( $user_id, 'billing_address_1', $order->get_billing_address_1() ); update_user_meta( $user_id, 'billing_address_2', $order->get_billing_address_2() ); update_user_meta( $user_id, 'billing_city', $order->get_billing_city() ); update_user_meta( $user_id, 'billing_company', $order->get_billing_company() ); update_user_meta( $user_id, 'billing_country', $order->get_billing_country() ); update_user_meta( $user_id, 'billing_email', $order_email ); update_user_meta( $user_id, 'billing_first_name', $order->get_billing_first_name() ); update_user_meta( $user_id, 'billing_last_name', $order->get_billing_last_name() ); update_user_meta( $user_id, 'billing_phone', $order->get_billing_phone() ); update_user_meta( $user_id, 'billing_postcode', $order->get_billing_postcode() ); update_user_meta( $user_id, 'billing_state', $order->get_billing_state() ); // user's shipping data update_user_meta( $user_id, 'shipping_address_1', $order->get_shipping_address_1() ); update_user_meta( $user_id, 'shipping_address_2', $order->get_shipping_address_2() ); update_user_meta( $user_id, 'shipping_city', $order->get_shipping_city() ); update_user_meta( $user_id, 'shipping_company', $order->get_shipping_company() ); update_user_meta( $user_id, 'shipping_country', $order->get_shipping_country() ); update_user_meta( $user_id, 'shipping_first_name', $order->get_shipping_first_name() ); update_user_meta( $user_id, 'shipping_last_name', $order->get_shipping_last_name() ); update_user_meta( $user_id, 'shipping_method', $order->get_shipping_method() ); update_user_meta( $user_id, 'shipping_postcode', $order->get_shipping_postcode() ); update_user_meta( $user_id, 'shipping_state', $order->get_shipping_state() ); // link past orders to this newly created customer wc_update_new_customer_past_orders( $user_id );

来覆盖

传递给此模板的可用参数(变量)为:

  • $ email_heading-电子邮件标题,
  • $ user_login-用户登录,
  • $ user_pass-用户密码,
  • $ blogname-网站标题,
  • $ password_generation-密码是否自动生成,
  • $ sent_to_admin(默认为false),
  • $$ plain_text(默认为false),
  • $ email-电子邮件实例对象。
© www.soinside.com 2019 - 2024. All rights reserved.