web-dev-qa-db-fra.com

Téléchargements Easy Digital (EDD) - Impossible de consigner les e-mails d'accusé de réception

J'essaie de consigner dans la base de données le courrier électronique du reçu d'achat envoyé par le plug-in EDD. Mais je suis incapable de le faire.

Le plug-in personnalisé qui enregistre les e-mails est raccordé à l'attache wp_loaded et filtre tous les e-mails à l'aide du filtre suivant.

add_filter( 'wp_mail', array( $this, 'log_email' ) );

Mais les e-mails de confirmation d'achat ne sont pas enregistrés.

Remarque: Le plug-in personnalisé enregistre les autres courriels envoyés. Exemple, si j'utilise le plug-in WP Mail SMTP pour envoyer un courrier électronique test, ce dernier est parfaitement connecté à la base de données.

J'ai débogué pour voir si mon hook est appelé ultérieurement, mais j'ai constaté qu'EDD envoie les e-mails d'accusé de réception via le hook init.

J'ai ensuite débogué et constaté que mon plugin est pas accroché à la variable globale $ wp_filter.

var_dump( $wp_filter['wp_mail'] );

Référence: Séquence d'accroche de WordPress Action

Toute suggestion est grandement appréciée.

2
Maria Daniel Deepak

Le hook wp_loaded est déclenché après le hook init.

Donc, au moment où vous ajoutez votre filtre, le filtre est déjà appelé par EDD.

Vous pouvez changer votre point d'ancrage en init et utiliser une priorité élevée ou utiliser un point d'ancrage antérieur tel que plugins_loaded.

0
Sudar