为在表单上注册的用户分配角色

时间:2019-08-26 作者:Matteo Feduzi

我创建了一个注册表,在其中我集成了Stripe以进行支付。

一切正常,我还能够在数据库中创建wp\\u users和wp\\u usermeta表。

我唯一不明白的是如何分配角色。

这是我目前使用的代码:

//Sanitize POST Array
$POST = filter_var_array($_POST, FILTER_SANITIZE_STRING);

$nome = $POST[\'nome\'];
$cognome = $POST[\'cognome\'];
$email = $POST[\'email\'];
$token = $POST[\'stripeToken\'];

$nickname = $nome . \' \' . $cognome;

// Inserisce utente nel DB
$user_data = [
    \'user_login\' => $nickname,
    \'user_pass\'  => wp_generate_password (),
    \'user_email\'   => $email,
];
$user_id = wp_insert_user($user_data);

update_user_meta( $user_id, \'first_name\', $nome);
update_user_meta( $user_id, \'last_name\', $cognome);
update_user_meta( $user_id, \'last_name\', $cognome);
现在,如何将以前创建的角色分配给用户?

RESOLVED:

我通过添加代码dopo l\'ultima linea di codice sopra riportato解决了这个问题:

$u = new WP_User( $user_id );
$u->remove_role( \'subscriber\' );
$u->add_role( \'bronze_member\' );
真的,费杜兹·马泰奥。

1 个回复
SO网友:zain_ali

$POST = filter_var_array($_POST, FILTER_SANITIZE_STRING);

$nome = $POST[\'nome\'];
$cognome = $POST[\'cognome\'];
$email = $POST[\'email\'];
$token = $POST[\'stripeToken\'];

$nickname = $nome . \' \' . $cognome;

// Inserisce utente nel DB
$user_data = [
    \'user_login\' => $nickname,
    \'user_pass\'  => wp_generate_password (),
    \'user_email\'   => $email,
];
$user_id = wp_insert_user($user_data);

update_user_meta( $user_id, \'first_name\', $nome);
update_user_meta( $user_id, \'last_name\', $cognome);
update_user_meta( $user_id, \'last_name\', $cognome);
wp_update_user( array (\'ID\' => $user_id, \'role\' => \'editor\') ) ;
请尝试此代码。

相关推荐