set_role nu are niciun efect (WordPress, Utilizatori, Roluri De Utilizator)

mario2k14 a intrebat.

Rulez WordPress 4.7.5 și încerc să setez rolurile utilizatorilor în mod programatic pentru un client. Cu toate acestea, set_role nu pare să aibă niciun efect.

Utilizatorul este creat, dar rolul utilizatorilor este abonat. De asemenea, am încercat diferite roluri, cum ar fi $user->set_role('administrator') – de asemenea, fără niciun rezultat.

Iată codul meu – ce fac greșit?

require($_SERVER['DOCUMENT_ROOT'] . '/wp-load.php');
    if ( !username_exists( 'mytestuser' ) ) {
        $user_id = wp_create_user('mytestuser', 'testpass345','[email protected]');
        $user = new WP_User( $user_id );
    $user->set_role( 'author' );
    }

Mulțumesc anticipat!

1 răspunsuri
Jack Johansson

Puteți utiliza wp_update_user pentru a actualiza rolul pentru utilizatorul nou creat.

if ( !username_exists( 'mytestuser' ) ) {
    $user_id = wp_create_user('mytestuser', 'testpass345','[email protected]');
    $user_id = wp_update_user( array( 'ID' => $user_id, 'role' => 'author' ) );
}

Citiți mai departe la WordPress Codex.

Sau, puteți elimina rolul actual și atribui un rol nou:

if ( !username_exists( 'mytestuser' ) ) {
    $user_id = wp_create_user('mytestuser', 'testpass345','[email protected]');
    $user = new WP_User( $user_id );
    $user->remove_role( 'subscriber' );
    $user->add_role( 'author' );
}