Artisan príkazy
# Immediately expire coupons (admin kill-switch) — Coupons::expireAll(). --code limits it to
# one coupon. Each one is revoked like Coupons::revoke(): CouponRevoked fires per coupon.
php artisan coupons:expire
php artisan coupons:expire --code=SAVE20
# Prune coupons expired more than N days ago — Coupons::prune(). Soft deletes (the code is free
# to issue again, the history stays); --force deletes permanently, including coupons an earlier
# prune soft-deleted. A --days that is negative or not a whole number (thirty, 1.5) is refused.
php artisan coupons:prune --days=30
php artisan coupons:prune --days=30 --force| Signatúra | Čo robí |
|---|---|
coupons:expire {--code=} | Núdzový vypínač, spúšťa Coupons::expireAll(): odvolá každý platný kupón (alebo len --code) — expires_at = teraz a jedna udalosť CouponRevoked na kupón. Vypíše počet. |
coupons:prune {--days=30} {--force} | Spúšťa Coupons::prune(): soft-delete kupónov, ktorým platnosť uplynula pred aspoň --days dňami — kód sa dá vydať znova a história zostane; --force ich zmaže natrvalo vrátane tých, ktoré skoršie čistenie už zmazalo mäkko. Záporné alebo neceločíselné --days (thirty, 1.5) príkaz odmietne. |
Každý príkaz je jedno volanie manažéra, takže rovnakú prácu spustíte aj z kódu — a pod Coupons::fake() sa len zaznamená, nevykoná:
use RoundlyConsulting\Coupons\Facades\Coupons;
Coupons::expireAll(); // what coupons:expire runs; returns the count
Coupons::expireAll(code: 'SAVE20'); // coupons:expire --code=SAVE20
Coupons::prune(days: 30); // coupons:prune --days=30
Coupons::prune(days: 30, force: true); // coupons:prune --days=30 --forceOba príkazy pracujú po dávkach po 100 a dopytujú model nastavený v coupons.model, takže udalosti a prepísané metódy vašej podtriedy sa spustia pre každý kupón, ktorého sa dotknú.
Plánovanie
Príkaz na čistenie spúšťajte cez plánovač Laravelu:
// routes/console.php
use Illuminate\Support\Facades\Schedule;
Schedule::command('coupons:prune --days=90')->weekly();Vyčistené kupóny sa zmažú len mäkko (soft delete), zachovajú si históriu uplatnení a ich kódy sa dajú vydať znova. S --force sa riadky zmažú natrvalo a cudzí kľúč kaskádovo odstráni aj ich riadky coupon_redemptions.
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.