我创建了一个服务器cron,每30分钟触发一次功能。问题是数据不能正确发送,但是当单击按钮或我在函数中使用“ init”时可以正常工作。另外,cron已正确触发,在需要触发的代码下方添加了发送邮件功能。
function myprefix_custom_cron_schedule( $schedules ) {
$schedules['every_30_minutes'] = array(
'interval' => 30 * 60, // Every 30 minutes
'display' => __( 'Every 30 minutes' ),
);
return $schedules;
}
add_filter( 'cron_schedules', 'myprefix_custom_cron_schedule' );
//Schedule an action if it's not already scheduled
if ( ! wp_next_scheduled( 'myprefix_cron_hook' ) ) {
wp_schedule_event( time(), 'every_30_minutes', 'myprefix_cron_hook' );
}
//myprefix_cron_hook
add_action ( 'myprefix_cron_hook', function(){
//this is not being triggered
$to_create_posts = true;
$data = RemoteCoin::LoadRemoteCoin( $to_create_posts );
//this is the test email cron (working)
$to = '***';
$subject = 'Test my 30-minute cron job';
$message = 'If you received this message, it means that your 30-minute cron job has worked!';
mail( $to, $subject, $message, 'From: ***' . "com" );
});
但这在单击我创建的按钮时有效:
if(array_key_exists('mysubmitbtn3',$_POST)){
$to_create_posts = true;
$data = RemoteCoin::LoadRemoteCoin( $to_create_posts );
}
此外,使用init也是可行的
add_action ( 'init', function(){
$to_create_posts = true;
$data = RemoteCoin::LoadRemoteCoin( $to_create_posts );
});
我不确定从哪里开始,因为它没有输出任何错误。 任何人都可以帮助我从哪里开始?谢谢。
答案 0 :(得分:0)
经过几天的调试,我终于找到了问题。它是管理员检查功能(用于检查触发它的功能是否是管理员),我需要将其删除,因为该功能将由服务器而非个人触发。
谢谢!