Tek Seçeneği Olan Varyasyonları Otomatik Seçtirme

WooCommerce’ta varyasyonlu ürünler satarken, eğer bir nitelik için (örneğin Renk) stokta sadece tek bir seçenek kalmışsa, müşterinin bunu manuel olarak seçmesi gerekir. Bu durum, satın alma sürecine gereksiz bir adım ekler. Özellikle “Variation Swatches” gibi görsel buton eklentileri kullanıldığında, standart PHP kodları bazen yetersiz kalabilir.

Aşağıdaki kod parçacığı hem PHP hem de JavaScript kullanarak bu sorunu çözer. Ürün sayfasında tek bir seçenek kaldığında, sistem bunu otomatik olarak seçili hale getirir.

/**
* WooCommerce: Tek Seçeneği Olan Varyasyonları Otomatik Seç (Swatch Uyumlu)
* Yazar: [Adınız veya Site Adınız]
*/

// 1. PHP Tarafı: Veritabanı seviyesinde varsayılan seçimi ayarlar
add_filter( 'woocommerce_dropdown_variation_attribute_options_args', 'force_single_variation_php', 10, 1 );

function force_single_variation_php( $args ) {
// Seçenekler dizisi boş değilse ve sadece 1 adet seçenek varsa
if ( ! empty( $args['options'] ) && count( $args['options'] ) === 1 ) {

// Eğer yönetici panelinden manuel bir varsayılan seçilmemişse
if ( empty( $args['selected'] ) ) {
$options = array_values( $args['options'] );
$args['selected'] = $options[0];
}
}
return $args;
}

// 2. JS Tarafı: Görsel butonları (Swatches) tetikler
add_action( 'wp_footer', 'force_single_variation_js' );

function force_single_variation_js() {
// Sadece ürün sayfasında çalışsın
if ( ! is_product() ) return;
?>
<script type="text/javascript">
jQuery(document).ready(function($) {
setTimeout(function() {
var $form = $('.variations_form');

// Tüm seçim kutularını kontrol et
$form.find('.variations select').each(function() {
var $select = $(this);

// Eğer seçenek sayısı 2 veya daha azsa (Biri 'Seçiniz' boşluğu, diğeri tek seçenek)
// Bazı Swatch eklentileri boşluğu sildiği için 1 de olabilir.
if ( $select.find('option').length <= 2 && $select.val() === '' ) {

// O tek seçeneğin değerini al
var singleVal = $select.find('option').last().val();

// Değer varsa seç ve tetikle
if (singleVal) {
$select.val(singleVal);
$select.trigger('change'); // Swatch eklentisine haber ver
}
}
});
}, 100); // Sayfa ve scriptlerin tam yüklenmesi için ufak bir gecikme
});
</script>
<?php
}

Bu kodu temanızın functions.php dosyasına veya Code Snippets eklentisine ekleyebilirsiniz.

Nasıl Çalışır?

  1. PHP Kısmı (woocommerce_dropdown_variation_attribute_options_args): Sayfa oluşturulurken, eğer bir niteliğin sadece bir seçeneği varsa (örneğin sadece ‘Siyah’ stoktaysa), bunu varsayılan olarak işaretler.

  2. JavaScript Kısmı (wp_footer): Sayfa yüklendikten sonra tarayıcı tarafında devreye girer. Variation Swatches gibi eklentiler bazen PHP seçimini görselleştiremez. Bu script, tek kalan seçeneği bulur ve sanki kullanıcı tıklamış gibi trigger('change') olayını çalıştırarak görsel butonun da aktif olmasını sağlar.

Bu içerik faydalı olduysa bir kahve ısmarlayarak destek olabilirsiniz! ☕

Buy Me A Coffee Bana Bir Kahve Ismarla

    Bir yanıt yazın

    E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

    7 Ağustos 2026

    Neden Güvenlik Eklentileri Yetmedi? 2,5 Ay Farkedilmeyen Karmaşık WordPress Arka Kapısı

    Görünmeyenin Ötesindeki Tehdit Siber güvenlik dünyasında karşılaştığımız tehditler artık basit kod enjeksiyonlarının veya klasik script kiddie saldırılarının çok ötesine geçti. Son dönemde gerçekleştirdiğimiz bir Güvenlik Olayı […]
    7 Mart 2026

    WooCommerce Kuponlarında Para Birimine Özel Alt Limit Nasıl Belirlenir?

    Uluslararası satış yapan ve WooCommerce altyapısını kullanan e-ticaret sitelerinde sıkça karşılaştığımız çok can sıkıcı bir problem var: Kupon kodlarında para birimine özel, net alt limitler belirleyememek. […]
    21 Şubat 2026

    Kullanıcı Adlarınız İfşa Olmasın: WordPress Yazar Sayfalarını Gizleme Rehberi

    WordPress Güvenliği: Yazar (Author) Arşivlerini Neden ve Nasıl Kapatmalısınız? WordPress, dünyanın en popüler içerik yönetim sistemi olmasının getirdiği avantajların yanında, kötü niyetli yazılımların ve siber saldırganların […]