如果我没记错的话,除非您指定一个POST提交,否则它将使用GET作为默认值
So使用$_POST
将返回空。如果您使用$_GET
它会起作用的。我经常使用$_REQUEST
以避免此问题。
作为Pat的评论,add_action
始终返回true。因此,如果需要返回erros以在表单中显示,那么应该考虑通过ajax发送表单。
function signup_validate_insert()
{
$errors = false;
if (!empty($_POST[\'submit_msg\'])) {
// Do your validation
} else {
$errors = true;
}
//If no errors are found, procede with form submition.
if(!$errors){
wp_redirect( $location, $status );
exit;
} else {
/*
If errors are found you have 3 options:
1. Store the errors in a db table and retrieve the errors in the page template
2. Store the errors in a cookie
3. Redirect page to form and put the erros in the URL
*/
}
}
但是,我强烈建议您通过jQuery提交for并返回错误(如果有)。如果没有,请将数据重定向到页面以处理表单提交。
var formData = $(\'form\').serialize()
$.ajax({
type: "POST",
url: url,
data: formData ,
success: success,
dataType: dataType
});