2017-04-12 17 views
0

WooCommerce管理者には、キャンセルサブスクリプションオプションがあります。 サブスクリプションがキャンセルされたときにこれを捕まえることができます。 しかし、WooCommerceでキャンセルされる前に、ゲートウェイをチェックしてゲートウェイ上のサブスクリプションをキャンセルすることをお勧めします。WooCommerceサブスクリプション拡張 - WooCommerceでキャンセルする前にゲートウェイでキャンセルする

それは

  1. ユーザー/管理者が
  2. APIリクエストが応答に失敗/成功を与えることをゲートウェイに行く「サブスクリプションをキャンセル」を選択する必要があります。
  3. 成功すると、WooCommerceはサブスクリプションをキャンセルします。それはサブスクリプションが失敗するAPI呼び出しの可能性がある取り消され後にフックし、現在のセットアップの

。サブスクリプションは、ゲートウェイでは支払いを処理し続ける一方、ユーザーにはキャンセルされたように見えます。

サブスクリプションが変更される前にポストステータスフックの変更がトリガーされることがわかりましたが、die()がなければそれ以上の処理を停止できません。

誰もがこの状況を処理する最善の方法を知っていますか?

答えて

1

どのように処理するかの順序を並べ替えるのではなく、ゲートウェイ呼び出しの後に来る関数を記述し、失敗した場合はサブスクリプションを再度アクティブにして、ユーザーに再度試してもらう必要があります。もちろん、ログに記録して通知する必要があります。

私がこの方法を提案する理由は、WooCommerceアップデートでは壊れにくいからです。

+0

良い提案。 サブスクリプションを再度有効にする問題はありますか?のように、再起動後に他のイベントをトリガーしますか? それは単純な 'WC_Subscriptions_Manager :: activate_subscriptions_for_order()' または '$ order-> update_status( 'completed');'でしょうか? –

+0

いいえ、そうは思いませんが、もちろんテストは常に必要です。活性化関数はすべての依存関係を処理する必要があります。その再アクティブ化についてもtry/catchを実行してください。 あなたが私の答えが好きなら、私にupvoteしてください。私は私の評判のポイントを取得しようとしています。 :) – Difster

関連する問題