2

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

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

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

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

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

4

1 回答 1

5

你可以使用ninja_forms_submit_data钩子来做到这一点。在那里,您可以通过变量使用其 id 访问字段的值$form_data。将字段的错误消息添加到$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;
}
于 2018-06-07T13:54:15.600 回答