Intereting Posts
Установить шаблон для пользовательского типа сообщений? Удалить элемент меню, созданный плагином wp_get_attachment_image_src () работает с индексом, но не в архивах Зачем использовать foreach для получения attachment_id, если числовые столбцы равны 1? Эхо или не эхо? Проверка значений передаваемых форм и отображение предупреждающих сообщений с помощью API настройки Как печатать текст с поддержкой перевода с URL-адресом HTML Плагин поддержки чата? Цикл WordPress для вывода 4 страниц / сообщений по ID Синтаксическая ошибка PHP при использовании обновления wpdb? Как проверить, что поле имеет значение, прежде чем добавлять термин к таксономии Как поместить enctype = "multipart / form-data" в категории? Принудительное перенаправление при миграции сервера как проверить, есть ли новый комментарий к сообщению? Удалить все, опубликованные и обработанные сообщения в пользовательском типе сообщения

Удалить сообщение мета условно после сохранения сообщения

Я хочу обновить / удалить мета-сообщение, когда пользовательский пост (в этом случае пользовательский тип сообщения «бронирование») обновляется после изменения метаданных. В моем случае, если пользователь изменил сообщение meta booking_status на «denied», а затем booking_status сообщение, я хочу немедленно удалить post_meta booking_status .

Вот что я пробовал

 add_action( 'save_post', 'booking_status_is_updated' ); function booking_status_is_updated(){ global $post; if($post->post_type =='booking'){ if(get_post_meta($post->ID,'booking_status',true)=='denied'){ delete_post_meta($post->ID,'booking_slot'); } } } 

Но это не работает? Как я могу это сделать?

Solutions Collecting From Web of "Удалить сообщение мета условно после сохранения сообщения"

  • Ну, сначала используйте крючок правильно. Идентификатор сообщения будет передан. Вам не нужно $post->ID .
  • Во-вторых, используйте правильный крючок. Если вы хотите запустить save_post только для своего типа бронирования, используйте save_post_booking

Но в противном случае код работает. Я просто проверил быстрый тест.

 function booking_status_is_updated($post_id){ if(get_post_meta($post_id,'booking_status',true)=='denied'){ delete_post_meta($post_id,'booking_slot'); } } add_action('save_post_booking','booking_status_is_updated');