Скрытие цены, если вы не авторизованы - PullRequest
1 голос
/ 26 марта 2020

У меня есть сайт участника, и мне нужны скрытые цены до тех пор, пока пользователь не вошел в систему. Как я могу настроить это так, чтобы цены были скрыты только для пользователей, которые НЕ вошли в систему?

.imagemapper-wrapper .my_product_price { display:none !important; }

В настоящее время цены скрыты от всех.

Ответы [ 4 ]

3 голосов
/ 27 марта 2020

CSS только опция:

    .imagemapper-wrapper .my_product_price {
      display: none;
    }

    .logged-in .imagemapper-wrapper .my_product_price {
      display: inherit;
    }
2 голосов
/ 26 марта 2020

Один из способов сделать это - с помощью крючка wp_head. В хуке вы можете повторить стиль, если пользователь вошел в систему с is_user_logged_in(). См. Ниже:

<?php

// functions.php

add_action('wp_head', function(){
    if (is_user_logged_in()) {
        echo '<style>.imagemapper-wrapper .my_product_price { display:none !important; }</style>';
    }
});

Другой вариант - использовать пользовательское css имя класса:

// functions.php
add_filter('body_class', function($classlist) {
    // add custom css class to body element if user is logged in
    if (is_user_logged_in()) {
        $classlist[] = 'user-is-loggedin';
    }

    return $classlist;
});

Тогда ваш css использует новое имя класса:

// your-stylesheet.css
.imagemapper-wrapper .my_product_price { display:none; }
.user-is-loggedin .imagemapper-wrapper .my_product_price { display:block !important; }
1 голос
/ 26 марта 2020

Если вы хотите использовать CSS вместо удаления цены, если пользователь не вошел в систему, используйте фильтр wp_head. Поместите это в свой файл functions.php:

  add_action('wp_head', static function() {
        if ( ! is_user_logged_in() ) {
         echo "<style>.imagemapper-wrapper .my_product_price { display:none !important;}</style>";
        }
   }

. Используется функция is_user_logged_in() для проверки того, вошел ли пользователь в систему. Если пользователь не вошел в систему, напечатайте этот стиль в своем заголовке.

0 голосов
/ 30 марта 2020

Так что я закончил тем, что объединил два ответа. Дисплей: наследовать не работал, поэтому я попытался заблокировать! важно вместо этого, и он работал как шарм. Спасибо всем за ваши советы и предложения. Теперь я могу скрыть как цену, так и добавить в корзину кнопки, когда пользователь НЕ вошел в систему, и показать их, когда они есть! Я был вне себя от волнения, когда наконец получил это на работу. Спасибо всем!

#mega_main_menu>.menu_holder>.menu_inner>ul>li.default_dropdown .mega_dropdown>li>.item_link {height:auto}

.logged-in .imagemapper-wrapper .my_product_price {
      display: block !important;
    }

.imagemapper-wrapper .my_product_price { display:none !important; }

.logged-in .imagemapper-wrapper .my_add_item { display:block !important; }

.imagemapper-wrapper .my_add_item { display:none !important; }

.logged-in .my_product_footer .my_view_item {width: 50%}

.my_product_footer .my_view_item {width: 100%}
...