web-dev-qa-db-ja.com

Easy Digital Downloads(EDD) - 購買領収書Eメールを記録できませんでした

EDDプラグインによって送信された購入確認Eメールをデータベースに記録しようとしています。しかし、それはできません。

電子メールを記録するカスタムプラグインはwp_loadedフックにフックされていて、以下のフィルタによってすべての電子メールをフィルタ処理します。

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

ただし、購入確認メールは記録されません。

注:カスタムプラグインは、送信された他のEメールを記録します。たとえば、テストEメールを送信するために WP Mail SMTPプラグイン を使用すると、そのEメールは完全にデータベースにログインします。

後でフックが呼び出されるかどうかを確認するためにデバッグしましたが、EDDがinitフックを介して購入確認メールを送信することがわかりました。

私はさらにデバッグし、私のプラグインがグローバル$ wp_filter変数に not フックされていることを発見しました。

var_dump( $wp_filter['wp_mail'] );

参照: WordPressアクションフックシーケンス

任意の提案は大歓迎です。

2

wp_loadedフックはinitフックの後に起動されます。

そのため、フィルタを追加するときまでに、フィルタはすでにEDDによって呼び出されています。

あなたのフックをinitに変更して高い優先度を使うか、plugins_loadedのような以前のフックを使うことができます。

0
Sudar