weboldal készítés, Nagy-Webdesign

Weboldal készítés

Ügyfélorientáltság

Egyedi megoldások

Kedvező ár

Trend követés

Reszponzív felület

Használhatóság

Látványos megjelenés

Wordpress egyedi kijelentkezési script készítés

Előfordul, mikor szükség lehet saját készítésű kijelentkezési scriptre. Például amiatt, mivel a wp-admin könyvtár jelszóval védve van a webszerver beállításaiban. Ilyen helyzetbe botlottam a megacp.com tárhelyével kapcsolatban. A szolgáltató az ügyfelei védelmére kettős szintű bejelentkezést állított be. A tárhelyén elhelyezett Wordpress oldalak adminisztrálásához a webszerver kér egy bejelentkezési nevet és jelszót (melyet a felugró ablak tartalmaz). Ennek megadása után jelenik meg a saját bejelentkező felület. Ez alapvetően nem okoz gondot egy átlagos weboldal készítésénél. Viszont egy olyan oldalon, ahol a felhasználóknak be és ki kell jelentkezniük valamilyen okból (például webáruház), a kettős szintű bejelentkezés zavaró lehet. Eddigi tapasztalataim alapján a legtöbb bővítmény, mely tartalmaz bejelentkezési felületet (például WooCommerce), gond nélkül kezeli a bejelentkezést. Sajnos a kijelentkezésnél már a Wordpress saját kijelentkezési eljárását hívják meg, így a kettős szintű hitelesítés miatt felugrik az említett szerver oldali jelszókérő ablak. Ennek elkerülésére saját kijelentkezési folyamatot kell készíteni.

Gyors utána olvasás eredménye a következő kódsor lett:

<?php
require( dirname(__FILE__) . '/wp-load.php' );
wp_logout();
wp_redirect( 'http://' . $_SERVER['HTTP_HOST'] );
exit;
?>

Elég egyszerű és rövid lett az eljárás. Ezt a pár sort gyorsan el is magyarázom. A require utasítással egy meglévő php fájlt hívtam meg, hogy a Wordpress függvényei betöltődjenek. A wp_logout függvény, mint a neve is mutatja, a kijelentkeztetést végzi el. Ezek után szükségünk van egy weblap címre, amire átirányítjuk a felhasználót. Mivel nem akartam túlbonyolítani, így a wp_redirect függvénynek megadtam, hogy a kezdőlapra irányítsa a munkafolyamatot. Annak érdekében, hogy ezt bárki tudja használni, nem fixen megadott oldalt írtam a függvény után, hanem egy ismert standard eljárással megadtam a weboldal kezdőlapját.

Ez eddig nagyon szép, de hogyan tudjuk ezt használni?

Mivel mostanában a WooCoomerce bővítménnyel sokat foglalkozok, így ennek a bővítménynek a fiókkezelő részén keresztül mutatom be a kijelentkezési eljárás módosítását. Először is lássuk az eredeti kódrészt, melyet módosítani kell.

<?php
printf(
    __( 'Hello <strong>%1$s</strong> (not %1$s? <a href="%2$s">Sign out</a>).', 'woocommerce' ) . ' ',
    $current_user->display_name,
    wc_get_endpoint_url( 'customer-logout', '', wc_get_page_permalink( 'myaccount' ) )
);
printf( __( 'From your account dashboard you can view your recent orders, manage your shipping and billing addresses and <a href="%s">edit your password and account details</a>.', 'woocommerce' ),
    wc_customer_edit_account_url()
);
?>

Bár sokak számára Kínainak is tűnhet, de nem olyan bonyolult az értelmezés. A printf utasítás megjelenítendő szöveget küld a böngészőnek. Jól látszik, hogy angol nyelvű lesz ez a szöveg. Ezt kicsit átírom, mivel a nyelvi fájlban ez a rész nem szerepel. Két váltózót használ, az egyik a név megjelenítésére, a másik a teljes link átadására szolgál. Korábbi bejegyzésemben a display_name helyett a user_nicename használatára tértem át, így itt is ezt fogom használni. Kis módosítás után ilyen lesz a kódrész:

<?php
printf(
    __( 'Üdvözöllek <strong>%1$s</strong>! (<a href="%2$s/logout.php">Ha szeretnél kijelentkezni kattints ide.</a>).', 'woocommerce' ) . ' ',
    $current_user->user_nicename,
    site_url()
);
printf( __( 'From your account dashboard you can view your recent orders, manage your shipping and billing addresses and <a href="%s">edit your password and account details</a>.', 'woocommerce' ),
    wc_customer_edit_account_url()
);
?>

Mint látható, a második váltózó jelentősen egyszerűbb lett. A site_url függvény tökéletesen visszaadja a kezdőoldal címét, melyhez csak hozzá kell tűzni a logout.php-t. Ezzel el is készült a módosítás, amivel már a saját kijelentkezési eljárásunk tökéletesen működik.

Az oldal használatával hozzájárul a cookie-k használatához és az adatkezelési szabályzathoz.