Материал

Хуки для Woocommerce. Взаимодействие с различными этапами покупки

WooCommerce предоставляет множество хуков (action), которые позволяют взаимодействовать с различными этапами процесса покупки, от добавления товаров в корзину до оформления заказа.

Вот основные из них, сгруппированные по функциональным разделам:

1. Корзина (Cart)

  • woocommerce_before_cart — вызывается перед отображением корзины.
  • woocommerce_after_cart — вызывается после отображения корзины.
  • woocommerce_cart_contents — вызывается для вывода содержимого корзины.
  • woocommerce_cart_item_removed — срабатывает, когда товар удаляется из корзины.
  • woocommerce_cart_calculate_fees — используется для добавления дополнительных сборов или скидок в корзину (например, обработка платы за доставку, скидки).
  • woocommerce_cart_item_quantities — срабатывает, когда изменяются количества товаров в корзине.
  • woocommerce_add_to_cart — срабатывает при добавлении товара в корзину.
  • woocommerce_cart_updated — срабатывает, когда корзина обновляется.
  • woocommerce_checkout_update_order_review — срабатывает при обновлении оформления заказа.

2. Оформление заказа (Checkout)

  • woocommerce_before_checkout_form — вызывается до формы оформления заказа.
  • woocommerce_after_checkout_form — вызывается после формы оформления заказа.
  • woocommerce_checkout_process — срабатывает перед сохранением данных заказа, можно использовать для проверки данных или валидации.
  • woocommerce_checkout_update_order_meta — используется для добавления данных в мета-данные заказа.
  • woocommerce_checkout_order_processed — срабатывает после того, как заказ обработан и сохранен.
  • woocommerce_checkout_create_order — вызывается при создании нового заказа, до его сохранения в базе данных.
  • woocommerce_payment_complete — срабатывает, когда платеж подтвержден и заказ завершен.
  • woocommerce_payment_failed — вызывается, если процесс оплаты не прошел.

3. Оплата (Payment)

  • woocommerce_available_payment_gateways — срабатывает для изменения доступных платежных систем.
  • woocommerce_before_payment — вызывается перед отображением формы оплаты.
  • woocommerce_after_payment — вызывается после отображения формы оплаты.
  • woocommerce_order_status_completed — срабатывает при изменении статуса заказа на "Завершен" (например, после успешного платежа).

4. Товары (Products)

  • woocommerce_before_shop_loop — срабатывает до вывода товаров в списке (например, на странице магазина).
  • woocommerce_after_shop_loop — срабатывает после вывода товаров.
  • woocommerce_single_product_summary — срабатывает на странице одиночного товара.
  • woocommerce_product_options_general_product_data — используется для добавления пользовательских полей в административную панель для товара.
  • woocommerce_product_save_data — срабатывает при сохранении данных товара в админке.

5. Доставка (Shipping)

  • woocommerce_before_shipping_calculator — срабатывает до калькулятора доставки на странице корзины.
  • woocommerce_after_shipping_calculator — срабатывает после калькулятора доставки.
  • woocommerce_shipping_method — срабатывает при выводе метода доставки.

6. Скидки и налоги (Discounts and Taxes)

  • woocommerce_coupon_message — срабатывает при отображении сообщения о скидке.
  • woocommerce_cart_coupon — срабатывает при применении купона к корзине.
  • woocommerce_tax_rate_after_calculation — срабатывает после расчета налогов.

7. Профиль пользователя и учетные записи (User Accounts)

  • woocommerce_user_registered — срабатывает после регистрации нового пользователя.
  • woocommerce_login_redirect — срабатывает при редиректе после входа пользователя.
  • woocommerce_logout — срабатывает при выходе пользователя из системы.

8. Админ-панель (Admin)

  • woocommerce_admin_order_data_after_order_details — срабатывает после деталей заказа на странице редактирования заказа в админке.
  • woocommerce_order_item_add_action_buttons — добавляет кнопки для элементов заказа в админке.
  • woocommerce_process_shop_order_meta — срабатывает при сохранении мета-данных заказа в админке.
  • woocommerce_save_product_variation — срабатывает при сохранении вариаций товара.

9. Прочие (Miscellaneous)

  • woocommerce_before_main_content — срабатывает перед основным содержимым страницы.
  • woocommerce_after_main_content — срабатывает после основного содержимого страницы.
  • woocommerce_after_footer — срабатывает после футера сайта.

Примеры использования:

Пример добавления дополнительной платы за доставку в корзину:

add_action('woocommerce_cart_calculate_fees', 'add_custom_shipping_fee', 20, 1); function add_custom_shipping_fee($cart) { $cart->add_fee('Дополнительная плата за доставку', 10); }

Пример изменения доступных методов оплаты:

add_filter('woocommerce_available_payment_gateways', 'change_available_gateways'); function change_available_gateways($gateways) { // Отключаем COD, если стоимость корзины меньше 1000 if (WC()->cart->get_total('raw') < 1000) { unset($gateways['cod']); } return $gateways; }
Эти хуки позволяют значительно расширить функциональность WooCommerce, добавляя дополнительные условия, логику и интерфейс для пользователей.

Поделиться в соц. сетях: