WooCommerceとWordpressを使用しています。カスタムライセンスキージェネレーターがあり、誰かがWooCommerceからプラグインを正常に購入したときにライセンスキーを生成したいと思います。
それはかなり簡単なようです:
問題は次のとおりです。どのフックがこれにうまく機能するかはわかりません。 Woocommerceのサイトには フックのコレクション全体 がリストされていますが、実質的にどのドキュメントが何に適しているかについてのドキュメントはありません。
フック名だけに基づいて、woocommerce_payment_complete
は、使用するのに適したアクションです。残念ながら、まったく発射されていないようです。私が読んだいくつかの場所は、それが解雇されたことがないと言っています.
Paypal IPNについても読みましたが、そこからの通知にフックする方法がわかりません(Woocommerceフックに接続しますか?)
要するに、支払いが確認され次第、ライセンスキーを生成したいと思います。これを達成するために何にフックしますか?
さて、私はいくつかの可能な解決策を考え出しました。
WooCommerceのPaypal標準ゲートウェイは、実際にはPaypalのIPNサービスをサポートしています。選択した「フック」ルートに関係なく、それを使用する必要があります。
Paypal IPNの設定方法
Paypal IPNは、お金の受取人であるアカウントに接続されます。たとえば、myemail @ gmail.comで支払いを受ける場合は、そのアカウントでIPNを設定する必要があります。すべてのIPNは、Paypalが「Payment Complete!」を送信しています。 (任意の)選択したURLへの通知。 Paypalから通知を送信するURLを選択するには、次の手順を実行する必要があります。
支払いが完了すると、WooCommerceのインストールにPaypalから連絡があります。ああ、ところで、次のことを確認してください。
オプション1:支払いを完了し、woocommerce_order_status_completed
特別なアクション/機能用
確認済みの支払い時に製品を自動完了させるには、Mirko Grewingのすばらしい WooCommerce Autocomplete Order プラグインをインストールするだけです。必ず正しい設定を設定してください(WooCommerce設定の[Woo Extra Options]タブの下に表示されます)。
支払いが確認されたときに注文が自動完了されるようになったので、特別な機能のために完了フック `woocommerce_order_status_completed 'にフックするだけです。
この方法の利点は、手動で完了したか、自動的に完了したかどうかに関係なく、完了した任意の順序でフックできる場合です。言い換えれば、それは非常に汎用性があります。
オプション2:woocommerce_payment_complete_order_status
フィルター。支払いが成功したことを示します。
私はそれがかなり一目瞭然だと思います。この方法の利点は、プロセス全体のほとんどの最初のステップであり、上記の完了フックの前に行われることです(優先順位が適切に設定されている場合)。
一方が他方より優れているかどうかはわかりませんが、どちらも私の目標を達成しているようです。支払いが確認された後にアクションを実行します。
woocommerce_payment_complete_order_status
は、支払いがキャンセルされたときにも発生します。 Woocommerce 3.1.2のゲートウェイとしてPaypalを使用してテストしました。
アクション woocommerce_payment_complete
は、支払いが成功した場合にのみ発生するようです。