注意:这对OP不起作用的原因是使用了woocommerce,否则,就核心WordPress功能而言,这应该按说明进行。
<小时>Update:
我以为是关于注册的电子邮件。幸好你指定了你的需求。WordPress尝试-执行多个检查-添加新用户wp_insert_user
- source: user.php
. 过滤器在这里pre_user_email
, 您可以将其用于您的目的。
示例性用法如下:
add_filter(
\'pre_user_email\',
\'wpse163079_pre_user_email_example\'
);
function wpse163079_pre_user_email_example(
$user_email
) {
if ( email_exists( $user_email ) ) {
// code that generates the random email address
// do not forget to check if the random one does exist
// assign random address as new $user_email then
return $user_email;
} else {
return $user_email;
}
}
无法覆盖email_exists()
因为它不是一个可插入的函数。但看看source: user.php
显示:
function email_exists( $email ) {
if ( $user = get_user_by(\'email\', $email) )
return $user->ID;
return false;
}
所以
email_exists()
使用
get_user_by()
-
source: pluggable.php
-, 另一方面,它是一个可插入的函数,因此您可以重写它。如你所见
get_user_by()
看起来是这样的:
function get_user_by( $field, $value ) {
$userdata = WP_User::get_data_by( $field, $value );
if ( !$userdata )
return false;
$user = new WP_User;
$user->init( $userdata );
return $user;
}
因此,没有钩子操作或过滤器,您可以使用。但它表明,这主要是
WP_User
类别-
source: capabilities.php
. 在查看
get_data_by()
的方法
WP_User
课堂上你会看到没有可用的钩子。
你没有写下你想做的事。也许你可以通过简单地覆盖get_user_by()
. 另一种可能是extend
这个WP_User
班对于给定的信息,我真的说不出更多,但这应该是一个很好的起点。