WooCommerce jak wyświetlić promocyjny produkt z rabatem na karcie produktu
Początkowo w WooCommerce strona produktu zawiera podobne produkty, ale wielu klientów kontaktuje się ze mną z prośbą o wycofanie towarów promocyjnych. Ponieważ temat jest dość popularny, postanowiłem napisać o nim mały poradnik dla tych, którzy już rozwijają sklepy internetowe na WooCommerce.
Tak wyświetlają się podobne produkty w sklepie, który poprawiłem “Komplety pościeli“. A dziś w osobnym bloku zrobię dla niego podsumowanie towarów promocyjnych, ale ten sam gatunek.
Twój motyw sklepu najprawdopodobniej zawiera folder WooCommerce który zawiera plik content-single-product.php i ma połączenie podobnych produktów. Dzieje się tak dzięki linii kodu:
1 |
<?php if(etheme_get_option('show_related')) woocommerce_output_related_products(); ?> |
Pod podobnymi będziemy wyświetlać produkty promocyjne., aby to zrobić, dołączymy nowy plik przy użyciu kodu.
1 |
<?php require_once( trailingslashit( get_template_directory() ). 'woocommerce/single-product/product-in-sale.php' ); ?> |
Umieść utworzony plik w folderze z szablonami -> woocommerce -> pojedynczy produkt -> produkt-w-sprzedazy.php. Aby plik wyglądał ładnie, wziąłem za podstawę plik z mojego motywu znajdującego się w folderze szablonów -> woocommerce -> pojedynczy produkt -> powiązany.php. Prawdopodobnie masz też ten plik., Jeśli nie, wtedy może 2 powoduje:
- Masz motyw potomny i musisz pobrać ten plik z motywu nadrzędnego. Możesz przeczytać więcej o organizacji motywów potomnych w moim artykule. “Motywy potomne w wordpress“.
- Twój motyw używa tego pliku z wtyczki WooCommerce i możesz znaleźć ten plik w samej wtyczce.
Musisz wyszukać plik w dokładnie takiej samej kolejności, jak wskazałem powyżej..
Jeśli plik zostanie znaleziony, następnie skopiuj dane z pliku related.php do utworzonego przez nas pliku product-in-sale.php. Następnie zmienimy ten kod.
Otwieranie pliku, product-in-sale.php stworzyliśmy i poprawiliśmy kod zgodnie z logiką, którego użyłem. Poniżej wymienię kiedy mój plik i napiszę, która część kodu odpowiada za poprawne wybranie kodu. (Uwaga wszystko oprócz funkcji próbkowania może się różnić).
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 40 41 42 43 44 45 46 47 48 49 50 51 |
<?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 = 5; // 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 ), 'meta_query' => array( array( 'key' => '_stock_status', 'value' => 'instock', 'compare' => '=', 'key' => '_sale_price', 'value' => 0, 'compare' => '>', 'type' => 'numeric' ) ) ) ); $slider_args = array( //'title' => esc_html__( 'Related Products', 'xstore' ) ); etheme_create_slider( $args, $slider_args ); wp_reset_postdata(); |
Wszystko, co musisz zmienić w swoim kodzie, aby wyświetlać produkty promocyjne, to górna część kodu, gdzie określić:
- Poprawna liczba elementów $posts_per_pag.
- Nagłówek bloku.
- określić sortowanie.
- Dodaj parametry do tablicy w celu filtrowania według niestandardowych pól _stock_statu i _sale_price.
Nie będę wchodził w zbyt wiele szczegółów., Zostawiam cię, żebyś sam to rozgryzł.. Jeśli nie rozumiesz, Czekam na pytania w komentarzach.
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 |
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly global $product, $woocommerce_loop; $posts_per_page = 5; // 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 ), 'meta_query' => array( array( 'key' => '_stock_status', 'value' => 'instock', 'compare' => '=', 'key' => '_sale_price', 'value' => 0, 'compare' => '>', 'type' => 'numeric' ) ) ) ); |
Ten kod do wyświetlania produktów promocyjnych został przetestowany z wersją WooCommerc 3.0, w mniejszej wersji może się nieznacznie zmienić.
W ten sposób produkt promocyjny jest wyświetlany w moim sklepie internetowym
W kolejnych lekcjach powiem Ci jak wyświetlić nowe pozycje w produkcie, śledź moje artykuły i poczekaj, jak tylko będę miał wolny czas.
/*
- 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.