[Скрипт] Скрыть кнопки от разных групп пользователей

Тема в разделе "Wordpress", создана пользователем SergAgent, 7 сен 2013.

  1. SergAgent

    SergAgent

    Регистрация:
    6 фев 2013
    Сообщения:
    119
    Симпатии:
    3
    Такая задача, скрыть кнопку редактирования объявления от обычных пользователей и гостей, кнопка находится в шаблоне страницы отображения объявления, ну или как вариант сделать так чтоб гостям и пользователям выдавался альтернативный код, а не код кнопки редактирования, то есть функция else
     
  2. alex_storm

    alex_storm webdev

    Регистрация:
    11 дек 2012
    Сообщения:
    1.151
    Симпатии:
    667
    Могу натолкнуть на мысль.
    К примеру сделать проверку по ID из БД и после этого выводить каждой группе свой шаблон кнопки.
     
    SergAgent нравится это.
  3. SergAgent

    SergAgent

    Регистрация:
    6 фев 2013
    Сообщения:
    119
    Симпатии:
    3
    была такая идея, вот только мне нужно решение этой идеи, сам я незнаю как это реализовать. и более сложновато это. мне хотя бы сделать.
     
  4. Bnopen

    Bnopen Команда форума

    Регистрация:
    3 мар 2013
    Сообщения:
    1.264
    Симпатии:
    534
    Можно использовать вот такую проверку -
    <?php if (is_user_logged_in()) : ?>

    А еще можно попробовать с помощью плагинов, которые ограничивают доступ на добавление/редактирование постов, таких много есть:
     
    SergAgent нравится это.
  5. SergAgent

    SergAgent

    Регистрация:
    6 фев 2013
    Сообщения:
    119
    Симпатии:
    3
    то что надо, а точнее
    Код:
    <?php
    if ( is_user_logged_in() ) {
    echo 'Привет, зарегистрированный пользователь!';
    } else {
    echo 'Привет, посетитель!';
    };
    ?>
    
    подробнее здесь

    или здесь


    вот только когда вместо Привет, зарегистрированный пользователь вставляю код кнопки редактирования
    Код:
    <span style="float: left;"><a href="/redaktirovat-obyavlenie/?ADS_ACTION%5BEDIT%5D=<?php the_ID(); ?>">Редактировать</a></span>
    вместо правильной ссылки http://adt.by/redaktirovat-obyavlenie/?ADS_ACTION[EDIT]=24734

    выдает вот такую кривую http://adt.by/redaktirovat-obyavlenie/?ADS_ACTION[EDIT]=%3C?php%20the_ID();%20?%3E

    Как это исправить?
     
    Последнее редактирование: 8 сен 2013
  6. Bnopen

    Bnopen Команда форума

    Регистрация:
    3 мар 2013
    Сообщения:
    1.264
    Симпатии:
    534
    Скиньте полностью весь код - ссылки не должны не меняться, а все должно нормально отображатся. Вы ведь не в echo поместили код для редактирования?
     
  7. SergAgent

    SergAgent

    Регистрация:
    6 фев 2013
    Сообщения:
    119
    Симпатии:
    3
    PHP:
    <?php
    if ( is_user_logged_in() ) {
        echo 
    '<span style="float: right;"><a href="/redaktirovat-obyavlenie/?ADS_ACTION%5BEDIT%5D=<?php the_ID(); ?>">Редактировать</a></span>';
    } else {
        echo 
    'гость';
    };

    ?>
    --- Добавлено, 11 сен 2013 ---
    даже такой вариант непрокатывает.
    PHP:
    <span style="float: right;">
    <?php
    if ( is_user_logged_in() ) {
        echo 
    '<a href="/redaktirovat-obyavlenie/?ADS_ACTION%5BEDIT%5D=<?php the_ID(); ?>">Редактировать</a>';
    } else {
        echo 
    'гость';
    };
    ?>
    </span>
     
    Последнее редактирование: 11 сен 2013
  8. kama812

    kama812

    Регистрация:
    30 мар 2013
    Сообщения:
    311
    Симпатии:
    195
    echo '<a href="/redaktirovat-obyavlenie/?ADS_ACTION%5BEDIT%5D=' . the_ID() . '">Редактировать</a>';
     
    SergAgent нравится это.
  9. SergAgent

    SergAgent

    Регистрация:
    6 фев 2013
    Сообщения:
    119
    Симпатии:
    3
    этот вариант тоже неработает. ID отдельно как текст, и ссылка не захватывает его
     
  10. kama812

    kama812

    Регистрация:
    30 мар 2013
    Сообщения:
    311
    Симпатии:
    195
    <?php if ( is_user_logged_in() ) { ?>

    <span style="float: right;"><a href="/redaktirovat-obyavlenie/?ADS_ACTION%5BEDIT%5D=<?php the_ID(); ?>">Редактировать</a></span>

    <?php } else { ?>

    <span style="float: right;">Вход не выполнен.</span>

    <?php } ?>
     
    SergAgent нравится это.
  11. SergAgent

    SergAgent

    Регистрация:
    6 фев 2013
    Сообщения:
    119
    Симпатии:
    3
    это работает отлично. проблема решена.
     
  12. kovtalo

    kovtalo

    Регистрация:
    14 апр 2013
    Сообщения:
    7
    Симпатии:
    1
    Нужно создать shortcode для вывода контента. Для этого нужно вставить в functions.php вашей темы немного кода.

    add_shortcode( ‘member’, ‘member_check_shortcode’ );

    function member_check_shortcode($atts, $content=null) {

    if ( is_user_logged_in() && !is_null( $content ) && !is_feed() )

    return $content;

    return ”;

    }

    Все! Больше никаких махинаций не требуется. Теперь, для того чтобы спрятать часть текста или весь пост целиком, вам нужно скрываемый фрагмент поместить внутри тегов [member] и [/member]. Текст между тегов виден не буден.
     
    SergAgent нравится это.
  13. SergAgent

    SergAgent

    Регистрация:
    6 фев 2013
    Сообщения:
    119
    Симпатии:
    3
    не совсем то, мне надо спрятать не контент, а часть кода в шаблоне, или предлагаете использовать это в шаблонах?