Paypal Payments Plugin for WordPress

All the PayPal plugins I’ve tested have fixed payment settings. This plugin is different. It allows the user to fill in a form with their reference number/ ID/invoice number and the amount to pay before submitting to PayPal.

It’s ideal for anyone who has variable payments: guest houses, B&B, hairdressers, dog walkers, window cleaners, builders, plumbers and so on.

And as simple as I can make it.

Once you have installed and activated the plugin just go to the settings page and enter your PayPal email address and the Currency.ย  Now go to your payment page and enter the shortcode [qpp]. That’s it, nothing else to do.

Click Here to Download the Plugin

Upgrade to Pro

The free version of the plugin will do the job but the upgrade lets you add multiple products and links customers to your Mailchimp account.

But there’s more…

Paypal Payments admin page

PayPal Payments admin page

You can:

  • Have multiple payment forms on your site,
  • Preset the ID and the amount
  • Let users select the quantity
  • List options for a product or service.
  • Edit any of theย labels and error message
  • Style the form width, font, background and borders
  • Add your own custom CSS
  • Change the settings for thank you and cancel pages
  • Add coupon codes
  • Use WordPress queries
  • Link to Terms and Conditions
  • Calculate and display live totals

And it’s not just me

All these websites use the plugin as well. Or at least they did when I created the page.

People who use the plugin

Setting up and using the plugin

Here is my handy guide to setting up and using the plugin.

Some forms to look at

Here’s a page of example forms to play with.

Instant Payment Notification

If you have a PayPal Business or Premier account you can get instant payment notifications. Set this up on the IPN page of the plugin settings. If you need to check it’s working there is a guide to IPN simulation.


All the shortcodes are given on the plugin setup page. They are also published on this plugin shortcodes page.

Add your comment

  1. Mohsin Alam on 29 Jun 2016

    Great thanks for this excellent plugin. I used this plugin one of my client’s website, and it was working as explained.

    • Graham on 29 Jun 2016

      Thank you Mohsin.

    • Mohsin Alam on 29 Jun 2016

      Thank you Mr. Graham for your reply. I have a question. Is it possible to add the different description in each option? Because website owner can understand which package buyer picked. Also, that would be great if customers could pick a date. Can it possible to implement by your “Quick PayPal Payments” plugin?

    • Graham on 29 Jun 2016

      Not sure what you mean by a different description. Can you send me a link to the site. Adding a date is easy but PayPal will reject the field (it’s not an allowed variable). All it would do is display in the notification email.

    • Mohsin Alam on 29 Jun 2016

      I’m working on this site

      I can’t make an option to select a package with the exact amount, then I make a different field with the amount, but this is not a smart way. The customer can select $700 package but also select $275 in amount [this is wrong, they have to select actual package amount as mentioned, now I can’t protect them to do this mistake] section. So is there any way to make auto amount when they select any package?

      Look there, I set a text field to write booking date, but it could be nice to have a date picker, no problem to have email notification only because website owner wants to know the booking date, that’s it.

      About Description: When customer selects a package then website owner will get a custom description of package, but this is optional [screenshot:

    • Graham on 01 Sep 2016

      I can add a datepicker, that’s the easy bit, but I’m still not sure what you want to do. But I see you now just have a $200 deposit so have you fixed that problem.

    • Mohsin Alam on 01 Sep 2016

      Anyway, that project was done. I thank you for your response.

  2. Paul on 11 Apr 2016

    Hi Graham – awesome plugin, and thank you! I am trying to use queries to dynamically fill in the reference and amount. I am adding in a [qpp] shortcode into a page, and then adding in a querystring like “?id=123&reference=Doodah&amount=ยฃ100&coupon=ABC123” to that page.

    However the form is not auto populated. Please let me know what I am doing wrong, I’m obviously being very dumb or doing something wrong, I just can’t figure it out!

    Thank you again

    • Graham on 11 Apr 2016

      Hi Paul,

      I thought this was already part of the plugin but it seems to have gone awry. I will find out what’s gone wrong and send you an update to test.

  3. Pankaj on 28 Mar 2016

    Graham I am still waiting my reply. But the first thing important for me, when i click on sandbox option, so the form page is not opening, showing while blank page.
    Why so that?

    • Graham on 28 Mar 2016

      Hi Pankaj,

      I didn’t get your message. Is the blank page in the dashboard or on the payment page.

  4. Aleksandr on 29 Feb 2016

    Hello, Graham! First, thank you very much for your awesome plugin!

    I’ve noticed a strange bug using references and coupon codes. If you enter a wrong coupon code and hit “Apply Coupon”, you’ll see the message that the code is invalid and the price for the service becomes 0$ (other services became hidden and unavailable to choose). And you still can proceed to PayPal with zero price.

    Is there anyway to fix this? Thank you for your time!

  5. Dominic on 08 Feb 2016

    Hi Graham, I already asked you this via email, but thought I’d re-ask here in case someone else reading knows the answer. Your plug in is great but I have one small problem. I have the “Register Without Payment” checkbox activated, but when people use it the “Places Available” isn’t being counted. It gets counted and subtracted when people register and pay with paypal, but it does not get counted if they Register without payment.

    In the Registration tool in the WP dashboard, the Places Available space is blank.

    Is this a bug, or am I missing something obvious? (It wouldn’t be the first time.)

    Thanks for a great plugin.

    • Graham on 08 Feb 2016

      Just sent you an update with a load of bug fixes – this should be one of them

    • Dominic on 08 Feb 2016

      You’re awesome. It hasn’t arrived yet, but I’ll keep an eye out for it. Thank you!

  6. Yves Chaput on 10 Jan 2016

    Hello again, just a suggestion this time.
    It would be nice to have a direct link from the sidebar, in WordPress dashboard, to the plugin settings.
    Now we have to go to the plugin page, scroll down to the plugin itself and hit Settings.
    Nothing major but it can be annoying a bit when you have to do some back and forth testings. ๐Ÿ˜‰
    Thanks for reading.

    • Graham on 10 Jan 2016

      Yup, I can do this. Will only take me a few moments to do (later today) and I’ll send you an update to test.

    • Yves Chaput on 10 Jan 2016

      No rush Graham. Whenever you feel like doing it.
      I appreciate your quick reply and willingness to add features to your plugin.

      Cheers bro!

  7. Yves Chaput on 10 Jan 2016

    Hi there Graham, I’ trying to use the queries to customize the for so the customer doesn’t have to fill that part. In the setup of the form, I have already setup some choices so I thought it was blocking the queries but it doesn’t seem so.
    My problem is the form is not taking the amount in.
    Here’s my query,$195
    But WordPress strips the $ from the amount.
    I tried using %24 to replace it but to no avail.
    It is in sandbox mode so you can test it without problems.

    Any idea?
    Great little plugin by the way. ๐Ÿ™‚

    • Yves Chaput on 10 Jan 2016

      Another question, is it possible to give a customer the choice to either pay in full or choose a specific set of installments?
      Like, “Pay in full now or pay in 5 easy installments”
      I have the feeling your plugin is not build to handle that.
      I guess my options are to setup 2 different forms on the same page.
      Will they confilct each other if I do that?

      Sorry, I’m a pain… and like you, I’m not even being paid to set this website up.
      Helping a friend in need.
      Actually, I might get a free meal for it, I’ll have a pint in your honnor. ๐Ÿ˜‰

    • Graham on 10 Jan 2016

      Nope, this isn’t an option at the moment but it is possible to do. I’m busy with some other work at the moment (that pays the bills) but will have a look at how to do this in the next day or two. In the meantime your friend will have to make do with two forms on the page.

    • Graham on 10 Jan 2016

      It’s working fine for me in the form on the right. What it doesn’t do is work on anything other than the default form. I can fix this though. I’ll do it with the other simple request your asked for and send it over later.

    • Yves Chaput on 10 Jan 2016

      It’s no big deal with the 2 forms on a page. I thought it would be a great addition to your plugin to have the possibility to offer installments.

      As for the queries, the form on the right is your default. I just put it there to show my friend we could have a form there too.
      The form on the left is what matters most for me.
      The form has been built with 3 reference options.
      From what I gathered, sending queries overwrite the predefined references.
      Could this be a problem, having predefined references on a form targeted by a query?

    • Graham on 11 Jan 2016

      I’ve now added a query so you can add the form name. There are some other enhancements being tested, as soon as they are done I will send over the update for you to play with.

  8. Fer on 02 Nov 2015

    Hi there!
    Congratulations for this complete plugin.Just one question: There are any way to put an image instead the default submit button?

    • Graham on 02 Nov 2015

      Hi Fer,
      If you go to the ‘Styling’ page you will see an image upload option under the ‘Submit Options’.

    • Fer on 04 Nov 2015

      here is the link:

    • Graham on 04 Nov 2015

      You aren’t passing a reference (the description) to paypal. Add a fixed reference and it will work

    • Fer on 04 Nov 2015

      Many Thanks! Solved! Just a question more, when I click in the submit button and open the pay pal page in other winndow, the plugin disappears from my page (euros payment). Thats its a normal behavior?

      Congratulations again for your plugin! I will make a donation for your plugin and your support! May be you can not pay a lot of bills, but any way … ๐Ÿ˜‰ I will do!

    • Graham on 05 Nov 2015

      Any donation is always appreciated. Opening into a new page/tab is always dodgy as each browser does this differently. So there is no good solution.

  9. Jack on 11 Aug 2015

    Hi, I noticed that customers emails are added to the payments page even if they cancel without paying. Is this something that can be fixed?

    • Graham on 12 Aug 2015

      Hi Jack,
      If you use the IPN feature you will get notified of those people who have paid and can delete or chase up those who haven’t.

  10. Kristine on 27 May 2015

    Hello I have service about article, how to make a user can choose how many words they want, (with slider maybe) and multiple by the price and the quantity of the article
    let say a customer wan to buy 10 article 500 words article with price about $0.5 per 100 words so the total amount is 500 words x $0.5 x 10 quantity = $25

    • Graham on 27 May 2015

      Hi Kristine,
      The slider only work on the amount field so it’s not possible to do as you want. What I can do is build you a version of the plugun that meets your needs. I would have to charge for the work though as I do have bills to pay and it’s quite a complex upgrade.

    • matt on 08 Sep 2015

      did this really work can u help

    • Graham on 09 Sep 2015

      Did what work Matt?

  11. John Palir on 13 May 2015

    Every time someone uses the PPQ link below it adds 9.99 in shipping charges once you place your zip at check out. How can I remove this?


    This happened after I updated last week and I can not find a field showing $9.99 for shipping anywhere.


    • Graham on 13 May 2015

      Hi John,
      The zip code bit isn’t part of the plugin. That’s something you have set up in your PayPal account. All the plugin does is send the invoice number and amount to PayPal. Everything that happens after this is controlled by your account settings.

  12. mina on 08 May 2015

    I just want to know if there is an option to make some fields required like the personal details fields.. Thanks for help.. its great plugin

    • Graham on 08 May 2015

      Hi Mina,
      It’s an easy enough thing to add a ‘required field’ option to the personal details field. I will have a play and send you and update in a day or two to test.

  13. nfc on 01 May 2015

    Hello, I want to allow users to put in how frequently they want to make a payment submitting recurring payments. Right now it only lets me have the frequency and range of recurring payments hard set, if you look at the site linked there is a pay once a month option for 12 months but I want the user to pick how many months. Is there a way I can let user input direct that?

    • Graham on 01 May 2015

      It’s not an option at the moment. I had enough problems getting recurring payment to work in the first place which is why it’s fixed. I’ve got an update ready to upload later today so will take a look at your suggestion after the weekend.

  14. Juda Robillos on 28 Apr 2015

    Hi I want to know on how to process paypal payment first before registering an event.
    Thanks ๐Ÿ™‚

    • Graham on 28 Apr 2015

      Hi Juda,
      It’s not possible to do this. If you make the payment first the plugin won’t know who made the payment (paypal doesn’t feed this information back to the plugin). However I’m working on an update that will report back when the registrant has paid. You can then monitor and check and delete those who didn’t pay.

  15. Rabiul on 08 Mar 2015

    I just love your plugin. I have send you an email about the problem I am facing but you haven’t replied. Here’s the problem I am facing..
    When I click on the payment button, it takes me to paypal. But the problem is, every time it multiples the payment amount 10 times. Suppose, I have a package for $10 but when I wanted to pay the money, paypal shows $100. Where’s the problem? I have tried many times, removed the plugin and re-installed it but the problem remains same. Can you please give me a solution? I would love to hear from you. Thanks

    • Graham on 08 Mar 2015

      Hi Rabiul,
      I’ve just answered your email – to investigate the problem I need to see the payment form and I can’t see it on your site. Can you send over a link to a page with the form.

    • Rabiul on 09 Mar 2015

      My problem is fixed, thank you very much. But now I am facing another problem. Can you please tell me if there is a auto renew system which will auto renew after 1 month or a particular period of time?

    • Graham on 09 Mar 2015

      Sure, just use the ‘Recurring Payments’ option in the form settings. But you do need a PayPal Business or Premier account.

    • Rabiul on 11 Mar 2015

      Thanks Graham. After selecting the “recurring” option, I want to make all the fields hidden. How to do that? And besides that, what I have to do for making the auto renew system working perfectly? I have a premium Paypal account.

    • Graham on 11 Mar 2015

      What fields do you want hidden? If you want the full auto-renew features the plugin may not be the best option as it follows a complex set of rules. If you email your requirements I can better advise.

    • Rabiul on 12 Mar 2015

      I have mailed you, please check it. Thank you very much for your support, this plugin is a great help to me.

  16. pree on 04 Mar 2015

    The paypal was working good before i update the wordpress .. After i update my wordpress the paypal page was not working. It shows the error like “This recipient is currently unable to receive money.” Can you please help me!?

    • Graham on 04 Mar 2015

      Hi Pree,
      That’s usually a problem with your paypal account, either you need to confirm your email address or there is a limitation on your account. I don’t think it’s a problem with the plugin as nobody else has reported the error.

  17. Bruce on 05 Feb 2015


    Is it possible to set the “custom” variable in the plugin?
    I mean the “custom” variable mentioned in this page.

    Thank you.

  18. Bruce on 02 Feb 2015


    I got this error when I use HKD as currency.

    Warning: number_format() expects parameter 2 to be long, string given in C:pathwp-contentpluginsquick-paypal-paymentsquick-paypal-payments.php on line 344

    Please help. Thank you.

    • Graham on 02 Feb 2015

      Hi Bruce,
      I found the bug. The plugin does a bit of complex filtering depending on the currency and it wasn’t properly clearing the decimals from HKD. I’ve got a bit more testing to do and will send you an update once that’s complete.

  19. Ben on 28 Jan 2015

    Is it possible to add pre-filled logged in user data fields to the payment box?

    Many thanks,

    • Fer on 02 Nov 2015

      I didnt realize! Thanks a lot, Ben!

    • Fer on 03 Nov 2015

      Sorry to ask again, can I control the text in article description field in pay pal page?
      Thanks again,

    • Graham on 03 Nov 2015


      Can you send me a link to the payment page so I can make a test payment and see the problem?

  20. Clif on 05 Dec 2014

    Is there a way to add an advanced variable? I’d like this plugin to work with a membership plugin for a fitness site.

    • Graham on 05 Dec 2014

      Hi Clif,
      Adding things to the plugin is the easy bit. The problem is paypal, you are limited to a set number of fields which means if the info you want to collect isn’t in the list PayPal will ignore it. What is the advanced variable?

Web Analytics