web-dev-qa-db-ja.com

承認後にユーザーロールを変更する

私には2つの役割があります。

A:ユーザーはモデレートのために投稿を送ります

B:ユーザーはモデレートなしで投稿を公開します

新規ユーザーの場合、Aの役割。彼の最初の投稿を承認した場合、役割はBに変わります

1
EndyVelvet

投稿ステータスが「保留」から「公開」に変更されたときに役割を変更するためのコードを添付できます。ドキュメントを参照してください。 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
Marcin

コーデックス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変数にアクセスすることができます。だからあなたは作者IDを取得し、彼の役割を変更する必要があります...

乾杯

0
Diogo Gomes