Хуки (hooks), действия (actions) и фильтры (filters) — это мощные инструменты, которые позволяют изменять и расширять возможности вашего сайта на WooCommerce без редактирования основного кода.
В этой статье вы найдете краткий обзор и примеры их использования на сайте с WooCommerce.
Примечание: это руководство предназначено для решения сложных задач и выходит за рамки стандартной поддержки.
Что такое хуки?
Хуки — это общее понятие, которое включает в себя как действия, так и фильтры.
Они позволяют вашему коду взаимодействовать с WordPress, «подключаясь» к внутренним процессам системы. Хуки — это точки, в которые вы добавляете свой пользовательский код.
Пример хука в WooCommerce:
- Хук:
woocommerce_thankyou - Назначение: выполняется после завершения заказа на странице оформления заказа.
- Пример использования: можно выполнить действие сразу после покупки, например отправить пользовательское сообщение с подтверждением заказа.
function custom_thankyou_action($order_id) {
// Отправка пользовательского сообщения или другие действия
}
add_action('woocommerce_thankyou', 'custom_thankyou_action'); В этом примере функция custom_thankyou_action срабатывает через хук woocommerce_thankyou и выполняет ваш код, используя ID заказа.
Что такое действия (Actions)?
Действия — это отдельный тип хуков. Когда вы привязываете функцию к действию, она выполняется в определённый момент работы WordPress или при наступлении события.
Например, можно отправить приветственное письмо при регистрации нового пользователя. Действия используются, когда нужно выполнить дополнительное действие в нужный момент.
Пример использования action-хука в WooCommerce:
- Хук:
woocommerce_before_cart - Назначение: выполняется перед отображением содержимого корзины.
- Пример использования: можно вывести сообщение в верхней части страницы корзины.
function display_custom_cart_message() {
echo '<p>Не забудьте применить купон перед оформлением заказа!</p>';
}
add_action('woocommerce_before_cart', 'display_custom_cart_message'); Этот код привязывает функцию display_custom_cart_message к хуку woocommerce_before_cart, и на странице корзины выводится пользовательское сообщение.
Что такое фильтры (Filters)?
Фильтры — это ещё один тип хуков, предназначенный для изменения данных.
Когда данные проходят через фильтр, все подключенные функции могут изменить их перед выводом или возвратом. Это позволяет менять значения и вывод, например цены товаров, заголовки или текст кнопок.
- Фильтр:
woocommerce_sale_flash - Назначение: позволяет изменить текст бейджа «Распродажа» на товарах.
- Пример использования: можно заменить текст на более заметный, например «Ограниченное предложение».
function customize_sale_flash() {
return '<span class="onsale">Ограниченное предложение</span>';
}
add_filter('woocommerce_sale_flash', 'customize_sale_flash'); В этом примере функция customize_sale_flash подключается к фильтру woocommerce_sale_flash и заменяет стандартный текст «Распродажа» на «Ограниченное предложение» для всех товаров со скидкой.
Использование действий и фильтров
Добавление собственных действий и фильтров требует хорошего понимания WooCommerce, хуков и PHP. Подробнее можно узнать в документации для разработчиков:
