Подтвердить что ты не робот

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

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

Кажется довольно прямолинейным:

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

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

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

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

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

4b9b3361

Ответ 1

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

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

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

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

IP-адрес Paypal подключается к той учетной записи, которая является получателем денег. Например, если вы получаете деньги на [email protected], вам необходимо настроить IPN с этой учетной записью. Все IPN есть, Paypal отправляет "Оплата завершена!" (сорта) уведомления по выбранному URL. Чтобы выбрать URL-адрес, на который вы хотите отправить Paypal уведомление, вам необходимо выполнить следующие действия:

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

Ваша установка WooCommerce будет теперь слышать из Paypal, когда платеж будет завершен. О, и, кстати, убедитесь, что:

  • Ваша "электронная почта получателя" в настройках Paypal верна.
  • fsockopen включен на вашем сервере (вы можете проверить этот "статус системы" в настройках WooCommerce).

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

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

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

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

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

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

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

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

Ответ 2

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

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