1

次のガイドを使用しています。

http://developer.ninjaforms.com/codex/custom-server-side-validation/

私のコード(忍者フォームバージョン3.3.7):

add_filter( 'ninja_forms_submit_data', 'my_ninja_forms_submit_data' );

function my_ninja_forms_submit_data( $form_data ) {

    $errors = [
      'form' => [
        'my-error' => __( 'An unexpected error occurred.', 'my-plugin' ),
      ]
    ];

    $response = [
        'errors' => $errors,
    ];

    echo wp_json_encode( $response );
    wp_die(); // this is required to terminate immediately and return a proper response
}

JSON が問題なく送信されていることがわかりますが、フロントエンドでは、忍者フォームの「送信」ボタンに引き続き「処理中」と表示されます。足りないものはありますか?

4

1 に答える 1

1

忍者フォームの Web サイトで提供されているコードも機能しませんでした。

JSONエンコーディングなしで応答を返す必要があることがわかりました。また、「フィールドエラー」だけで「フォームエラー」を表示できませんでした。完璧ではありませんが、機能します:

add_filter( 'ninja_forms_submit_data', 'my_ninja_forms_submit_data' );

function my_ninja_forms_submit_data( $form_data ) {

  $errors = [
    'fields' => [
      '5' => __( 'An unexpected error occurred.', 'my-plugin' ),
    ]
  ]; // '5' is field's id.

  $response = [
    'errors' => $errors,
  ];

  return $response;
}
于 2019-01-12T15:05:46.230 に答える