我正在创建一个插件Titan Framework 处理选项页。作为插件的一部分,我收集了登录尝试失败的日志,然后将其显示在选项面板中。
日志经常需要清除,因此我创建了一个AJAX Button 控制单击时调用清除日志的函数。然而,为了显示这个过程已经发生,并且按下按钮确实做了一些事情,我需要刷新页面。
根据Titan Framework的文档,这似乎可以使用按钮的回调属性来完成。上面写着:
success\\u callback | string/array |(可选)在成功的ajax调用后要调用的Javascript函数的名称(在窗口范围内)。使用admin\\u enqueue\\u脚本添加脚本。默认为空/无。
然而,没有任何实例表明这实际上是如何做到的。以下是我目前的代码:
插件文件(AJAX按钮):
$lsPanel->createOption( array(
\'name\' => \'Reset Log\',
\'type\' => \'ajax-button\',
\'action\' => \'yyy_reset_security_logs\',
\'label\' => __( \'Reset Security Logs\', \'default\' ),
\'success_callback\' => \'ajax_success_refresh\',
) );
//run a clinical cms / titan framework ajax call
add_action( \'wp_ajax_yyy_reset_security_logs\', array( $this, \'yyy_reset_logs\' ) );
插件文件(AJAX操作函数):
function yyy_reset_logs() {
$result = $this->yyy_clear_security_logs();
if ( $result ) {
wp_send_json_success( __( \'Success!\', \'default\' ) );
}
wp_send_json_error( __( \'Failed!\', \'default\' ) );
}
因此,现在我想使用成功回调刷新页面。我通过
admin_enqueue_scripts :
window.location.reload(false);
目标是让该脚本刷新页面,但仅当按下AJAX按钮并检测到成功结果时。目前,该脚本是在加载任何/所有管理页面时加载的。结果是,由于JavaScript循环无限,管理页面永远不会完全加载。
有没有办法限制刷新JS只在成功清除日志的情况下运行?