WooCommerce kuponų taisyklės
Pažangios sąlygos aplink jau turimą kuponą.
PerkRule kuriamas taip, kad pridėtų taisyklėmis valdomą tinkamumą natyviems WooCommerce kuponams, o ne perkeltų akcijas į atskirą uždarą taisyklių duomenų bazę.
SĄLYGOS
Vertink krepšelį, klientą ir checkout kontekstą.
Pagrindinės taisyklės apima krepšelio sumą, kiekį, prekių skaičių, pritaikytus kuponus, prisijungimo būseną, klientų roles, billing ir shipping geografiją, mokėjimo bei pristatymo būdus.
KAS TAMPA FAKTU
Taisyklės vertina vienos užklausos krepšelio, kliento ir checkout snapshot, o ne laksto po WordPress duomenis vertinimo metu.
Kontekste gali būti subtotal, kiekis, line count, jau pritaikyti kuponai, login būsena, rolės, billing ir shipping geografija, mokėjimo būdas bei pristatymo metodai. Factory šiuos faktus paima vienam vertinimo snapshot, o evaluatoriai gauna immutable value objektus. Patys evaluatoriai neklausia DB, nekeičia krepšelio, nekviečia remote servisų ir neatlieka papildomo enrichment nuspręsdami, ar taisyklė matchina.
TRŪKSTAMAS FAKTAS YRA BŪSENA
Dar nežinoma checkout informacija netampa patogiu teigiamu rezultatu.
Kai kurie faktai ankstyvame cart lifecycle dar neegzistuoja. PerkRule trūkstamą optional faktą traktuoja konservatyviai: gaunamas no-match net ir su 'not equal', nes nežinojimas nėra įrodymas, kad reikšmė skiriasi. Guest rolės ir neegzistuojantys shipping metodai tampa aiškiomis tuščiomis aibėmis. Taip akcija neatsiranda vien todėl, kad checkout dar nesurinko reikiamos informacijos.
GRUPĖS
Junk taisykles nepalikdamas neaiškaus rezultato.
Taisyklių grupės turi aiškią ALL ir ANY semantiką. Netinkami ar nežinomi apibrėžimai ten, kur reikia, atmetami saugiai, o ne tyliai suteikia akciją.
ALL / ANY SEMANTIKA
Grupės turi aiškų elgesį net tuščiais ir sugadintais atvejais.
ALL gali saugiai sustoti ties pirmu aiškiu no-match. ANY tyčia konservatyvesnis: net radęs match jis patikrina likusius children, kad vėlesnis invalid node neliktų paslėptas ir netyčia nesuteiktų akcijos. Tuščias ALL reiškia, kad papildomų apribojimų nėra, todėl matchina; tuščias ANY nematchina. Nežinomos taisyklės, netinkamos reikšmės ir invalid children yra safe failure, ne tylus leidimas suteikti nuolaidą.
STRUKTŪRINĖS RIBOS
Rule tree yra duomenys, bet vis tiek laikomas nepatikimu input su kietais sudėtingumo limitais.
Definicijos naudoja versijuotą skaidrų JSON ir kompiliuojamos į deterministinę struktūrą. Dokumento dydis, gylis, node skaičius, identifikatorių ilgis ir rule value dydis ribojami prieš runtime. Cached compiled envelope taip pat tikrinamas prieš source fingerprint. Kompiliatorius niekada neįdeda kliento, krepšelio, session, timestamp ar gyvo WC_Coupon objekto, todėl reusable struktūra lieka atskirta nuo request faktų.
NATYVUS VALIDAVIMAS
PerkRule gali atmesti, bet WooCommerce lieka autoritetu.
Validavimo sluoksnis išsaugo natyvius WooCommerce sprendimus ir tik prideda PerkRule apribojimus. Taisyklių atitikimas neapeina natyvių kupono apribojimų.
NATYVU PIRMIAUSIA
PerkRule gali padaryti galiojantį WooCommerce kuponą nepasiekiamą, bet negali prikelti kupono, kurį WooCommerce jau atmetė.
Integracija jungiasi prie server-side WooCommerce coupon validity ribos. Jei WooCommerce jau grąžino false, PerkRule iš karto sustoja net nekompiliuodamas taisyklių ir nekonstruodamas konteksto. Todėl native egzistavimas, statusas, expiry, usage limits, produktų apribojimai, individual-use ir discount math lieka autoritetingi. PerkRule tik prideda antrą eligibility vartą ir neperinterpretuoja natyvios klaidos kaip leidimo tęsti.
APSAUGA NUO SELF-REFERENCE
Validuojamas kuponas pašalinamas iš savo paties applied-coupon vaizdo prieš vertinant PerkRule taisykles.
WooCommerce gali validuoti kuponą pirmo pritaikymo metu ir vėliau jį revaliduoti, kai tas kodas jau yra krepšelyje. Be subject-excluded projekcijos taisyklė 'kuponas X jau pritaikytas' galėtų tapti true vien todėl, kad X validuoja pats save. PerkRule sukuria immutable projekciją be normalizuoto subject kodo, bet išsaugo visus kitus pritaikytus kuponus. Gyvas krepšelis ir originalus kontekstas nekeičiami.
SAUGUS GEDIMAS
Sugadinta PerkRule taisyklė atmeta tik tą akciją; ji neturi numušti checkout ar parodyti vidinių diagnostikų pirkėjui.
No-match, invalid definicijos, nežinomos taisyklės ir ribotos runtime klaidos padaro subject kuponą nepasiekiamą. PerkRule kilusios validacijos klaidos klientui pateikiamos bendru pranešimu, neatskleidžiant rule value ar customer diagnostikos. Pats validation hook netaiko ir nešalina kuponų, nekviečia totals ir nesukuria rekursyvaus validation ciklo. Pakartotiniai patikrinimai lieka deterministic ir be side effects.
Peržiūrėk visą akcijų modelį.
Taisyklės yra viena Produkto 001 dalis šalia Auto Apply ir deterministinio konfliktų sprendimo.
Peržiūrėti Produktą 001PerkRule pagalbos erdvė
Tikra pagalba veikia geriau, kai galima normaliai pasikalbėti.
PerkRule Discord bus tiesioginė vieta diegimo klausimams, klaidų pranešimams, suderinamumo pastaboms ir išleidimų aptarimui. Naudingi atsakymai neturi dingti privačiuose ticketuose — pasikartojančios problemos galės virsti dokumentacija ir Inžinerijos užrašais.
Discord atsidarys artėjant Produkto 001 išleidimui