To sell gift cards in WooCommerce, install a gift card plugin, enable gift cards in its settings, then create a product with the product type set to Gift Card. Choose fixed or custom amounts, set an expiry, pick your designs, and configure the email and PDF the recipient receives. Test one full purchase and redemption before you promote it.
WooCommerce has no gift card feature of its own. It ships with discount coupons, but a coupon cannot hold a balance, be emailed to someone else or be spent across several orders. To sell real gift cards you need a plugin.
This tutorial uses FMA Gift Card and Voucher for WooCommerce, our own plugin, so every menu path and setting below is exact. If you use a different plugin, the order of the steps will still apply even where the labels differ.
Plugin or custom code?
A developer can build gift cards with WooCommerce hooks, but the work is bigger than it looks. A gift card is a stored-value ledger, so custom code has to handle:
- Secure, hard-to-guess codes and protection against people guessing them
- A balance that updates safely when two checkouts use the same card at once
- Restoring value when an order is cancelled or refunded
- Recipient emails, scheduled sending, PDFs and a place for customers to see their balance
- Reports your accountant can reconcile
Unless you need something unusual, such as redeeming cards inside a mobile app or an external loyalty system, a plugin is faster, cheaper and safer. The rest of this guide uses one.
Before you start
Ten minutes of preparation prevents most launch problems. Expect the full setup and testing to take about an hour, and no coding is needed. Check these five things first.
- A payment method in test mode. You will place at least two test orders. Stripe, PayPal and most gateways offer a sandbox, or you can use Cash on Delivery temporarily.
- Reliable email sending. Gift cards arrive by email, so emails from your store must reach inboxes. If you have not set one up yet, connect an SMTP plugin or transactional email service, and make sure your sending domain has SPF, DKIM and DMARC records so messages do not land in spam.
- A working WP-Cron. Scheduled delivery depends on WordPress running its scheduled tasks. On very low-traffic sites or hosts that disable WP-Cron, ask your host to run a real server cron job.
- Administrator or Shop Manager access to WordPress, so you can install plugins and edit WooCommerce settings.
- Your gift card terms. Decide your expiry period, whether cards are refundable, and where they can be used. You will enter these in the settings and on the PDF.
Step 1: Install the plugin
- Buy the plugin from the WooCommerce Marketplace listing and download the .zip file from your WooCommerce.com account.
- In your WordPress admin, go to Plugins > Add New > Upload Plugin.
- Upload the .zip, click Install Now, then Activate.
The plugin needs WordPress 5.0 or later, WooCommerce 4.0 or later and PHP 7.4 or later. Once it is active, a new FMA Gift Card tab appears under WooCommerce > Settings.
Step 2: Configure general settings
Go to WooCommerce > Settings > FMA Gift Card > General Settings. These options apply to every gift card in your store. Here is what each one does and the value we suggest for most stores. The plugin documentation has screenshots of each setting.
Setting |
What it does |
Our recommendation |
|---|---|---|
Enable Gift Card |
Turns gift card redemption on across the store |
On |
Gift Card Code Prefix / Suffix |
Adds fixed text to the start or end of every code, such as |
A short brand code as the prefix. Change it per season (for example |
Enable Partial Redemption |
Lets customers spend part of a balance and keep the rest on the same code |
On. Without it, leftover value is lost and customers complain |
Apply Gift Card To |
Applies the card to the order subtotal or the order total |
Total if you want the card to behave like cash and cover shipping and tax. Subtotal if you want customers to pay those separately. Check with your accountant if unsure |
Applied Gift Card Visibility |
Where the applied card details appear: cart, checkout or both |
Both, so customers can see their balance before paying |
Only Receiver Can Redeem |
Restricts use to the recipient the card was sent to |
On if you sell higher-value cards or have seen fraud. It stops a forwarded or leaked code being used by someone else |
Enable Gift Cards for Logged-in Users |
Allows logged-in customers to redeem gift cards |
On |
Create Card and Send Gift Card Email |
The order statuses that create the card and send the email |
Completed for the safest setup, since you can review an order first. Processing if you want instant delivery on paid orders |
Enable Scheduled Delivery |
Lets buyers choose the date the card is delivered |
On. It is one of the main reasons people buy gift cards ahead of birthdays and holidays |
Dashboard / Activity Items Per Page |
How many rows show in the admin dashboard and activity log |
Leave the default unless you sell a large number of cards |
Click Save changes before moving on.
Step 3: Create the gift card product
Go to Products > Add New. Give the product a clear name customers will recognize, such as "Gift Card" or "[Store name] Gift Card", and write a short description that states the expiry and where the card can be used. Then, in the Product data box, set the product type dropdown to Gift Card.
You can create as many gift card products as you like, for example a general card plus a separate card for one brand or category.
Choose virtual or physical
Each gift card product can be virtual (emailed) or physical (shipped to the recipient's address). Offer virtual cards first; they cost nothing to fulfil. Add a physical version if your customers like something to wrap.
Set the amount
- Fixed Amounts: offer set values such as $25, $50, $100 and $200. This keeps the product page simple and suits most stores.
- Custom Amount: let customers type any value, then use Custom Amount Range to set a minimum and maximum, for example $10 to $500.
Set the expiry
Use Expiration Days to set how long a card stays valid. Be careful here. In the United States, federal law generally requires gift cards to last at least five years, and some states ban expiry altogether. A long window, such as 1,825 days (five years), is the safe default. Whatever you choose, show the expiry on the product page and the PDF.
Designs and personalization
- Gift Card Templates: select which designs customers can choose for this product. You will create these in Step 4, so you can come back to this field.
- Allow Custom Upload Image: let buyers upload their own photo for the card. Set the Upload Button Text to something clear, such as "Add your own photo".
Restrict where the card can be used
- Can Be Used On: Products / Categories: limit redemption to specific items. Leave empty for a card that works storewide.
- Exclusive Use: stops the card being combined with other coupons or discounts. Turn it on if you run heavy promotions and want to protect your margins.
Publish the product when you are done.
Step 4: Add gift card designs
Designs make the difference between a gift card that feels like a gift and one that looks like a receipt. Open the Gift Card Templates section of the plugin and click Add New Template.
- Name: what customers see, such as "Happy Birthday" or "Season's Greetings".
- Slug: a URL-friendly version of the name. WordPress fills this in if you leave it blank.
- Parent Template: group related designs, for example "Holidays" as the parent of "Christmas" and "Eid".
- Images: upload the artwork customers choose from.
Start with four or five designs: a general branded design, birthday, thank you, and one for your biggest season. Add more before each holiday. Go back to your gift card product and select the templates it should offer.
Step 5: Set up the gift card email
The email is the moment the recipient meets your brand. Go to WooCommerce > Settings > FMA Gift Card > Email Settings and fill in the sender name, subject, heading and colors.
The Email Message field supports placeholders that fill in automatically for each card:
Placeholder |
Replaced with |
|---|---|
|
The recipient's name |
|
The buyer's name |
|
The personal message the buyer wrote |
|
The unique gift card code |
|
The card's value |
|
Your store's name and link |
A simple message that works well:
"Hi {recipient_name}, {sender_name} has sent you a {gift_card_amount} gift card for {site_name}! Their message: {sender_message}. Your code is {gift_card_code}. Enter it at checkout on {site_url}. Create an account to track your balance anytime."
That last line matters: recipients see their balance in the Gift Cards tab of My Account, so encourage them to register.
Step 6: Set up the PDF gift card
A PDF lets buyers print the card and hand it over in person. Go to WooCommerce > Settings > FMA Gift Card > PDF Settings.
- Enable PDF Attachment: attaches the PDF to the gift card email.
- Enable PDF Download: lets customers download it again from their account.
- Site name, message and code: choose whether each appears on the PDF, and set a default message.
- Disclaimer: add your terms, for example "Valid for 5 years from issue. Not redeemable for cash. Can be used on multiple orders until the balance is spent."
Step 7: Match the buttons and messages to your store
Under Display Settings, change button labels and colors so the gift card product page and checkout field match your theme. Then rewrite the four messages customers see when they apply a code. Clear messages cut support emails.
Message |
Example wording |
|---|---|
Success |
Gift card applied. Remaining balance: {balance} |
Error (invalid code) |
We could not find that gift card code. Check for typos or contact us. |
Expiration |
This gift card has expired. Contact us if you think this is a mistake. |
Insufficient balance |
This gift card does not have enough balance for this order. |
The {balance} placeholder shows the card's remaining value in the success message.
Step 8: Test before you launch
Run through this checklist using a test payment method and an email address you can check.
- Buy a $50 gift card and send it to your own email with a personal message.
- Move the order to the status that triggers the card (for example Completed).
- Confirm the email arrives in the inbox, not spam, with the right name, message, amount and code.
- Open the PDF and check the site name, message, code and disclaimer.
- Log in as the recipient and check the card appears under My Account > Gift Cards.
- Add a $30 product to the cart and apply the code. Confirm $20 remains.
- Apply the same code to a second order and confirm the balance updates again.
- Buy a second card with a scheduled date for tomorrow and confirm it arrives on that day.
- Try an invalid code and check your error message appears.
Step 9: Promote your gift cards
A gift card product nobody finds will not sell. These placements work for most stores:
- Main menu and footer: a "Gift Cards" link is the first place shoppers look.
- Cart page: a small banner such as "Not sure what they want? Send a gift card."
- Homepage banner in peak seasons: late November to Christmas, and the two weeks before Mother's Day.
- Email list: a last-minute gifting email a few days before a holiday, highlighting that cards can be scheduled for the exact day.
- Corporate buyers: offer gift cards for staff rewards and client gifts. Use a dedicated code prefix per client to track them.
What your customers will see
The buyer
- Opens the gift card product and picks an amount or enters a custom one.
- Chooses a design or uploads a photo, then adds the recipient's details and a message.
- Sends it now or schedules it for a date, then pays at checkout like any other product.
- Can later see the card under My Account > Gift Cards > Purchased Gifts.
The recipient
- Receives the email (and PDF, if enabled) with the code and personal message.
- Shops your store and enters the code at the cart or checkout.
- Pays any difference with a normal payment method, or keeps the unused balance for next time.
- Tracks what is left under My Account > Gift Cards > Received Gifts.
Managing gift cards after launch
The plugin's Gift Card Dashboard shows total cards, active cards, gift card revenue and redeemed value, each compared with the previous month. From the same screen you can:
- Search by code, recipient or status when a customer contacts you
- Filter by Active, Redeemed or Expired
- Create a gift card manually, for example as a goodwill gesture
- Import cards in bulk from a CSV file, useful for corporate orders
- Edit, view or delete cards individually or in bulk
The Activity log lists every card issued and redeemed with date, amount and user. Check it weekly in busy seasons to spot unusual patterns, such as many high-value cards bought by one new account.
Troubleshooting
Problem |
Likely cause |
Fix |
|---|---|---|
Gift card email never arrives |
Order has not reached the trigger status, or store email is going to spam |
Check the order status matches your setting in Step 2. Set up SMTP and check the spam folder |
Scheduled card is late |
WP-Cron is not running regularly |
Ask your host to set up a real server cron job |
"Invalid code" error |
Typo, expired card, or the cart has no eligible products |
Search the code in the dashboard to check its status and any product or category limits |
Customer says a valid code "does not work" |
Copy-paste errors: an extra space from the email, or O and 0 (or I and 1) mixed up |
Search the code in the dashboard and compare it character by character. Ask the customer to copy it from the PDF |
Code rejected for one customer only |
"Only Receiver Can Redeem" is on and they are not the recipient, or they are not logged in |
Ask them to log in with the email address the card was sent to |
Card will not combine with a coupon |
Exclusive Use is on for that product |
Expected behavior. Turn off Exclusive Use if you want stacking |
Remaining balance shows the old figure |
A page cache or the browser is showing a stale page |
Exclude cart, checkout and My Account from page caching, and ask the customer to reload |
Checkout fails when the card covers the whole order |
Some payment gateway setups struggle with a zero-total order |
Test a full-balance and a part-balance order in sandbox mode before launch, and check your gateway's settings for zero-total orders |
A customer returns an item bought with a gift card |
The value needs to go back to the card, not to a bank account |
If the balance is not restored automatically, edit the card in the Gift Card Dashboard and add a note to the order |
Balance looks lower than expected |
The card applies to the order total, so it also paid shipping and tax |
Explain this in the product description, or switch to Subtotal |
- →WooCommerce needs a plugin to sell gift cards; a coupon cannot hold a balance or be sent to a recipient.
- →Turn on partial redemption and scheduled delivery. They are what customers expect.
- →Set a long expiry, at least five years if you sell in the US, and show it clearly.
- →Write clear email, PDF and error messages to cut support requests.
- →Test a full purchase and a partial redemption before promoting the product.
FAQ
Can I sell gift cards in WooCommerce without a plugin?+
How long does it take to set up gift cards?+
Can customers choose their own gift card amount?+
Can customers schedule a gift card for a birthday?+
Can the recipient use the card more than once?+
Can I limit a gift card to certain products?+
Do recipients need an account?+
What if a customer loses their gift card code?+
Which payment gateways work with gift cards?+
Can I create a gift card manually for a customer?+
We build and support WooCommerce plugins and write practical guides for store owners.
Ready to sell your first gift card?
Fixed or custom amounts, partial redemption, scheduled delivery and branded PDFs, set up in an afternoon.
Get FMA Gift Card and Voucher →
