Suporte » Temas » Mudar cores e logo de acordo com categoria de produtos

  • bom dia pessoal. Estou fazendo o site de uma loja de roupas que possuem roupas masculinas e femininas. O nome da loja é By Stok Homem e By Stok Mulher. Fiz uma página inicial que você seleciona qual das duas quer acessar (Homem ou Mulher). Criei essas divisões utilizando categoria de produtos do WooCommerce. Então o nível mais alto das minhas categorias é Homem e Mulher e ai segue Homem > Calça, Mulher > Blusas, etc.

    O que estou precisando é que ao acessar a loja Homem, seja exibido no topo o logo da loja Masculino e a cor predominante seja verde. Ao acessar a loja Mulher, o logo exibido seja da loja Feminina e a cor predominante seja lilás. Não estou conseguindo fazer isso. Estou utilizando Woocommerce e o tema é o Storefront. Alguém poderia me ajudar como posso fazer isso? de que forma?

    Agradeço o apoio.

    A página que eu preciso de ajuda: [fazer login para ver o link]

Visualizando 3 respostas - 1 até 3 (de um total de 3)
  • Olá @diegoguariz

    Eu recomendaria criar um tema filho (https://codex.wordpress.org/pt-br:Temas_Filhos), assim você pode customizar da maneira que desejar.

    Marcos boa noite.
    Obrigado pela ajuda, mas não consegui.
    Eu preciso pegar a categoria de produto vigente, e somente mudar a logo e a cor primária do site. Tem algum exemplo prática de como fazer isso?

    Agradeço a ajuda.

    Para pegar o nível mais alto da categoria atual, você pode fazer algo parecido com isso:

    <?php
    	function mn_get_top_level_category() {
    		// pega os objetos da consulta da página atual
    		$object = get_queried_object();
    
    		if ( $object && is_archive() ) {
    
    			// se for o nível superior, retorna ele mesmo
    			if ( $object->parent == 0 ) {
    				return $object->name;
    			} else {
    				$term_id = $object->term_id;
    			}
    
    		} else if( $object && is_single() ) {
    
    			$terms = get_the_terms( $object->ID, 'product_cat' );
    			if ( count( $terms ) ) {
    				// se for o nível superior, retorna ele mesmo
    				if ( $terms[0]->parent == 0 ) {
    					return $terms[0]->name;
    				} else {
    					$term_id = $terms[0]->term_id;
    				}
    			}
    
    		}
    
    		// pega o nível superior da categoria
    		$parent = get_ancestors( $term_id, 'product_cat' );
    		if ( count( $parent ) > 0 ) {
    			$parent = get_term( $parent[0] );
    			// retorna o nome
    			return $parent->name;
    		}
    
    		return false;
    	}
    
    	var_dump( mn_get_top_level_category() );
    ?>
Visualizando 3 respostas - 1 até 3 (de um total de 3)
  • Você deve estar conectado para responder a este tópico.