Suporte » Plugins » WooCommerce Loja vitrine

  • Olá, No WooCommerce, tenho dois tipos de produtos diferentes. Na vitrine (loja), eles aparecem todos juntos. Como faço para mostrá-los separadamente.Ou seja, uma vitrine com um tipo de produto, e outra que mostre o outro tipo. Obrigado, desde já.

Visualizando 15 respostas - 1 até 15 (de um total de 19)
  • Moderador Mário Valney

    (@mariovalney)

    WordPress Cleric of Fire

    Olá, tudo bem?

    Você precisa alterar o seu tema. Mais precisamente o arquivo woocommerce/templates/archive-product.php ou algum outro.

    A alteração será criar dois Loops personalizados. Para isso, basta criar com a classe WP_Query:

    https://codex.wordpress.org/Class_Reference/WP_Query

    Entendendo os parâmetros dessa classe, você pode usar esse exemplo da WooCommerce:

    https://docs.woocommerce.com/document/sample-products-loop/

    Observação: não esqueça de fazer o backup antes e criar um tema filho para não perder as atualizações.

    Criador do tópico ceslad

    (@ceslad)

    Olá, @mariovalney,estou bem, obrigado. Em relação ao código de (sample-products-loop) que você passou, eu colocaria em que parte do do (archive-product.php)? Eu quero expor uma vitrine para livros e uma vitrine para vinil. Como te disse, atualmente esses dois produtos estão expostos numa mesma vitrine todos juntos. Seriam duas páginas então?
    Desde já agradeço.

    Moderador Mário Valney

    (@mariovalney)

    WordPress Cleric of Fire

    Bem @ceslad, você vai precisar achar a parte do código que cria a vitrine e então trocar pelo Loop personalizado para a primeira vitrine.

    Depois que isso estiver OK, você vai procurar todo o código que forma a vitrine (tanto o Loop quanto o HTML/PHP) e duplicar para mostrar a segunda vitrine.

    Tudo dentro de uma página só, afinal você quer duas vitrines na mesma página inicial, ne? Se fossem duas páginas, já temos a listagem por categoria.

    Abraços

    Criador do tópico ceslad

    (@ceslad)

    Isso mesmo, @mariovalney. Duas vitrines numa mesma página, mostrando os livros e também os discos, porém com eles separados. Envio-lhe o código do meu archive-product.php, pois gostaria que você me indicasse,por favor, qual é a parte que devo substituir por aquele loop (sample-products-loop). Obrigado.

    https://pastebin.com/hfq84zV5

    • Esta resposta foi modificada 6 anos, 9 meses atrás por Mário Valney. Razão: Código
    Moderador Mário Valney

    (@mariovalney)

    WordPress Cleric of Fire

    @ceslad você tentou procurar?

    Estou perguntando isso, porque se tivesse lido sobre a WP_Query ou tivesse dado uma olhada no código, veria que no código que mandou tem um if ( have_posts() ) : que se parece bastante com o código do Loop que te mandei, então mesmo que não saiba nada de WordPress, dá pra chutar que seria ali.

    Mas então precisamos confirmar.
    Faça assim: pegue da linha do começo do loop (a com o IF, que deve ser a 56 no pastebin acima) até o endif que é o seu final (linha 110) e apague. Aí coloque qualquer coisa como “Olá, tudo bem?”.

    Salve e recarregue a página. Se a vitrine principal sumiu é porque é esse código aí mesmo. Se não, basta continuar procurando.

    Abraços

    Criador do tópico ceslad

    (@ceslad)

    Olá, @mariovalney, quero agradecer pela sua atenção. Bom, eu cheguei ver, sim. É que havia algumas coisas diferentes, então fiquei receoso mexer e desfigurar tudo. Mas estou procurando aprender, sou principiante. Bom, o fato é que consegui duplicar, mas o item que ordena os produtos por mais novos, menores preços, etc, sumiu. O número de paginação para ir para a próxima página também.
    E para finalizar, ao duplicar o código, é claro que duplicou também os produtos. Agora não sei como deixar só os discos em um código, e os livros em outro código.

    • Esta resposta foi modificada 6 anos, 9 meses atrás por ceslad.
    Moderador Mário Valney

    (@mariovalney)

    WordPress Cleric of Fire

    Pois não tenha medo de mexer: faça sempre backup que na hora que der errado é só voltar. Essa é a melhor forma de aprender.

    Agora sobre seu problema, vamos por partes: a primeira coisa a fazer é alterar a query de cada vitrine. Para isso vamos voltar no código de exemplo:
    https://docs.woocommerce.com/document/sample-products-loop/

    Note que nele temos a WP_Query e ela recebe parâmetros:

    $args = array(
        'post_type' => 'product',
        'posts_per_page' => 12
    );
    $loop = new WP_Query( $args );

    post_type é o tipo de post e como estamos fazendo um Loop dos produtos do WooCommerce você deve mantê-lo. O outro é a quantidade de posts por página, que no exemplo é 12 (e você pode remover, por enquanto).

    Agora o que você deve fazer?

    O primeiro passo é decidir como vai ser seu Loop. Pelo que entendi, você quer separar duas categorias de produtos, então vai usar os parâmetros de categoria:

    https://codex.wordpress.org/Class_Reference/WP_Query#Category_Parameters

    Agora você adiciona na WP_Query e vê se deu certo.

    Quando fechar a questão de mostrar os produtos que quer mostrar, passamos pra parte da paginação.

    Abraços

    Criador do tópico ceslad

    (@ceslad)

    Olá, @mariovalney. Bom, existem quatro parâmetros de categorias. Eu optei pelo cat (int) – use category id.Veja como eu o enseri no código WP_Query: https://pastebin.com/Kd8vX18R
    Só que, ao colocá-lo, a página de produtos some. Provavelmente, exista um parâmetro de categoria mais indicado. Qual você indicaria entre os quatro parâmetros?
    O que você acha do parâmetro category_name? Ele usa o slug (nome da categoria (vinil ou livro), ao invés do id.
    Até, obrigado.

    • Esta resposta foi modificada 6 anos, 9 meses atrás por ceslad.
    • Esta resposta foi modificada 6 anos, 9 meses atrás por ceslad.
    Moderador Mário Valney

    (@mariovalney)

    WordPress Cleric of Fire

    Qualquer um serve, mas indicaria o que usa o slug mesmo, pois aí mesmo que exclua e crie a categoria novamente não vai dar problema (pois iria gerar um novo ID, mas o slug seria o mesmo).

    Sobre o seu código, só pode haver uma array de argumentos. Você está sobrescrevendo a array na hora que adiciona o parâmetro da categoria.
    Deve ser assim:

    $args = array(
        'post_type' => 'product',      
        'param1'    => 'value 1',
        'param2'    => 'value 2',
        'param3'    => 'value 3',
        'param4'    => 'value 4',
        'param5'    => 'value 5',
        'param6'    => 'value 6',
    );

    Abraços

    Criador do tópico ceslad

    (@ceslad)

    Olá, @mariovalney, fiz as duas query, em sequência. Uma para “vinil” e outra para “livros”:
    https://pastebin.com/aSgjdQpK

    Atualmente, uso na extensão da minha URL a palavra “SEBO” para o nome da vitrine (loja), no WooCommerce. Terei que mudar esse nome? Esses “param value” dizem respeito a quê? (Qual seria função deles?).

    Agradeço, até mais.

    • Esta resposta foi modificada 6 anos, 9 meses atrás por Mário Valney.
    Moderador Mário Valney

    (@mariovalney)

    WordPress Cleric of Fire

    Olá.

    Esses “param value” dizem respeito a quê? (Qual seria função deles?).

    Eram apenas exemplos. Acho que seria interessante dar uma olhada no básico de PHP, pois é a linguagem que usamos aqui.

    Atualmente, uso na extensão da minha URL a palavra “SEBO” para o nome da vitrine (loja), no WooCommerce.

    Não vejo problemas. O que estamos fazendo é alterando a vitrine da loja principal, o resto se mantem.

    Uma para “vinil” e outra para “livros”:

    Sobre seu código, retire os param/value, pois eram apenas de exemplo.
    No mais acho que está OK. Deu certo a listagem?

    Abraços

    Criador do tópico ceslad

    (@ceslad)

    Oi, @mariovalney, retirei os ‘param;value’. e coloquei a category_name, como segue no exemplo: https://pastebin.com/wWnY9VKW
    Coloquei no archive-product.php, do Woocommerce. Salvei, mas ao atualizei a página do site, não deu certo. Não apareceu nada.

    Moderador Mário Valney

    (@mariovalney)

    WordPress Cleric of Fire

    Bem, não deveria “aparecer nada”.

    Ativa o DEBUG por favor, vai no wp-config.php e procura por WP_DEBUG e coloca true: define( 'WP_DEBUG', true );

    (se já tiver “false” troca para “true”).

    Assim deve aparecer algo escrito, se tiver erro.

    Abraços

    Criador do tópico ceslad

    (@ceslad)

    @mariovalney,troquei o false pelo true. Aparecem duas mensagens assim:
    No products found
    No products found

    Criador do tópico ceslad

    (@ceslad)

    Observo também que com o ‘false’ definido no WP_DEBUG também aparece
    No products found
    No products found

Visualizando 15 respostas - 1 até 15 (de um total de 19)
  • O tópico ‘WooCommerce Loja vitrine’ está fechado para novas respostas.