2014-09-05 2 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은 웹 사이트 방문이 필요하므로 일반 cronjob과 다릅니다. 위의 코드를 보면 플러그인이 작동하지 않을 가능성이 무엇인지 알 필요가 있습니다. 그리고 어떤 해결책을 찾을 수 있습니까? 매주 월요일 내 informant_main_action 방법을 사용합니다.

당신이 당신의 타임 스탬프로

strtotime('nextmonday'); 

을 사용할 수 있습니다 ... 당신이 올바르게 설정되어 모든 사람이 가정

답변

0

감사드립니다. 그것은 단지 한 번 실행 있도록 후크 그렇지 않으면

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

를 존재하는지 확인할 수 있습니다하는 활성화 후크에 넣고해야합니까, 당신은 누군가가 당신의 페이지를 방문 할 때마다 설정 새로운 cron 작업 ....

주간 단위로 페이지를 방문하는 실제 크론 작업으로이를 보완 할 수 있습니다. cpanel을 가지고 있다면 이것과 같은 것을 사용할 수 있습니다 (경로는 이것에 대해 업데이트되어야합니다). 당신이 그 분, 시간, 일, 월, 요일 그래서

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

한 strtotime ('nextmonday') 내가 에코 한 strtotime ('nextmonday')를 시도 아무것도 보여주는를 실행하려는 경우 * 및 번호는; –

+1

나는 그것을 공간에 넣었다 –

+0

* 2 * * 7은 월요일에이 시점을 가리키는가? –

관련 문제