繁体   English   中英

WordPress获取用户元功能

[英]Wordpress get user meta function

我正在使用几个插件来与我们的LDAP / AD服务器集成-该插件在成功验证/创建wp用户时会添加一些用户元数据。 我也在使用Ultimate Members插件来控制角色等。

我需要做的是确保使用ldap凭据登录的任何人都被分配了ldap UM角色。 所以这是到目前为止我得到的PHP。

global $ultimatemember;
global $user_ID;
$key = 'ad_integration_account_suffix';
$single = true;
$ldap_user=get_user_meta( $user_ID, $key, $single ); // core WP coe to get a users meta info - we are assigning it a variable
echo '<p>The '. $key . ' value for user id ' . $user_ID . ' is: ' . $ldap_user . '</p>'; // some debug stuff - take this out
um_fetch_user( $user_ID ); // set UM user id to retrieve
   if($ldap_user !== '')  { // if the ldap user key is not null then its populated and thus this user is a member of AD
 $ultimatemember->user->set_role('ldap_user'); // so set the UM user to be a member of the ldap_user role/group.
    } 

现在,我认为上面有一些问题,即我认为它也需要包装在一个函数中? 我在哪里粘贴此php代码段,以便在登录时调用它? 我可能还应该首先检查该用户是否已经在ldap_user组中,如果是这样,我们就不需要继续进行其余的检查/设置等操作。

我建议创建自己的插件来处理LDAP功能。 使用它,使用wp_login挂钩在登录时触发您的代码。

如果您从未在Wordpress中创建插件,请按照以下步骤操作:

  1. wp-content/plugins/创建一个文件夹-我们称其为ldap-authentication
  2. 在内部,创建一个新的PHP文件(将其称为ldap-authentication.php ),并在顶部添加以下注释:

     /* Plugin Name: LDAP Authentication Version: 1.0 Description: Performs LDAP authentication Author: Tony */ 
  3. 在您的扩展程序页面中启用此插件

并挂接到wp_login,请执行以下操作(我对您的代码进行了一些更改,以反映WP_User对象的WP_User ):

function my_ldap_authentication($login, $user) {
    global $ultimatemember;
    global $user_ID;
    $key = 'ad_integration_account_suffix';
    $single = true;
    $ldap_user = get_user_meta($user->ID, $key, $single);
    um_fetch_user($user->ID);
    if($ldap_user !== '')  {
        $ultimatemember->user->set_role('ldap_user');
    } 
}
add_action('wp_login', 'my_ldap_authentication', 10, 2);

如果想知道用户是否在ldap_user组中,可以使用以下命令:

if(in_array('ldap_users', $user->roles)) {
    // is an ldap user
}

您可能还需要查看Gravity Forms插件(添加了Registration)。使用该插件,您可以拥有一个注册表单,该表单将所有自定义角色分配到站点的前端。 以及用户编辑个人资料的能力(也在前端)。

我已经建立了几个带有保护区的会员站点,我们使用了重力形式插件来处理注册,还使用了贾斯汀·塔德洛克的成员插件来处理新用户的角色/能力

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM