通过admin-post.php提交表单并处理错误
对
如何在包含表单的页面上显示错误?
有多种方式,包括:
在重定向URL中将错误代码作为查询字符串传
我是否应该只执行常规重定向回我的表单页?类似于wp_redirect( \'/my-page/\', 302 );? 对 如何在包含表单的页面上显示错误? 有多种方式,包括: 在重定向URL中将错误代码作为查询字符串传递:example.com/my-page/?my_form_error=tos_agree_empty. 然后在表单/模板中,您可以执行以下操作echo $messages[ $_GET[\'my_form_error\'] ]; 哪里$messages 是错误消息的数组。(注意:在实际实现中,您应该清理查询值。) 将错误保存在transient —临时数据库选项。 关于成功,如何用成功消息替换表单? 与上述问题大致相同。因此,您可以: 在重定向URL中包含“成功”状态:example.com/my-page/?my_form_success=1. 然后在表单/模板中,可以执行以下操作if ( ! empty( $_GET[\'my_form_success\'] ) ) { echo \'Success.\'; } else { /* Display the form. */ }. 或者再次使用瞬态API保存(并检索)“成功”状态。 阅读这篇文章,你可能会发现它很有用here 这深入解释了如何使用admin-post.php, 此外,它还谈到了AJAX(admin-ajax.php) 这非常好PHP表单验证,因为提交表单时不需要重新加载页面。但是,您应该使用REST API来创建custom endpoint 用于您的表单提交。:) 因此,我希望这个(新)答案对您有所帮助,您可以看到here 使用瞬态API持久化表单验证错误和提交的数据的示例,这些数据将在从admin-post.php. 我也希望linked answer 帮助,其中给出了使用template_redirect 在同一页面上启动;这个admin_post_ 钩子在管理中的不同页面上激发(wp-admin) 现场一侧。 (编辑:好传媒网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |