Tovább a tartalomhoz

WP-Cron és a Gravity Forms

Mi a WP-Cron, hogyan hat az ütemezett feladatokra, hogyan cserélheted valódi cron-feladatra vagy külső szolgáltatásra, és mit tegyél alapszintű hitelesítés mellett.

A WP-Cron a WordPress beépített eseményütemezője, amely az automatikus feladatokat futtatja. A Gravity Forms több ütemezett feladathoz is a WP-Cronra támaszkodik, például az elhagyott űrlapok értesítéseihez vagy az automatikus törléshez.

A WP-Cron akkor indul, amikor valaki betölt egy oldalt az oldaladon. Ilyenkor lefut a cron.php, amely megnézi, van-e feldolgozásra váró ütemezett esemény, és ha van, új kérést indít az oldal WP-Cron-végpontjára (például https://pelda.hu/wp-cron.php), hogy feldolgozza őket.

Ellentétben a szokásos kiszolgálóoldali cron-feladattal, a WP-Cron nem rögzített időrend szerint fut. Inkább feladatsornak érdemes tekinteni, amely azt adja meg, mikor futhat le legkorábban egy feladat, nem azt, hogy pontosan mikor. Az esemény sosem fut le a megadott időpont előtt, de gyakran jóval utána. Kis forgalmú oldalon az ütemezett feladatok késhetnek, vagy ki is maradhatnak, ha az ütemezett időpontban vagy után nem történik oldalbetöltés.

Mivel a WP-Cron oldalmegtekintésre indul, kis forgalmú oldalakon egyes események nem a megadott időközönként kerülnek feldolgozásra.

A megbízhatóságot úgy javíthatod, hogy valódi cron-feladattal vagy külső szolgáltatással hívod meg rendszeres időközönként az oldal WP-Cron-végpontját. Mindkét esetben ki kell kapcsolnod a beépített WP-Cron-indítást, a wp-config.php fájlba írt alábbi sorral:

define( 'DISABLE_WP_CRON', true );

Ha a tárhelyen hozzáférsz a rendszer feladatütemezőjéhez, beállíthatsz egy cron-feladatot, amely az általad megadott időközönként fut. Az elterjedt tárhelyszolgáltatók (Bluehost, DreamHost, GoDaddy, HostGator, InMotion Hosting, Kinsta, Namecheap, SiteGround, WP Engine) saját súgójukban leírják a WordPress-cron cseréjét valódi cron-feladatra. Ha a tárhelyed nincs köztük, kérdezd a szolgáltatót.

Az alábbi szolgáltatások beállíthatók úgy, hogy az általad megadott ütemezés szerint meghívják az oldal WP-Cron-végpontját. Egyesek naplózást és állapotértesítést is adnak.

  • cron-job.org
  • Cronit
  • EasyCron

Ha az oldalon be van kapcsolva az alapszintű (basic) hitelesítés, a kiszolgáló 401-es hibát ad, ha a cron-kérés nem tartalmaz hitelesítési adatokat. Ezt úgy oldhatod meg, hogy a WordPress cron_request szűrőjével hozzáadod az Authorization fejlécet a cron-kéréshez.

add_filter( 'cron_request', 'cron_request_basic_auth' );
function cron_request_basic_auth( $cron_request ) {
$cron_request['args']['headers']['Authorization'] = 'Basic ' . base64_encode( USERNAME . ':' . PASSWORD );
return $cron_request;
}

A példa abból indul ki, hogy a USERNAME és a PASSWORD máshol (például a wp-config.php fájlban) megadott konstans. Ha nem, a két értéket az idézőjelek közé is beírhatod, például 'FELHASZNALO:JELSZO'.

A harmadik féltől származó szolgáltatások és kódrészletek csak javaslatok, nincsenek kiértékelve vagy tesztelve, és hogy megfelelnek-e a projekted igényeinek, azt neked kell eldöntened.

Az elhagyott űrlapok értesítéseiről az Elhagyott űrlapok értesítései fejezetben olvashatsz.

Készült:

Tiszteletben tartjuk a magánszférádat

Sütiket használunk a böngészési élmény javítására és a forgalom elemzésére. Az analitika csak akkor indul, ha engeded. Adatvédelmi irányelvek, Sütitájékoztató.

Sütibeállítások