Крючки действий 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.)
ссылки: