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 添加到订单项目元数据

Bot 上线,但嵌入不会发布到 discord

Callback_handler 不会触发 WooCommerce

给在XenCenter管理的XenServer服务器上创建的虚拟机共享(上传)宿主机的镜像文件

WooCommerce Google Analytics:发送有关非标准成功页面的订单信息

忘记密码需要 Woocommerce 短代码