# Függvények: elavult tag-lekérdezések

> Az rcp_get_expiration_date(), rcp_get_member_cancel_url(), rcp_get_member_count(), rcp_get_members() és rcp_get_members_of_subscription() függvények és új megfelelőik.

Egyedi kódhoz tartozó függvények, ezért a bevezetésükhöz érdemes fejlesztő segítségét kérni. A 3.0-s verzió óta a legtöbbjük elavult, mert a bővítmény ügyfelekben és tagságokban gondolkodik, nem felhasználókban.

## rcp_get_expiration_date()

A felhasználó lejárati (vagy megújítási) dátumát adja vissza formázott szövegként, a WordPress **Beállítások → Általános** oldalán megadott dátumformátummal. A 3.0-s verziótól elavult, új kódban a tagság `RCP_Membership::get_expiration_date()` metódusát használd.

- `$user_id` (egész, elhagyható): a felhasználó azonosítója. Ha kimarad vagy `0`, a bejelentkezett felhasználót használja.

Visszatérési érték (szöveg): `none`, ha a tagság sosem jár le, különben a formázott dátum.

## rcp_get_member_cancel_url()

A felhasználó elsődleges tagságához (az ügyfél egyetlen tagságához) ad lemondási URL-t, ugyanazokkal a lekérdezési argumentumokkal, mint az `rcp_get_membership_cancel_url()`. A 3.0-tól elavult: ha több tagság engedélyezett, használd az `rcp_get_membership_cancel_url( $membership_id )` függvényt.

- `$user_id` (egész): a felhasználó azonosítója. Alapérték: `0` (a bejelentkezett felhasználó).

Visszatérési érték (szöveg): a lemondási URL, vagy üres szöveg, ha nincs ismétlődő tagság.

```php
$url = rcp_get_member_cancel_url();

if ( $url ) {
	echo '<a href="' . esc_url( $url ) . '">' . esc_html__( 'Előfizetés lemondása', 'rcp' ) . '</a>';
}
```

Az új megoldás:

```php
$customer   = rcp_get_customer_by_user_id( $user_id );
$membership = $customer ? rcp_get_customer_single_membership( $customer->get_id() ) : false;
$url        = $membership ? rcp_get_membership_cancel_url( $membership->get_id() ) : '';
```

## rcp_get_member_count()

Az egész oldalra érvényes összeget adja egy tagsági állapothoz: összeadja az `rcp_get_subscription_member_count()` értékét az összes tagsági szintre (legfeljebb 999 szintig). Szűrt számokhoz (egy szint, keresés, ismétlődő tagság) az `rcp_count_members()` vagy az `rcp_count_memberships()` való.

- `$status` (szöveg): az állapot, amelyet minden szintnél megszámol. Alapérték: `active`.

Visszatérési érték (egész): az összes szint összege, `0`, ha nincs szint.

```php
$active_members  = rcp_get_member_count( 'active' );
$expired_members = rcp_get_member_count( 'expired' );
$free_members    = rcp_get_member_count( 'free' );
```

## rcp_get_members()

Azokat a WordPress-felhasználókat kérdezi le, akiknek a szűrőkre illeszkedő RCP tagságuk van, és `WP_User` objektumokat ad vissza. A 3.0-tól elavult, tag- és ügyféladatokhoz az `rcp_get_memberships()` vagy az `rcp_get_customers()` a javasolt.

Csak az engedélyezett tagságokat (`disabled` = 0) veszi figyelembe. Az `active` állapot nem tartalmazza az ingyenes tagságokat (fizetős összeg kell hozzá), a `free` állapot azokat az aktív tagságokat jelenti, amelyeknél a kezdeti és az ismétlődő összeg is nulla.

| Paraméter | Jelentés |
|---|---|
| `$status` | A tagság állapota. Alapérték: `active`. Üres szöveggel nincs állapotszűrés. |
| `$subscription` | A tagsági szint azonosítója (`object_id`). Alapérték: `null` (minden szint). |
| `$offset` | Lapozás eltolása. Alapérték: `0`. |
| `$number` | Legfeljebb ennyi felhasználó. Alapérték: `999999`. |
| `$order` | `ASC` vagy `DESC` a felhasználóazonosító szerint. Alapérték: `DESC`. |
| `$recurring` | Ha megadod: `1` a nem ismétlődő (`auto_renew` = 0), bármely más igaz érték az ismétlődő (`auto_renew` = 1) tagságokat adja. |
| `$search` | Keresőszó: sima szöveg (belépési név, e-mail), vagy a `first_name:`, `last_name:`, `payment_profile:` előtaggal. |

Visszatérési érték: `WP_User` objektumok tömbje, vagy `false`, ha nincs találat.

```php
$users = rcp_get_members( 'active', 2, 0, 50 );

if ( is_array( $users ) ) {
	foreach ( $users as $user ) {
		// Fizetős, aktív tag a 2-es szinten.
	}
}
```

Az új megoldás:

```php
$memberships = rcp_get_memberships(
	array(
		'object_id' => 2,
		'status'    => 'active',
		'number'    => 50,
	)
);
```

## rcp_get_members_of_subscription()

Egy tagsági szint felhasználóit adja vissza: az `rcp_get_members()` függvényt hívja üres állapottal (nincs állapotszűrés) és a szint azonosítójával. A 3.0-tól elavult, helyette az `rcp_get_memberships()` való az `object_id` argumentummal.

- `$id` (egész): a tagsági szint azonosítója. Alapérték: `1`.
- `$fields` (szöveg vagy tömb): nem használt, csak a régi szignatúra miatt van meg. Alapérték: `'ID'`.

Visszatérési érték: ugyanaz, mint az `rcp_get_members( '', $id )` függvényé.

```php
$users = rcp_get_members_of_subscription( 3 );

$memberships = rcp_get_memberships( array( 'object_id' => 3 ) );
```

## rcp_get_status()

A 3.0-tól elavult. A felhasználó tagsági állapotát adja vissza szövegként a régi `RCP_Member` objektumon át. Ha a felhasználó tagsága lejárt, az állapotát `expired`-re is állíthatja. Új kódban egy konkrét `RCP_Membership` rekord `get_status()` metódusát használd.

- `$user_id` (egész): a felhasználó azonosítója. Alapérték: `0` (a bejelentkezett felhasználó).

Visszatérési érték (szöveg): az állapot, például `active`, `expired`, `cancelled` vagy `pending`.

```php
$status = rcp_get_status( get_current_user_id() );
```

Az új megoldás:

```php
$membership = rcp_get_membership( 123 );
if ( $membership ) {
	$status = $membership->get_status();
}
```

## rcp_get_subscription()

A 3.0-tól elavult. A felhasználó elsődleges tagságához tartozó tagsági szint nevét adja vissza (nem a tagság azonosítóját). Helyette az `rcp_get_customer_membership_level_names()` ajánlott. Szűrő: `rcp_member_get_subscription_name`.

- `$user_id` (egész): a felhasználó azonosítója. Alapérték: `0` (a bejelentkezett felhasználó).

Visszatérési érték (szöveg): a szint neve, üres szöveg, ha nincs szint.

```php
$name = rcp_get_subscription( get_current_user_id() );

if ( $name ) {
	echo esc_html( $name );
}
```

Kapcsolódó rövidkód: `subscription_name`.

## rcp_get_subscription_details()

A 3.4-től elavult. A neve megtévesztő: nem felhasználói előfizetést, hanem egy tagsági szintet tölt be az azonosítója alapján. Elavulási figyelmeztetést vált ki, és az `rcp_get_membership_level( $id )` függvényt hívja.

- `$id` (egész): a tagsági szint azonosítója.

Visszatérési érték: a tagsági szint objektuma, vagy `false` hiba esetén (ugyanúgy, mint az `rcp_get_membership_level()`).

```php
$level = rcp_get_membership_level( 2 );

if ( $level ) {
	$price = $level->get_price();
}
```

```php
// Régi hívás, hibakereső módban elavulási figyelmeztetést ad:
$level = rcp_get_subscription_details( 2 );
```

Ne keverd össze az `rcp_get_subscription()` függvénnyel (a felhasználó szintjének neve) és az `rcp_get_membership()` függvénnyel (a felhasználó egy tagságrekordja).
