WordPress позволяет отправлять на рассмотрение редакторам, когда они редакторы - PullRequest
0 голосов
/ 11 декабря 2018

Я хотел бы получить отправку на рецензирование для редакторов, когда они пишут сообщение. Но также и то, что они могут публиковать посты других. Думаю, мне следует использовать add_filter.Но я не знаю, как это сделать.Это мой код, который работает только при обновлении страницы.Большое спасибо.

<?php
global $post, $wpdb, $wp_query, $current_user;

$current_user = wp_get_current_user();
$author_id = $post->post_author;
$actual = $current_user->ID;

$user_meta = get_userdata($actual);
$user_roles = $user_meta->roles;
// capabilities to remove from editors
$caps = array(
    'publish_posts',
    'edit_published_posts'
);  
// Get the role object.
$editor = get_role( 'editor' );

if($user_roles[0] == 'editor' AND $author_id == $actual) 
{
    foreach ( $caps as $cap ) {
        // Remove the capability
       $editor->remove_cap($cap);
    }
}
else if($user_roles[0] == 'editor' AND $author_id !== $actual)
{
    foreach ( $caps as $cap ) {
        // Add the capability
        $editor->add_cap($cap);
    }
}   

1 Ответ

0 голосов
/ 11 декабря 2018

ссылка: https://wordpress.stackexchange.com/questions/265656/force-submit-to-review-when-a-post-is-updated

function postPending($post_ID)
{ 
   if(get_role('editor'))
   {
      //Unhook this function
      remove_action('post_updated', 'postPending', 10, 3);

      return wp_update_post(array('ID' => $post_ID, 'post_status' => 'pending'));

     // re-hook this function
     add_action( 'post_updated', 'postPending', 10, 3 );
   }
 }
 add_action('post_updated', 'postPending', 10, 3);
...