Крючки действий WooCommerce и переопределяющие шаблоны

Я начал учиться создавать шаблоны с помощью WooCommerce, и я столкнулся с небольшой проблемой. Например, в файле php content-single-product.php плагина Woocommerce у меня есть такие строки:

     <?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' );

    ?>

и, например, когда я хочу отредактировать это (удалить некоторые поля и изменить структуру), я пытаюсь стереть строку:

do_action ('woocommerce_single_product_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' );
        do_action('woocommerce_template_single_title');
    ?>

не могли бы вы сказать мне, пожалуйста, почему это не работает?

каков правильный способ редактирования?

спасибо

1 ответов


сначала в ссылка ниже вы найдете как правильно переопределить шаблоны woocommerce по теме (избегая редактирования шаблонов плагинов).

в вашем первом фрагменте кода, как вы можете видеть для woocommerce_single_product_summary крючком, у вас в порядке все различные шаблоны @hooked в этой расположение крюка С do_action() Функции WordPress:

do_action( 'woocommerce_single_product_summary' ); 

таким образом, в вашем настроенном коде (2-й фрагмент кода) Вы только что заменили крючком, к зацепил шаблон slug (то есть не крюк) и не работать в качестве точки входа крюк действий. См. ссылки в нижней части этого ответа для список действий и фильтров WooCommerce существующий крючки...

последствия: все другие подключенные шаблоны в коде списка комментариев (начиная с @hooked) будет отсутствовать если вы замените крюк шаблоном slug.


объяснениями (как):

как - конкретный пример:

вы хотите настройки woocommerce_template_single_title подключенный шаблон на woocommerce_single_product_summary крючком.

THE HOOK NAME:  woocommerce_single_product_summary hook.

THE TEMPLATES HOOKED (+priority order number)  => corresponding template file name:    
— woocommerce_template_single_title       (5) => single-product/title.php
— woocommerce_template_single_rating     (10) => single-product/rating.php
— woocommerce_template_single_price      (10) => single-product/price.php
— woocommerce_template_single_excerpt    (20) => single-product/short-description.php
— woocommerce_template_single_add_to_cart(30) => single-product/add-to-cart/ (6 files depending on product type)
— woocommerce_template_single_meta       (40) => single-product/review-meta.php
— woocommerce_template_single_sharing -  (50) => single-product/share.php

тогда вам нужно будет редактировать соответствующего woocommerce_single_product_summary крючком title.php расположенном в single-product (папка суб)... наконец, не так сложно, как только мы понимаем файлы структуры шаблонов и крючки в этих шаблонах.

на приоритет, дает заказ для подключенного шаблоны: меньше в первом, больше в конце...


другие способы:

вы также можете использовать все существующие шаблоны крючки для целевых очень конкретных изменений или настроек, с пользовательскими функциями, расположенными в function.php файл вашей активной дочерней темы (или темы) или любого файла плагина тоже.

пример использования add_action() WordPress функция:

// define the woocommerce_single_product_summary callback function

function my_custom_action() { 
    echo '<p>This is my custom action function</p>';
};     
add_action( 'woocommerce_single_product_summary', 'my_custom_action', 15 ); 

эта функция имеет номер приоритета 15 и будет отображать "это моя пользовательская функция действия" строке текст между product price и product short description...

необязательные аргументы этой подключенной функции для этого крючка:
- Шаблон slug (строка).
- Приоритет (int.)


ссылки: