Если вам, как и мне, порядком надоела верхняя панель в панели администратора сайта у WooCommerce, то предлагаю с ней распрощаться!
Как я понял, кроме дублирующего заголовка текущего экрана (страницы) и нескольких неважных функций эта панель ничего существенного в себе не содержит. Так зачем занимать дорогую часть экрана?! Долой! 🙂
<?php
/**
* Удаляем служебный верхнюю панель WooCommerce в панели управления WordPress.
*
* @see https://woocommerce.github.io/code-reference/classes/Automattic-WooCommerce-Admin-Loader.html
* @author Code==Poetry <codeispoetry@mail.ru>
*/
add_action( 'admin_head', function (){
remove_action( 'in_admin_header', array( 'Automattic\WooCommerce\Internal\Admin\Loader', 'embed_page_header' ) );
print '<style>#wpadminbar + #wpbody { margin-top:0; }</style>';
});
Шаг за шагом
Исследуем элемент этой верхней части (header)
Видим идентификатор, за которой и можно зацепиться. Переходим в директорию с плагином WooCommerce и ищем пофайловым поиском соответствие. Находим его в файле класса Loader:
Этот элемент находится в методе embed_page_header(), который вызывается 1 раз. Исследуем файл и обнаруживаем его в конструкторе класса:
Далее нам необходимо удалить этот, который закреплен за хуком in_admin_header. При помощи функции remove_action удалим этот метод. Вместо __CLASS__ необходимо указать пространство имён + название класса:
Получаем:
remove_action( 'in_admin_header', array( 'Automattic\WooCommerce\Internal\Admin\Loader', 'embed_page_header' ) );
P.S. Вполне возможно пространство имён в новых версиях может измениться, но принцип я думаю ясен.
Далее, «вешаем» этот «экшен» на событие происходящее только в верхней части панели администратора.
add_action( 'admin_head', function (){
remove_action( 'in_admin_header', array( 'Automattic\WooCommerce\Internal\Admin\Loader', 'embed_page_header' ) );
});
И это даёт уже результат! Правда с небольшим нюансом.
Панель удалилась, но осталось пространство, которое явно нам ни к чему. Инспектируем эту область и находим нужное нам правило, которое и создаёт этот отступ:
Дополним наш код строчкой, которая при помощи языковой конструкции print выведет строчку дополнительного стиля, в котором благодаря новому правилу мы избавляемся от отступа.
Добавить комментарий