我正在(WordPress)网站上使用Ultimate Member插件进行用户注册。我已经激活了管理员批准,并且与此同时,我正在使用用于验证用户电子邮件的用户验证插件。因此,无论何时用户注册,都将通过用户电子邮件和管理员进行验证。但是对于某些具有(@ example1.com)这样的域的特定用户,我想要自动批准(即IT会由管理员自动批准,但需要用户身份验证)。
我尝试了下面的代码,但它与我想要的相反。它需要管理员批准,并且会自动批准进行用户验证。
add_action('um_user_register', 'action_um_user_register', 2, 2);
function action_um_user_register($user_id, $args){
$auto_approve_domains = array(
'example1.com',
);
$user = get_user_by('id', $user_id);
$user_email = $user->user_email;
$domain = substr(strrchr($user_email, "@") , 1);
if (in_array($domain, $auto_approve_domains ))
{
um_fetch_user($user_id);
UM()->user()->approve();
}
}
我希望管理员应针对特定域(例如@ example1.com)自动批准该用户,并且需要用户身份验证
答案 0 :(得分:0)
进行上述更改,例如进行管理员批准和使用用户验证进行双向身份验证,并执行以下操作:
转到代码部分,然后转到wp-content>插件> Ultimate-member> includes> core> um-actions-register.php 在第三个添加动作功能下,添加以下代码:
function um_post_registration_pending_hook( $user_id, $args ) {
um_fetch_user( $user_id );
$auto_approve_domains = array(
'example.in');
$user = get_user_by('id', $user_id);
$domain = substr(strrchr($user->data->user_email, "@") , 1);
if(in_array($domain, $auto_approve_domains )){
um_fetch_user($user_id);
UM()->user()->approve();
}else{
UM()->user()->pending();
}
}
现在通过此操作,它会自动批准来自example.in的电子邮件