Хуки (крючки, hooks) встроены во все ядро WordPress, большинство тем WordPress и все лучшие плагины WordPress. Крючки WordPress — это событийная система, которая позволяет вам добавлять свой собственный новый код или редактировать существующий код в рамках экосистемы WordPress.
Хуки для WooCommerce
Хуки WordPress — это, по сути, функции php, которые позволяют вам добавлять свой собственный код в WordPress или редактировать существующий код во всем WordPress без необходимости редактировать основные файлы при настройке вашего сайта WordPresss и/или магазина WooCommerce.
Хуки также используются в WooCommerce, позволяя разработчикам легко добавлять свои собственные пользовательские функции с помощью экшенов или редактировать функциональность, встроенную в плагин WooCommerce, чтобы дополнительно настроить ваш интернет-магазин с помощью фильтра.
Actions в WooCommerce
Есть 2 различных типа хуков, которые вы можете использовать для дальнейшей настройки вашего магазина WooCommerce. Также вы можете использовать плагин WooCustomizer, который позволяет редактировать множество фильтров без необходимости знать, как кодировать.
Actions (action hook)
Actions размещаются по всему WooCommerce с помощью функции do_action (‘action_name’), и поэтому вы можете использовать имя действия, чтобы указать, где вы хотите выполнить добавляемый код.
Чтобы добавить свой пользовательский код, вы просто создаете новую функцию php с вашим кодом внутри и указываете, где вы хотите запустить код, добавляя имя действия в качестве первого параметра в функции add_action ().
Пример:
add_action( 'action_name', 'your_custom_function_name', Priority ); function your_custom_function_name() { // Your code }
Таким образом, вы просто говорите коду WooCommerce: “добавьте мое действие, когда do_action запускается”.
Чтобы удалить action нужно применить команду remove_action(‘action_name’, ‘function_name’, Priority).
ПРИМЕР
Поменяем местами название продукта и цену
В первой серии статей о том, как изменить Woocommerce с помощью дочерей темы, мы установили плагин Simply Show Hooks. Обратите внимание на верхнюю панель сайта.
Наведите курсор на название плагина и нажмите Show Action Hooks.
Теперь вы можете видеть все хуки, которые используются на сайте.
Так как мы будем менять местами вывод названия продукта и цены продукта, то нам нужен хук woocommerce_single_product_summary
Наведем на него курсор и видим все, что спрятано в этом хуке. Названия интуитивно понятны,
Priority: обозначает порядок отображения элементов.
Мы видим, что woocommerce_template_single_price, который очевидно отвечает за отображение цены, имеет приоритет 10.
Все, что нужно сделать, это удалить его, а затем снова добавить, присвоив новый приоритет. Мы хотим поместить цену перед заголовком, за который отвечает woocommerce_template_single_title, у которого приоритет 5. Значит нужно сделать так, чтобы у woocommerce_template_single_price приоритет был меньше.
Открываем function.php и пишем следующие строки:
remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_price'); // удалили цену add_action('woocommerce_single_product_summary', 'woocommerce_template_single_price', 4); // поставили цену в начало перед названием продукта с приоритетом 4.
Посмотрим, что у нас вышло. Но предварительно отключим отображение хуков нажав на кнопку в правом верхнем углу.
Итак, результат
В следующей статье мы рассмотрим использование filter hook.