Connexion
Commencer

Documentation Easy Digital Downloads

Documentation, matériel de référence et tutoriels pour Easy Digital Downloads 

Ajouter du code personnalisé après la complétion d'une commande

Dans Easy Digital Downloads 3.2.0, les actions après commande ont été introduites pour remplacer les actions après paiement dépréciées. Ce hook offre aux développeurs un moyen de traiter des actions intensives lorsqu'un paiement est complété sans affecter la vitesse et les performances de l'utilisateur final lors de l'achat. Ceci est un guide sur la façon d'ajouter une action après commande.

Introduction aux actions après commande

Si vous cherchez à effectuer des actions supplémentaires lorsqu'une commande est marquée comme « terminée », nous vous encourageons à utiliser le hook edd_after_order_actions au lieu du hook edd_complete_purchase. Quelle est la différence entre ces deux hooks ?

  • edd_complete_purchase – S'exécute pendant le processus d'achat après que l'utilisateur a cliqué sur le bouton « Finaliser l'achat » et avant que la page « Confirmation de l'achat » ne soit chargée. Ce hook doit être utilisé pour les tâches « critiques », car il aura un impact sur le temps perçu par l'utilisateur pour finaliser son achat. Des exemples d'utilisation de ce hook devraient être des tâches telles que la création de clés de licence, la génération d'abonnements, ou tout ce que l'utilisateur doit avoir visible sur la page de reçu.
  • edd_after_order_actions – S'exécute environ 30 secondes après la complétion de l'achat, via le système WP_Cron. Ce hook doit être utilisé pour effectuer des appels API supplémentaires, des requêtes de base de données coûteuses et des tâches qui devraient être considérées comme non critiques pour que l'utilisateur finalise son achat. De bons exemples sont l'ajout d'utilisateurs à des listes de diffusion, le calcul de statistiques pour un utilisateur, la mise à jour de caches, etc.

Quels arguments sont passés au hook ?

Le hook edd_after_order_actions envoie trois arguments :

  • L'ID de la commande sous forme d'entier
  • L'objet EDD\Orders\Order
  • L'objet EDD_Customer

Quels statuts de commande sont inclus dans « terminé » ?

Easy Digital Downloads utilise le statut complete pour marquer une commande comme terminée. Si vous intégrez ou utilisez l'extension Recurring Payments, le statut edd_subscription est également considéré comme une commande « terminée ». Si vous souhaitez uniquement exécuter votre action pour l'achat initial (et ignorer les renouvellements d'abonnement), vous devrez vérifier que le $order->status a la valeur complete avant de continuer avec votre intégration.

Pourquoi cela nécessite-t-il WP_Cron ?

WP_Cron est un processus d'arrière-plan que votre site WordPress utilise pour accomplir des tâches sans impacter l'expérience de l'utilisateur lors de la visualisation de votre site. Lorsque du trafic est généré sur votre site, avant que la page ne soit complètement chargée, WordPress détermine s'il y a des tâches d'arrière-plan qui doivent être effectuées. S'il y en a, il lancera un processus d'arrière-plan pour gérer ces tâches en attente.

Que se passe-t-il si mon hébergeur désactive WP_Cron ?

Bien que nous fassions de notre mieux pour détecter si WP_Cron fonctionne, il peut arriver que nous ne puissions pas le détecter correctement. Si votre hébergeur ou votre serveur a désactivé WP_Cron ou l'a modifié pour qu'il s'exécute à une fréquence prédéterminée, vous devrez peut-être désactiver cette fonctionnalité manuellement. Il existe un filtre si vous choisissez de ne pas utiliser les crochets d'action après, auquel cas EDD se rabattra et effectuera les actions au moment de la complétion, et évitera le processus retardé.

AVIS : Étant donné que ce système d'actions après la commande dépend de WP_Cron, il ne doit pas être utilisé pour des choses considérées comme « critiques ». C'est simplement un moyen de décharger les intégrations coûteuses avec les API et les grands ensembles de données qui n'affectent pas directement les données d'achat.

Points clés concernant les actions après la commande

  • Déclenchement via WP_Cron
  • Peut être désactivé via un filtre (edd_use_after_payment_actions)
  • Par défaut, il est planifié 30 secondes après l'achat, mais cela peut être modifié via un filtre.
  • La table de base de données de la commande contient une colonne pour l'heure à laquelle les actions ont été complétées.

Y a-t-il un exemple ?

Nous avons créé un « modèle » pour l'intégration avec le crochet edd_after_order_actions dans notre bibliothèque WP Code. Il peut être consulté ici :

Migration de votre code depuis edd_after_payment_actions

Si vous vous intégriez précédemment au crochet edd_after_payment_actions, la bonne nouvelle est que la migration vers ce nouveau crochet plus efficace est assez facile.

La principale différence réside dans le changement du deuxième paramètre. Au lieu d'envoyer le paiement en tant qu'objet EDD_Payment, il enverra un objet Order.

Was this article helpful?

Commencez à vendre dès aujourd'hui !

Rejoignez plus de 50 000 propriétaires de boutiques avisés et commencez à utiliser le moyen le plus simple de vendre des produits numériques avec WordPress.

Copyright © 2025 Sandhills Development, LLC

[universally_switcher]