Статус всех постов обновляется при нажатии одной кнопки - PullRequest
0 голосов
/ 26 января 2020

Я пытаюсь создать простой плагин для WordPress . Я добавил пользовательский столбец с именем Status к своему пользовательскому типу поста, и напротив этого столбца у меня есть кнопка, которая отображает текущий статус поста " publi sh". или «В ожидании».

Я хочу нажать на кнопку и изменить статус указанного c сообщения с publi sh до в ожидании или наоборот, но когда я щелкаю по указанному c сообщению, я получаю «обновленные» все сообщения с publi sh до в ожидании или наоборот в зависимости от статуса сообщения, каким оно было.

Когда я нажимаю на конкретное сообщение c, чтобы изменить его статус, оно обновляет все статус сообщения: publi sh до в ожидании или наоборот, я хочу изменить статус сообщения, на котором я нажал.

I есть следующий код, пожалуйста, скажите мне, где я делаю что-то не так.

add_filter('manage_testimonials_posts_columns', 'publish_pending_column');
function publish_pending_column($column){

  $columns = array(
  'cb' => "<input type='checkbox'/>",
  'title' => 'Title',
  'btn' => 'Status' ,
  'date' => 'Date'

 );
 return $columns;
 } 


add_action('manage_testimonials_posts_custom_column', 'add_content_to_status_column',10,2);
    function add_content_to_status_column($columns, $post_id)
    {

      $status = get_post_status($post_id);
      echo "ID => ".$post_id;
      echo "status is ".$status."<br>";


      if(isset($_POST['change']))
      {

        if($status ==='publish')
        {
          echo "Now wer are inside in the publish if";
         wp_update_post(array
           (
            'ID'     => $post_id,
            'post_status' => 'pending'
         ),$wp_error = true);

        }
        elseif($status==='pending')
        {
          echo "we are inside pending if";
           wp_update_post(array
           (
            'ID' => $post_id,
            'post_status' => 'publish'
         ),$wp_error = true);

        }
      }

    switch ($columns) 
      {

        case 'btn':
        ?>

         <form action='' method = 'POST'>
          <?php $status = get_post_status($post_id);?>
          <input id ="<?php echo $post_id;?>" type='submit' name = 'change' value = '<?php echo $status;?>' />
        </form>

          <?php
          break;

        default:
          break;
      }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...