我正在使用WordPress中的应用程序,我希望在用户提交表单时触发事件。我已在wp_schedule_single_event
文件中使用functions.php
安排了一个活动:
function do_this_one()
{
$tokeny = $wpdb->get_var('SELECT oauth_token FROM wp_q33uds_twitteruser WHERE twitter_handle = "manas_oid"' );
$token_secrety = $wpdb->get_var('SELECT oauth_token_secret FROM wp_q33uds_twitteruser WHERE twitter_handle = "manas_oid"' );
$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $tokeny, $token_secrety);
$response = $connection->post("statuses/update", array('status' => 'vaudevillains'));
}
date_default_timezone_set('Asia/Calcutta');
$myDate = strtotime($_SESSION['date1']);
$now = time();
$ti_one = $myDate - $now;
add_action( 'my_new','do_this_one' );
$this_time = time() + $ti_one;
wp_schedule_single_event($this_time, 'my_new' );
在另一个PHP模板中,我以下列形式存储用户指定日期的内容:
if(isset($_POST['submitted']))
{
$_SESSION['date1'] = $_POST['date1'];
}
但是,我functions.php
文件中安排的活动似乎无效。 cron作业从未按预期安排。我不确定如何在提交表单时安排此活动。
我也在模板中尝试了类似的内容,而不是在我的functions.php
文件中包含该事件:
if(isset($_POST['submitted']))
{
function do_this_one()
{
$tokeny = $wpdb->get_var('SELECT oauth_token FROM wp_q33uds_twitteruser WHERE twitter_handle = "manas_oid"' );
$token_secrety = $wpdb->get_var('SELECT oauth_token_secret FROM wp_q33uds_twitteruser WHERE twitter_handle = "manas_oid"' );
$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $tokeny, $token_secrety);
$response = $connection->post("statuses/update", array('status' => 'vaudevillains'));
}
date_default_timezone_set('Asia/Calcutta');
$myDate = strtotime($_POST['date1']);
$now = time();
$ti_one = $myDate - $now;
add_action( 'my_new','do_this_one' );
$this_time = time() + $ti_one;
wp_schedule_single_event($this_time, 'my_new' );
}
上述方法确实在表单提交时安排my_new
事件。但是,当事件的预定时间过去时,永远不会调用do_this_one()
函数。
我的方法似乎有什么问题?如何在表单提交上安排cron作业?