質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

1589閲覧

新規会員登録で保存したら保存完了画面が出ずに、白い画面に重大なエラーが発生した」と出ました・・・

JoeJay

総合スコア0

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

1クリップ

投稿2021/04/27 00:48

前提・実現したいこと

プログラミング初心者です。
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 );

宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

$user_name = stripslashes( $user->user_login );
user_loginをわざわざ$user_nameって言い換えているのに、
rawurlencode( $user_login )で未定義の変数を参照しているんだから、さもありなん。

$user_login = stripslashes( $user->user_login );
にするだけで直るかもね。

投稿2021/04/27 01:02

編集2021/04/27 01:06
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

JoeJay

2021/04/27 01:30

困っていたので本当に助かります、有難う御座います! メール本文の冒頭の「$user_name:」も、リンクURLの「$user_login」も、どちらもWordPress登録時の「ユーザー名」のことだから、どんな名称でも良いから同じ変数名に統一すれば良いのではないか、と私も思っていたのですが、ネット上で紹介されていたこのソースはわざわざ言い換える必要性が何かああるはずだから触ったら余計おかしくなると思って悶々としておりました。 他のソースと組み合わせて継ぎはぎパッチした部分があったので、もしかしてそれで辻褄が合わなくなっているだけかもしれないです。変数名を統一して影響がないのか継続して考えます。 ご助言助かっております。
guest

0

自己解決

新規会員登録の自動送信メールのフックは、パスワードリセットメールのフックと仕様が違うそうで、そもそも出来ないのだそうです。正しいソースがわからないうちはリンクは文中から削除することにします。有難う御座いました。

投稿2021/04/28 13:15

JoeJay

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問