Крючки действий 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');
    ?>

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

Как правильно редактировать таким образом?

Спасибо

Author: LoicTheAztec, 2016-08-21

1 answers

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

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

do_action( 'woocommerce_single_product_summary' ); 

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

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


Объяснения (Как):

КАК ЭТО СДЕЛАТЬ - Конкретный пример:

Вы хотите настроить 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...

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


Ссылки:

 27
Author: LoicTheAztec, 2016-08-21 14:11:51