# Feltöltés: mennyiség fájlonként, PDF-oldalszám és külső tárhely

> Több kép feltöltése fájlonkénti mennyiséggel, a feltöltött PDF oldalszámának használata számításban, és a feltöltések áthelyezése felhőtárhelyre.

Az itt leírt megoldások a **Speciális feltöltések** (Advanced Uploads) kiegészítőt igénylik, a mennyiség fájlonként megoldás ezen felül a **Speciális számítások** (Advanced Calculations) kiegészítőt is. A külső tárhelyre mentés a bővítmény 3.26.9-es vagy újabb változatát kéri.

## Több kép feltöltése, fájlonkénti mennyiséggel

Ezzel a beállítással a vásárló több képet tölthet fel, és mindegyikhez megadja, hány példányt kér (például nyomtatott képből). Az egy darabra eső ár egy keresési táblázatból jön, a teljes mennyiség alapján.

1. Hozz létre egy **Szám** típusú mezőt, és jegyezd fel az azonosítóját. Címke nem kell hozzá: a bővítmény elrejti a termékoldalon. Ebbe kerül az összes fájl mennyiségének összege.
2. Hozz létre egy **Feltöltés** mezőt, és kapcsold be rajta a **Több feltöltés engedélyezése?**, az **Ár feltöltésenként?** és a **Mennyiség feltöltésenként** beállítást. A **Közös mennyiség mező azonosítója** beállításba írd be az 1. lépésben létrehozott szám mező azonosítóját.
3. Készíts keresési táblázatot a darabárakkal. A Speciális számítások kiegészítővel CSV-fájlt tölthetsz fel egy vagy több árlistával, vagy a vezérlőpulton is összeállíthatod. Például 10 és 49 darab között 0,25 az ár, 50 és 399 darab között 0,20. Az ár függhet a mérettől is: egy kisebb kép olcsóbb lehet, mint egy nagyobb.
4. Egy csoportban hozz létre egy **Számítás** mezőt a darabárhoz. A **Képlet** értéke `{look_up_table}`, az **Y mező azonosítója** a közös mennyiség mezőé, a **Keresési táblázat** mezőben pedig válaszd ki az árlistát.
5. Hozz létre még egy **Számítás** mezőt a termék teljes árához. A képlete a közös mennyiség mező és a darabár mező szorzata, a **Művelet** értéke pedig **Termékár beállítása**.
6. Ha az ár a mérettől vagy a formátumtól is függ, tedd a számítási mezőket csoportba, és adj a csoportnak feltételt (például csak akkor jelenjen meg, ha a **Méret** mező értéke 10 x 10). Másold le a csoportot a többi opcióhoz, és módosítsd a feltételt és a használt keresési táblázatot.

A termékoldalon minden feltöltött fájl mellett megjelenik egy mennyiségbevitel, ezek összege tölti ki az elrejtett szám mezőt.

## A feltöltött PDF oldalszáma a számításban

A feltöltött PDF oldalszámát a `{field_xxx_pdf_count}` címkével használhatod számításban, ahol az `xxx` a **Feltöltés** mező azonosítója.

1. Nyisd meg a **WooCommerce → Beállítások → Termékkiegészítők → Feltöltések** oldalt.
2. Kapcsold be a **PDF-feltöltések engedélyezése** és a **PDF oldalszám** beállítást.
3. Kattints a **Módosítások mentése** gombra.
4. Hozz létre egy **Feltöltés** mezőt, és kapcsold ki rajta a **Több feltöltés engedélyezése?** beállítást, mert a számítás egyszerre csak egy fájlt olvas.
5. Hozz létre egy **Számítás** mezőt, amelynek képlete a feltöltés mezőre hivatkozik. A PDF feltöltésekor a számítás megkapja az oldalszámot.

**Hibaelhárítás:** ha a vásárló ezt a hibaüzenetet látja: „There was an error in getting the PDF page count”, a PDF olyan tömörítést használ, amelyet a beépített (ingyenes FPDI) olvasó nem támogat. Ilyenkor a `wcpauau_page_count_method` szűrővel válthatsz másik módszerre. A szűrő alapértéke `preg_match_all`; ha a kiszolgálón telepítve van az Imagick PHP-bővítmény, visszaadhatod az `imagick` értéket:

```php
add_filter( 'wcpauau_page_count_method', function () {
	return 'imagick';
} );
```

## Feltöltések áthelyezése külső tárhelyre

A feltöltött fájlokat a médiatár közvetítésével felhőtárhelyre (például Amazon S3) is küldheted. Ehhez kell egy áthelyező bővítmény, amely a médiatár új fájljait magától felismeri, és a tárhelyszolgáltatónál egy fiók. A módszert a WP Offload Media ingyenes változatával próbálták ki, hasonló bővítménnyel is működnie kell. A WP Offload Media nem támogatja a Google Drive-ot: ahhoz olyan bővítmény kell, amely a médiatárból Google Drive-ra áthelyez (például a Next3 Offload).

A működés: a kódrészlet a feltöltött fájlt a bővítmény saját feltöltési mappájából a médiatárba mozgatja, az áthelyező bővítmény észleli az új médiatárelemet, elküldi a tárhelyre, és az új webcím kerül a feltöltött fájlhoz.

1. Telepítsd és kapcsold be az áthelyező bővítményt (például WP Offload Media).
2. Hozz létre fiókot a tárhelyszolgáltatónál (például Amazon S3).
3. Állítsd be az áthelyező bővítményt a saját útmutatója szerint.
4. Add hozzá a webhelyhez a kódrészletet. Több beállítás nincs.

A kódrészlet három részből áll:

- a `pewc_offload_media` szűrőt igazra állítja: `add_filter( 'pewc_offload_media', '__return_true' );`
- egy függvény minden feltöltött fájlnál kikapcsolja a köztes képméretek generálását, a `media_handle_sideload()` hívással a médiatárba mozgatja a fájlt, frissíti az elérési utat és a webcímet, majd törli az eredeti és az ideiglenes fájlt; ha az áthelyezés nem sikerül, törli a feltöltést, és az eredeti adatokat adja vissza,
- egy függvény a `pewc_after_ajax_upload` szűrőre kötve, amely akkor futtatja az áthelyezést, ha a `pewc_offload_media` szűrő aktív.

**Korlátozások:**

- A fájl a feltöltés pillanatában a médiatárba kerül, még a kosárba tétel és a fizetés előtt. Így olyan fájl is feltöltődhet, átkerülhet és tárolódhat, amelyhez végül nem lesz rendelés.
- A módszer még tesztelés alatt áll.
