So erstellen Sie den WooCommerce Shortcode für zuletzt angesehene Produkte

Veröffentlicht: 2021-05-05

Shortcode für zuletzt angesehene Produkte von WooCommerce Suchen Sie nach einer Möglichkeit, kürzlich angesehene Produkte mithilfe eines Shortcodes anzuzeigen? In diesem Beitrag möchte ich Ihnen zeigen, wie Sie den WooCommerce Shortcode für kürzlich angesehene Produkte erstellen. Standardmäßig erlaubt Ihnen WooCommerce, ein Widget zu verwenden, um die Liste der Produkte anzuzeigen, die ein Kunde kürzlich angesehen hat.

Diese integrierte Lösung ist sehr effektiv und wir glauben, dass sie bald zu einem Gutenberg-Block werden wird.

Möglicherweise möchten Sie jedoch verwandte Produkte auf einer neuen Seite anzeigen. Das bedeutet, dass Sie einen Shortcode erstellen müssen.

Shortcode für zuletzt angesehene Produkte von WooCommerce

In diesem kurzen Tutorial zeigen wir Ihnen, wie Sie einen einfachen Shortcode zum Anzeigen kürzlich angesehener Produkte erstellen können. Bevor Sie fortfahren, müssen Sie beachten, dass diese Lösung die Handhabung von Code beinhaltet.

Wenn Sie mit dem Umgang mit Code nicht vertraut sind, empfehlen wir Ihnen, sich an einen qualifizierten WordPress-Entwickler zu wenden, damit Sie Ihre Website nicht durcheinanderbringen.

Damit deine Änderungen bei einem Update nicht verloren gehen, solltest du auch ein Child-Theme anlegen.

Lassen Sie uns sehen, wie Sie dies erreichen können.

Schritte zum Hinzufügen eines Shortcodes für kürzlich angesehene Produkte

Um den Shortcode zu erstellen, nutzen wir den bestehenden [products] Shortcode und „geben“ Produkt-IDs an ihn weiter, ohne das Rad neu erfinden zu müssen.

Alternativ können Sie ein Plugin erstellen, das einen Shortcode in einem Thema registriert. Wir werden diese Methode verwenden, da sie die einfachste ist.

Sie müssen einen neuen Ordner mit dem Namen des Plugins erstellen.

Wenn Sie keine zuletzt angesehenen Produkte sehen, müssen Sie noch ein Widget für kürzlich angesehene Produkte aktiv haben. Das Cookie „woocommerce_recently_viewed“ wird nur gespeichert, wenn das Widget „Zuletzt angesehene Produkte“ verwendet wird.

Die wichtigsten Daten, die wir benötigen, werden in einem Cookie namens $_COOKIE['woocommerce_recently_viewed'] gespeichert.

Sie können bei Bedarf Ihren eigenen Code zum Verfolgen/Erstellen von Cookies einfügen:

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

Hier ist der vollständige Code für das 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");

Fügen Sie nach dem Hinzufügen des Codes die [woocommerce_recently_viewed_products per_page=“5″] auf einer beliebigen Seite hinzu.

Das ist das Ergebnis: Ergebnis

Fazit

In diesem kurzen Tutorial haben wir geteilt, wie Sie kürzlich angesehene Produkte mit einem Shortcode anzeigen können.

Sie sollten beim Bearbeiten der Datei functions.php vorsichtig sein, denn wenn Sie einen Fehler machen, wird ein kritischer Fehler angezeigt.

Ähnliche Artikel

  1. Über 100 Tipps, Tricks und Snippets Ultimativer WooCommerce-Hide-Guide
  2. So verwenden Sie WordPress-Shortcodes in Seiten oder Beiträgen mit Beispiel
  3. So richten Sie kostenlosen Versand mit minimalen Ausgaben in WooCommerce ein