Intereting Posts
Установить формат публикации, если найти строку в заголовке или в сообщении the_title (); работает в шаблоне страницы, вне цикла. Зачем? Как установить страницу в качестве главной страницы вместо газет? Почему я получаю бесконечный цикл с has_posts? Что следует использовать вместо get_blog_option? Добавить функцию jQuery Как получить общее количество meta_values ​​на основе пользовательского типа сообщений? Как регистрировать и отображать виджет для пользовательской таксономии WordPress DB: options-table -> 32 gzipcompression? Общие категории для двух пользовательских типов сообщений Как я могу использовать order_by для заказа двумя мета-ключами без исключения сообщений, которые не имеют эти ключи инициализированы? Обновление базы данных WordPress с 2,6 до 3,2 Сайт поврежден после использования URL-адреса в Admin Переместить jQuery на * верхний * нижний колонтитул Автоматический аккордеон jQuery из тегов заголовков

'all' hook и проблема add_action (плагин на основе классов)

У меня в настоящее время проблема с моим настраиваемым плагином. Он фактически регистрирует все действия / фильтры, запущенные в файл (или на экран). Мне нужно как-то обновить свои параметры в db при отправке формы. Вот сам код:

class WP_Test_Logging_Plugin { //required for the file name private $yymmddhhmmss; private $data; public function __construct() { add_action( 'all', array( $this, 'log_to' ) ); add_action( 'admin_menu', array( $this, 'menu' ) ); add_action( 'admin_print_styles', array( $this, 'plugin_theme_style' ) ); add_action( 'template_redirect', array( $this, 'on_admin_form_submit' ) ); $this->yymmddhhmmss = date( 'YMDHis' ); if ( get_option( 'where_to_log_to' ) == false ) { update_option( 'where_to_log_to', 1 ); } $this->data = get_option( 'where_to_log_to' ); } 

метод, который я использую для обработки формы

 public function on_admin_form_submit() { if ( isset( $_POST['selection'] ) ) { update_option( 'where_to_log_to', $_POST['selection'] ); } } 

Есть ли способ об этом? Благодаря!

Solutions Collecting From Web of "'all' hook и проблема add_action (плагин на основе классов)"

Во-первых, template_redirect – это передний конец. Он никогда не срабатывает в вашем резервном хранилище. Вам нужно выбрать бэкэнд-крючок, например admin_init для подключения вашей функции.

Во-вторых, на основе вашего pastebin из вашего другого вопроса , ваш код имеет checked атрибут, жестко закодированный для обоих ваших радио-ящиков, что приводит к тому, что он по умолчанию остается последним. Вы хотите изменить свою форму следующим образом:

 <input type="radio" <?php checked($this->data, 1); ?> value="1" name="selection" > 

В-третьих, вам нужно убедиться, что оба ваших переключателя имеют атрибут value .

В-четвертых, вам нужно обновить этот параметр, когда вы сохраните …

 public function on_admin_form_submit() { if ( isset( $_POST['selection'] ) ) { if ($_POST['selection'] == 1){ update_option( 'where_to_log_to', 1 ); } else { update_option( 'where_to_log_to', 2 ); } } $this->data = get_option( 'where_to_log_to', 1 ); } 

Обратите внимание, что я явно сохранил значения 1 и 2.

Я думаю, что есть.