=== WooQR UPN — Slovenski UPN QR za WooCommerce ===
Contributors: sebastijanbandur
Tags: woocommerce, upn, qr, slovenia, payment, bacs, invoice
Requires at least: 6.0
Tested up to: 6.9.4
Requires PHP: 7.4
WC requires at least: 7.0
WC tested up to: 10.7
Stable tag: 1.1.5
License: GPL-2.0+
License URI: https://www.gnu.org/licenses/gpl-2.0.txt

Doda UPN (Univerzalni plačilni nalog) QR kodo v WooCommerce naročila — v e-poštnih obvestilih, na strani z zahvalo in v admin pregledu.

== Description ==

**WooQR UPN** doda avtomatsko generirano UPN QR kodo v WooCommerce naročila, ki podpira bančno nakazilo (BACS).

Stranke v Sloveniji lahko skenirajo QR kodo v svoji mobilni banki in takoj izvedejo plačilo — brez ročnega tipkanja IBAN, zneska ali reference.

= Funkcije =

* **Standardni ZBS UPN QR format** — deluje v vseh slovenskih mobilnih bankah (NLB Klik, mBills, Abacom, Intesa Sanpaolo itd.)
* **Konfigurabilno** — IBAN, BIC, ime prejemnika, model reference (SI00/SI11/SI12/SI99)
* **Prikaz** — v e-poštnih obvestilih, na strani z zahvalo, v admin pregledu naročila
* **Predogled** v administraciji pred oddajo v produkcijo
* **Prilagodljiv namen plačila** — s placeholders {order_number}, {order_id}, {customer_name}
* **Prilagodljiva velikost QR kode** (100–800 px)
* **Omejeno na izbran način plačila** — privzeto BACS (bančno nakazilo)

= Kaj je UPN QR? =

UPN (Univerzalni plačilni nalog) je standardiziran format slovenskega plačilnega naloga. QR koda vsebuje vse podatke, ki jih potrebuje banka za izvedbo plačila. Standard je razvila Združenje bank Slovenije (ZBS).

= Zahteve =

* WordPress 6.0+
* PHP 7.4+
* WooCommerce 7.0+
* Dostop do api.qrserver.com (brezplačna javna storitev za generiranje QR slik)

== Installation ==

1. Naložite vtičnik v `/wp-content/plugins/wooqr-upn/`
2. Aktivirajte ga v WP Admin → Vtičniki
3. Pojdite na WooCommerce → UPN QR in vnesite IBAN, ime prejemnika in naslov
4. Testirajte z oddajo testnega naročila

== Frequently Asked Questions ==

= Ali deluje z drugimi plačilnimi prehodi kot BACS? =

Da, v nastavitvah izberete poljuben plačilni način. Privzeto je BACS (bančno nakazilo).

= Ali so podatki strank shranjeni na zunanjih strežnikih? =

Ne. QR slika se generira preko api.qrserver.com, vendar ta storitev samo pretvori besedilo v sliko — ne shrani podatkov. UPN besedilo vsebuje samo podatke prejemnika, znesek, referenco in namen — podatki plačnika ostanejo prazni in jih banka zapolni avtomatsko pri skeniranju.

= Ali lahko skrijem QR na strani z zahvalo in prikažem samo v e-pošti? =

Da, v nastavitvah lahko vklopite/izklopite prikaz na strani z zahvalo in v e-pošti ločeno.

= Kaj pomeni model reference SI00 / SI11 / SI12 / SI99? =

Slovenski plačilni sistem uporablja različne modele reference. SI00 (privzeto) je prosta referenca, SI11/SI12 imata kontrolno številko, SI99 pomeni brez reference. Za večino primerov je SI00 ustrezna izbira.

== Changelog ==

= 1.1.5 =
* **Shortcode `[wooqr_upn_qr]`** — QR kodo lahko zdaj vstaviš na poljubno mesto v custom thank-you strani (FunnelKit, CartFlows, Elementor WooCommerce builder, itd.) ali v custom e-poštne šablone. Atributi: `order_id` (eksplicitno naročilo), `size` (override velikosti v pikslih), `show_details` (0/1 za skrit/pokaži IBAN + znesek + referenco).
* **Avtomatska detekcija naročila** v kontekstu — shortcode preveri (po vrstnem redu): eksplicitno `order_id` atribut → filter `wooqr_upn_shortcode_order_id` → WooCommerce order-received endpoint → globalna `$wooqr_upn_current_order`, ki jo plugin sam postavi ob `woocommerce_email_order_details` hook-u in počisti ob `woocommerce_email_footer`.
* **Nov tab v admin nastavitvah** — WooCommerce → UPN QR → zavihek "Shortcode" vsebuje polno dokumentacijo: osnovno uporabo, tabelo atributov, primere kode, konkretne integracijske scenarije (FunnelKit thank-you + e-pošta, CartFlows, Elementor WC builder, PHP custom template) in filter API za razvijalce.
* **Filter API za razvijalce:** `wooqr_upn_qr_size` (spreminjanje velikosti runtime + $order), `wooqr_upn_show_details` (true/false za tekstualne podatke), `wooqr_upn_shortcode_order_id` (custom template override).
* Shortcode upošteva obstoječe nastavitve "Enabled" in "Plačilni način" — če naročilo ni preko pravega gateway-a, shortcode vrne prazen niz (ne break-a render).

= 1.1.4 =
* **Domain migration** — plugin licencni API + download URL-ji preseljeni na `racunalnicar.eu`. Stara domena ostaja aktivna kot dual-route do 2026-07-01 za obstoječe namestitve, nato ukinjena.
* **Email sender** — licenčni + portal emaili zdaj prihajajo iz `wooqr-upn@racunalnicar.eu`. `.eu` TLD reši SpamAssassin blacklist penalty prejšnje domene (~6 točk nižji score → zanesljivejša dostava v inbox).
* **Cross-product footer** — nova "Tudi iz Računalničar s.p." sekcija na landing page povezuje z AgenticWP.
* Posodobljen FAQ: dodana Delavska hranilnica med production-verified banke; ločeno navajanje "production-verified" in "standard-compatible" bank.

= 1.1.3 =
* Bumped `Tested up to` to 6.9.4 — odpravlja opozorilo "plugin has not been tested with your current version of WordPress" na WP 6.9.x patch.
* Worker security hardening (Worker-only, aplicirano pri v1.1.2): constant-time Stripe signature compare, multi-`v1=` signature support, `INSERT OR IGNORE` + partial UNIQUE index proti webhook race condition.

= 1.1.2 =
* **Plugin Information popup** — "Poglej podrobnosti" v seznamu vtičnikov zdaj prikaže opis, namestitev, pogosta vprašanja in dnevnik sprememb (iz `readme.txt`).
* **Changelog v update obvestilih** — ko je na voljo nova verzija, se v WP Admin → Vtičniki prikaže povezava "Poglej različico X.Y.Z" z dnevnikom sprememb.
* Dodana izrecna podpora za `plugins_api` filter in obogaten `site_transient_update_plugins` vnos z `tested`, `requires_php`, ikono, bannerjem.
* Interni parser `readme.txt` — transient-cached 12h.

= 1.1.1 =
* **Izboljšan UI nastavitev** — "Ponudnik QR" je zdaj dropdown z obema možnostima (Lokalno / api.qrserver.com), z razlago GDPR-prednosti lokalne generacije.
* Privzeta vrednost `qr_provider` ob novi namestitvi: `local`.
* Sanitizacija: nepoznana vrednost `qr_provider` se samodejno zamenja s privzeto (`local`).

= 1.1.0 =
* **Lokalna generacija QR kode** — podatki naročila (IBAN, znesek, referenca, ime prejemnika) **nikoli ne zapustijo vašega strežnika**. Uporablja bundlano phpqrcode knjižnico (GD-based). GDPR-prijazno. Brez zunanjih storitev.
* **Popravek ZBS UPN QR spec skladnosti** — 19 podatkovnih polj (prej 18, manjkalo je polje Dvig). Bančne aplikacije so zavrnile staro strukturo.
* **Character-aware omejitev dolžin polj** — do zdaj so dolga imena prejemnika (npr. "Računalničar, Sebastijan Bandur s.p." = 36 znakov) presegla ZBS spec limit 33, kar so nekatere banke zavračale.
* **UTF-8 kodiranje** po ZBS spec v2 (2021+). Brez BOM, brez CP1250 legacy-ja.
* Odstranjen `str_pad` padding IBAN-a s presledki (nekatere banke so ga zavračale).
* Normalizirani novi redovi (\r\n, \n, \r) znotraj polj v presledke — prej bi dodatni \n pokvaril strukturo 20 vrstičnega payload-a.
* Nastavitev `qr_provider`: privzeto `local` (novo), `qrserver` ohranjen kot opcijski fallback.

= 1.0.0 =
* Prva verzija
* Podpora za bančno nakazilo (BACS)
* Prikaz na strani z zahvalo, v e-pošti in admin pregledu
* Konfigurabilni IBAN, BIC, ime prejemnika, model reference, velikost QR
* Predogled v nastavitvah

== Upgrade Notice ==

= 1.1.5 =
Dodan shortcode `[wooqr_upn_qr]` za prikaz QR kode na poljubnem mestu — FunnelKit, CartFlows, Elementor WooCommerce builder, custom email šablone. Nov admin zavihek z dokumentacijo.

= 1.1.4 =
Priporočena nadgradnja. Licenčna infrastruktura preseljena na racunalnicar.eu (boljša email dostavljivost — reši SpamAssassin TLD penalty prejšnje domene). Stara domena ostane aktivna kot dual-route do 2026-07-01. Za kupce brez akcije.

= 1.1.1 =
Izboljšan UI za izbiro ponudnika QR kode.

= 1.1.0 =
**Priporočena nadgradnja** — popravlja strukturo UPN QR kode, ki so jo nekatere mobilne bančne aplikacije zavračale. Dodana tudi lokalna generacija QR (GDPR-prijazno).

== Screenshots ==

1. UPN QR koda na strani z zahvalo
2. Nastavitvena stran pod WooCommerce → UPN QR
3. QR koda v e-poštnem obvestilu
4. Admin pregled naročila z QR kodo v stranski vrstici
