2016-03-30 12 views
4

WordPressで私はユーザーに電子メールを送信するプラグインを作成しています。そのために私はワードプレスcron仕事を使用しています。だから、基本的には1時間ごとにユーザーに電子メールを送信するだけです。 は、だから私のコードは、このワードプレススケジュールイベントが設定時間内に起動しない

public function __construct() { 
    add_action('init', array($this, 'send_emails_to_users')); 
    add_action('cliv_recurring_cron_job', array($this, 'send_email')); 
} 

public function send_emails_to_users() { 
    if(!wp_next_scheduled('cliv_recurring_cron_job')) { 
      wp_schedule_event (time(), 'hourly', 'cliv_recurring_cron_job'); 
    } 
} 

public function send_email() { 
    //send email code goes here 
} 

のように見えるここですべてがよさそうだが、それは電子メールを送信しません。

私はこの

public function __construct() { 
    add_action('head', array($this, 'send_email')); 
} 

のように私のコードを作成する場合、それが電子メールを送信します。しかし問題は、ページが読み込まれるたびに、またはユーザーがサイトにアクセスするたびに電子メールを送信することです。

だからこそ、私はwp_schedule_eventを使って1時間ごとにメールを送信したいのです。

この問題を解決する方法を教えてもらえますか?

ご意見やご協力は本当に感謝しています。すべての

+0

あなたはサーバーのcronをセットアップしましたか? wpは誰かがサイトにアクセスしてタスクが期限切れになると送信されます – David

+0

私はあなたの仕事をテストします。テストのために、ちょうど秒単位の間隔をテストする必要があります。 – Jevuska

+0

@David私は地元のランプでそれをテストしています – NewUser

答えて

0

まず、 1)あなたは、動的に 2を操作したい場合は、

、手動たい場合は、ページがそう

を実行した後、ワードプレススケジューラが呼び出されます)サーバーでセットアップのcrontabに必要以下のcrontabのセットアップのための

は便利なリンクです: crontab

+0

私は手動でワードプレススケジューラが必要です。そのために私はそれらの機能を使用しましたが、それはまったく起動しません。 – NewUser

+0

https://codex.wordpress.org/Function_Reference/wp_cron https://codex.wordpress.org/Function_Reference/wp_sched ule_event –

+0

質問をする前に、私はそれらをすべて踏んできました。ここでは働いていません。 – NewUser

0

あなたは1時間ごとにあなたのcronを実行したい場合、あなたは、コードの下に追加する必要があります。

public function __construct() { 
    // Call function for cron 
    add_action('init', array($this, 'send_emails_to_users')); 
} 

public function send_emails_to_users() { 
    if(!wp_next_scheduled('cliv_recurring_cron_job')) { 
     // Add "cliv_recurring_cron_job" action so it fire every hour 
     wp_schedule_event(time(), 'hourly', 'cliv_recurring_cron_job'); 
    } 
} 

add_action('cliv_recurring_cron_job', array($this, 'send_email')); 
public function send_email() { 
    //send email code goes here 
} 

詳細についてはsee link

+0

はい、私はそのようなコードを行っています。しかし、私はcronを実行するためにwp-cron.phpをロードする必要があるか知りたいですか、私のサイトのページを読み込んでもカスタム関数を実行しますか? – NewUser

+0

WordPress initを実行すると、自動的にwp-cron.phpを読み込む必要はありません。ここでinitアクションを確認してください。https://codex.wordpress.org/Plugin_API/Action_Reference/init –

+0

ユーザーがいないときに関数を実行してくださいサイト。ユーザーがサイトにアクセスしていなくても私の機能を実行したい。 – NewUser

関連する問題