Tovább a tartalomhoz

Függvények: kedvezménykódok, tagságok száma, tartalomkorlátozás

Az rcp_add_discount(), rcp_delete_discount(), rcp_get_discount(), rcp_get_discount_by(), rcp_get_discounts(), rcp_count_memberships() és rcp_get_content_subscription_levels() 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.

Kedvezménykódot ír az adatbázisba. A code kötelező és egyedi. Az alapértelmezett status értéke disabled, ezért regisztrációhoz active-ra kell állítani. A százalékos kedvezmény (unit = %) egész szám lehet 1 és 100 között. A unit értéke % vagy flat (fix összeg). A régi subscription_id argumentum a membership_level_ids tömbre képeződik le.

Akciók: rcp_pre_add_discount (beszúrás előtt) és rcp_add_discount (beszúrás után).

A $args tömb elemei:

Kulcs Jelentés
code Kötelező. Egyedi kód.
name Elhagyható címke.
description Elhagyható leírás.
amount Összeg. Alapérték: 0.00.
unit % vagy flat. Alapérték: %.
status active vagy disabled. Alapérték: disabled.
max_uses Legfeljebb ennyiszer használható. Alapérték: 0 (korlátlan).
use_count A használatok száma. Alapérték: 0.
expiration Elhagyható lejárati időpont.
membership_level_ids Azoknak a szinteknek az azonosítói, amelyekre a kód érvényes. Üresen minden szintre.
one_time Egyszeri használat jelzője.
subscription_id Régi argumentum, egyetlen szint azonosítója.

Visszatérési érték: az új kedvezmény azonosítója, vagy WP_Error, ha hiányzik a kód, duplikált, érvénytelen az összeg, vagy a beszúrás nem sikerül.

$discount_id = rcp_add_discount(
array(
'code' => 'inditas20',
'name' => 'Indulási 20% kedvezmény',
'amount' => 20,
'unit' => '%',
'status' => 'active',
'membership_level_ids' => array( 2, 3 ),
)
);
if ( is_wp_error( $discount_id ) ) {
// Hibakezelés.
}

Lekérdezéséhez az rcp_get_discount_by() függvény és az RCP_Discount osztály való.

Véglegesen töröl egy kedvezménykódot az adatbázisból. A törlés előtt lefut az rcp_delete_discount akció.

  • $discount_id (egész): a kedvezmény azonosítója.

Visszatérési érték (logikai): a törlési lekérdezés eredménye.

if ( rcp_delete_discount( $discount_id ) ) {
// A kedvezmény törölve.
}
$discount = rcp_get_discount( $discount_id );
if ( $discount ) {
rcp_delete_discount( $discount->get_id() );
}

Megszámolja a lekérdezésre illeszkedő tagságokat. Ugyanazokat az argumentumokat fogadja, mint az rcp_get_memberships(), a count paramétert belül true-ra állítja, ezért te ne add meg. Alapesetben csak az engedélyezett tagságokat számolja (disabled => 0).

Gyakori szűrők: status, object_id (a tagsági szint azonosítója), customer_id, gateway, expiration_date_query, disabled, number, offset.

Visszatérési érték: az illeszkedő tagságok száma (egész).

Aktív tagságok:

$total = rcp_count_memberships( array(
'status' => 'active',
) );

A 3-as szint lejárt tagságai:

$total = rcp_count_memberships( array(
'object_id' => 3,
'status' => 'expired',
) );

2024 decemberében lejáró tagságok:

$total = rcp_count_memberships( array(
'expiration_date_query' => array(
'after' => date( '2024-12-01 00:00:00', current_time( 'timestamp' ) ),
'before' => date( '2024-12-31 23:59:59', current_time( 'timestamp' ) ),
),
) );

Visszaadja, mely tagsági szintek kellenek egy bejegyzés eléréséhez, a bejegyzés rcp_subscription_level meta értéke alapján (ezt a szerkesztő „Tartalom korlátozása” dobozában állítod be). Nem olvassa a teljes bejegyzéstípusra szóló szabályokat és a kategóriákhoz kötött korlátozásokat. Ha ezeket is tartalmazó összesített képet akarsz, használd az rcp_get_post_restrictions() függvényt.

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

Lehetséges visszatérési értékek:

  • false: régi érték, amikor a meta all (nincs szintkorlátozás).
  • 'any': bármelyik tagsági szint.
  • 'any-paid': bármelyik fizetős szint.
  • tömb: egy vagy több tagsági szint azonosítója.
  • üres vagy más hamis érték, ha a bejegyzésen nincs szintkorlátozás.
$levels = rcp_get_content_subscription_levels( get_the_ID() );
if ( 'any-paid' === $levels ) {
// Bármelyik fizetős szint kell.
}
if ( is_array( $levels ) && in_array( 3, $levels, true ) ) {
// A 3-as szint szükséges.
}

A bejegyzéstípus szintű szabályokat is magában foglaló lekérdezés:

$levels = rcp_get_post_restrictions( get_the_ID() );
// A membership_levels kulcs tartalmazza a bejegyzéstípus szabályait is.

Egy kedvezménykódot kér le azonosító alapján. Siker esetén RCP_Discount objektumot ad, hiba esetén false-t.

  • $discount_id (egész): a kedvezmény azonosítója.
$discount = rcp_get_discount( 123 );

Egy kedvezménykódot kér le egy oszlop és egy érték párosa alapján. Siker esetén RCP_Discount objektumot ad, hiba esetén false-t.

  • $column_name (szöveg): az oszlop neve.
  • $column_value (bármi): az oszlop értéke.

A beta_tester kódú kedvezmény lekérése:

$discount = rcp_get_discount_by( 'code', 'beta_tester' );

Kedvezménykódok lekérdezése szűrőkkel. Az $args tömb minden eleme elhagyható.

Kulcs Jelentés
id Csak ezt az azonosítójú kedvezményt adja vissza.
id__in Azonosítók tömbje, csak ezeket adja vissza.
id__not_in Azonosítók tömbje, ezeket kihagyja.
name A kedvezmény neve.
amount Az összeg szerinti szűrés.
unit Az egység szerinti szűrés (percentage vagy flat).
code A kód szerinti szűrés.
status active vagy disabled.
one_time 1: csak az egyszeri kedvezmények, 0: csak az ismétlődők. Ha kimarad, mindegyik.
expiration_query Lejárati idő szerinti szűrés (WP_Date_Query formátum).
date_created_query A létrehozás ideje szerinti szűrés (WP_Date_Query formátum).
date_modified_query Az utolsó módosítás ideje szerinti szűrés (WP_Date_Query formátum).
count true: csak a találatok számát adja, false: RCP_Discount objektumok tömbjét. Alapérték: false.
fields A visszaadott mezők (bármelyik oszlopnév). Üresen teljes objektumokat ad.
number Legfeljebb ennyi találat. Alapérték: 20.
offset Kihagyott találatok száma. Alapérték: 0.
orderby Rendezés: id, name, code, use_count, max_uses, status, expiration, date_created, date_modified. Alapérték: id.
order ASC vagy DESC. Alapérték: DESC.
search Keresőszó a name, description és code oszlopokban.

Visszatérési érték: RCP_Discount objektumok tömbje, találat nélkül üres tömb.

Legfeljebb 100 aktív kedvezménykód:

$discounts = rcp_get_discounts( array(
'status' => 'active',
'number' => 100,
) );

Azoknak a kedvezményeknek az azonosítója, amelyek 2000. január 1. és az idei év vége között járnak le:

$discounts = rcp_get_discounts( array(
'expiration_query' => array(
'after' => '2000-01-01 00:00:00',
'before' => date( 'Y-12-31 23:59:59' ),
'inclusive' => true,
),
'fields' => 'id',
) );

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