The membership plugin market is mature and full of powerful options for you to choose from. The plugins available are dynamic and flexible. They cover a multitude of use cases and scenarios. However, in some cases, you’ll still need to customize the plugin or extend it. Some plugins offer APIs, which allow 3rd party developers to build upon the plugin. That’s why I have investigated the available API for each membership plugin.
You can click on the name of the product below to view its full review.
s2Member is the most extensible membership plugin for WordPress. The free s2Member framework was built with extensibility in mind. In fact, the Pro module is itself an extension of the s2Member framework.
Not only does s2Member have a well documented scripting API, which you can access within the plugin, but there's also the free s2Member Codex. And there is the SDK, which contains some sample code and is provided to paying members.
There are several websites out there that are dedicated to WishList Member development. The WishList Member plugin has its own plugins, which can be found by searching the web.
The API documentation includes descriptions of several filter and action hooks, which WordPress developers will find very familiar.
Even non-WordPress applications can interface with WishList Member through its external API, which is sufficiently documented in a PDF file.
But keep in mind that the code of WishList Member is obfuscated, so you won't be able to inspect the code and tweak it yourself.
It's a good thing that DAP has so much built-in flexibility because it isn't easily extensible by 3rd party WordPress plugins. Its code is unlike what a WordPress developer might be used to. It has its own "plugin framework", which is very basic and is only capable of triggering PHP classes upon activation and deactivation of user accounts (more details).
There's no mention of API support any where on Magic Members documentation.
The only available API documentation for PMPro is for a single function called pmpro_hasMembershipLevel(), which allows a developer to programmatically display or restrict content based on a member's level. It can be used within plugins and theme templates.
Membership ships with a wide array of plugins, which are also made by WPMU DEV. One can look at the source code of these plugins to learn how to build on Membership. However, without proper documentation, which is the case here, this can be impractical.
Other than that, Membership makes available what they call "Pings", which in their own words:
A very powerful way of communicating with other web services using Pings. Made especially for developers, these Pings let you send data to any URL using the POST or GET method.
MemberWing has no documented API upon which 3rd party developers can build. But it has simple web-like API. You send a request to mwx-api.php and MemberWing will respond with requested data. This is, however, very basic and is only good for managing affiliates within MemberWing.