Mike_Ro
@Mike_Ro
Python, JS, WordPress, SEO, Bots, Adversting

Логика работы hooked в WooCommerce?

Всем привет! Пытаюсь разобраться в верстке WooCommerce шаблона, точнее даже в 'логике' этой самой верстки с этими пресловутыми hooked. Перекопал кучу материала и собрал для себя некоторую картину 'действий'.

Установка:
  1. Установил WP.
  2. Установил плагин WooCommecre в WP.
  3. Создал файл в своей теме под названием woocommerce.php, в него вставил <?php woocommerce_content(); ?>.
  4. Скопировал папку template из плагина WooCommerce и переместил ее в мою тему, далее переименовал ее в woocommerce.
  5. Создал несколько категорий и наполнил их товарами для наглядности.


Верстка шаблона:
И вот здесь начались основные вопросы. Перечитал материалы и частично выяснил, что эти самые hooked содержат в себе части верстки.

Начнем с карточки товара: Нашел страницу, которая отвечает за карточку товара - content-single-product.php, захожу на страницу и вижу:

<div class="summary entry-summary">

	<?php
	/**
	 * woocommerce_single_product_summary hook.
	 *
	 * @hooked woocommerce_template_single_title - 5
	 * @hooked woocommerce_template_single_rating - 10
	 * @hooked woocommerce_template_single_price - 10
	 * @hooked woocommerce_template_single_excerpt - 20
	 * @hooked woocommerce_template_single_add_to_cart - 30
	 * @hooked woocommerce_template_single_meta - 40
	 * @hooked woocommerce_template_single_sharing - 50
	 */
	do_action( 'woocommerce_single_product_summary' );
	?>

</div>

  1. woocommerce_single_product_summary hook - удалил, вроде ничего не изменилось. Данная строка ничего не изменяет и просто служит комментом?
  2. @hooked woocommerce_template_single_title - 5 - содержит в себе кусок кода, который находится по адресу: /themes/наша-тема/woocommerce/single-product/title.php?
  3. @hooked woocommerce_template_single_title - 5 - что такое цифра 5? Предположил, что это порядок вывода, но когда изменил вывод так:
    <div class="summary entry-summary">
    
    	<?php
    	/**
    	 * woocommerce_single_product_summary hook.
    	 *
    	 * @hooked woocommerce_template_single_rating - 10
    	 * @hooked woocommerce_template_single_title - 15 // <-- переместил сюда и поменял номер
    	 * @hooked woocommerce_template_single_price - 10
    	 * @hooked woocommerce_template_single_excerpt - 20
    	 * @hooked woocommerce_template_single_add_to_cart - 30
    	 * @hooked woocommerce_template_single_meta - 40
    	 * @hooked woocommerce_template_single_sharing - 50
    	 */
    	do_action( 'woocommerce_single_product_summary' );
    	?>
    
    </div>

    - ничего не изменилось, порядок остался прежним на странице. Решил удалить строку с заголовком - аналогично, заголовок проигнорировал и остался на странице.



3 основных вопроса:
  1. Для чего нужны те самые цифры в конце строки с hooked. Что они меняют и как это применить на практике?
  2. Если после изменения порядка вывода hooked (местами поменять) - на выходе, на странице остается все прежним, то как тогда верстать ту самую карточку товара?
  3. Что такое do_action( 'woocommerce_single_product_summary' ), для чего оно нужно и что меняет?


Учитывая, что мой вопрос достаточно актуальный на просторах сети - он будет интересен большой аудитории новичков вроде меня, и еще просьба - привести наглядный пример на мои 'как'.

Заранее ОГРОМНОЕ спасибо!
  • Вопрос задан
  • 1069 просмотров
Решения вопроса 1
Punkie
@Punkie
Вот тут три года назад описал подробно эту всю тему: Как изменить расположение элементов WooCommerce в WordPress?
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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