Как изменить Woocommerce с помощью дочерей темы. Часть 3 — как использовать action hook

Автор: | 15.04.2020

Хуки (крючки, 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. Обратите внимание на верхнюю панель сайта.

Simply Show Hooks

Наведите курсор на название плагина и нажмите Show Action Hooks.

Simply Show Hooks

Теперь вы можете видеть все хуки, которые используются на сайте.

Simply Show Hooks/ action hooks

Так как мы будем менять местами вывод названия продукта и цены продукта, то нам нужен хук woocommerce_single_product_summary

woocommerce_single_product_summary

Наведем на него курсор и видим все, что спрятано в этом хуке. Названия интуитивно понятны,

woocommerce_single_product_summary hook

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.

Посмотрим, что у нас вышло. Но предварительно отключим отображение хуков нажав на кнопку в правом верхнем углу.

Simply Show Hooks

Итак, результат

Поменяем местами название продукта и цену с помощью action hook

В следующей статье мы рассмотрим использование filter hook.

Как изменить Woocommerce с помощью дочерей темы. Часть 12 — настройка страницы входа в систему
настройка страницы входа в систему

Стандартная страница входа на сайт wordPress выглядит не очень привлекательно. Read more

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

девятнадцать − 7 =