NeoLite Birthday Bash Documentation

All documentation · Plugin page · Download on WordPress.org · Support forum

1. Introduction

1.1 Welcome & Features

Welcome to NeoLite Birthday Bash, a standalone plugin that emails every WooCommerce customer a unique, expiring discount coupon in the week before their birthday.

It does one job and does it properly. There is no workflow builder to configure and no parent plugin to buy — you set the reward once, and from then on every customer who has given you a date receives a coupon automatically, with a record of what went out and what came back.

💡 Genuinely standalone. WooCommerce is the only requirement. Birthday Bash uses Action Scheduler, which ships with WooCommerce itself, so there is no external service and nothing extra to install.

Core Features

Birthday Bash settings screen
Settings: Configure the coupon type, amount, expiry and prefix.

1.2 System Requirements

Birthday Bash is deliberately light, but it does expect a reasonably current stack:

ComponentRequirement
WordPress6.4 or higher
WooCommerce8.0 or higher
PHP7.4 or higher
Tested up toWordPress 7.1 and WooCommerce 11.0
DependenciesNone. WooCommerce is the only requirement — there is no parent plugin and no automation suite to install.

2. Installation & Setup

2.1 How to Install

  1. In your WordPress dashboard go to Plugins > Add New.
  2. Search for NeoLite Birthday Bash.
  3. Click Install Now, then Activate.
  4. Open the NeoPlugin menu in the sidebar and choose Birthday Bash.
Activated before WooCommerce? That is fine. Setup completes automatically as soon as WooCommerce is active — the plugin will not be left half-installed.

2.2 The Admin Tabs

Everything lives under NeoPlugin > Birthday Bash, split across these tabs:

TabWhat it does
SettingsCoupon type and amount, expiry window, coupon prefix, and whether the birthday field is mandatory.
Form DesignColors, border radius and shadow, plus the title and message shown above the birthday form.
Coupon LogsEvery coupon issued, when it was generated, and whether it has been redeemed.
Guide & HelpShortcode reference and setup guidance inside the dashboard.

3. Collecting Birthdays

3.1 Where Customers Enter a Date

A customer can supply their birthday in several places. All of them write to the same user meta, so a date entered at checkout appears in My Account too.

Birthday field at checkout
At checkout: The birthday field rendered in the cart and checkout flow.
Only day and month are stored. The birth year is never collected, which keeps the data you hold to the minimum the feature actually needs.

3.2 Making the Field Mandatory

The birthday field can be optional or required. Setting it to mandatory means a customer must supply a date before completing registration or checkout.

Mandatory collection fills your list faster, but it adds friction at exactly the moment a customer is trying to pay. Optional is usually the safer default for an established store.

3.3 Shortcodes

Two shortcodes are available if you want to place the form yourself:

ShortcodePurpose
[birthday_bash_form]The standalone birthday form. Use it on any page, in a widget, or in a template via do_shortcode().
[birthday_bash_checkout_input]The checkout field, for a store using the WooCommerce Checkout Block. Put it in a Shortcode block on the Checkout page; the plugin moves it into the contact details section and syncs it through the Store API.

4. Coupons

4.1 Configuring the Reward

Coupons are configured once, on the Settings tab, and then applied to everyone:

SettingWhat it controls
Coupon typePercentage discount or fixed cart discount.
Coupon amountThe value of the discount. The email adapts, so one message reads correctly whether you are giving 10% or a fixed amount. Percentage discounts are capped at 100% — a higher figure saves as 100, so a typo cannot create a coupon worth more than the basket.
Expiry (days)How long the coupon stays valid after it is issued.
Coupon prefixThe prefix on generated codes, so birthday coupons are easy to spot in the WooCommerce coupon list.

4.2 When Coupons Are Sent

A daily check looks for customers whose birthday falls in the coming week and issues a coupon so it arrives before the date rather than on it.

That check runs through Action Scheduler in bounded batches of 100 customers rather than in one long request, so a large customer base does not risk a timeout or exhaust memory.

Duplicate protection. Before issuing, the plugin checks whether that customer already has a birthday coupon for the current calendar year. If they do, nothing new is created — your coupon table stays clean.

4.3 Coupon Logs

The Coupon Logs tab lists every coupon the plugin has issued: which customer received it, when it was generated, and whether it has been redeemed — with the redeemed date and linked order where applicable. Long lists are paginated.

Coupon logs screen
Coupon Logs: Issued coupons with redemption status and linked orders.

5. The Email

5.1 Customizing the Message

The birthday email is fully editable. You can set your own subject line, upload a logo, write the greeting and compose the body message.

The message is wrapped in WooCommerce’s standard email layout, with your logo as the header image, so it matches every other email your store sends. It is delivered in HTML, plain text or multipart, following the email type, Cc, Bcc and Reply-to configured under WooCommerce > Settings > Emails > Birthday Coupon — where WooCommerce’s own preview also shows it with sample data.

The enable switch is real. While the Birthday Coupon notification is disabled under WooCommerce > Settings > Emails, no email is sent and no coupon is issued — the customer’s once-a-year slot is not spent on a message that never went out. Re-enable it and sends resume with the next daily run.
Live email preview
Live preview: See the message exactly as the customer will receive it.
Use the live preview before going anywhere near a real send. It renders the message with your logo, greeting and coupon in place, which catches formatting problems that are invisible in the editor.

6. Design

6.1 Styling the Form

The Form Design tab controls how the birthday form looks on the front end, without touching CSS:

Form design tab
Form Design: Colors, corners and copy, no CSS required.

7. Customer Experience

7.1 My Account

Customers can add or change their birthday from the account area at any time. If they entered a date at checkout, it is already there.

Birthday field in My Account
My Account: Customers manage their own date.

8. Troubleshooting

8.1 Common Issues

SymptomWhat to check
No coupons are being issuedConfirm WooCommerce is active and that customers actually have birth dates saved — the daily check only considers customers with a stored day and month. Then check the Birthday Coupon notification is enabled under WooCommerce > Settings > Emails: while it is switched off, no coupons are issued at all.
A customer did not receive a second couponExpected. Only one birthday coupon is issued per customer per calendar year.
Emails are not arrivingThis is almost always site-wide mail delivery rather than the plugin. Test with an SMTP plugin and check your logs.
The field is missing at block checkoutIt is not injected automatically, and a shortcode cannot be typed inside the Checkout block. Edit the Checkout page and add a Shortcode block containing [birthday_bash_checkout_input].

8.2 Frequently Asked Questions

Do I need an automation suite or a parent plugin?

No. WooCommerce is the only requirement. Birthday Bash is self-contained — no parent plugin, no workflow engine, no external service. It uses Action Scheduler, which ships with WooCommerce.

Does it work with the Cart and Checkout Blocks?

Yes. The classic checkout renders the field inline with nothing to set up. For the Cart and Checkout Blocks, add a Shortcode block containing [birthday_bash_checkout_input] to the Checkout page: the plugin moves the fields into the contact details section and submits the day and month through the Store API with the order.

What happens if a customer already has a coupon?

Nothing is created. The plugin records that a birthday coupon was issued for that customer in that calendar year and checks before issuing again.

Will it slow a large store down?

The daily check runs in bounded batches of 100 customers through Action Scheduler rather than in one long request, so large customer bases are processed without timeouts.

Do you store the birth year?

No. Only the day and the month are collected and stored, as standard user meta on your own site. Nothing is sent anywhere else.

Is it really free?

Free, and GPL-2.0-or-later. There is no paid tier for Birthday Bash and no feature described in these docs is locked behind one.

8.3 Uninstalling

Deleting is permanent. Export your Coupon Logs first if you need the redemption history.

Still stuck? The WordPress.org support forum is the fastest way to reach someone.

Other manuals: NeoGrow · NeoWish · NeoLite Review Customizer · NeoLite Disable Reviews