Ocultar funcionalidade de preços e checkout no woocommerce

17

Sei que essa pergunta pode ser muito ampla, mas estou procurando um pouco de direção. Meu cliente tem uma loja de woocommerce com 30 a 40 produtos. Por qualquer motivo, eles não desejam mais vender on-line, mas desejam reter as páginas, informações, etc. do produto em seu site.

Existe uma maneira, usando ganchos ou não, de ocultar coisas como preços, adicionar ao carrinho, etc. no woocommerce? Ou devo apenas editar os arquivos de modelo php?

milhas
fonte

Respostas:

23

felizmente, o woocommerce tem muitos ganchos, isso remove preços e botões:

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 );

você pode pesquisar content-product.phpe content-single-product.phpse precisar remover mais coisas.

Eu posso imaginar que existem mais do que apenas os preços / botões que você deseja ocultar / remover (como páginas / funções), este tutorial fornece alguns indicadores

Ewout
fonte
Estou certo ao pensar que esses ganchos precisam ser inseridos no functions.php? Em caso afirmativo, há uma seção específica em que preciso inseri-las? Se eles funcionarem, presumivelmente a funcionalidade do carrinho não será mais visível, exceto por alguns estilos, certo?
James
1
sim, você pode colocá-los em functions.php e não importa onde você os coloca em outra função. Geralmente, no final do arquivo, é o mais seguro, desde que você não os coloque depois do último ?>. Isso não remove a página do carrinho, mas remove a possibilidade de adicionar algo ao carrinho. Se você não gosta da página do carrinho em qualquer lugar, deve estar relativamente seguro.
Ewout
Funciona. Mas isso é estranho. Depois de aplicar isso, as imagens do produto pararam de aparecer. Ele mostra um espaço vazio para a localização deles, e quando passo o mouse sobre eles e clico neles, eles me mostram a imagem correta. Você tem uma idéia de por que isso está acontecendo?
Brethlosze 2/08/16
13

Estendendo o código acima (obrigado Ewout), o código a seguir livra-se de todos os preços e botões 'adicionar ao carrinho' em todos os produtos de woocommerce, além de fornecer uma explicação sobre o motivo. Eu precisava do código para um site que oferecesse produtos de venda direta e, para cumprir com suas regras, não posso mostrar preços ao público em geral.

Adicione o filtro ao arquivo functions.php do seu tema.

    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
fonte
Isto é estranho. Depois de aplicar isso, as imagens do produto pararam de aparecer. Ele mostra um espaço vazio para a localização deles, e quando passo o mouse sobre eles e clico neles, eles me mostram a imagem correta. Você tem uma idéia de por que isso está acontecendo?
Brethlosze 2/08/16
Este código não funciona no WooCommerce v 3.2.1:-)
Steve
1
add_filter( 'woocommerce_is_purchasable', '__return_false' );
add_filter( 'woocommerce_get_price_html', '__return_empty_string' );

Isso impedirá totalmente o checkout e ocultará todos os preços:

  • Tornar todos os produtos não compráveis ​​(linha 1)
  • Esvaziando o preço HTML (linha 2)
Nabil Kadimi
fonte