Strona sklepu WooCommerce, aby użyć mojego niestandardowego szablonu [zamknięte]

9

Przed zadaniem pytania chcę powiedzieć, że zadałem już pytanie w /programming/15025213/wordpress-woocommerce-template-file-overiding

Korzystam z wtyczki WooCommerce do opracowania strony internetowej. W WooCommerce wszystko jest w porządku. Zgodnie z moimi wymaganiami skonfigurowałem swoją stronę główną jako stronę bazową sklepu z pulpitu nawigacyjnego WooCommerce, aby moja strona główna była stroną sklepu. Teraz moim wymaganiem jest umieszczenie niektórych zdjęć, które powinny zostać przesłane ze strony administratora i pokazanie tekstu na zdjęciach. W przypadku tej funkcji szukałem w Google, a niektórzy sugerowali, że korzystam z WordPress Advanced Custom Fields . Właśnie to zainstalowałem.

Teraz zobaczyłem, że WooCommerce nie używa mojego niestandardowego motywu. Korzysta z własnego niestandardowego motywu. Ponieważ chcę wyświetlać obrazy i tekst za pomocą wtyczki Advanced Custom Fields , naprawdę potrzebuję własnego niestandardowego szablonu, aby korzystać z zapytań dotyczących obrazów i tekstu. Potem jeszcze raz przeszukiwane przez Google na rozwiązanie i mam sugestię, aby po prostu zrobić kopię motywu page.phpdo woocommerce.phpi po prostu zastąpić kod:

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

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

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

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

z

<?php woocommerce_content(); ?>

Zrobiłem to, ale nadal nie otrzymuję własnych pól od Advanced Custom Fields . Więc uprzejmie pomóż mi. Wszelkie sugestie i pomoc będą znaczące. Dzięki.

Mój kod pokazujący zaawansowane niestandardowe pola dla obrazu i tekstu wygląda następująco:

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

Korzystam z motywu WordPress TwentyEleven.

Nowy użytkownik
źródło
Może dokumentacja WC zawiera pewne wskazówki.
brasofilo
@brasofilo Przeszukałem dokumentację, ale nie
znalazłem
Sprawdź, czy to pomoże.
brasofilo
tak, próbowałem tego, ale wygląda to takFatal error: Cannot redeclare show_template() (previously declared
NewUser
Wystąpił błąd w nazwie funkcji, po prostu ją poprawiłem.
brasofilo

Odpowiedzi:

5

Przechodząc do pytania, chcę powiedzieć, że woocommerce nie będzie korzystało z twojego niestandardowego szablonu. Użyje własnego szablonu. Ponieważ chcesz korzystać z zaawansowanej wtyczki niestandardowych pól WordPress , chcę Ci powiedzieć, że ta funkcja działa tylko na stronie i poście. Ponieważ woocommerce nie zezwoli na korzystanie z własnego szablonu niestandardowego, nie można korzystać z zaawansowanych funkcji pól niestandardowych.

Teraz po prostu zrób coś innego. Po prostu stwórz własny szablon, w którym chcesz pokazać swoje produkty. Następnie przejdź do strony http://docs.woothemes.com/document/woocommerce-shortcodes/ Tutaj możesz zobaczyć skróty do woocommerce . Gdzie możesz łatwo pokazać prawie wszystkie produkty z własnymi dostosowaniami. Teraz użyj tych skrótów, aby wyświetlić produkty. Tutaj osiągnąłeś, że woocommerce używa własnego niestandardowego szablonu. Teraz, ponieważ jest to twój własny szablon, możesz z łatwością korzystać z zaawansowanych niestandardowych pól. Czy to jasne? Jeśli czegoś nie rozumiesz, odpowiedz mi. Mam nadzieję, że to ci pomoże.

użytkownik159377
źródło
11

Nie jestem pewien, czy dobrze rozumiem twój problem, ale oto moja próba jego odtworzenia.

Najpierw rozważ tę część dokumentacji WooCommerce :

Jeśli chcesz edytować jeden z tych szablonów, po prostu skopiuj go do katalogu w nazwie motywu /woocommerce, zachowując tę ​​samą strukturę pliku, np. Przejdź /templates/cart/cart.phpdo themename/woocommerce/cart/cart.php. Skopiowany plik zastąpi domyślny plik szablonu WooCommerce.

Po drugie , są to kroki replikacji:

  • Korzystanie z WP 3.5.1, TwentyEleven 1.5, WooCommerce 1.6.6 i AdvancedCustomFields 4.0.0
  • Ustaw stronę „Sklep” jako statyczną stronę główną w Ustawieniach czytania ( /wp-admin/options-reading.php)
  • Ustaw grupę pól ACF, która zawiera pole obrazu ( product_tab_banner), z wartością zwracaną jako „obiekt obrazu” i wyświetlana w typie postu „produkt”

Rozwiązanie :

  • Utwórz następujący folder: /wp-content/twentyeleven/woocommerce/
  • Skopiuj plik: /wp-content/plugins/woocommerce/templates/content-product.php do tego nowo utworzonego folderu
  • Umieść swój kod w tej kopii 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; ?>

Oto strona produktu:

strona produktu
kliknij, aby powiększyć

A tutaj wynik na stronie:

wynik witryny


Jeśli chcesz dostosować stronę „Sklep”, skopiuj plik /wp-content/plugins/woocommerce/templates/archive-product.phpdo /woocommerce/folderu motywu .

brasofilo
źródło
-2

Spróbuj zastąpić używaną wtyczkę oficjalnymi rozszerzeniami WooCommerce, takimi jak „Dodatki do produktu” ( http://www.woothemes.com/products/product-add-ons/ ).

Pudełko
źródło
czy poprawnie przeczytałeś moje pytania?
Nowy użytkownik
1
Ja robię. Jednak zrozumienie mojej odpowiedzi może trochę potrwać.
Ramka