Validačné pravidlo
Rules\Redeemable overí pole s kódom kupónu vo formulári a pre prvý dôvod zlyhania vráti presné, preložiteľné hlásenie — nemusíte zachytávať šesť výnimiek:
use RoundlyConsulting\Coupons\Rules\Redeemable;
$request->validate([
'code' => ['required', 'string', new Redeemable(cartTotal: $cartTotal, redeemer: $request->user())],
]);- Oba argumenty sú voliteľné: bez cartTotal sa preskočia kontroly meny a minima, bez redeemer sa preskočí limit na zákazníka.
- Prázdny, len z medzier či nereťazcový vstup a neznáme kódy zlyhajú s hlásením not_found. Na veľkosti písmen nezáleží, takže summer prejde pre SUMMER.
- Pravidlo nič nemení — počet použití navyšuje len uplatnenie.
- Pýta sa Coupons::check() — rovnaké kontroly v rovnakom poradí ako pri uplatnení a v isRedeemableBy() —, takže sa nikdy nerozchádzajú.
Hlásenia
Hlásenia sú v mennom priestore coupons::messages; :code sa nahradí kódom kupónu. Balík obsahuje angličtinu:
| Kľúč (coupons::messages.) | Predvolený text (en) |
|---|---|
not_found | The coupon ":code" does not exist. |
currency_mismatch | This coupon cannot be used in the selected currency. |
minimum_spend_not_met | Your total does not meet this coupon’s minimum spend. |
expired | This coupon is no longer available. |
at_max_usage | This coupon has reached its usage limit. |
already_redeemed | You have already used this coupon. |
type.fixed.label / .description | Fixed amount / Subtracts a fixed amount from the price. |
type.percentage.label / .description | Percentage / Subtracts a percentage of the price. |
type.free_shipping.label / .description | Free shipping / Marks the order for free shipping. |
Preklad
Texty publikujte tagom coupons-translations a upravte ich, alebo pridajte súbor pre ďalší jazyk do lang/vendor/coupons. Napríklad slovenčina:
// lang/vendor/coupons/sk/messages.php
return [
'not_found' => 'Kupón „:code“ neexistuje.',
'currency_mismatch' => 'Tento kupón nie je možné použiť vo zvolenej mene.',
'minimum_spend_not_met' => 'Hodnota objednávky nedosahuje minimálnu sumu pre tento kupón.',
'expired' => 'Tento kupón už nie je platný.',
'at_max_usage' => 'Tento kupón dosiahol limit použití.',
'already_redeemed' => 'Tento kupón ste už použili.',
];Pravidlo sa riadi jazykom aplikácie, takže ten istý formulár zobrazí slovenské hlásenie, keď je nastavený jazyk sk.
Prejavte lásku k open source
Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.
Ďalšie spôsoby podpory vrátane kryptomienOdoslaním daru súhlasíte s našimi podmienkami prijímania darov.
Chcete to zabudovať do svojho produktu?
Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.