WooCommerce hook dla akcji "po zakończeniu płatności"

Używam WooCommerce i Wordpress. Mam niestandardowy klucz licencyjny generator, i chciałbym, aby wygenerować klucz licencyjny, gdy ktoś pomyślnie zakup mój plugin przez WooCommerce.

Wydaje się całkiem prosto:

  1. użytkownik kończy zamówienie na mojej stronie
  2. użytkownik jest przekierowywany do Paypal, gdzie wprowadza swoje dane uwierzytelniające płatności
  3. Paypal informuje moją stronę, że płatność jest zakończona
  4. podłączam się do jakiegoś rodzaju "płatności kompletne" lub "order_complete" akcja WooCommerce i wygenerować licencję.

Oto problem: naprawdę nie jestem pewien, jaki hak by do tego pasował. Woocommerce ma swoją całą kolekcję hooków na swojej stronie, ale praktycznie nie ma dokumentacji, która jest dobra do czego.

Bazując tylko na nazwach haków, myślę, że woocommerce_payment_complete byłoby dobrą akcją do użycia. Niestety nie wydaje się być w ogóle zwolniony; niektóre miejsca czytałem, że nie jest nigdy zwolniony.

Czytałem też coś o PayPal IPN, ale nie rozumiem, jak mogłem się z tego podłączyć do powiadomienia (czy to łączy się z Hookiem Woocommerce?)

W skrócie, chciałbym wygenerować klucz licencyjny, jak tylko płatność zostanie zweryfikowana. Co mam zrobić, aby to osiągnąć?

Author: Pete, 2015-01-29

2 answers

Ok, wymyśliłem kilka możliwych rozwiązań.

OBSŁUGA WERYFIKACJI PŁATNOŚCI

Standardowa Brama Paypal WooCommerce ma wbudowaną obsługę usługi IPN Paypal. Będziesz chciał tego użyć niezależnie od wybranej trasy "haka".

JAK SKONFIGUROWAĆ PAYPAL IPN

Paypal IPN jest połączony z kontem, które jest odbiorcą pieniędzy. Na przykład, jeśli otrzymujesz wynagrodzenie w [email protected], wtedy trzeba załóż IPN z tym kontem. Cały IPN jest, czy Paypal wysyła " Płatność zakończona!"(swego rodzaju) powiadomienie na wybrany przez Ciebie adres URL. Aby wybrać adres url, na który ma zostać wysłane powiadomienie przez Paypal, należy wykonać następujące kroki:]}

  1. Zaloguj się do Paypal
  2. Kliknij ikonę małej twarzy w prawym górnym rogu
  3. Kliknij "profil i ustawienia"
  4. kliknij "Moje narzędzia sprzedaży" na lewym pasku bocznym
  5. Znajdź "Natychmiastowe powiadomienia o płatnościach" i kliknij "Update"
  6. włącz je i ustaw adres url. Twój adres URL Standardowej bramki płatności WooCommerce PayPal to: http://yoursite.com/?wc-api=WC_Gateway_Paypal PayPal jest standardowym systemem Paypal, który jest dostępny na stronie WooCommerce.
  7. Zapisz swoje ustawienia

Twoja instalacja WooCommerce będzie teraz słyszalna z Paypal po zakończeniu płatności. A tak przy okazji, upewnij się, że:

  • Twój "adres e-mail odbiorcy" w Ustawieniach Paypal jest poprawne
  • Fsockopen jest włączony na twoim serwerze (możesz sprawdzić ten "status systemu" w Ustawieniach WooCommerce)

A TERAZ DO ROBOTY NAD HACZYKAMI

Opcja 1: automatyczne wypełnianie zamówień, które dokonały płatności i podłączenie do woocommerce_order_status_completed dla specjalnych działań / funkcji

Aby Twoje produkty zostały automatycznie uzupełnione po zweryfikowaniu płatności, możesz po prostu zainstalować fantastyczną wtyczkę Mirko Grewing WooCommerce Autocomplete Order. Be pamiętaj, aby ustawić odpowiednie ustawienia (które pojawią się w zakładce "dodatkowe opcje Woo" w Ustawieniach WooCommerce).

Teraz, gdy Twoje zamówienia są autouzupełniane po weryfikacji płatności, możesz po prostu podłączyć się do haka realizacji, ' woocommerce_order_status_completed, dla swojej specjalnej funkcjonalności.

Zaletą tej metody jest to, że jeśli pozwala na hookowanie w dowolnej kolejności, która jest zakończona-niezależnie od tego, czy ręcznie ją wypełniłeś, czy nie automatycznie zakończone. Innymi słowy, jest dość wszechstronny.

Opcja 2: Podłącz się do filtra woocommerce_payment_complete_order_status, który oznacza pomyślną płatność.

To chyba oczywiste. Zaletą tej metody jest to, że jest to prawie pierwszy krok w całym procesie i odbywa się przed zakończeniem hook powyżej(jeśli masz swoje priorytety ustawione odpowiednio).

Nie wiem, czy jeden jest lepszy od drugiego, ale oba wydają się osiągać moje cel: wykonaj czynność po zweryfikowaniu płatności.

 24
Author: Pete,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-29 23:50:33

woocommerce_payment_complete_order_status zostanie również wywołany, gdy płatność została anulowana. Właśnie przetestowałem użycie Paypal jako bramy na Woocommerce 3.1.2.

Akcja woocommerce_payment_complete wydaje się uruchamiać tylko wtedy, gdy płatność się powiodła.

 7
Author: Daniel T,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-07 15:19:13