Домой WordPress WordPress: Вопросы и ответы Как запретить просмотр профиля пользователя другими пользователями сайта?
29ответ(ов) в теме
dydaevskiy
не в сети 3 года
На сайте с 26.04.2016
Участник
Тем 30
Сообщения 162
1
15:14

Приветствую друзья, в названии темы и есть вся суть вопроса. Даже добавить не чего.

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

Если кабинет выводится через файл author.php вп шаблона проблемы не вижу:

    global $user_ID, $user_LK;
    if (!$user_ID || $user_ID != $user_LK){
        echo 'Error mazafaka';
    } else {
        if(function_exists('wp_recall')) wp_recall();
    }

1
dydaevskiy
не в сети 3 года
На сайте с 26.04.2016
Участник
Тем 30
Сообщения 162
3
16:24

Otshelnik-Fm сказал(а)

Если кабинет выводится через файл author.php вп шаблона проблемы не вижу:

    global $user_ID; $user_LK;
    if (!$user_ID || $user_ID != $user_LK){
        echo 'Error mazafaka';
    } else {
        if(function_exists('wp_recall')) wp_recall();
    }

Не пойму куда вставить данный код, в function.php выдает крамешный ERROR

0
dydaevskiy
не в сети 3 года
На сайте с 26.04.2016
Участник
Тем 30
Сообщения 162
4
16:27

В теме author.php нету

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

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

2й способ

0
dydaevskiy
не в сети 3 года
На сайте с 26.04.2016
Участник
Тем 30
Сообщения 162
6
16:56

Otshelnik-Fm сказал(а)

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

2й способ

В папке с темой создал данный файл с вот таким содержимым:

<?php

if(function_exists('wp_recall')&&is_author()) wp_recall();



global $user_ID; $user_LK;
    if (!$user_ID || $user_ID != $user_LK){
        echo 'Error mazafaka';
    } else {
        if(function_exists('wp_recall')) wp_recall();
    }

?>

Все равно показывает профиль

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

Вверху то зачем вызываете личный кабинет? Он же у нас проверки проходит ниже

0
dydaevskiy
не в сети 3 года
На сайте с 26.04.2016
Участник
Тем 30
Сообщения 162
8
17:15

Otshelnik-Fm сказал(а)

Вверху то зачем вызываете личный кабинет? Он же у нас проверки проходит ниже

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

0
dydaevskiy
не в сети 3 года
На сайте с 26.04.2016
Участник
Тем 30
Сообщения 162
9
17:16

Владимир как сделать что б при попытке открыть профиль другого пользователя происходил редирект на главную?

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

А у меня нет

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

Вы когда сделали author.php - его выбрали в основных настройках?

Вы не можете просматривать опубликованные ссылки
0
dydaevskiy
не в сети 3 года
На сайте с 26.04.2016
Участник
Тем 30
Сообщения 162
12
17:21

Какой-то совсем другой вид ссылок у меня.
Это Ваша ссылка:

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

Это моя:

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

Может из-за этого?

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

не из-за этого. Настраивайте. Выше подсказал

0
dydaevskiy
не в сети 3 года
На сайте с 26.04.2016
Участник
Тем 30
Сообщения 162
14
17:34

Otshelnik-Fm сказал(а)

не из-за этого. Настраивайте. Выше подсказал

Да, все работает но такой вариант не устраивает. Так как всерстка вся плывет на мертво.
Вов можно просто сделать редирект на главную при попытке посмотреть профиль пользователя?

0
dydaevskiy
не в сети 3 года
На сайте с 26.04.2016
Участник
Тем 30
Сообщения 162
15
17:35

Спасибо за Ваше время

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

Смотрите

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

Что с версткой не так? Просто кабинет без контента.

0
dydaevskiy
не в сети 3 года
На сайте с 26.04.2016
Участник
Тем 30
Сообщения 162
17
17:46

Otshelnik-Fm сказал(а)

Смотрите

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

Что с версткой не так? Просто кабинет без контента.

Да, именно так. И сам кабинет какбуд-то бы без css

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

Ну уж извините)) что заказали - то и получили. Результат - кабинет скрыт.

Стили у меня все есть. Что там у вас чего не хватает - видно вам. Вы всегда вместо того полезного сообщения на английском можете поставить кучу блоков с информацией или еще что.
С редиректами я вам наверно не дам всю информацию - времени нет все проверить. Но может опираясь на ссылку что и сделаете

0
dydaevskiy
не в сети 3 года
На сайте с 26.04.2016
Участник
Тем 30
Сообщения 162
19
18:11

Вы уже и так на меня времени столько потратили, спасибо я дальше сам буду думать.

0
dydaevskiy
не в сети 3 года
На сайте с 26.04.2016
Участник
Тем 30
Сообщения 162
20
13:29

Otshelnik-Fm сказал(а)

Ну уж извините)) что заказали - то и получили. Результат - кабинет скрыт.

Стили у меня все есть. Что там у вас чего не хватает - видно вам. Вы всегда вместо того полезного сообщения на английском можете поставить кучу блоков с информацией или еще что.
С редиректами я вам наверно не дам всю информацию - времени нет все проверить. Но может опираясь на ссылку что и сделаете

Отшельник, по ходу без Вас я не справлюсь. Я так понимаю должен быть какой-то аналог тому php коду который Вы мне дали для вставки допустим в шаблон страницы темы?
Если Вам не тяжело могли бы мне дать такой код? Что б отображался только кабинет пользователя, а если пользователь переходит на страницу профиля другого пользователя был или редирект или отображение пустой страницы.
Очень Вам благодарен, на 99% вопросов заданным мной на форуме, я получаю ответы от Вас.

0
dydaevskiy
не в сети 3 года
На сайте с 26.04.2016
Участник
Тем 30
Сообщения 162
21
14:17

Впринцепе от незарегистрированных пользователей контент скрыл при помощи добавления шорт кодов в function.php

function hidden_content_from_guests( $atts, $content = null ) {
 if (is_user_logged_in() && !is_null($content) && !is_feed()) {
 return $content;
 }
 return '<span>Контент доступен только для зарегистрированных пользователей!Пожалуйста <a href="http://САЙТ/registraciya" style="color: #3d8e22">зарегистрируйтесь</a> или <a href="http://САЙТ/" style="color: #3d8e22">авторизируйтесь</a>
</span>';
 }

add_shortcode( 'guest', 'hidden_content_from_guests' );

Шорткод [guest] перед контентом, который необходимо скрыть, и [/guest] после
Теперь осталось скрыть отображения профилей от зарегистрированных пользователей

0
dydaevskiy
не в сети 3 года
На сайте с 26.04.2016
Участник
Тем 30
Сообщения 162
22
14:19

Кстати у Вас на сайте баг, при редактировании своего сообщения на форуме сбивается ранее введенный код

0
dydaevskiy
не в сети 3 года
На сайте с 26.04.2016
Участник
Тем 30
Сообщения 162
23
14:29

dydaevskiy сказал(а)

Впринцепе от незарегистрированных пользователей контент скрыл при помощи добавления шорт кодов в function.php

function hidden_content_from_guests( $atts, $content = null ) {
 if (is_user_logged_in() && !is_null($content) && !is_feed()) {
 return $content;
 }
 return '<span>Контент доступен только для зарегистрированных пользователей!Пожалуйста <a href="http://САЙТ/registraciya" style="color: #3d8e22">зарегистрируйтесь</a> или <a href="http://САЙТ/" style="color: #3d8e22">авторизируйтесь</a>
</span>';
 }

add_shortcode( 'guest', 'hidden_content_from_guests' );

Шорткод [guest] перед контентом, который необходимо скрыть, и [/guest] после
Теперь осталось скрыть отображения профилей от зарегистрированных пользователей

Нет нефига, (((. Теперь при применении данного шорт кода место ЛК WP_RECALL, отображается текстом шорт код [wp-recall].

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

В моем первом коде (2е сообщение) была точка с запятой при перечислении глобальных переменных. Понятно что $user_LK не была определена. Заметил только что

  global $user_ID, $user_LK;
    if (!$user_ID || $user_ID != $user_LK){
        echo 'Error mazafaka';
    } else {
        if(function_exists('wp_recall')) wp_recall();
    }

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

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

add_action('template_redirect', 'redirect_for_another_cabinet');
function redirect_for_another_cabinet(){
    global $user_ID,$user_LK;
    if(is_author() && $user_ID == $user_LK) return false;
    if (is_author()){
        wp_redirect( home_url());
        exit;
    }
}

upd: этот код актуален при выводе кабинета через файл author.php, а не через шорткод.

p.s. как они будут обмениваться в ЛС - я не знаю. но в любом случае - задача решена

1
dydaevskiy
не в сети 3 года
На сайте с 26.04.2016
Участник
Тем 30
Сообщения 162
26
14:45

dydaevskiy сказал(а)

dydaevskiy сказал(а)

Впринцепе от незарегистрированных пользователей контент скрыл при помощи добавления шорт кодов в function.php

function hidden_content_from_guests( $atts, $content = null ) {
 if (is_user_logged_in() && !is_null($content) && !is_feed()) {
 return $content;
 }
 return '<span>Контент доступен только для зарегистрированных пользователей!Пожалуйста <a href="http://САЙТ/registraciya" style="color: #3d8e22">зарегистрируйтесь</a> или <a href="http://САЙТ/" style="color: #3d8e22">авторизируйтесь</a>
</span>';
 }

add_shortcode( 'guest', 'hidden_content_from_guests' );

Шорткод [guest] перед контентом, который необходимо скрыть, и [/guest] после
Теперь осталось скрыть отображения профилей от зарегистрированных пользователей

Нет нефига, (((. Теперь при применении данного шорт кода место ЛК WP_RECALL, отображается текстом шорт код [wp-recall].

Победил )))
Новый шорт код который отображает содержимое шорткода WP-RECALL:

/* Запрет просмотра профиля http://webmaster-gambit.ru/wordpress-skryit-kontent-tolko-dlya-zaregistrirovannyih-polzovateley/ */
/* Теперь добавим шорткод [hide_content_shortcode] перед контентом, который необходимо скрыть, и [/hide_content_shortcode] после */
function hidden_content_from_guests( $atts, $content = null ) {
 if (is_user_logged_in() && !is_null($content) && !is_feed()) {
 return do_shortcode($content);
 }
 return '<span><p class="aligncenter">Контент доступен только для зарегистрированных пользователей!</br>Пожалуйста <a href="http://#/registraciya" style="color: #3d8e22;">зарегистрируйтесь</a> или <a href="http://test.cofe-code.net.ua/#" style="color: #3d8e22;">авторизируйтесь</a></p></span>';
 }

add_shortcode( 'hide_content_shortcode', 'hidden_content_from_guests' );
/* END */

0
dydaevskiy
не в сети 3 года
На сайте с 26.04.2016
Участник
Тем 30
Сообщения 162
27
14:55

Otshelnik-Fm сказал(а)

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

add_action('template_redirect', 'redirect_for_another_cabinet');
function redirect_for_another_cabinet(){
    global $user_ID,$user_LK;
    if(is_author() && $user_ID == $user_LK) return false;
    if (is_author()){
        wp_redirect( home_url());
        exit;
    }
}

p.s. как они будут обмениваться в ЛС - я не знаю. но в любом случае - задача решена

Я могу его добавить в function.php (простите если данный вопрос покажется тупым)?

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

Да. Только забыл добавить - этот код актуален при выводе кабинета через author.php (сейчас там добавлю)

1
dydaevskiy
не в сети 3 года
На сайте с 26.04.2016
Участник
Тем 30
Сообщения 162
29
16:53

Otshelnik-Fm сказал(а)

Да. Только забыл добавить - этот код актуален при выводе кабинета через author.php (сейчас там добавлю)

Все работает! Огромное спасибо.

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