HTMLメールにWordPressのパスワードリセットリンクを追加するにはどうすればよいですか?
P粉136356287
2023-09-02 13:52:43
<p>WP コアのパスワード リセット電子メールを HTML メールに置き換えようとしています。全体的にはうまく機能しており、メールは適切にフォーマットされており、正しく送信されています。ただし、リンクの動的リセットの実装は機能しません (ユーザー名も同様ですが、それは最も重要なことではありません) </p>
<p>テンプレートのfunctions.phpで次のコードを使用しました。</p>
<pre class="brush:php;toolbar:false;">add_filter( 'wp_mail_content_type','prefix_set_content_type' );
関数 prefix_set_content_type() {
"テキスト/html" を返します;
}
add_filter( 'パスワード取得メッセージ', 'パスワード取得メッセージ置換', 10, 2 );
function replace_retrieve_password_message( $message, $key, $user_login, $user_data ) {
$message = '<html...>多くの HTML コンテンツ (基本的にフォーマットされた電子メール)</html>'</pre>
<p>これを行うと、関数は 4 つのパラメータを予期しますが、2 つしか受け取らないため、致命的なエラーが発生します (バグレポートの電子メールに記載されています)。 $user_data と $key を省略するとエラーは消えますが、ダイナミック リンクの実装方法がまだわかりません...</p>
<p>このリンクを HTML に含めようとすると、リンクの半分しか送信されません (おそらく「""」のため): </p>
<pre class="brush:php;toolbar:false;">' . network_site_url( "wp-login.php?action=rp&key=$key&login=" . rawurlencode( $user_login ), 'ログイン' ) . '</pre>
<p>この問題を解決する方法について何かアイデアを持っている人はいますか?ありがとう。 </p>
行末に 2 ではなく 4 を入れます。
リーリーフック関数に必要な引数の数を add_filter() と add_action() に伝える必要があります。