X
X
X
X

WordPress Sitemdeki Çift Ürünleri Nasıl Silerim?

AnasayfaYazılarE-TicaretWordPress Sitemdeki Çift Ürünleri N...

WooCommerce tabanlı e-ticaret sitelerinde zamanla ürünlerin yanlışlıkla birden fazla kez yüklenmesi sık karşılaşılan bir durumdur. Özellikle aynı SKU (stok kodu) ile eklenen ürünlerin siteyi karmaşık hale getirmesi hem SEO hem kullanıcı deneyimi açısından sorun yaratır.

Bu rehberde, aynı SKU'ya sahip ürünlerden yalnızca birini bırakıp, diğerlerini topluca silmeyi öğreneceksiniz. Üstelik hiçbir teknik bilgiye ihtiyaç duymadan, adım adım işlemi gerçekleştirebileceksiniz.

Problem: Aynı SKU'ya Sahip Ürün Çoğaltmaları

Örnek durum:

  • SKU: ABC-123

  • 2 veya daha fazla ürün bu SKU ile eklenmiş.

  • Sadece bir tanesi (örneğin en yenisi) kalmalı, diğerleri silinmeli.

Çözüm: Code Snippets ile Otomatik Temizlik

WordPress sitenizde güvenli bir şekilde özel kodlar çalıştırmak için “Code Snippets” adlı eklentiden faydalanacağız.

Code Snippets Eklentisini Kur

  1. WordPress admin paneline girin.

  2. Eklentiler > Yeni Ekle sekmesine tıklayın.

  3. Arama kutusuna Code Snippets yazın.

  4. İlk çıkan eklentiyi (geliştirici: Code Snippets Pro) yükleyin ve etkinleştirin.

Yeni Kod Parçası Ekleyin

  1. Sol menüden Snippets > Yeni Ekle‘ye tıklayın.

  2. Başlığa şunu yazın: Çift SKU Temizleyici

  3. Aşağıdaki kodu kopyalayıp yapıştırın:

add_action('admin_init', 'delete_duplicate_sku_products_except_newest');

function delete_duplicate_sku_products_except_newest() {
if (!current_user_can('administrator')) {
return;
}

// Bu işlemi sadece bir defa çalıştırmak için tetik kontrolü
if (isset($_GET['run_duplicate_cleaner'])) {
global $wpdb;

$results = $wpdb->get_results("
SELECT meta_value as sku, COUNT(*) as total
FROM {$wpdb->prefix}postmeta
WHERE meta_key = '_sku'
GROUP BY meta_value
HAVING total > 1
");

foreach ($results as $row) {
$sku = $row->sku;

$products = get_posts(array(
'post_type' => 'product',
'posts_per_page' => -1,
'orderby' => 'date',
'order' => 'DESC', // En yeni ürün kalsın
'meta_query' => array(
array(
'key' => '_sku',
'value' => $sku
)
)
));

$keep = true;
foreach ($products as $product) {
if ($keep) {
$keep = false;
continue;
}
wp_delete_post($product->ID, true); // Kalıcı sil
}
}

wp_die('Çift SKU\'lu eski ürünler başarıyla silindi.');
}
}

Snippet Ayarlarını Yapılandır

  • Kodun çalışacağı alanı: “Only run in administration area” olarak seçin.

  • Snippet’i “Etkinleştir ve Kaydet” diyerek aktif hale getirin.

İşlemi Başlatın (Tek Seferlik)

Tarayıcınızda aşağıdaki gibi bir URL’ye gidin:

https://siteniz.com/wp-admin/?run_duplicate_cleaner=1

???? Bu bağlantıyı açtığınızda sistem otomatik olarak aynı SKU’ya sahip tüm çift ürünleri tarar ve sadece en yenisini bırakıp, diğerlerini kalıcı olarak siler.

Temizlikten Sonra Ne Yapmalı?

  • Snippet görevini tamamladığında sayfada "Çift SKU'lu eski ürünler başarıyla silindi" mesajını göreceksiniz.

  • Ardından Code Snippets’taki ilgili kodu devre dışı bırakabilir veya silebilirsiniz.

  • Böylece kod tekrar çalışmaz ve güvenlik açık bırakılmaz.

Neden Bu Yöntem Güvenli?

  • functions.php yerine Code Snippets ile yönetilmesi daha stabil.

  • Yalnızca yönetici panelinden erişilebilir.

  • Tetikleyici URL olmadan kendiliğinden çalışmaz.

  • Siteyi yavaşlatmaz veya çökertmez.

Ekstra Tavsiyeler

  • İşleme başlamadan önce tam yedek almanızı öneririm (örn: UpdraftPlus, Duplicator).

  • Çok fazla ürün varsa işlem birkaç saniye sürebilir, bekleyin.

  • Bu işlem basit ürünler içindir, varyasyonlar için ek kontrol gerekebilir.

Sonuç

Bu rehber sayesinde sitenizdeki çift ürün problemini otomatik ve güvenli bir şekilde çözebilirsiniz. Artık aynı SKU’ya sahip fazlalık ürünlerden kurtuldunuz ve WooCommerce mağazanız daha düzenli çalışacak.

Sorularınız mı var?

Yorumlarda belirtebilir veya bizimle iletişime geçebilirsiniz. Yardımcı olmaktan memnuniyet duyarız!


Top