Preparing for Gutenberg: the New WordPress v5.0 Editor

GutenbergA new post editing and customization experience named “Gutenberg” is coming to WordPress. This post shares how the team at Paid Membership Pro is preparing, planning, and designing for the editor’s release to offer better tools and options for membership sites running our plugin.


What is Gutenberg and how can I learn more about it?

Unless you’ve been hiding under a rock, you’ve probably heard the name and maybe know a bit about the new Gutenberg editor. Gutenberg is an open source project currently offered as a WordPress Plugin. It’s being developed on GitHub and will soon be included as a core feature of WordPress.

The Gutenberg editing experience revolves around “blocks”.

These blocks are a unified way to style content that currently requires shortcodes, embeds, widgets, post formats, custom post types, theme options, meta-boxes, and other formatting elements. By allowing rich customization without deep knowledge of code, blocks make good on the promise of WordPress: broad functionality with a clear, consistent user experience.
via WordPress.org

You can read and learn more about Gutenberg in the official handbook. If you want to learn even more, check out WP Tavern’s post on A Collection of Gutenberg Conversations, Resources, and Videos.


How does Gutenberg work with Paid Memberships Pro?

We know that some Page Builders for WordPress have specific integration considerations when using Paid Memberships Pro. We want your to know that we have tested the latest release of Gutenberg and everything in Paid Memberships Pro works as expected. Everything that works in the current editor is going to work in the new editor.

Gutenberg is largely coded in JavaScript. Some parts of that code don’t interact with the server-side PHP at all. For example, Blocks are defined in JavaScript. And so if you wanted to limit Blocks by membership level, you would need to run that filter in the JavaScript. Going forward, the PHP-based hooks and filters we use to protect WordPress content and features won’t be enough to protect all of the things being done in JavaScript.

The future of WordPress is JavaScript, so Paid Memberships Pro needs to build tools for protecting content in JavaScript. This is an important consideration for our developers and other contributors to the Paid Memberships Pro open source project.


How can Paid Memberships Pro offer Gutenberg support?

We see lots of possibilities for custom PMPro blocks in Gutenberg, and there’s huge potential to extend our core membership plugin as well as our Add Ons.

Here are a few interesting ways we hope to leverage Gutenberg Blocks for PMPro:

  1. Gutenberg Blocks for all shortcodes.

    Any shortcode in Paid Memberships Pro will have a Block equivalent, including the plugin-page shortcodes. The new Blocks will be easier to move around in your page design and can have intuitive settings for customization.

  2. Break plugin-page shortcodes into several Blocks.

    Instead of one shortcode used per plugin page, we plan to break some of our shortcodes into multiple blocks? For example, our [pmpro_account] shortcode currently has a sections attribute, allowing you to customize the display of the membership, profile, invoices, and links areas of that page. Each of these sections could be its own block, making it easier to reposition and tweak them individually.

  3. Block-level Content Restriction

    The current [membership] shortcode allows you to wrap and restrict post content for specific membership levels. We plan to create a Membership Block with settings for the specific level IDs, status, session, and more. You would then be able to nest Blocks within this parent Block and design totally unique content based on the user viewing the page.

  4. Built-in Templates for best practice layouts for your membership sales pages.

  5. Gutenberg gives you the ability to define “Block Templates”, which are groups of Blocks in a preset layout. Block Templates will be a great way to share popular page layouts for landing pages, sales pages, pricing tables and more. We will find (and develop if necessary) the layouts best optimized for conversions to share with our users.

  6. Register Helper Fields as Blocks

    We know that our users would love a drag-and-drop interface for Register Helper. We are working to create a simplified (non-code) based custom user fields structure using Gutenberg Blocks. Custom user meta fields will be visually inserted into the Checkout Page for capture at Membership Checkout, or into the Member Directory and Profile Pages for a unique layout customized to your site’s member data?


What can you do with Gutenberg NOW?

Insert the Shortcode Block with GutenbergIf you’re using Paid Memberships Pro and would like start using Gutenberg for your WordPress editing experience, follow the steps below:

  1. Install and activate the Gutenberg plugin via Plugins > Add New > “Gutenberg”. “>[Download Link]
  2. Edit your Pages under Memberships > Page Settings.
  3. Insert a the “Shortcode” block located under Blocks > Widgets.
  4. Move the page’s appropriate shortcode into the Shortcode Block.
  5. Update the page.
Note that for the “Checkout” page to preview properly, you must add a Level ID to the URL (i.e. /membership-checkout/?level=1).


Video: Using Gutenberg to design the Membership Account Page

I made a brief and basic video of how you can use the [pmpro_account] shortcode sections to create a column-type layout for your membership account page. This is not how we plan to offer Gutenberg support in the future, but for now it does give you a glimpse of what is possible. There’s no background music or narration – so please play your own tunes 🙂


We will continue to post updates on the blog here as we make progress on these efforts.

PMPro Update 1.9.4.3

Version 1.9.4.3 of Paid Memberships Pro is out with a single bug fix.


  • BUG FIX: Fixed issue where PMPro would attempt to cancel gateway subscriptions more than once in some cases.

This bug could have a small or large impact depending on your site and settings. To be safe, you should update now.


Please update Paid Memberships Pro from the plugins page of your WordPress dashboard. You can also get the latest version of PMPro here or version 1.9.4.3 specifically here.

PMPro Update 1.9.4.2

Version 1.9.4.2 of Paid Memberships Pro is out with a handful of bug fixes and minor enhancements.


Please update Paid Memberships Pro from the plugins page of your WordPress dashboard. You can also get the latest version of PMPro here or version 1.9.4.2 specifically here.


The full list of updates is below.

There is one issue we’ve been working on that did not make it into this point release. On some Stripe setups, administrators are receiving “failed to cancel” emails either sometimes when a user cancels or every time a user cancels. In some cases, PMPro is trying to cancel a subscription twice. Since the subscription is already cancelled, the second attempt fails and sends this message.

We are working to fix this issue and will release an update 1.9.4.3 as soon as possible with this fix. Note that for this specific bug, PMPro is still cancelling subscriptions as it should, just sending these extra emails which are problematic on bigger sites. There are other issues that can come up with cancellation and subscription syncing. If you are having issues, you should reach out to us through our member support forums.

  • BUG FIX: Avoid double-encoding the API version in PayPal Standard gateway
  • BUG FIX: The update billing page now checks the gateway of the user’s last order instead of the default gateway settings in case multiple gateways are in use or the default gateway has changed.
  • BUG FIX: Fixed bug where discount codes were not being applied properly if the pmpro_default_level custom field was set and used on a page.
  • BUG FIX: Credit card expiration emails were being to sent to members with PayPal Express orders.
  • BUG FIX: Now correctly unslashing instructions for the check gateway.
  • BUG FIX: Fixed issue with creating pages from the page settings page.
  • BUG FIX/ENHANCEMENT: Improved submit button and processing message position for default and RTL on checkout page.
  • BUG FIX/ENHANCEMENT: Added invoice total and total billed breakdown back to confirmation and invoice single views.
  • BUG FIX/ENHANCEMENT: Avoid double-encoding the PayPal API version number
  • ENHANCEMENT: Improved submit button and processing message position for default and RTL on checkout page.
  • ENHANCEMENT: Switched order of Publishable and Secret Key fields and added validation check.
  • ENHANCEMENT: Conditionally update members list headings for expired, cancelled, or old members.

PMPro Update 1.9.4.1

Version 1.9.4.1 of Paid Memberships Pro is out with a handful of bug fixes. Braintree users in particular will need to update if they are running 1.9.4. There is also fix to the Recaptcha code and an enhancement to the cancelation error email.


Please update Paid Memberships Pro from the plugins page of your WordPress dashboard. You can also get the latest version of PMPro here or version 1.9.4.1 specifically here.


The full list of updates is below.

  • BUG FIX: Fixed serious bug where payment fields weren’t showing up for the Braintree gateway.
  • BUG FIX: Fixed issue where Braintree webhook notifications were failing. We now allow the Braintree library to sanitize the incoming data since our sanitizing efforts were breaking the validation.
  • BUG FIX/ENHANCEMENT: The webhook URL given for Braintree now goes through admin-ajax.php instead of a direct link to a php file within our plugin.
  • BUG FIX/ENHANCEMENT: Updates to the Recaptcha library. (Thanks, Corin Simpson-Bryars)
  • ENHANCEMENT: Made the cancelation failed error email easier to read.

PMPro Update 1.9.4

Version 1.9.4 of Paid Memberships Pro is being pushed out shortly. This update includes fixes that could impact sales, and we recommend everyone upgrade as soon as possible. There are two updates in particular to look out for related to our Stripe integration as well as new frontend layouts for improved display across devices.


The included Stripe PHP Library has been updated to the latest version.

While not necessary, after upgrading it is a good idea to log into Stripe to change your API settings to use the latest version of the Stripe API. To do this log into Stripe, click on API in the left sidebar, then click on “Upgrade Available” and follow the directions.

If you don’t see the “Upgrade Available” link, then you are already running on the latest version of the Stripe API. Be sure to test checkouts on your site after making this change. For 72 hours, you’ll be able to roll back to the previous version of the Stripe API if needed.


“Table-free” Frontend Pages for Improved Display on All Devices

In an effort to improve the display and responsive layout of default plugin pages, v1.9.4 of Paid Memberships Pro has migrated to a “table-free” layout for selected frontend pages. Affected pages include those pages using the following shortcodes: [pmpro_checkout], [pmpro_confirmation], and [pmpro_billing]. These pages have been updated to use a div-based HTML layout where possible instead of a table-based layout.

We’ve done our best to make sure this update has minimal impact on all of our users, but if you notice UI issues after performing the update (in particular users with custom checkout templates or CSS styling might be affected), you can use the Table Layout Add On to revert to the table-based layout on your site. Note that if you roll back PMPro entirely, you will lose the benefit of the 30+ other fixes and enhancements included in this update. So using the table pages add on the preferred way to fix any UI issues that come up.

It is also important to note that this add on is meant as a temporary solution while you update your site to make use of the new div-based layout. We will support the plugin for about a year. During that time, be sure to reach out to use with any issues caused by our add ons and code and take time to update your own customizations to work with the new layout.


Add Ons Updated to be “Table-free” and for 1.9.4 Compatibility

Many of our Add Ons have also been updated to use the new div-based layout or other bug fixes included in this update. Those add ons will have updates available as well, so be sure to update all of your PMPro Add Ons with update notices before you update the core Paid Memberships Pro plugin.

Affected Add Ons Include


How to Update

Please update Paid Memberships Pro from the plugins page of your WordPress dashboard. You can also get the latest version of PMPro here or version 1.9.4 specifically here.


Changelog

In terms of number of fixes and enhancements, this is one of our largest updates ever. The full list of updates is below.

  • BUG FIX: Fixed issue where PayPal was not working for amounts over $1000.
  • BUG FIX: Non-decimal currencies now handled correctly with Stripe.
  • BUG FIX: Fixed issue where updating a Stripe subscription from the edit user page could cancel the subscription once the webhook fired.
  • BUG FIX: Fixed issue where “admin_cancelled” memberships weren’t being calculated correctly in membership reports.
  • BUG FIX: Fixed issue where users could not drag and drop to change the order of membership levels.
  • BUG FIX: pmpro_getMembershipLevelsForUser() would sometimes return duplicate levels in the array if the user had multiple active entries in the pmpro_memberships_users table.
  • BUG FIX: Updated includes/metaboxes.php to call pmpro_getAllLevels() instead of relying on the $membership_levels global which is problematic.
  • BUG FIX: Fixed a few strings that weren’t wrapped for translation or were using the old text domain.
  • BUG FIX: Fixed redirect error that occured when the levels page was not set.
  • BUG FIX: Updated getfile.php to support file names with urlencoded characters (e.g. spaces) in them. (Thanks, florent from PMPro blog)
  • BUG FIX: Fixed notice when use the getfile.php script due to using add_filter instead of apply_filters in the mimetype class.
  • BUG FIX: Fixed the all time views column for the logins report.
  • BUG FIX: Fixed fatal error on the logins report, member shortcode and other issues when using PHP7.1+.
  • BUG FIX: Fixed issue with saving arrays using pmpro_setOption()
    up the lines of text.
  • BUG FIX: Fixed typo in the string “Are you sure you want to do that? Try again.”
  • BUG FIX: Fixed a few strings that used the wrong text domain or weren’t wrapped correclty for translation.
  • BUG FIX/ENHANCEMENT: Now bundling Google’s jsapi.js file for use in the reports.
  • BUG FIX/ENHANCEMENT: Fixed issue where some emails (e.g. the password reset email) would not have wpautop applied to them, crunching
  • BUG FIX/ENHANCEMENT: Better checking for Theme My Login compatibility when handling login redirects.
  • BUG FIX/ENHANCEMENT: Better error handling for Braintree.
  • BUG FIX/ENHANCEMENT: Membership stats widget now shows first 3 levels based on level order.
  • BUG FIX/ENHANCEMENT: Added the pmpro_member_shortcode_access filter
  • ENHANCEMENT: Updated the Stripe PHP library to version 5.2.2 and updated Stripe to use the latest version of their API, 2017-08-15.
  • ENHANCEMENT: Changed frontend pages (e.g. checkout.php) to use a div-based layout instead of tables. Important information here if you are using custom page templates or notice UI issues after upgrading
  • ENHANCEMENT: Added pagination to the discount codes page in the admin. Also sorting codes in descending order by ID. Use the pmpro_discount_codes_per_page filter to change the per page limit from 15.
  • ENHANCEMENT: Updated plugin admin pages with better links to documentation and support.
  • ENHANCEMENT: Updated plugin frontend pages checkout, billing, confirmation, and single invoice to remove most table based layouts.
  • ENHANCEMENT: Better error message if trying to checkout using an existing user’s email address.
  • ENHANCEMENT: Added the pmpro_report_levels filter to let users change levels and order of levels for the memberships.php report.
  • ENHANCEMENT: Updated video and copy for readme.txt.
  • ENHANCEMENT: Added user display name to Memberlist search query
  • ENHANCEMENT: Added Russian Ruble as a currency.
  • ENHANCEMENT: Changed the dated term “CVV” to “Security Code (CVC)” when shown on the frontend.
  • ENHANCEMENT: Added .doc and .docx to the mimetype class.
  • ENHANCEMENT: Added Portuguese language files. (Thanks, Secundino Correia)
  • ENHANCEMENT: Updated plugin admin pages with better links to documentation and support.
  • Installation and Initial Setup Video Refresh

    We want to extend a big thank you to our team member Travis Lima for recording a new Installation and Initial Setup Video. Our previous video was terribly out of date and many features of the dashboard have been updated since that video was recorded.

    Installation and Initial Setup Video Tutorial

    Watch the Video


    Step-by-step instructions from this video are available here »

    Paid Membership Prices Increasing Soon, Lock in at a Discounted Rate Now

    When Paid Memberships Pro launched in June 2010, our single goal was to become “the community solution” for membership sites on WordPress. We’ve achieved that goal. Today, developers and site owners setting up a membership site on WordPress consider Paid Memberships Pro the best option.

    I’m very proud of the value we have delivered, not only for our PMPro Members, but for all users of our 100% free, GPLv2 plugin.

    Continue reading for information about the upcoming price increase and a special discount offer we’re extending to new members through September 9. Rest assured that this pricing change will NOT affect our existing members in any way.


    A little backstory.

    In July 2015, we introduced our PMPro Plus plan and began charging for automatic updates to our premium Add Ons. Even though our Add Ons are all open source on GitHub, thousands of customers have chosen to purchase our support plans. Revenue from these customers has funded the continued maintenance and development of Paid Memberships Pro and our growing library of 70+ Add Ons.

    In the past year, we have expanded our support and development efforts with 2 full time-team members, bringing us to 4 part-time and 4 full-time team members in all.


    We’d like to do more.

    Our plan is to use the added revenue from new pricing to offer a better support experience for our members. It is our goal to speed up response times, provide a deeper level of development help, and offer communication by live chat or phone.

    To reach these goals, we have decided to change our pricing for new customers.

    1. We no longer offer PMPro Core (support only) membership for new customers.
    2. Plus membership is now $297/yr. (renews annually at $197).
    3. We will begin limiting license keys for Plus membership to just 5 sites. Note that our license key tracking will be done in a very liberal way to account for multisite networks, development, staging, testing, and temporary sites. Existing Plus members will not be restricted by these limits, but may be contacted if their key is active on a large number of sites to ensure that their key hasn’t been shared publicly.
    4. We are introducing Unlimited membership at $997/yr. (renews annually at $697) for customers who need a license for more than 5 sites.

    This pricing change will NOT affect our existing members in any way.

    Current Plus members will be grandfathered in to the price they originally paid for Plus membership. If you have been paying $47/yr., you will continue to pay $47/yr. If you have been paying $147/yr., you will continue to pay $147/yr.

    We will continue to support existing PMPro Core members until the end of their current payment periods, after which they will be able to upgrade to the PMPro Plus level at a discount.


    Last chance to purchase Plus membership at $147

    For the next week, our Plus membership will be on sale for $147 and Unlimited membership will be on sale for $497. We rarely run discounts. Our prices will probably never be this low ever again.

    The sale has officially ended. Current membership pricing is available here.

    As a reminder, a Plus and Unlimited membership offers the following benefits:

    • 60+ premium Add Ons from our website with automatic updates through the WordPress dashboard.
    • Paid support forums, staffed by experienced WordPress/PMPro developers.
    • 100+ advanced code recipes for customization of your membership site.
    • Webinars, videos, and developer chats.
    • The knowledge that you are supporting our team to maintain and develop Paid Memberships Pro.
    • 100%, no questions asked, 30-day money-back guarantee.

    There’s Now a Better Way to Browse our 75+ Add Ons

    We’ve made it easier to browse our Add Ons with category filters and ‘ease of use’ ratings. Continue reading for a description of each category and details on how the ratings impact the ongoing development of our Add Ons library.


    New Categorization = Easier Filtering

    When we realized the number of our Free and Plus Add Ons (all included in our PMPro Plus-Level membership) had gotten so large, we knew something had to be done to improve the browsing experience. Users needed a way to sort through the growing number of extensions to find the right features to improve their membership site.

    Add On Categories Include:


    Plugins that help Administrators stay organized and better manage their PMPro-powered membership site.

    Plugins to add features to the checkout experience, such as country/region-specific needs, capturing fields, member communications, payment gateways, security, or tax compliance.

    Extend the capabilities of PMPro’s built-in member restrictions for your specific membership features, including unique content, advertisements, directories, media, events, online communities, and more.

    These Add Ons allow you to integrate with third-party email marketing platforms, make customizations to default member communications, and work with other plugins for newsletters targeted by membership level.

    These plugins add specialized features to your membership site, providing a more complete (and unique) members experience.

    These official Paid Memberships Pro plugins are available to download for any membership level. Some are available in the WordPress repository and can be installed through Plugins –> Add New.

    These plugins provide a bridge between your PMPro-powered membership site and popular third-party plugins or services, ranging from e-commerce, email marketing/CRM, social networks, affiliates, and more.

    These Add Ons specifically handle how you Get Paid for your membership levels by modifying the price, terms, payment methods, taxes, and more.

    All of these Add Ons are included in our PMPro Plus membership. Members can access download links on this site, or via the Memberships » Add Ons page of your WordPress site with a valid PMPro License Key.

    The Add Ons below are some of the most widely used extensions available for Paid Memberships Pro.

    Improve the member’s experience on your site through these User Add Ons, ranging from UI/UX, design, features, and more, all aimed at increasing value for your members.

    Ease of Use Rating

    Each Add On now has a rating for how easy (or difficult) we feel the plugin is to set up, plan for, and integrate into your membership site.

    Not only will these ratings allow you to make more informed choices for your skills, they help us identify which Add Ons need to be improved. We are making an internal commitment to improve the ease of use for more Add Ons wherever possible, which means less coding for you and your developers.


    Here’s a general description of what each rating means:

    4: The full features of this Add On are immediately available after activation.

    Example: Capture Name & Address for Free Levels or for Offsite Gateway


    3: After activating this Add On, you will need to configure a few settings and options via the WordPress Dashboard.

    Example: Email Templates Admin Editor


    2: Configuring this Add On requires multiple settings and/or may require basic WordPress and PHP coding skills to set up.

    Example: Developer’s Toolkit


    1: An experienced WordPress developer will be able to help you install and use this add on.

    Example: Member Network Sites


    Now go browse some Add Ons

    We hope you like this improvement to the Add Ons pages. We’d like to give a shout out to our team member, Travis, who helped with all of the design (including the custom icons for each Add On).



     

    PMPro Update 1.9.3

    Version 1.9.3 of Paid Memberships Pro is out. This is an important security update, and we recommend everyone upgrade as soon as possible.


    Security Improvements to Forms

    We have improved the sanitization of form inputs in several places, which protects against Cross-site scripting (XSS) attacks. Part of this hardening includes sanitizing some settings like the SSL Seal code, level confirmation text, and non-member/logged-out text shown on restricted posts.

    Some sites may be using JavaScript script tags in these settings or other values that would be stripped out by the sanitization. While it’s possible to use custom code to allow for new tags to be used, this will again open you up to certain XSS attacks. So we suggest that you use a custom plugin to insert JavaScript into your site. Feel free to reach out on our forums for help doing this.


    Please update Paid Memberships Pro from the plugins page of your WordPress dashboard. You can also get the latest version of PMPro here or version 1.9.3 specifically here.


    The full list of updates is below.

    • SECURITY: Fixed sanitization of inputs and added nonces in several places to protect against XSS attacks.
    • BUG FIX: Showing correct error message when trying to update a PMPro Plus add on with a Core license installed.
    • BUG FIX: Fixed issue where subscription and payment transaction IDs were not being saved correctly when copying an order in the dashboard. (Thanks, Pippin Williamson)
    • BUG FIX: Fixed fatal errors that occurred in certain PHP versions.
    • BUG FIX: Fixed issue where ProfileStartDate was being calculated incorrectly in the test, check, and Cybersource gateways.(Thanks, David Parker)
    • ENHANCEMENT: Added a pmpro_sanitize_with_safelist() function that is used to sanitize inputs that have a limited number of exact options.
    • ENHANCEMENT: Updated the pmpro_setOption() and pmpro_getParam() functions to take a new last parameter $sanitize_function, which defaults to ‘sanitize_text_field’.