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

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

Вова (Otshelnik-Fm)
не в сети 5 дней
На сайте с 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();
    }

dydaevskiy
не в сети 5 лет
На сайте с 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

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

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

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

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

2й способ

dydaevskiy
не в сети 5 лет
На сайте с 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();
    }

?>

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

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

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

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

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

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

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

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

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

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

А у меня нет

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

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

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

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

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

Это моя:

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

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

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

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

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

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

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

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

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

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

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

Смотрите

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

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

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

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

Смотрите

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

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

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

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

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

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

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

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

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

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

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

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

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

dydaevskiy
не в сети 5 лет
На сайте с 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] после
Теперь осталось скрыть отображения профилей от зарегистрированных пользователей

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

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

dydaevskiy
не в сети 5 лет
На сайте с 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].

Вова (Otshelnik-Fm)
не в сети 5 дней
На сайте с 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();
    }

Вова (Otshelnik-Fm)
не в сети 5 дней
На сайте с 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. как они будут обмениваться в ЛС - я не знаю. но в любом случае - задача решена

dydaevskiy
не в сети 5 лет
На сайте с 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 */

dydaevskiy
не в сети 5 лет
На сайте с 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 (простите если данный вопрос покажется тупым)?

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

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

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

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

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

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

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