Woocommerce Stokta Olmayan Ürünleri Sayfa Sonuna Yollama

Woocoomerce destekli e ticaret sitesilerinde stokta olmayan ürünleri sayfa sonuna yollamaya çalışırken kullandığım kodların tamamında ürün sıralaması ile ilgili sorunlar yaşıyordum. Chatgpt yardımı ile aşağıda ki kodu...

Başlatan: Kerem - Güncelleme: 18 Mayıs 2024, 02:01:02 - Gösterim: 953

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

Woocommerce Stokta Olmayan Ürünleri Sayfa Sonuna Yollama

Woocoomerce destekli e ticaret sitesilerinde stokta olmayan ürünleri sayfa sonuna yollamaya çalışırken kullandığım kodların tamamında ürün sıralaması ile ilgili sorunlar yaşıyordum. Chatgpt yardımı ile aşağıda ki kodu oluşturdum ve sorunsuz şekilde çalışmakta. Ben kendi siteme göre oluşturduğum için stokta olmayan ürünler sayfa sonuna yollarken, yeni yüklediğim ürünleride sayfanın en başına alıyor. Bu sayede siteyi her ziyaret eden müşteri yeni ürünleri öncelikli olarak görmüş oluyor.


Aşağıda ki kodu dosyasının en sonuna ekliyoruz. ÖNEMLİ: Yedek almayı unutmayın.

function custom_pre_get_posts_query($q) {
    if ( !is_admin() && (is_shop() || is_product_category() || is_product_tag() ) && $q->is_main_query() ) {
        $meta_query = (array) $q->get('meta_query');
       
        // Ek meta sorguları
        $meta_query[] = array(
            'relation' => 'OR',
            array(
                'key'     => '_stock_status',
                'value'   => 'outofstock',
                'compare' => 'NOT IN',
            ),
            array(
                'key'     => '_stock_status',
                'value'   => 'outofstock',
                'compare' => 'IN',
            )
        );

        // Sıralama argümanları
        $q->set('meta_query', $meta_query);
        $q->set('orderby', array(
            'meta_value' => 'ASC',
            'date'       => 'DESC',
        ));
        $q->set('meta_key', '_stock_status');
    }
}
add_action('pre_get_posts', 'custom_pre_get_posts_query');


Yukarıda ki kod sayfa  geçişlerinde yavaşlamalara sebep oluyorsa bu kodu kullanabilirsiniz.

function custom_pre_get_posts_query($q) {
    if ( !is_admin() && (is_shop() || is_product_category() || is_product_tag()) && $q->is_main_query() ) {
       
        // Stokta olmayan ürünleri en sona at
        $q->set('meta_key', '_stock_status');
        $q->set('orderby', array(
            'meta_value' => 'ASC', // instock önce, outofstock sonra
            'date'       => 'DESC'
        ));
    }
}
add_action('pre_get_posts', 'custom_pre_get_posts_query');

Benzer Konular (5)

Clicky