web-dev-qa-db-fra.com

Comment laisser l'utilisateur sélectionner son rôle lors de son inscription sur Facebook-AWD?

Je voudrais utiliser le plugin Facebook-AWD plugin.

Mon site fournirait deux façons de s'inscrire (normale et s'inscrire avec Facebook). Les utilisateurs doivent sélectionner leur rôle, à savoir: acheteur et vendeur .

Avec une inscription normale, je peux y arriver facilement, mais si mes utilisateurs choisissent de s'inscrire avec Facebook-AWD, ils ne peuvent pas sélectionner l'un des rôles car le plug-in est configuré pour enregistrer un utilisateur avec le rôle par défaut:

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

Comment peut-on y parvenir en ajoutant un hook, une action ou un filtre au plug-in afin de préserver le noyau du plug-in pour une mise à jour ultérieure?

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

Le plugin offre un point d’entrée pour cette manipulation:

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

Donc, maintenant, il s’agit de remplir la fonction fictive dans cet exemple:

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;
}

En relation:

1
brasofilo