Как переместить мета данные карточки Woocommerce выше над ценой через хук если не срабатывает приоритет

Решив сменить положение мета данных (артикул и категорию) через хук - ничего не получилось.

Пример кода в файле /public_html/wp-content/plugins/woocommerce/templates/content-single-product.php

	<div class="summary entry-summary">
		<?php
		/**
		 * Hook: woocommerce_single_product_summary.
		 *
		 * @hooked woocommerce_template_single_title - 5
		 * @hooked woocommerce_template_single_rating - 10
		 * @hooked woocommerce_template_single_price - 20
		 * @hooked woocommerce_template_single_excerpt - 20
		 * @hooked woocommerce_template_single_add_to_cart - 30
	* @hooked woocommerce_template_single_meta - 5
		 * @hooked woocommerce_template_single_sharing - 5
		 * @hooked WC_Structured_Data::generate_product_data() - 5
		 */
		do_action( 'woocommerce_single_product_summary' );
		?>
	</div>

Ничего не происходит.

В общем решение следующее. Нужно убедится в правильном значении хука.
и через новый хук добавить новое значение.

Почему так происходит?

Потому что приоритеты хуков могут быть переопределены темой или плагинами!

Комментарий в коде — это исходное состояние WooCommerce по умолчанию, но многие темы (особенно популярные, вроде Astra, Flatsome, OceanWP и т.д.) и плагины переподключают хуки с другими приоритетами — чтобы адаптировать дизайн под себя.

Как проверить реальные приоритеты?

Добавьте в functions.php (временно!) этот код для отладки:

add_action( 'woocommerce_single_product_summary', 'debug_woocommerce_hooks', 999 );

function debug_woocommerce_hooks() {
    global $wp_filter;
    if ( isset( $wp_filter['woocommerce_single_product_summary'] ) ) {
        echo '<pre>';
        print_r( $wp_filter['woocommerce_single_product_summary'] );
        echo '</pre>';
    }
}

После через поиск по словам на странице товара - найдите хук который нужен и посмотрите его значение. У меня было всё-таки - 40.

P.S. Если не работает - то тестируйте просто в следующем коде хука 5,10,20,30,40,50...

Зная реальное значение добавим хук в functions.php

add_action( 'woocommerce_single_product_summary', function() {
    remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_meta', 40 );
    add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_meta', 7 );
}, 1 );

 

 

guest
Закрыть меню