Dev Chat Summary from February 1, 2018

Slack_IconBelow are my summarized notes from our dev chat today.

We discussed GDPR, the Multiple Memberships per User Add On Compatibility Road Map, our update Developer Partner Platform, and a feature suggestion for our Stripe integration.

Theme music for this chat was the Tron: Legacy Reconfigured album by Daft Punk.


GDPR

We discussed the various articles of the European Union General Data Protection Regulation and how they can be addressed by Paid Memberships Pro in our software and as a company. It was a good discussion. I will be writing up a more detailed post including what I feel needs to be addressed for our software to comply with the GDPR. Some of the action items for this could be done collaboratively between ourselves and other ecommerce plugin authors. So I will pursue that while making sure PMPro is ready by the deadline in May.


Multiple Memberships Per User Updates and Add On Compatability Roadmap

The MMPU Add On has been working well in it’s beta release on several sites for the past 6 months or so. In the next few weeks, we will launch the add on officially with the known caveat that many of our add ons will not work as expected with the MMPU Add On active.

We will be tagging all our add ons on this site to show which are compatible with MMPU, which will never be compatible with MMPU (because it doesn’t make sense or would be too technically difficult), and which we will be working on.

Our hope it that over the next year or so, with the help of the developer community, we can update the add ons that need it. To that end, we will be sharing case studies on our blog as we do this work so we can compare notes and share methods.


Becoming a Partner, New Agreement Contract and Plans

Until now, we’ve had adhoc agreements with the development partners showcased on our Developers page. We appreciate the role these developers play in the PMPro community. Our partners are responsible for building the best examples of sites running Paid Memberships Pro, working with us to address new markets and use cases, and so much more. Our goal is to formalize the relationship we have with the partners and gather resources to work on shared marketing projects.

Freelancers and agencies interested in joining our developer network can apply here.


Idea for Stripe Integration

We discussed the possibility of at checkout, checking for an existing customer record using the same email address before creating a new customer in Stripe. Some of this was coded in a development branch while working to fix synchronization issues between PMPro and Stripe. The synchronization issues were addressed by other fixes, but it still might be useful to reuse Stripe customer records instead of creating a new one when a user checks out in PMPro.

PMPro does keep track of a user’s customer id and reuses it if that customer checks out again. However, if you integrate several sites with Stripe, each site will have it’s own customer record for that same person.

Many of us agreed that it’s best to stick to the current system of creating a new unique customer id the first time a user checks out in PMPro. If we use a customer record managed by another app, we can’t be sure what that other app might do with the customer or their subscriptions. Also, the Stripe API does not allow you to do a straightforward search for customer id by email address. The implementation we had used a kind of hack where we would download all customers and their email addresses for cross reference. It seems that Stripe doesn’t want to encourage this kind of behavior.

A script to resync customer ids by email address might be useful in a pinch for cases where PMPro went out of sync with Stripe. (An example might be if someone is importing users from another system or otherwise had to delete and recreate WordPress users.)

We also briefly discussed the need to explore the Stripe Connect platform, which has some benefits over the direct API method we use of integrating with Stripe. Namely, users who have a credit card stored in Stripe would be able to checkout very quickly. There is also the fact that Stripe might require or strong encourage use of Stripe Connect in their temrs of service.


Scheduling for Future Dev Chats

Instead of a regularly scheduled dev chats, we are now keeping a list of topics for discussion. When the list hits 3 items, we will schedule a dev chat to go over those topics. If there is something you would like to discuss with the PMPro developer community, let us know through our contact form and we will add it to the list.

Thanks again to everyone who attended today.

Dev Chat February 1, 2018 at 1pm EST: Get Invited to Our Slack Channel

We will be holding a Dev Chat on Thursday, February 1, 2018 at 1pm EST in our Slack Channel.


Dev Chat Topics Include:

  • EU GDPR (European Union General Data Protection Regulation)
  • Multiple Memberships Per User Updates and Add On Compatability Roadmap
  • Becoming a Partner, New Agreement Contract and Plans
  • Stripe Customer Records (Decision on using an existing customer record if one exists for the user’s email)

All are welcome to join the discussion. Please reply to this blog post and we will add you to the Slack channel before the chat starts.

Dev Chat February 2, 2017 1pm EST Get Invited to Our Slack Channel

We will be holding a Dev Chat on February 2, 2017 at 1pm EST in our Slack Channel.


Dev chat topics include:

  • Dates, Timestamps, and UTC issues.
  • PHP7 Support and PHP5.x Deprecation
  • Update to PMPro core to support multiple payment gateway options at checkout.
  • PMProEmail Class Filters.

All are welcome to join the discussion. Please reply to this blog post and we will add you to the Slack channel before the chat starts.

Join Our Developer Chat on Thursday July 28, 2016 @ 2pm EDT

There’s a Dev Chat tomorrow and all are welcome to participate – whether you’d like to just listen in or have something to contribute.

Chats are currently held in our Slack channel. If you need to be added to our Slack account, mention it in the comments here. A PMPro Plus membership is highly encouraged.


Thursday, July 28, 2016

2pm EDT: Developer Chat in Slack


We will review the status of ongoing core and add on development and discuss topics including:

  • Taxes: Reporting and VAT Tax requirements
  • Reporting: What reports need improvement and what new reports would be useful?
  • Improvements and New Features

Join Our Developer Chat on Thursday July 14, 2016 @ 2pm EDT

There’s a Dev Chat tomorrow and we promise to be there. Chats are currently held in our Slack channel. If you need to be added to our Slack account, mention it in the comments here. A PMPro Plus membership is highly encouraged.


Thursday, July 14, 2016

2pm EDT: Developer Chat in Slack


Topics will include:

  • Multiple Memberships per User Add on (currently in development)
  • Upcoming release of the Memberlite Theme 3.0 and upgrade plans for existing sites using the Memberlite Theme.
  • The new Memberlite Shortcodes plugin.

DEV Chat Summary From June 16, 2016

Slack_IconBelow are my summarized notes from our Dev Chat in June.

We discussed upcoming TLS 1.2 requirements as well as the Multiple Memberships Per User (MMPU) Add On. Theme music for this chat was Radiohead’s In Rainbows.


TLS 1.2 requirements

This DEV Chat resulted in an updated post on TLS 1.2 requirements as well as the release of the TLS 1.2 Compatibility Test plugin to help diagnose if TLS 1.2 is enabled on your site and what steps to take, including an option to force TLS 1.2 in cURL.

Some background: All payment gateways, including PayPal, Stripe, Braintree, and Authorize.net (and really any service that uses an API) are updating their API servers to only accept requests made using the new TLS 1.2 protocol for encryption.

According to the WordPress.org installation statistics as of March 30, 2016, over 50% of sites are running a version of PHP (5.4 or less) which are likely to require updates when payment gateways mandate the new requirement. Yikes.

Read the post on TLS 1.2 requirements for more information on this topic.


Multiple Memberships Per User Add On

There have been many behind the scenes conversations about how this functionality will work. We are proceeding with developing the MMPU features as a plugin and will most likely release it in the WordPress.org plugin repository. It will not be built in to the core Paid Memberships Pro plugin.

We discussed the concept of “level groups” so that you can define (as the site owner) which levels are allowed to be held simultaneously and which should force cancellation of the others (i.e. two levels that unlock the same membership but have different payment terms should not be held at the same time).

We also discussed when we will group subscription payments and when we will not. We want the solution to fit across all gateways, each with unique rules for how subscriptions can be created, modified, updated, etc. One solution is to have 1 level per 1 order per 1 sub. However, it’s a reasonable case that someone would bundle something on a per-month basis and a per-quarter or per-year basis at the same time. The WooCommerce Subscriptions plugin for example bundles all subscriptions with the same payment period into one subscription. With WooCommerce Subscriptions monthly subs get bundled and if you also purchased an annual sub, that would be a separate subscription. This is interesting, but in the short term at least, keeping things to 1 level per 1 order per 1 sub makes things simpler to code, understand, and maintain.

So with the MMPU PMPro addon (as designed), if your gateway supports setting up multiple subscriptions at one time (e.g. Stripe, Braintree, and others that store credit card information for reuse), we can allow customers to checkout for multiple levels at one time. Each level would result in a separate order in PMPro and separate subscription at the gateway.

More conversations on MMPU to follow…

Upcoming Developer Chats June and July 2016

We’re going to hold biweekly developer chats from now on out. Thursdays at 2pm EDT has worked in the past, so we’ll stick to that for now, but might try to rotate times in the future.

Chats are currently held in our Slack channel. If you need to be added to our Slack account, mention it in the comments here. A PMPro Plus membership is highly encouraged.


The first chat is being held tomorrow.

Thursday, June 16, 2016

2pm EDT: Developer Chat in Slack

Topics will include TLS 1.2 updates, a Multiple Memberships per User Addon in development, managing next payment dates and other subscription data between PMPro and gateways, and anything else y’all want to talk about.

Thursday, June 30, 2016

2pm EDT: Developer Chat in Slack

Topics TBD

Thursday, July 14, 2016

2pm EDT: Developer Chat in Slack

Topics TBD

DEV Chat Summary

Slack_IconBelow are my summarized notes from our two Dev Chats in February.

Notes from the February 18th, 2016 Dev Chat

We discussed releasing official “beta” or “release candidate” versions of the plugin before releasing updates to the WordPress.org repository.

The WordPress Beta Tester plugin could be used as a model for creating a similar plugin for PMPro that would install beta version ZIPs from an alternative source if the beta testing plugin was activated and configured that way.

Jason also discussed managing git branches better so bug fixes can be more easily applied to sites without including other updates/enhancements that could cause issues. Guidelines for this should be written up and shared in the contribute.md on GitHub.

There was discussion of the new “Update Scripts” system that was used recently to fix old Stripe orders after upgrading PMPro.

Jason mentioned that PMPro will be surveying their mailing list soon and asked for questions others were interested in getting answers to. @squarelines mentioned that he’d like to have a better idea of which users support their site themselves vs use a developer or service. We were already planning questions related to this.

@squarelines mentioned concerns about the “support levels and responsiveness on the forums right now”. There have been a couple of family issues that kept our support staff limited for a few weeks, exacerbating things. However, the level of support was not acceptable to Jason, and he’s still working on hiring more support staff and improving turn around times and quality of support.

Notes from the February 25th, 2016 Dev Chat on the WP REST API and PMPro

Jason wanted to let folks know that we’re working on adding WP REST API support to PMPro.

More information about the WP REST API can be found on the official site here.

It was noted that WP 4.4 introduced support for adding your own API end points, but the WP REST API plugin is still needed to gain access to the end points there for managing posts and users.

The WP core team is figuring out how and when they will implement the API over time. Some believe one should be able to recreate the entire admin dashboard before officially launching the API end points. Other believe that end points can be added incrementally. Chatters in attendance seemed to favor an incremental approach, but weren’t read up on the issue.

Jason said the plan for PMPro and the WP REST API is to recreate the two methods currently available via the XML RPC API and that should probably be ready for the next release.

Development of API stuff will be done in the pmpro-rest-api plugin here and moved into PMPro core piece by piece, similar to how the core WP REST API team is doing things.

Jason mentioned that the API work is highlighting areas where we can improve our internal “APIs” and classes. For example, having a Membership Level class would make it easier to implement API endpoints for adding, editing, and deleting membership levels.

Dev Chat Summary From December 15, 2015

Rather than post the raw transcript, I’m going to start posting a summary from our dev chats. We hold these chats roughly once a month at paidmembershipspro.slack.com. We’re working on an easier way to join the Slack group, but for now you can get Jason to add you by posting a comment on a blog post like this one.

Here is the summary from our dev chat on December 15, 2015.

  • Theme music was the album Vitals by Mutemath.
  • The audio from the bbPress webinar came out poorly so Jason is going to rerecord, but instead of doing the customizations as gists, he’s been working to add all of the functionality from the gists as settings in the core plugin. The updated version of PMPro bbPress and the video walkthrough should be up this week.
  • Last week, Jason published a blog post with our plans to improve our synchronization with PayPal.
  • Jason reiterated his intent to “focus on making what we already have better”, including those PayPal updates, improvements to how JS code is used so it can be minimized, optimizations around how options are handled, and other performance improvements.
  • Harsha is working on the PMPro VAT add on and hope to have an update soon.
  • Jason mentioned that the wp_pmpro_membership_levelmeta table and functions are in the core PMPro plugin now. They aren’t being used by anything yet, but we should see add ons start using these functions instead of storing things in the wp_options table.
  • Jason mentioned that the GitHub repository for the Memberlite theme is now public. Jason is working on a plan to offer the theme for free somehow. For the time being, you’ll still need a PMPro Plus membership to download it on the Paid Memberships Pro site.
  • The group discussed issues with the Import Users From CSV plugin (specifically problems importing CSV files encoded for Mac). Jason will reach out to the developers about adopting the plugin to fix some of the issues since it is so crucial to imports for PMPro.
  • Jason mentioned two takeaways from his WordCamp US trip: (1) learn about unit testing and (2) work with some hosts for better membership caching.
  • Jason mentioned moving Zapier integration up in priority since it would offer a way to export to Quickbooks and also services like ActiveCampaign, which is becoming popular.
  • Slack user @neila from New Jersey joined the discussion and introduced himself.
  • Jason gave a shout out to @pete, who has been volunteering support on the wordpress.org forums for PMPro. Thanks, Pete!
  • The webinar today is on adding new payment gateways.
  • Neil asked “If one should create an addon can it be sold as an extension to pmpro or is that against pmpro policy? Or will you guys create a third party marketplace where devs can subscribe for a fee perhaps to sell themes, extensions etc.” Jason replied, “You can sell the extension on your own site. We’d like to know about it, but there are no restrictions on you selling it outside of what the GPL license implies. A third party marketplace of some sort might be there in the future, but we haven’t thought about it much. Although there are a few people selling addons now or otherwise maintaining addons, so a way to make it more official would be nice. Hard with our current core/plus model though.”
  • An important core PMPro update was released yesterday fixing a bug for Payflow Pro users that was introduced in v1.8.6.8.
  • An important update to the PMPro Register Helper add on was released yesterday with a few bug fixes and enhancements, including a fix for a bug introduced in WP v4.4 that came up if you had a field named “title”.

Join our User Webinar on Member Forums using bbPress on Thursday, December 10 at 1pm EST

We decided not to publish this webinar recording. Following the webinar we moved all the customizations into the primary bbPress Add On for Paid Memberships Pro. Now you can accomplish all of the unique features showcased in the webinar via simple settings page features.

View the Add On


Today at 1pm EST we will host a webinar for PMPro Plus members on using bbPress with your membership site. We’ll cover the basics of setting up bbPress and setting membership requirements, as well as a few advanced techniques for enhancing the forum experience for members.