# Letölthető termékek kezelése

> A letölthető termékek beállításai: a fájlok kézbesítési módja, a hozzáférés korlátozása, a fájlok tárolása és védelme, a vásárlók hozzáférése és a letöltési jogosultságok kezelése.

A letölthető termékek alapbeállításai a legtöbb boltnak megfelelnek, de egyes boltoknak más beállítás kell. Ebből a fejezetből megtudod, hogyan szállítja a WooCommerce a fájlokat, hogyan védheted őket, és hogyan jutnak hozzájuk a vásárlóid. A beállításokhoz hozzáférés kell a WooCommerce beállításaihoz és a rendelésekhez. Ha a fiókoddal nem nyílnak meg ezek az oldalak, kérd az áruház adminisztrátorának segítségét.

## A letöltések beállításai

1. Nyisd meg a **WooCommerce → Beállítások → Termékek → Letölthető termékek** oldalt.
2. Válassz egy módszert a **Fájl letöltési módszer** listából.
3. Állítsd be a hozzáférés korlátozásait.
4. Döntsd el, hogy a **Fájlnév** alatti biztonsági beállítás bekapcsolva marad-e.
5. Kattints a **Módosítások mentése** gombra.

![A Letölthető termékek beállításai: fájl letöltési módszer, hozzáférés korlátozása, megnyitás böngészőben, fájlnév és részleges letöltések](./kepek/termekek-rendelesek-letoltheto-beallitasok.webp)

*A Letölthető termékek beállításai: fájl letöltési módszer, hozzáférés korlátozása, megnyitás böngészőben, fájlnév és részleges letöltések* (https://minta-bolt.hu/wp-admin/admin.php?page=wc-settings&tab=products&section=downloadable)

A kép a teljes beállítóoldalt mutatja. A **Jóváhagyott letöltési könyvtárak** fül a **Letölthető termékek** mellett található.

### A fájl letöltési módszere

| Módszer | Hogyan működik |
| --- | --- |
| **Letöltések kikényszerítése** | A fájlt a PHP szállítja, így nem lehet közvetlenül hivatkozni rá. Nagy fájloknál vagy gyenge szervernél időtúllépés fordulhat elő: ilyenkor kérd a tárhelyszolgáltatót, hogy javítsa a szerver teljesítményét, vagy használjon X-Accel-Redirect/X-Sendfile módszert. Távoli fájloknál a PHP-nek engedélyeznie kell a távoli adatfolyamokat (`allow_url_fopen`); ha a távoli letöltés nem megy, ezt kérd a tárhelyszolgáltatótól. |
| **X-Accel-Redirect/X-Sendfile** | A szerver (nginx vagy Apache) közvetlenül a vásárlónak adja a fájlt. A szerveren telepítve és bekapcsolva kell lennie az X-Accel-Redirect vagy az X-Sendfile modulnak: választás előtt kérdezd meg a tárhelyszolgáltatót. A védelem a szerver támogatásától és beállításától függ, az NGINX külön beállítást igényel. |
| **Redirect only (insecure)** | A vásárló a fájl címére kerül átirányítva. A hivatkozás ismeretében bárki hozzáfér a fájlhoz, bejelentkezés nélkül is, vagyis a vásárló másnak is továbbadhatja a linket. |

Ha a **Letöltések kikényszerítése** vagy az **X-Accel-Redirect/X-Sendfile** módszert választod, bekapcsolhatod az **Az átirányítási mód (nem biztonságos) használatának engedélyezése végső megoldásként** jelölőnégyzetet. Ekkor a rendszer az átirányítást használja, ha egy távoli fájlt a választott módszerrel nem lehet kézbesíteni. Ennek ugyanazok a kockázatai, mint az átirányításnak, de hasznos, ha a fájlokat több platformon tárolod, és az nem mindegyik módszerrel működik.

### Hozzáférés korlátozása

| Beállítás | Mit csinál |
| --- | --- |
| **A letöltéshez be kell jelentkezni** | A regisztrált vásárlóknak be kell jelentkezniük a letöltés előtt. A vendég vásárlásokra nincs hatással: ha azt szeretnéd, hogy minden vásárlónak legyen fiókja, kapcsold ki a vendég pénztárat. |
| **A letölthető termékekhez már a fizetés elindítása után engedélyezett a hozzáférés** | A vásárló a „folyamatban” állapotú rendelésnél is hozzáfér a fájlokhoz, nem kell megvárnia a „befejezett” állapotot. Akkor hasznos, ha fizikai és letölthető termékeket is árulsz, és nem akarod, hogy a vásárló a digitális tartalommal megvárja a fizikai termék megérkezését. |

### Fájlnév

Az **Egy egyedi karakterlánc hozzáadása a fájlnévhez a biztonság érdekében** beállítás alapból be van kapcsolva, és ajánlott. Az egyedi karakterlánc megnehezíti, hogy illetéktelenek kitalálják a letöltési címet. Nem szükséges, ha a feltöltési könyvtárat más módon megfelelően védted. A beállítás átváltása a már feltöltött fájlokat és hivatkozásokat nem érinti, csak az utána feltöltöttekre vonatkozik.

### További beállítások

- **Megnyitás böngészőben:** a letölthető fájl a böngészőben nyílik meg, és nem töltődik le azonnal. A vásárló továbbra is elmentheti a fájlt.
- **Részleges letöltések számítása:** ha be van kapcsolva, a letöltéseket akkor is számolja, ha a fájlnak csak egy részét kérték le. Az ésszerű időablakon belüli (alapból 30 perces) ismételt letöltéseket nem számolja kétszer. Ez általában ésszerű módja a letöltési korlátok érvényesítésének a tartománykérések esetén.

A **WooCommerce → Beállítások → Termékek → Jóváhagyott letöltési könyvtárak** oldal azoknál a boltoknál hasznos különösen, ahol az üzletvezetők vagy más felhasználók is szerkeszthetnek termékeket.

## A letöltött fájlok védelme

A WooCommerce alapból egy `.htaccess` fájlt tesz a `wp-content/uploads/woocommerce_uploads` könyvtárba, hogy megvédje a fájlokat. Ez azonban nem minden szerverbeállításnál ad védelmet.

**NGINX-szerver.** Ha NGINX-et használsz az **X-Accel-Redirect/X-Sendfile** vagy a **Letöltések kikényszerítése** módszerrel, a szerver beállítását módosítani kell a megfelelő védelemhez. Ezt a tárhelyszolgáltatóddal vagy a rendszergazdával végeztesd el.

**Egyedi fájlnév.** Ahogy fentebb olvastad, a WooCommerce alapból egy egyedi karakterláncot fűz a feltöltött fájlok nevéhez, így nehezebb kitalálni a letöltési címeket.

## Hol tárold a fájlokat?

A letölthető fájl lehet helyi útvonalon vagy távoli címen. Ha a **Jóváhagyott letöltési könyvtárak** be van kapcsolva, a fájlnak engedélyezett könyvtárban kell lennie. A távoli címnek is működnie kell a kiválasztott letöltési módszerrel.

- **Felhőalapú tárhely.** Használhatsz felhős tárolót is: olyan külső címet adj meg, amely a fájlra mutat, és megfelel a bolt jóváhagyott könyvtárainak. Próbáld ki a konkrét címet a választott módszerrel, mert egyes szolgáltatások közvetlen letöltési címet várnak, vagy nem támogatják a védett kézbesítést. A **Redirect only (insecure)** módszer felfedi a fájl címét.
- **WordPress médiatár.** Ha a fájlt a médiatárba töltöd fel, bárki, aki ismeri a közvetlen címét, eléri, mert a médiatár nyilvános. Ennek elkerülésére a fájlt a termék szerkesztőoldalán töltsd fel, ne a médiatárból válaszd ki: így a WooCommerce a `woocommerce_uploads` mappába teszi. Ez sem garantálja, hogy a közvetlen címek le vannak tiltva, mert a védelem a szerver beállításaitól függ, és NGINX-nél külön szabály kell.
- **Fájltípusok.** A WooCommerce azokat a fájltípusokat engedi, amelyeket a WordPress feltöltésre.
- **Fájlméret.** A WooCommerce nem szab felső méretkorlátot, de a szervernek lehet saját korlátja. Ha emelni kell, fordulj a tárhelyszolgáltatódhoz.

## Hogyan kapják meg a vásárlók a letöltést?

Amikor egy vásárló letölthető terméket rendel, e-mailben megkapja a fájl letöltési hivatkozását. Ha van fiókja a webhelyen, a hivatkozás a **Saját fiók → Letöltések** oldalon is megtalálható. Hogy mikor férnek hozzá, azt a letöltési beállítások szabják meg:

- Ha a **A letölthető termékekhez már a fizetés elindítása után engedélyezett a hozzáférés** be van kapcsolva, a vásárló a rendelés fogadó oldaláról, a rendelés e-mailjéből vagy a **Letöltések** oldalról (ha van fiókja) töltheti le a terméket.
- Ha nincs bekapcsolva, a vásárló csak akkor fér hozzá, amikor a rendelés állapota **Teljesített**. A „virtuális” és „letölthető” termékeknél a WooCommerce ezt az állapotot magától beállítja. Ha a termék csak „letölthető”, a rendelést neked kell kézzel teljesítettnek jelölnöd.

A fizetés és a rendelés feldolgozása után a vásárló rendelés-visszaigazoló e-mailt kap kattintható letöltési hivatkozással. A hivatkozás lejárati dátuma a termék letöltési lejárati beállításától függ.

> **Megjegyzés**
>
> A régi PayPal Standard már elavult, új boltokban alapból nincs betöltve. Ha nálad még be van kapcsolva, a fizetés visszaigazolása (IPN) késhet, így a letöltési hivatkozások nem biztos, hogy azonnal megjelennek a rendelés fogadó oldalán. Érdemesebb átállni a PayPal Payments bővítményre. Ha mégis a PayPal Standard mellett maradsz, kapcsold be a Payment Data Transfer (PDT) szolgáltatást.

A PDT beállítása a PayPal Standardhoz:

1. A PayPal üzleti fiókodban nyisd meg a **My selling tools** oldalt, és kattints az **Update** hivatkozásra a **Website preferences** mellett.
2. Kapcsold be az **Auto Return for Website Payments** beállítást, és add meg visszatérési címnek a `https://sajatoldalad.hu/penztar/order-received/` címet (a `sajatoldalad.hu` helyére a bolt címe kerül).
3. Kapcsold be a Payment Data Transfer szolgáltatást, és másold ki a PayPal által adott azonosító tokent.
4. A WordPressben nyisd meg a **WooCommerce → Beállítások → Fizetési módok** oldalt, keresd meg a **PayPal Standard** módot, kattints a **Kezelés** gombra, illeszd be a tokent a **PayPal identity token** mezőbe, és kattints a **Módosítások mentése** gombra.

Ha a **Teljesített rendelés** e-mailekből hiányoznak a letöltési hivatkozások, adatbázis-hiba lehet a háttérben. Ilyenkor kérd a bolt fejlesztőjének vagy a tárhelyszolgáltatónak a segítségét.

## Letöltési jogosultságok a rendelésen

A vásárló letöltési hozzáférését a rendelés szerkesztőoldalán nézheted meg és módosíthatod.

1. Nyisd meg a **WooCommerce → Rendelések** oldalt, és válaszd ki a rendelést.
2. A rendelés szerkesztőoldalán kattints a jobb felső sarokban a **Képernyő beállításai** gombra.
3. Jelöld be a **Digitális (letölthető) termék jogosultságok** jelölőnégyzetet. A panel megjelenik a rendelés oldalán.
4. Görgess a **Digitális (letölthető) termék jogosultságok** panelhez. Ez mutatja a letölthető fájlokat és azt, hányszor töltötte le őket a vásárló.
5. Innen visszavonhatod a hozzáférést, új letöltésekhez adhatsz hozzáférést, vagy lezárhatod a rendelést.

A panel alapból el van rejtve a rendelés szerkesztőoldalán. A rendelésen szereplő tételek jogosultságait a WooCommerce magától megadja, amikor a rendelés állapota **Folyamatban** vagy **Teljesített** lesz, így a legtöbb boltnak nem kell megnyitnia a panelt. A **Képernyő beállításai** menüben akkor kapcsold be, ha kézzel kell módosítanod valamit. A panel elrejtése csak a láthatóságot érinti, a letöltési jogosultságokat nem vonja vissza és nem módosítja.

### Elutasított letöltési hivatkozások

Ha a vásárló „Invalid download link” üzenetet lát, ellenőrizd, hogy a rendelés, a számlázási e-mail-cím és a letöltési jogosultság egyezik-e. A WooCommerce a hibásan formázott rendelés- vagy e-mail-adatokat tartalmazó letöltési hivatkozásokat elutasítja. A WooCommerce által előállított hivatkozások a támogatott formátumúak.

> **Figyelem**
>
> A letöltési jogosultságok újragenerálása törli a meglévő jogosultságokat és azok letöltési naplóit, aztán újakat hoz létre. A régi letöltésszámok és naplók elvesznek. Csak akkor használd, ha tényleg újra kell építened a rendelés jogosultságait.

1. Kérd meg a vásárlót, hogy nyissa meg a legfrissebb hivatkozást a rendelés e-mailjéből vagy a **Saját fiók → Letöltések** oldalról. Ellenőrizd, hogy a rendelés és a számlázási e-mail-cím még egyezik a vásárlóéval.
2. A rendelés oldalán nézd meg, hogy megvan-e a letölthető termék jogosultsága, és helyes-e a rendelés számlázási e-mail-címe. Ha hibás, javítsd ki, mielőtt újraépíted a jogosultságokat.
3. Ha a jogosultság hiányzik vagy nem egyezik a rendeléssel, válaszd az **Order actions** menüben a **Letöltési jogosultságok újragenerálása** pontot, és kattints az **Alkalmaz** gombra. A jogosultság ellenőrzése után válaszd a **Rendelés összesítő küldése a megrendelőnek** műveletet, és kattints az **Alkalmaz** gombra, hogy a vásárló friss letöltési hivatkozást kapjon.

## Ha a letölthető termék fájljait megváltoztatod

Ha utólag módosítod egy már megvásárolt termék fájljait, a hatás attól függ, hogy meglévő fájlt szerkesztesz, vagy újat adsz hozzá:

- **Meglévő letöltési fájl sorának szerkesztése** (a név, a fájl címe vagy mindkettő módosítása): a korábbi vásárlások letöltési hivatkozásai is frissülnek, a lejárati dátum és a hátralévő letöltések száma viszont változatlan marad.
- **Új letöltés hozzáadása:** a korábbi rendelésekre nincs hatással, csak az új vásárlók kapnak jogosultságot rá.

Ha olyan terméket árulsz, amelynél a vásárlók az összes később hozzáadott fájlhoz élethosszig hozzáférést kapnak, érdemesebb előfizetéses vagy tagsági bővítményt használni. Azt is megteheted, hogy a fájlokat egyetlen tömörített (zip) csomagba rakod.

A letöltéseket a WooCommerce egyedi azonosítóval követi és naplózza. A letöltési tevékenységet a WooCommerce Analytics **Letöltések** jelentésében láthatod.
