Задать вопрос

Как вывести уведомления в админке, при сохранении страницы wordpress?

Привет! Необходимо вывести сообщение в админке wordpress при сохранении страницы, нашел отличный пример класса, но не могу заставить его работать, вот пример кода
inc/notice.php
<?php
/**
 * OPC Notice
 *
 */
defined( 'ABSPATH' ) or die( 'You shall not pass!' );
if ( ! class_exists( 'OPC_Notice' ) ):
class OPC_Notice {
	/**
	 * Message to be shown
	 */
	private $message;
	/**
	 * CSS classes to apply on the notice div
	 */
	private $css_classes = array( 'notice' );
	/**
	 * Magic starts here.
	 *
	 * @param  string  $message      Message to be shown
	 * @param  array   $css_classes  CSS classes to apply on the notice div
	 *
	 * @since 1.0.6
	 * @return void
	 */
	public function __construct( $message, $css_classes ) {
		$this->message = $message;
		if( ! empty( $css_classes ) && is_array( $css_classes ) ) {
			$this->css_classes = array_merge( $this->css_classes, $css_classes );
		}
      error_log('1');
		add_action( 'admin_notices', array( $this, 'display_admin_notice' ));
	}
	/**
	 * Displays admin notice on success, error, warning, etc.
	 *
	 * @since 1.0.6
	 * @return void
	 */
	public function display_admin_notice() {
        error_log('2');
		?>
		<div class="<?php echo implode( ' ', $this->css_classes ); ?>">
			<p><?php echo $this->message; ?></p>
		</div>
		<?php
	}
}
endif;

init.php
....
require_once 'inc/notice.php';
require_once 'inc/metaboxes.php';
....


inc/metaboxes.php
class onpageconversionalatMetabox {
...
public function __construct() {
...
 add_action( 'save_post', array( $this, 'call_opc_api'), 20, 1);
}

public function call_opc_api ( $post_id ) {
...
... new OPC_Notice($user_notice_activate, array( 'notice-error', 'is-dismissible' ));
}
}


При сохранении поста в логе отображается 1, но сообщение не отображается. что я делаю не так ?
Заранее спасибо
  • Вопрос задан
  • 158 просмотров
Подписаться 2 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 1
Но цифра 2 в лог не выводится, верно?
Такое ощущение, что на момент наступления события "admin_notices" Ваш класс "OPC_Notice" еще не создан
Попробуйте подключить обработчик события в класс "onpageconversionalatMetabox " перед обработчиком "save_post" и выведите в лог значение 3 и посмотрите что раньше будет 3 или 1. Если раньше будет 3, то моя догадка верна, иначе надо копать. Если 3-ка вообще не выведется, то и класс "onpageconversionalatMetabox " поздно создается.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы