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'] );
任意の提案は大歓迎です。
wp_loaded
フックはinit
フックの後に起動されます。
そのため、フィルタを追加するときまでに、フィルタはすでにEDDによって呼び出されています。
あなたのフックをinit
に変更して高い優先度を使うか、plugins_loaded
のような以前のフックを使うことができます。