web-dev-qa-db-ja.com

Facebook-AWDへの登録時にユーザーに役割を選択させる方法

私はこのプラグイン Facebook-AWD プラグインを使用したいと思います。

私のサイトは2つの登録方法を提供します(通常とFacebookで登録)。ユーザーは自分の役割を選択する必要があります。つまり、買い手および売り手です。

通常の登録ではこれを簡単に実現できますが、ユーザーがFacebook-AWDに登録することを選択した場合、プラグインはユーザーをデフォルトの役割で登録するように設定されているため、役割を選択できません。

'role'=>get_option('default_role');

今後のアップデートのためにプラグインのコアを保持するために、フックまたはアクション、またはフィルタをプラグインに追加することで、これをどのように達成できますか?

public function register_user()
{
    $username = sanitize_user($this->me['first_name'], true);
    $i = '';
    while (username_exists($username . $i)) {
        $i = absint($i);
        $i++;
    }
    $username = $username . $i;
    $userdata = array(
        'user_pass' => wp_generate_password(), 
        'user_login' => $username, 
        'user_nicename' => $username, 
        'user_email' => $this->me['email'], 
        'display_name' => $this->me['name'], 
        'nickname' => $username, 
        'first_name' => $this->me['first_name'], 
        'last_name' => $this->me['last_name'], 
        'role' => get_option('default_role')
    );
    $userdata = apply_filters('AWD_facebook_register_userdata', $userdata);
    $new_user = wp_insert_user($userdata);
    //Test the creation                         
    if (isset($new_user->errors)) {
        wp_die($this->Debug($new_user->errors));
    }
    if (is_int($new_user)) {
        //send email new registration
        wp_new_user_notification($new_user, $userdata['user_pass']);
        return $new_user;
    }

    return false;
}
1
fritids

プラグインはこの操作のエントリポイントを提供します。

$ userdata = apply_filters( 'AWD_facebook_register_userdata'、$ userdata);

だから、今、あなたはこの例で架空の関数を埋めるの問題です:

add_filter( 'AWD_facebook_register_userdata', 'user_role_wpse_87863', 10, 1 );

function user_role_wpse_87863 ( $userdata )
{
    $userdata['role'] = your_way_of_getting_the_role();

    return $userdata;
}

関連する

1
brasofilo