WooCommerce tabanlı bir e-ticaret sitesinde ürün yönetimi yaparken, bazen fiyatı sıfır olan ürünleri listelemek gerekebilir. Bu durum, ücretsiz ürünler sunmak, promosyonlar düzenlemek veya henüz fiyatlandırılmamış ürünleri takip etmek için oldukça kullanışlıdır. Ancak, fiyatı sıfır olan ürünleri diğer ürünlerden ayırmak ve doğru bir şekilde listelemek her zaman kolay olmayabilir. Bu yazıda, WooCommerce üzerinde fiyatı sıfır olan ürünleri hızlı ve pratik bir şekilde nasıl listeleyebileceğinizi adım adım anlatacağız. Hem yeni başlayanlar hem de deneyimli kullanıcılar için faydalı olacak bu rehbere hazırsanız, başlayalım!
Kod, bir kısa kod tanımlayarak fiyatı “0” olan ürünleri sorgular ve görüntüler.
Adımlar:
- WordPress tema dosyanızdaki functions.php dosyasını açın.
- Aşağıdaki kodu ekleyin:
function zero_price_products_shortcode($atts) {
$atts = shortcode_atts(array(
'per_page' => 10, // Sayfa başına ürün sayısı
'columns' => 4 // Sütun sayısı
), $atts, 'zero_price_products');
'post_type' => 'product',
'posts_per_page' => $atts['per_page'],
'meta_query' => array(
array(
'key' => '_price',
'value' => '0',
'compare' => '='
)
)
);
$query = new WP_Query($args);
if ($query->have_posts()) {
ob_start();
echo '<ul class="products columns-' . esc_attr($atts['columns']) . '">';
while ($query->have_posts()) {
$query->the_post();
wc_get_template_part('content', 'product');
}
echo '</ul>';
wp_reset_postdata();
return ob_get_clean();
} else {
return '<p>Fiyatı sıfır olan ürün bulunamadı.</p>';
}
}
add_shortcode('zero_price_products', 'zero_price_products_shortcode');
Kullanımı:
Sayfanıza veya yazınıza şu kısa kodu ekleyin:
[zero_price_products per_page="12" columns="3"]
- per_page: Sayfa başına kaç ürün listeleneceğini belirler.
- columns: Ürünlerin kaç sütunda gösterileceğini belirler.
Bu kod, WooCommerce ürünlerini fiyatı “0” olanları listeleyecek şekilde filtreler ve güzel bir ürün ızgarası olarak görüntüler.
Farklı Kategorilerdeki Fiyatı Sıfır Olan Ürünleri Listelenmesi
Ürünlerimizde sadece bizim istediğimiz kategorilerdeki fiyatı sıfır olan ürünleri listelemek istersek o fazman kodda ufak bir değişliklik yapmamız gerekecek.
Adımlar:
- WordPress tema dosyanızdaki functions.php dosyasını açın.
- Aşağıdaki kodu ekleyin:
function zero_price_products_by_category_shortcode($atts) {
$atts = shortcode_atts(array(
'categories' => '', // Kategorilerin slug'ları, virgülle ayrılmış
'per_page' => 10, // Sayfa başına ürün sayısı
'columns' => 4 // Sütun sayısı
), $atts, 'zero_price_products_by_category'); // Kategori slug'larını bir diziye çevir
$categories = array_map('trim', explode(',', $atts['categories']));$args = array(
'post_type' => 'product',
'posts_per_page' => $atts['per_page'],
'meta_query' => array(
array(
'key' => '_price',
'value' => '0',
'compare' => '='
)
),
'tax_query' => array(
array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => $categories,
)
)
);
$query = new WP_Query($args);
if ($query->have_posts()) {
ob_start();
echo '<ul class="products columns-' . esc_attr($atts['columns']) . '">';
while ($query->have_posts()) {
$query->the_post();
wc_get_template_part('content', 'product');
}
echo '</ul>';
wp_reset_postdata();
return ob_get_clean();
} else {
return '<p>Belirtilen kategorilerde fiyatı sıfır olan ürün bulunamadı.</p>';
}
}
add_shortcode('zero_price_products_by_category', 'zero_price_products_by_category_shortcode');
Kullanımı:
Sayfanıza veya yazınıza şu kısa kodu ekleyin:
Parametreler:
categories
: Hangi kategorilerdeki ürünlerin gösterileceğini belirler. Kategori slug’larını virgülle ayırarak ekleyin (örneğin,aksesuar,giyim
).per_page
: Sayfa başına kaç ürün listeleneceğini belirler.columns
: Ürünlerin kaç sütunda gösterileceğini belirler.
[zero_price_products_by_category categories="aksesuar,hediyelik-esya" per_page="8" columns="4"]
Bu kod, aksesuar ve hediyelik-esya kategorilerindeki fiyatı “0” olan ürünleri listeler ve 4 sütunlu bir ızgara olarak görüntüler.