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

时间:2018-01-02 15:02:45

标签: wordpress ninja-forms

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

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

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

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

如何挂钩提交操作?我怎样才能获得我需要的输入值?如果值存在,为了防止表单保存,如何添加Ninja Form错误?

1 个答案:

答案 0 :(得分:1)

您可以使用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;
}