Korlátozás sablonfájlokban, widgetekben és a szerkesztődoboz elrejtése
Tartalom elrejtése PHP-feltételekkel a sablonban és a widgetekben, hozzászólás csak tagoknak, a kivonat hossza és a korlátozási doboz eltávolítása.
Ez a fejezet fejlesztői jellegű megoldásokat tartalmaz: saját kódot igényelnek, és a kód működéséért te felelsz. A sablonfájlokat mindig gyermektémában módosítsd, különben a téma frissítése felülírja a változtatásaidat.
Tartalom korlátozása a sablonban
Szekció neve “Tartalom korlátozása a sablonban”A sablonfájlok egyes részeit a Restrict Content Pro függvényeivel rejtheted el a nem jogosultak elől.
Aktív tagoknak
Szekció neve “Aktív tagoknak”A 3.0.5-ös vagy újabb verzióban az rcp_user_has_active_membership() függvényt használd. Régebbi verzióban az rcp_is_active() ugyanígy működik.
<?php if ( rcp_user_has_active_membership() ) : ?> <p>Ez a rész csak az aktív tagoknak látszik.</p><?php endif; ?>Fizetős tagoknak
Szekció neve “Fizetős tagoknak”Az előző feltétel az aktív ingyenes tagokat is beengedi. Ha csak a fizetős tagságot akarod, használd az rcp_user_has_paid_membership() függvényt:
<?php if ( rcp_user_has_paid_membership() ) : ?> <p>Ez a rész csak a fizetős tagoknak látszik.</p><?php endif; ?>Adott tagsági szintnek
Szekció neve “Adott tagsági szintnek”A 3.0.5-ös vagy újabb verzióban:
<?php if ( in_array( 2, rcp_get_customer_membership_level_ids() ) ) : ?> <p>Ez a rész csak a 2-es azonosítójú szint tagjainak látszik.</p><?php endif; ?>Régebbi verzióban:
<?php if ( rcp_is_active() && 2 == rcp_get_subscription_id() ) : ?> <p>Ez a rész csak a 2-es azonosítójú szint aktív tagjainak látszik.</p><?php endif; ?>Mindkét példában a 2 helyére a saját szinted azonosítóját írd.
A „Restrict this content” doboz beállításai szerint
Szekció neve “A „Restrict this content” doboz beállításai szerint”Egyéni oldalsablonnál használhatod az rcp_user_can_access() függvényt. Azt ellenőrzi, hogy a jelenlegi felhasználó megnézheti-e az oldalt a Restrict this content doboz beállításai szerint:
<?php if ( rcp_user_can_access() ) : ?> <p>Ez a rész azoknak látszik, akik megfelelnek a korlátozási doboz beállításainak.</p><?php endif; ?>Az RCP_Member osztály szintén használható a hozzáférés ellenőrzésére.
Hozzászólás csak tagoknak
Szekció neve “Hozzászólás csak tagoknak”Ha csak az aktív tagok írhassanak hozzászólást, a téma comments.php fájljában keresd meg ezt a sort (a fájl témánként eltér, de a szerkezete hasonló):
<?php comment_form(); ?>és cseréld erre:
<?php if ( rcp_user_has_active_membership() ) : ?> <?php comment_form(); ?><?php endif; ?>Widgetek elrejtése a nem tagok elől
Szekció neve “Widgetek elrejtése a nem tagok elől”A widgetek láthatóságát egy olyan külső bővítménnyel szabályozhatod, amely PHP-kódot fogad el feltételként. Ilyen például a Widget Options. A függvényekhez a Restrict Content Pro 3.0.5-ös vagy újabb verziója kell.
- Telepítsd és kapcsold be a bővítményt. Minden widget alján új beállításrész jelenik meg.
- Kattints a fogaskerék ikonra, majd a Logic fülre.
- Írd a szövegmezőbe a feltételt. A widget csak akkor jelenik meg, ha a kifejezés értéke igaz.
| Mit akarsz | Kifejezés |
|---|---|
| Csak az aktív tagoknak | rcp_user_has_active_membership() |
| Csak azoknak, akiknek nincs aktív tagságuk | ! rcp_user_has_active_membership() |
| Csak a fizetős aktív tagoknak | rcp_user_has_paid_membership() |
| Csak az ingyenes aktív tagoknak | rcp_user_has_free_membership() |
| Csak a 2-es azonosítójú szint tagjainak | in_array( 2, rcp_get_customer_membership_level_ids() ) |
| Ugyanez név szerint | in_array( 'Gold', rcp_get_customer_membership_level_names() ) |
| Az 1-es vagy 2-es szint tagjainak | count( array_intersect( rcp_get_customer_membership_level_ids(), array( 1, 2 ) ) ) |
| Az 1, 2 vagy 4 azonosítójú szintek tagjainak | count( array_intersect( rcp_get_customer_membership_level_ids(), array( 1, 2, 4 ) ) ) |
| A Bronze, Silver vagy Gold szint tagjainak | count( array_intersect( rcp_get_customer_membership_level_names(), array( 'Bronze', 'Silver', 'Gold' ) ) ) |
| Csak a lejárt tagoknak (például újra feliratkozásra buzdításhoz) | rcp_user_has_expired_membership() |
A ! jel tagadást jelent. Légy óvatos a kifejezések beírásakor: egy elírás üres (fehér) oldalt eredményezhet.
A kivonat hossza
Szekció neve “A kivonat hossza”A Restrict Content Pro alapból 50 szavas kivonatot mutat a korlátozott tartalomból. Az rcp_filter_excerpt_length szűrővel módosíthatod:
function pw_rcp_custom_excerpt_length( $length ) { return 100; // 100 szó}add_filter( 'rcp_filter_excerpt_length', 'pw_rcp_custom_excerpt_length' );A korlátozási doboz eltávolítása egy tartalomtípusról
Szekció neve “A korlátozási doboz eltávolítása egy tartalomtípusról”A Restrict this content doboz minden nyilvános tartalomtípus szerkesztőjében megjelenik. Az rcp_metabox_excluded_post_types szűrővel kivehetsz belőle típusokat. A szűrő egy tömböt kap, te hozzáadod a kizárandó típusok nevét:
function pippin_exclude_post_types_from_rcp( $post_types ) { $post_types[] = 'books'; $post_types[] = 'page';
return $post_types;}add_filter( 'rcp_metabox_excluded_post_types', 'pippin_exclude_post_types_from_rcp' );A példa a „books” és az oldal („page”) típusról tünteti el a dobozt. Annyi típust adhatsz meg, amennyit szeretnél.
Készült: