Скрыть цены и оформить заказ в woocommerce

17

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

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

миль
источник

Ответы:

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если вам нужно удалить больше вещей.

Я могу представить, что есть нечто большее, чем просто цены / кнопки, которые вы хотите скрыть / удалить (например, страницы / функции), этот урок дает вам несколько указателей

Ewout
источник
Правильно ли я считаю, что эти хуки должны быть вставлены в functions.php? Если да, есть ли какой-то конкретный раздел, в который я должен их поместить? Если они работают, предположительно, функциональность корзины больше не будет видна, если не считать какого-либо стиля, верно?
Джеймс
1
да, вы можете поместить их в functions.php, и не имеет значения, куда вы помещаете их в другую функцию. Обычно весь путь в конце файла является самым безопасным, если вы не ставите их после последнего ?>. Это не удалит страницу корзины, но фактически исключит возможность добавления чего-либо в корзину. Если вам не нравится страница корзины, вы должны быть в относительной безопасности.
Ewout
Оно работает. Но это странно. После применения изображения продукта перестали появляться. Это показывает пустое место для их местоположения, и когда я наведу на них курсор мыши и щелкну по ним, они покажут мне правильное изображение. У вас есть идея, почему это происходит?
Brethlosze
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 'Only <a href="' .get_permalink(woocommerce_get_page_id('myaccount')). '">Registered Users</a> are able to view pricing.';
      }

}
Angela
источник
Это странно. После применения изображения продукта перестали появляться. Это показывает пустое место для их местоположения, и когда я наведу на них курсор мыши и щелкну по ним, они покажут мне правильное изображение. У вас есть идея, почему это происходит?
Brethlosze
Этот код не работает в WooCommerce v 3.2.1:-)
Стив
1
add_filter( 'woocommerce_is_purchasable', '__return_false' );
add_filter( 'woocommerce_get_price_html', '__return_empty_string' );

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

  • Сделать весь товар недоступным для покупки (строка 1)
  • HTML-код цены опустошения (строка 2)
Набиль Кадими
источник