Здравствуйте!
Вместо RecallBar я хочу использовать просто интерактивный пункт меню, т.к. это более привычно подавляющему большинству пользователей.
Т.е. чтобы в правой части хидера был пункт "Вход\регистрация" если на сайте находится разлогиненный пользователь или "Личный кабинет" - для залогиненного.
"Вход\регистрация" - вызывает соответствующее всплывающее окно входа\регистрации WP-Recall, а "Личный кабинет" (ну или там "Профиль" или имя пользователя) представлен в виде выпадающего меню с пунктами "Личный кабинет", ... ..., "Выход".
Есть ли какая-нибудь возможность реализовать это штатными средствами плагина или WP?
Я не очень разбираюсь в php и сайтостроении в целом, поэтому пользуюсь Elementor'ом, а всяко-разные функции реализую плагинами.
Почитав форум, например
тему, пока я сделал следующее:
1. Плагином Insert PHP Code Snippet обернул в шорткод код:
<?php if(function_exists('wp_recall')){ global $user_ID; global $rcl_user_URL; global $rcl_options; if($user_ID){ echo '<div class="panel_lk_top">'; echo '<div class="name_top">'.$user_identity.'</div>'; echo '<p><a href="'.$rcl_user_URL.'" title="Перейти в Личный кабинет">Личный кабинет</a> / <a href="'.wp_logout_url( '/' ).'">Выйти</a></p>'; echo '</div>'; } else { echo '<p><a href="'.rcl_get_authorize_form().'" title="вход">Вход-регистрация</a></p>'; } } else { // если не включен реколл - то ничего } ?>
и поместил шорткод в правый блок header'a.
В результате "Личный кабинет / выход" работает, а "Вход / регистрация" - нет. Подскажите, пожалуйста, как правильно написать строку
echo '<p><a href="'.rcl_get_authorize_form().'" title="вход">Вход-регистрация</a></p>';
чтобы она вызывала всплывающее окно регистрации?
Также, сильно подозреваю, что строка
echo '<div class="name_top">'.$user_identity.'</div>';
должна отражать имя текущего пользователя, а она не отражает. Не подскажите, где ошибка?
Ну и, если добивать тему до конца, то с помощью различных плагинов можно позасовывать php-код в пункты меню. Прошу подсказать где можно посмотреть параметры вызова функций.
P.S. Но очень хотелось бы реализовать это как-то по простому, штатно а не городить огород из 100500 дополнительных не нужных плагинов.
Здравствуйте.
Перенесено в кастомизации. Т.к. вы не используете стандартные части плагина.
Нам не совсем понятно где вы хотите вывести - это области меню? Что за "правая часть хидера"?
В меню выводится дополнением
А виджет панель управления вам чем не угодил? Используйте его.
По форме входа и регистрации смотрите этот материал
там 2 части. Вопрос вывода кодом в зависимости от выбранной типа формы входа там рассматривается.
p.s. с элементором мы не работаем - по нему вопросы задавайте авторам элементора.
Большое спасибо за быстрый ответ!
Дополнение, на которое вы сослались - это именно тот функционал, который мне нужен! Если пользователь не залогинен - выводится "Вход" и "Регистрация". Если залогинен - выпадающее меню с возможностями личного кабинета.
Но хотелось бы этот функционал отображать не в RecallBar'e, а в меню сайта. Либо в виде отдельной сущности в правой части header'a если в меню проблематично.
Что касается Elementor'a, то по нему вопросов нет. Я его просто упомянул что использую. А так - без разницы: что в Elementor сделать кубик с блоком кода и вставить его в нужное место header'a, что в сам код header'a залезть и вставить код туда.
Здравствуйте, Андрей.
Не совсем этот. По ссылке на материал в первом ответе функционал этого допа я фактически реализовал вставкой в header сущности:
<?php if (is_user_logged_in()) { global $rcl_user_URL; echo '<a href="'.$rcl_user_URL.'"><i class="fa fa-user"></i><span> Личный кабинет</span></a> / <a href="'.wp_logout_url( home_url()). '">Выход</a>'; } else { echo '<a href="/?action-rcl=login"><i class="fa fa-user"></i><span> Вход (регистрация)</a>'; } ?>
Мне нужно чтобы в меню (ну или в области header'a) появлялся не просто пункт "Личный кабинет", а раскрывающийся список с пунктами личного кабинета.
Т.е. по сути - компиляция из этого дополнения и вот этого тоже вашего дополнения
.
Теоретически я понимаю, что реализовать это можно так: установить "Copy menu in bar", отключить вывод RecallBar и вставить в хидер вышеуказанную конструкцию, заменив в ней строчку
echo '<a href="'.$rcl_user_URL.'"><i class="fa fa-user"></i><span> Личный кабинет</span></a> / <a href="'.wp_logout_url( home_url()). '">Выход</a>';
на
echo '<a href="'.ЧТО_ТО_ВЫЗЫВАЮЩЕЕ_ВЫПАДАЮЩЕЕ_МЕНЮ.'"><i class="fa fa-user"></i><span> Личный кабинет</span></a> / <a href="'.wp_logout_url( home_url()). '">Выход</a>';
, где '.ЧТО_ТО_ВЫЗЫВАЮЩЕЕ_ВЫПАДАЮЩЕЕ_МЕНЮ.' нужно взять в коде упомянутого "Copy menu in bar".
Но, во-первых, я не нашел ни в директории add-on, ни вообще где-то .php файл с этим дополнением, а во-вторых даже если найду, не уверен что пойму какую функцию нужно сюда написать. Мои знания пока на уровне копипасты готовых решений.
Не могли бы вы подсказать по этому пункту?
Вы хотите скрестить два дополнения, но так просто это не сделать и подсказать что то конкретное тут сложно.
Ссылка на личный кабинет вставляется в меню сайта динамически, надо двигаться в этом направлении, сделать этот пункт родительским и добавить таким же образом для него дочерние пункты, которые будут являться ссылками на разделы личного кабинета. Я думаю, правильным будет использовать фильтр "wp_get_nav_menu_items", но получится ли получить желаемый результат сказать не могу.