WooCommerce 不会将密码发送给在“我的帐户”页面上注册的客户
Posted
技术标签:
【中文标题】WooCommerce 不会将密码发送给在“我的帐户”页面上注册的客户【英文标题】:WooCommerce doesn't send the password to the customer registered on the "My account" page 【发布时间】:2022-01-21 01:44:34 【问题描述】:虽然“创建帐户时,自动生成帐户密码”选项被选中,但当用户在“我的帐户”页面注册时,WooCommerce 不会将密码发送给用户,只有一个密码设置链接“点击这里设置您的新密码。”。另一方面,当从结帐页面进行注册时,将发送密码。在“我的帐户”页面注册后如何发送?
今天找了一天解决这个问题的方法,不涉及编辑模板的方法,但是没有找到。
当客户通过“我的帐户”注册时,通知如图所示。
【问题讨论】:
我在 WooCommerce 中看到了 adjustments have been made since November 19th。这就是为什么我没有出现这个问题,因为我还没有更新到 WooCommerce 6.0.0 但仍然使用 5.9.0 版本。另见:github.com/woocommerce/woocommerce/pull/31257 【参考方案1】:即使您已经勾选了“创建帐户时,自动生成帐户密码”选项,由于自 11 月 19 日起在 WooCommerce 6.0.0 中进行了调整,现在是新客户将收到一封没有自动生成密码的通知电子邮件,直到 5.9.0,虽然它存在,但带有一个邀请设置新密码的链接(感谢@7uc1f3r 提供this info)。
最初,我想恢复在 WooCommerce 6.0.0 中所做的更改,但经过一段时间的分析,我认为新的更改在帐户安全方面是好的。但是现在,在注册并完成订单后,客户立即登录但没有可用的密码,因为它没有发送给他,即使它是创建的。而且因为不是每个人都会定期阅读他们的电子邮件,所以我为新客户添加了一个额外的通知,例如在“收到订单”页面上,它会补充警告他们需要设置密码,这样他们以后就不会感到迷路了发现由于缺少密码,他们无法访问自己的帐户。
/** Add a user meta when a new customer account is created **/
add_action( 'woocommerce_created_customer', function( $customer_id )
add_user_meta( $customer_id, '_is_new_user', 'yes' );
);
/** Add a notice to the "Order received" page if is a new registered customer **/
add_action( 'woocommerce_before_thankyou', function()
$current_user = wp_get_current_user();
if( $current_user->ID > 0 && 'yes' === get_user_meta( $current_user->ID, '_is_new_user', true ) )
wc_print_notice( $current_user->first_name . ', thank you for creating an account on <em>' . get_option('blogname'). '</em>. We sent you to <em>' . $current_user->user_email . '</em> an email with useful information about your account. Attention, if you can't find it, check in your spam folder. To better secure your account, we recommend that you set a new password and save it in a safe place.', 'success' );
//delete the user meta added when the new customer account was created
delete_user_meta( $current_user->ID, '_is_new_user' );
);
【讨论】:
以上是关于WooCommerce 不会将密码发送给在“我的帐户”页面上注册的客户的主要内容,如果未能解决你的问题,请参考以下文章
在保存订单并发送 WooCommerce 电子邮件通知之前,将订单 ID 添加到订单项目元数据
Callback_handler 不会触发 WooCommerce
给在XenCenter管理的XenServer服务器上创建的虚拟机共享(上传)宿主机的镜像文件