web-dev-qa-db-fra.com

Vérifiez que l'achat Paypal est réussi ou non dans le plugin Easy Digital Download

J'essaie de faire quelque chose pour chaque achat du produit correspondant en téléchargement numérique facile. Disons que je dois ajouter le code de réduction automatique aléatoire pour chaque achat effectué en téléchargement numérique facile. J'ai essayé avec différents crochets. Mais toujours je n'ai pas reçu le rappel correct sur le processus de succès de Paypal. Permettez-moi de le rendre alerte sur le rappel de succès de Paypal.

ce que j'essaye est quelque chose comme ça

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');

Mais je ne sais pas comment faire cela. J'ai le produit qui s'appelle comme carte-cadeau, disons 5 $. Si l'utilisateur a acheté cette carte cadeau, il/elle obtiendra le code de remise aléatoire pour l'achat d'un autre produit à l'avenir. Quelqu'un peut-il me dire quel crochet remplit les critères ci-dessus?

Toute suggestion serait super merci

1
Vignesh Pichamani

Vous devriez pouvoir générer des codes de réduction dans votre fonction de rappel en utilisant la fonction edd_add_discount(). Vous pouvez en apprendre davantage sur cette fonction ici sur le codex EDD pour voir quelles données spécifiques vous devez transmettre à la fonction.

Cependant, edd_complete_purchase pourrait ne pas être la bonne action à prendre. Si vous seulement souhaitez que des codes spécifiques soient générés lorsque des types de paiement spécifiques (Paypal) sont chargés, vous souhaiterez peut-être vous connecter à edd_before_payment_status_change. Ceci est appelé dans edd_update_payment_status(), que vous pouvez également voir sur le codex EDD ici , et devrait vous permettre d’exécuter uniquement edd_add_discount() si $new_status dans edd_update_payment_status() est 'published' ( ou autrement pour un paiement réussi, au lieu de 'failed' ou 'pending').

1
George G.