# 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

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

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:

```php
define( 'DISABLE_WP_CRON', true );
```

## 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

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

### 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.

```php
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](https://hub.hellowp.io/hu/plugins/gravityforms/ertesitesek-elhagyott-urlapok/) fejezetben olvashatsz.
