web-dev-qa-db-ja.com

Paypalの購入が成功したかどうかを確認するEasy Digital Download Plugin

私は簡単なデジタルダウンロードで対応する製品を購入するたびに何かをしようとしています。私は簡単なデジタルダウンロードで行われたすべての購入のための自動ランダム割引コードを追加する必要があるとしましょう。私は別のフックで試しました。しかしそれでも、Paypalの成功プロセスに関する正しいコールバックが得られませんでした。私はそれがPaypalの成功コールバックに警告するようにしましょう。

私がやっているのはこんな感じです

if($Paypal == 'success') {
//do something
} else {
//do something
}
function pw_edd_on_complete_purchase($payment_id) {

    // Basic payment meta
    $payment_meta = edd_get_payment_meta($payment_id);
    ?>
    <script type="text/javascript">
        alert("this is for payment");
    </script>
    <?php

    // Cart details
    //$cart_items = edd_get_payment_meta_cart_details($payment_id);

    // do something with payment data here
}

add_action('edd_complete_purchase', 'pw_edd_on_complete_purchase');

しかし、私はこれを行う方法がわからない。私はギフトカードとして名前が5ドルと言わせる製品を持っています。ユーザがこのギフトカードを購入した場合、彼/彼女は将来他の製品を購入するためのランダムな割引コードを受け取る。誰がどのフックが上記の基準を達成しているのか教えてもらえますか?

どんな提案でも素晴らしいことでしょう

1

edd_add_discount()関数を使用して、コールバック関数内で割引コードを生成できるはずです。この関数の詳細については、こちらをご覧ください ここではEDD Codex 関数に渡す必要がある特定のデータを確認します。

ただし、edd_complete_purchaseは適切なアクションではない可能性があります。特定の支払いタイプ(Paypal)が正常に請求されたときに特定のコードを生成したい場合only、代わりにedd_before_payment_status_changeにフックすることができます。これはedd_update_payment_status()で呼び出されます。これはEDD Codex here でも確認でき、edd_add_discount()内の$new_status'published'である場合にのみedd_update_payment_status()を実行できます'failed'または'pending')の代わりに、成功した支払い。

1
George G.