サポート » 使い方全般 » プロフィール更新時に送信される通知メールの重複を解消したい

  • 解決済 dadadada

    (@uedajirou2015)


    先日、以下の質問をさせていただきました。

    プロフィール更新時に「ブログ上の表示名」を自動設定する方法

    ご回答いただいた内容で無事プロフィール更新時に
    「ブログ上の表示名」が自動設定されるようになりました。

    そこで新たに質問です。

    該当のサイトではWP-Membersプラグインをインストールして
    ユーザー登録は承認制の会員サイトにしています。

    ユーザーのプロフィール編集画面から”承認”にチェックを入れて更新すると
    ユーザーの承認が行われます。その際、パスワードがメールで通知されるのですが、
    通知メールが2通送られるようになってしまいました。
    1通目と2通目のパスワードは異なり、2通目のパスワードでログイン可能です。

    wp_insert_userだとメール送信がされないと書いてあったので、
    以下のように”wp_update_user”を”wp_insert_user”に変更してみました。

    function user_update_set_display_name( $user_id ) {
      if ( !empty( $_POST['nickname'] ) ) {
        $nickname = $_POST['nickname'];
        $args = array(
          'ID' => $user_id,
          'display_name' => $nickname
        );
        remove_action( 'profile_update', 'user_update_set_display_name' );
        wp_insert_user( $args );
      }
    }
    add_action( 'profile_update', 'user_update_set_display_name', 10, 2 );

    すると、メール通知は重複せず1通のみ送られるようになったのですが、
    今度は「ブログ上の表示名」が自動設定されなくなってしまいました。

    プロフィール更新時にブログ上の表示名を自動設定しつつ、
    通知メールの重複を解消する方法はございませんでしょうか?

    アドバイスいただけると大変助かります。
    どうぞよろしくお願い申し上げます。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • こんにちは

    WP Members プラグインが送信しているメールでしょうか?
    プラグインを使用したことがないので分からないのですが、下記コードではどうでしょうか?

    function my_pre_user_display_name( $name ) {
    	if ( isset( $_POST['nickname'] ) ) {
    		$name = sanitize_text_field( $_POST['nickname'] );
    	}
    	return $name;
    }
    add_filter( 'pre_user_display_name', 'my_pre_user_display_name' );
    トピック投稿者 dadadada

    (@uedajirou2015)

    ishitaka様

    今回もご回答ありがとうございます。
    期待通りの動きになりました。

    ブログ上の表示名が自動設定されつつ、
    通知メールも重複しないようになりました。

    本当にありがとうございました!

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「プロフィール更新時に送信される通知メールの重複を解消したい」には新たに返信することはできません。