Diskuze: wp_schedule_event wordpress

Koš wp_schedule_event wordpress

Aktivity (1)
Avatar
Jakub Štolbaa:9. června 11:33

Ahoj všichni, potřeboval bych pomoct ohledně wp_schedule_event ve wordpressu. Na codex.wordpress.org jsem si našel, jak se implementuje wp_schedule_event, ale nejspíš jsem to nepochopil.

Zkusil jsem: Zkusil jsem: Zkoušel jsem pozměnit, názvy funkcí a procedury, které řeším ve funkci, která se má provádět jednou za hodinu, ale neúspěšně. Zde je kód:

register_activation_hook(__FILE__, 'my_activation');

function my_activation() {
    if (! wp_next_scheduled ( 'my_hourly_event' )) {
        wp_schedule_event(time(), 'hourly', 'my_hourly_event');
    }
}

add_action('my_hourly_event', 'do_this_hourly');

function do_this_hourly() {
        $step = $wpdb->get_var("SELECT timeStep FROM wp_plugins");
        if (!empty($step)) {
            $wpdb->update('wp_plugins', array(
            'timeStep' => 'funguje to',
                ),
                array( 'state' => 'deactivate_plugins')
            );
        }
}

register_deactivation_hook(__FILE__, 'my_deactivation');

function my_deactivation() {
        wp_clear_scheduled_hook('my_hourly_event');
}

Ve funkci do_this_hourly() si zkouším pro začátek ukládat do databáze pod sloupec hodnotu funguje to, abych věděl jestli se mi do databáze hodinově uloží tato hodnota nebo ne, ale když jsem se po hodině koukal do databáze, tak se výchozí hodnota nezměnila.

Chci docílit: Chci docílit: wp_schedule_event chci primárně použít pro aktivaci nebo deaktivaci pluginů v určitou hodinu co si vybere uživatel, takže kdyby si například uživatel chtěl teď nastavit, že se jeho pluginy mají vypnout zítra ve 3 ráno, tak si tento údaj uložím do databáze a potom každou hodinu pomocí wp_schedule_event kontroluji, jestli daný čas už nastal a nebo ne. Později bych tedy chtěl implementovat tento kód:

if (!empty($_POST["bdaytime"]) AND !empty($_POST["step"])) {
            $time = $_POST["bdaytime"];
            date_default_timezone_set('Europe/Prague');
                  $today = date("Y-m-d\TH:i");

                  if ($time == $today) {
                          echo "shodují se";
                  } else {
                          echo "neshodují se";
                  }

                  $wpdb->update('wp_plugins', array(
                                'time' => $_POST["bdaytime"],
                                'timeStep' => $_POST["step"],
                       ),
                       array( 'state' => 'deactivate_plugins')
                 );


 }

$_POST["bdaytime"] je hodnota z inputu typu datetime-local a $_POST["step"] obsahuje hodnotu, jestli se mají pluginy vypnout nebo zapnout.

Pro začátek by mi stačilo, aby se každou hodinu, uložila do databáze hodnota funguje to a pak implementuji script víše do funkce wp_schedule_event.

Každou radu uvítám
Děkuji
S pozdravem, Jakub Štolba.

 
Odpovědět 9. června 11:33
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 1 zpráv z 1.