It seems so long ago that I publicly announced WP-Members 3.3.0; but today, we have reached a point where we have a solid beta release candidate. It’s been a long road and a long time coming, but it is here.
This is the single biggest update to the WP-Members plugin since the 3.0.0 release – possibly bigger.
There are so many big changes that it will be impossible to detail everything, but I can say this – the plugin is better than ever. It is more solid, more robust, and more secure. It was already was loaded with features and capabilities, and 3.3.0 expands on that.
For new users, this release is going to be quite simple – just get it installed and get going! But the longer you’ve been a user of WP-Members AND the more customization you have (i.e. filters, actions, code snippets, etc), the more careful you will need to be.
As most long time users know, I generally prefer to keep backwards compatibility as much as possible, but there are some things that eventually have to change to make it better for everyone. And when there are major changes to do, I prefer to get as much of it all done together so we can avoid doing it again for a very long time. Such is the case with 3.3.0.
Get the beta for testing
If you’d like to get a head start on testing, go ahead and get the beta.
Currently, the bleeding edge development version will be the beta release candidates, which will be updated as bug fixes are applied. You can get it on Github.
Official beta release candidates will be released via wp.org. You can get it by selecting “development version” from the dropdown at the bottom of the “advanced” page. Once the betas begin to be released on wp.org, the development version will indicate which release candidate it is in the plugin header.
Note: while the beta release(s) is(are) considered stable, they are beta and should not yet be considered production ready. It is currently not recommended to blindly replace the production version on a site with the beta version. At this early stage, the beta is only recommended for testing on a legitimate staging system not linked to your live data.
From the changelog:
* REMOVED [[wp-members]] shortcode tag. THIS TAG IS OBSOLETE WILL NO LONGER FUNCTION. See: https://rocketgeek.com/shortcodes/list-of-replacement-shortcodes/
* REMOVED tinymce button for shortcodes as no longer necessary with gutenberg.
* Deprecated wpmem_inc_login_args filter, use wpmem_login_form_defaults instead.
* Deprecated wpmem_inc_{$form}_inputs and wpmem_inc_{$form}_args filters, use wpmem_{$form}_form_defaults instead. (changepassword|resetpassword|forgotusername)
* Deprecated wpmem_sb_login_args filter, use wpmem_login_widget_args instead.
* Deprecated wpmem_msg_args and wpmem_msg_dialog_arr filters, use wpmem_msg_defaults instead.
* The following functions are deprecated, replacements should no longer be considered “pluggable”:
– wpmem_inc_registration() Use wpmem_register_form() instead ($heading argument obsolete).
– wpmem_inc_changepassword()
– wpmem_inc_resetpassword()
– wpmem_inc_forgotusername()
– wpmem_inc_recaptcha()
– wpmem_build_rs_captcha()
* The following functions and filters are obsolete and have been removed:
– wpmem_shortcode() (deprecated 3.1.2)
– wpmem_do_sc_pages() (deprecated 3.1.8)
– wpmem_admin_fields() (deprecated 3.1.9)
– wpmem_admin_update() (deprecated 3.1.9)
– wpmem_user_profile() (deprecated 3.1.9)
– wpmem_profile_update() (deprecated 3.1.9)
– wpmem_dashboard_enqueue_scripts() (deprecated 3.2.0 Use $wpmem->admin->dashboard_enqueue_script() instead.)
– wpmem_sc_forms() (deprecated 3.2.0 Use $wpmem->shortcodes->forms() instead.)
– wpmem_sc_logged_in() (deprecated 3.2.0 Use $wpmem->shortcodes->logged_in() instead.)
– wpmem_sc_logged_out() (deprecated 3.2.0 Use $wpmem->shortcodes->logged_out() instead.)
– wpmem_sc_user_profile (deprecated 3.2.0 Use $wpmem->shortcodes->profile() instead.)
– wpmem_sc_user_count() (3.2.0 Use $wpmem->shortcodes->user_count() instead.)
– wpmem_sc_loginout 3.2.0() (deprecated Use $wpmem->shortcodes->loginout() instead.)
– wpmem_sc_fields() (deprecated 3.2.0 Use $wpmem->shortcodes->fields() instead.)
– wpmem_sc_logout() (deprecated 3.2.0 Use $wpmem->shortcodes->logout() instead.)
– wpmem_sc_tos() (deprecated 3.2.0 Use $wpmem->shortcodes->tos() instead.)
– wpmem_sc_avatar() (deprecated 3.2.0 Use $wpmem->shortcodes->avatar() instead.)
– wpmem_sc_link() (deprecated 3.2.0 Use $wpmem->shortcodes->login_link() instead.)
– wpmem_register_fields_arr (obsolete 3.1.7, use wpmem_fields instead.)
IMPORTANT UPDATES/CHANGES
* Major filesystem changes. The directory structure has changed and several files
moved/renamed/made obsolete. If you have ANY WP-Members customization that directly
includes a file, that step is probably obsolete. The plugin has loaded most of the
include files automatically since at least version 3.2, so this step has not been
necessary for quite some time. However, this set of changes is more significant.
(If you do not have code snippets using file includes from WP-Members, this most
likely will not affect you.)
* Updated registration function to hook to user_register, IMPORTANT: this
changes the order in which the user meta fields are saved, and also changes
when the email is sent. Email is now hooked to user_register, but can be
unloaded if necessary.
* Major overhaul of registration and login form, validation, and processing
functions. Moved things into appropriate object classes (user, forms) and
deprecated legacy functions and files (register.php, forms.php).
* Updated membership product meta and date format, IMPORTANT: this changes the
way the user product access information is stored (going from an array of
all memberships to individual meta for each) as well as the format (dates
are now unix timestamp). There is an update script that will run during
upgrade to handle this. For now, the legacy format is also maintained (so
consider this if customzizing any processing) so that rollback is possible.
* Updated wpmem_user_has_meta() to include a check by array when the field is
multiple checkbox or multiple select.
* Updated [wpmem_logged_in] shortcode to include an msg attribute to display a
message if the user does not have access to a specified product (product must
be passed as attribute).
* Updated [wpmem_logged_in] shortcode to include a compare attribute. Possible
values for “compare” are “=” and “!=” to restrict if the has a meta value or
the meta value is “not equal to” respectively. Passing only meta_key/meta_value
will still assume an “=” comparison.
* Updated register page shortcode [wpmem_form register] logged in state – if a
profile page is set, second link links to profile rather than “begin using
the site”.
* Updated Users > All Users screen filters, removed “Not Activated” replaced
with “Pending Activation”. Filter now only shows users who have not been
activated, no longer includes users who were deactivated.
* Major menus change – if you use the $wpmem->menus object directly, this is
now $wpmem->menus_clone (setting $wpmem->clone_menus remains the same).
wpmem_menu_settings and wpmem_menus are now wpmem_clone_menu_settings and
wpmem_clone_menus. New menu handing has been introduced in the $wpmem->menus
object and that will take the place of the cloned menu options.
* Added reCAPTCHA v3 support.
* Added default membership product(s) at registration.
* Added membership product(s) for user export.
* Added support for selecting fields to display on the registration form or the profile form.
* Added wpmem_activate_user() and wpmem_deactivate_user() to user API.
* Added wpmem_user_sets_password() API function.
* Added wpmem_get_block_setting() API function.
* Added wpmem_set_user_status() API function.
* Added wpmem_export_users() as API function (function already existed, but the original has been moved to an object class, and the function has been included in the API).
* Added wpmem_sanitize_field() API function. This is a general utility that allows for different sanitization by type.
* Added wpmem_maybe_unserialize() API function. If result is serialized, it unserializes to an array, if an array, it sanitizes using wpmem_sanitize_array().
* Added wpmem_get_user_role() API function.
* Added wpmem_get_user_ip() API function.
* Added wpmem_get_user_meta() API function.
* Added wpmem_user_has_meta filter.
* Added wpmem_login_form_settings filter.
* Added wpmem_block_settings filter.
* Added wpmem_msg_settings filter.
* Added wpmem_sc_product_access_denied filter.
* Added wpmem_views_users filter.
* Added wpmem_dialogs filter.
* Added wpmem_user_action.
* Added admin user class for handling Users > All users screen and user activation.
* Added user export class.
* Added “msg” attribute support for [wpmem_logged_in] when using the “membership” or “product” attributes.
* Replaced WPMEM_VERSION constant with $wpmem->version.
* Replaced WPMEM_PATH constant with $wpmem->path. WPMEM_PATH will still function for backward compatibility.
* Replaced WPMEM_URL constant with $wpmem->url.
* New folder structure being implemented
– All admin js & css now load from /assets/ not /admin/ !!!
Other Improvements
* Changed load for WP-Members Admin API so that emails, dialogs, and tabs only load on the WP-Members settings screens (where they are used).
* Changed email “from” to only load if the WP-Members Email object is doing a send (user or admin). This saves an option load when not needed.
* Fixed an issue where a PHP notice was thrown if one of the User Pages (login/register/profile) was deleted but the setting not updated. Fixes the PHP notice issue, but also adds an admin notice to indicate the page was deleted, but the setting not updated. (This also adds a new admin notice function/process that can be expanded on later.)
Previous Posts on 3.3.0
For previous information on the 3.3.0 release, please see the following: