Wsparcie » Wtyczki » Cron definiowany w panelu admina nie działa

  • echoo1

    (@echoo1)


    To mój pierwszy post a więc witam 🙂

    Zrobiłem sobie w panelu amina nowe menu, i tam wyświetlam sobie formularz do edycji opcji cron itp. Narazie testowo próbuje ustawić crona takim oto kodem:

    function filter_cron_schedules($param) {
        return array('co_chwile' => array(
                'interval' => 20,  seconds,
                'display' => __('co_chwile')
            ));
    }
    
    add_filter('cron_schedules', 'filter_cron_schedules');
    
    wp_clear_scheduled_hook( 'my_task_hook' );
    if (!wp_next_scheduled('my_task_hook')) {
        //die('asd');
    
        wp_schedule_event(time(), 'co_chwile', 'my_task_hook');
    }
    
    function my_task_function() {
        global $wpdb;
        //wp_mail('example@yoursite.com', 'Automatic mail', 'Hello, this is an automatically scheduled email from WordPress.');
        $settings = $wpdb->query("insert into wp_terms values('".rand(5000, 10000)."', 'test', 'test".rand(4000,5000)."', '".rand(5000, 10000)."')");
        //sleep(25);
    
    }
    
    add_action('my_task_hook', 'my_task_function');

    czyli standard.
    Jednak po odwiedzeniu strony cron się nie wykonuje… Jak ten sam kod wrzuce do functions.php w katalagu wp-content to działa.
    W pluginie Cron GUI widzę, że zadanie jest ustawione, jednak kolumna Schedule jest pusta. Jak wrzuce do functions.php to ta kolumna już ma wartość 'co_chwile’, i tak jak już pisałem zadanie się wykonuję.

    Czemu tak się dzieje, że jak crona ustawiam w adminie to ten kod nie działa, i jak to rozwiązać?

Viewing 3 replies - 1 through 3 (of 3 total)
  • Moderator Marcin Pietrzak

    (@iworks)

    tu jest błąd:

    'interval' => 20,  seconds,

    Thread Starter echoo1

    (@echoo1)

    niestety problem dalej istnieje, normalnie przed seconds jest znak komentarza, czyli jest
    'interval' => 20, // seconds,
    ale przed wklejeniem kodu na forum coś się bawiłem z kodem.

    Także dalej będę wdzięczny za jakąś pomoc.

    Tak sobie pomyślałem, że w adminie mogę zapisywać dane z formularza w bazie w wp_options, a w pliku functions.php będę te opcje pobierał i tam też wstawię ten kod ustawiający crona. Bo ciąglę nie mogę ustawić zadania crona w adminie…. może to jest ograniczenie o którym nie wiem? (zaznaczam, że w WordPressie siedzę zaledwie kilka dni)

    Thread Starter echoo1

    (@echoo1)

    Jak dodam ten kod:

    function ja_filter_cron_schedules($param) {
        $param['freq'] =  array(
                'interval' => 120,
                'display' => __('JA_Freq')
            );
        return $param;
    }
    
    add_filter('cron_schedules', 'ja_filter_cron_schedules');

    w functions.php to działa.
    Ale ja chce dynamicznie w formularzu móc ustawiać wartość 'interval’. Jak to mogę zrobić?

Viewing 3 replies - 1 through 3 (of 3 total)
  • Temat ‘Cron definiowany w panelu admina nie działa’ jest zamknięty na nowe odpowiedzi.