Я пытаюсь создать простой плагин для 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;
}
}