Intereting Posts
Как фильтровать пользовательские типы сообщений с помощью таксономии пользовательских категорий Как предотвратить обновление WordPress измененного времени? Три последних сообщения, один на срок Запретить сценарии плагина на конкретном шаблоне? Можно ли использовать admin-ajax.php в интерфейсе? Программно установить текущий пункт меню с помощью wp_nav_menu Может ли новый REST API теперь превратить WP в свой собственный сервер уведомлений? Как отображать только выдержку содержимого с пользовательскими типами сообщений? Пытается выводить содержимое со страницы, работает локально, но не в сети Создание файлов cookie в php-файле, но не чтение / доступ в файле wordpress header.php Почему я не могу направить пользователя в раздел моего блога без входа? Удалить поле из json в wp rest api v1 Удаляется wp-config.php Получать пользовательский текстовый архив ссылок с префиксом Лучший способ добавить UnEdable HTML в сообщения

Запретить «вкладчикам» редактировать свои собственные сообщения, как только они будут установлены в «Ожидающий просмотр»,

Мой вопрос – это именно то, что есть в названии: как я могу запретить «вкладчикам» редактировать свои собственные сообщения после того, как они настроены на «Ожидание обзора»? Кажется, я не могу найти документацию о том, как это сделать. Благодаря!

Вы можете сделать это, установив, что автор сообщения является участником и статус сообщения находится в ожидании до того, как сообщение будет сохранено.

Перед сохранением сообщения:

add_filter( 'wp_insert_post_data', 'disallow_edit_pending_3748', 99, 2 ); function disallow_edit_pending_3748( $post_data, $post_array ){ if( 'pending' == $post_data['post_status'] && current_user_can( 'contributor' ) ){ // there's no other way to do this. // Nothing can stop the post from saving and still make sense to the user, except this. wp_redirect(add_query_arg( 'message', 999, get_edit_post_link( $post_array['ID'], 'url' ))); exit; } return $post_data; } 

Add_query_arg для добавления сообщения = 999 является необязательным. Вы можете просто сделать wp_redirect(get_edit_post_link( $post_arr['ID'], 'url' ));

Однако добавление дополнительного параметра позволяет вам показывать сообщение. Я подключаюсь к самому сообщению сообщений WordPress.

 add_filter( 'post_updated_messages', 'add_custom_message_3748' ); function add_custom_message_3748( $messages ){ $messages['post'][999] = "No, you can't do this!"; return $messages; } 

Проблема заключается в том, что всегда будет тип обновления (зеленый цвет). Вы можете создавать объявления и добавлять уведомления администратора, используя другие способы.