Домой Wp-Recall WP-Recall: Установка и настройка Вывод в шапке кнопок зарегистрироваться и войти.
11ответ(ов) в теме
Шустрый Огурчик
не в сети 8 лет
На сайте с 27.02.2014
Участник
Тем 38
Сообщения 111
1
13:37

После нескольких эксперементов, все таки решил спросить напрямую.
Задача вывести в шапке строку, для незарегистрированных видят 2 ссылки: зарегистрироваться и войти.
Для зарегистрированных : Привет, Имя! Личный кабинет и миниаватарка.

Как четко и правильно сделать вывод во избежании всех возможных конфликтов?

0
Андрей CS
не в сети 8 часов
На сайте с 30.11.-0001
Администратор
Тем 71
Сообщения 16928
2
14:35

никаких конфликтов не должно возникнуть, если у кода был верный синтаксис. За основу можно взять код виджета формы авторизации и регистрации из файла widget.php в папке плагина.
Там же можно видеть, что проверка авторизации пользователя производится путем проверки глобальной переменной $user_ID.
if($user_ID){
//пользователь авторизован
}else{
//пользователь неавторизован
}

0
Kugugur
не в сети 7 лет
На сайте с 15.09.2014
Участник
3
14:31

Андрей, а можно здесь привести целиком этот код - для вывода в шапке кнопок "зарегистрироваться" и "войти"?
Думаю, многим пригодится. Гораздо более распространено именно в шапке размещать вход, а не в сайдбаре.

п.с. файл widget.php исследован, но там слишком сложно. Оказалось, это не две строчки на пхп скопировать(

0
Шустрый Огурчик
не в сети 8 лет
На сайте с 27.02.2014
Участник
Тем 38
Сообщения 111
4
14:37

Kugugur сказал(а)

Андрей, а можно здесь привести целиком этот код - для вывода в шапке кнопок "зарегистрироваться" и "войти"?
Думаю, многим пригодится. Гораздо более распространено именно в шапке размещать вход, а не в сайдбаре.

п.с. файл widget.php исследован, но там слишком сложно. Оказалось, это не две строчки на пхп скопировать(

Все решается проще, обычными средствами wp:

<?php
if ( is_user_logged_in() ) {
	echo 'Код для зарегистрированного, аватарка и логин обернутый в ссылку личного кабинета!';
} else {
	echo 'Текст для незарегистрированных, обернутый в ссылку на странице регистрации!';
}
?>

0
Kugugur
не в сети 7 лет
На сайте с 15.09.2014
Участник
5
21:05

Шустрый Огурчик сказал(а)
Все решается проще, обычными средствами wp:

Для незарегистрированных мне подойдет вот это: echo get_ulogin_panel(0,false);

Для зарегистрированных: как вывести аватарку и логин? ссылка сюда echo do_shortcode('[ wp-recall ]');

0
Шустрый Огурчик
не в сети 8 лет
На сайте с 27.02.2014
Участник
Тем 38
Сообщения 111
6
00:07

Без шорткода,через get_avatar и userinfo стандартными средствами

0
Kugugur
не в сети 7 лет
На сайте с 15.09.2014
Участник
7
20:16

Шустрый Огурчик сказал(а)

Без шорткода,через get_avatar и userinfo стандартными средствами

Ни разу не приходилось читать кодекс вордпресса)
В итоге получилось так:

global $current_user;
get_currentuserinfo();

if ( is_user_logged_in() ) {
echo 'Привет, ' . $current_user->user_login . " n";
} else {
echo 'Авторизоваться с помощью:', get_ulogin_panel(0,false);
}

Не пойму, как вот это добро . $current_user->user_login . " n" обернуть ссылкой?

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

echo 'Привет, <a href="http://вашCайт.ру"> ' . $current_user->user_login . '</a>'"  n";
чето нифига не совладаю с кавычками - парсер ведет себя фиг знает как. Думаю мысль уловили

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

<div class="user_wiget">
<?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 '<div class="avatar_top">' . get_avatar($user_ID, 75) . '</div>';
				echo '<div class="right_top"><p><a href="ссылка еще куда-то" title="Перейти куда-то еще">Мой приют</a></p>';
				echo '<p><a href="'.$rcl_user_URL.'" title="Перейти в Личный кабинет">Личный кабинет</a></p>';
				if(function_exists('rcl_get_rating_block')):
					$karma = apply_filters('rcl_get_all_rating_user_rcl',0,$user_ID);
					echo '<p>Рейтинг: '.$karma.'</p></div>';
				endif;
				echo '<div class="exit_top"><a href="'.wp_logout_url( '/' ).'"><input type="button" value="'.__('Выйти','rcl').'"></a></div>';
				echo '</div>';	
		} else { // не авторизован - выдаем форму реги и войти
				echo rcl_get_authorize_form();
			}
		
} else { // если не включен реколл - то ничего
} 
?>
</div>

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

Применяйте на свой страх и риск. Но вам я его не советую - я не буду его поддерживать 😉

0
Kugugur
не в сети 7 лет
На сайте с 15.09.2014
Участник
10
19:42

Спасибо за код.
Вот так получилось в итоге:

<div class="user_wiget">
ПХП
if(function_exists('wp_recall')){ // если включен плагин реколл включаем виджет пользоватля вверху
global $rcl_user_URL;
global $rcl_options;
global $current_user;
get_currentuserinfo();

if($user_ID){ // если авторизован пользователь
echo '  <d iv class=  "  panel_lk_top  "  >  ';
echo '  <строка><a href=  "  '  .$rcl_user_URL.  '  "   title="Перейти в Личный кабинет  "  >  '   .   $current_user->user_login   .   '  </a></строка>  '  ;
echo '  <div class=  "  exit_top  "  ><a href=  "  '  .wp_logout_url(   '  /  '   ).  '  "  >  Выйти</a></  d iv>  '  ;

echo '  < /d iv >  '  ;
} else { // не авторизован - выдаем форму реги и войти
echo '  Авторизоваться с помощью  :  ', get_ulogin_panel(0,false);
}
} else { // если не включен реколл - то ничего
}
ПХП
</div>

0
Kugugur
не в сети 7 лет
На сайте с 15.09.2014
Участник
11
19:47

Нет ли косяков в коде?
особенно вот эта строка:

echo ' <p><a href= " ' .$rcl_user_URL. ' " title="Перейти в Личный кабинет " > ' . $current_user->user_login . ' </a></p> ' ;

Так можно функции использовать? Может нагрузка на сервер будет большая или еще что...

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