Harmonogram CRON w Wordpress

0

Witam, mam problem z cronem w wordpress. Mianowice dodałem nową akcję, napisałem odpowiednią funkcję, która jest przywiązana do mojej akcji. Dodałem nowe zadanie cron poprzez metode: wp_schedule_event a jako czas dodałem swój własny filtr ( tak żeby zadanie wykonywało się co np 10 min ). Jednak moja metoda która jest niby przywiązana do akcji którą dodałem do crona, w ogóle się nie wywołuje. Jest ktoś w stanie mi podpowiedzieć jak to działa i dlaczego u mnie w ogóle zadanie cron się nie wykonuje.

0

wp_schedule_event planuje do wykonania akcję, która wykona się tylko jeśli ktoś odwiedzi twoją stronę (i minął zaplanowany czas). Odświeżasz swoją stronę w odpowiednim momencie?

0

Gdzieś na necie znalazłem, że należy ustawic cron na serwerze, żeby uruchamiał skrypt wp-cron.php. Więc tak zrobiłem. Ale oprócz tego odświeżam stronę ręcznie. Cron na serwerze ustawiłem żeby uruchamial skrypt wp-cron.php co minutę, a cron w wordoress usrawilem żeby wykonywał funkcje też co minutę. I nic :(

0

To wklej ten skrypt i wpis do crona ... bo ciężko przewidywać :D Chyba nikt z forumowiczów nie jest jasnowidzem.

0

funkcja która tworzy akcje i rejestruje nową opcją w ktorej będzie coś przechowywane, wykonana po uruchomieniu wtyczki

 
function statystyka_install()
{
    add_action( 'stat_harmonogram', 'HarmonogramCron' );
    
    register_setting('Stat_Options', 'Harmonogram');
}

ta funkcja to jest funkcja która niby ma się wykonywać podczas zadań Cron.

 
function HarmonogramCron()
{
    $tablica = get_option('Harmonogram');
    $tablica[current_time("timestamp")] = "nowe info";
    update_option('Harmonogram', $tablica);
}

ta funkcja jest wykonywana po zapisaniu ustawień wtyczki (oddzielna strona).

 
function Harmonogram()
{
    $info;
    wp_clear_scheduled_hook( 'stat_harmonogram' );
    if ( !wp_next_scheduled('stat_harmonogram') )
    {
        wp_schedule_event( current_time( 'timestamp' ), 'minuta', 'stat_harmonogram');
        $info = 'Harmonogram został zmieniony! ';
    }
    else
        $info = 'coś jest nie tak';
    echo '<p id="info">'.$info.'</p>';
}

Oczywiście instaluje wtyczkę, uruchamiam ją, wchodzę w ustawienia wtyczki, daje zapisz (żeby się wykonała ta funkcja powyżej) i potem teoretycznie powinna się wykonywać funkcja dodana do harmonogramu. Jednak tak się nie dzieje :(

0

Pokaż co wywołujesz w cronie. Jest duża szansa, że jeżeli nie dotykałeś nigdy crona, to po prostu skopałeś polecenie. Dla testów zrób sobie test.php, w którym po uruchomieniu masz coś takiego:

<?php
file_put_contents('test.txt', 'Uruchomiono: '.date('Y-m-d H:i:s'), FILE_APPEND);

Potem spróbuj to uruchomić przez crona i obserwuj czy coś się dopisuje do pliku .txt

0

wget http://twojadomena/wp-cron.php /dev/null 2>&1 to jest to co wpisałem jako komendę. Oczywiscie zmieniłem twoja domena na swoja ;)
do ustawień crona w wordpress korzystałem ze strony http://omazda.pl/2012/07/03/wp-cron-harmonogram-zadan-w-wordpress/

0

CRON z serwera na 100% działa. Bo dodałem to zapisywanie do pliku i to robi, a wcześniej miałem wykonywanie komendy wget i pobieranie pliku wp-cron.php i też to robi to właśnie kasowałem pliki. Więc co jest nie tak?

0

Naprawdę nikt nie wie jak mi pomóc?

0

Zainstalowałem wtyczkę cron-gui, która mi pokazuje, dodane akcje do harmonogramu i dostępne czasy wykonywania tych akcji. Oczywiście tu jest wszystko ok. Czyli moja akcja jest na liście, mój czas wykonywania akcji też jest dodany. Więc niby wszystko jest ok. Sama wtyczka podobno wyrzuca plik debug.txt w razie błędów. Niestety takiego pliku nie mam, więc to oznacza, że wtyczka nie wyrzuca błędu?

1 użytkowników online, w tym zalogowanych: 0, gości: 1