Suporte » Plugins » Ocultar preço, botão de add e informações de carrinho Woocommerce

  • Resolvido Naldo Lima

    (@naldo-lima)


    Eu preciso ocultar em meu site as informações de preço, botões de comprar ou ver opções e as informações de carrinho no topo da página o qual essas informações serão mostradas somente para usuários logados. Tentei usar os plugins “YITH catalog mode” e “Login to see” mas ambos não ocultam essa parte do cabeçalho.

    O mais próximo que cheguei foi com o código abaixo, mas mesmo assim ele fica aparecendo os botões nas páginas de loop (home, categoria, shop, etc)

    function remove_add_cart(){
    
           global $product;
           if ( !is_user_logged_in() ) { 
    
           // removing the purchase buttons
           
           remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart' );
           remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );
           remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart');
           remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
           remove_action( 'woocommerce_simple_add_to_cart', 'woocommerce_simple_add_to_cart', 30 );
           remove_action( 'woocommerce_grouped_add_to_cart', 'woocommerce_grouped_add_to_cart', 30 );
           remove_action( 'woocommerce_variable_add_to_cart', 'woocommerce_variable_add_to_cart', 30 );
           remove_action( 'woocommerce_external_add_to_cart', 'woocommerce_external_add_to_cart');
           remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_external_add_to_cart', 30 );
           remove_action( 'woocommerce_single_variation', 'woocommerce_single_variation', 10 );
    	   remove_action( 'woocommerce_single_variation', 'woocommerce_single_variation_add_to_cart_button', 20 );
    
    	   remove_action( 'woocommerce_widget_shopping_cart_buttons', 'woocommerce_widget_shopping_cart_button_view_cart', 10 );
    	   remove_action( 'woocommerce_widget_shopping_cart_buttons', 'woocommerce_widget_shopping_cart_proceed_to_checkout', 20 );
    
           remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10 ); 
           // Remove price
           remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );
           remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price' );
           return WooCommerce::instance();
       }
    
    }
    add_action( 'wp', 'remove_add_cart' );
Visualizando 6 respostas - 1 até 6 (de um total de 6)
  • olá @naldo-lima,

    você seguiu as instruções documentadas pelo plugin YITH WooCommerce Catalog Mode? segue abaixo a página com as instruções:

    https://docs.yithemes.com/yith-woocommerce-catalog-mode/free-version-settings/use-free-version-plugin/

    se você ativar todas as opções do plugin, principalmente,
    – Enable YITH WooCommerce Catalog Mode – ou seja, passa o WooCommerce a operar no modo catálogo, onde mostra produtos, mas não vende;
    – Enable Catalog Mode Also for administrators – os administratores também vêem a parte do WooCommerce como catálogo, e não mais como shop
    – Disable shop – desativa tudo relacionado a vendas, como página do carrinho, página de Checkout e os botões de adicionar ao carrinho, ou seja, tudo o que você quer.

    eu tenho quase certeza que o problema é que você não marcou o “Enable Catalog Mode Also for administrators” e foi ver seu site no mesmo navegador que está conectado ao WordPress. ai você vê o site como administrador, não vendo assim as limitações que o plugin já ativou, como você queria.

    veja se resolve.

    abraços e boa sorte,

    Criador do tópico Naldo Lima

    (@naldo-lima)

    @ralden obrigado pela rápida resposta, tinha deixado o site com o plugin de manutenção ativado enquanto fazia esses testes só localmente, mas liberei agora para livre acesso. O plugin está instalado agora e ativei todas as opções caso quiser olhar.
    Lá realmente some todos os botões, porém o ícone de carrinho no header ainda fica aparecendo e os preços dos produtos.
    Sobre os preços consigo ocultar usando o função sobre o $price. Mas ainda fica a dúvida sobre o ícone de carrinho no topo do site.

    Obrigado pela ajuda.

    olá @naldo-lima,

    o carrinho é uma questão do tema, não do Woocommerce. por isso o plugin não pode fazer nada.

    dependendo de seu tema, ele oferece opções em Aparência > Personalizar. existe uma seção só para o Woocommerce aqui, além de várias opções para personalizar seu site. dependendo do desenvolvedor, ele deixou uma opção “show cart” (marcar para Mostrar carrinho) ou “hide cart” (marcar para ocultar carrinho) por aqui, mas como isso varia de tema para tema, você mesmo precisa pesquisar.

    estou desenvolvendo um Woocomerce para uma cliente que nessa área tem um “Shop Settings” e justamente uma opção de marcar com “Hide cart icon in header”. justamente o que você deseja 🙂

    se não encontrar uma opção para isso, dá pra resolver isso nesse mesmo local Aparência > Personalizar, indo em CSS Adicional. aqui você pode colocar um CSS personalizado no Seletor do carrinho com um “display: none”. para isso, ou você mesmo pode ver qual o Seletor do carrinho usando a ferramenta “Inspecionar Elemento” nos navegadores, clicando com o botão direito.

    se não conhece isso e quiser o código para resolver, basta fornecer um link da página que posso passar o código para inserir aqui, pois é bem fácil para quem conhece 🙂

    abraços e boa sorte,

    Criador do tópico Naldo Lima

    (@naldo-lima)

    Conheço sim, essa parte, estou usando o tema Flatsome até porque a intenção era agilizar o lançamento dessa minha loja virtual, infelizmente nele não há essa opção, mas estou olhando no código onde é criado esse link do carrinho. Por lá creio que consigo criar uma condição para usuários logados usando a função do WP is_user_logged_in().
    Outra solução que pensei é adicionar uma folha de estilo caso em caso de usuário não logado que puxe esse display:none

    Bem agora tenho caminhos mais fáceis para resolver. Muito obrigado!

    Criador do tópico Naldo Lima

    (@naldo-lima)

    Resolvi dessa forma:

    Instalei novamente o Plugin YITH WooCommerce Catalog Mode para sumir todos os botões de compra ou relacionados no site.
    Ícone do carrinho: encontrei no código onde ele cria o ícone de carrinho e usei uma condição if com a função is_user_logged_in(). Se logado, ele monta o ícone de carrinho e mostra no front. Também é possível resolver isso criando uma folha de estilo a parte que puxe um display:none no carrinho, e usar a mesma condição if( is_user_logged_in() ) para verificar se o usuário está logado.
    Preço: usei o codigo abaixo:

    add_filter('woocommerce_get_price_html','show_price_logged');
    function show_price_logged($price){
      if( is_user_logged_in() ){
        return $price;
      }
    }

    @ralden obrigado pela atenção e toda ajuda!

    olá @naldo-lima,

    que bom que foi solucionado. e agradeço em nome do fórum por compartilhar toda a sua solução.

    abraços e boa sorte com seu projeto,

Visualizando 6 respostas - 1 até 6 (de um total de 6)
  • O tópico ‘Ocultar preço, botão de add e informações de carrinho Woocommerce’ está fechado para novas respostas.