Tovább a tartalomhoz

Űrlap betöltése rejtett felületen és dinamikusan betöltött tartalomban

Mit tegyél, ha Barba.js vagy hasonló könyvtár miatt az űrlapok az oldalváltás után nem működnek.

Ha az oldalad tartalmát Barba.js-hez hasonló könyvtár tölti be dinamikusan, előfordulhat, hogy az űrlapok az új oldal betöltése után nem működnek. Az ok: a Gravity Forms a szkriptjeit és stíluslapjait csak ott tölti be, ahol az adott oldalon szükség van rájuk, a dinamikusan beillesztett tartalom szkriptjeit pedig az ilyen könyvtárak nem mindig futtatják le újra.

Példa: űrlap betöltése Barba.js mellett

Szekció neve “Példa: űrlap betöltése Barba.js mellett”

A kód két részből áll:

  1. Egy művelet minden frontend oldalon betölti az egyik űrlapot megjelenítés nélkül, így a szkriptek és stílusok is betöltődnek. A példában a 100-as azonosítójú űrlapot töltjük be, ezt cseréld a sajátodéra.
  2. Egy másik művelet a lábrészben megadja a Barba.js-nek, hogy a következő oldal minden szkriptjét futtassa le, így a Gravity Forms szkriptjei is elindulnak.
/**
* Ez a művelet egy adott űrlapot betölt minden frontend oldalon megjelenítés nélkül,
* így a szkriptek és a stílusok is betöltődnek.
*/
add_action( 'init', function(){
if ( is_admin() ) {
return;
}
if ( ! class_exists( 'GFFormDisplay' ) ) {
require_once( GFCommon::get_base_path() . '/form_display.php' );
}
// Előkészíti az űrlapot a megjelenítéshez, de nem jeleníti meg.
GFForms::get_form( 100 );
}, 100 );
/**
* Ez a művelet megadja a Barba.js-nek, hogy a következő oldal minden szkriptjét futtassa le,
* így a Gravity Forms szkriptjei is lefutnak.
*/
add_action( 'wp_footer', function(){
?>
<script>
barba.hooks.beforeEnter(({ next }) => {
const js = next.container.querySelectorAll("script");
js.forEach(script => {
window.eval(script.innerHTML);
});
});
</script>
<?php
} );

Ha másfajta rejtett felülettel dolgozol, a kódot valószínűleg módosítanod kell.

A kód mehet az aktív téma functions.php fájljába, egy saját funkciókat tartalmazó bővítménybe, egy saját kiegészítőbe vagy kódrészlet-kezelő bővítménybe.

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