Page de boutique WooCommerce pour utiliser mon modèle personnalisé [fermé]

9

Avant de poser la question, je veux vous dire que j'ai déjà posé la question dans /programming/15025213/wordpress-woocommerce-template-file-overiding

J'utilise le plugin WooCommerce pour développer un site Web. Tout va bien avec WooCommerce. Selon mes besoins, j'ai configuré ma page d'accueil en tant que page de base de boutique à partir du tableau de bord WooCommerce pour faire de ma page d'accueil la page de boutique. Maintenant, mon exigence est de placer des images qui devraient être téléchargées du côté administrateur et d'afficher du texte sur les images. Pour cette fonctionnalité, j'ai recherché sur Google et certaines personnes ont suggéré d'utiliser des champs personnalisés avancés de WordPress . Je viens de l'installer.

Maintenant, j'ai vu que WooCommerce n'utilise pas mon thème personnalisé. Il utilise son propre thème personnalisé. Étant donné que je souhaite afficher des images et du texte à l'aide du plugin Advanced Custom Fields , j'ai vraiment besoin de mon propre modèle personnalisé pour utiliser les requêtes d'images et de texte. Ensuite , je cherchai à nouveau sur Google pour trouver une solution et je suis la suggestion de simplement faire une copie de ce thème page.phpdans woocommerce.phppuis il suffit de remplacer le code:

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

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

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

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

avec

<?php woocommerce_content(); ?>

Je l'ai fait, mais je ne reçois toujours pas mes champs personnalisés à partir des champs personnalisés avancés . Alors aidez-moi gentiment. Toutes suggestions et aide seront appréciables. Merci.

Mon code pour afficher les champs personnalisés avancés pour l'image et le texte est le suivant:

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

J'utilise le thème WordPress TwentyEleven.

Nouvel utilisateur
la source
Peut-être que la documentation WC a quelques indices.
brasofilo
@brasofilo J'ai cherché dans la documentation mais je n'y ai trouvé aucun indice ...
NewUser
Vérifiez si cela vous aide.
brasofilo
oui j'ai essayé mais ça se voit comme çaFatal error: Cannot redeclare show_template() (previously declared
NewUser
Il y avait une erreur avec le nom de la fonction, je l'ai juste corrigé.
brasofilo

Réponses:

5

En passant par votre question, je veux vous dire que woocommerce n'utilisera pas votre modèle personnalisé. Il utilisera son propre modèle. Comme vous voulez utiliser le plugin de champs personnalisés avancés wordpress, je veux vous dire que cette fonctionnalité ne fonctionne que sur la page et le post. Donc, comme woocommerce ne permettra pas d'utiliser votre propre modèle personnalisé, vous ne pouvez pas utiliser les fonctionnalités avancées des champs personnalisés.

Maintenant, faites quelque chose de différent. Créez simplement votre propre modèle personnalisé là où vous souhaitez montrer vos produits. Rendez- vous ensuite sur le site http://docs.woothemes.com/document/woocommerce-shortcodes/ Ici vous pouvez voir les shortcodes pour le woocommerce . Où vous pouvez facilement afficher presque tous les produits avec votre propre personnalisation. Utilisez maintenant ces codes courts pour afficher les produits. Ici, vous avez réalisé que woocommerce utilise votre propre modèle personnalisé. Maintenant que c'est votre propre modèle, vous pouvez facilement utiliser des champs personnalisés avancés avec cela. Est-ce clair? Si vous ne comprenez rien, répondez-moi. J'espère que cela vous aidera.

user159377
la source
11

Je ne suis pas sûr de bien comprendre votre problème, mais voici ma tentative de le reproduire.

Tout d'abord , considérez cette partie de la documentation WooCommerce :

Si vous souhaitez modifier l'un de ces modèles, copiez-le simplement dans un répertoire nommé dans votre thème /woocommerce, en conservant la même structure de fichier, par exemple, déplacez /templates/cart/cart.phpvers themename/woocommerce/cart/cart.php. Le fichier copié remplacera désormais le fichier de modèle par défaut de WooCommerce.

Deuxièmement , ce sont les étapes de réplication:

  • Utilisation de WP 3.5.1, TwentyEleven 1.5, WooCommerce 1.6.6 et AdvancedCustomFields 4.0.0
  • Définissez la page "Boutique" comme première page statique dans les paramètres de lecture ( /wp-admin/options-reading.php)
  • Définissez un groupe de champs ACF qui contient un champ d'image ( product_tab_banner), avec une valeur de retour comme «objet image» et à afficher dans le type de message «Produit»

Solution :

  • Créez le dossier suivant: /wp-content/twentyeleven/woocommerce/
  • Copiez le fichier: /wp-content/plugins/woocommerce/templates/content-product.php dans ce dossier nouvellement créé
  • Placez votre code dans cette copie 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; ?>

Voici la page du produit:

page produit
cliquez pour agrandir

Et voici le résultat dans le site:

résultat du site


Si vous souhaitez personnaliser la page "Boutique", copiez le fichier /wp-content/plugins/woocommerce/templates/archive-product.phpdans le dossier de votre thème /woocommerce/.

brasofilo
la source
-2

Veuillez essayer de remplacer le plugin que vous utilisez par les extensions WooCommerce officielles comme "Product Add-ons" ( http://www.woothemes.com/products/product-add-ons/ ).

Boîte
la source
avez-vous bien lu mes questions?
NewUser
1
Je fais. Cela peut prendre un certain temps pour que vous compreniez ma réponse.
Box