WordPress:在表单提交上安排事件

时间:2015-08-28 13:41:18

标签: php wordpress forms time cron

我正在使用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作业?

0 个答案:

没有答案