【Snow Monkey Forms】遷移前ページからの引数引き渡しでのフォーム自動入力

0
いいねをした人: 居ません
  • このトピックには15件の返信、5人の参加者があり、最後にOlein_jpにより3年、 3ヶ月前に更新されました。
15件の投稿を表示中 - 1 - 15件目 (全16件中)
  • 投稿者
    投稿
  • #64488
    九州機電株式会社
    参加者
    34

    【お使いの Snow Monkey のバージョン】12.1.3
    【お使いの Snow Monkey Forms のバージョン】1.1.0
    【お使いのブラウザ】google chrome

    ### 実現したいこと

    お世話になります。
    商品詳細ページからお問い合わせフォームに遷移するときに、
    引数で値を引き渡して「商品名入力フォーム」に自動で商品名が入るようにしたいのですが、
    可能でしょうか?

    0
    いいねをした人: 居ません
    #64506
    長谷川 喜洋
    閲覧者
    27

    個人的によく使うので、JavaScript を使用した例を出させていただこうと思うのですが、九州機電株式会社さんは My Snow Monkey を用いたカスタマイズは可能でしょうか?

    商品ページから問い合わせフォームへのリンクにパラメーターを付与しておき、

    問い合わせページで JavaScript を読み込むという形ですが、可能そうでしょうか?

    1
    いいねをした人: 居ません
    #64517
    キタジマ タカシ
    参加者
    2254

    九州機電株式会社さん
    Snow Monkey Forms にはそのような機能はありません。今後の開発で機能追加できるか検討してみます!

    長谷川さん
    パラメーターで商品名を引き継ぐなら単純でできそうかな?と思ったのですが、ID から商品名をどうやって引っ張ってくるのかは気になります…!

    1
    いいねをした人: 居ません
    #64532
    長谷川 喜洋
    閲覧者
    27

    九州機電株式会社さん
    すみません、商品名ですね。
    商品IDのようなもので例を出してしまいました。
    キタジマさんのおっしゃるようにパラメーターで商品名を引き継ぎます。

    キタジマさん
    すみません、例が誤っていました。
    モールサービスやASPを使用していれば、商品番号だけ引き継いで改めてAPIから商品名や説明文、価格を読み込むということはしますが、今回は商品名でした。。。失礼しました。

    1
    いいねをした人: 居ません
    #64680
    キタジマ タカシ
    参加者
    2254

    長谷川さん
    なるほどです。情報ありがとうございます!

    1
    いいねをした人: 居ません
    #64792
    九州機電株式会社
    参加者
    34

    長谷川さん キタジマさん
    ご回答いただきありがとうございました。
    フォームページへのリンクにget引数をつけておいて、
    遷移後のページでその引数の値によってフォームに表示する商品名をJSで制御するという感じですね。
    ちょっとやってみます。

    2
    いいねをした人: 居ません
    #64810
    GONSY
    参加者
    807

    九州機電株式会社さん

    ベストな方法がみつかるといいですね!
    WooCommerce+Snow Monkey+Snow Monkey Forms(+JS)で、以下のコードをMy Snow Monkeyに追加して試してみたところ、商品名を入れることはできました。
    コードを貼って送信したら501が返ってきた(どこがNGですか?)ので、画像貼っておきます(汗)
    不慣れですみません ^^;

    参考コード

    2
    いいねをした人: 居ません
    #64845
    長谷川 喜洋
    閲覧者
    27

    GONSY さん

    僕はすべて JavaScript で処理したのでなんともなんですが、$custom_url で出来上がったリンク文字列はどのようになっていますでしょうか。

    また、本題からはそれますが、GETで受け取った値は念の為 htmlspecialchars するのをおすすめします。

     

    ちなみに JavaScript のときは encodeURIComponent で投げて decodeURIComponent で入力してたんですが、そのへんPHPだとどうでしょうか、PHPerの皆様。。。

    1
    いいねをした人: 居ません
    #64900
    キタジマ タカシ
    参加者
    2254

    WordPress には独自のサニタイズ関数があるので、できるだけそれを使うのが良いと思います。

    ちなみに JavaScript のときは encodeURIComponent で投げて decodeURIComponent で入力してたんですが、そのへんPHPだとどうでしょうか、PHPerの皆様。。。

    僕も詳しくないのですが URL エンコードするほうが安定するのですかねー。どうなんだろう。

    2
    いいねをした人: 居ません
    #64905
    長谷川 喜洋
    閲覧者
    27

    キタジマさん

    WordPress には独自のサニタイズ関数があるので、できるだけそれを使うのが良いと思います。

    すみません、ありがとうございます!

     

    GONSYさん

    キタジマさんに挙げていただいているやり方をご参考ください。
    申し訳ございません。

     

     URL エンコードするほうが安定するのですかねー。

    商品名って半角スペース区切りで記号や英数字が羅列されることも多いので、エンコードなしだといけたりいけなかったりしました。

    2
    いいねをした人: 居ません
    #64955
    GONSY
    参加者
    807

    長谷川さん
    キタジマさん

    フォローコメントありがとうございます。
    プログラムの作法ができていない状態でフォーラムにコードを書くのは良くないですね。
    失礼しました🙇‍
    実際に使っていないコードでしたが、検証したいと思います。

    ところで九州機電株式会社さんは解決できたのでしょうか?

    1
    いいねをした人: 居ません
    #65234
    九州機電株式会社
    参加者
    34

    GONSYさん
    WooCommerce関連で有益な情報ありがとうございました!

    長谷川さん
    キタジマさん
    データのサニタイズも大事ですね。
    ご教授いただいた内容も検証してみようと思います。
    ありがとうございました!

    2
    いいねをした人: 居ません
    #65305
    キタジマ タカシ
    参加者
    2254

    Snow Monkey Forms v1.2.0 で snow_monkey_forms/control/attributes というフィルターフックを追加しました。下記のページに説明を書いていますが、これを使えば URL クエリをもとに他ページの情報を初期値に設定することができます。良かったら試してみてください!

    2
    いいねをした人: 居ません
    #65323
    Olein_jp
    参加者
    545

    横から失礼します。

    これって、例えば単純に、表示しているページのタイトルをフォームの項目(以下コードではname=event)に自動入力させて!という場合、

    add_filter(
    	'snow_monkey_forms/control/attributes',
    	function( $attributes ) {
    		// name 属性値を持つブロックが対象
    		// name が fullname という名前のとき
    		if ( isset( $attributes['name'] ) && 'event' === $attributes['name'] ) {
    			$attributes['value'] = get_the_title( $post_id );
    		}
    		return $attributes;
    	}
    );

    で良いんでしょうか?実際に運用する場合には、他に何かしら分岐した方が良いとは思いますが…

    2
    いいねをした人: 居ません
    #65330
    キタジマ タカシ
    参加者
    2254

    Olein_jp さん
    このコードだと get_the_title( $post_id )$post_id が未定義なので get_the_title() とするのが正しいですかね。

    2
    いいねをした人: 居ません
15件の投稿を表示中 - 1 - 15件目 (全16件中)
  • トピック「【Snow Monkey Forms】遷移前ページからの引数引き渡しでのフォーム自動入力」には新しい返信をつけることはできません。

ドキュメント

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

ドキュメント

フォーラム

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

サポートフォーラム

よくあるご質問

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

よくあるご質問

お問い合わせ

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

お問い合わせ

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