エラー対処方法 PHP Fatal error: Uncaught TypeError: Argument 1 passed to cs_phpmailer_init() must be an instance of PHPMailer, instance of PHPMailer\PHPMailer\PHPMailer given, called in
今回のエラーはこれです。
ビジュアルコンポーザーを使ったテーマで、PHPのバージョンとWPのバージョンをアップしたら表示されました。
1 2 3 |
PHP Fatal error: Uncaught TypeError: Argument 1 passed to cs_phpmailer_init() must be an instance of PHPMailer, instance of PHPMailer\PHPMailer\PHPMailer given, called in /home/hogehoge/www/fugafuga.jp/wp-includes/class-wp-hook.php on line 303 and defined in /home/hogehoge/www/fugafuga.jp/wp-content/themes/theme_name/functions.php:248 Stack trace: #0 /home/hogehoge/www/fugafuga.jp/wp-includes/class-wp-hook.php(303): cs_phpmailer_init(Object(PHPMailer\PHPMailer\PHPMailer)) |
見てみると、functions.phpの248行目が怪しいですね。
対処方法
1 2 3 4 5 6 |
functions.phpの248行目 修正前) function cs_phpmailer_init(PHPMailer $mail) 修正後) function cs_phpmailer_init(PHPMailer\PHPMailer\PHPMailer $mail) |
これでOKでした。
WordPress5.5以降、PHPMailerクラスは/ wp-includes / PHPMailerのサブディレクトリに移動されたようです。
従って、PHPMailerの名前空間パスをその関数に変更する必要があったようです。
参考サイト:https://devs.tips/how-to-fix-wp-mail-smtp-phpmailer-error/
同じようなことで困っている方、ぜひお試し下さい。
公開日:2022年1月11日
最終更新日:2022年1月11日