2014-09-05 34 views
1

我做了一個插件發送每週通訊。目標是該插件將在每個星期一發送電子郵件。從下週一開始在wordpress中安排事件

我這裏有幾個困惑:

1 - 請有看看下面的代碼

function my_cron_definer($schedules){ 
    $schedules['weekly'] = array('interval'=> 604800, 
     'display'=> __('Once Every week') 
     ); 
    return $schedules; 
} 

add_filter('cron_schedules','my_cron_definer');  

wp_schedule_event($timestamp, 'weekly', 'informantweeklynewsletter'); 

add_action('informantweeklynewsletter','informant_main_action'); 

所以,我做我的自定義重複 '每週'。不過,我不確定我應該向$timestamp變量提供哪些內容,以便它將從星期一開始工作,而不管插件何時激活。在我的插件中,我沒有定義任何用於激活和停用的功能,因爲我不認爲我需要它們。

我的第二個問題是: wordpress cron不同於普通的cronjobs,因爲它需要訪問網站。看着上面的代碼,我需要知道我的插件無法工作的可能性。我可以做什麼解決方案?每週一工作我的informant_main_action方法。

謝謝

回答

0

承擔一切設置正確...您可以使用

strtotime('nextmonday'); 

爲您的時間戳。你需要把這個在激活鉤所以只運行一次,您可以檢查是否存在鉤

if(! wp_next_scheduled(''informantweeklynewsletter')) 
    wp_schedule_event($timestamp, 'weekly', 'informantweeklynewsletter'); 

否則,您將一個新的cron作業,每有人訪問你的網頁時設置.... 。

你可以用真正的cron工作來補充這個問題,每週訪問你的頁面。如果你有cPanel,你可以使用這樣的東西(注意你的路徑必須在這裏更新)。 *和數字是當你想要它運行因此它分鐘,小時,天,月,星期

* 2 * * 7 wget -O - http://yoursite.com/tasks.php >/dev/null 2>& 
+0

的strtotime(「nextmonday」),顯示我試圖回聲的strtotime(「nextmonday」)沒有; – 2014-09-05 09:22:52

+1

我知道它把一個空間 – 2014-09-05 09:24:05

+0

* 2 * * 7是否指向星期一? – 2014-09-05 09:25:58