inc2734 / mw-wp-form

69 stars 46 forks source link

mwform_submitButtonにname="submitConfirm"を与えると完了画面に遷移できない #101

Closed BigWestGang closed 5 years ago

BigWestGang commented 5 years ago

現象

フォームタグのinput確認・送信にて、name="submitConfirm"を与えると、確認画面へは移動できるが、完了画面には移動できないという現象があるようです。 get_post_value_by_keyy( MWF_Config::CONFIRM_BUTTON )の取得の際に、値を検査するか フォームタグの挿入の際にsubmitConfirmは使用できないようにする等で問題は発生しなくなるかと思われます。

[mwform_submitButton name="submitConfirm" confirm_value="確認" submit_value="完了" ]

問題と思わしき箇所

    public function get_post_condition() {
        $backButton    = $this->get_post_value_by_key( MWF_Config::BACK_BUTTON );
        $confirmButton = $this->get_post_value_by_key( MWF_Config::CONFIRM_BUTTON );
                // confirmButtonの予約語でsubmitConfirmが使用されているため、
                // mwform_submitButtonにname="submitConfirm"を与えると
                // 常に確認画面に移動してしまう
        if ( $backButton ) {
            return 'back';
        } elseif ( $confirmButton ) {
            return 'confirm';
        } elseif ( ! $confirmButton && ! $backButton && $this->_is_valid_token() ) {
            return 'complete';
        }

        return 'input';
    }
inc2734 commented 5 years ago

MW WP Form は、確認画面を表示するべきか完了画面を表示するべきかを送信ボタンの name 属性で判定しています。submitConfirm で確認画面が表示されるのは仕様なので、別の name 属性を使用してください。

BigWestGang commented 5 years ago

仕様ということ分かりました。 余裕のある時で構わないのですが、プラグイン内の予約語等はドキュメント化していただけると助かります。 Snow Monkey頑張ってください、陰ながら応援しております。