回答編集履歴

1 追記。

CHERRY

CHERRY score 20011

2018/02/27 12:38  投稿

Yahoo!知恵袋の[WordPressのフックについて教えてください。](https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13186422963) と同じ質問ですね。  
 
 
Teratailのヘルプの「[他のサービスにも質問投稿をしたい(してしまった)](https://teratail.com/help#posted-otherservice)」に  
> teratailでは、マルチポスト*の推奨はしていません。  
とありますので、ご注意ください。  
 
----  
 
各機能の中で do_action( 'HOOK_NAME' ) でフックを実行させている部分や add_action() や add_filter() 等でフックを追加している部分を探す必要があります。
その部分があれば、対象部分に対して、フックを使って処理を入れ替えたり、割り込ませることができますが、この記載がない場合は、フックで処理を変更することはできません。
前後に見つからない場合は、フックが見つかるまで、遡って探してみる必要があります。
----
PHPMailer は、[PHPMailer](https://github.com/PHPMailer/PHPMailer/)をそのまま使っているだけですので、PHPMailer 内では、WordPressのフックで、機能の一部を置き換えることはできません。
メール送信を置き換えるプラグイン(例えば、[WP Mail SMTP by WPForms](https://ja.wordpress.org/plugins/wp-mail-smtp/))と同じようにメール送信機能全体を置き換えるように制作する必要があります。
----
Contact Form 7 の場合、ファイル名を決めている部分を置き換えるため、フックで置き換えることができる場所を探していくとwpcf7_file_validation_filter フックで wpcf7_file_validation_filter 関数( [modules/file.php](https://plugins.trac.wordpress.org/browser/contact-form-7/trunk/modules/file.php#L73) )を入れ替えることができますので、この関数を丸ごと入れ替えることになると思います。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る