1

我正在使用以下指南:

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

我的代码(Ninja Forms 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

Ninja forms 网站中提供的代码也不适用于我。

我发现,您应该返回响应并且没有 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 回答