Jak utworzyć skrótowy kod ostatnio oglądanych produktów WooCommerce?
Opublikowany: 2021-05-05Szukasz sposobu na wyświetlenie ostatnio oglądanych produktów za pomocą shortcode? W tym poście chcę pokazać, jak stworzyć shortcode ostatnio oglądanych produktów WooCommerce. Domyślnie WooCommerce pozwala na użycie widżetu do wyświetlania listy produktów, które klient ostatnio oglądał.
To wbudowane rozwiązanie jest bardzo skuteczne i wierzymy, że wkrótce stanie się blokiem Gutenberga.
Możesz jednak chcieć wyświetlić powiązane produkty na nowej stronie. Oznacza to, że musisz utworzyć krótki kod.
WooCommerce Ostatnio oglądane produkty Shortcode
W tym krótkim samouczku pokażemy, jak stworzyć prosty shortcode do wyświetlania ostatnio oglądanych produktów. Zanim przejdziesz dalej, musisz pamiętać, że to rozwiązanie obejmuje obsługę kodu.
Jeśli nie znasz kodu obsługi, zalecamy skontaktowanie się z wykwalifikowanym programistą WordPress, aby nie zepsuć swojej witryny.
Powinieneś także utworzyć motyw potomny, aby Twoje zmiany nie zostały utracone podczas aktualizacji.
Zobaczmy, jak możesz to osiągnąć.
Kroki, aby dodać ostatnio oglądane produkty Shortcode
Aby stworzyć shortcode, skorzystamy z istniejącego shortcode [products] i „przekażemy” do niego identyfikatory produktów bez konieczności ponownego wymyślania koła.
Alternatywnie możesz utworzyć wtyczkę, która rejestruje krótki kod w motywie. Użyjemy tej metody, ponieważ jest najłatwiejsza.
Musisz utworzyć nowy folder z nazwą wtyczki.
Jeśli nie widzisz żadnych najnowszych produktów, oznacza to, że nadal musisz mieć aktywny widżet Ostatnio oglądane produkty. Plik cookie „woocommerce_recently_viewed” jest przechowywany tylko wtedy, gdy używany jest widżet ostatnio oglądanych produktów.
Najważniejsze dane, których potrzebujemy, są przechowywane w plikach cookie o nazwie $_COOKIE['woocommerce_recently_viewed'].
Możesz dołączyć własny kod do śledzenia/tworzenia plików cookie, jeśli chcesz:
function custom_track_product_view() { if ( ! is_singular( 'product' ) ) { return; } global $post; if ( empty( $_COOKIE['woocommerce_recently_viewed'] ) ) $viewed_products = array(); else $viewed_products = (array) explode( '|', $_COOKIE['woocommerce_recently_viewed'] ); if ( ! in_array( $post->ID, $viewed_products ) ) { $viewed_products[] = $post->ID; } if ( sizeof( $viewed_products ) > 15 ) { array_shift( $viewed_products ); } // Store for session only wc_setcookie( 'woocommerce_recently_viewed', implode( '|', $viewed_products ) ); } add_action( 'template_redirect', 'custom_track_product_view', 20 );
Oto pełny kod wtyczki:
function njengah_woocommerce_recently_viewed_products( $atts, $content = null ) { // Get shortcode parameters extract(shortcode_atts(array( "per_page" => '5' ), $atts)); // Get WooCommerce Global global $woocommerce; // Get recently viewed product cookies data $viewed_products = ! empty( $_COOKIE['woocommerce_recently_viewed'] ) ? (array) explode( '|', $_COOKIE['woocommerce_recently_viewed'] ) : array(); $viewed_products = array_filter( array_map( 'absint', $viewed_products ) ); // If no data, quit if ( empty( $viewed_products ) ) return __( 'You have not viewed any product yet!', 'rc_wc_rvp' ); // Create the object ob_start(); // Get products per page if( !isset( $per_page ) ? $number = 5 : $number = $per_page ) // Create query arguments array $query_args = array( 'posts_per_page' => $number, 'no_found_rows' => 1, 'post_status' => 'publish', 'post_type' => 'product', 'post__in' => $viewed_products, 'orderby' => 'rand' ); // Add meta_query to query args $query_args['meta_query'] = array(); // Check products stock status $query_args['meta_query'][] = $woocommerce->query->stock_status_meta_query(); // Create a new query $r = new WP_Query($query_args); // If query return results if ( $r->have_posts() ) { $content = '<ul class="rc_wc_rvp_product_list_widget">'; // Start the loop while ( $r->have_posts()) { $r->the_post(); global $product; $content .= '<li> <a href="' . get_permalink() . '"> ' . ( has_post_thumbnail() ? get_the_post_thumbnail( $r->post->ID, 'shop_thumbnail' ) : woocommerce_placeholder_img( 'shop_thumbnail' ) ) . ' ' . get_the_title() . ' </a> ' . $product->get_price_html() . ' </li>'; } $content .= '</ul>'; } // Get clean object $content .= ob_get_clean(); // Return whole content return $content; } // Register the shortcode add_shortcode("woocommerce_recently_viewed_products", "njengah_woocommerce_recently_viewed_products");
Po dodaniu kodu dodaj [woocommerce_recently_viewed_products per_page=”5″] na dowolnej stronie.
Oto wynik:
Wniosek
W tym krótkim samouczku udostępniliśmy, w jaki sposób możesz wyświetlać ostatnio oglądane produkty za pomocą krótkiego kodu.
Powinieneś być ostrożny podczas edycji pliku functions.php, ponieważ jeśli popełnisz błąd, wyświetli on błąd krytyczny.
Podobne artykuły
- Ponad 100 porad, sztuczek i fragmentów Kompletny przewodnik po ukryciu WooCommerce
- Jak używać skrótów WordPress na stronach lub postach z przykładem
- Jak utworzyć stronę mojego konta w WooCommerce?
- Jak utworzyć krótki kod logowania do logowania WooCommerce?
- Jak importować produkty WooCommerce
- Jak ustawić cenę produktu WooCommerce za kg?
- Jak programowo tworzyć produkt WooCommerce
- Jak stworzyć tajny produkt WooCommerce?
- Jak stworzyć WooCommerce po zalogowaniu Przekieruj na stronę główną?
- Jak utworzyć przycisk Dodaj do koszyka WooCommerce według identyfikatora produktu
- Jak programowo utworzyć zamówienie WooCommerce
- Jak dodać przekierowanie strony mojego konta WooCommerce?
- Jak eksportować produkty w WooCommerce
- Jak dodać kod SKU produktu w WooCommerce?
- Jak zduplikować produkt w WooCommerce
- Jak używać do_shortcode w WordPress (PHP)
- Jak stworzyć własną stronę sklepu WooCommerce?
- Jak uzyskać szczegóły zamówienia po złożeniu zamówienia w WooCommerce?
- Jak dodać cenę do atrybutu w WooCommerce?
- Jak skonfigurować bezpłatną wysyłkę z minimalnymi wydatkami w WooCommerce?