Захват WooCommerce для действий «после оплаты»

Я использую WooCommerce и WordPress. У меня есть собственный генератор ключей для ключей, и я хотел бы, чтобы он сгенерировал лицензионный ключ, когда кто-то успешно купил мой плагин через WooCommerce.

Это выглядит довольно прямолинейно:

  1. Пользователь завершает проверку на моем сайте
  2. Пользователь перенаправляется в Paypal, где они вводят свои платежные ведомости
  3. Paypal сообщает моему сайту, что платеж завершен
  4. Я подключаюсь к какому-то «завершению оплаты» или «order_complete» действию WooCommerce и генерирую лицензию.

Вот проблема: я действительно не уверен, какой крючок будет хорошо работать для этого. У Woocommerce есть своя целая коллекция крючков, перечисленных на их сайте, но практически никакой документации о которой хорошо для чего.

Основываясь только на именах крючков, я думаю, что woocommerce_payment_complete будет хорошим действием. К сожалению, похоже, что он вообще не уволен; некоторые места, которые я читал, говорят, что это никогда не срабатывает.

Я также кое-что прочитал о IPN Paypal, но я не понимаю, как я могу подключиться к уведомлению от этого (это связано с крюком Woocommerce?)

Короче говоря, я хотел бы сгенерировать лицензионный ключ, как только платеж будет проверен. Для чего я это делаю?

Хорошо, я придумал пару возможных решений.

ОТНОШЕНИЕ С ПРОВЕРКОЙ ОПЛАТЫ

Стандартный шлюз WooCommerce Paypal на самом деле поддерживает службу IPN Paypal, встроенную в нее. Вы захотите использовать это независимо от выбранного вами маршрута «крючок».

КАК УСТАНОВИТЬ PAYPAL IPN

IP-адрес Paypal подключается к той учетной записи, которая является получателем денег. Например, если вы получаете деньги на myemail@gmail.com, вам необходимо настроить IPN с этой учетной записью. Все IPN есть, Paypal отправляет «Оплата завершена!» (сорта) уведомления по выбранному URL. Чтобы выбрать URL-адрес, на который вы хотите отправить Paypal уведомление, вам необходимо выполнить следующие действия:

  1. Войти в Paypal
  2. Нажмите на значок маленького лица в правом верхнем углу
  3. Нажмите «Профиль и настройки»
  4. Нажмите «Мои инструменты продажи» на левой боковой панели
  5. Найдите «Мгновенные платежи» и нажмите «Обновить».
  6. Включите их и установите URL-адрес. Ваш WooCommerce Paypal Payments Стандартный URL-адрес шлюза: http://yoursite.com/?wc-api=WC_Gateway_Paypal (что отмечается в документации WuCommerce Paypal Standard ).
  7. Сохранить настройки

После завершения оплаты ваша система WooCommerce будет выходить из системы Paypal. О, и, кстати, убедитесь, что:

  • Ваш «Получатель E-mail» в настройках Paypal верен
  • fsockopen включен на вашем сервере (вы можете проверить этот «статус системы» в настройках WooCommerce)

ТЕПЕРЬ ПОЛУЧИТ РАБОТУ НА КНИГАХ

ВАРИАНТ 1: woocommerce_order_status_completed заказов, которые завершили оплату и подключились к woocommerce_order_status_completed для ваших специальных действий / функций

Для того, чтобы ваши продукты были автоматически заполнены после подтвержденного платежа, вы можете просто установить невероятный плагин для заказа автозаполнения WooCommerce от Mirko Grewing. Обязательно установите правильные настройки (которые будут отображаться на вкладке «Дополнительные параметры» в настройках WooCommerce).

Теперь, когда ваши заказы автоматически заполняются при проверке платежей, вы можете просто подключиться к вашему завершению, `woocommerce_order_status_completed, для вашей специальной функции.

Преимущество этого метода заключается в том, что если вы можете подключиться в любом порядке, который будет выполнен – ​​независимо от того, выполнили ли вы его вручную или он был автоматически завершен. Другими словами, это довольно универсально.

ВАРИАНТ 2: woocommerce_payment_complete_order_status фильтру woocommerce_payment_complete_order_status , что означает успешный платеж.

Наверное, это довольно понятно. Преимущество этого метода заключается в том, что он в значительной степени является первым шагом во всем процессе и имеет место перед завершающим крючком выше (если у вас есть приоритеты, установленные соответственно).

Я не знаю, лучше ли кто-то другой, но оба они, похоже, достигают моей цели: выполните действие ПОСЛЕ оплаты.

woocommerce_payment_complete_order_status также запускается, когда платеж был отменен. Я только что проверил использование Paypal в качестве шлюза Woocommerce 3.1.2.

Действие woocommerce_payment_complete похоже, срабатывает только тогда, когда платеж был успешным.