WooCommerce, jak wyświetlać nowe produkty na karcie produktu
Jest jeszcze jedno zadanie promowania sklepu internetowego na WooCommerce przydatne dla Twoich klientów. Bardzo często otrzymuję zamówienia na wyjście nowych produktów wewnątrz karty produktu obok podobnych produktów. Myślę, że to powszechny problem, nie tylko u mnie., ale w standardowych motywach dla WooCommerce nie jest to zapewnione. Dlatego dziś postanowiłam lekko uchylić rąbka tajemnicy i opisać proces tworzenia bloku z nowościami w karcie produktu..
Być może zainteresuje Cię również mój poprzedni artykuł z serii samouczków WooCommerce. “WooCommerce jak wyświetlić produkt aukcyjny z rabatem na karcie produktu“.
Podobnie jak w poprzedniej lekcji, aby rozwinąć ten blok, weźmiemy istniejący blok z wynikami podobnych artykułów. Zrobimy wszystko po kolei.
- Znalezienie pliku szablonu dla karty produktu, zwykle znajduje się w folderze /wp-content/themes/{nazwa twojego motywu}/woocommerce/content-single-product.php.
- Na dole znajdziesz połączenie pliku podobnych produktów, wygląda to tak:
1<?php if(etheme_get_option('show_related')) woocommerce_output_related_products(); ?>
1<?php require_once( trailingslashit( get_template_directory() ). 'woocommerce/single-product/product-new.php' ); ?> - Na razie, kiedy ustalamy ścieżkę do podłączenia pliku, musisz utworzyć plik. Utwórz plik wzdłuż ścieżki /wp-content/themes/{nazwa twojego motywu}/woocommerce/single-product/product-new.php
- W utworzonym pliku product-new.php skopiuj zawartość pliku related.php, który znajduje się wzdłuż ścieżki /wp-content/themes/{nazwa twojego motywu}/woocommerce/single-product/related.php.
- Sprawdź jak prezentują się produkty na karcie produktu. Jeśli zrobione dobrze, wtedy będziesz miał 2 blok podobnych produktów.
- W pliku product-new.php zmień nazwę bloku na “Nowości w sklepie internetowym”.
- Następnie, aby wyświetlić nowe produkty, będziemy musieli zmienić tablicę z parametrami dla funkcji apply_filters( „woocommerce_related_products_args”, szyk( … ).
- Poniżej podam przykład jak to zrobiłem.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
<?php /** * Related Products * * @author WooThemes * @package WooCommerce/Templates * @version 3.0.0 */ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly global $product, $woocommerce_loop; $posts_per_page = 8; // updated for woocommerce v3.0 $related = array_map( 'absint', array_values( wc_get_related_products( $product->get_id(), $posts_per_page ) ) ); if ( sizeof( $related ) == 0 ) return; echo '<h2 class="products-title"><span>Новинки в интернет магазине</span></h2>'; $args = apply_filters( 'woocommerce_related_products_args', array( 'post_type' => 'product', 'ignore_sticky_posts' => 1, 'no_found_rows' => 1, 'posts_per_page' => $posts_per_page, 'orderby' => array('meta_value' => 'ASC', 'date' => 'DESC'), //'post__in' => $related, 'post__not_in' => array( $product->id ) ) ); $slider_args = array( //'title' => esc_html__( 'Related Products', 'xstore' ) ); etheme_create_slider( $args, $slider_args ); wp_reset_postdata(); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
$args = apply_filters( 'woocommerce_related_products_args', array( 'post_type' => 'product', 'ignore_sticky_posts' => 1, 'no_found_rows' => 1, 'posts_per_page' => $posts_per_page, 'orderby' => array('meta_value' => 'ASC', 'date' => 'DESC'), //'post__in' => $related, 'post__not_in' => array( $product->id ), 'tax_query' => array( 'relation' => 'OR', array( 'taxonomy' => 'product_cat', 'field' => 'id', 'terms' => array($term_cat_id) ) ) ) ); |
Ten kod aukcji został przetestowany z WooCommerc 3.0, w mniejszej lub starszej wersji kod może się nieznacznie zmienić.
/*
- Podstawowy kurs projektowania stron internetowych;
- Układ stron;
- Ogólny kurs CMS WordPress oraz kontynuacja kursu dotyczącego tworzenia szablonów;
- Tworzenie stron internetowych w PHP.