Измените роль пользователя при публикации утверждения


У меня есть две роли.

A: Пользователь отправляет сообщение на модерацию

B: Пользователь публикует сообщения без модерации

Для новых пользователей роль А. Как мне поступить, если я одобрю его первый пост, роль будет изменена на B?

Author: EndyVelvet, 2014-10-02

2 answers

Вы можете прикрепить код для изменения роли, когда статус публикации меняется с "ожидающий" на "опубликованный" см. документацию: http://codex.wordpress.org/Post_Status_Transitions Затем, если у пользователя есть роль "участник", вы можете изменить ее на "автор":

    add_action( 'pending_to_publish'. 'my_function', 10, 1 );
    function my_function( $post )
    {
        $wp_user_object = new WP_User( $post->post_author );
        if ( in_array('contributor', $wp_user_object->roles ) ) {
            $wp_user_object->remove_role( 'contributor' );
            $wp_user_object->add_role( 'author' );
        }
    }
 1
Author: Marcin, 2014-10-02 14:51:20

Из Кодекса Post_Status_Transitions у вас есть крючки для изменения статуса сообщения:

function on_publish_pending_post( $post ) {
    // A function to perform when a pending post is published.
}
add_action(  'pending_to_publish',  'on_publish_pending_post', 10, 1 );

У вас есть доступ к переменной $post. Поэтому вам нужно вытащить идентификатор автора и изменить его роль...

Приветствия

 0
Author: Diogo Gomes, 2014-10-02 14:48:26