Rotary Club Billing is a comprehensive monthly or quarterly biling module for wordpress.
Rotary Club Billing — Treasurer Guide
This guide explains everything the Rotary Club Billing plugin does and how to run it day to day. It’s written for a club treasurer — no technical background assumed.
Contents
- What This Plugin Does
- Getting Started
- Logging In
- Settings: General
- Settings: Members
- Settings: Charge Plans
- Settings: Meals
- Settings: Gateways
- Settings: Foundation
- Settings: Member Balances
- Settings: Reports
- Settings: Advanced
- The Member Portal (what your members see)
- How Billing Works
- Payments, Refunds, and Fees
- Test Mode — Try Everything Safely
- Frequently Asked Questions
- Glossary
What This Plugin Does
Rotary Club Billing manages recurring and one-time charges for your club — dues, meals, events, fines, recognition gifts — and donations to your club’s affiliated Charitable Foundation. Members log in through a simple emailed link (no password to remember), see what they owe, and pay by PayPal or Zelle. You get one dashboard for everything: setting up charges, managing the roster, confirming Zelle payments, tracking balances, and exporting reports for your books.
Two important design choices worth knowing up front:
- Club and Foundation money is tracked separately, even though it may run through the same payment account. Every charge is tagged as belonging to the Club or the Foundation, and reports can be filtered by either.
- Nothing in this plugin quietly overwrites a number. Balances are the sum of a dated history of every payment, overage, shortage, and manual correction — so you can always see why a balance is what it is, not just what it currently equals.
Getting Started
A short checklist for the first time you set this up:
- General tab — set your Club Name, and a Treasurer Email (this is where notifications go — see Settings: General).
- Members tab — add your roster, either one at a time or by importing a spreadsheet (a DACdb export works directly — see Settings: Members).
- Charge Plans tab — set up your dues, meal charge, and any standing fines or donation options.
- Gateways tab — turn on Zelle (on by default) and PayPal, and enter your PayPal credentials once you have them. Stripe exists as an option for later but isn’t required to launch.
- Turn on Test Mode (General tab) and walk through the member experience yourself before telling your club it’s live. See Test Mode.
- Create a page with the shortcode
[rcb_portal]— this is the page your members will visit to log in and pay. Give it a clear name like “Pay My Bill” and add it to your site’s menu.
Logging In
There are two ways to access this system, and they’re intentionally kept separate:
- The Member Portal — the page with
[rcb_portal]on it. Anyone (members, and you) logs in here the same way: enter your email, click the link that arrives, you’re in. - The WordPress Admin (wp-admin) — where the settings covered in this guide live. This requires an actual WordPress account.
If you’re the treasurer, you likely want a dedicated WordPress account that can log in and see only this plugin’s settings — nothing else in WordPress. That’s the Treasurer role, covered under Settings: General. The site administrator sets this up for you once; after that you just log into WordPress like any site, and you’ll land straight on the billing settings.
Handy shortcut: if you’re both a club member and the treasurer, and your portal email matches your WordPress account, you’ll see a “Manage Settings” button right in the portal that jumps you into the admin screens.
Settings: General
- Club Name — appears on invoices, receipts, and portal text.
- Treasurer Email — where Zelle-payment notifications go, and (when Test Mode is on) where every email the plugin sends gets redirected instead of the real recipient. If left blank, falls back to your WordPress site’s admin email.
- Magic Link Expiry — how long a member’s login link stays valid before they’d need to request a new one. Default 15 minutes.
- “Remember Me” Duration — how many days a member stays logged in after using their link, up to 7 days maximum.
- Login Requests Allowed per 15 min — a simple rate limit so the login system can’t be abused. Default 3.
- Club / Foundation Invoice Prefix — the text before the invoice number, e.g.
CLUB-2026-000042vsRCF-2026-000017. - Due-date reminder emails — toggle and set how many days before the due date the reminder goes out.
- Test Mode — see the dedicated section below. Turn this on before you do any real-world testing.
- Data Retention — how many months must pass since a member’s last transaction before you’re allowed to delete their record. Default 12 months. Members with no transaction history at all can be deleted immediately.
- Treasurer Access — grant or revoke the restricted WordPress “Treasurer” role described above. Enter an email:
- If that email already has a WordPress account, it becomes a Treasurer account (if it currently holds some other role, you’ll be asked to confirm — this replaces that role).
- If not, a new account is created and a password-setup email is sent to them.
- A real Administrator account is never affected by any of this — you can’t accidentally lock yourself out or downgrade your own admin access this way.
Settings: Members
This is your roster.
Adding members — one at a time via the form, or in bulk via Import. The importer accepts a .csv or .xlsx file, and understands an unmodified DACdb “Member Listing” export directly (Member Name in “Last, First” format, Classification, Business Name, Occupation, City/State, Home/Office/Cell Phone, Club Position, Member Type, Email) — no reformatting needed. Members with no email address on the export are skipped, since email is required to log in.
Importing again later updates existing members (matched by email) rather than duplicating them, and never changes an existing member’s email through an import — that’s always a deliberate, one-at-a-time edit.
Member statuses:
| Status | Gets billed automatically? | Can log in and pay? |
|---|---|---|
| Active | Yes | Yes |
| Suspended | No | Yes |
| Terminated | No | Yes |
| Inactive | No | No |
Suspended and Terminated exist for members who’ve stepped back but may still owe something, or who you don’t want to fully lock out. Inactive is for someone who should no longer have any access at all.
Editing an email address is treasurer-only — a member can update their own mailing address from the portal, but never their login email. If someone’s email changes, you make that change here.
Deleting a member requires:
- A zero balance (no outstanding credit or debt on their ledger)
- No unpaid or partially-paid invoices
- Either no transaction history at all, or the Data Retention period (set on the General tab) has passed since their last transaction
If any of those aren’t true, the Delete option is grayed out with an explanation of what’s blocking it.
Settings: Charge Plans
A charge plan is a template for something you bill members for — dues, a meal charge, an event, a fine, a recognition gift, or a donation option.
Each plan has:
- Type — dues / meal / event / fine / recognition / donation (organizational only; billing logic is the same underneath)
- Entity — Club or Foundation
- Amount — the standard/suggested charge
- Recurrence — One-time, Monthly, or Quarterly
- Monthly plans bill on the day-of-month you set, every month.
- Quarterly plans bill on that same day, every 3 months — anchored to whichever month the plan was originally created in. (Create it in February, it bills every February, May, August, and November — no extra setup needed.)
- Mandatory — informational flag for your own tracking.
- Member-editable amount — if turned on (the natural choice for a Donation plan), the member can adjust the amount at checkout within a Min/Max range you set. You can also invoice someone manually at a custom amount for these plans, from the Member Balances tab.
- Fee handling — whether the member pays the gateway processing fee on top (pass-through, the default) or the club absorbs it out of the proceeds.
Settings: Meals
- Billing Mode — Reservation-based (member opts in per meeting) or Flat (billed regardless of attendance).
- Reservation Cutoff — how many days before a meeting a member must reserve.
Settings: Gateways
Three ways members can pay:
- Stripe — credit/debit cards. Optional; enter your secret key when ready.
- PayPal — enter your Client ID and Secret. A Sandbox toggle is available for testing with fake transactions before going live with real credentials.
- Zelle — no card processor exists for Zelle, so this works differently: the member sends the payment themselves via their bank’s Zelle, then reports it in the portal (amount, date, memo). It sits as “pending” until you confirm it — see Member Balances.
Fee handling default — Club absorbs, or Pass-through to the member. This is the default applied to new charge plans; each plan can still be set individually.
To go live, you only need Zelle (already on) and PayPal configured — Stripe can wait.
Settings: Foundation
- Foundation Name and EIN — used on donation receipts.
- Foundation-entity receipts automatically include the required “no goods or services were provided” tax language once these are filled in.
Settings: Member Balances
This tab has three things:
1. Bill a Member
Two ways to charge someone directly, outside the normal automatic cycle:
- From a Charge Plan — pick a member and one of your existing charge plans; it creates a real invoice. If the plan allows a custom amount (like a Donation plan), you can override the amount here too, within that plan’s allowed range.
- Manual Ledger Adjustment — for balance corrections that aren’t tied to an actual charge (e.g., fixing a data-entry mistake). You choose whether it credits the member or means they owe more, enter an amount, and a required reason. This never creates an invoice — it only affects their running balance.
2. Zelle Confirmation Queue
When a member self-reports a Zelle payment, it appears here for you to confirm. Clicking Confirm & Apply matches their reported amount against their unpaid invoice lines (oldest first) and marks whatever fits as paid; if there’s money left over that doesn’t match any unpaid line, it’s recorded as a credit on their account rather than lost. You can also Reject a report if it doesn’t check out.
3. Balances & Ledger History
A list of every member with a non-zero balance. Click View ledger on anyone to see the full dated history behind their current number — every payment, overage, shortage, and manual adjustment, with notes and who recorded it.
Settings: Reports
A CSV export of payment activity, filterable by entity (Club/Foundation/Both) and date range, with columns formatted to import cleanly into QuickBooks Online.
Settings: Advanced
A Reset Plugin option exists here, restricted to true site administrators (not treasurers). It permanently erases every record — members, invoices, payments, the ledger, everything — and restores default settings. It requires typing the word DELETE to confirm. There is no undo. This does not deactivate or remove the plugin itself; it’s for starting completely fresh, not for routine use.
The Member Portal
This is what your members experience:
- Visit the portal page, enter their email, click “Email me a login link.”
- Click the link in the email — no password.
- They see their current balance, a list of invoices, and can:
- Click Pay on any unpaid invoice — select which lines to pay (a partial payment leaves the rest of the invoice open), pick PayPal or Zelle, and pay.
- Click PDF to download or view an invoice/receipt.
- Update their own mailing address (used on invoices/receipts). They cannot change their login email — that’s treasurer-only.
- See “Logged in as: [Name]” and a Log out button, top-right.
For Donation-type or other editable-amount charges, the member can adjust the amount at checkout within whatever Min/Max you configured on that charge plan.
How Billing Works
Every night, the system checks for charges that are due:
- Monthly/Quarterly plans generate an invoice for every Active member on the configured billing day.
- Event charges (created when a member registers for an event) generate their invoice a set number of days before the event.
Suspended, Terminated, and Inactive members are automatically skipped — they’re never billed for anything new, even if a charge was already scheduled before their status changed.
Every invoice and payment is emailed automatically as a PDF, and always available for download/viewing from the portal.
Payments, Refunds, and Fees
- Selective line payment — a member picks which whole charge lines to pay in one transaction; a single line is never split across payments. Unpaid lines stay unpaid, and the invoice shows as “partial” until everything is settled.
- Fees — each gateway has its own flat + percentage fee (editable per gateway, effective-dated so past invoices keep whatever fee applied when they were created). Whether the member or the club absorbs the fee is set per charge plan.
- Refunds are treasurer-initiated and actually call the gateway’s refund API — the money really moves, it’s not just a local flag.
Test Mode
Turn this on (General tab) before doing any hands-on testing. While it’s on:
- Every email the plugin would send — login links, invoices, receipts, treasurer notifications — is redirected to your Treasurer Email instead, with [TEST MODE] in the subject and a note showing who it would really have gone to.
- Because the redirected login email still contains a real, working link, you can click it and get logged into the portal as that member — letting you test the entire flow, including checkout and payment, without ever emailing a real person.
- A yellow banner appears across the admin while it’s active, so it’s hard to forget it’s on.
- Test Mode only affects email delivery. It does not sandbox payments — if your PayPal credentials are live, a test transaction will be a real charge. Use PayPal’s Sandbox toggle (Gateways tab) for that.
Turn Test Mode off before going live.
Frequently Asked Questions
Can a member change their own email address? No — only the treasurer can, from the Members tab. This is intentional, since email is how someone logs in.
What’s the difference between Suspended, Terminated, and Inactive? Suspended and Terminated both stop new automatic billing but let the member keep logging in to pay whatever they still owe. Inactive is a full lockout — no billing, no login. Use Suspended/Terminated for someone stepping back who might still settle up; use Inactive for someone who’s fully gone.
Why can’t I delete a member? Either they have a non-zero balance, an unpaid invoice, or not enough time has passed since their last transaction (the Data Retention setting). The Delete button explains exactly which one when it’s grayed out.
A member says they paid via Zelle but it’s not showing. Check the Zelle Confirmation Queue on the Member Balances tab — self-reported Zelle payments sit there until a treasurer confirms them against the bank.
How do I bill someone for something outside the normal cycle? Member Balances tab → “Bill a Member” → “From a Charge Plan.” This creates a real invoice, not just a balance tweak.
I updated the plugin and my settings look different. Make sure you’re on the latest version — an earlier release had a bug where saving one settings tab could reset another. This is fixed; if you’re still seeing it, you’re on an old version.
Where do I get more help? Contact Garry directly for anything this guide doesn’t cover.
Glossary
- Entity — Club or Foundation. Every charge and report is tagged with one.
- Ledger — the dated history of every credit, debit, and adjustment behind a member’s balance. Never directly overwritten, only added to.
- Charge Plan — a reusable template for a type of charge (dues, meal, event, fine, recognition, donation).
- Invoice Line — one item on an invoice, tied back to a charge plan.
- Magic Link — the one-time emailed login link members use instead of a password.
- Treasurer Email — where plugin notifications and (in Test Mode) all redirected emails go. Separate from having an actual WordPress login.
- Treasurer Role — a restricted WordPress account that can log in and see only this plugin’s settings.
