Página de loja do WooCommerce para usar meu modelo personalizado [fechado]

9

Antes de fazer a pergunta, quero lhe dizer que já fiz a pergunta em /programming/15025213/wordpress-woocommerce-template-file-overiding

Estou usando o plugin WooCommerce para desenvolver um site. Está tudo bem com o WooCommerce. Conforme minha exigência, configurei minha página inicial como uma página base da loja no painel do WooCommerce para tornar minha página inicial a página da loja. Agora, meu requisito é colocar algumas imagens que devem ser carregadas do lado do administrador e mostrar algum texto sobre as imagens. Para esse recurso, pesquisei no Google e algumas pessoas sugeriram o uso de campos personalizados avançados do WordPress . Acabei de instalar.

Agora vi que o WooCommerce não está usando meu tema personalizado. Ele está usando seu próprio tema personalizado. Como quero mostrar imagens e texto usando o plug-in Advanced Custom Fields , realmente preciso do meu próprio modelo personalizado para usar as consultas para imagens e texto. Então eu novamente procurou sobre o Google para uma solução e eu tenho a sugestão para fazer apenas uma cópia do tema de page.phpem woocommerce.phpe, em seguida, basta substituir o código:

     <?php while ( have_posts() ) : the_post(); ?>

      <?php get_template_part( 'content', 'page' ); ?>

      <?php comments_template( '', true ); ?>

    <?php endwhile; // end of the loop. ?>

com

<?php woocommerce_content(); ?>

Fiz isso, mas ainda não estou recebendo meus campos personalizados dos Campos personalizados avançados . Tão gentilmente me ajude. Todas as sugestões e ajuda serão apreciadas. Obrigado.

Meu código para mostrar os campos personalizados avançados para imagem e texto é assim:

<?php $product_tab_banner = get_field('product_tab_banner');
    if($product_tab_banner): ?>
   <?php var_dump($product_tab_banner); ?>
    <div class="nt-highlighted-products">
    <img src="<?php echo $product_tab_banner['url']; ?>" alt="<?php echo $product_tab_banner['alt']; ?>"  width="<?php echo $product_tab_banner['sizes']['featured_product-width'];?>" height="<?php echo $product_tab_banner['sizes']['featured_product-height'];?>" title="<?php echo $product_tab_banner['title']; ?>" />
    </div>
  <?php endif; ?>

Estou usando o tema WordPress TwentyEleven.

Novo usuário
fonte
Talvez a documentação do WC tenha algumas dicas.
Brasofilo 23/02
@brasofilo Eu procurei na documentação, mas não tenho nenhuma pista ...
NewUser
Verifique se isso ajuda.
Brasofilo 23/02
Sim, eu tentei isso, mas está aparecendo assimFatal error: Cannot redeclare show_template() (previously declared
NewUser 23/02
Houve um erro no nome da função, apenas o corrigi.
Brasofilo 23/02

Respostas:

5

Ao fazer sua pergunta, quero dizer que o woocommerce não usará seu modelo personalizado. Ele usará seu próprio modelo. Como você deseja usar o plugin avançado de campos personalizados do wordpress , quero dizer a você que esse recurso só funciona na página e na postagem. Portanto, como o woocommerce não permitirá usar seu próprio modelo personalizado, você não poderá usar os recursos avançados dos campos personalizados.

Agora basta fazer algo diferente. Basta criar seu próprio modelo personalizado onde você deseja mostrar seus produtos. Depois, basta ir ao site http://docs.woothemes.com/document/woocommerce-shortcodes/ Aqui você pode ver os códigos de acesso do woocommerce . Onde você pode exibir facilmente quase todos os produtos com sua própria personalização. Agora use esses códigos de acesso para mostrar os produtos. Aqui você conseguiu que o woocommerce está usando seu próprio modelo personalizado. Agora, como é seu próprio modelo, você pode facilmente usar campos personalizados avançados com isso. Está claro? Se alguma coisa você não entender, então me responda. Espero que isso ajude você.

user159377
fonte
11

Não tenho certeza se entendi o problema corretamente, mas aqui está minha tentativa de replicá-lo.

Primeiro , considere esta parte da documentação do WooCommerce :

Se você deseja editar um desses modelos, basta copiá-lo para um diretório dentro do seu tema /woocommerce, mantendo a mesma estrutura de arquivo, por exemplo, vá /templates/cart/cart.phppara themename/woocommerce/cart/cart.php. O arquivo copiado agora substituirá o arquivo de modelo padrão do WooCommerce.

Segundo , estas são as etapas de replicação:

  • Usando o WP 3.5.1, TwentyEleven 1.5, WooCommerce 1.6.6 e AdvancedCustomFields 4.0.0
  • Defina a página "Loja" como a primeira página estática em Configurações de leitura ( /wp-admin/options-reading.php)
  • Defina um grupo de campos do ACF que contenha um campo de imagem ( product_tab_banner), com Valor de retorno como "Objeto de imagem" e seja mostrado no tipo de postagem "Produto"

Solução :

  • Crie a seguinte pasta: /wp-content/twentyeleven/woocommerce/
  • Copie o arquivo: /wp-content/plugins/woocommerce/templates/content-product.php para esta pasta recém-criada
  • Coloque seu código nesta cópia de content-product.php
$product_tab_banner = get_field('product_tab_banner');
if($product_tab_banner): ?>
    <div class="nt-highlighted-products">
    <img src="<?php echo $product_tab_banner['url']; ?>" 
        alt="<?php echo $product_tab_banner['alt']; ?>"  
        width="<?php echo $product_tab_banner['sizes']['featured_product-width'];?>" 
        height="<?php echo $product_tab_banner['sizes']['featured_product-height'];?>" 
        title="<?php echo $product_tab_banner['title']; ?>" />
    </div>
<?php endif; ?>

Aqui está a página do produto:

página do produto
clique para ampliar

E aqui o resultado no site:

resultado do site


Se você deseja personalizar a página "Comprar", copie o arquivo /wp-content/plugins/woocommerce/templates/archive-product.phpna /woocommerce/pasta do seu tema .

brasofilo
fonte
-2

Tente substituir o plug-in que você está usando pelas extensões oficiais do WooCommerce, como "Complementos do produto" ( http://www.woothemes.com/products/product-add-ons/ ).

Caixa
fonte
você leu minhas perguntas corretamente?
NewUser 01/03
11
Eu faço. Pode levar algum tempo para você entender minha resposta.
Caixa