我在WordPress安装中使用Ninja Form插件。
我的表单有3个输入文本字段。
按下提交按钮后,我需要通过检查输入的值是否存在于我的数据库的自定义表中来验证其中一个输入。
如果该值尚未存在,则不会发生任何事情(Ninja Form保存表单),如果存在,我需要添加Ninja Form错误并让用户更改输入以便使用新值保存表单
如何挂钩提交操作?我怎样才能获得我需要的输入值?如果值存在,为了防止表单保存,如何添加Ninja Form错误?
答案 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;
}