MOW

Woocommerce: Форма входа, регистрации и аккаунта в всплывающем окне

WordPress>WooCommerce,WordPress>Плагины

Задача.
Необходимо настроить форму входа/регистрации в интернет-магазине на Woocommerce, которая должна отображаться во всплывающем окне по нажатию кнопки. После регистрации в этом же модальном окне может отображаться информация со страницы учетной записи Woocommerce.

Всплывающее окно с формой входа в WordPress

Решение.
Чтобы добавить форму регистрации/входа в попап окно можно использовать способ на двух плагинах — для попап ока и формы входа..

1. В настройках Woocommerce должна быть привязанная страница аккаунта с шорткодом «{woocommerce_my_account}».

2. Плагин Login/Signup Popup ( Inline Form + Woocommerce ) [XootiX] для настройки самой формы регистрации и входа. Также нужно включить замену формы страницы woocommerce myaccount (Изображение 1).

Настройки в плагине Login/Signup Popup

3. Плагин Popup Maker [Popup Maker] для создания попап окна, но можно и самому сделать. Создаем всплывающее окно и добавляем в него шорткод {woocommerce_my_account}. Привязываем окно какой-то кнопке Входа.

Всплывающее окно на HTML и CSS с примерами

4. После настройки всех плагинов. Проверяем работу и после авторизации или регистрации в всплывающем окне мы будем видеть обычную форму аккаунта Woocommerce. Но здесь есть один важный момент! На самой странице аккаунта (например она имеет слаг «my-account«) есть такие ссылки как «недавние заказы«, «платежный адрес и адрес доставки» и «изменить пароль и основную информацию«. Они имеют ссылки вида https://mysite.net/my-account/orders/, https://mysite.net/my-account/edit-address/ и https://mysite.net/my-account/edit-account/. Дело в том, что эти ссылки генерируются таким образом, что к текущей странице просто прибавляются /edit-address/ и т.д.

5. Когда мы находимся на странице аккаунта, то эти ссылки формируются правильно. Но, т.к. мы используем эту форму аккаунта в попап-окне, то она может находиться на любой странице. В этом случае ссылки на редактирование будут формироваться неправильно (Изображение 2). Например, если мы будем находиться на странице с URL https://mysite.net/o-kompanii/, то эти ссылки для редактирования примут вид https://mysite.net/o-kompanii/edit-address/ и когда мы попробуем перейти в раздел редактирования, то выдаст 404, т.к. такой страницы нет, а есть https://mysite.net/my-account/edit-address/.

Изображение 2: Ссылки редактирования в панели аккаунта
Чтобы исправить ссылки нужно отредактировать шаблон Woocommerce приборной доски аккаунта:
  1. Копируем файл из плагина /wp-content/plugins/woocommerce/templates/myaccount/dashboard.php в дочернюю тему (или просто тему если дочерняя не используется) так /wp-content/themes/mytheme-child/woocommerce/myaccount/dashboard.php (именно так — без ‘templates‘).
  2. Редактируем скопированный файл dashboard.php. Нужно заменить часть кода — трем wc_get_endpoint_url добавить слаг нашей страницы аккаунта (в примере это «my-account») при условии что мы находимся не на странице аккаунта, а когда на странице аккаунта — должно быть как и было — Код №1.


Код №1: dashboard.php Замена кода для корректного вывода ссылок редактирования аккаунта на всех страницах

Плагин Login/Signup Popup имеет встроенную возможность popup окна. Можно использовать его шорткоды, посмотрев инструкцию на странице плагина.

Последние Новости...

Больше никаких сообщений для показа

Мы уважаем вашу конфиденциальность

Мы используем файлы cookie, чтобы улучшить ваш опыт просмотра, показывать персонализированную рекламу или контент и анализировать наш трафик. Нажимая «Принять все», вы соглашаетесь на использование наших файлов cookie. Политика в отношении файлов cookie

Настройки согласия

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

Файлы cookie, отнесенные к категории «Необходимые», хранятся в вашем браузере, поскольку они необходимы для включения основных функций сайта.

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

Вы можете включить или отключить некоторые или все эти файлы cookie, но отключение некоторых из них может повлиять на ваш опыт просмотра.

Необходимые Всегда активны

Необходимые файлы cookie являются основными функциями веб-сайта, и веб-сайт не будет работать по назначению. Эти куки не хранят какие-либо личные данные.

Функциональные

Платформы социальных сетей, отзывы коллекционеров и другие сторонние функции на веб-сайте совместно используют некоторые функции для поддержки функциональных файлов cookie. Яндекс Метрика

Аналитика

Аналитические куки используются, чтобы понять, как посетители взаимодействуют с сайтом. Эти файлы cookie предоставляют информацию о таких показателях, как количество посетителей, показатель отказов, источник трафика и т. Д. Яндекс Метрика

Производительность

Куки-файлы производительности используются для понимания и анализа ключевых показателей эффективности веб-сайта, которые помогают вам повысить качество обслуживания пользователей. Яндекс Метрика

Реклама

Рекламные файлы cookie используются для предоставления персонализированной рекламы на основе посещаемых ими страниц и анализа эффективности рекламной кампании. Яндекс Директ