出于隐私考虑,WooCommerce显示名称无法更改为电子邮件地址

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

拥有一个使用电子邮件地址作为用户名/显示名称的网站。除尝试更新帐户详细信息外,所有其他操作均有效。 WooCommerce给出错误:

出于隐私考虑,显示名称无法更改为电子邮件地址

是否有一种方法可以替代此方法?我在WC插件文件class-wc-form-handler.php中看到了令人反感的代码:

if ( is_email( $account_display_name ) ) {
    wc_add_notice( __( 'Display name cannot be changed to email address due to privacy concern.', 'woocommerce' ), 'error' );
}

我不想直接编辑插件文件以帮助将来进行更新,但是如何允许它?

php wordpress woocommerce hook-woocommerce user-data
1个回答
0
投票

由于woocommerce_save_account_details挂在相关save_address()方法的末尾,因此您可以使用它使用以下方法将用户电子邮件设置为显示名称

add_action('woocommerce_save_account_details', 'action_wc_save_account_details');
function action_wc_save_account_details( $user_id ) {
    $user = new WP_User( $user_id );

    wp_update_user( ['ID' => $user_id, 'display_name' => $user->user_email ] );
}

代码进入您的活动子主题(或活动主题)的function.php文件。它应该工作。

© www.soinside.com 2019 - 2024. All rights reserved.