charinchi
フォーラムへの返信
-
フォーラム: 使い方全般
返信が含まれるトピック: ユーザー関連の各自動送信メールの加工ができない@aoixtreme さま、ご連絡ありがとうございます。
承認待ちというのは、承認されないとここに投稿されないものと理解いたしました。
拝見できなくてとても残念です。何がトリガーで承認待ちが起こるのでしょうか・・・
ぜひ拝見したいのですが残念です・・・フォーラム: 使い方全般
返信が含まれるトピック: パスワード10文字未満のアラートが表示されない@shokun0803 さま、アドバイスいただけまして大変助かります。有難う御座います。
これ以外の問題もあって日中ずっと色んな調査やテストをおこなっており、その中で本件についてあるプラグインの操作手順で偶然性が重なって起こっていたことがわかりました。
ひとまず回避できましたが出口が見えず、他の問題と共に七転八倒しておりました。
しかしながら、稼働しているのでひとまずは良いのですが、コードに不備があってはいけないので教えて頂いたコード変更を明日以降試してみます。また投稿させて頂きます。取り急ぎご連絡いたします。フォーラム: テーマ
返信が含まれるトピック: 会員登録ページが表示されない投稿されている以下のURLを開きました。
https://demo.outtheboxthemes.com/#shopstarしかし、右上に「SIGN IN REGISTER」というリンクも文字も存在しません。
よって、「SIGN IN REGISTER」をクリックすることができないため、残念ながら質問者さんのおっしゃる現象が確認できません。フォーラム: テーマ
返信が含まれるトピック: 有料のテーマについて@ishitaka さんのおっしゃっている通りです。
WordPressのテーマは色んな業者が独自に作って販売しています。このShopstarも海外の業者が制作・販売していますので、この業者へ質問してください。
問い合わせページは以下にありました。
https://www.outtheboxthemes.com/contact-us/フォーラム: テーマ
返信が含まれるトピック: 親テーマと子テーマの設定方法についてこんにちは。
書かれてある文章からAtrasとはWordPressのテーマのことですね。
以下のことでしょうか。
https://powertraveler.jp/wp-atlas/質問者さんが言っているとおり、wardpressをインストールした時点では登録(インストール)されてはいないんです。インストールした直後の純正ではないテーマだからです。
ダウンロードしてパソコンに保存しておかないとこのテーマのインストールはできません。
お買いになったAtrasのテーマのデータをまずはパソコンに保存してください。
そうするとインストールができて、あなたのWordPressサイトはAtrasで運営できます。フォーラム: 使い方全般
返信が含まれるトピック: 新規会員登録できなくなり、直せない@ishitaka さま、引き続き誠にありがとうございます。
必要なURLを見てみました。
wp-login.php?action=lostpassword
となっています。
それが表示されたのは
wp-login.php?action=rp
というURLでした。
パスワード紛失画面とお伝えすればよかったのですね、済みません<(_ _)>そして、パスワード紛失画面用の、
$message .= network_site_url( "wp-login.php?action=lostpassword", 'login_post' ) . "\r\n";
で成功いたしました!その後の文章で単なるログインURLも登場しますので、そこにも以下のように使用させて頂きました。
$message .= network_site_url( "wp-login.php", 'login_post' ) . "\r\n";
「’login_post’」の記述はそのままで合っているのかわかりませんでしたので、ひとおまずそのままにしました。こちらも意図したとおりログイン画面URLが開きました。
@munyagu さま、@ishitaka さま、ご助力頂き本当に有難う御座いました。フォーラム: 使い方全般
返信が含まれるトピック: 新規会員登録できなくなり、直せないフォーラム: 使い方全般
返信が含まれるトピック: 新規会員登録できなくなり、直せない@ishitaka さま、お待たせいたしました、入れ替え作業をして新規会員登録を実際におこなってみました。
デバッグログを見てもエラーは出ておらず、これはいけると思ったのですが、
受信したメールでURLをクリックしたところ、違うページが開きました。ユーザー名またはメールアドレスを入力して、「新しいパスワードを取得」のボタンが表示している画面が開かないといけないですが、そのひとつ先の画面かな?と思う画面が開いておりました。
※補足
同じメールの中にある単なるログインURLのリンクを掲載する箇所では
もともとの内容を変更することなく、以下のままで正常にログイン画面が開いた。
$message .= network_site_url( "wp-login.php?" . $user_login, 'login' ) . "\r\n";
フォーラム: 使い方全般
返信が含まれるトピック: 新規会員登録できなくなり、直せないフォーラム: 使い方全般
返信が含まれるトピック: 新規会員登録できなくなり、直せないやはり稼働しませんでした。
「wp_new_user_notification_email(新規会員登録メール)」の文中に、
$message .= network_site_url( "wp-login.php?action=lostpassword" . $user_login, 'login' ) . "\r\n";
と、
$message .= network_site_url( "wp-login.php?" . $user_login, 'login' ) . "\r\n";
を記載しておりますが、下の方の単なるログイン画面が開くだけの方は正常にURLが開きました。
しかし、上の方はパスワードリセットをするURLが開くはずがログイン画面が開きました。
正常になっていた午前中のメールを見ると以下のURLになっていました。
https://mysite.jp/wordpress/wp-login.php?action=rp&key=pzUIu4lur2wyLjMVLTxa&login=username01
成功しなくなった今のURLは以下になっていました。
https://mysite.jp/wordpress/wp-login.php?action=lostpasswordusername01
このURLの記述部分である
network_site_url( "wp-login.php?action=lostpassword"
は、変更していないのですが何か間違ってしまったでしょうか。フォーラム: 使い方全般
返信が含まれるトピック: 新規会員登録できなくなり、直せない続けて本当に有難う御座います。
適用しましたが、なぜか新規会員登録時の自動メール(wp_new_user_notification_email)の方
のリセットURLを開いたら、リセットURLにならず、単なるログイン画面が表示されます。
ちょっと挙動をもう少し確認いたします。もともと、新規会員登録時の自動送信メールでエラーが起こりましたので、
「wp_new_user_notification_email」の方ということになります。
ここがmunyagu様のアドバイスのおかげで正常化したと思ったので、
「retrieve_password_message(パスワードリセット時の自動送信メール)」も
同じようにして正常化しようとしました。
※ですが、パスワードリセットメールのフックのほうは何もしなくても勝手に$user_loginを引き渡してくれる、というmunyagu様からの情報を忘れておりました。
「wp_new_user_notification_email(新規会員登録メール)」と内容を揃えたら逆にエラーになるのですね。済みません、このことを忘れておりました。「wp_new_user_notification_email(新規会員登録メール)」
で、
$user_login = rawurlencode( $user->user_login );
から、
$user_login = rawurlencode( $user->user_login );
へ変更し、
「retrieve_password_message(パスワードリセット時の自動送信メール)」のソースで、
$user_login = rawurlencode( $user->user_login );
を削除し、URL部分も
$message .= network_site_url( "wp-login.php?action=rp&key=$key&login=" . rawurlencode( $user_login ), 'login' ) . "\r\n";
へ戻したところ、デバッグログからエラーが消えました。
エラーは消えたのに、「wp_new_user_notification_email(新規会員登録メール)」のメール内の
$message .= network_site_url( "wp-login.php?action=lostpassword" . $user_login, 'login' ) . "\r\n";
が本来のURLが開いてくれない状態です。単なるログイン画面が表示されます。フォーラム: 使い方全般
返信が含まれるトピック: 新規会員登録できなくなり、直せないfunctions.phpを保存して、新規会員登録をおこなってみたところ、デバッグログを見ると、
以下のエラーが記載されておりました。
207行目は、「$user_login = rawurlencode( $user_data->user_login );」の行です。[27-Apr-2021 08:47:21 UTC] PHP Notice: Undefined variable: user_data in /usr/home/mysite/html/wordpress/wp-content/themes/mysite-child/functions.php on line 207 [27-Apr-2021 08:47:21 UTC] PHP Notice: Trying to get property 'user_login' of non-object in /usr/home/mysite/html/wordpress/wp-content/themes/mysite-child/functions.php on line 207
フォーラム: 使い方全般
返信が含まれるトピック: 新規会員登録できなくなり、直せない有難う御座います!<(_ _)>
ということは、パスワードリセットメールの方も同様に統一すれば良いと理解いたしました。
これで、今から新規会員登録とパスワードリセットの挙動を確認し、デバッグログも確認しようと存じます。/* パスワードリセット時に「登録者」へ送信されるメールをカスタマイズ */ /* 件名を設定 */ function custom_retrieve_password_title( $title, $user_login, $user_data ) { $title = 'パスワードリセットのお知らせ【サイト名】'; return $title; } add_filter( 'retrieve_password_title', 'custom_retrieve_password_title', 10, 3 ); /* メッセージを設定 */ function custom_retrieve_password_message( $message, $key, $user_login, $user_data ) { $user_login = rawurlencode( $user_data->user_login ); // アドバイスで追加した箇所 //サイト情報を取得 $blogname = stripslashes( get_option( 'blogname' ) ); //メッセージを編集 $message = $user_login . ' 様' . "\r\n"; $message .= "\r\n"; $message .= 'あなたのアカウントに対して、パスワードのリセットが要求されました。' . "\r\n"; $message .= "\r\n"; $message .= 'パスワードをリセットする場合は、次のリンクをクリックしてください。' . "\r\n"; $message .= "\r\n"; $message .= network_site_url( "wp-login.php?action=rp&key=$key&login=" . $user_login, 'login' ) . "\r\n"; $message .= $blogname; //メッセージを表示 return $message; } add_filter( 'retrieve_password_message', 'custom_retrieve_password_message', 10, 4 );
フォーラム: 使い方全般
返信が含まれるトピック: 新規会員登録できなくなり、直せないありがとうございます!!
フィルターフックによって自動的に引き渡す・引き渡さないという違いがあるのですか・・・。
メールの性格によって不必要なものはカットしてあると理解いたしました。
私は単にファンクション名のかっこの中に「, $user_login」と追加するだけで良いのかと思っていましたが、そんな機能分けがあるのですね・・・ソースを加工いたしました。明らかに関係しないところはカットして以下にまとめました。
ただ、このままですと「$user_name」と「$user_login」が同居していますが、どちらかに統一しなくて良かったでしょうか。
重ね重ね恐れ入ります。function custom_new_user_notification_email( $new_user_notification_email, $user, $blogname ) { $user_login = $user_data->user_login; // アドバイス頂き追加した $subject = '【' . $blogname . '】ユーザーアカウント発行のお知らせ'; $user_name = stripslashes( $user->user_login ); $user_email = stripslashes( $user->user_email ); $message = $user_name . ' 様' . "\r\n"; $message .= "\r\n"; $message .= '「' . $blogname . '」の' . "\r\n"; $message .= 'ユーザーアカウントを発行いたしましたので、お知らせします。' . "\r\n"; $message .= "\r\n"; $message .= 'ユーザー名 :' . $user_name . "\r\n"; $message .= 'メールアドレス:' . $user_email . "\r\n"; $message .= "\r\n"; $message .= "\r\n"; $message .= '・パスワードリセット(変更)URLは以下です。' . "\r\n"; $message .= network_site_url( "wp-login.php?action=lostpassword" . rawurlencode( $user_login ), 'login' ) . "\r\n"; $message .= "\r\n"; $message .= "\r\n"; $message .= '[2] ' . $blogname . ' へログインする' . "\r\n"; $message .= "\r\n"; $message .= 'パスワードのリセット(変更)が完了したら、以下の「ログインURL」を開いて' . "\r\n"; $message .= "\r\n"; $message .= '・ログインURLは以下です。' . "\r\n"; $message .= network_site_url( "wp-login.php" . rawurlencode( $user_login ), 'login' ) . "\r\n"; $message .= "\r\n"; //件名とメッセージを表示 $new_user_notification_email[ 'subject' ] = $subject; $new_user_notification_email[ 'message' ] = $message; return $new_user_notification_email; } add_filter( 'wp_new_user_notification_email', 'custom_new_user_notification_email', 10 , 3 );
- この返信は1年、 2ヶ月前にcharinchiが編集しました。
フォーラム: 使い方全般
返信が含まれるトピック: 新規会員登録できなくなり、直せないご回答まことに有難う御座います。
自身のソースともともとのソースも見たのですが、
$user_login = $user_data->user_login;
この記述が見つからない状況です。
今回のソースは以下のサイトのソースをカスタマイズして作成しておりますが、
会員登録時のメールにはもともとパスワードリセット用のURLもログインURLもありませんでしたが、
当方は文中に必要だったため、別のパスワードリセットメールのソースから
動的リンク記述部分を複製移植しました。
よく見ると、ユーザー名の変数名が違っていますね・・・
新規会員登録の方は「$user_name」となっているのに、パスワードリセットの方は「$user_login」となっています。
なぜ同じユーザー名なのに変数名を違うものにしているのでしょうか・・・
同じ著者が同じページで書いているのにわざわざ違う変数名にするのには訳があるはずで、単にどちらのユーザー名も同じ名称にしただけでは何か問題があるに違いないのですが、それが何なのかわからない状況です・・・
単純に、「$user_login」と書かれてある箇所をすべて「$user_name」へ書き換えるだけで問題は出ないのでしょうか。https://mirai-creators.com/10496/
■上記URLの中で紹介されていた、管理者が新規会員登録して会員に届くメール(元ネタ)
/* 会員登録時に「登録者」へ送信されるメールをカスタマイズ */ function custom_new_user_notification_email( $new_user_notification_email, $user, $blogname ) { //件名を編集 $subject = '会員登録完了のお知らせ【サイト名】'; //ユーザー情報を取得 $user_name = stripslashes( $user->user_login ); $user_email = stripslashes( $user->user_email ); //メッセージを編集 $message = $user_name . ' 様' . "\r\n"; $message .= "\r\n"; $message .= $blogname . 'にご登録いただき、誠にありがとうございます。' . "\r\n"; $message .= '会員登録が完了いたしましたので、ご連絡を申し上げます。' . "\r\n"; $message .= "\r\n"; $message .= '下記の登録情報をご確認のうえ、サイトにログインしてください。' . "\r\n"; $message .= "\r\n"; $message .= 'ユーザー名:' . $user_name . "\r\n"; $message .= 'メールアドレス:' . $user_email; //件名とメッセージを表示 $new_user_notification_email[ 'subject' ] = $subject; $new_user_notification_email[ 'message' ] = $message; return $new_user_notification_email; } add_filter( 'wp_new_user_notification_email', 'custom_new_user_notification_email', 10 , 3 );
■↓は上記のソースを加工して作成したもの
function custom_new_user_notification_email( $new_user_notification_email, $user, $blogname ) { $subject = '【' . $blogname . '】ユーザーアカウント発行のお知らせ'; $user_name = stripslashes( $user->user_login ); $user_email = stripslashes( $user->user_email ); $message = $user_name . ' 様' . "\r\n"; $message .= "\r\n"; $message .= '「' . $blogname . '」の' . "\r\n"; $message .= 'ユーザーアカウントを発行いたしましたので、お知らせします。' . "\r\n"; $message .= "\r\n"; $message .= 'ユーザー名 :' . $user_name . "\r\n"; $message .= 'メールアドレス:' . $user_email . "\r\n"; $message .= "\r\n"; $message .= 'まずはじめに、以下の「パスワードリセット(変更)URL」の画面で' . "\r\n"; $message .= 'お客様独自のパスワードへ変更する手続きをおこないます。' . "\r\n"; $message .= "\r\n"; $message .= '・パスワードリセット(変更)URL' . "\r\n"; $message .= network_site_url( "wp-login.php?action=lostpassword" . rawurlencode( $user_login ), 'login' ) . "\r\n"; $message .= "\r\n"; $message .= "\r\n"; $message .= '[2] ' . $blogname . ' へログインする' . "\r\n"; $message .= "\r\n"; $message .= 'パスワードのリセット(変更)が完了したら、以下の「ログインURL」を開いて' . "\r\n"; $message .= 'ID(ご登録メールアドレス または ユーザー名)と変更したパスワード、' . "\r\n"; $message .= 'を入力してログインします。' . "\r\n"; $message .= "\r\n"; $message .= '・ログインURL' . "\r\n"; $message .= network_site_url( "wp-login.php" . rawurlencode( $user_login ), 'login' ) . "\r\n"; $message .= "\r\n"; //件名とメッセージを表示 $new_user_notification_email[ 'subject' ] = $subject; $new_user_notification_email[ 'message' ] = $message; return $new_user_notification_email; } add_filter( 'wp_new_user_notification_email', 'custom_new_user_notification_email', 10 , 3 );
■ちなみに、上記URLで紹介されていた、パスワードリセットメールのソース(元ネタ)
※ここから動的リンクの記載部分を複製移植しました。それが原因でユーザー名の違いが起こっているのですね・・・/* パスワードリセット時に「登録者」へ送信されるメールをカスタマイズ */ /* 件名を設定 */ function custom_retrieve_password_title( $title, $user_login, $user_data ) { $title = 'パスワードリセットのお知らせ【サイト名】'; return $title; } add_filter( 'retrieve_password_title', 'custom_retrieve_password_title', 10, 3 ); /* メッセージを設定 */ function custom_retrieve_password_message( $message, $key, $user_login, $user_data ) { //サイト情報を取得 $blogname = stripslashes( get_option( 'blogname' ) ); //メッセージを編集 $message = $user_login . ' 様' . "\r\n"; $message .= "\r\n"; $message .= 'あなたのアカウントに対して、パスワードのリセットが要求されました。' . "\r\n"; $message .= "\r\n"; $message .= 'もしこのリクエストが間違いだった場合は、このメールを無視してください。' . "\r\n"; $message .= '何も操作をしなければ、これまでのパスワードがそのまま使用できます。' . "\r\n"; $message .= "\r\n"; $message .= 'パスワードをリセットする場合は、次のリンクをクリックしてください。' . "\r\n"; $message .= 'パスワード変更画面にアクセスしますので、新しいパスワードを入力してください。' . "\r\n"; $message .= "\r\n"; $message .= network_site_url( "wp-login.php?action=rp&key=$key&login=" . rawurlencode( $user_login ), 'login' ) . "\r\n"; $message .= "\r\n"; $message .= $blogname; //メッセージを表示 return $message; } add_filter( 'retrieve_password_message', 'custom_retrieve_password_message', 10, 4 );