我正在开发一个评论插件,将评论的内容发送到第三方API,并根据其批准、丢弃评论或将其保留为挂起状态的响应。
问题是响应需要30秒,因此用户点击;发表评论”;看到加载图标在他的选项卡上移动了30秒,最后页面重新加载,他要么看到他发布的批准评论,要么看到什么都没有改变,要么看到;等待审核消息“;(分别为已批准、垃圾、待定状态)。
我应该在哪里挂接API请求函数,以便用户总是看到;等待审核”;消息没有任何延迟,然后API请求发生,并相应地设置注释的状态期间是否有任何挂钩被激活;死区时间;?这意味着API请求可以在用户没有遇到延迟的情况下发生,也不需要管理员手动触发它们wp_insert_comment 动作挂钩,得到了我上面提到的结果。然后我试着把它挂在comment_post 动作挂钩,相同的结果,唯一的区别是comment\\u post发生得稍晚,在注释通过设置之后->;用户设置的讨论筛选器。
谢谢
最合适的回答,由SO网友:PantelD 整理而成
通过使用wp_schedule_event() 功能,现在:
用户总是看到;等待审核”;没有任何延迟的消息请注意,自插件激活后,wp\\u schedule\\u event()行只能运行一次,一种方法是:
if ( ! wp_next_scheduled( \'bl_cron_hook\' ) ) {
wp_schedule_event( time(), \'five_seconds\', \'bl_cron_hook\' );
}
你可以阅读更多
here.