Come creare uno shortcode per i prodotti visualizzati di recente WooCommerce
Pubblicato: 2021-05-05Stai cercando un modo per visualizzare i prodotti visualizzati di recente utilizzando uno shortcode? In questo post voglio mostrarti come creare lo shortcode dei prodotti WooCommerce visti di recente. Per impostazione predefinita, WooCommerce ti consente di utilizzare un widget per visualizzare l'elenco dei prodotti che un cliente ha visualizzato di recente.
Questa soluzione integrata è molto efficace e riteniamo che presto diventerà un blocco Gutenberg.
Tuttavia, potresti voler visualizzare i prodotti correlati su una nuova pagina. Ciò significa che è necessario creare uno shortcode.
Shortcode dei prodotti visualizzati di recente di WooCommerce
In questo breve tutorial, condivideremo come creare un semplice shortcode per visualizzare i prodotti visualizzati di recente. Prima di procedere, è necessario notare che questa soluzione comporta la gestione del codice.
Se non hai familiarità con la gestione del codice, ti consigliamo di contattare uno sviluppatore WordPress qualificato in modo da non rovinare il tuo sito.
Dovresti anche creare un tema figlio in modo che le modifiche non vadano perse durante un aggiornamento.
Vediamo come puoi raggiungere questo obiettivo.
Passaggi per aggiungere lo shortcode dei prodotti visualizzati di recente
Per creare lo shortcode, sfrutteremo lo shortcode [prodotti] esistente e "passeremo" gli ID prodotto ad esso senza la necessità di reinventare la ruota.
In alternativa, puoi creare un plug-in che registra uno shortcode in un tema. Useremo questo metodo, poiché è il più semplice.
Devi creare una nuova cartella con il nome del plugin.
Se non vedi prodotti recenti è perché devi ancora avere un widget Prodotti visti di recente attivo. Il cookie "woocommerce_recently_viewed" viene memorizzato solo quando è in uso il widget dei prodotti visualizzati di recente.
I dati più importanti di cui abbiamo bisogno sono memorizzati in un cookie chiamato $_COOKIE['woocommerce_recently_viewed'].
Se lo desideri, puoi includere il tuo codice per tracciare/creare cookie:
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 );
Ecco il codice completo del 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");
Dopo aver aggiunto il codice, aggiungi [woocommerce_recently_viewed_products per_page=”5″] su qualsiasi pagina.
Questo è il risultato:
Conclusione
In questo breve tutorial, abbiamo condiviso come visualizzare i prodotti visualizzati di recente utilizzando uno shortcode.
Dovresti fare attenzione quando modifichi il file functions.php perché se commetti un errore, verrà visualizzato un errore critico.
Articoli simili
- Oltre 100 suggerimenti, trucchi e frammenti Guida definitiva per nascondere WooCommerce
- Come utilizzare gli shortcode di WordPress nelle pagine o nei post con l'esempio
- Come creare la pagina del mio account in WooCommerce
- Come creare uno shortcode di logout per l'accesso a WooCommerce
- Come importare prodotti WooCommerce
- Come impostare il prezzo del prodotto WooCommerce per kg
- Come creare prodotti in modo programmatico WooCommerce
- Come creare un prodotto segreto WooCommerce
- Come creare WooCommerce dopo l'accesso Reindirizzamento alla home page
- Come creare il pulsante Aggiungi al carrello WooCommerce per ID prodotto
- Come creare ordini in modo programmatico WooCommerce
- Come aggiungere il reindirizzamento della pagina del mio account WooCommerce
- Come esportare prodotti in WooCommerce
- Come aggiungere lo SKU del prodotto in WooCommerce
- Come duplicare un prodotto in WooCommerce
- Come usare do_shortcode in WordPress (PHP)
- Come creare una pagina negozio personalizzata WooCommerce
- Come ottenere i dettagli dell'ordine dopo il checkout in WooCommerce
- Come aggiungere il prezzo all'attributo in WooCommerce
- Come impostare la spedizione gratuita con una spesa minima in WooCommerce