Tovább a tartalomhoz

Függvények: korlátozott tartalmak lekérdezése

Az rcp_get_paid_posts(), rcp_get_post_ids_assigned_to_restricted_terms(), rcp_get_post_restrictions(), rcp_get_restricted_post_ids() és rcp_get_restricted_post_types() függvények.

Egyedi kódhoz tartozó függvények, ezért a bevezetésükhöz érdemes fejlesztő segítségét kérni. Egyik sem azt mondja meg, hogy az adott felhasználó láthatja-e a tartalmat: ahhoz az rcp_user_can_access() való.

Azoknak a közzétett bejegyzéseknek az azonosítóit adja vissza, amelyeknél a korlátozás dobozban be van kapcsolva a „csak fizetős” jelölő (a _is_paid bejegyzés-meta értéke 1). Azokat nem tartalmazza, amelyek csak egy egész bejegyzéstípusra érvényes szabály miatt fizetősek. Ezekhez bejegyzésenként az rcp_is_paid_content() függvény kell.

Paraméter nincs. Visszatérési érték: bejegyzésazonosítók tömbje, üres tömb, ha nincs találat.

$paid_post_ids = rcp_get_paid_posts();
foreach ( $paid_post_ids as $post_id ) {
// Mindegyik közzétett bejegyzésnél be van állítva a _is_paid meta.
}

Kapcsolódik hozzá a paid_posts rövidkód és az rcp_is_paid_content() függvény.

rcp_get_post_ids_assigned_to_restricted_terms()

Szekció neve “rcp_get_post_ids_assigned_to_restricted_terms()”

Azoknak a bejegyzéseknek az azonosítóit adja vissza, amelyek olyan taxonómiafogalomhoz (kategória, címke stb.) tartoznak, amelyhez valódi korlátozás van mentve az rcp_restricted_meta mezőben. Kihagyja az üres metájú fogalmakat és azokat, amelyeknél csak a régi „None” hozzáférési szint áll (az üres régi metát el is távolíthatja).

Minden nyilvános taxonómiát végigjár. Az eredményt egy napig az rcp_post_ids_assigned_to_restricted_terms néven gyorsítótárazza, és törli, ha a bejegyzések vagy a fogalmak korlátozása megváltozik (ugyanakkor, mint az rcp_get_restricted_post_ids() gyorsítótára).

Paraméter nincs. Visszatérési érték: bejegyzésazonosítók tömbje, legalább egy korlátozott fogalommal.

$term_restricted = rcp_get_post_ids_assigned_to_restricted_terms();
foreach ( $term_restricted as $post_id ) {
$restrictions = rcp_get_term_restrictions( /* fogalom azonosítója */ );
}

Egy adott fogalom beállításait az rcp_get_term_restrictions(), a felhasználó hozzáférését az rcp_user_can_access_term() adja meg.

Egy bejegyzés tagsági és hozzáférési követelményeit adja vissza tömbként.

Ha a bejegyzéstípushoz van egész típusra érvényes korlátozás, azt kapod. Ha nincs, a bejegyzés saját korlátozás dobozának értékeit. A taxonómiafogalmak korlátozása nem szerepel benne, azt fogalmanként az rcp_get_term_restrictions() adja.

  • $post_id (egész): a bejegyzés azonosítója.

Visszatérési érték (tömb), a kulcsok és az alapértékek:

Kulcs Jelentés
membership_levels Üres szöveg, any, any-paid, vagy tagsági szint-azonosítók tömbje.
access_level A szükséges hozzáférési szint. Alapérték: 0.
user_level A szükséges WordPress-szerepkörök, jogosultságok tömbje. Alapérték: üres tömb.
$restrictions = rcp_get_post_restrictions( get_the_ID() );
if ( ! empty( $restrictions['membership_levels'] ) ) {
// A bejegyzéshez meghatározott tagsági szint(ek), vagy bármely/bármely fizetős tagság kell.
}
$restrictions = rcp_get_post_restrictions( 100 );
$level = isset( $restrictions['access_level'] ) ? (int) $restrictions['access_level'] : 0;

Azoknak a közzétett bejegyzéseknek az azonosítóit adja vissza, amelyeknek van bejegyzésszintű korlátozásuk: fizetős jelölő, tagsági szint, hozzáférési szint vagy régi szintmező. Azokat nem listázza, amelyeket csak taxonómiafogalom vagy egész bejegyzéstípusra érvényes szabály korlátoz.

Az eredmény az rcp_restricted_post_ids átmeneti tárolóban (transient) egy napig gyorsítótárazva van. A bővítmény törli, amikor bejegyzést mentesz, kukába teszel vagy visszaállítasz (a fogalmakhoz rendelt bejegyzések gyorsítótárával együtt).

Paraméter nincs. Visszatérési érték: bejegyzésazonosítók tömbje.

$restricted_ids = rcp_get_restricted_post_ids();
if ( in_array( get_the_ID(), $restricted_ids, true ) ) {
// Ennek a bejegyzésnek van korlátozás dobozban mentett szabálya.
}

Érdemes összevetni az rcp_get_post_ids_assigned_to_restricted_terms() és az rcp_is_restricted_content() függvénnyel.

Az összes olyan bejegyzéstípust visszaadja, amelyhez egész típusra érvényes korlátozás van mentve a Restrict Content → Beállítások oldalon (az egész bejegyzéstípus korlátozása). Az adat az rcp_restricted_post_types opcióban van.

Ez beállítási adat, nem felhasználónkénti hozzáférés-ellenőrzés. Egy típus korlátozottságát az rcp_is_restricted_post_type( $post_type ), a szabályait az rcp_get_post_type_restrictions( $post_type ) adja meg. A bejegyzésenkénti szabályok külön vannak, azokhoz az rcp_get_post_restrictions() való.

Paraméter nincs. Visszatérési érték (tömb): a kulcsok a bejegyzéstípusok azonosítói, az értékek a korlátozás beállításai (tagsági szintek, hozzáférési szint, fizetős jelölő és hasonlók). Üres tömb, ha nincs beállítva semmi.

$restricted = rcp_get_restricted_post_types();
if ( isset( $restricted['post'] ) ) {
// A „post” típusra érvényes korlátozás van.
}
if ( rcp_is_restricted_post_type( 'page' ) ) {
$rules = rcp_get_post_type_restrictions( 'page' );
}

Egy taxonómiafogalomra (kategória, címke vagy más, a bővítményben engedélyezett taxonómia) mentett korlátozási beállításokat adja vissza. Az rcp_restricted_meta fogalom-metát olvassa, és ha az nincs, a régi rcp_category_meta_{term_id} opcióra esik vissza.

Csak a beállítást adja vissza, azt nem, hogy a felhasználó megfelel-e a szabályoknak. Ahhoz az rcp_user_can_access_term() való.

  • $term_id (egész): a fogalom azonosítója.

Visszatérési érték (tömb), a gyakori kulcsok (ha be vannak állítva):

Kulcs Jelentés
paid_only Fizetős tagság kell.
access_level A legkisebb hozzáférési szint (egész). Kimarad, ha az értéke none.
subscriptions A fogalomhoz engedélyezett tagsági szint-azonosítók tömbje.

Üres tömb, ha a fogalomnak nincs korlátozása.

$restrictions = rcp_get_term_restrictions( $term_id );
if ( ! empty( $restrictions['paid_only'] ) ) {
// A fogalom csak fizetős tagoknak szól.
}

Megmondja, hogy a bejegyzésnek van-e a korlátozás dobozban mentett beállítása (csak a bejegyzés saját metaadata számít). Nem veszi figyelembe az egész bejegyzéstípusra érvényes szabályokat és a taxonómiafogalmak korlátozását. Ha bármilyen korlátozás érdekel, az rcp_is_restricted_content(), a nyers követelménytömb pedig az rcp_get_post_restrictions() függvény adja.

Ezeket nézi: a „csak fizetős” jelölőt (_is_paid), a tagsági szinteket (rcp_get_content_subscription_levels()), a WordPress-szerepköröket (rcp_user_level) és a hozzáférési szintet (rcp_access_level), ha be vannak állítva, és nem „none” értékűek.

  • $post_id (egész): a bejegyzés azonosítója. Üres vagy nem számérték esetén false a válasz.

Visszatérési érték (logikai): true, ha a bejegyzésnek van saját korlátozása, különben false.

if ( rcp_has_post_restrictions( get_the_ID() ) ) {
// A bejegyzésnek van bejegyzésszintű korlátozása.
}
if ( rcp_is_restricted_content( $post_id ) && ! rcp_has_post_restrictions( $post_id ) ) {
// A korlátozás a bejegyzéstípusból és/vagy a fogalmakból jön, nem a bejegyzés dobozából.
}

Megmondja, hogy a bejegyzés „csak fizetős”-e, vagyis fizetős tagság kell hozzá, az ingyenes szint nem elég. Először az egész bejegyzéstípusra érvényes fizetős szabályt nézi, utána a bejegyzés _is_paid metaadatát a korlátozás dobozból.

Nem mondja meg, hogy a bejegyzés egyáltalán korlátozott-e, és azt sem, hogy az aktuális felhasználó megnézheti-e. Ezekhez az rcp_is_restricted_content() és az rcp_user_can_access() való.

  • $post_id (egész): a bejegyzés azonosítója. Ha üres vagy nem egész szám, az aktuális bejegyzést (get_the_ID()) használja.

Visszatérési érték (logikai): true, ha csak fizetős; különben false.

if ( rcp_is_paid_content( get_the_ID() ) ) {
// Csak fizetős tagoknak.
}

Ezen a néven szűrő is van: az rcp_is_paid_content szűrővel felülbírálhatod, hogy egy bejegyzés fizetős tartalomnak számít-e.

Paraméter Jelentés
$is_paid (logikai) Aktív, fizetős előfizetést igényel-e a bejegyzés.
$post_id (egész) A vizsgált bejegyzés azonosítója.
add_filter( 'rcp_is_paid_content', function ( $is_paid, $post_id ) {
if ( 'tanfolyam' === get_post_type( $post_id ) ) {
return true;
}
return $is_paid;
}, 10, 2 );

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