• DONATE to NULLED!
    Вы можете помочь Форуму и команде, поддержать финансово.
    starwanderer - модератор этого раздела будет Вам благодарен!

Помощь Скрытый контент на сайте

areshin71

Гуру форума
Регистрация
19 Сен 2015
Сообщения
114
Реакции
58
Столкнулся с необходимостью закрыть часть контента от неавторизованных пользователей на сайте. Ставить лишний плагин не хотелось бы, который наверняка существует для этой цели.
На просторах Сети нашел вот такой работающий код.
Эту часть нужно добавить в functions.php
Код:
function true_content_by_user_cap( $attr, $content = null ) {
    // массив со значениями по умолчанию, которые будут применяться, если в шорткоде не был указан параметр
    $defaults = array(
        'capability' => 'read'
    );
    extract( shortcode_atts( $defaults, $attr ) );
    if ( current_user_can( $capability ) && !is_null( $content ) && !is_feed() ) {
        return $content;
    }
    return ''; // указываем сообщение об ошибке если нужно
}

add_shortcode( 'access', 'true_content_by_user_cap' );
А вот этот шорткод в нужное место:
Код:
[access capability="edit_posts"]

Эта часть контента видна пользователям, которые могут редактировать записи.

[/access]
Либо вот этот:
Код:
[access]

Это сообщение увидят все зарегистрированные пользователи.

[/access]

Собственно, помощь нужна в следующем: как изменить код, чтобы условия скрытия/показа работали для конкретных ролей пользователей, например Customer из woocommerce?
Как я понял, работа кода основана на "возможностях" (capability) пользователя, определенных системой для конкретного типа пользователя. Но найти эти "возможности" для типов пользователей woocomerce не смогу.
 
Сейчас работа основана не на "возможностях", а на правах. Если нужны роли, то функция true_content_by_user_cap должна быть полностью переписана. Маловероятно, что здесь будет кто-то делать заказную разработку. Лучше выбрать плагин из этих - Для просмотра ссылки Войди или Зарегистрируйся
 
Не хотелось бы ставить лишний плагин.
Скрытое содержимое доступно для зарегистрированных пользователей!

можно интегрировать в вашу функцию.
и еще функция extract является устаревшей и лучше не использовать в дальнейшем
 
можно интегрировать в вашу функцию.
и еще функция extract является устаревшей и лучше не использовать в дальнейшем
Спасибо за наводку!
Буду пробовать. Хотя, если честно, совсем далек от php кода. Может Вы сможете помочь? Естественно не безвозмездно.
 
Спасибо за наводку!
Буду пробовать. Хотя, если честно, совсем далек от php кода. Может Вы сможете помочь? Естественно не безвозмездно.

если брать за основу ваш код, то вот так можно изменить было.
добавил current_user_can( 'manage_options' ) так как без него контент будет показан только прописаным в шорткоде ролям.
 
если брать за основу ваш код, то вот так можно изменить было.
добавил current_user_can( 'manage_options' ) так как без него контент будет показан только прописаным в шорткоде ролям.
Спасибо з помощь! Будем внедрять)
 
Назад
Сверху