Скрыть цены и функционал оформления заказа в WooCommerce

11 мар. 2013 г., 22:46:10
Просмотры: 52.3K
Голосов: 19

Я понимаю, что этот вопрос может быть слишком общим, но мне нужно небольшое направление. У моего клиента есть магазин на WooCommerce с 30-40 товарами. По определенным причинам они больше не хотят продавать онлайн, но хотят сохранить страницы товаров, информацию и т.д. на своем сайте.

Есть ли способ с помощью хуков или других средств скрыть такие элементы, как цены, кнопку добавления в корзину и т.д. в WooCommerce? Или лучше просто отредактировать PHP файлы шаблонов?

1
Комментарии

Поддержка WooCommerce и других сторонних плагинов/тем выходит за рамки данного стека и не входит в его область. Вам следует обращаться через официальные каналы поддержки или в соответствующих группах и сообществах. Этот вопрос сохранен здесь по историческим причинам

Tom J Nowell Tom J Nowell
30 сент. 2021 г. 14:56:12
Все ответы на вопрос 3
3
23

К счастью, WooCommerce предоставляет множество хуков, вот код для удаления цен и кнопок:

remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart' );
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10 );

Если вам нужно удалить больше элементов, вы можете изучить файлы content-product.php и content-single-product.php.

Полагаю, вам может понадобиться скрыть/удалить не только цены и кнопки (например, страницы или функции), это руководство даст вам несколько подсказок

15 мар. 2013 г. 11:25:46
Комментарии

Правильно ли я понимаю, что эти хуки нужно вставлять в functions.php? Если да, то в каком именно разделе их нужно разместить? И если они сработают, то функциональность корзины больше не будет видна, за исключением некоторых стилей, верно?

James James
1 дек. 2013 г. 16:41:13

Да, вы можете добавить их в functions.php, и не важно, в каком месте внутри другой функции вы их разместите. Обычно самый безопасный вариант — добавить их в самый конец файла, главное не размещать их после последнего ?>. Это не удалит страницу корзины, но фактически уберет возможность добавления товаров в корзину. Если вам не нужна страница корзины вообще, то это относительно безопасный вариант.

Ewout Ewout
5 дек. 2013 г. 11:10:35

Это работает. Но есть странность. После применения этого кода изображения товаров перестали отображаться. На их месте пустое пространство, но при наведении курсора и клике правильное изображение появляется. Есть идеи, почему так происходит?

Brethlosze Brethlosze
2 авг. 2016 г. 20:08:06
2
13

Расширяя приведенный выше код (спасибо Ewout), следующий код уберет все цены и кнопки "Добавить в корзину" для всех товаров WooCommerce, а также предоставит объяснение, почему это сделано. Мне понадобился этот код для сайта, который предлагает продукты прямых продаж, и чтобы соответствовать их правилам, я не могу показывать цены для широкой публики.

Добавьте фильтр в файл functions.php вашей темы.

    add_filter('woocommerce_get_price_html','members_only_price');

    function members_only_price($price){

if(is_user_logged_in() ){
    return $price;
}

else {
    remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart' );
    remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );
    remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
    remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10 );
    return 'Только <a href="' .get_permalink(woocommerce_get_page_id('myaccount')). '">зарегистрированные пользователи</a> могут просматривать цены.';
      }

}
15 дек. 2013 г. 13:05:49
Комментарии

Это странно. После применения этого изображения товаров перестали отображаться. На их месте отображается пустое пространство, но при наведении курсора и клике изображение появляется. Есть идеи, почему так происходит?

Brethlosze Brethlosze
2 авг. 2016 г. 20:08:12

Этот код не работает в WooCommerce версии 3.2.1 :-)

Steve Steve
19 окт. 2017 г. 05:44:26
0
add_filter( 'woocommerce_is_purchasable', '__return_false' );
add_filter( 'woocommerce_get_price_html', '__return_empty_string' );

Это полностью предотвратит оформление заказа и скроет все цены путем:

  • Делает все товары недоступными для покупки (строка 1)
  • Очищает HTML с ценой (строка 2)
22 авг. 2017 г. 04:35:35