WooCommerce ile dijital ürün satarken karşılaşılan en yaygın sorunlardan biri, ürüne yeni bir dosya veya sürüm eklediğinizde eski müşterilerin bu dosyayı görememesidir. WooCommerce varsayılan olarak yeni eklenen dosyaları geçmiş siparişlere otomatik olarak tanımlamaz.

Bu içerikte, bu sorunun neden yaşandığını, nasıl çözülebileceğini ve eski müşterilere yeni sürümlerin otomatik şekilde nasıl tanımlanacağını tüm detaylarıyla anlatıyoruz.

WooCommerce Neden Yeni Dosyaları Eski Müşterilere Göstermez?

WooCommerce, dijital ürün güvenliği için tasarlanmış bir mantık kullanır.
Bu mantığa göre:

  • Müşteri siparişi verdiğinde o anki dosyalar, sipariş kaydına eklenir.
  • Daha sonra ürüne yeni bir dosya eklerseniz, WooCommerce bunu yeni bir içerik olarak görür.
  • Bu yüzden eski siparişlere otomatik eklemez.

Bu sistem, özellikle bir ürünün yeni sürümleri çıktığında satıcılar için sorun yaratır.

Eski Müşterilere Yeni Dosya Tanımlamak Neden Önemlidir?

Yeni sürüm eklediğiniz ürünler için:

  • Mevcut müşterilere güncel dosyayı sunmak bir hizmet kalitesidir.
  • Müşteri memnuniyetini artırır.
  • Yeniden satış şansını artırır.
  • Destek taleplerini azaltır (“Dosya görünmüyor!” sorunları biter).

Özellikle dijital ürün satan mağazalar için bu süreç kritik öneme sahiptir.

WooCommerce’de Yeni Versiyonu Eski Müşterilere Nasıl Tanımlarız?

WooCommerce bunu otomatik yapmaz, ancak doğru bir kod çalıştırarak tüm eski siparişlere yeni dosya erişimi verebilirsiniz.

Tüm Ürünlerde Çalışan Otomatik Tanımlama Yöntemi

Aşağıdaki yöntem:

  • Tüm indirilebilir ürünleri tarar
  • Eski siparişleri bulur
  • Yeni dosyaları tek tek tanımlar
  • Sadece “completed” veya “processing” siparişlerde çalışır
  • Refund siparişleri atlar (hata vermez)

Bu yöntem ile eski müşteriler otomatik olarak yeni sürümlere erişebilir.

functions.php dosyasının içerisinde:

Kod:

add_action('init', function () {
if (get_option('auto_version_update_done')) {
return; // Daha önce çalıştıysa tekrar çalışmasın
}
// Tüm indirilebilir ürünleri al
$args = [
'post_type' => 'product',
'posts_per_page' => -1,
'meta_query' => [
[
'key' => '_downloadable',
'value' => 'yes'
]
]
];
$products = get_posts($args);
foreach ($products as $product_post) {
$product = wc_get_product($product_post->ID);
if (!$product) continue;
$files = $product->get_downloads();
if (empty($files)) continue;
// Bu ürünü içeren siparişler
$orders = wc_get_orders([
'limit' => -1,
'status' => ['completed', 'processing'],
'product_id' => $product_post->ID
]);
foreach ($orders as $order) {
// ❗ Refund order ise atla
if ($order instanceof WC_Order_Refund) {
continue;
}
foreach ($files as $file_id => $file_data) {
wc_downloadable_file_permission($file_id, $product_post->ID, $order);
}
}
}
update_option('auto_version_update_done', true);
});

Kod Çalışmazsa Ne Yapmalısınız? (Hata Çözümleri)

WooCommerce sipariş yapısında OrderRefund gibi farklı nesneler bulunduğundan yanlış sipariş tipleri işlenirse hata oluşabilir.

Aşağıdaki yaygın hatalara dikkat edilmelidir:

1. Refund Siparişleri İşlemeye Çalışmak

Refund siparişlerde müşteri ID’si yoktur.
Kodun bunları atlaması gerekir.

2. Yanlış Dosyaya Kod Eklemek

Kod, aşağıdaki yerlere eklenmemelidir:

  • WooCommerce core dosyaları
  • Parent theme
  • Rastgele plugin editörleri

Doğru yer:

✔️ Child theme → functions.php
veya
✔️ Küçük bir özel eklenti

3. Cache Temizlenmemiş Olabilir

İşlemden sonra cache’inizi temizlemeniz gerekebilir.

 

WooCommerce, varsayılan olarak yeni eklenen dijital dosyaları eski müşterilere göstermez.
Ancak doğru yöntemle, tüm eski siparişlere yeni sürümleri otomatik tanımlayabilir ve müşterilerinize çok daha profesyonel bir deneyim sunabilirsiniz.

Bu rehberdeki yaklaşımı kullanarak dijital ürün güncellemelerini sorunsuz hale getirebilir, WooCommerce mağazanızı daha verimli yönetebilirsiniz.