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