Поддержка Проблемы и решения Не срабатывает admin_notices

  • Помогите разобраться с последовательностью загрузок.

    Почему не срабатывает внутри функции get_debug_page_func
    мой admin_notices? Ведь по логике вещей функция get_debug_page_func работает в момент срабатывания admin_menu, а admin_menu вызывается раньше чем admin_notices. Т.е я ещё «успеваю» добавить admin_notices…

    Код для примера:

    add_action('plugins_loaded', array('myClass', 'init')); // активируем плагин
    class myClass {
    	public function __construct() {
    		add_action('admin_menu', array($this, 'add_admin_menu_func'), 10, 1);
    		...
    	}
    	public function add_admin_menu_func() {
    		$page_suffix = add_menu_page(null , 
    		__('Test', 'yfym'), 
    		'manage_woocommerce', 
    		'test', 
    /* ! */		array($this, 'get_debug_page_func'), 
    		'dashicons-redo', 
    		51);
    		...
    	}
    
    	// вывод страницы настроек плагина
    	public function get_debug_page_func() {
    		$message = __('12345', 'yfym');
    		$class = 'notice-warning';	
    	 
    		// почему не срабатывает admin_notices ниже?
    /* ! */		add_action('admin_notices', function() use ($message, $class) { 
    			$this->admin_notices_func($message, $class);
    		}, 10, 2);
    	} 
    	
    	public static function init() {
    		if (is_null(self::$instance)) {
    			self::$instance = new self();
    		}
    		return self::$instance;  
    	}
    	protected static $instance;
    	...
    }
    • Тема изменена 4 месяца, 1 неделя назад пользователем icopydoc.
    • Тема изменена 4 месяца, 1 неделя назад пользователем icopydoc.