Paid Memberships Pro Integration with WooCommerce

Description

The best way to add memberships and members-only discounts in your WooCommerce store.

Sell memberships as a WooCommerce product and set members-only discounts in your ecommerce store. This free plugin integrates Paid Memberships Pro with WooCommerce with three key features:

1. Set Custom Product Pricing Based on Membership Level

Each product in WooCommerce can have unique pricing set for your members only.

When a logged in member views the product page, they will see their custom pricing and be able to purchase your products at this special price.

2. Set a Storewide Discount for Members by Level

Each membership level in Paid Memberships Pro can have a unique global percentage discount for your ecommerce store.

When a logged in member views the product page, they will see their adjusted pricing based on this storewide discount.

3. Sell Membership as a WooCommerce Product

Each product can be assigned as a “Membership Product”. Customers that purchase this product in WooCommerce will be assigned a membership level in Paid Memberships Pro. Using the features of PMPro, you can restrict member access to all types of premium content, courses, and community features.

While Paid Memberships Pro has recurring subscriptions built-in, the default WooCommerce plugin only allows products to have a one-time payment. If you must use this plugin to sell recurring memberships through WooCommerce, you will also need WooCommerce Subscriptions.

Learn more about how to sell memberships using PMPro and WooCommerce and how to set members-only pricing in WooCommerce in our documentation site.

Bonus Features of the Paid Memberships Pro Integration with WooCommerce

Members Only Products

If you’d like to offer certain products to members only, see the Custom Post Type Membership Access Add On.

Members Only Store

If your entire store is locked for members only, see this post on Locking Your Entire eCommerce Shop for Members-Only.

Catalog Mode for Non-Members

If you would like non-members the ability to see your store items but restrict them from seeing prices and ability to purchase, see this post on Turn your WooCommerce Store into a Catalog for Non Members.

About Paid Memberships Pro

Paid Memberships Pro is a WordPress membership plugin that puts you in control. Create what you want and release in whatever format works best for your business.

  • Courses & E-Learning
  • Private podcasts
  • Premium Newsletters
  • Private Communities
  • Sell physical & digital goods

Paid Memberships Pro allows anyone to build a membership site—for free. Restrict content, accept payment, and manage subscriptions right from your WordPress admin.

Paid Memberships Pro is built “the WordPress way” with a lean core plugin and over 75 Add Ons to enhance every aspect of your membership site. Each business is different and we encourage customization. For our members we have a library of 300+ recipes to personalize your membership site.

Paid Memberships Pro is the flagship product of Stranger Studios. We are a bootstrapped company which grows when membership sites like yours grow. That means we focus our entire company towards helping you succeed.

Try Paid Memberships Pro entirely for free on WordPress.org and see why 100,000+ sites trust us to help them #GetPaid.

Read More

Want more information on selling memberships and subscriptions with WooCommerce, members-only product pricing, and WordPress membership sites? Have a look at:

Screenshots

  • The "Membership" meta box on a single product. Optionally use this WooCommerce Product to buy a PMPro Membership Level or set specific pricing based on membership level for each product.
  • The "Set Membership Discount" field on the "Edit Membership Level" page (Memberships > Settings > Membership Levels > Edit).

Installation

Note: You must have Paid Memberships Pro and WooCommerce installed and activated on your site.

Install PMPro WooCommerce from within WordPress

  1. Visit the plugins page within your dashboard and select “Add New”
  2. Search for “PMPro WooCommerce”
  3. Locate this plugin and click “Install”
  4. Activate “Paid Memberships Pro – WooCommerce Add On” through the “Plugins” menu in WordPress
  5. Go to “after activation” below.

Install PMPro WooCommerce Manually

  1. Upload the pmpro-woocommerce folder to the /wp-content/plugins/ directory
  2. Activate “Paid Memberships Pro – WooCommerce” through the “Plugins” menu in WordPress
  3. Go to “after activation” below.

After Activation: Configure Plugin Settings

Create a Membership Product

  1. Edit a product or add a new product.
  2. Select the “Membership” tab in the “Product Data” metabox.
  3. Select a level from the “Membership Product” dropdown.
  4. Save changes.

Set Member Discount Pricing on a Product

  1. Edit a product or add a new product.
  2. Select the “Membership” tab in the “Product Data” metabox.
  3. Set a price for one or more levels in the “Member Discount Pricing” section.
  4. Save changes.

Set a Global Shop Discount for Members

  1. Edit a membership level under Membership > Settings.
  2. Locate the “Set Membership Discount” section.
  3. Add a percent discount to the field.
  4. Save changes.

Visit our documentation site to learn more about the settings, access custom code recipes and tutorials, and view a list of compatibility with other Paid Memberships Pro Add Ons.

FAQ

I found a bug in the plugin.

Please post it in the issues section of GitHub and we’ll fix it as soon as we can. Thanks for helping. https://github.com/strangerstudios/pmpro-woocommerce/issues

Reviews

12 March 2024 1 reply
Application is good for its specfic use case. Thanks to the developers for making this available.
8 March 2024 1 reply
After all the different membership plugins I've tried, I can say that Paid Membership Pro is the best possible choice.
17 October 2022 1 reply
When you sell memberships as products, does not set an expiration date on them. The plugin does not calculate an expiration date based on the payment cycle. So, the result is memberships without an expiration date and without recurring charges activated.
Read all 17 reviews

Contributors and Developers

“Paid Memberships Pro Integration with WooCommerce” is open source software. The following people have contributed to this plugin.

Contributors

“Paid Memberships Pro Integration with WooCommerce” has been translated into 8 locales. Thank you to the translators for their contributions.

Translate “Paid Memberships Pro Integration with WooCommerce” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Change Log

1.9 – 2024-03-11

  • ENHANCEMENT: Added support for Paid Memberships Pro 3.0+ to allow multiple level purchases within a single cart if the level linked to the product allows multiple levels at once.
  • ENHANCEMENT/BUG FIX: Fixed an issue where Variable Subscription products did not handle cancellations correctly.

1.8 – 2023-07-10

  • ENHANCEMENT: Mark Paid Memberships Pro Integration with WooCommerce compatible with Custom Order Tables.
  • ENHANCEMENT: Shows a message that the membership product is already in the cart when viewing the same product in the store.
  • ENHANCEMENT: Stop Woocommerce subscription renewals from changing the user’s membership level to the same level.
  • BUG FIX: Fixed an issue where simple variation subscriptions were being discounted incorrectly, when set to not discount level products.

1.7.7 – 2023-02-02

  • BUG FIX: Fixed an issue where the “Autocomplete Order Status” option wasn’t saving correctly.

1.7.6 – 2023-01-24

  • SECURITY: Escaping and sanitization updates.
  • ENHANCEMENT: Updated readme, banner, and thumbnail assets.

1.7.5 – 2023-01-17

  • ENHANCEMENT: Support Multiple Memberships Per User. If a member holds more than one level, give the member the best discount available to their levels.
  • ENHANCEMENT: Added functionality to autocomplete variation products.
  • ENHANCEMENT: Improved localization on strings in the plugin.
  • BUG FIX: Fixed a fatal error when the product item would be false in some cases and we tried to get the product ID.

1.7.4 – 2022-02-03

  • BUG FIX: Fixed issue where renewal purchases was extending member’s expiration date by double. (@dparker1005)
  • BUG FIX/ENHANCEMENT: Fixed issues with the Gift Recipient not saving in newer WooCommerce versions. (@contemplate)

1.7.3 – 2021-08-25

  • ENHANCEMENT: Tested up to WooCommerce 5.6.0.
  • ENHANCEMENT: Added support for time in expiration dates when extending or renewing a level and checking out for a new membership level.
  • BUG FIX: Fixed an issue where variation prices would show twice if the min and max price was identical. (Thanks, ArdiNEC on GitHub)
  • BUG FIX: Fixed an issue of a non-numeric warning value when discount was empty.
  • BUG FIX: Fixed deprecated function warnings.

1.7.2 – 2021-03-13

  • ENHANCEMENT: Tested up to WooCommerce 5.1.0.
  • ENHANCEMENT: Added .pot file and British English po/mo files.
  • BUG FIX: Fixed issue where memberships associated with subscriptions in pending-cancel status were cancelled. We now wait for the full canceled status.
  • BUG FIX: When variable products are used, we will look for a membership price on the parent product. No support for member prices on variations yet.
  • BUG FIX: Removed use of deprecated $order->get_product_from_item() method. (Thanks, ogiebobogh on GitHub)

1.7.1 – 2021-01-13

  • BUG FIX: Fixed issue where discount for membership products would be applied when shouldn’t.
  • ENHANCEMENT: Improved wording on the Advanced Settings area for Membership and WooCommerce Subscriptions discount option.

1.7 – 2020-05-01

  • BUG FIX: Fixed bug where marking an order expired or cancelled could impact other subscriptions.
  • BUG FIX: Fixed typo with woocommerce_order_status_on-hold.
  • BUG FIX: Fixed bug that kept the “Apply Member Discounts to WC Subscription Products?” setting (under Memberships -> Settings -> Advanced) from working properly.
  • BUG FIX/ENHANCEMENT: Checked that $product is actually a product post_type when checking if user has active membership for level.
  • BUG FIX/ENHANCEMENT: Improved checks for cancelling membership if membership product expires.
  • ENHANCEMENT: Added function pmprowoo_user_has_active_membership_product_for_level to return whether a user has an active WooCommerce product that gives membership.
  • ENHANCEMENT: Updated tested up to value for WooCommerce to v4.0 and WordPress to v5.4

1.6.1 – 2018-06-25

  • BUG FIX: Fixed fatal error in pmprowoo_get_membership_products_from_order() that was happening on some systems.
  • ENHANCEMENT: Localization/GlotPress support.

1.6 – 2018-06-19

  • BUG FIX: Fixed bug when deselecting the autocomplete option on a membership product.
  • BUG FIX: Now checking if a user has a different subscription linked to their membership level before removing a user’s membership level. Users switching between subscriptions for the same level would have their level removed. (Thanks, Ted Barnett)
  • BUG FIX: Fixed issues when a product with a sale price also has membership pricing.
  • BUG FIX/ENHANCEMENT: Updated to work with the latest versions of WooCommerce (3.4.2) and WooCommerce Subscriptions (2.2.22).
  • ENHANCEMENT: Added a filter pmprowoo_get_membership_price, which can be used to support variable products via custom code (like this https://gist.github.com/ideadude/5c7ed35a50087178a47d92b192933614)
  • ENHANCEMENT: Added support for PMPro Multiple Memberships per User.

1.5

  • BUG/FIX: Various PHP Warning messages (Deprecated functionality)
  • ENHANCEMENT: Prevents a user from adding more than a single membership product to the shopping cart
  • ENHANCEMENT: Improved function documentation by adding the “WC requires at least” and “WC tested up to” fields to the plugin header.

1.4.5

  • BUG: Fixed issue where since WC v3.0 variable products were not having their prices adjusted properly based on the membership pricing settings.

1.4.4

  • BUG: No longer cancelling out other fields set via the pmpro_custom_advanced_settings filter. (Thanks, Nurul Umbhiya)

1.4.3

  • BUG: Now using the woocommerce_product_get_price filter instead of woocommerce_get_price.

1.4.2

  • BUG: Fixed bug with loading our CSS. (Thanks, Hogash and VR51 on GitHub)

1.4.1

  • BUG: Fixed typo in our add_action call so PMPro memberships are cancelled when the WooCommerce Subscriptions woocommerce_scheduled_subscription_end_of_prepaid_term hook fires.

1.4

  • FEATURE: If the PMPro Gift Levels Addon is also active, adds settings to set a product to generate and email a gift certificate after purchase. (Thanks, Ted Barnett)
  • BUG/FIX: Updated to fully support the new WooCommerce v2+ Subscriptions hooks for activation and cancelling. No longer supporting older versions of WC Subscriptions.
  • BUG/FIX: Moved CSS load to proper WordPress action hook
  • BUG/ENHANCEMENT: Configure proper text domain for translation
  • BUG/ENHANCEMENT: Updated action hook for deprecated WooCommerce hooks
  • ENHANCEMENT: Wrapping all strings for translation and using the proper text domain (pmpro-woocommerce) to support GlotPress translations.

1.3.1

  • BUG: Fixed issue where products with blank membership pricing were being marked as free for members. Use “0”, “0.00”, or “0,00” to mark something as free. Use blank (“”) to have a product use the main price or sale price.
  • ENHANCEMENT: Made the wording of the member discount a bit more clear on the edit level page.

1.3

  • FEATURE: Added a setting to the membership section of the edit product page with a checkbox to “mark the order as completed immediately after checkout to activate the associated membership”.
  • BUG: Fixed bug when setting membership price to 0.
  • BUG: Fixed PHP notices on WooCommerce single product page when PMPro membership price discount was empty.
  • BUG: Fixed issue where member prices were not being applied to products for members.

1.2.11

  • BUG: Fixed bug where site would crash (PHP whitecreen) if Paid Memberships Pro was not active.

1.2.10

  • BUG: Fixed bug when applying membership discounts to membership products and subscriptoins.
  • BUG: Fixed warnings on edit membership level page.

1.2.9

  • Hooking into scheduled_subscription_end_of_prepaid_term to cancel PMPro memberships for manually renewing WooCommerce Subscriptions when they hit expiration.

1.2.8

  • Using current_time(‘timestamp’) in a couple strtotime calls.
  • Added links to docs and support in the “plugin row meta”.

1.2.7

  • Fixed bug where startdate was not being set correctly for new users. (Thanks, liferaft) This script can be used to fix startdates for old members: https://gist.github.com/strangerstudios/4604f62e9812cf3afde7

1.2.6

  • Commented out filters on “woocommerce_order_status_pending” and “woocommerce_order_status_processing” hooks. This keeps PMPro from removing a user’s membership level when they are renewing which can cause issues. (Thanks, Trisha Cupra and others.)

1.2.5.2

  • Fixed bug with getting the expiration_number for levels with an X months expiration. (Thanks, Arnaud Devic)

1.2.5.1

  • Fixed the pmprowoo_checkout_level_extend_memberships() filter added in 1.2.5.

1.2.5

  • Now applying end date extension filter to woo commerce checkouts as well. So if an existing member purchases a product for their level that has an end date, their end date will be extended from the old end date. (Thanks, trishacupra)

1.2.4

  • Fixed bug with WooCommerce Subscriptions being put “on hold”.
  • Fixed bug when entering a membership price > 1000.
  • Fixed bug on some setups which set membership price to 0 if nothing was entered.

1.2.3

  • Fixed bug when setting member price to “0” in product settings.

1.2.2

  • Added option to “Apply Member Discounts to WC Subscription Products?” to the PMPro Advanced Settings tab.
  • Fixed bug where membership discounts wouldn’t be applied if no membership products were in the cart.
  • WooCommerce now mimics PMPro checkout, creating a custom level array instead of passing the ID. So if your level has an expiration number and period, it will be used when adding the level to the user checking out in WooCommerce… i.e. expiration dates “work” now. You can filter the level information using the pmprowoo_checkout_level filter.
  • Added pmprowoo_checkout_level filter to allow filtering the checkout level (to use PMPro expiration dates, etc. if Subscriptions addon is not installed)

1.2.1

  • Fixed updating of WooCommerce billing address user meta when brand new users checkout with PMPro.

1.2 – 2014-04-23

  • Updating user meta for billing address when the Woo Commerce billing address is updated and vice versa.

1.1.1

  • Fixed fatal error that would be thrown if PMPro is not also activated.

1.1

  • Fixed adding/updating membership when order status is changed to completed

1.0 – 2014-02-26

  • Released to the WordPress repository.

.3.2

  • Fixed a bug where the get_price filter wasn’t running when products/prices were loaded over AJAX (e.g. in the order review).
  • Added code to force account creation at checkout if the cart includes a membership level.

.3.1

  • Fixed bug where products were erroneously counted as “subscription products” and thus discounts may not apply. You may have to edit these products and click “update” to get the settings to save correctly.

.3

  • Added membership products
  • Added membership discounts
  • Moved PMPro options to separate tab

.2

  • Added per level pricing to the edit product page. (Thanks, jessica o)

.1

  • This is the initial version of the plugin.