For many years we have recommended using the Theme My Login plugin to deliver a frontend login, password recovery, and profile editing experience. Version 2.3+ of Paid Memberships Pro now includes these features natively and the following guide will help you remove Theme My Login from your membership site and make use of the core PMPro functionality.
Steps to Remove Theme My Login
The steps below are primarily for sites that were using TML’s login/password features offered in their free and open source version in the WordPress repository. I’ll also cover migration from their paid “Profiles” extension.
PMPro v2.3+ will continue to work alongside Theme My Login—you do not have to stop using their plugin or paid extensions. It is important to note that if you are using other modules outside of login and profiles, you may need to keep the extensions or find another replacement plugin to replicate the features.
- Deactivate Theme My Login.
- If you had updated TML from a version before 7.0, there are most likely individual pages in your WordPress site that represent each of the TML actions.
- You can delete the additional pages for Register, Lost Password, Password Reset, and Log Out.
- Edit the “Log In” page and replace the shortcode
[theme-my-login]with the new
[pmpro_login]shortcode documented here.
- Assign the “Log In Page” under Memberships > Settings > Page Settings in the WordPress admin. If you did not have a specific page for this TML endpoint that you just edited, you can generate the “Log In Page” by clicking the “generate page” link.
- Remove the Theme My Login widget, if used, from any widget area under Appearance > Widgets. You can replace this with the Log In Form widget now offered in v2.3. You can configure the widget settings and optionally include the custom menu or a “log out” link.
- Test your frontend login experience and when you are confident with the update, delete the Theme My Login plugin from the Plugins page in the WordPress dashboard.
Steps to Remove the TML Profiles
- Deactivate the Theme My Login “Profiles” plugin.
- If you have individual pages in your WordPress site that represent the “Your Profile” page, edit the “Your Profile” page and replace the shortcode
[theme-my-login]with the new
[pmpro_member_profile_edit]shortcode documented here.
- Assign the “Member Profile Edit Page” under Memberships > Settings > Page Settings in the WordPress admin. If you did not have a specific page for this TML endpoint that you just edited, you can generate the “Member Profile Edit Page” by clicking the “generate page” link.
- Test your frontend profile editing experience.
- When you are confident with the update, delete the “Profiles” extension for Theme My Login from the Plugins page in the WordPress dashboard.
Note that the frontend profile in Paid Memberships Pro does not include every user meta profile field that may be a part of your WordPress site. We offer two hooks to both show and save custom user meta fields, and have updated our Register Helper Add On to leverage these hooks for extended member profile fields.
We made this decision so that users would not see a gigantic list of (largely unused and unnecessary) profile fields. You can add any user meta field you would like to the profile using Register Helper. Alternately, you can reach out to your third party plugin developer and ask them how to leverage the PMPro hooks to show their fields in our form. Read the additional documentation on these hooks: pmpro_show_user_profile and pmpro_personal_options_update.
Restricting Dashboard Access
TML also included some “Security” features to restrict access to the WordPress dashboard by user role. PMPro now has this as a built-in setting under Memberships > Settings > Advanced > Restrict Dashboard Access. You can review these settings and configure the rules to match your needs.
The TML endpoint for /lostpassword will now result in a 404 error if you had linked to this page in any areas of your site. You can add a single 301 redirect for this page using the custom .htaccess rule below. Just update /login/ to whatever the URL slug is for the page assigned as the “Log In Page” in your membership site:
redirect 301 /lostpassword/ /login/?action=reset_pass
If you were using the TML Redirection extension, you may wish to replicate some of that logic using core PMPro filter hooks. The default login redirection for all members is now the Membership Account page. We will be publishing more guides on login redirects using the new filters in PMPro v2.3+. Please check out the developer guide on the core redirection logic in Paid Memberships Pro.