
Obydullah Restaurant Loyalty turns your site into a restaurant loyalty program. It runs entirely inside WordPress: no WooCommerce, no POS integration, and no external service.
The plugin supports three interchangeable program modes:
- Points – members earn spendable value, with a configurable earning rate and a configurable cash value per point.
- Stamps – a member collects a stamp per qualifying visit or spend threshold, and spends stamps on rewards.
- Visits – members accumulate visit counts and spend them on rewards.
A restaurant runs one mode at a time and can change it later. Every reward can cost points, stamps, or visits, independently of the program mode.
Staff tools
- Dashboard with balance, redemption, and enrolment summaries.
- A single Record screen for purchases, manual adjustments, and redemption, with member search and member card scanning.
- Member management with member codes, QR cards, birthdays, referral codes, notes, and soft delete.
- Reward management for fixed-value, percentage, and free-item rewards, with stock limits, per-member limits, and minimum purchase.
- Redemption history, activity logs, and CSV export.
- Automatic birthday rewards and referral tracking.
Member portal
Members sign in to a portal page and can:
- View their current balance, stamps, visits, and member-since date.
- View recent transaction history.
- See which rewards they are currently eligible for and why the others are locked.
- Claim an eligible reward and receive a redemption code to present at the counter.
- Update their own name, phone, and birthday.
Members can never change their status, notes, or the email address that links their account. Both self-service actions can be turned off independently from the settings screen.
Member cards
Each member gets a unique member code, referral code, and QR token. The QR resolves to a staff-only lookup: scanning a card as a staff member opens the Record screen with that member preselected, while anyone without the record permission is redirected away and the token is never resolved.
Data integrity
Balances are never edited directly. Every change is an append-only row in the member transactions ledger, and the cached member totals are rebuilt from that ledger. A purchase can never be recorded twice for the same external reference, and reward stock is reserved atomically so the last unit cannot be oversold.
Privacy
- The member portal page and the card scan endpoint are marked noindex, so member balances and live card tokens are kept out of search results.
- Export actions are capability checked and the portal only ever resolves the signed-in member’s own record.
- Uninstalled data is preserved by default. Administrators opt in to a full purge from the privacy settings.
- Uninstalling removes the plugin roles and the scheduled maintenance event either way.