Snow Monkey Formsの自動返信メールにログインユーザーの情報(ユーザー名、メールアドレス)を載せるタグを作成したい

0
いいねをした人: 居ません
13件の投稿を表示中 - 1 - 13件目 (全13件中)
  • 投稿者
    投稿
  • #142946
    花井 雅敏
    参加者
    4

    【お使いの Snow Monkey Forms のバージョン】 9.0.3

    ### 実現したいこと

    Snow Monkey Formsで作成したフォームを送信時の送られる自動送信メール(ユーザー向け、管理者向け)にログインしているユーザーがフォームを送信した場合に、自動返信メールにログインユーザーの情報(ユーザー名、メールアドレス)を送信したい。

    ### 発生している問題

    ### 試したこと

    // ログインユーザーの名前を取得するカスタムメールタグ
    add_filter('snow_monkey_forms/custom_mail_tag', function($value, $name) {
    	if ('login_user_name' === $name) {
    		$current_user = wp_get_current_user();
    		return $current_user->display_name;
    	}
    	return $value;
    }, 10, 2);
    
    // ログインユーザーのメールアドレスを取得するカスタムメールタグ
    add_filter('snow_monkey_forms/custom_mail_tag', function($value, $name) {
    	if ('login_user_email' === $name) {
    		$current_user = wp_get_current_user();
    		return $current_user->user_email;
    	}
    	return $value;
    }, 10, 2);

    のように書いて、現在のログインユーザーの情報を取得して、{login_user_name}{login_user_email}でメールに記載しようとしているのですが、空欄になってしまいます。

    // ログインユーザーの名前を取得するカスタムメールタグ
    add_filter('snow_monkey_forms/custom_mail_tag', function($value, $name) {
    	if ('login_user_name' === $name) {
    		$current_user = wp_get_current_user();
    		return "メールアドレス:". $current_user->display_name;
    	}
    	return $value;
    }, 10, 2);

    みたいな感じで書くと、「メールアドレス:」は表示されているので、フィルターフックを使ったカスタムタグは作成できているようなのですが、ログインユーザーの情報取得がカスタムタグ内だとうまく取得できてないようなのですが、解決方法ありますか?

    0
    いいねをした人: 居ません
    #142947
    花井 雅敏
    参加者
    4

    先ほどの投稿に補足させていただきます。

    過去に質問させていただ下記で回答いただいたメソッドを使っていて、機能していたのですが、いつのバージョンからかちょっと分からないのですが、最新バージョンでうまくいかないという状態です。

    0
    いいねをした人: 居ません
    #142951
    花井 雅敏
    参加者
    4

    その時に動いていたコードを貼っておきます。

    /**
     * {user_email} でフォームを送信した WordPress ユーザーのメールアドレスを返す
     */
    add_filter(
    	'snow_monkey_forms/custom_mail_tag',
    	function ($value, $name, $responser) {
    		if ('user_email' === $name) {
    			$meta = $responser->get_meta(); // フォームのメタ情報とフォーム送信者の情報を持った Meta クラスを取得
    			if ($meta) {
    				$user = $meta->get_sender(); // フォーム送信者の情報(WP_User)を取得
    				return $user->user_email;
    			}
    		}
    		return $value;
    	},
    	10,
    	3
    );
    
    /**
     * {username} でフォームを送信した WordPress ユーザーのユーザー名を返す
     */
    add_filter(
    	'snow_monkey_forms/custom_mail_tag',
    	function ($value, $name, $responser) {
    		if ('username' === $name) {
    			$meta = $responser->get_meta(); // フォームのメタ情報とフォーム送信者の情報を持った Meta クラスを取得
    			if ($meta) {
    				$user = $meta->get_sender(); // フォーム送信者の情報(WP_User)を取得
    				return $user->user_login;
    			}
    		}
    		return $value;
    	},
    	10,
    	3
    );
    0
    いいねをした人: 居ません
    #142967
    アバター画像キタジマ タカシ
    参加者
    2474

    えっと、現状、

    「ログインユーザーの名前を取得するカスタムメールタグ」
    「ログインユーザーのメールアドレスを取得するカスタムメールタグ」
    「{user_email} でフォームを送信した WordPress ユーザーのメールアドレスを返す」
    「{username} でフォームを送信した WordPress ユーザーのユーザー名を返す」

    の4つとも意図したとおりに動いていないということですかね?

    0
    いいねをした人: 居ません
    #142969
    花井 雅敏
    参加者
    4

    バラバラ書いてしまってすみません。

    全部、意図通り動いてないのはその通りです。

     

    「{user_email} でフォームを送信した WordPress ユーザーのメールアドレスを返す」
    「{username} でフォームを送信した WordPress ユーザーのユーザー名を返す」

    が、動かなくなってしまっているのに気が付いて、

    「ログインユーザーの名前を取得するカスタムメールタグ」
    「ログインユーザーのメールアドレスを取得するカスタムメールタグ」

    に書き直してみたのですが、
    それは以前相談させていただいたときにうまく動かないと教えていただいたコードと同じだったので、
    追加いただいたメソッドに対応した

    「{user_email} でフォームを送信した WordPress ユーザーのメールアドレスを返す」
    「{username} でフォームを送信した WordPress ユーザーのユーザー名を返す」

    に戻して確認したが、やはり動かず困っているという状態です。

    0
    いいねをした人: 居ません
    #142970
    花井 雅敏
    参加者
    4

    古すぎて参考にならないかもですが、
    古いデータを復元して確認したところ、
    Snow Mokey Formsのバージョンが、6.5.1の時は
    「{user_email} でフォームを送信した WordPress ユーザーのメールアドレスを返す」
    「{username} でフォームを送信した WordPress ユーザーのユーザー名を返す」
    が動いているのを確認しました。
    別のバージョンをダウンロードして、どこまで動いていたか確認します。

    0
    いいねをした人: 居ません
    #142971
    花井 雅敏
    参加者
    4

    今、GitHubのリリース(https://github.com/inc2734/snow-monkey-forms/releases)を最新から遡っていって、8.0.0では機能して、9.0.0になると機能しなくなるのを確認しました。

    何か分かりますでしょうか?

    0
    いいねをした人: 居ません
    #142982
    アバター画像キタジマ タカシ
    参加者
    2474

    9.0.0 で大きな変更は入力画面も確認画面や完了画面と同じように REST API で画面表示をおこなうようにしたことです。でも snow_monkey_forms/custom_mail_tag が動くのはメール送信時だからあんまり関係ないような気がしますね…。

    snow_monkey_forms/auto_reply_mailer/is_sendedsnow_monkey_forms/administrator_mailer/skip フィルターフックも使っているようなら教えてください。

    本日の午後から詳しく調査してみます。

    0
    いいねをした人: 居ません
    #142983
    花井 雅敏
    参加者
    4

    ご確認ありがとうございます。

    そうなんですね。なんでなんでしょうね。

    一応、WordPress 6.7.1まで上げてもSnow Monkey Forms 8.0.0は機能して9.0.3は機能しなかったので、
    コアの変更との相性でもなさそうですね。

    カスタマイズで使っているフィルターフックは、
    snow_monkey_forms/custom_mail_tag で他のタグも作っているのと
    snow_monkey_forms/validator/error_messageでエラーメッセージの書き換えをやっているくらいで、
    snow_monkey_forms/auto_reply_mailer/is_sended や
    snow_monkey_forms/administrator_mailer/skipは使っていませんでした。

    お手数ですが、よろしくお願いします。

    0
    いいねをした人: 居ません
    #142993
    アバター画像キタジマ タカシ
    参加者
    2474

    入力画面の裏側でユーザー情報を取得していたのに、入力画面を REST API 化したのでユーザー情報が入らないようになっていたみたいです(REST API は普通に通信するだけでは非ログイン状態として扱われる)。

    REST API にログイン情報を渡す処理を追加してみようと思いますので、それでもう一度試してみていただけたらと思います。
    今からアップデート作業を行います。リリース完了したらまた書き込みます。

    0
    いいねをした人: 居ません
    #142994
    花井 雅敏
    参加者
    4

    検証ありがとうございます。

    REST API化でそんな影響があるんですね。

    了解しました。

    アップデート版が出ましたら、試させていただきます。

    0
    いいねをした人: 居ません
    #142996
    アバター画像キタジマ タカシ
    参加者
    2474

    今リリースしました!アップデートして確認をお願いします!

    1
    いいねをした人:
    #143000
    花井 雅敏
    参加者
    4

    Snow Monkey Forms 9.0.4にしたところ、
    無事にユーザーIDもメールアドレスも
    タグで取得されて表示されるようになりました。

    ありがとうございます!
    助かりました。

    解決したので、トピック閉じさせていただきます。

    1
    いいねをした人:
13件の投稿を表示中 - 1 - 13件目 (全13件中)
  • トピック「Snow Monkey Formsの自動返信メールにログインユーザーの情報(ユーザー名、メールアドレス)を載せるタグを作成したい」には新しい返信をつけることはできません。

ドキュメント

Snow Monkey の設定方法やマニュアルを掲載しています。

ドキュメント

フォーラム

Snow Monkey の使い方やカスタマイズについてのご質問・ご要望等はサポートフォーラムで行っています。サポートフォーラムは誰でも閲覧できますが、書き込みできるのは Snow Monkey 購入者のみとなります。

サポートフォーラム

よくあるご質問

Snow Monkey のサービスについて不明な点がある場合は、まずはよくあるご質問をご確認ください。

よくあるご質問

お問い合わせ

よくあるご質問を見ても解決しなかった場合、試用版の申請については問い合わせフォームからお願いいたします。

お問い合わせ

Snow Monkey は Gutenberg ブロックエディターに対応した 100%GPL の WordPress テーマです。拡張性を意識した開発をおこなっており、カスタマイザーとブロックでスピーディーにサイトを立ち上げるだけでなく、CSS やフックを駆使した高度なカスタマイズにも柔軟に対応できます。