Хотел убрать поле ввода пароля в форме регистрации (встроенная форма Wordpress) на сайте. Использовал инструкцию:
Соответственно, в functions.php добавил:
// Отключим поле пароля в вордпресс форме add_action('register_form','snipp1765_remove_filters_regform',0); function snipp1765_remove_filters_regform(){ remove_all_filters('regform_fields_rcl'); }
При этом возникала ошибка проверки поля пароля на обязательное наличие символов, которая, как я потом заметил, была прописана в файле wp-content/plugins/wp-recall/functions/register.php в 184-ой строке:
if ( ! $pass || ! $email || ! $login || ! $required ) {
Данную строку изменил следующим образом:
if ( ! $email || ! $login || ! $required ) {
Вместо генерации пароля использую ссылку в сообщении при регистрации на восстановление пароля, где пользователь может указать новый пароль.
Всё это работает, но при первом же обновлении WP-Recall, как я могу судить, данное изменение в файле register.php придется производить снова. Как можно внести подобное изменение, чтобы обновления на него не влияли в будущем (например, переопределить в functions.php или др.)?
Это же все делается в фильтре
add_filter( 'registration_errors', 'rcl_get_register_user', 90 );
Значит вы можете отменить регистрацию этого фильтра в помощью
remove_filter( 'registration_errors', 'rcl_get_register_user', 90 );
И сделать клон функции rcl_get_register_user и зарегистрировать такой же фильтр но на вашу функцию. Таким образом при обновлении изменения не слетят.
Ну или как вариант перед тем как сработает этот фильтр в переменную $_POST['user_pass'] пишите рандомный пароль