Tovább a tartalomhoz

Naplózás és hibakeresés

A naplózás bekapcsolása, a naplófájlok megtekintése és törlése, a biztonsági figyelmeztetés, valamint saját naplóbejegyzések írása.

A Gravity Forms naplója megmutatja, mit csinált a bővítmény egy beküldés, egy értesítés vagy egy licencellenőrzés közben. Hibakereséskor ez az első eszköz, amit érdemes bekapcsolni.

Ha szerepkörkezelő bővítményt használsz (például Members), a felhasználódnak meg kell kapnia a naplózáshoz szükséges jogosultságot, különben nem látod a beállításokat.

  1. Nyisd meg az Űrlapok → Beállítások oldalt.
  2. Görgess a Naplózás kártyához, és kapcsold be a kapcsolót.
  3. Kattints a Beállítások mentése gombra.
https://minta-bolt.hu/wp-admin/admin.php?page=gf_settings
Az Űrlapok beállításai oldal, a Naplózás kártyán bekapcsolt kapcsolóval

Figyeld a Naplózás kártyát: a bekapcsolás után az oldalsó menüben új pont jelenik meg a naplózás beállításaihoz.

A bekapcsolás után a Beállítások oldalsó menüjében új menüpont jelenik meg a naplózáshoz. Ezen az oldalon a Gravity Forms magja és minden telepített, naplózást támogató kiegészítő külön szerepel. Mindegyiknél külön be- és kikapcsolhatod a naplózást a Naplózás bekapcsolása és az összes üzenet naplózása jelölőnégyzettel.

https://minta-bolt.hu/wp-admin/admin.php?page=gf_settings&subview=gravityformslogging
A naplózás beállítóoldala a Gravity Forms Core és a többi naplózó elem jelölőnégyzeteivel

Figyeld, hogy minden naplózható elem külön jelölőnégyzetet kap. Ha már tudod, hol a hiba, kapcsold be az érintett kiegészítőét is.

A naplózás oldalán minden bekapcsolt elem alatt két hivatkozás jelenik meg: a napló megtekintése és a napló törlése. Ha a napló még üres, a megtekintő hivatkozás nem látszik.

A naplófájlok legfeljebb 5 MB méretűek. Ha egy fájl ennél nagyobbra nő, a rendszer átnevezi, és az eredeti néven új fájlt kezd. A régi, elforgatott fájlokat FTP-vel töltheted le a /wp-content/uploads/gravity_forms/logs/ mappából.

A Rendszerállapot oldalon is van hivatkozás a naplófájlokhoz, ha a naplózás be van kapcsolva és vannak fájlok.

Amíg a naplózás be van kapcsolva, minden WordPress-admin oldalon megjelenik egy nem elrejthető biztonsági figyelmeztetés. A naplók nyílt szövegben érzékeny és személyes adatot is tartalmazhatnak, ezért a naplózást nem szabad bekapcsolva hagyni.

  • Ha a naplózást támogatási kérés miatt kapcsoltad be, hagyd bekapcsolva, amíg a támogatás dolgozik rajta, utána kapcsold ki, és töröld a naplókat.
  • A figyelmeztetést elrejtheted, ha kikapcsolod a naplózást, vagy ha a wp-config.php fájlba felveszed az alábbi sort:
define( 'GF_LOGGING_DISABLE_NOTICE', true );

A Gravity Forms néhány passzív védelmet is alkalmaz: a naplófájlok neve minden bekapcsoláskor új, véletlen azonosítót kap, és egy index.html fájl megakadályozza a mappa tartalmának listázását. Ez nem pótolja azt, hogy a naplózást kikapcsold, és a napló fájljait ne hagyd hozzáférhető szerveren.

A törléshez a naplózás oldalán a napló megtekintése helyett a napló törlése hivatkozást használd. Az összes naplófájl akkor is törlődik, ha az Űrlapok → Beállítások oldalon kikapcsolod a naplózást, vagy a figyelmeztetésben lévő hivatkozást használod.

A beépített naplóbejegyzések nem mindent rögzítenek: például a feltételes logika szabályainak kiértékelését vagy a mezők ellenőrzési hibáit nem. Ezeket a téma functions.php fájljába tett kóddal naplóztathatod. A naplózás ilyenkor is csak akkor ír, ha be van kapcsolva.

Ha egy értesítés azért nem megy el, mert a feltételes logika szabálya nem teljesül, a gform_is_value_match szűrővel látod, milyen a szabály, és mi volt a mező tényleges értéke.

add_filter( 'gform_is_value_match', 'log_conditional_logic_evaluation', PHP_INT_MAX, 6 );
function log_conditional_logic_evaluation( $is_match, $field_value, $target_value, $operation, $source_field, $rule ) {
GFCommon::log_debug( 'gform_is_value_match: $rule => ' . print_r( $rule, 1 ) );
GFCommon::log_debug( 'gform_is_value_match: $field_value => ' . print_r( $field_value, 1 ) );
GFCommon::log_debug( 'gform_is_value_match: $is_match => ' . var_export( $is_match, 1 ) );
return $is_match;
}
add_filter( 'gform_validation', 'log_validation_errors', PHP_INT_MAX );
function log_validation_errors( $validation_result ) {
$form = $validation_result['form'];
foreach ( $form['fields'] as $field ) {
if ( $field->failed_validation ) {
GFCommon::log_error( "form #{$form['id']}: validate() - failed: {$field->label} ({$field->id} - {$field->type}) - message: {$field->validation_message}" );
}
}
return $validation_result;
}

A gform_save_field_value szűrővel a beküldött és a ténylegesen mentett értéket is naplózhatod.

add_filter( 'gform_save_field_value', 'log_saved_values', PHP_INT_MAX, 5 );
function log_saved_values( $value, $entry, $field, $form, $input_id ) {
$input_name = 'input_' . str_replace( '.', '_', $input_id );
GFCommon::log_debug( "log_save_field_value: Input ID: {$input_id}. POST value => " . print_r( rgpost( $input_name ), true ) );
GFCommon::log_debug( 'log_save_field_value: Saved value => ' . print_r( $value, true ) );
return $value;
}

Írás a Gravity Forms magjának naplójába

Szekció neve “Írás a Gravity Forms magjának naplójába”

Egyszerű bejegyzés a saját kódodból:

GFCommon::log_debug( __METHOD__ . '(): running.' );

Szöveges változóval:

GFCommon::log_debug( __METHOD__ . "(): Nothing to do for the {$event} event." );

Tömb vagy objektum kiírása:

GFCommon::log_debug( __METHOD__ . '(): form => ' . print_r( $form, true ) );

A __METHOD__ PHP-állandó: a rendszer az aktuális osztály- és metódusnévre cseréli. Elhagyhatod, és írhatsz helyette függvénynevet vagy más azonosítót.

Ha saját kiegészítőt írsz a kiegészítő-keretrendszerrel, a kiegészítő saját naplófájljába így írhatsz:

$this->log_debug( __METHOD__ . '(): feed => ' . print_r( $feed, true ) );

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