Супербыстрый хостинг на SSD от 115р в месяц   •   Реклама
1 029 просм
21 комм
Поделиться:

Разделение авторизации и регистрации по разным страницам в WooCommerce

По умолчанию (если мне не изменяет память), при создании интернет магазина в WordPress с помощью плагина WooCommerce формы авторизации и регистрации находятся на одной странице (/my-account/).

Все бы ничего, но мне это показалось не совсем хорошим вариантом на одном из проектов, который я вел. И задача встала – разделить эти формы по разным страницам. Делается все это очень просто. И как именно, я сейчас расскажу.

1. Подключитесь к вашему сайту по FTP.

2. Из папки плагина по адресу /wp-content/plugins/woocommerce/templates/myaccount/ загрузите к себе на компьютер файл form-login.php.

3. Далее идете в папку вашей темы (это адрес /wp-content/themes/название темы/) и здесь создаете подпапку woocommerce, в которой создаете еще одну подпапку – myaccount.

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

Если эти папки уже есть в вашей теме – ничего страшного, просто переходите к следующему пункту.

4. После того, как в теме необходимые папки созданы, перейдите к редактированию ранее скачанного файла. В него вам необходимо внедрить такую конструкцию:

<?php

	if(isset($_GET["action"]) && $_GET["action"] == "register") {

?>

	Форма регистрации

<?php

	} else {

?>

	Форма авторизации

<?php

	}

?>

Код для формы входа и регистрации вы берете из этого же файла и просто вставляете в соответствующие места.

Ссылка на страницу входа останется прежней:

/my-account/

А вот вид ссылки на регистрацию станет:

/my-account/?action=register

По завершении всех правок файл с изменениями загружаете на сервер в созданную конечную папку (myaccount). После чего формы на вашем сайте разделятся по разным страницам.

21
комментарий
Навигация:
1 2
18.03 в 12:54
Спасибо, заработало без проблем! Но вопрос: как сделать ссылку "Регистрация" в форме авторизации для новых пользователей?
  • 0
Николя,

Просто там, где выводится форма авторизации, в нужное место добавьте:

Нет аккаунта? <a href="/my-account/?action=register">Зарегистрироваться</a>
  • 1
25.03 в 13:43
Спасибо за помощь! Настроил. Странно только, что на локальном сервере заработал без проблем, а вот на хостинге глючит редирект после регистрации. Должен перенаправить в Мой аккаунт (консоль). Но вместо этого не находит страницу. Что это может быть, не подскажите? confuse
  • 0
25.03 в 16:43
Разобрался! Вопрос решился настройкой плагинов безопасности. На локалке их не было, поэтому и проблем не было :)
  • 1
Николя, ну и хорошо wink
  • 0
20.04 в 18:21
Сделал все как написано на верху, но изменения не вступают в силу, страница так же выдает данные из родного файла form-login.php.. как сделать чтобы новый файл отображался ?
  • 0
Макс, файл точно находится тут? /wp-content/themes/название темы/woocommerce/templates/myaccount

Точно ли в рабочую тему загрузили файл?
  • 1
20.04 в 19:57
да, файл точно там и тема активна.. когда пишу в самом плагине код работает а когда пишу в файле в теме код не работает т.е срабатывает тот файл который в плагине.
  • 0
Макс, очень странно, честно говоря.

Плагинов кэша нет? Или кэша самой темы?
  • 0
21.04 в 01:39
я создал дочернюю тему темы ocean wp, папка woocommerce там была так как скачал в основную тему, туда добавил папку templates а туда папку myaccount и туда файл form-login.php но почему то не срабатывает этот файл а срабатывает файл который в самом плагине woocommerce, по идее должны файлы работать те которые в теме, и тема активна. может что-то не правильно делаю в самом файле ? даже если это так он же должен выводить ошибку но не файл который в самом плагине.
  • 0
Макс, пришлите FTP и адрес сайта - постараюсь посмотреть в чем дело.
  • 0
21.04 в 02:00
сайт на локалке, Openserver... ну могу закинуть на хост и скинуть данные, вк или любой соц сеть скиньте свой, и самому уже интересно, вроде на товары работают изменения вот именно с form-login.php что-то не так)
  • 0
Макс, тогда тим вивер + доступы прямо в комментарии.
  • 0
21.04 в 02:50
и еще, я пока что не менял файл form-login.php ну в label прописал буквы чтобы проверить работает ли,
если получится узнать в чем дело, пж пропишите тут подробно.
  • 0
Макс, была маленькая ошибка. В статье поправил - проверьте. В woocommerce не нужна папка templates
  • 0
Гостям запрещено учавствовать в обсуждениях сайта. Авторизуйтесь, чтобы иметь возможность оставить свое мнение о материале или задать вопрос.
Подняться наверх