11ответ(ов) в теме
Roman Onipko
не в сети 7 лет
На сайте с 10.08.2015
Участник
Тем 19
Сообщения 96
1
01:53

Здравствуйте.
Интересует следующее: как убрать ссылку на страницу генерации (напоминания) пароля в блоке с сообщением об ошибке, когда пользователь вводит неверный логин или пароль в всплывающей форме авторизации?
Из формы авторизации, в той части где переключение на "Авторизация", "Регистрация" я эту функцию убрал, а вот в области вывода ошибки так и не нашел где что нужно подправить.
Полагаю, что здесь: authorize.php но не могу найти где именно.
Камнями не бросать - в пхп не очень-то и силён. Простите.
RCL 13.8.12
WP 4.2
Заранее благодарен.

0
Вова (Otshelnik-Fm)
не в сети 3 дня
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
2
02:15

Здравствуйте.

Эту ошибку с ссылкой возвращает вордпресс.

Файл /wp-recall/functions/register.php
Глобальная переменная вордпресса $wp_errors внутри функции rcl_notice_form

echo '<span class="error">' . apply_filters( 'login_messages', $messages ) . "</span>
";

В кодексе вордпресса этот фильтр описан

Вы не можете просматривать опубликованные ссылки
0
Roman Onipko
не в сети 7 лет
На сайте с 10.08.2015
Участник
Тем 19
Сообщения 96
3
02:21

Благодарю за оперативный ответ. Кажется начинаю понимать... В принципе сообщение об ошибке как таковое необходимо, но активную ссылку на страницу напоминания пароля (генерации нового) хотелось бы из этого блока вывода ошибки убрать... И всё равно не пойму как это сделать 🙁

Возможно убрать только целый блок с сообщением об ошибке, а отдельно строку со ссылкой на страницу генерации/восстановления пароля, никак... 🙁 Подскажите всё же, куда мне смотреть? 😉

0
Вова (Otshelnik-Fm)
не в сети 3 дня
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
4
02:55

В этой функции еще проходит через фильтр login_errors

Вы не можете просматривать опубликованные ссылки

в примере по ссылке, работает в форме вордпресса, а в форме реколл нет.

Но голова уже не соображает. Завтра займусь изысканиями, или Андрей подскажет.

0
Roman Onipko
не в сети 7 лет
На сайте с 10.08.2015
Участник
Тем 19
Сообщения 96
5
10:54

Нашел вот такое решение:

function remove_standart_login_errors(){
	return '<strong>ОШИБКА</strong>: логин или пароль некорректен.';
}
 
add_filter( 'login_errors', 'remove_standart_login_errors' );

Автор решения предлагает вставить данный код в файл functions.php (не совсем только понял в functions.php темы или ВП). Ставил - либо ничего не меняется в выводе ошибки либо ошибка Call to undefined function add_filter относящаяся к последней строке кода.

p.s. код ставил и в начале и в конце functions.php как темы так и ВП

0
Вова (Otshelnik-Fm)
не в сети 3 дня
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
6
11:09

В моем 4-м сообщении аналогичная функция по ссылке. И как и эта в форме вордпресса (wp-login.php) - она срабатывает, а в форме реколл нет.

Сейчас будем внимательно смотреть - возможно ли победить это сообщение в реколл

1
Roman Onipko
не в сети 7 лет
На сайте с 10.08.2015
Участник
Тем 19
Сообщения 96
7
11:25

Да, действительно на стандартной странице входа - работает. А во всплывающей форме рекола - нет

UPD Пока помогла следующая функция, которую добавил в файл functions.php темы:

add_filter( 'authenticate', 'my_auth', 20, 3 );

function my_auth($user, $username, $password){
	if( isset( $user->errors['invalid_username'] ) || isset( $user->errors['incorrect_password'] ) ){
		return new WP_Error('broke', '<b>ОШИБКА</b>: неверный логин или пароль');
	}
	return $user;
}

"К фильтру authenticate мы прицепили функцию my_auth(). Также передадим 2 дополнительных параметра. Третий параметр – 20 – отвечает за приоритет выполнения нашей функции (по умолчанию 10). Чем выше приоритет, тем позже функция выполнится. Наша функция должна выполнится позже добавленных к authenticate фильтров, поэтому мы установили приоритет больше 10. Четвертый параметр – 3 – отвечает за количество аргументов, которое будет принимать наша пользовательская функция. Функция my_auth() должна принять именно 3 аргумента, описания которых вы можете найти в документации к хуку authenticate.

Теперь, даже если мы введем верный логин, но неверный пароль, то логин не будет сохраняться. Ну и при некорректной авторизации мы всегда будем видеть собственный текст ошибки."

...Возможно всё же есть метод проще, без использования функции my_auth() ?

1
Вова (Otshelnik-Fm)
не в сети 3 дня
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
8
11:47

Проще 5 строчек кода?
Решение работает. Проблем с ним не увидел.

0
Roman Onipko
не в сети 7 лет
На сайте с 10.08.2015
Участник
Тем 19
Сообщения 96
9
14:05

Пока тоже тестирую, конфликтов не обнаружил. Но обратил внимание на то, что если после попытки авторизоваться под неверным логином и паролем войти под действительной учётной записью, то на странице остается крестик от всплывающей формы и страница затемнена (как в случае, когда активна всплывающая форма авторизации). Наблюдается это независимо от того, добавлен код для который я указал выше или нет.

:

Вы не можете просматривать опубликованные ссылки
0
Вова (Otshelnik-Fm)
не в сети 3 дня
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
10
14:15

Эта проблема известна. Будет исправлена в следующих версиях. Да - она не связана с этим кодом

0
Roman Onipko
не в сети 7 лет
На сайте с 10.08.2015
Участник
Тем 19
Сообщения 96
11
14:17

В таком случае, можно считать открытую тему исчерпанной. Премного благодарен вам за помощь.

0
Тема закрыта. Публикация новых сообщений запрещена.