Так как даже странички товаров хочется украсить красиво с помощью блоков, то я и для WooCommerce отключаю классический редактор. Но появляется бесячая мелочь: любое взаимодействие с шапкой метабокса «Данные товара» активирует скрипт сворачивания/разворачивания метабокса.
Можно было бы проигнорировать, но именно в шапке у нас находятся настройка смены Типа товара. И соответственно каждый раз, когда меняем «Тип товара» метабокс начинает свое свернуть/развернуть.
Немного раздражает и поэтому я начал искать решение этой проблемы. Ничего не нашел, но написал своё.
add_action('admin_footer', function () {
$screen = get_current_screen();
if ($screen && $screen->post_type === 'product') :
?>
<style>
#woocommerce-product-data .handlediv {
pointer-events: none;
opacity: 0;
}
#woocommerce-product-data.closed .inside {
display: block !important;
}
</style>
<?php
endif;
});Да, не очень изящно. Но работает:
- Отключен клик по стрелке
.handledivчерезpointer-events: none— это блокирует возможность сворачивания. - Сделал
.insideвсегда видимым даже приclosed— черезdisplay: block !important. - Сохранил всю остальную JS-логику WooCommerce (переключение вкладок, типов товара и т.д.), не мешая её работе.
Плюсы такого подхода:
- ✅ Минимальное вмешательство в JS WooCommerce.
- ✅ Всё работает, как нужно, без побочных эффектов.
- ✅ Не ломаешь внутренние события или логику
postboxes. - ✅ Можно легко отключить, просто убрав
<style>
