2017-01-31 15 views
1

Ich habe noch nie einen CRON-Job erstellt und mein bisheriger Versuch hat keine greifbaren Ergebnisse erbracht!WP-Cron-Job hinzugefügt, aber nicht ausgeführt

Um zu testen, habe ich ein Beispiel für eine andere Website verwendet und einen Code hinzugefügt, um es einfach zu senden und per E-Mail zu senden, wenn der Job ausgeführt wird, in diesem Fall stündlich.

dies ist mein Code:

add_action ('my_hourly_event', 'do_this_hourly');

function my_activation() { 
    if (!wp_next_scheduled('my_hourly_event')) { 
     wp_schedule_event(current_time('timestamp'), 'hourly', 'my_hourly_event'); 
    } 
} 
add_action('wp', 'my_activation'); 

function do_this_hourly() { 
    // do something every hour 

    $to  = '[email protected]'; 
$subject = 'the subject'; 
$message = 'hello'; 
$headers = 'From: [email protected]' . "\r\n" . 
    'Reply-To: [email protected]' . "\r\n" . 
    'X-Mailer: PHP/' . phpversion(); 

mail($to, $subject, $message, $headers); 


    // do something every hour 



} 

jetzt mit <?php echo '<pre>'; print_r(_get_cron_array()); echo '</pre>'; ?> ich, dass Wordpress sehen nicht sehen, was ive erstellt

[1485859289] => Array 
    (
     [my_hourly_event] => Array 
      (
       [40cd750bba9870f18aada2478b24840a] => Array 
        (
         [schedule] => hourly 
         [args] => Array 
          (
          ) 

         [interval] => 3600 
        ) 

      ) 

    ) 

Aber ich kann nicht arbeiten, warum die E-Mail nicht und was ich tun muss gesendet werden, zu beheben das Problem.

Ich hatte gehofft, jemand hier könnte helfen, das Problem zu lösen?

Dank für das Lesen :)

+0

Hier finden Sie Informationen darüber, wie Sie debuggen können, was mit dem Ereignis passiert http://stackoverflow.com/q/19787375/851885 – BadHorsie

+0

das ist großartig danke :) –

+0

Ich habe versucht, den Link vorgeschlagen, um den Job manuell auszuführen und alles funktioniert ok, aber es läuft immer noch nicht automatisch? –

Antwort

0

denke ich, was Ihre Funktion Sie anrufen in Ihrer wp_next_scheduled Funktion direkt im Gange sein könnte eingeschaltet ist, wenn Sie Ihren Haken anrufen müssen.

Also die Scheduler-Funktion (für Sie ist es "my_activation") prüft auf den Haken (für Sie ist es "wp"), prüft der Haken für die Funktion (für Sie ist es "my_hourly_function") und die Funktion sendet die E-Mail.

Ihre E-Mail-Funktion do_this_hourly() wird nirgends angerufen. Der Scheduler plant also einen Cron, aber keine Funktion, die ausgeführt werden soll, wenn er ausgelöst wird. Versuchen Sie dies:

Dies ist nicht getestet, aber ich glaube, es sollte funktionieren. Ich habe Ihren Mail-Code nicht überprüft, aber alles andere sieht gut aus: P

BEARBEITEN - Ich habe Ihre zusätzliche Aktion nicht gesehen, weil sie außerhalb des Codeblocks lag, aber mein Code oben sollte immer noch ausreichen .

Verwandte Themen