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.
Hogyan működik a WP-Cron
Szekció neve “Hogyan működik a WP-Cron”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.
Késleltetett feldolgozás
Szekció neve “Késleltetett feldolgozá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 );Valódi cron-feladat használata
Szekció neve “Valódi cron-feladat használata”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.
Külső szolgáltatás használata
Szekció neve “Külső szolgáltatás használata”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
Gyakori problémák
Szekció neve “Gyakori problémák”Alapszintű hitelesítés
Szekció neve “Alapszintű hitelesítés”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: