Cum se creează un cod scurt pentru produsele vizualizate recent WooCommerce

Publicat: 2021-05-05

Cod scurt pentru produse vizualizate recent WooCommerce Căutați o modalitate de a afișa produsele vizualizate recent folosind un shortcode? În această postare vreau să vă arăt cum să creați codul scurt pentru produsele vizualizate recent WooCommerce. În mod implicit, WooCommerce vă permite să utilizați un widget pentru a afișa lista de produse pe care un client le-a vizualizat recent.

Această soluție încorporată este foarte eficientă și credem că va deveni un bloc Gutenberg în curând.

Cu toate acestea, poate doriți să afișați produse similare pe o pagină nouă. Aceasta înseamnă că trebuie să creați un shortcode.

Cod scurt pentru produse vizualizate recent WooCommerce

În acest scurt tutorial, vom împărtăși cum puteți crea un shortcode simplu pentru afișarea produselor vizualizate recent. Înainte de a continua, trebuie să rețineți că această soluție implică manipularea codului.

Dacă nu sunteți familiarizat cu gestionarea codului, vă recomandăm să contactați un dezvoltator WordPress calificat, astfel încât să nu vă deteriorați site-ul.

De asemenea, ar trebui să creați o temă copil, astfel încât modificările dvs. să nu se piardă în timpul unei actualizări.

Să vedem cum poți realiza asta.

Pași pentru a adăuga un cod scurt pentru produsele vizualizate recent

Pentru a crea codul scurt, vom profita de codul scurt [produselor] existent și îi vom „transmite” ID-uri de produs fără a fi nevoie să reinventăm roata.

Alternativ, puteți crea un plugin care înregistrează un shortcode într-o temă. Vom folosi această metodă, deoarece este cea mai ușoară.

Trebuie să creați un folder nou cu numele pluginului.

Dacă nu vedeți niciun produs recent, este pentru că trebuie să aveți în continuare activ un widget Produse vizualizate recent. Modulul cookie „woocommerce_recently_viewed” este stocat numai atunci când este utilizat widgetul pentru produse vizualizate recent.

Cele mai importante date de care avem nevoie sunt stocate într-un cookie numit $_COOKIE['woocommerce_recently_viewed'].

Puteți include propriul cod pentru a urmări/crea cookie-uri dacă doriți:

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 );

Iată codul complet pentru 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");

După ce adăugați codul, adăugați [woocommerce_recently_viewed_products per_page="5″] pe orice pagină.

Acesta este rezultatul: rezultat

Concluzie

În acest scurt tutorial, am împărtășit cum puteți afișa produsele vizualizate recent folosind un shortcode.

Ar trebui să fiți atenți când editați fișierul functions.php deoarece dacă faceți o greșeală, acesta va afișa o eroare critică.

Articole similare

  1. Peste 100 de sfaturi, trucuri și fragmente Ghid de ascundere final pentru WooCommerce
  2. Cum să utilizați codurile scurte WordPress în pagini sau postări cu exemplu
  3. Cum să configurați livrarea gratuită cu cheltuieli minime în WooCommerce