With most of the work for WP-Members 2.8 project behind us, it is time to start thinking about 2.9. This update will focus on rebuilding the forms and the registration and login functions. There may also be some changes to the wpmem_securify and shortcode pages to extend their functionality.
The challenge with form redesign is that there are many people making use of the wpmem_register_form and wpmem_login_form filters that rely on the HTML being constructed in a certain way. Essentially, depending on what a filter function does, a change in tabs and line breaks in the HTML can break a filter.
I want the update process to be low impact so that these filters can still be used, but some will need to be modified to accommodate the changes. I want to emphasize that I think this will only break filters that are looking for certain tabs, indents, and line breaks. That is something that can be currently avoided with the technique discussed here. That method of removing these elements from the string will actually be automatically handled in the new registration form function.
I have a solid start on the first part of this update. This will include major rebuilds of the following functions:
- wpmem_inc_registration
- wpmem_login_form
- wpmem_inc_login, wpmem_inc_changepassword, & wpmem_inc_resetpassword
- wpmem_inc_loginfailed & wpmem_inc_regmessage
The nice thing about this is that these particular functions are pluggable in the current version of the plugin. This means that they can be replaced by loading custom versions of the function in a file /plugins/wp-members-pluggable.php.
The 2.9 alpha version of these four functions is available for you in a pluggable file you can load in your site for testing. That way you can test out the new functions to see how your site is affected. You can back out of the test by simply deleting the pluggable file. No database or style changes. And no changing of core plugin files.
The new versions of these functions will provide MUCH MORE flexibility when it comes to customizing the forms. I have listened to requests of what people need in terms of form flexibility and I think this new version will answer that need while keeping the simplicity that is needed for those that want “plug-and-play” functionality.
I’ve been playing around with the new filter hooks that are in the new register form and it is really awesome! While the generic form will stay pretty much the same as before (with the exception of line breaks and indents in the HTML markup), you will be able to customize nearly every element of the form markup without needing to write complex search and replace filters as before. The level of control is much more granular.
Try it out
You can download the current alpha release of the 2.9 version if you want to test it out. It is not yet recommended for production sites, but depending on how you are using it and how it integrates with your current settings, it may be fully stable for you.
If you would like to try out the new functions mentioned above, you can download just the pluggable file. Unzip the package and transfer the file wp-members-pluggable.php to your /wp-content/plugins/ folder (not the wp-members directory).
Download the Alpha Release or the Pluggable Functions here.
For rocketgeek.com premium members, there is additional documentation available on wpmem_inc_registration and wpmem_inc_login/wpmem_inc_changepassword/wpmem_inc_resetpassword (additional documentation will be added on other changed updates soon). I have documented the change detail and also provided some examples of using the new filter hooks. I may make some or all of this openly available at a later date, but at this time, it is limited to members. That is one of the many perks of membership.
Important:
If you try this out, here are some key things to remember:
- This is early development, not even yet beta. If you test or use this on a production site, you do so at your own risk. I have made this easy to back out of as it is self contained in a single file that you can just delete. But you should still test on a test system.
- As early development, the new filter hooks are subject to change. I am fairly happy with most of them so far, but all are subject to change prior to official release. I have noted in the docbloc for each function which filters are more likely to be changed.
- There may be other changes forthcoming. This may involve addition, removal, or changing of what is provided in this file.