CP Contact Form with PayPal


CP Contact Form with PayPal inserts a contact form into a WordPress website and connect it to a PayPal payment, either a PayPal Standard payment or a PayPal Express / PayPal Credit payment where available.

New feature: Now includes also a visual form builder for customizing forms.

Once the user has filled the PayPal contact form fields and click the submit button the posted data is saved into the WordPress database and the user is automatically redirected to PayPal to complete a payment. After completed the PayPal payment, the website administrator (the email indicated from the settings) will receive an email with the form data and the user will receive a confirmation/thank you email.

Both the paid forms and unpaid forms sent from the contact form will appear in the WordPress settings area with the mark of “Paid” or “Not Paid” so you can check all the details and contact the user if needed.

This WordPress plugin is useful for different types of contact forms, booking forms, order forms, consultation services, payments for joining events (paid event registration), ect…


CP Contact Form with PayPal has the following main features:

  • Supports PayPal Standard and PayPal Express / PayPal Credit (where available)
  • Supports many contact forms into the same WP website, each one with its own prices and settings.
  • Visual form builder for adding/editing/deleting fields
  • Allows checking the messages for both paid and un-paid submissions sent from the contact form.
  • You can customize the notification email details, including from address, subject and content with the contact form fields.
  • The website administrator receives an email notification of the paid contact message.
  • The customer receives a “thank you – confirmation” message.
  • Easy setup of the PayPal payment, basically just indicate the price and email linked to the PayPal account. There are optional fields for language and currency settings.
  • Export the contact form messages to CSV/Excel
  • Support PayPal taxes configuration
  • Support recurrent payments
  • Refunds can be processed directly from the plugin
  • Supports donation layouts for PayPal donation forms
  • Optionally request address at PayPal (useful for the delivery of tangible items)
  • Includes optional captcha verification as part of the contact form.
  • Elementor integration, Gutemberg integration
  • GDPR acceptance field (General Data Protection Regulation)

How it can be used

These are some possible scenarios where this plugin is useful:

  • Contact form linked to a PayPal payment
  • As a PayPal button
  • For accepting donations through PayPal (leave a zero amount in the payment amount)
  • Support request forms or paid assistance contact forms
  • For receiving product orders (order form), purchases, bookings and reservations.
  • For automatic delivering of information after payment (put the information into the auto-reply message)
  • Registration forms for events with payment involved
  • … any other use involving forms and PayPal payments

Commercial Features:

There are also a commercial versions available with more features:

  • Visual form builder: The free version includes an useful basic form builder, however the commercial version features an easy, strong and full features visual form builder with all you need to build any form.
  • Works also without PayPal, discount codes and dynamic/open prices, additional configuration settings.
  • Other payment methods: PayPal Pro, Stripe Payments, Skrill, Authorize.net, Mollie / iDEAL, TargetPay / iDEAL, Sage Pay, SagePayments, Redsys TPV
  • Tons of additional features and add ons: Mailchimp, reCapctha, SMS message delivery, Signature fields, etc…

You can get these features at: https://cfpaypal.dwbooster.com

Language Support

The Contact Form with PayPal plugin is compatible with all charsets. The troubleshoot area contains options to change the encoding of the plugin database tables if needed.

Translations are supported through PO/MO files located in the Contact Form with PayPal plugin folder “languages”.

Multiple language translations are already included in the plugin.
Requesting address at PayPal: If you are selling tangible items and you need to request the customer address at PayPal you can enable that option into the settings field “Request address at PayPal” available separately for each contact form.

Taxes at PayPal: You can indicate the taxes to charge at PayPal over the “request cost” as a percent into the settings field “Taxes (percent)”. Each contact form can have a different taxes setting.

Edit submit button label: You can easily edit the submit button label into each contact form settings. The class=”cp_subbtn” can be used to modify the button styles. The styles can be applied into any of the CSS files of your theme or into the CSS file “cp-contact-form-with-paypal\css\stylepublic.css”. For further modifications the submit button is located at the end of the file “cp_contactformpp_public_int.inc.php”.

Use a specific field from the form for the payment amount: If a field is selected in this settings field, any price in the selected field will be added to the above request cost. Use this field for example for having an open donation amount. This field is more useful in the pro version since it supports adding more fields to the contact form.

Button to change status to paid: The messages list contains a button to change the status of the “Not paid” contact form messages to “Paid”. This is mainly for administrative purposes.

Export data to CSV/Excel: The messages list contains an option to export the contact messages received from the contact form to a CSV/Excel file. This way you can export the email address and other data from the contact messages to other applications or manage the data in Excel. The filters in the message list apply also to the exported CSV/Excel file.

Enabling donation layout: The plugin supports enabling the PayPal donation layout, this way a payment page improved for donations is displayed to the donors.


  • PayPal Contact Forms List
  • PayPal Contact Form Settings
  • Inserting a PayPal contact form into a page
  • Sample PayPal contact form


CP Contact Form with PayPal can be installed following these steps:

  1. Download and unzip the CP Contact Form with PayPal plugin
  2. Upload the entire cp-contact-form-with-paypal/ directory to the /wp-content/plugins/ directory
  3. Activate the CP Contact Form with PayPal plugin through the Plugins menu in WordPress
  4. Configure the PayPal contact form settings at the administration menu >> Settings >> CP Contact Form with PayPal
  5. To insert the PayPal contact form into some content or post use the icon that will appear when editing contents


Q: What means each field in the PayPal contact form settings area?

A: The product’s page contains detailed information about each contact form field and customization:


Q: Where can I publish the CP Contact Form with PayPal with the PayPal button?

A: You can publish the PayPal contact forms / PayPal button into pages and posts. Other versions of the plugin also allow publishing the CP Contact Form with PayPal as a widget.

Q: The PayPal payment has been received but the status of the Message isn’t being set to Paid. What happens?

A: First check if you are testing the CP Contact Form with PayPal on a local website or in an online website. Note you should test this feature into an online website (local websites cannot receive PayPal IPN connections).

After that initial verification, please check if the IPN notifications are enabled at your PayPal account. Check also the IPN logs at your PayPal account to confirm if are being received.

Q: I’m not receiving the emails after PayPal payment.

A: Please check if the messages are marked as “paid” or “not paid” in the contact form messages page.

If the contact form messages are marked as paid then the problem is that your WordPress isn’t delivering the emails. You should setup the WordPress to deliver the emails according to your mail server settings. You may have to ask to your web hosting support about the requirements to send emails from WordPress/PHP with their hosting service.

On the other hand if the contact form messages aren’t marked as “paid” then the PayPal IPN connection isn’t being received. Read the previous FAQ entry for information and solution.

Q: How can I customize the style of the PayPal button?

A: The PayPal button is located at the end of the file “cp_contactformpp_public_int.inc.php”. It’s a classic submit button, you can change it to any other button that submits the CP Contact Form with PayPal.

Q: How can I have an actual PayPal button as the submit button for the form instead of the default grey button?

A: At the end of the file “cp_contactformpp_public_int.inc.php” replace this:

    <?php _e($button_label); ?>

… by this:

    <img src="http://www.paypalobjects.com/en_US/i/btn/btn_buynow_LG.gif" />

You may also want to change the background color of the button with the CSS style class=”pbSubmit”.

Q: How can I add specific fields into the contact form message?

A: There is a tag named %INFO% that is replaced with all the information posted from the form, however you can use also optional tags for specific fields into the contact form.

For doing that, click the desired contact form field into the contact form builder and in the settings box for that field there is a read-only setting named “Field tag for the message (optional):”. Copy & paste that tag into the message text and after the form submission (after clicking the PayPal button and receiving the PayPal payment) that tag will be replaced with the text entered in the form field.

Q: Can I use this with PayPal Personal accounts

A: Yes, you can use it with PayPal Personal accounts and also with PayPal Premium and PayPal Business accounts.

Q: Can I accept credit card payments through PayPal directly without forcing the users to create a PayPal account?

A: That depends of the type of your PayPal account and its status. In most cases PayPal Business accounts and PayPal premium accounts allow accepting payments from users that don’t have PayPal accounts. In this case after clicking the PayPal button the PayPal page will appear with two options “Login at your PayPal account” and “Pay directly without having to register”. The title of the options at PayPal may vary.

Q: I’m having problems with non-latin characters in the PayPal contact form.

A: New: Use the “throubleshoot area” to change the character encoding. If you prefer to do that manually , in most cases the problem is located in the database table collation/encoding. The solution is to change the table encoding to UTF-8. You can do that from the PHPMyAdmin provided by your hosting service.

For example, if your WordPress database table prefix is “wp_” (the default one) then run these queries (will update only the PayPal contact form tables):

alter table wp_cp_contact_form_paypal_discount_codes convert to character set utf8 collate utf8_unicode_ci;
alter table wp_cp_contact_form_paypal_settings convert to character set utf8 collate utf8_unicode_ci;
alter table wp_cp_contact_form_paypal_posts convert to character set utf8 collate utf8_unicode_ci;

If you don’t know how to do that, contact our support service and we will help you.

Q: The contact form doesn’t appear in the public website. Solution?

A: In the “throubleshoot area” (located below the list of forms in the settings area) change the “Script load method” from “Classic” to “Direct”.

Q: How can I duplicate a form and its settings?

A: Use the “Clone” button located in the contact form’s list. That button will duplicate the contact form structure and all its settings.

Q: How to setup the CP Contact Form with PayPal to accept a PayPal donation?

A: To accept a PayPal donation (an open donation amount) just put a zero (0) on the “Request Cost” settings field. That way after filling the contact form clicking the PayPal button (contact form submit button) the PayPal payment page will appear letting the user to enter the amount to pay.

Q: How to show a company name instead the email address at the PayPal payment page?

A: To show a company name instead the email address at the PayPal payment page (after the contact form submission) you have to use a PayPal Standard Business account. Note that in Personal and Premier Standard accounts the email is shown instead the company name since there is no company name in that case.

Note also that if you are testing the contact form in the SandBox mode then the email may be shown instead the name of the production account.

Q: Are the forms GDPR compliant?

A: In all plugin versions you can turn off IP tracking to avoid saving that user info. Full GDPR compliant forms can be built using the commercial versions of the plugin.

Q: How to enable the refund processing feature?

A: Into the plugin settings select the option “Process refunds through this plugin?” as “Yes”. In addition to that you have to indicate the PayPal (NVP) – API UserName, Password and Signature.

When done to refund a payment just use the refund button that appears for each transaction in the settings area.


Great plugin, great support

I have the platinum edition. The plugin is easy to handle. I only had some troubles with German language settings. The support was excellent and very fast. The issue was solved within one day. Also I wanted to implement an own functionality, which does not come with the plugin. Even here the support was extremely helpful. Great plugin, great support

Incredibly Useful Plugin

Simple, to the point and has A TON of functionality. Not all functionality is documented, but their support was incredibly helpful in helping us through all of our issues. This quickly became my goto plugin for accepting donations going forward.

Well supported

I’ve been using this for quite a while, a few days ago all my forms suddenly failed to show when we changed to SSL! After some unsuccessful testing I contacted support, I was not expecting too much from support but they sent me back a fast answer and a simple solution. Recommended.

Pro not worth it. Does basic jobs. Support not great.

Don't bother with the Pro version unless you absolutely need the extra features, and you know for a fact they will cover what your business needs. Plugin support at the Pro level has been slow at best and condescending at worst, and some features are poorly structured with misleading or straight-up incorrect instructions (we've had particular problems with the plugin's automatic detection of prices in form fields). If you have form requirements that are more than even slightly complicated, or know enough CSS/JavaScript to think you can make your own tweaks (low-average skill level, not expert), expect to run into a lot of headaches. Pro quality so far is what we'd expect of a low-cost or even free plugin, not one charging $50.

Great plugin – Paid – Brilliant support

Save yourself any problems and upgrade to the PRO version. It's a very easy to use plugin with straight forward customisation to create you form etc. I had no issues with it at all and when I raised a ticket to request some custom development work they couldn't of been more helpful. The work done was done very efficiently and done exactly what I wanted it to do.
Read all 50 reviews

Contributors & Developers

“CP Contact Form with PayPal” is open source software. The following people have contributed to this plugin.




  • First stable version released.
  • More configuration options added.


  • Compatible with latest WordPress versions
  • Speed improvements, the contact form loads faster
  • Improved validation options for the contact form fields
  • New email content editing feature and interface changes
  • New tooltip scripts
  • Fixed bug related to discount codes
  • Fixed conflict with captcha image generation
  • New feature to get the logged in user information into the notification email
  • Update to CSS styles for minimizing the CSS conflicts.
  • Improvements to CSS styles
  • Fixes problem with backslash when saving the contact form settings
  • PayPal Sandbox option added
  • Added language support through MO/PO files


  • Compatible with the latest WP versions
  • Better interface and access to the plugin options
  • Captcha image works better in different server environments
  • New translations added
  • Fixed bug in multisite installations
  • Minor bug fixes
  • Fixed warning that appeared with PHP safe mode restrictions
  • Fixed issue with the site home URL in WP with folders in non-default locations


  • Update to generate the IPN addres with HTTPS if available
  • Security update for SQL queries (vulnerability was found by Joaquin Ramirez Martinez with the help Christian Mondragon Uriel Zarate)
  • Fixed bug that caused double emails
  • Fixed issues with WP sites not configured in the default folders


  • Fixed bug in https detection
  • Improved documentation
  • Improved debug messages to get feedback
  • Compatible with the latest WordPress 4.2.x version


  • Compatible with the WordPress 4.2.2 version


  • Fixes security bug: CSRF, XSS, SQLi – thank you to Nitin Venkatesh for the report


  • Fixed issue in SSL detection for the PayPal IPN address
  • Improved captha generation code
  • Update to fix bug in captcha image generation
  • Update to the captcha processing code
  • Added nonce verification in the form settings
  • Security update for CSRF issue


  • Compatible with WordPress 4.3
  • Replacement of heading tags for the WP 4.3
  • Update to the Dutch language
  • Fixed a bug in the submission process


  • Fixed bug in submission process
  • New parameter for optimizing support


  • Admin interface updates


  • Supports PayPal recurrent payments


  • Supports for new language in troubleshoot area


  • Fixed menu slug


  • Option to bill the recurrent payments every two monts


  • Tested and compatible with WordPress 4.4
  • Fixed CSS bugs


  • Fixed query bug in WP 4.4


  • Fixed captcha issues


  • PayPal button update


  • Optimized CSS styles


  • Update to database structure


  • Fixed captcha bug in Windows servers


  • Improved captcha security


  • Updated website URL. New documentation and distributions.


  • French translation updated


  • Fixed PHP session issues


  • Shortcode paramters sanitization


  • Used SSL for API URLs


  • Added fr_CA translation


  • Added nonces to message list


  • Updated FAQ and doc URLs


  • Plugin support and demo links updated


  • New filter for file uploads


  • Tested for WP 4.5


  • Stripcslashes fix


  • Scripts moved to head section


  • Fixed bug in admin list


  • Added explicit error page


  • Improved initialization hooks


  • Wrong tag removed from CP Contact Form with PayPal


  • Removed old versions of CP Contact Form with PayPal


  • New documentation


  • Fix in FROM email


  • IP Address excluded from email as default value


  • Security improvement


  • POST param sanitization


  • Better from email setup


  • Doc update


  • Fix to admin link


  • Change name to reflect exactly what the plugin does


  • Compatible with WP 4.6


  • New custom request form


  • New option to set lenght of initial period for PayPal recurrent payments


  • Fixed bug in saving settings data


  • IP address field update


  • Magic quotes processing correction


  • More updates about magic quotes


  • Roll back to incorrect update


  • Interface update


  • Donation layout documented


  • Update to French translation


  • New placeholder email


  • Better debug service


  • Fixed DB error on IP v6 networks


  • Int. typos corrected


  • PayPal IPN verification improvement


  • New documentation page


  • WP 4.7 compatible


  • Code optimizations


  • Instructions update


  • Database structure update


  • Fixed typo


  • Fixed typo


  • DB improvements


  • Security improvement


  • Admin interface modification


  • CSS update


  • Validation update


  • Fixed bug in add CP Contact Form with PayPal


  • Admin updates


  • Code updates


  • Security improvement


  • Help address updated


  • Compatible with WP 4.7.3


  • Update related to the parameters in the PayPal IPN notification


  • Using now only 1 parameter for the PayPal IPN notification


  • Tags updated to max 12


  • Added email validation in admin


  • Form builder updated suporting email field types


  • Added several field validations in the admin settings form


  • Captha code optimizations and security improvements
  • Fix to PayPal recurrent payments setup


  • New review panel


  • Fix in review panel


  • Added PayPal Express + PayPal Credit feature


  • Fixed bug on older PHP versions


  • Sanitization for PayPal email address


  • Validation code in PayPal Standard Integration


  • Tested and compatible with WordPress 4.8


  • Removed deprecated PayPal parameters


  • Cleanup for PayPal parameters


  • Accessibility updates


  • Fixed bug in color selectors


  • Moved plugin website and links to SSL


  • Removed use of deprecated MySQL functions


  • Accesibility and validation updates


  • PayPal return address santized


  • Fixed number validation issue in Google Chrome


  • Improved print option


  • Admin area improvements


  • Better PayPal currency selection


  • Cost number formatting


  • Price setting auto-cleaning


  • Added default values for options


  • Code and validation updates


  • Fixed notice when email field not defined


  • Fixed escaping of translated texts


  • Improved file extension verification


  • Better equeue of CSS files


  • Compatible with WordPress 4.9


  • Easier file for form customization


  • Added support for HTML formatted emails


  • Fixed typos and interface improvements


  • Fixed bug in review panel


  • Added CSS and JavaScript customization panel


  • Improved submission process to avoid duplicated submissions


  • Better currency auto-detection


  • Additional improvements to currency auto-detection


  • Code updates & bug fixes


  • Admin interface improvements


  • Added security verification


  • Adjustments to make the form GDPR compliant


  • Added two-months initial billing period for recurrent payments


  • Removed use of external CSS from Google CDN


  • Label updates to fix layout issues


  • Feature to display form name on settings page


  • Faster script load method as default option


  • Fixed conflict with autoptimize plugin


  • Fixed captcha reloading issue


  • Improvements to captcha validation notifications


  • Improvements to bookings list to match GPDR requirements


  • Interface updates


  • Currency detection improvement


  • Fixed open forms conflicts


  • Easier activation process


  • Fixed initialization issue and added optional feedback


  • New active visual form builder
  • GDPR acceptance fields


  • Added payment refund feature


  • Added support for INR – Indian Rupee and ARS – Argentine peso currencies


  • Database creating encoding fix


  • Fixed activation bug


  • Fixed jQuery conflict


  • Interface improvements


  • Fixed admin interface conflict with 3rd party plugin


  • Compatible with Gutenberg


  • Fix to Gutenberg integration


  • Fixed conflict with Gutenberg editor


  • Fixed magic quotes issue


  • Gutenberg integration update


  • Fixed issue in taxes calculations


  • Improved CSS edition area


  • Interface improvements


  • Currency setting clarifications


  • Fixed conflict with third party plugins


  • Gutenberg compatibility updates


  • Fixed conflict with loading page plugins


  • New publishing option. Compatible with WordPress 5.0


  • Form builder header fixes


  • CSS, interface updates and improved conflicts detection


  • Interface fixes


  • CSV Encoding fix and interface improvements


  • New Gutemberg Block


  • Improved translations


  • Fixed bug in form edition


  • Removed use of CURL


  • Added Elementor Page Builder integration