@suzushiro7510

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

Wordpressのプラグインmwwpformのエラー文をまとめる際のfunction.phpの構文について

解決したいこと

Wordpressのメールフォームプラグインmwwpformで、生年月日や姓名の複数項目のエラー文をまとめる際に、姓名、フリガナ、生年月日などすべて機能させたい。
function.phpにどのように記載するべきか知りたいものです。

例)
mwwpformのエラー文をまとめるで検索した際に、ソースコードはよく公開されているのですが、姓名、フリガナ、生年月日など複数の構文をfunction.phpに併記すると、Syntaxエラーが出るか、出なくても一つ目以降は機能しなくなります。

発生している問題・エラー

出ているエラーメッセージを入力

例)


または、問題・エラーが起きている画像をここにドラッグアンドドロップ

該当するソースコード

function.php
function add_mwform_validation_rule( $Validation, $data ) {
    $validation_message = '姓および名をご入力ください';
    if ( empty( $data['name1'] ) ) {
        $Validation->set_rule( 'name1', 'noempty', array( 'message' => $validation_message ) );
    } elseif ( empty( $data['name2'] ) ) {
        $Validation->set_rule( 'name2', 'noempty', array( 'message' => $validation_message ) );
    } 
    return $Validation;
}
add_filter('mwform_validation_mw-wp-form-1316', 'validation_rule', 10, 2);

function add_mwform_validation_rule( $Validation, $data ) {
    $validation_message = 'フリガナを全角カナでご入力ください';
    if ( empty( $data['kana1'] ) ) {
        $Validation->set_rule( 'kana1', 'noempty', array( 'message' => $validation_message ) );
    } elseif ( empty( $data['kana2'] ) ) {
        $Validation->set_rule( 'kana2', 'noempty', array( 'message' => $validation_message ) );
    } 
    return $Validation;
}
add_filter('mwform_validation_mw-wp-form-1316', 'validation_rule', 10, 2);

例)

自分で試したこと

2つまたは3つの構文の共通している先頭行と最終行等を3つをまとめて、入力したがSyntaxエラーが出ました。

0 likes

2Answer

Syntaxエラーの内容を記載してください。
エラーは問題に関する情報を提供するものです。そのエラーを読まないのが解決できない原因の一つです。
質問のテンプレートに「出ているエラーメッセージを入力」とあるのも、解決に必要だからです。
大抵は「エラーの内容を書きましょう」という回答がつくだけなので、スムーズに進めたいのであれば書いておくことをおすすめします。

さて、エラーの内容はわかりませんがパッと見た感じ2つの問題が見受けられます。
まず1つはadd_mwform_validation_ruleというfunctionが複数あることです。基本的に同じ名前のfunctionは複数作れません。
もうひとつはadd_filter()の2つ目の引数です。これは作ったfunctionを登録するものですが、名前が一致していません。

プラグインの事は詳しくないので基本的な文法に関しての回答になりますが、参考になれば幸いです。

参考情報

0Like

Comments

  1. @suzushiro7510

    Questioner

    ご回答いただき、ありがとうございます。また、エラーの内容についてもご指摘いただきありがとうございます。
    エラー内容の追記をしようとしていたところ、ご指摘のadd_mwform_validation_ruleについて、他にmy_mwform_validation_ruleという例もありましたので、コード最初のadd、myをage、hogoなどに変更することで当初必要としていました複数のコードを実働させる事ができました。phpについての基礎がないので、方法として正しいのかは甚だ疑問ですが、実働しているものとして解決としたいと思います。
    ありがとうございました。

補足ですが、MW WP Formで間違いないのでしたら2年前からEOLですので代替プラグインに変えた方が良いのでは?

もう一つ突っ込んでおきますが、WPプラグインを直接編集するのは推奨されません。
子プラグインを作り、そこからフックするのが良いです。

0Like

Comments

  1. @suzushiro7510

    Questioner

    ご回答いただき、ありがとうございます。MW WP Formが現状、別組織でメンテナンスのみになっていることは存じているのですが、送信前の確認画面の表示機能や、該当サイト作成時からいくつかのメールフォームをMW WP Formで実装済みという点から、期限を見ながら今回のメールフォームを制作した次第です。
    MW WP Formに似た別のプラグインは現状なさそうですので、いずれはcontactform7に移行することになるかなとは思っています。
    また、今回の質問は上記にある方法にて解決とさせていただきます。
    ありがとうございました。

Your answer might help someone💌