Comment créer un shortcode WooCommerce pour les produits récemment consultés
Publié: 2021-05-05Vous cherchez un moyen d'afficher les produits récemment consultés à l'aide d'un shortcode ? Dans cet article, je veux vous montrer comment créer un shortcode pour les produits WooCommerce récemment consultés. Par défaut, WooCommerce vous permet d'utiliser un widget pour afficher la liste des produits qu'un client a récemment consultés.
Cette solution intégrée est très efficace et nous pensons qu'elle deviendra bientôt un bloc Gutenberg.
Cependant, vous souhaiterez peut-être afficher les produits associés sur une nouvelle page. Cela signifie que vous devez créer un shortcode.
WooCommerce Shortcode des produits récemment consultés
Dans ce bref didacticiel, nous expliquerons comment vous pouvez créer un code court simple pour afficher les produits récemment consultés. Avant de poursuivre, vous devez noter que cette solution implique la gestion du code.
Si vous n'êtes pas familier avec la gestion du code, nous vous recommandons de contacter un développeur WordPress qualifié afin de ne pas gâcher votre site.
Vous devez également créer un thème enfant afin que vos modifications ne soient pas perdues lors d'une mise à jour.
Voyons comment vous pouvez y parvenir.
Étapes pour ajouter le shortcode des produits récemment consultés
Pour créer le shortcode, nous tirerons parti du shortcode [products] existant et lui "transmettrons" les identifiants de produit sans avoir à réinventer la roue.
Alternativement, vous pouvez créer un plugin qui enregistre un shortcode dans un thème. Nous utiliserons cette méthode car c'est la plus simple.
Vous devez créer un nouveau dossier avec le nom du plugin.
Si vous ne voyez aucun produit récent, c'est parce que vous devez toujours avoir un widget Produits récemment consultés actif. Le cookie "woocommerce_recently_viewed" est stocké uniquement lorsque le widget des produits récemment consultés est utilisé.
Les données les plus importantes dont nous avons besoin sont stockées dans un cookie appelé $_COOKIE['woocommerce_recently_viewed'].
Vous pouvez inclure votre propre code pour tracer/créer des cookies si vous le souhaitez :
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 );
Voici le code complet du plugin :
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");
Après avoir ajouté le code, ajoutez les [woocommerce_recently_viewed_products per_page=”5″] sur n'importe quelle page.
Voici le résultat :
Conclusion
Dans ce bref tutoriel, nous avons expliqué comment vous pouvez afficher les produits récemment consultés à l'aide d'un shortcode.
Vous devez être prudent lorsque vous modifiez le fichier functions.php car si vous faites une erreur, il affichera une erreur critique.
Articles similaires
- Plus de 100 trucs, astuces et extraits Ultimate WooCommerce Hide Guide
- Comment utiliser les shortcodes WordPress dans les pages ou les publications avec un exemple
- Comment créer la page de mon compte dans WooCommerce
- Comment créer un shortcode de déconnexion de connexion WooCommerce
- Comment importer des produits WooCommerce
- Comment configurer le prix du produit WooCommerce par kg
- Comment créer un produit par programmation WooCommerce
- Comment créer un produit secret WooCommerce
- Comment créer WooCommerce après la connexion Redirection vers la page d'accueil
- Comment créer un bouton WooCommerce Ajouter au panier par identifiant de produit
- Comment créer une commande par programmation WooCommerce
- Comment ajouter la redirection de la page de mon compte WooCommerce
- Comment exporter des produits dans WooCommerce
- Comment ajouter un SKU de produit dans WooCommerce
- Comment dupliquer un produit dans WooCommerce
- Comment utiliser do_shortcode dans WordPress (PHP)
- Comment créer une page de boutique personnalisée WooCommerce
- Comment obtenir les détails de la commande après le paiement dans WooCommerce
- Comment ajouter un prix à un attribut dans WooCommerce
- Comment configurer la livraison gratuite avec un minimum de dépenses dans WooCommerce