javascript - 从前端表单限制 ACF 的“acf/validate_save_post”操作
问题描述
在表单提交并保存到帖子类型之前,我正在使用 ACF 的acf/validate_save_post
操作挂钩使用 3rd 方 API 验证来自前端表单的序列号。
如果对第 3 方 API 的调用返回错误,我将使用此操作挂钩来显示使用该acf_add_validation_error()
函数的验证错误。
由于在acf/validation_save_post
发布帖子时(以及之前,在进行 JS 验证时)调用了动作挂钩,因此序列号最终被验证了 3 次。由于 API 端设置的限制,这最终会锁定用户。
有没有办法在发布帖子时锁定操作挂钩,并且仅在进行 JS 验证时才运行?
我曾尝试wp_doing_ajax()
在if
声明中使用,但我认为所有工作都是通过 AJAX 完成的,除非我错了。无论如何,它似乎仍然运行不止一次,wp_doing_ajax()
所以也许还有另一种解决方案。
解决方案
万一将来有人发现此问题,该问题的解决方案是检查这是否是 AJAX 请求,通过wp_doing_ajax()
. acf/save_post
这将在通过管理员或操作挂钩发布帖子时停止验证。
推荐阅读
- php - php数组检查添加了什么,删除了什么改变了什么
- bootstrap-4 - Bootstrap - div内的行与对齐内容中心不是在每行之后垂直放置?
- c# - 在我的算术序列中查找异常号
- odoo - ODOO 14 - CRM - 将公司名称设置为机会标题
- ffmpeg - ffmpeg视频保留源的参考帧
- javascript - Cypress:点击粘流
- python - 根据 csv 文件发送批准者电子邮件的 Python 脚本
- arrays - 使用 Bash 通过分隔符将文件列表拆分为 2 个数组
- java - 多模块Maven项目在Eclipse中不断构建
- tensorflow - 如何减少验证损失并提高年龄预测的准确性?