带有错误句柄的自定义验证 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;
}
我在我的 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;
}