拥有一个使用电子邮件地址作为用户名/显示名称的网站。除尝试更新帐户详细信息外,所有其他操作均有效。 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' );
}
我不想直接编辑插件文件以帮助将来进行更新,但是如何允许它?
由于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文件。它应该工作。