我想使用插件Facebook-AWD 插件。
我的网站将提供两种注册方式(普通注册和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;
}
最合适的回答,由SO网友:brasofilo 整理而成
该插件提供了此操作的入口点:
$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;
}
相关: