WordPress PayPal plugin connects PayPal to your WordPress site and makes e-commerce available for you. With the WordPress PayPal plugin, you can create various types of buttons such as Add to Cart, Buy Now, Donation or Subscription with a simple shortcode to accept PayPal payments from your users. This plugin allows both one-time and recurring subscription payments so you can run your online store with great ease.
WP PayPal plugin uses the PayPal Payments Standard API to create a checkout process for your customer that is fast, easy, and intuitive. With one simple shortcode, you can add a secure payment button to your website that lets you accept credit card, debit card, and PayPal payments from any mobile device, tablet, or PC.
WordPress PayPal Info
Requirements
- A self-hosted WordPress site running on a WordPress Optimized Environment.
- A PayPal account that supports selling online.
Features
- Accept PayPal and PayPal Credit (US only) payments
- No monthly fee
- Accept credit cards and debit cards
- Optimized mobile checkout experience
- Accept one-time or recurring payments
- Simplified PCI compliance
- Accept donations
- OneTouchTM enables checkout with a click of a button
- Accept 25 currencies from over 200+ countries and markets
WordPress PayPal Plugin Installation
- Login to your WordPress admin dashboard
- Go to Plugins->Add New
- Enter WP PayPal in the search box
- Once you find the plugin hit the install button
Option 2
- Download the zip version of the plugin
- Go to Plugins->Add New and switch to the Upload tab
- Select the zip file on your computer
- Upload and install it
Option 3
- Download the zip file and extract it
- Connect to your website via FTP (you can use a software like Filezilla to transfer files to your server) and browse to the “/wp-content/plugins” folder
- Select the folder containing the plugin files on your computer and upload it
- Once all the files have been uploaded to your web server you can activate the plugin from the Plugins menu (WordPress admin dashboard)
WordPress PayPal Plugin Usage
In order to create a button, you need to insert a shortcode and specify the type in the button parameter.
Buy Now
[wp_paypal button="buynow" name="My product" amount="1.00"]
Add to Cart
[wp_paypal button="cart" name="My product" amount="1.00"]
View Cart
[wp_paypal button="viewcart"]
Donation
[wp_paypal button="donate" name="My product"]
Subscription
[wp_paypal button="subscribe" name="My product" a3="1.00" p3="1" t3="M" src="1"]
For subscription setup see how to create a subscription button in WordPress.
PayPal Button Demo

PayPal Button Customizations
Button Image
“button_image” parameter can be added to the shortcode to show your own button image instead of the default PayPal button. For example:
[wp_paypal button="buynow" name="My product" amount="4.99" button_image="https://example.com/images/buy.png"]
Shipping
“shipping” parameter can be added to the shortcode to charge shipping for an item. For example:
[wp_paypal button="buynow" name="My product" amount="4.99" shipping="1.75"]
Shipping2
“shipping2” parameter can be added to the shortcode to charge shipping for each additional unit of an item. For example:
[wp_paypal button="buynow" name="My product" amount="4.99" shipping="1.75" shipping2="0.75"]
This means, If a user orders:
My Product (Quantity 1), total shipping would be $1.75.
when the order becomes:
My Product (Quantity 2), total shipping would be $1.75 + $0.75.
When it contains:
My Product (Quantity 3), total shipping would be $1.75 + $0.75 + $0.75.
And so on.
This feature is also very useful if you want to offer shipping at a discounted rate for each additional item.
Tax/GST
“tax” parameter can be added to the shortcode to charge GST for an item. For example:
[wp_paypal button="buynow" name="My product" amount="4.99" tax="2.15"]
Handling Fees
“handling” parameter can be added to the shortcode to charge handling fees for an item. For example:
[wp_paypal button="buynow" name="My product" amount="4.99" handling="2.50"]
This parameter is not quantity-specific. That means the same handling cost applies, regardless of the number of items on the order.
Success Page
“return” parameter can be added to the shortcode to redirect the user to a specific page on your site after the payment. For example:
[wp_paypal button="buynow" name="My product" amount="4.99" return="https://example.com/thank-you"]
Cancellation Page
“cancel_return” parameter can be added to the shortcode to redirect the user to a specific page on your site if they cancel checkout before completing the payment. For example:
[wp_paypal button="buynow" name="My product" amount="4.99" cancel_return="https://example.com/payment-canceled"]
Currency
To use a different currency code than the one you specified in the settings, you can add the “currency” parameter to the shortcode. For example:
[wp_paypal button="buynow" name="My product" amount="4.99" currency="SGD"]
Show/Hide Shipping Address
“no_shipping” parameter can be added to the shortcode to control whether or not to prompt buyers for a shipping address. Allowable values are,
- 0 – Prompt for a shipping address but do not require one (This option is set by default)
- 1 – Do not prompt for a shipping address
- 2 – Prompt for a shipping address and require one
For example:
[wp_paypal button="buynow" name="My product" amount="4.99" no_shipping="1"]
Shopping URL
“shopping_url” parameter can be added to the shortcode to redirect buyers to a page when they click the Continue Shopping button on the PayPal Shopping Cart page. This parameter can only be used with an Add to Cart button. For example:
[wp_paypal button="cart" name="My product" amount="4.99" shopping_url="https://example.com/shop"]
Allow Buyers to Specify the Quantity
“undefined_quantity” parameter can be added to the shortcode to allow buyers to specify the quantity of the item on the Paypal payment page. This parameter is only used with a Buy Now button. For example:
[wp_paypal button="buynow" name="My product" amount="4.99" undefined_quantity="1"]
Open PayPal Button in a New Window/Tab
“target” parameter can be added to the shortcode to open a PayPal button in a new window or tab. For example:
[wp_paypal button="buynow" name="My product" amount="4.99" target="_blank"]
Manage PayPal Orders
When you receive a new order it will appear in the Orders menu. You can then do the following to finalize it:
1) Send a purchase confirmation email to the customer (include download links if applicable)
2) Ship the goods

WP PayPal Extensions
WP PayPal plugin comes with a couple of extensions that you can use to enhance its functionality on your website.
1. Custom Buy Now Amount
With this extension, your buyers will be able to purchase an item with a custom price.

All you need to do is install this extension and leave the amount parameter empty in the shortcode.
[wp_paypal button="buynow" name="My product" amount=""]
2. Buy Now Discount
Buy Now Discount extension allows you to offer various automatic discount options with your WP PayPal Buy Now buttons.
Check out the extension page here
Homer says
Your instructions reference a custom amount extension. Your video shows the process of uploading, installing and enabling it, but does not indicate where to download the extension. Where can I get this?
Noor Alam says
@Homer, It’s a premium extension that you can find at the bottom of the page.
Homer says
Hello Noor,
I see “Check out the extension page here”. When I click on “here” it takes me to a page that exclusively refers to discounts.
Am I missing it?
thanks!
Noor Alam says
@Homer, That’s a different extension. The buy now custom amount extension is on this page (#1).
Barbara says
The WordPress detail documentation says “Sell items with different variation options (e.g. size, color, price)”.
As in a previous comment, I am unable to find any instructions (code) in the above documentation for how to add variations (size, color, etc). Can this plugin do that and if so, how? Also what are the maximum number of variants that can be added per product? Thank you.
Charlie Ford says
Very helpful, thank you
Charlie Markwick says
I’m experiments with the plugin and it works well. I am setting up to sell books. Is there a way for the purchaser to indicate that s/he wants a signed copy?
http://apexpoetry.uk/z-d-dicks/
Noor Alam says
@Charlie, Unfortunately that’s not possible at the moment.
Nigel Parry says
Yes, create two buttons, one for the signed one, one for the unsigned one.
Joe Sadusky says
Hi,
I’m unclear how to insert a button and the short code. I have a full website, not a blog. My UI for adding elements looks different from your video. Can you help? Thanks.
Noor Alam says
@Joe, I used a shortcode block that comes with the default WordPress editor.
Joseph Sadusky says
Hi Noor – In the full editor UI, I don’t see a shortcode block. Do you know where I might find it?
samuel cousin says
Hi,
after payment, customers must click a link to return to my site.
Is it not possible to return directly?
Noor Alam says
@samuel, It’s possible. You will just need to enable auto return in your PayPal account.
samuel cousin says
Ok
but I must set an url while I have set it in your shortcode …
Noor Alam says
@samuel, The URL in the shortcode will override it.
nalupon wiangchanok says
Hello
I sell the subscription program to customer.
I install this plugin, and cannot link the subscription button with the current product and price.
I see that shortcode works independently alone.
(insert the name of product and set up the price) How can we link it with the existing product
Noor Alam says
@nalupon, There is no link unfortunately. You simply use the shortcode and the plugin creates a button from it.
Neal says
How do I get the “Continue Shopping” button in the Cart to navigate back to the page where my user just came from, such as the products page? Right now it takes users to my home page, which isn’t user friendly as they have to go back into the products page to keep shopping. I tried to use the RETURN tag in the “View Cart” button, but that just broke the button.
Noor Alam says
@Neal, Please provide a link to your product page so I can take a look.
Barry A. says
Noor, I’m experiencing the same issue. I know it worked because I’d tested it in the sandboxed environment and I’m just switching over to the real account. Now when I empty the cart, all “continue shopping” links return me to my home page. The only thing that changed recently was I’d upgraded the plugin to 1.2.2.5. I’m in the midst of locking down my site before I open it up so it’s not reachable yet. Is the previous version of the plugin available? I’d like to go back and test with that version. Thanks
Barry A says
Noor, save your time. It doesn’t appear to be a plugin issue. It seems to be a Chrome on macos problem. It exhibits the above behaviour. I’ve done some cursory testing of the “continue shopping” and it works as expected with IE and Chrome on Windows , Chrome on Linux and Safari on Mac. Hopefully, it’s a clue for others who may be experiencing a similar issue.
Paul Warkentin says
Anyone else get this? Everything with the plugin is working fine but sometimes paypal doesn’t include the “Pay with credit or Visa debit card” option. I am in Canada, have a business account and followed the settings as described here: but many of my clients still get this. Suggestions?
Noor Alam says
@Paul, It’s a PayPal issue. The only thing you can do is keep the “PayPal Account Optional for Buyers” option enabled in your PayPal account: https://www.youtube.com/watch?v=fBeeGgIFbU0
Paul Warkentin says
Hey Noor.
Thanks for help. I dbl-checked the settings and it was already set to Paypal Account optional. Appreciate your help.
Other suggestions? Anyone?
Paul
Noor Alam says
@Paul, As far as I know that’s the only thing you can do as a seller. It’s clearly an intermittent issue on the PayPal’s end.
John says
how to change the button text?????????
Noor Alam says
@John, You can use the button_image parameter in the shortcode.
Karen Reliford says
Hi,
I’m very new to WP Paypal. I have been able to get the Add to Cart button to work, and I think I have all the settings correct, however, I keep getting an error that this does not seem to be set up properly. My website is not yet published as I’m still developing and testing and I don’t want to publish it until I know the payment processing will work. Any suggestions on how I can complete this testing and get the integration to paypal to work properly would be greatly appreciated.
Noor Alam says
@Karen, what error do you get?
Mike GIbson says
I am getting the following error when using this shortcode:
[wp_paypal button="buynow" name="Fire Dance download" amount="10.00" button_image="https://beatapater.com/images/download_button.png"]
This site can’t be reachedamount%20cannot%20be%20empty’s server IP address could not be found.
DNS_PROBE_FINISHED_NXDOMAIN
using WP 5.5.3
WP Paypal 1.2.2.5
Noor Alam says
@Mike, The quotes in the name and amount parameters were formatted. I have fixed it for you. Please copy it and paste into a shortcode block and see how it goes.
Jill says
I’ve followed the instructions and when I preview my page it looks right but when I click the buy now button it opens a PayPal page that says:
“Things don’t appear to be working at the moment. Please try again later.” I haven’t published my page yet, it is in draft.
Noor Alam says
@Jill, Please publish the page and provide the URL so I can check it.
Pierre says
Hi,
I would like to use this neat plugin instead of the PayPal buttons because this provides a far more user-friendly interface for managing items that are forever changing. However, once I use the plugin for my my “cart buttons” the IPN messages resulting from any purchases are no longer hitting my backend order tracking system and are instead going to
https://middlesexconservation.org/?wp_paypal_ipn=1
which is presumably related to the plugin. Is there anyway of working around this?Thanks
Noor Alam says
@Pierre, The plugin uses its own IPN URL to ensure that it only processes purchases initiated by WP PayPal buttons.
PIERRE says
Hi Noor,
Thanks for getting back to me so promptly. So is there anyway that I can get the PayPal IPN?
Pierre
Noor Alam says
@PIERRE, I have just released an update adding this feature. Please update the plugin and use the “notify_url” parameter in the shortcode to send notification to a different URL (e.g.
notify_url="https://mydomain.com/test-page/"
).PIERRE says
Hi Noor,
Fantastic turnaround – wow – thank you! I presume that the notify_url is where I expect the IPN to be sent and by “shortcode” I am assuming you are referring to the code for the individual buttons. Unfortunately, when I try this I get an error message from PayPal when I click on the button to add something to my cart: “Things don’t appear to be working at the moment. Please try again later.”
Pierre
PIERRE says
Sorry Noor – that error was due to a typo on my part, however, having fixed that problem I can now see my shopping cart but only the first item has a “Description” the others are blank
Pierre
Noor Alam says
@PIERRE, No other changes were made in the latest release. Are you saying the item name does not appear for other products?
PIERRE says
Sorry Noor – another typo on my end.
All descriptions are now appearing in my cart but the IPN does not appear to be hitting my backend.
Pierre
Noor Alam says
@PIERRE, Please provide a link to the button page so I can check it.
PIERRE says
Hi Noor,
I published my page (rather than testing with the “preview” version) and, although I am not sure that made a difference, I am now receiving the IPN. Many thanks for your quick and efficient response. I am blown away….
Regards,
Pierre
Noor Alam says
@PIERRE, Glad to hear it’s working.
Steven says
My product is generated on a static page – it has to be that way – so can I use an html url to add to cart?
Noor Alam says
@Steven, Unfortunately that’s not possible at the moment.