# Tagsági szintek és tagságok fejlesztőknek

> WP-CLI parancsok tagsági szintekhez és tagságokhoz, valamint a tagság metaadatainak PHP-függvényei.

Ez a fejezet fejlesztői funkciókat ír le, ezek egyéni kódnak számítanak.

## Tagsági szintek: `wp rcp membership-level`

A parancs tagsági szintek létrehozására, módosítására, törlésére, listázására és lekérésére szolgál.

```bash
wp rcp membership-level list
wp rcp membership-level list --format=count
wp rcp membership-level list --format=ids
wp rcp membership-level list --field=name
wp rcp membership-level list --fields=id,name,description
wp rcp membership-level get 1
wp rcp membership-level get 1 --field=name
wp rcp membership-level delete 1
wp rcp membership-level delete 1 2 3
wp rcp membership-level create --name='example'
wp rcp membership-level create --name='example 2' --status='active'
wp rcp membership-level create --name='example 3' --porcelain
wp rcp membership-level update 1 --name='1 Month Recurring (Updated)'
wp rcp membership-level update 1 2 --price=20
```

Az utolsó előtti példa a `--porcelain` kapcsolóval csak az új szint azonosítóját írja ki. Az `update` több azonosítóra is lefuthat egyszerre.

## Tagságok: `wp rcp memberships`

A parancs tagságokat kér le és hoz létre.

| Kapcsoló | Jelentése |
| --- | --- |
| `--id=<azonosító>` | Egy adott tagság azonosítója. |
| `--email=<e-mail>` | Az adott e-mail-című ügyfél tagságai. |
| `--create=<darab>` | Hány új tagságot hozzon létre. Alapértéke 30. |
| `--range=<napok>` | Az új tagságok létrehozási dátumait hány napos időszakra szórja szét. Alapértéke 30. |
| `--status=<állapot>` | Az új tagságok állapota: `active`, `pending`, `expired` vagy `canceled`. Alapértelmezetten véletlenszerű. |
| `--level=<azonosító>` | Az új tagságokhoz rendelt szint azonosítója. Alapértelmezetten tagságonként véletlenszerű. |

A tagságok létrehozásakor a rendszer a hozzájuk tartozó felhasználói fiókokat, ügyfélrekordokat és fizetési rekordokat is létrehozza.

```bash
wp rcp memberships --id=206
wp rcp memberships --create=2 --range=180 --status=active
```

Az első parancs egy adott tagságot kér le, a második 2 aktív tagságot hoz létre, véletlenszerűen az elmúlt 180 napra elosztva.

## Tagság metaadatai

A Restrict Content Pro 3.0-ás és újabb kiadásaiban van egy `memberships` és egy `membershipmeta` adatbázistábla. A metatáblával saját adatokat fűzhetsz egy tagsághoz. Négy függvény kezeli:

| Függvény | Mit csinál |
| --- | --- |
| `rcp_get_membership_meta()` | Lekéri egy tagság metaadatát. |
| `rcp_add_membership_meta()` | Metamezőt ad a tagsághoz. |
| `rcp_update_membership_meta()` | Frissíti a metamezőt. Ha még nincs, létrehozza. |
| `rcp_delete_membership_meta()` | Törli a metaadatot. |

### `rcp_get_membership_meta()`

- `$membership_id` (int): a tagság azonosítója.
- `$meta_key` (string): nem kötelező, a lekérdezett kulcs. Alapértelmezetten minden kulcs adatát visszaadja.
- `$single` (bool): nem kötelező, alapértéke `false`. Ha `true`, csak a megadott kulcs első értékét adja vissza. Kulcs megadása nélkül nincs hatása.

### `rcp_add_membership_meta()`

- `$membership_id` (int): a tagság azonosítója.
- `$meta_key` (string): a kulcs neve.
- `$meta_value` (mixed): az érték. Nem skaláris érték esetén szerializálhatónak kell lennie.
- `$unique` (bool): nem kötelező, alapértéke `false`. Ha `true`, ugyanaz a kulcs nem vehető fel még egyszer.

### `rcp_update_membership_meta()`

- `$membership_id` (int): a tagság azonosítója.
- `$meta_key` (string): a kulcs neve.
- `$meta_value` (mixed): az új érték, szerializálhatónak kell lennie, ha nem skaláris.
- `$prev_value` (mixed): nem kötelező, a cserélendő korábbi érték.

### `rcp_delete_membership_meta()`

- `$membership_id` (int): a tagság azonosítója.
- `$meta_key` (string): a kulcs neve.
- `$meta_value` (mixed): nem kötelező, a törlendő érték.

### Metaadat használata lekérdezésben

Az `rcp_get_memberships()` függvénnyel metalekérdezés is futtatható. A példa minden tagságot megkeres, amelynek `company` kulcsa „Sandhills”:

```php
$memberships = rcp_get_memberships( array(
    'number'     => 9999,
    'meta_query' => array(
        array(
            'key'   => 'company',
            'value' => 'Sandhills',
        ),
    ),
) );
```

A példák útmutatásul szolgálnak, módosításukhoz fejlesztő segítségét érdemes kérni.
