web-dev-qa-db-fra.com

Insérer "Nouvel utilisateur" et mettre à jour/définir les métadonnées en même temps

La fonction wordpress wp_insert_user ne semble pas définir (écraser) l'entrée que je donne. (La documentation montre que vous ne pouvez pas le faire). Essayer d'utiliser: wp_insert_user en utilisant l'ID utilisateur renvoyé ne fonctionne pas non plus.

Bien sûr, je pourrais faire ma propre requête, mais j'oublie peut-être une option pour insérer ces données en utilisant une fonction existante.

$userdata = array(
    //user login
    'user_pass'  => esc_attr( $_POST['pass'] ),
    'user_login' => esc_attr( $_POST['user'] ),
    'user_email' => esc_attr( $_POST['email'] ),

    //user meta
    'rich_editing' => false,
    'comment_shortcuts' => false,
    'show_admin_bar_front' => false,        
    'wp_user_level' => 0, 
    'wp_capabilities' => 'a:1:{s:10:"subscriber";s:1:"1";}' 
);

     $new_user_user_id = wp_insert_user( $userdata );   
3
Rob

La meilleure chose à faire est de vous connecter à user_register, puis de mettre à jour les options utilisateur que vous souhaitez définir. Voici un exemple de désactivation de la barre d'administration pour les nouveaux utilisateurs:

add_action("user_register", "sc_set_user_admin_bar_false_by_default", 10, 1);
function sc_set_user_admin_bar_false_by_default($user_id) {
    update_user_meta( $user_id, 'show_admin_bar_front', 'false' );
    update_user_meta( $user_id, 'show_admin_bar_admin', 'false' );
}
6
Brady

La page codex pour wp_insert_user() répertorie toutes les valeurs acceptées. comment_shortcuts et show_admin_bar_front devront tous être définis avec update_user_meta() .

Pour gérer wp_user_level et wp_capabilities, vous devrez utiliser WP_User .

Vous pouvez utiliser $new_user_user_id (nom long de la variable lol) pour WP_User et update_user_meta()

5
mor7ifer