代码之家  ›  专栏  ›  技术社区  ›  farinspace MikeAr

如何获取“忍者表单提交数据”和表单本身以返回错误响应?

  •  0
  • farinspace MikeAr  · 技术社区  · 8 年前

    我使用以下指南:

    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,但是在前端,忍者表单“提交”按钮将继续显示“处理”。有什么我遗漏的吗?

    1 回复  |  直到 8 年前
        1
  •  0
  •   Viesturs Knopkens    7 年前

    忍者表格网站上提供的代码对我也不起作用。

    我发现,您应该返回响应而不使用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;
    }
    
    推荐文章