根据Facebook Log-in-WordPress的年龄结果设置用户角色

时间:2017-04-13 作者:Brayds

我正在寻找一个整洁的PHP片段放入我的functions.php 文件,该文件将根据注册时从用户的Facebook帐户收集的信息为用户分配角色。

从Facebook获取已排序并正在工作。我要做的是根据用户的Age_range 来自Facebook的信息。

具体来说,当用户的Age_range 回到13岁的时候,我想给他们分配一个“18岁以下”的角色,我已经定制了这个角色并加入到Wordpress中。

N、 B.Facebook的最小年龄数组将是13、18或21岁。

对于不符合此规则且已从Wordpress分配的所有其他人,默认角色为“Customer”。

我目前拥有的:

  // Age Rule if under 18 tag them under 18

add_action( \'user_register\', \'w85t_set_role_by_age\' );
function w85t_set_role_by_age( $user_id ){
    $user = get_user_by( \'id\', $user_id );
    $age = substr(
        strrchr(
            $user->data->yim, //Using Yahoo Instant Messenger field for now
            "@"
        ), 1
    ); //Get Domain

    $under_18 = array( \'13\' );
    if( in_array( $age, $under_18 ) ){
        foreach( $user->roles as $role )
            $user->remove_role( $role ); //Remove existing Roles
        $user->add_role( \'under18\' ); //Add role
    }
}

1 个回复
SO网友:iyrin

这假设您所说的只需要检查最小值是正确的。These conditional statements 使用此阵列。

Facebook的最小年龄数组将是13、18或21岁。

$age_range = array( 13, 18, 21); // I don\'t know what actual data you have here.

if( min( $age_range ) == 13 ) {
    $age_range = \'under18\';
}
elseif( min( $age_range ) >= 18 ) {
    $age_range = \'over18\';
}
else {
    // Unset $age_role if no required values found in $age_range.
    unset( $age_role );
}


if( isset( $age_role ) ) {
    // Here you can assign the role $age_role to the user.
}

相关推荐

如何为多站点网络定制wp-signup.php?

我在google上搜索定制wp-signup.php 但没有发现运气。我需要的是:用户将注册</在注册过程中,用户将首先付款(如贝宝或信用卡)</用户成功付款时创建子域我的问题是:如何在中添加付款字段wp-signup.php? 我对wordpress真的很陌生。任何指南或链接都对我有很大帮助。登记表如下:用户名、电子邮件地址给我一个网站、付款、注册按钮