前提・実現したいこと
プログラミング初心者です。
WordPress 5.6.3 環境。子テーマにfunctions.phpを作ってそこにソースを仕込み中。
WordPressサイトのユーザーを登録したりメールアドレスやパスワードを変更したりする際に、WordPressから自動送信されるメールの標題と本文、差出人も差出メールアドレスを独自の内容にしたい。
また、テスト環境から本番サーバへAll-in-One WP Migrationで一発引っ越しする際にも、このカスタマイズがそのまま使用できるようにするため、メール本文に登場するURLリンクやサイトURLやサイト名は変数名にしたい。
ネット上にあるソースを加工して仕込んでいる最中です。
ここに質問の内容を詳しく書いてください。
管理者権限でダッシュボードから新規会員登録をしようとして入力後に保存ボタンを押したら、真っ白い画面に少々のエラー文章が表示されてしまいました。
エラーメッセージ
「このサイトで重大なエラーが発生しました。対応手順については、サイト管理者のメール受信ボックスを確認してください。
WordPress でのデバッグをさらに詳しく見る。」
デバッグでエラー箇所を見つけるのだと知り、エラー箇所と内容を見つけましたが未定義の変数と書かれてありますが、どう修正したらよいでしょうか(下の方にエラーを示すソースを掲載)。
また、以下のソースでサイト名が変数名にされていなかったので、
php
1function custom_mail_from_name( $email_from ) { 2 return 'MySiteName'; 3}
以下へ変更したところ、今回のエラー画面が表示されたタイミングだったのですが、どこが間違っているでしょうか。
「return」のあとにカンマで囲んでいるのが変数名だから要らないのでしょうか。それを試したいのですがダッシュボードにログインできなくなるのが怖くて試せずにおります。
php
1function custom_mail_from_name( $email_from, $blogname ) { 2 return '$blogname'; 3}
最後にもう一点ですが、ソース中の「add_filter」という記述の最後尾に「, 10 , 3 」という数字があるのですが、これは何の意味があるのでしょうか。
以上、お手数をお掛けして申し訳ございません。何卒宜しくお願いいたします。
発生している問題・エラーメッセージ
エラーメッセージ
「このサイトで重大なエラーが発生しました。対応手順については、サイト管理者のメール受信ボックスを確認してください。
WordPress でのデバッグをさらに詳しく見る。」
logに書かれた内容
1[26-Apr-2021 08:05:16 UTC] PHP Notice: Undefined variable: user_login in /usr/home/myacout/html/wordpress/wp-content/themes/mytheme-child/functions.php on line 155 2[26-Apr-2021 08:05:16 UTC] PHP Notice: Undefined variable: user_login in /usr/home/myacout/html/wordpress/wp-content/themes/mytheme-child/functions.php on line 181
該当のソースコード
php
1/* 送信元のメールアドレスをカスタマイズ */ 2function custom_mail_from( $email ) { 3 return 'contact@mysite.jp'; 4} 5add_filter( 'wp_mail_from', 'custom_mail_from' ); 6 7/* 送信メールの差出人名をカスタマイズ */ 8function custom_mail_from_name( $email_from ) { 9 return 'MySiteName'; 10} 11add_filter( 'wp_mail_from_name', 'custom_mail_from_name' ); 12 13function custom_new_user_notification_email( $new_user_notification_email, $user, $blogname ) { 14 15$subject = '【' . $blogname . '】ユーザーアカウント発行のお知らせ'; 16 17$user_name = stripslashes( $user->user_login ); 18$user_email = stripslashes( $user->user_email ); 19 20$message = $user_name . ' 様' . "\r\n"; 21$message .= "\r\n"; 22$message .= '「' . $blogname . '」の' . "\r\n"; 23$message .= 'ユーザーアカウントを発行いたしましたので、お知らせします。' . "\r\n"; 24$message .= "\r\n"; 25$message .= 'ユーザー名 :' . $user_name . "\r\n"; 26$message .= 'メールアドレス:' . $user_email . "\r\n"; 27$message .= "\r\n"; 28$message .= 'まずはじめに、以下の「パスワードリセット(変更)URL」の画面で' . "\r\n"; 29$message .= 'お客様独自のパスワードへ変更する手続きをおこないます。' . "\r\n"; 30$message .= "\r\n"; 31$message .= '・パスワードリセット(変更)URL' . "\r\n"; 32$message .= network_site_url( "wp-login.php?action=lostpassword" . rawurlencode( $user_login ), 'login' ) . "\r\n"; 33$message .= "\r\n"; 34$message .= "\r\n"; 35$message .= '[2] ' . $blogname . ' へログインする' . "\r\n"; 36$message .= "\r\n"; 37$message .= 'パスワードのリセット(変更)が完了したら、以下の「ログインURL」を開いて' . "\r\n"; 38$message .= 'ID(ご登録メールアドレス または ユーザー名)と変更したパスワード、' . "\r\n"; 39$message .= 'を入力してログインします。' . "\r\n"; 40$message .= "\r\n"; 41$message .= '・ログインURL' . "\r\n"; 42$message .= network_site_url( "wp-login.php" . rawurlencode( $user_login ), 'login' ) . "\r\n"; 43$message .= "\r\n"; 44 45//件名とメッセージを表示 46$new_user_notification_email[ 'subject' ] = $subject; 47$new_user_notification_email[ 'message' ] = $message; 48return $new_user_notification_email; 49} 50add_filter( 'wp_new_user_notification_email', 'custom_new_user_notification_email', 10 , 3 );
宜しくお願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/27 01:30