WordPress Printable Gift Certificates

WP Gift Cert

What is WordPress Printable Gift Certificates (A.K.A. WP Gift Certs)

WordPress Printable Gift Certificates provides a platform for service based businesses to sell and manage “printable” gift certificates that can be redeemed at the time a service is rendered.  It allows you to create set Gift Certificate amounts to sell from your Blog or Website via PayPal. When payment is made through the PayPal Website notification is sent back to the plugin and a unique gift certificate is created and e-mailed to the payer. Each gift certificate includes a QR Code which can be scanned from your smart phone and will provide instant verification of the Gift Certificate and amount (requires access to the internet).

Setting it Up

In order to utilize this plugin you will need to have a PayPal business account. While I understand there are other payment options out there PayPal is still one of the most widely utilized methods for small businesses to take payments online.

The first thing you will need to do is go into the Settings page and customize the options to meet your businesses needs. Once you have customized the settings the way you want, go under the Create/Edit page and create your first certificate button. Certificate buttons are how your users will be able to initiate the purchase process. If you setup a certificate with a ZERO value it will show an input box for the user to enter the amount they would like to purchase. Take a look at the sample sales page above to see what the output could look like.

When you have your buttons setup all you need to do is add the shortcode for your button to any page or post and it will be replaced with a small table allowing your users to purchase a certificate.

Managing Your Sold Certificates

Each certificate that is sold includes a unique QR Code (More about QR Codes) which identifies that certificate. If you have a smart phone you can easily scan the code which will direct you to your website and inform you 1.) if the certificate number is valid 2.) the status of the certificate, and 3.) the amount the certificate was issued for. This allows you to ensure the certificate has not already been redeemed and that the amount on the certificate is what the certificate was sold for. The validation requires your phone to have access to the internet as it will query your website to verify the amount.

When you receive and “redeem” a gift certificate you can go into the Sold Certificates panel and set the certificate to redeemed via the admin panel on your site. Once you set it to redeemed any further scan of the QR Code associated with that certificate will return a Status of Invalid – Redeemed.

Consider Donating…. I need beer

I have put a lot of time and effort into developing this plugin. I have every intention of continuing to develop it and support it FOR FREE. Please consider providing me with a small token of your appreciation and donate some cash to buy me a beer for my hard work and effort.

Feature Requests and Support

I realize this plugin is by no means what it could be, but hey there is only so much time in the day. If you would like to request a feature, shoot me an e-mail via the Suburban Media Contact Form or leave a comment on this page. I can’t guarantee that I will be able to take care of every request but if you really need a certain feature and can’t wait for me to get around to it I can give you a quote on what it will take to get the feature added sooner rather than later.  All support requests should also be directed to  the Suburban Media Contact Form or the WordPress Forums.

{ 4 trackbacks }

Wordpress Printable Gift Certificates
December 9, 2010 at 7:47 am
Your Thoughts on WP Printable Gift Cert – Version 1.0
December 17, 2010 at 7:01 am
WordPress Plugin Releases for 12/22 « Weblog Tools Collection
December 22, 2010 at 9:01 am
WordPress Wednesday: Printable Gift Certificates « BlueFur.com
December 29, 2010 at 3:07 pm

{ 66 comments… read them below or add one }

Phil Barnett December 8, 2010 at 2:51 pm

Hey – very timely plugin for me! Thanks so much. One question. Please explain the ‘Paypal URL” box.


Kyle December 8, 2010 at 2:57 pm


Paypal integration requires that you submit your payment data to the Paypal site. The default URl in the plugin is for the sandbox/testing site. The standard URl is https://www.paypal.com/cgi-bin/webscr


steve del-nevo December 8, 2010 at 3:09 pm

Hi Guys

this plug-in is great, would it be possible in future release to be able to change the currency? were based in the UK so dollars does not work for us, also to change the address format so that UK addresses can be added.




Mike December 8, 2010 at 4:16 pm

Great idea! I’m going to test this out on a new site I’m developing. I might suggest the ability to upload a logo for future releases.



Claire December 8, 2010 at 8:37 pm

Well, this would be great, except I don’t have a Smart Phone (or a Dumb Phone, for that matter). I don’t use cell phones at all because they are not good for your brain health and are way too expensive and intrusive.

So, how about a gift certificate that does not have the QR scannable code on it.


Kyle December 8, 2010 at 9:34 pm

You don’t have to make use of the QR code on the certificate. You just have a harder time verifying the certificates if you are out and about.


Faith December 8, 2010 at 8:44 pm

What a fantastic idea! I’m definitely going to test this out, I’d love to be able to give out gift certificates for fun stuff during the holidays. 😀


kevin December 9, 2010 at 10:19 am

This is a great plugin! is there a way you could add a feature to keep the plugin in test mode? so that the whole process could be tested without payment, even if it was just entering 0.00 so that we can see the whole printed results with QR to test before making live?



Kyle December 9, 2010 at 10:58 am

If you have a Paypal developer account you can test the plugin utilizing the Sandbox. It is really the best way to test so you can ensure the IPN process is running as expected.


kevin December 9, 2010 at 11:04 am

Developer – sandbox account. Kyle – I did register for a sandbox account and pointed the URL to that, as it is default, the transaction goes through as expected, but the certificate isn’t created or emailed? When I look in Manage Issued Certificates, it shows none.


Judith December 9, 2010 at 5:34 pm

Is there a way to get rid of the mandatory address and/or phone that must be entered when placing the order? Since they would be paying through paypal for something that isn’t shipped, there isn’t really a need for them to have to give all this info.


Judith December 9, 2010 at 5:39 pm

Just a follow up since I tested the plugin. I’m having the same issue as Kevin. Goes through paypal just fine and takes me back to the site. But no certs sold in backend and emailed cert doesn’t show up. :(


Kyle December 10, 2010 at 7:41 am

If you are having problems where you are getting an active connection to PayPal, they are accepting payment, but no certificate is issued make sure you are using a VERIFIED PayPal Account. Only Verified accounts have access to the IPN feature that is used to notify the plugin a payment was made.

If you are having problems where you are getting an e-mailed certificate but no record is made in the database please make sure you are utilizing the latest version of the plugin. Version 0.9.2 includes a fix for some hardcoded table prefixes. If you have a custom prefix on your database prior versions of the plugin will not work.


Judith December 10, 2010 at 10:55 am

I think I know what happened, but not sure why. I have a shopping cart on my site, and the setup had me put their url in paypal for the IPN notifications. The test I did yesterday sent the notification to my shopping cart site, which is why your plug-in didn’t receive it. So I guess anyone who uses their IPN for some other reason, can’t use your plug-in too? Too bad! I wish there was a work around for that.


Judith December 10, 2010 at 11:05 am

I found this in paypal’s IPN documentation: You can override the URL to associate other IPN listeners with specific transactions.

Would that have to be something included in your plug-in to override the URL entered in someone’s profile? Just a thought for future versions, since I doubt I’m the only person who will want to use your plug-in that has their IPNs sent to an outside website. :)


Ramsey December 10, 2010 at 1:59 pm

I have a similar issue. I set up the plugin using the sandbox but when I tried to submit a test purchase, I got the following error (on Paypal’s site):

Return to Merchant

Unable to process payment. Please contact the merchant as the shipping address provided by the merchant is invalid, and the merchant has requested that your order must be shipped to that address.

The problem is, I never saw any place in the plugin to edit any shipping info, which it shouldn’t even ask for anyway because these are gift certs that should be emailed, not shipped. I’m not sure if it has anything to do with the IPN thing that Judith above found, because I currently have an IPN set up with another website I manage.

Any help is appreciated. Would love to get this working before Christmas!


Kyle December 10, 2010 at 2:04 pm

The only reason you would get that particular error from PayPal is if the address provided at the time the cert was “ordered” was not a valid address. The way the plugin was written requires the address to be filled out. At the time I was thinking people would want a way, other than e-mail, to know who purchased the certs. I will be considering a way to make address optional in future releases but for now it is required and PayPal requires that it be valid.


Kim December 11, 2010 at 3:09 pm

How can I style the gift certificate? I don’t see a css file for this. Very cool plugin, but the certs are not extremely attractive 😉


Kyle December 11, 2010 at 3:13 pm

Currently there is no way to specifically style the certificates.

They were made simple to be easy to print clearly. I may include a method for styling the certificates in future releases but for now they are simple.


Michael December 12, 2010 at 1:57 pm

Is there a way of controlling the columns? I haven’t used this plugin yet because of the presentation. The purchase buttons are all over the screen because my item description vary. If I can set the description columns to a specific size then the purchase buttons would also line up. I really like what you’ve done so far.


Kyle December 12, 2010 at 2:15 pm

Right now the only way you could control the width of the columns would be to set the width of the tables using CSS. Like this:

.wpgft-table {
width: 150px;

I should probably add more id’s/classes into the tables so you can customize them more using just straight CSS. For now doing it this way will at least get the columns to all line up.


Michael December 14, 2010 at 2:42 am

Thanks Kyle! You have a unique plug-in that has a lot of potential.

Keep up the good work.



Nikki December 14, 2010 at 12:15 pm

I’m with steve del-nevo, in that I want UK certificates… and I woudl guess that other people with other currencies and locales would also be wanting to use your plug-in.

So, as a valid donation of energy, please find a tip-jar dontation to assist the inclusion of Non-US address and Currency options in the stable v1.00 release

Looking forward to a freed from the US plugin.


Sheepman December 14, 2010 at 7:49 pm

Hi, great plugin! this is the first useful plugin i have found for old wordpress..
How would I change the currency that shows on paypal checkout from USD to NZ dollars


Kyle December 14, 2010 at 7:57 pm

Currently it only supports USD. I have had several requests for GBP and uk adresses. It is a lot of work to code the address forms for multiple address schemes. I will put it on the list but can’t guarantee when I will be able to get to it. I do work faster with beer money…. Just sayin


traylorillo December 15, 2010 at 6:58 am

Kyle, Thanks for this great plugin. I’m trying to set it up on my friend’s WP site. She is a potter and was wishing for a gift certificate just like this so she can sell classes and services online. I have a question about IPN. I’m testing in the Paypal Sandbox right now and I don’t know the specific URL I need to specify in the IPN setup on the paypal side. Is it the main URL for her site…or is it the specific URL for your plug-in? I’m sort of a noob with shopping carts. As of now, the sandbox seller receives the payment and my sandbox buyer gets an email receipt from Paypal but I get no email with the certificate and I get no certificate in the DB on my WP site. Any suggestions are really appreciated.


Kyle December 16, 2010 at 3:58 pm

You should not need to setup IPN or anything specific in PayPal. The plugin will automatically tell PayPal where to send the IPN Data.

The biggest thing I have found about the Sandbox is you need to make sure that you are using the SELLER account that was created not the account you use to login to developer.paypal.com. There should have been an account created called smsell_… or something like that. That account should be what you are using as the PAYPAL ID in the settings page of the plugin. If you are still having issues, send me an e-mail to support [at] suburbanmedia.net with the URL of the website where the plugin is installed and point me to the page where you have the certs setup. I can then help troubleshoot the issues.


Sheepman December 15, 2010 at 8:01 am

I hear that my friend! keep up the good nerd work, my mates from australia say g`day too.. :) (relay – FINALLY something usefull for the wordpress platform ehehh)


John Wallace December 16, 2010 at 3:31 pm

Thanks for the plugin, one I’ve been waiting for. Having the same issue as others. Have PayPal’s IPN pointing to main url of the site. Getting no certificate and no email with download instructions. Any help appreciated.


Keith December 17, 2010 at 7:36 pm

This is a great plugin, Kyle! It has great potential.

I recently set it up on a website (http://themusclerelaxers.com/gc/order-a-gift-certificate/) and am quite happy with how it works and the ease of set up. If you go to that site though, there are a few issues.

In the page edit, I have the short codes placed below the text, yet the table shows above the text on the page. I’ve tried a few html codes to fix it, but nothing has seemed to work.

I applied the CSS you mentioned in a post above regarding table width. This has worked, but the td’s inside the table are not aligning. I looked through the CSS and tried a couple tweaks, but it appears that the td styling only applies to the first td?

Also, it would be nice to have the paypal page display the company name, rather than the email address, if possible.

But most of all, I think the gift certificate itself needs some CSS options. Even a single element would suffice so that background color/image can be applied.

This is great though. How much do beers cost around your parts? I’d like to buy you a couple!


Kyle December 18, 2010 at 12:46 am

“In the page edit, I have the short codes placed below the text, yet the table shows above the text on the page. I’ve tried a few html codes to fix it, but nothing has seemed to work”

This is a bug which will be fixed in the next release, thanks for the heads up. It was a stupid mistake on my part

On table styling, I am reworking how those tables display, I will be using a definition list in the 1.0 release with extra css tags to allow better customization of the look.

Also, it would be nice to have the paypal page display the company name, rather than the email address, if possible.

This can actually be configured by you on the PayPal side. If you set your default page in PayPal up so that it displays the business name then that is what your customers will see. You can even set it up so that it shows your company logo. Click my Donate button for an example.

I think the gift certificate itself needs some CSS options.

This is actually not as simple as just adding some CSS tags, etc, etc. Because it is being sent via e-mail there is a lot less likelyhood of the recipients email client being completely standards compliant. I am still thinking on this though and hope to eventually come up with a more customizable solution. For now it is unfortunately function over form in that aspect.

How much do beers cost around your parts?

They cost just as much as they do in your parts, anything is appreciated. I am just glad to see it getting used and people taking an interest.


Keith December 18, 2010 at 4:13 pm

Thanks for the update.

I hear you on the standards compliance for email clients. I am not familiar with how the various email programs handle html, so I can’t offer much help there. Is it possible to create the html and convert it to a pdf or something, on the fly? That way the whole issue would be moot.

Thanks for the paypal tip.
Enjoy your beers! :)


Keith December 18, 2010 at 5:43 pm
alex December 22, 2010 at 10:42 pm

This plugin is only good for the USA. You must enter an
address but only USA states are populated in the list. I can’t add
Canadian provinces and since addresses are mandatory this plugin is
limited to the US only as it is right now.


jason December 24, 2010 at 12:38 pm

I have a problem that when someone clicks purchase the next address screen shows up 4 times.

Second I looked but couldn’t find any simple directions like not using a $ in the amount box r it won’t work, spent 1/2 an hour trying to fix that.

You have a great beginning for a killer pluging I would pay for. If I could customize the gift cert & set a drop down box instead of multi line I would pay for it.



alex December 24, 2010 at 3:04 pm

I have been experimenting with this great plugin!

As long as a customer picks a US state, their transaction will still go through. I have used an alternate PP email adress and I was able to buy certificates using my work address in Canada and a US state, Alabama.

Txn went through and cash is my PP account. So maybe all that’s needed for the address issues is an item in the States List , Not in USA.

Another question though, mail is sent from wordpress@mydomain.com. the plug in i tried to use to cahnge the addy broke the gift certificate in gmail. Deactivated the pluging and can resent the cert and it works great.
So is there another way to change the default FROM email without breaking the grapical display of the certificate?




Brian Klein December 29, 2010 at 4:48 pm

Where in wp-gift-cert/wpgft-loader.php am I able to add the gift certificate description to the printable certificate?

Awesome plugin and looking forward to 1.0.


Duane January 10, 2011 at 10:31 pm

Hey Kyle,

This looks like a great plugin for me. I’ve set up a sandbox in a subfolder of our main site, and everything is working great except my database doesn’t get a record stored. I see your posting about versions and SQL prefixes. I’m running Version 0.9.4. and my transactions are logging int through the PayPal sandboxes and leaving emails, transaction numbers and are debiting the paying account, and I’m being returned to my site with the ‘thank you’ message but no database record comes up. I’m missing something somewhere, if you have a clue, it would be great.



steve May 6, 2011 at 4:35 pm

just curious with what you came up with, sold certificates does not get updated?


Ryan January 17, 2011 at 10:23 am

What’s the URL for this plug-in on my site? It’s not showing up under pages tab as other plugins do.



Kyle January 19, 2011 at 7:57 am


I am not sure what you mean. The options for the plugin will show under the WP Gift Cert heading on your admin menu bar. There is no specific page associated with the plugin under the pages tab. You utilize the plugin by making use of shortcodes in your posts or pages.


Erick January 20, 2011 at 2:59 am


How about adding Moneybookers support?


Alan January 23, 2011 at 8:33 am

So would I be right in saying that currently it can only use US states and $ and I can’t change either?
Just needs a heads up on this so I don’t waste any time going through this if it won’t do the job I need it for.


Kyle January 24, 2011 at 10:31 pm

That would be incorrect. Version 1.0 of the plugin (recently Released) now supports multiple currencies. See this blog post for more information regarding the update. http://www.suburbanmedia.net/wp-printable-gift-certificates-v-1-0


Alan January 27, 2011 at 5:44 am

Thank you.

I see the currency option and also the ability to not add the address, however can I still leave the option to add the address but not force it down the route of US states and therefore only US addresses?


Kyle January 27, 2011 at 6:15 am

That is a bug, it should default to United States when you select USD for the currency. I will update the code and include it in the next bugfix update.


Alan January 27, 2011 at 7:41 am

OK so what happens to the address if the client is say UK based. I would set the currency to GBP what happens to the address field, I still need to be able to collect the address from the buyer.

Ryan January 23, 2011 at 7:59 pm

OK – I guess I am confused – i wanted to have a separate tab (not part of blog) where people could buy gift certificates for our services – I guess I can create a page and just include the short codes as per your note


Kyle January 24, 2011 at 10:32 pm

Correct, just create a page and then add the short codes for your certs directly into that page and VOILA! you are selling gift certificates.


JJ January 26, 2011 at 10:07 pm

Hi Kyle,

Thank you for this great plugin! Just in time for my next project :)

One quick question, what if the customer wants to redeem partial balance? Say, she got a gift cert for $150, and she only bought $95 goods for now. How do we keep track of the remaining $55 balance?

Look forward to your answer:)



Kyle January 27, 2011 at 6:13 am

That would actually fall under the… “Hadn’t thought of that category”. I will have to look at it for future development.


Alan January 27, 2011 at 5:46 am

I would like to use the plugin to issue and manage award certificates which means creating a certificate design that looks more like an award certificate which the buyer can purchase.

Could you please tell me if this is possible?


Kyle January 27, 2011 at 6:18 am

Right now there isn’t any functionality to “customize” the look of the gift certificate. I plan on including that in the next major release. The biggest problem is that CSS support in email clients isn’t exactly standard. I am going to have to add functionality to send the certificate as a PDF attachment. That is going to take some time. If you need the functionality sooner shoot me an e-mail and I am sure we can come to some sort of fiscal arrangement to get it to you quicker.


Alan January 27, 2011 at 7:48 am


I think you are right pdf would be the way forward. I will email you.

There is another work around I guess I could live with. I could actually email the award certificate out as a separate certificate in pdf or even via the mail. The recipient would then receive the html as managed by your plugin and in the message I could say that a separate email will be sent with the award certificate in pdf.

it would mean me entering each one manually taking the details from the certificate and adding it to an award certificate pdf but I may be able to live with this for the life cycle of the award that will be running as its a one off site and will stop operating once a maximum of 5,000 awards have been created.


soj1 January 30, 2011 at 11:21 am

What’s up. I have been experimenting with your plugin. It’s dope!
However, i am interested in a similar solution as the above individual.
Please, give me a shout at your earliest convenience. Thanks.


Lea February 5, 2011 at 2:16 am

I am using this plugin and have found it very useful – thank you. :)
One problem I have had is that paypal doesn’t stop pinging me with IPN – annoying.
I think this is because the pages returns a 404.
I am currently trialing this solution:
but won’t know until I next sell a gift certificate…


Kim February 12, 2011 at 6:08 pm

Thanks so much for a great plugin. When the gift certificates comes to my email it says that it’s from “WordPress” instead of “Name of Site”. When I get a regular email it says it comes from the title of the site. Where can I change this? Thanks!


Kyle May 3, 2011 at 11:34 pm

Sorry things have been crazy for me lately and this plugin fell to the side. The next update will correct “WordPress” issue in the email. The emails will come from your Business name as defined in the settings page.


Celeste Cole February 12, 2011 at 6:55 pm

Hello Kyle,

Color me stupid, I’m essentially a neophyte at this, so give me a lot of “loser” consideration please. I have filled in all the settings, taken out the sandbox PayPal URL and replaced with URL identified on previous post. Created a button, selected the short code and inserted in html code on website and I do not receive a button. I receive text indicating $’s and the name of the service purchased. I turned off the css coding. The following is a copy of the short code [wpgft id=0]. Help? Thank you.


Aaron Fischer March 15, 2011 at 4:46 pm

1 Question and one suggestion.
When a customer receives an email it says its from WordPress [us@bluemels.com] is there anyway to remove the word wordpress?

My suggestion also is for a search function in the sold certificates area right next to the filter. Example if I have 100 gift certificate and I want to process one I could type in the name or id and hit search and it would pull of that customer so I can marked it as redeemed. It would be alot faster. Let me know if that is something that can be done.

A few more questions. When I use my smart phone scanner is there a way to mark is as redeemed from my phone? Also is there a way to make the barcode use a different page instead of my home page for the layout? I use a special theme and the scanner pulls up my home page and it has multiple content boxes so it looks all screwy. Example change it from http://bluemels.com to bluemels.com/gift-card


luu March 29, 2011 at 2:38 pm

Hello sir,
I have installed you plugin on my site to sale gift cert, all goes well, but gift certificates are not emailed and it dont updates sold certificates. I read you blog for solutions, but didnt find any.
after payment papal returns to return page.

I have verified paypal account.
I check Paypal IPN history it shows IPN message sent.

please give me solutions,


Bruce Heavner March 30, 2011 at 4:26 pm

Is there any chance of getting authorize.net as a payment gateway?


Adrian April 4, 2011 at 4:57 pm

We are reimplementing our website in wordpress and need a plugin to sell numbered gift vouchers. Your plugin seems to be the closest, and but for one key feature, we would be happy to pay for it. Congratulations.

Some features that would be useful are:
a) vouchers to be a PDF which the issuer can create, with some sort of ‘placeholders’ that are replaced on the fly by the plugin with issuer name, voucher value, voucher number etc. This would give issuers the flexibility needed to create custom vouchers and allow you to concentrate on the plugin functionality. HTML email is pretty horrible and not uniformly well supported, and our customers need to be able to printout and give the voucher to someone as a gift. PDFs are the way to go, I think. For us, this is a KEY FEATURE. A quick search on the web and I found “DynamicPDF™ Generator for Java” which is the sort of software I think might do the job as it says it will “Place New Content on Imported PDF Pages”.
b) the vouchers would be personalisable by the purchaser (i.e. the ability to add a line or two of text as a message to be printed on the voucher). Should be easy enough, if text strings are limited in no of characters.
c) the vouchers would have a VALID UNTIL date shown (i.e. date of issue plus N days, where N can be different for each voucher and if N=0 voucher would never expire)
d) the ability to create more than one type of voucher

An interim feature until a) is implemented would be the ability to attach one or more PDFs to the email, to allow the HTML voucher to be used in conjunction with the PDF. That way, the issuer could create a ‘pretty document’ that would go out with the voucher created by the plugin.

Well, that’s my few pence worth. Hope it helps.

Great work – keep it up. If you do a), we will definitely use the plugin and contribute more than a few beers worth.



Shane April 4, 2011 at 5:55 pm

Certs embedded fine with shortcodes, however, when I press the Purchase Cert button I just get a Page not found error.

I Don’t know if this helps, however I am being directed to a page, ID




RSB April 8, 2011 at 5:47 pm

Getting fatal error when trying to active:
Parse error: parse error, unexpected T_NEW in /spa/wp-content/plugins/wp-gift-cert/wpgft-loader.php on line 536

Unique about my set up: have to use Yahoo hosting so no access to htaccess file
WP installed in a subdirectory, not root

Any ideas?



mama rye April 13, 2011 at 3:46 am

Hi! Am having the same issue as the poster above. Everything is working great – thank you! However when a gift certificate email is received, it is appear in my inbox from “WordPress” – with the correct email address assigned to it.

Is there a way I can change this default name to say the ‘Company Name’ as listed in the plugin settings?

Thanks again!


Leave a Comment