# WP-CLI parancsok

> A wp lw-lms parancsai: kurzusok, leckék, kvízek, feliratkozás, ütemezés és a LearnDash-migráció, valódi kimenetekkel.

Főparancs: `wp lw-lms`. A felhasználót ID-vel, felhasználónévvel vagy e-mail-címmel, a kurzust és a leckét ID-vel vagy sluggal adhatod meg. A kimenet angol. Hibánál a kilépési kód 1.

## Kurzusok és leckék

| Parancs | Fontos kapcsolók |
|---|---|
| `course create --title=<cím>` | `--access-type=open\|free\|paid` (alap: az **Alapértelmezett hozzáférés**), `--duration`, `--status` (publish), `--excerpt`, `--content`, `--porcelain` (csak az ID) |
| `course list` | `--access-type`, `--status` (any), `--per-page` (100), `--format=table\|csv\|json\|yaml\|count\|ids` |
| `course delete <kurzus>` | `--force` (kuka helyett végleges) |
| `course set-section <kurzus> --id=<szakasz>` | `--title`, `--description`, `--order`; ugyanazzal az `--id`-vel frissít |
| `course set-drip <kurzus>` | `--progression=free\|linear`, `--delay=<n>` (0 = azonnal, legfeljebb 999), `--unit=hour\|day\|week\|month` (day) |
| `lesson create --title=<cím> --course=<kurzus>` | `--section`, `--order` (0), `--duration`, `--status`, `--content`, `--porcelain` |
| `lesson list --course=<kurzus>` | `--section`, `--status` (any), `--per-page` (200), `--format` |
| `lesson assign <lecke> --course=<kurzus>` | `--section` (üres szöveg törli), `--order` |
| `lesson set-quiz <lecke> --file=<fájl>` | `--file=-` a bemenetről olvas; a teljes kvízt cseréli |
| `lesson get-quiz <lecke>` | `--format=json\|table`; a helyes válaszokkal együtt |
| `lesson delete-quiz <lecke>` | a tanulók korábbi kísérletei megmaradnak |
| `lesson set-drip <lecke> --mode=none\|enrollment\|previous` | `--delay` (0), `--unit` (day) |

```text title="Kimenet"
$ wp lw-lms course create --title="Kerámiakészítés kezdőknek" --access-type=free --duration=6h --excerpt="Hat leckében a korongozás alapjai." --porcelain
35

$ wp lw-lms course list
id	title	slug	status	access_type	duration
35	Kerámiakészítés kezdőknek	keramiakeszites-kezdoknek	publish	free	6h
36	Haladó mázazás	halado-mazazas	publish	paid	4h

$ wp lw-lms lesson list --course=35
id	title	slug	status	section	order
38	Korongozás lépésről lépésre	korongozas-lepesrol-lepesre	publish		0
39	Szárítás és égetés	szaritas-es-egetes	publish		0
37	Az agyag előkészítése	az-agyag-elokeszitese	publish		0
```

Ha minden leckének ugyanaz az `order` értéke, a sorrend nem a létrehozásé. Ha számít, adj leckénként `--order`-t.

A szakaszhoz kötelező az `--id`:

```text title="Kimenet"
$ wp lw-lms course set-section 35 --title="Alapok"
Error: Parameter errors:
 missing --id parameter (Section identifier (string, e.g. "sec_intro").)
```

## Tanulók és ütemezés

| Parancs | Mit csinál |
|---|---|
| `enroll <felhasználó> <kurzus>` | Hozzáférést ad. `--source` (manual), `--expires-at=ÉÉÉÉ-HH-NN[ ÓÓ:PP:MM]` (üres = korlátlan). Többszöri futtatás nem duplikál. |
| `revoke <felhasználó> <kurzus>` | Elveszi a hozzáférést. Ha nincs aktív, figyelmeztet. |
| `force-complete <felhasználó> <kurzus>` | Minden publikált leckét elvégzettre állít. |
| `drip status <felhasználó> <kurzus>` | A tanuló zárolásai leckénként. `--format=table\|json\|csv\|yaml` |
| `drip set-start <felhasználó> <kurzus>` | Az ütemezés kezdőideje. `--date="2026-09-01 08:00:00"` (helyi idő, alap: most), `--clear` |

```text title="Kimenet"
$ wp lw-lms enroll toth.eszter 35
Success: Enrolled user #2 to course #35 (source: manual).

$ wp lw-lms drip status toth.eszter 35
Course #35: progression free, course delay none, clock starts 2026-10-28T18:19:15+01:00.
position	lesson_id	title	section	rule	state	reason	available_at	completed_at
1	37	Az agyag előkészítése	-	none	open
2	38	Korongozás lépésről lépésre	-	none	open
3	39	Szárítás és égetés	-	none	open

$ wp lw-lms lesson get-quiz 37
Error: Lesson #37 has no quiz.
```

## Migráció LearnDashből

A `wp lw-lms migrate-learndash` a LearnDash kurzusait és leckéit hozza át. A LearnDash legyen aktív.

```bash title="Terminál"
wp lw-lms migrate-learndash --dry-run
wp lw-lms migrate-learndash --verbose
```

Előbb a `--dry-run` futtasd: ez csak megmutatja, mi történne, és nem módosít semmit. A `--verbose` tételenként részletez.
