Snow Monkey Forms の送信完了メッセージが表示されない

0
いいねをした人: 居ません
13件の投稿を表示中 - 1 - 13件目 (全13件中)
  • 投稿者
    投稿
  • #52696
    長谷川 喜洋
    参加者
    27

    トピックを新しく立てる方は次の項目も記述してください(要望トピックの場合は不要です)。

    【お使いの Snow Monkey のバージョン】
    【お使いのブラウザ】Catalina GoogleChrome
    【当該サイトのURL】https://sora-clip.com/contact/

    ===

    いつもお世話になっております。

    こちらでおうかがいしてよいのかわからないのですが、SWELL に Snow Monkey Forms を設置した際、送信完了のメッセージが表示されません(プログレスアイコンは完了になり、メールは送信されます)。

    同じサイト内に複数の Snow Monkey Forms を設置していますが、全て同じ状況です。

    何か考えられる原因はございますでしょうか…?

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

    念の為確認ですが、フォームの編集画面で完了画面の内容が空になっているということはないでしょうか?

    0
    いいねをした人: 居ません
    #52708
    長谷川 喜洋
    参加者
    27

    テストメール、届きました。
    ありがとうございます。

    完了メッセージは入っております。

    他に何か見るところはございますでしょうか…

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

    こちらでも SWELL の環境を用意してみました。確かに完了メッセージが表示されないです…。調査してみます!

    0
    いいねをした人: 居ません
    #52713
    長谷川 喜洋
    参加者
    27

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

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

    修正方法はわかりませんが原因はわかりました!

    snow-monkey-forms/App/Model/Responser.php の中に send というメソッドがあり、そこで送信時のレスポンスを定義しています。で、編集画面で入力したメッセージはブロックでつくられているので、正しく表示されるように the_content フィルターを通してレスポンスを返すようにしています。

    return json_encode(
    	[
    		'method'   => $method,
    		'data'     => $this->data,
    		'controls' => $controls,
    		'action'   => $action,
    		'message'  => apply_filters( 'the_content', $message ), // ← ココ
    	],
    	JSON_UNESCAPED_UNICODE
    );

    この the_content フックを通らないようにすると表示されるようになりました。ということで、その先は調べていませんが、SWELL が the_content に何らかの独自コールバック関数を追加していて、それが影響しているという可能性があるかなぁと思いました。SWELL の中で add_filter('the_content',... している部分を1つずつ消していけば何かわかるかもしれません…。

    0
    いいねをした人: 居ません
    #52715
    長谷川 喜洋
    参加者
    27

    ありがとうございます…!

    swell>classes>SELL_THEME>Hooks>The_Content.php

    
    // フロントでのみ the_content へのフックを登録。
    if ( ! IS_ADMIN ) {
    // ショートコード展開(優先度:11)より前に実行する処理
    // add_filter( 'the_content', 'remove_p_by_shortcode', 10 );
    // add_filter( 'widget_text_content', 'remove_p_by_shortcode', 10 );
    
    //ショートコード展開より後に実行する処理
    // add_filter('the_content', [self::$instance, 'add_toc'], 12);
    add_filter('the_content', [self::$instance, 'remove_empty_p'], 12);
    // add_filter('the_content', [self::$instance, 'add_lazyload'], 12);
    // add_filter('the_content', [self::$instance, 'url_to_blog_card'], 12);
    
    // 過去ブロックとの後方互換性を保つための処理
    // require_once( T_DIRE.'/lib/block/replace_old_blocks.php' );
    }
    
    }

    ショートコード展開より後に実行する処理の add_toc、add_lazyload、url_to_blog_card を止めると表示されました!

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

    情報ありがとうございます!

    止めたコールバック関数にある if ( ! defined( 'IS_TOP' ) ) return; がアヤシいと思います! 何も返してないので、 return $content; にすると良いかもです。

    0
    いいねをした人: 居ません
    #52721
    長谷川 喜洋
    参加者
    27

    止めたコールバック関数にある if ( ! defined( ‘IS_TOP’ ) ) return; がアヤシいと思います! 何も返してないので、 return $content; にすると良いかもです。

    こちらでいけました!
    ありがとうございます!

    ちょっと了さんに相談してみます…フォームのあるページだけ remove_filter すればいいのかなと思ったのですが、こちらの処理は何をしているんだろう…

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

    ビンゴ!

    ちょっと了さんに相談してみます…フォームのあるページだけ remove_filter すればいいのかなと思ったのですが、こちらの処理は何をしているんだろう…

    そうですね、それが良いと思います。Snow Monkey Forms 以外にもこういう処理をしているプラグインは多いと思うので…。

    0
    いいねをした人: 居ません
    #52857
    長谷川 喜洋
    参加者
    27

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

    …しかし、フォームのページだけ remove_filter ってどうやるんですか…
    after_setup_theme で投稿状態の取得ってできるんでしょうか…

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

    コレ多分 REST の中の話なので、「フォームのページのとき」というよりは「REST のとき」になるのかなという気がします。でもそれよりも、if ( ! defined( 'IS_TOP' ) ) return; が問題なので、同じように「! defined( 'IS_TOP' ) のとき」に remove_filter すると良いかもしれません。

    でもそもそもこれは挙動が SWELL のバグっぽいので、return $content; するように直してもらうのがベストだと思います(もしそうすると SWELL の他の部分に問題がでるようだとそれも難しいかもしれませんが…)。

    0
    いいねをした人: 居ません
    #52889
    長谷川 喜洋
    参加者
    27

    なるほど・・・!

    ありがとうございます。
    お手数をおかけしました。

    クローズします!

    1
    いいねをした人: 居ません
13件の投稿を表示中 - 1 - 13件目 (全13件中)
  • トピック「Snow Monkey Forms の送信完了メッセージが表示されない」には新しい返信をつけることはできません。

ドキュメント

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

ドキュメント

フォーラム

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

サポートフォーラム

よくあるご質問

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

よくあるご質問

お問い合わせ

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

お問い合わせ

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