WooCommerce Son Görüntülenen Ürünler Kısa Kodu Nasıl Oluşturulur

Yayınlanan: 2021-05-05

WooCommerce Son Görüntülenen Ürünler Kısa Kodu Kısa kod kullanarak en son görüntülenen ürünleri göstermenin bir yolunu mu arıyorsunuz? Bu yazıda size WooCommerce son görüntülenen ürünler kısa kodunu nasıl oluşturacağınızı göstermek istiyorum. Varsayılan olarak WooCommerce, bir müşterinin yakın zamanda görüntülediği ürünlerin listesini görüntülemek için bir widget kullanmanıza izin verir.

Bu yerleşik çözüm çok etkilidir ve yakında bir Gutenberg bloğu olacağına inanıyoruz.

Ancak, ilgili ürünleri yeni bir sayfada görüntülemek isteyebilirsiniz. Bu, bir kısa kod oluşturmanız gerektiği anlamına gelir.

WooCommerce Son Görüntülenen Ürünler Kısa Kodu

Bu kısa eğitimde, en son görüntülenen ürünleri görüntülemek için nasıl basit bir kısa kod oluşturabileceğinizi paylaşacağız. Devam etmeden önce, bu çözümün kod işlemeyi içerdiğini unutmamalısınız.

Kod işleme konusunda bilginiz yoksa, sitenizi karıştırmamak için kalifiye bir WordPress geliştiricisiyle iletişime geçmenizi öneririz.

Bir güncelleme sırasında değişikliklerinizin kaybolmaması için bir alt tema da oluşturmalısınız.

Bunu nasıl başarabileceğinizi görelim.

Son Görüntülenen Ürün Kısa Kodunu Ekleme Adımları

Kısa kodu oluşturmak için mevcut [ürünler] kısa kodundan yararlanacağız ve tekerleği yeniden icat etmeye gerek kalmadan ürün kimliklerini ona "geçeceğiz".

Alternatif olarak, bir temaya kısa kod kaydeden bir eklenti oluşturabilirsiniz. En kolayı olduğu için bu yöntemi kullanacağız.

Eklentinin adıyla yeni bir klasör oluşturmanız gerekir.

Son zamanlarda görüntülenen ürünler görmüyorsanız, bunun nedeni hala bir Son Görüntülenen Ürünler pencere öğesinin etkin olması gerektiğidir. "woocommerce_recently_viewed" çerezi, yalnızca en son görüntülenen ürünler widget'ı kullanımdayken saklanır.

İhtiyacımız olan en önemli veriler, $_COOKIE['woocommerce_recently_viewed'] adlı bir çerezde saklanır.

İsterseniz çerezleri izlemek/oluşturmak için kendi kodunuzu ekleyebilirsiniz:

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

İşte eklentinin tam kodu:


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

Kodu ekledikten sonra, herhangi bir sayfaya [woocommerce_recently_viewed_products per_page=”5″] ekleyin.

Bu sonuç: sonuç

Çözüm

Bu kısa eğitimde, son görüntülenen ürünleri bir kısa kod kullanarak nasıl görüntüleyebileceğinizi paylaştık.

Functions.php dosyasını düzenlerken dikkatli olmalısınız çünkü bir hata yaparsanız kritik bir hata gösterecektir.

Benzer Makaleler

  1. 100+ İpuçları, Püf Noktaları ve Snippet'ler Ultimate WooCommerce Hide Guide
  2. Örneklerle Sayfalarda veya Gönderilerde WordPress Kısa Kodları Nasıl Kullanılır
  3. WooCommerce'de Minimum Harcama ile Ücretsiz Gönderim Nasıl Kurulur