带有错误句柄的自定义验证 Ninja 表单

Custom validation Ninja form with error handle

我在我的 WordPress 安装中使用 Ninja Form 插件。

我的表单有 3 个输入文本字段。

我需要在按下提交按钮后,通过检查输入的值是否存在于我的数据库中的自定义 table 中来验证此输入之一。

如果该值不存在,则不应发生任何事情(Ninja Form 保存表单),如果它存在,我需要添加 Ninja Form 错误并让用户更改输入以保存表单新值。

如何挂钩提交操作?我怎样才能在这个钩子中得到我需要的输入值?如果该值存在以防止表单保存,我如何添加 Ninja 表单错误?

您可以使用 ninja_forms_submit_data 挂钩来完成此操作。在那里,您可以通过变量 $form_data 使用其 id 访问字段的值。将字段的错误消息添加到 $form_data['errors'] 时,表单将不会被保存。

像这样(在 functions.php 中):

add_filter('ninja_forms_submit_data', 'custom_ninja_forms_submit_data');
function custom_ninja_forms_submit_data($form_data)
{
    $field_id = 2;
    $field_value = $form_data['fields'][$field_id]['value'];

    $exists = true; // Check your database if $field_value exists

    if($exists)
    {
        $form_data['errors']['fields'][$field_id] = 'Value already exists';
    }

    return $form_data;
}