自动批准用户的最终会员插件

时间:2019-09-06 13:19:47

标签: php wordpress validation email

我正在(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)自动批准该用户,并且需要用户身份验证

1 个答案:

答案 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的电子邮件