it-swarm.com.de

wp_schedule_event in einer Klasse

Dies ist mein (abgespecktes) Plugin in OOP:

<?php
/*
Plugin Name: Cron Test
Plugin URI: http://www.mywebsite.com/
Description: Test
Version: 1.0
Requires at least: 3.0
*/

class CronTest {
  public function __construct() {
      if ( !wp_next_scheduled( 'dailyops' ) ) {
          wp_schedule_event( time(), 'daily', 'dailyops' );
      }
      add_action( 'dailyops', array($this, 'do_this_daily') );
  }

  function do_this_daily() {
          // do something every day
          error_log('daily');
  }
}

$cronTest = new CronTest();

Wie auch immer, es funktioniert nicht (do_this_daily () wird nie ausgelöst). Ich habe dasselbe in einem Nicht-OOP-Plugin versucht (das nicht auf einer Klasse basiert) und es funktioniert einwandfrei. Wie kann ich es schaffen, dass es hier in einer Klasse funktioniert?

BEARBEITEN: Ich habe den ersten Teil des Codes durch ein vollständiges (noch minimales) Plugin ersetzt, das getestet werden kann.

5
flip79

Schließlich entdeckte ich, was nicht stimmte: Der Webserver (ein dedizierter VPS) hatte eine schlechte Konfiguration der gehosteten Domain, so dass er sich nicht "selbst kontaktieren" konnte, um wp-cron.php aufzurufen.

Ich habe es behoben und jetzt funktioniert jeder geplante Job, einschließlich dieses :)

1
flip79