What causes this?
WP-Members has two functions for generating forms – one for “short” forms such as the login, password reset, etc, and one for “long” forms like registration and user profile.
For “short” forms, for each form type (i.e. login, password reset, etc), there is a function that sets up the fields that will be used in the form. In most default cases, this will be two fields (such as username and email).
The plugin’s current password reset process only uses a single field in which the user can enter a username or a password. The legacy (old) process required both a username and a password.
Unless the legacy process is enabled, the
wpmem_resetpassword_form_defaults filter is used to remove the second field, leaving only a field for username or email address.
If you see no fields in the form, then you are running an instance of the
wpmem_resetpassword_form_defaults filter to remove a field, and it is removing the single remaining field (thus leaving you with none).
How to correct it
You need to locate the instance of
wpmem_resetpassword_form_defaults that is removing the field remaining. There are only two possibilities:
- You are using the plugin’s Advanced Options extension with the “Require only email for password reset” turned on.
- You are manually applying customization using
wpmem_resetpassword_form_defaultsto remove a field from the form.
If you have Advanced Options and the “Require only email for password reset” setting is enabled, then if you want to use the password reset link setting, you need to disable this setting.
If you do not have Advanced Options, or you do but you don’t have the “Require only email for password reset” setting enabled, then you manually applied a custom filter on
wpmem_inc_resetpassword_inputs. You need to remove that filter from wherever you’ve saved it. (Generally, your theme’s functions.php file is where custom filter functions are saved.)