• 解決済 muro

    (@muromuro)


    MW WP Formのバージョンが2.3.5のときは正常だったのですが、2.4.1および2.4.2にアップデートしてから、mwformを使用している固定ページを開くと、下記のようなエラーメッセージが書かれたページが表示されるようになってしまいました。

    Fatal error: Call to protected method MW_WP_Form_Validation::set_rule() from context '' in /vagrant/example.com/wp-sys/wp-content/themes/example.com/functions.php on line 412

    functions.phpには下記のバリデーション設定用の関数を記述しており、これがエラーを起こしているようです。
    上記のエラーメッセージでline 412となっているのは、初めのset_ruleです。
    ただし初めのset_ruleだけがおかしいというわけではなく、set_ruleが何か一つ存在するだけでエラーになります。

    add_filter( 'mwform_validation_contact', 'mwform_validation_contact' );
    function mwform_validation_contact( $v ) {
    	$v->set_rule( '会社名', 'noEmpty' );
    	$v->set_rule( 'お名前', 'noEmpty' );
    	$v->set_rule( 'フリガナ', 'noEmpty' );
    	$v->set_rule( '郵便番号', 'zip' );
    	$v->set_rule( '電話番号', 'tel' );
    	$v->set_rule( 'FAX番号', 'tel' );
    	$v->set_rule( 'メールアドレス', 'noEmpty' );
    	$v->set_rule( 'メールアドレス', 'mail' );
    	$v->set_rule( 'メールアドレス(確認用)', 'noEmpty' );
    	$v->set_rule( 'メールアドレス(確認用)', 'mail' );
    	$v->set_rule( 'メールアドレス(確認用)', 'eq', array("target"=>"メールアドレス"));
    	$v->set_rule( 'プライバシーポリシー', 'required', array("message"=>"プライバシーポリシーに同意する必要があります。") );
    	$v->set_rule( 'お問い合わせ内容', 'noEmpty' );
    	return $v;
    }

    また、mwformを使用している固定ページの内容は下記の通りです。

    <section id="page_contact">
    	<h3 class="page_title">お問い合わせフォーム</h3>
    	[mwform key="contact" confirm="http://192.168.33.12/example.com/contact/confirm"]
    		<table>
    			<tr>
    				<th class="required">会社名</th>
    				<td>
    					<div>[mwform_text name="会社名"]</div>
    				</td>
    			</tr>
    			<tr>
    				<th class="required">お名前</th>
    				<td>
    					<div>[mwform_text name="お名前"]</div>
    				</td>
    			</tr>
    			<tr>
    				<th class="required">フリガナ</th>
    				<td>
    					<div>[mwform_text name="フリガナ"]</div>
    				</td>
    			</tr>
    			<tr>
    				<th>住所</th>
    				<td class="address">
    					<div class="zip">[mwform_zip name="郵便番号"]</div>
    					<div>[mwform_text name="住所1"]</div>
    					<div>[mwform_text name="住所2"]</div>
    				</td>
    			</tr>
    			<tr>
    				<th>電話番号</th>
    				<td>
    					<div class="tel">[mwform_tel name="電話番号"]</div>
    				</td>
    			</tr>
    			<tr>
    				<th>FAX番号</th>
    				<td>
    					<div class="tel">[mwform_tel name="FAX番号"]</div>
    				</td>
    			</tr>
    			<tr>
    				<th class="required">メールアドレス</th>
    				<td>
    					<div>[mwform_text name="メールアドレス"]</div>
    				</td>
    			</tr>
    			<tr>
    				<th class="required">メールアドレス<br />(確認用)</th>
    				<td>
    					<div>[mwform_text name="メールアドレス(確認用)"]</div>
    				</td>
    			</tr>
    			<tr>
    				<th class="required">お問い合わせ内容</th>
    				<td>
    					<div>[mwform_textarea name="お問い合わせ内容"]</div>
    				</td>
    			</tr>
    		</table>
    		<div class="check">[mwform_checkbox name="プライバシーポリシー" children="同意する"]</div>
    		<div class="button_wrap">
    			<div>[mwform_confirmButton value="確認画面"]</div>
    			<div><input type="button" class="reset" value="リセット" /></div>
    		</div>
    	[/mwform]
    </section>

    バリデーションの設定方法が変更になったのでしょうか?
    それとも他に修正しなければいけない点があるのでしょうか?

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • 2.3.5 から 2.4 にバージョンアップする過程でメソッドの整理を行ったのですが、そのときに set_rule のアクセス権を誤って変えてしまっていたようです。ご報告ありがとうございます。さきほど修正をいれたバージョン 2.4.3 をアップしましたのでご確認ください。

    トピック投稿者 muro

    (@muromuro)

    修正していただき、ありがとうございます。
    ページの読み込みもバリデーションも、無事行えるようになりました。

2件の返信を表示中 - 1 - 2件目 (全2件中)

トピック「MW WP Form functions.phpでバリデーション設定されているとエラーになる」には新たに返信することはできません。