MHM Currency Switcher

Açıklama

MHM Currency Switcher, WooCommerce mağazanıza çoklu para birimi desteği ekler. Müşteriler ürünlere göz atabilir, sepetlerine ürün ekleyebilir ve ödemeyi gerçek zamanlı döviz kurlarıyla, tercih ettikleri para biriminde tamamlayabilir.

Temel özellikler

  • Gerçek zamanlı döviz kurlarıyla birden fazla para birimi ekleyin
  • Ön bellek uyumluluk kipi — bir ziyaretçinin para birimini herkese sunmadan sayfa ön belleğinin arkasında çalışır
  • Kısa kodla para birimi değiştirici — metin bileşeninde, gezinme menüsünde veya Elementor’da kullanılabilir
  • Ülke bayraklı ürün sayfası fiyat gösterimi bileşeni
  • Gezinme menüsü bütünleştirmesi — değiştiriciyi herhangi bir WordPress menüsüne ekleyin
  • Otomatik döviz kuru alma (ExchangeRate-API)
  • Para birimi başına komisyon ve yuvarlama yapılandırması
  • Tanımlama bilgisi tabanlı para birimi kalıcılığı
  • WooCommerce HPOS uyumlu
  • Elementor bileşenleri dâhil
  • WooCommerce’in sunduğu her para birimi
  • Zamanlanmış otomatik döviz kuru güncellemeleri
  • Konuma dayalı para birimi algılama
  • Ürün bazlı sabit fiyatlar
  • Ayarlar ekranında, değiştiricinin yerleştirilebileceği her yolu adlandıran “Nasıl kullanılır” sekmesi

Belgeler ve destek

Ön bellek uyumluluk kipi

Sayfa ön belleği, sunucunuzun ilk isteyen kişi için ürettiği HTML’yi saklar. Fiyatlar sunucuda dönüştürüldüğünde bu, sonraki her ziyaretçiye ilk ziyaretçinin para biriminin sunulması demektir. Varsayılan olarak açık olan ön bellek uyumluluk kipi bunu önler: anonim mağaza, arşiv ve ürün sayfaları ana para biriminizde işlenir, böylece ön belleğe alınmış aynı sayfa herkes için doğru olur; tarayıcı da görebildiği fiyatları ardından bu eklentiye yapılan bir REST isteğiyle dönüştürür.

Bu ayrım bilinçlidir. Tarayıcıda yalnızca görüntülenen fiyatlar dönüştürülür. Sepet, ödeme, sipariş toplamları, sipariş e-postaları ve WooCommerce REST API her zaman sunucuda, müşterinin gerçekten seçtiği para biriminde hesaplanır; bu yüzden tahsil edilen tutar tarayıcıdan değiştirilemez.

Kipi WooCommerce > MHM Currency > Gelişmiş altında kapatabilirsiniz; bu durumda fiyatlar, bu özellik var olmadan önceki gibi sunucuda dönüştürülür. Hangi yönde karar verirseniz verin önce aşağıdaki “Bilinen sınırlar” bölümünü okuyun — her iki ayarın da sonuçları vardır ve bunlar birbirinden farklıdır.

Bilinen sınırlar

Bunlar kusur değil, ön bellek uyumluluk kipinin çalışma biçiminin sonuçlarıdır. Bilerek karar verebilmeniz için listelenmiştir.

Kipi kapatmak 1.0.0 davranışını birebir geri getirmez

Üç düzeltme bu ayardan bağımsızdır ve ayar açık da olsa kapalı da olsa yerinde kalır: fiyatlar artık yönetim ekranlarında ya da yönetim AJAX isteklerinde dönüştürülmez (bu eskiden bir sipariş satır ögesine dönüştürülmüş bir fiyat yazıyordu), wc/v3 REST okumaları ana para birimine sabitlenir ve zamanlanmış görevler ile WP-CLI artık dönüştürme yapmaz. Kipi kapatmak 1.0.0 görüntüleme davranışını — fiyatların sunucuda dönüştürülmesini — geri getirir, başka hiçbir şeyi değil.

Arama motorları ve tarama botları ana fiyatlarınızı görür

Kip açıkken, bir tarama botunun aldığı sayfa tarayıcıdan geçmemiştir; bu yüzden ana para birimi fiyatlarını taşır, içindeki makinece okunabilir ürün verisi de öyle. Yukarıdaki yapılandırılmış veri sorusuna bakın; bu uyuşmazlık bilinçlidir.

Dönüştürülmüş fiyatlar, sayfa göründükten kısa bir süre sonra ana fiyatların yerini alır

Sayfa, ana para birimi fiyatları ekranda hazır olarak gelir — JavaScript beklenirken hiçbir şey gizlenmez — ve tarayıcı, isteğinin yanıtı gelir gelmez dönüştürülmüş fiyatları yerleştirir; her fiyat değişirken 200 ms boyunca yumuşak geçişle belirir. Yavaş bir bağlantıda ana fiyat, değişimden önce daha uzun süre okunabilir kalır. Sistemlerinde azaltılmış hareket tercih eden ziyaretçiler, değişimi geçiş efekti olmadan görür.

JavaScript etkisizleştirilmişken ya da uç noktaya ulaşılamadığında ana fiyatlar kalır

Hiçbir şey bozulmaz ve ziyaretçiye hiçbir hata gösterilmez — sayfa yalnızca işlendiği ana para birimi fiyatlarını korur ve nedeni tarayıcı konsoluna yazılır. Sepet ve ödeme etkilenmez, çünkü zaten hiçbir zaman tarayıcıya bağlı değildi.

Varyasyonlu ürünler fazladan bir istek yapar ve bazı renk/beden seçici (swatch) eklentileri fiyatı kaybeder

Ön belleğe alınabilir bir sayfada eklenti, WooCommerce’i varyasyon fiyatlarını AJAX üzerinden almaya zorlar; çünkü WooCommerce’in aksi hâlde sayfaya gömeceği varyasyon JSON’u, kendi betiklerinin doğrudan sayfaya yazdığı ana para birimi fiyatlarını taşır. Bunun bedeli, ziyaretçi bir varyasyon seçtiğinde yapılan bir istek ve data-product_variations değerinin false olmasıdır: fiyatları WooCommerce’e sormak yerine o JSON’dan okuyan üçüncü taraf renk ya da beden örneği (swatch) eklentileri fiyat göstermeyi bırakabilir. Böyle bir eklenti kullanıyorsanız, yayına almadan önce varyasyonlu bir ürünü kontrol edin.

Mini sepet, WooCommerce sepet parçacıklarına dayanır

Mini sepet her sayfada işlenir; bu yüzden istek başına sınıflandırılamaz. Ana para biriminde işlenir, ardından WooCommerce’in kendi sepet parçacığı (cart fragment) yenilemesiyle düzeltilir; bu yenileme sunucu tarafında yapılan bir dönüştürmedir. Sitenizde sepet parçacıkları etkisizleştirilmişse — bazı temalar ve hızlandırma eklentileri bunları kuyruktan çıkarır — sayfanın geri kalanı dönüşürken ön belleğe alınmış mini sepet toplamı ana para biriminde kalır. Eklenti bunu izler ve olduğunda yönetim panelinde bildirir; hiç mini sepeti olmayan bir site bu konuda asla uyarılmaz.

WooCommerce’in bilmediği bir sayfadaki sepet ya da ödeme, ön belleğinizin dışında tutulmalıdır

Sayfa ön bellekleri, WooCommerce’in atadığı sayfaları tanıdıkları için sepet ve ödeme sayfalarını otomatik olarak hariç tutar. Başka bir sayfaya sepet ya da ödeme kısa kodu veya bloğu koyduysanız o sayfayı kendiniz hariç tutun. Aksi hâlde iki şey ters gider: dönüştürme kararı sayfa işlenirken yarı yolda “dönüştür” olarak değişir, bu yüzden sayfanın geri kalanı zaten dönüştürülmüş ve tarayıcının aradığı işaretçiler olmadan yazdırılır; ayrıca blok tabanlı sepet ve ödeme, işleme sırasında tutarlarını sayfaya JSON olarak gömer. Her iki durumda da ön belleğin ardından herkese verdiği, ilk ziyaretçinin para birimidir. Sepet içeriği zaten kişiseldir; böyle bir sayfa ön belleğe alınmamalıdır.

`?currency=` ön bellek kayıtlarınızı çoğaltır

URL’de bir para birimi istenebilir ve ön bellek her farklı URL’yi ayrı bir kayıt olarak ele alır; bu yüzden ?currency=EUR ve ?currency=GBP adreslerine bağlantı vermek aynı sayfanın birden fazla kez saklanmasına yol açar. Değiştiricinin kendisi bu URL’leri üretmez — bir tanımlama bilgisi yazar ve adrese dokunmaz. Ön belleğe alınmış bir sayfada fiyatları bulundukları yerde dönüştürür; sepet sayfasında, oturum açmış bir ziyaretçi için ya da ön bellek uyumluluğu kapalıyken bunun yerine sayfayı yeniden yükler. Her iki durumda da URL, ziyaretçinin zaten bulunduğu URL’dir; bu yüzden ek bir ön bellek kaydı oluşmaz.

Bir ?currency= bağlantısı da yalnızca o sayfa görüntülemesi için geçerlidir: bilinçli olarak hiçbir tanımlama bilgisi ayarlamaz; bu yüzden ziyaretçinin açtığı bir sonraki sayfa, değiştiriciyi kullanmadığı sürece yeniden ana para biriminizde olur. Bu bir gözden kaçırma değildir — bir para birimini sessizce sabitleyen bir bağlantı, katalogda bir para birimi gösterirken tanımlama bilgisini okuyan sepetin başka bir para biriminden tahsilat yapmasına yol açabilirdi. Kalıcı bir kampanya bağlantısı istiyorsanız parametreye güvenmek yerine ziyaretçileri değiştiricinin bulunduğu bir sayfaya gönderin.

WooCommerce Analiz farklı para birimlerini birbirine ekler

Bir sipariş, müşterinin ödeme yaptığı para biriminde saklanır ve WooCommerce Analiz, her siparişin rakamlarını geri dönüştürmeden mağaza para biriminizde raporlar. 4.38 USD’lik bir sipariş, ana para biriminizde 4.38 olarak sayılır; bu yüzden birden fazla para biriminde sipariş almaya başladığınızda Analiz’deki gelir rakamları ve sipariş ekranındaki müşteri panelinde yer alan toplamlar, birbirinden farklı birimlerdeki tutarların toplamı olur. Siparişlerin kendisi doğrudur — her biri kendi para birimini, toplamını ve verildiği andaki döviz kurunu korur; bu eklenti de o kuru siparişe kaydeder. Para olarak okunamayan, toplu raporlardır. Bu eklentideki hiçbir şey bunu dışarıdan düzeltemez; doğru çoklu para birimi raporlamasına ihtiyacınız varsa siparişleri dışa aktarın ve her birinde kayıtlı kuru kullanarak dönüştürün.

Oturum açmış ziyaretçiler için dönüştürme sunucuda yapılır

Oturum açmış ziyaretçiler sunucu tarafı yolu izler; ön belleğiniz neredeyse tüm ön belleklerin yaptığını yaptığı ve oturum açmış kullanıcılara hiçbir zaman ön belleğe alınmış sayfa sunmadığı sürece bu doğrudur. Tanımlama bilgilerine bakmadan ön belleğe alacak şekilde yapılandırılmış bir uç (edge) ön bellek ya da CDN bunun istisnasıdır; orada oturum açmış bir ziyaretçinin dönüştürülmüş sayfası saklanıp başkalarına sunulabilir. Uçta ön bellekleme yapıyorsanız, ön belleğin oturum açma tanımlama bilgisine göre ayrıştırdığını doğrulayın.

Dış hizmetler

Bu eklenti, para birimi dönüştürme kurlarını güncel tutmak için iki üçüncü taraf hizmete bağlanır. Her birine neyin ve ne zaman gönderildiği aşağıda ayrı ayrı açıklanmıştır, çünkü ikisi aynı değildir. Her iki istek de PHP’nin WP_Http aktarımıyla yapılır; bu aktarım, WordPress’in varsayılan yapılandırmasında WordPress/{version}; {your site's URL} biçiminde bir User-Agent üst bilgisi gönderir — yani yalnızca aşağıda açıklanan veriler değil, sitenin kendi adresi de iki hizmetten herhangi birine yapılan her istekle birlikte dışarı çıkar. Bu üst bilgi süzgeçle değiştirilebilir (http_headers_useragent, http_request_args); bu yüzden onu değiştirmiş bir site farklı bir şey gönderir.

ExchangeRate-API

Nedir: döviz kurlarının birincil kaynağı olarak kullanılan ticari bir döviz kuru API’si.

Ne gönderilir ve ne zaman: yapılandırdığınız üç harfli ana para birimi kodu (örneğin USD), istek URL’sinin bir parçası olarak — https://api.exchangerate-api.com/v4/latest/{BASE_CURRENCY} — gönderilir; yönetim panelinde “Kurları eşitle” düğmesine bastığınızda, komut satırından wp mhmcs rates-sync komutunu çalıştırdığınızda ve otomatik kur güncellemeleri altında yapılandırdığınız zamanlamaya göre (saatlik, günde iki kez veya günlük). Sitenizden başka hiçbir veri eklenmez.

Hizmet koşulları ve gizlilik politikası: https://www.exchangerate-api.com/terms
(ExchangeRate-API gizlilik politikasını ayrı bir sayfada değil, aynı sayfanın içinde yayınlar.)

Avrupa Merkez Bankası (ECB) günlük referans kurları

Nedir: ExchangeRate-API’ye ulaşılamadığında yedek olarak kullanılan, ECB’nin herkese açık günlük referans kur akışı.

Ne gönderilir ve ne zaman: yukarıda açıklanan User-Agent dışında hiçbir şey. Akış sabit, parametresiz bir adrestir — https://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml — bu yüzden ECB’ye hiçbir para birimi kodu ya da başka bir değer gönderilmez; aynı belge her isteyene döndürülür. Akış yalnızca ExchangeRate-API isteği başarısız olduğunda istenir. EUR tabanlıdır ve ExchangeRate-API’nin sunduğu yüzlerce para birimi yerine yaklaşık otuz para birimini kapsar. Ana para biriminiz bu kümenin dışındaysa bu kaynak hiçbir şey döndürmez ve mevcut kurlarınız bir sonraki denemeye kadar değişmeden kalır; yapılandırdığınız hedef para birimlerinden yalnızca biri bu kümenin dışındaysa diğer hedef para birimleri yine güncellenir, desteklenmeyen para birimi ise bu kaynaktan kur almadan kalır.

ECB, “Terms of Service” (Hizmet Koşulları) başlıklı bir belge yayınlamaz. Kullanım koşulları, en yakın karşılık olan ve aşağıda bağlantısı verilen Disclaimer & Copyright (Sorumluluk Reddi ve Telif Hakkı) sayfasında belirtilir.

Disclaimer & Copyright sayfası (kullanım koşulları): https://www.ecb.europa.eu/services/using-our-site/disclaimer/html/index.en.html
Gizlilik bildirimi: https://www.ecb.europa.eu/services/data-protection/privacy-statements/html/ecb.privacy_statement_website.en.html

ECB’nin referans kurlar sayfası ayrıca, bu kurların işlem amaçlı kullanılmasının kesinlikle önerilmediğini belirtir:
https://www.ecb.europa.eu/stats/policy_and_exchange_rates/euro_reference_exchange_rates/html/index.en.html
Bu uyarının kaynağı yukarıdaki iki bağlantı değil, o sayfadır. Bu eklenti akışı, fiyatları görüntüleme ve ödeme için dönüştürmekte kullanır; bu da o uyarının kastettiği türden işlem amaçlı bir kullanımdır. Bu durum mağazanız için önemliyse, bu yedek kaynağa güvenmeden önce o sayfayı inceleyin.

Bir kaynağı yönlendirme

Ağınız ECB akışını engelliyorsa mhmcs_fallback_rates_url süzgeci URL’yi, ana para birimi kodunu ve hangi kaynağın süzüldüğünü alır — ECB artık tek yedek kaynak olduğundan bu değer her zaman 'ecb' olur –; böylece istek başka bir yere yönlendirilebilir.

Ziyaretçi coğrafi konumu (WooCommerce aracılığıyla)

“Konuma dayalı para birimi algılamayı etkinleştir” açıkken eklenti, bir ziyaretçinin hangi ülkede olduğunu WooCommerce’in kendi WC_Geolocation API’si üzerinden WooCommerce’e sorar. 2.2.0’dan beri bu çağrı, WooCommerce’in uzak API yedeğini açıkça KAPATIR; bu yüzden eklenti bunun için hiçbir üçüncü taraf isteği yapmaz:

  • CloudFlare arkasındaysanız — ülke, CF-IPCountry istek üst bilgisinden okunur. Hiçbir şey sunucunuzdan dışarı çıkmaz.
  • Aksi hâlde — kuruluysa WooCommerce’in YEREL MaxMind veritabanı dosyası. Yine hiçbir şey sunucunuzdan dışarı çıkmaz.
  • İkisi de yoksa — algılama hiçbir sonuç bulmaz ve ziyaretçi, kendisi bir para birimi seçene kadar mağazanın ana para birimini görür. Hiçbir üçüncü taraf sorgusu yapılmaz.

Önceki sürümler WC_Geolocation::geolocate_ip() işlevini yalın varsayılan değerleriyle çağırıyordu; bu da WooCommerce’in uzak bir coğrafi konum hizmetine geri dönmesine ve ziyaretçinin IP adresini oraya göndermesine izin veriyordu. Bu yedek yol artık etkisizleştirildi; WooCommerce çekirdeği de mağaza ara yüzünde aynısını yapar.

Bu ayar varsayılan olarak kapalıdır. Bir IP adresinden ülke belirlemek, mağaza sahibinin bilinçli olarak açması gereken bir veri işlemedir; bu yüzden yeni bir kurulumda ayar kapalı gelir, daha önce yapılandırmış mağazalar ise kendi seçimlerini korur.

Algılamanın CloudFlare olmadan çalışması için WooCommerce > Ayarlar > Entegrasyon > MaxMind Geolocation altında ücretsiz bir MaxMind GeoLite2 lisans anahtarı ekleyin; WooCommerce ardından yerel bir veritabanı dosyası indirir ve yanıtı bu dosyadan verir.

WooCommerce coğrafi konum belgeleri:
https://woocommerce.com/document/maxmind-geolocation-integration/

Kaynak kod

Ayarlar ekranı bir React uygulamasıdır ve eklentinin içinde gelen şey, admin-app/build/index.js konumundaki derlenmiş pakettir. Bu paketin derlendiği okunabilir kaynak eklenti paketinde yer almaz; bu yüzden onu nerede bulacağınızı ve derlemeyi nasıl yeniden üretebileceğinizi burada açıklıyoruz.

Küçültülmemiş JavaScript dâhil tam kaynak:
https://github.com/MaxHandMade/mhm-currency-switcher

Paketin kaynağı admin-app/src/ klasörüdür. WordPress’in kendi derleme araçlarıyla, yani @wordpress/scripts ile derlenir; başka hiçbir şey kullanılmaz:

npm install
npm run build

Bu komut admin-app/build/index.js dosyasını, eklentinin betiği kuyruğa eklerken okuduğu index.asset.php bağımlılık haritasıyla birlikte yazar. Başka hiçbir derleme adımı, küçültücü ya da paketleyici kullanılmaz; kurulum sırasında veya çalışma zamanında hiçbir kod üretilmez.

Ekran Görüntüleri

Yükleme

  1. mhm-currency-switcher klasörünü /wp-content/plugins/ klasörüne yükleyin ya da doğrudan WordPress eklenti ekranından kurun.
  2. Eklentiyi WordPress’teki ‘Eklentiler’ ekranından etkinleştirin.
  3. WooCommerce’in kurulu ve etkinleştirilmiş olduğundan emin olun.
  4. Para birimlerinizi ve döviz kurlarınızı yapılandırmak için WooCommerce > MHM Currency sayfasına gidin.

SSS

Kısa kodlar nelerdir?

[mhmcs_currency_switcher] para birimi açılır listesini işler. Tek bir öznitelik kabul eder: size; değeri small, medium veya large olabilir. Belirtilmezse Görüntüleme Seçenekleri’nde kayıtlı boyut kullanılır.

[mhmcs_currency_prices] renders the same product price in several currencies.

Özniteliklerinin tümü isteğe bağlıdır:

  • currencies — virgülle ayrılmış kodlar, örneğin currencies="USD,EUR". Belirtilmezse Görüntüleme Seçenekleri’nde seçilen para birimleri kullanılır. Para birimi olarak yapılandırmadığınız kodlar yok sayılır.
  • product_id — görüntülenen ürün yerine belirli bir ürünün fiyatını gösterir.
  • price — bir ürünün fiyatı yerine belirli bir tutarın fiyatını gösterir.
  • show_flagstrue veya false; kayıtlı Görüntüleme Seçenekleri ayarını geçersiz kılar.

Her ikisi Elementor bileşeni olarak da kullanılabilir.

Kaç para birimi ekleyebilirim?

Mağazanız ne kadar gerektiriyorsa — WooCommerce’in sunduğu her para birimi etkinleştirilebilir ve ücretli bir sürüm için hiçbir şey kısıtlanmaz. REST API, 500’den fazla para birimi satırı taşıyan bir isteği reddeder; bu, aşırı büyük yüklere karşı bir korumadır ve WooCommerce’in kendi sunduğu kod sayısının çok üzerindedir, bu yüzden yönetim paneli bu sınıra ulaşamaz.

Döviz kurları nasıl alınır?

Döviz kurları ExchangeRate-API’den gerçek zamanlı olarak alınır; ister istendiğinde, ister yapılandırdığınız bir zamanlamayla (saatlik, günde iki kez veya günlük). Böylece kurlarınız elle müdahale gerekmeden güncel kalır.

Bu kaynağa ulaşılamazsa eklenti, vazgeçip mevcut kurlarınızı yerinde bırakmadan önce Avrupa Merkez Bankası’nın günlük referans kur akışına başvurur. Her ikisi de koşullarıyla birlikte aşağıdaki “Dış hizmetler” bölümünde adlandırılmıştır. Ağınız bu yedek kaynağı engelliyorsa mhmcs_fallback_rates_url süzgeci onu başka bir adrese yönlendirebilir.

Eklenti WooCommerce HPOS ile uyumlu mu?

Evet. MHM Currency Switcher, WooCommerce Yüksek Performanslı Sipariş Depolama (HPOS / Custom Order Tables) özelliğini tam olarak destekler.

Ürün bazlı sabit fiyat indirimli fiyat olabilir mi?

Hayır. Sabit fiyat, fiyat türüne göre değil, ürün ve para birimine göre saklanır; bu yüzden normal fiyat ve indirimli fiyat için aynı tutar kullanılır. Ana para biriminizde indirimde olan bir ürün, sabit fiyat verdiğiniz bir para biriminde indirimde değilmiş gibi görünür. İndirimin o para birimine de taşınmasını istiyorsanız, o para birimini sabitlemek yerine döviz kuruna bırakın.

Dönüştürme uç noktasının ne sıklıkla çağrılabileceğine dair bir sınır var mı?

Evet. Ön bellek uyumluluk kipi açıkken, ön belleğe alınmış sayfalardaki fiyatlar herkese açık bir REST uç noktası üzerinden dönüştürülür ve tek bir adres bu uç noktayı varsayılan olarak dakikada 120 kez çağırabilir. Olağan gezinme bunun yanına bile yaklaşmaz — bir sayfa tek bir istek yapar. Mağazanız, her ziyaretçiyi aynı adresten geliyormuş gibi gösteren bir ters vekil sunucunun ya da CDN’in arkasındaysa sınırı mhmcs_convert_rate_limit süzgeciyle yükseltin veya etkisizleştirin. Adresin, WooCommerce’in ilettiği vekil sunucu üst bilgilerinden okunduğunu unutmayın; WooCommerce bu üst bilgilere koşulsuz güvenir ve bunlar sahtelenebilir. Sınır, kararlı bir saldırganı değil, kazara oluşan aşırı yüklenmeyi sınırlar.

Ön bellek uyumluluğunun uygulanmadığını söyleyen bir uyarı görüyorum. Bu nedir?

Bazı temalar ve eklentiler, WooCommerce’in sepet sabitini her sayfada tanımlar; genellikle üst kısımda bir sepet toplamı göstermek için. Bu olduğunda eklenti her sayfayı bir ödeme sayfası gibi ele alır — söz konusu olan müşterinin parasıdır — ve fiyatları sunucuda dönüştürür; ön bellek uyumluluk kipi tam olarak bunu önlemek için vardır. Sitede hiçbir şey yanlış görünmez: fiyatlar sayfayı ilk yükleyen kişi için yine doğrudur, ardından bir sayfa ön belleği o kişinin para birimini diğer herkese sunabilir. Görünür bir belirti olmadığından eklenti bunu yönetim panelinde bildirir. Bir ara yüz sayfası yeniden normal şekilde işlendiği anda uyarı kendiliğinden kalkar.

Yapılandırılmış veri neden sayfadaki fiyattan farklı bir para birimi gösteriyor?

Ön bellek uyumluluğu açıkken sayfa ana para biriminizde oluşturulur ve fiyatları sonradan tarayıcı dönüştürür; bu yüzden bir tarama botunun okuduğu, makinece okunabilir ürün verisi ana para biriminde kalır. Bu bilinçli bir tercihtir ve düzeltilmez: veriyi öbür yöne sabitlemek, ikisinin şu anda uyuştuğu tek durumda — ön bellek uyumluluğu kapalıyken, yani sayfanın da yapılandırılmış verinin de sunucuda dönüştürüldüğü durumda — veriyi sayfayla çelişir hâle getirirdi.

WooCommerce REST API dönüştürülmüş fiyatları döndürür mü?

Yalnızca istek bir para birimi belirttiğinde: bir wc/v3 ürün isteğine eklenen ?currency=EUR, price, regular_price ve sale_price alanlarını dönüştürür ve bir currency_code alanı ekler. Parametre olmadan yanıt ana para biriminize sabitlenir; böylece yanıt hiçbir zaman çağıranın tanımlama bilgilerine bağlı olmaz. Ürün bazlı sabit fiyat burada da döviz kurundan önce gelir; tıpkı mağaza sayfasında olduğu gibi.

Bilinen bir sınır: price_html alanı aynı şekilde sabitlenmez. Bu alana o durumda normal bir wc/v3 istemcisi ulaşamaz — yalnızca sayfa işlenirken dahili bir REST isteği gönderen kod ulaşabilir — bu yüzden hiçbir bütünleştirme onu görmez; ancak üç sayısal alanla tutarlı değildir ve söylenmeden bırakılmak yerine burada kayda geçirilmiştir.

İncelemeler

9 Eylül 2026
şuan aktif çalışan siteme kurdum. MaxHandeMade i ve youtube videolarını takip ediyorum gerçekten yaptığı her işi çok detaylı düşünüp yapıyor. bu currency switcher ı da gönül rahatlığıyla kurabilirsiniz.
1 incelemeyi oku

Katkıda Bulunanlar ve Geliştiriciler

“MHM Currency Switcher” açık kaynaklı yazılımdır. Aşağıdaki kişiler bu eklentiye katkıda bulunmuşlardır.

Katkıda bulunanlar

“MHM Currency Switcher” 1 dile çevrildi. Katkıda bulundukları için çevirmenlere teşekkürler.

“MHM Currency Switcher” eklentisini dilinize çevirin.

Geliştirmeyle ilgilenir misiniz?

Kodu görüntüleyin, SVN deposuna göz atın ya da RSS ile geliştirme günlüğüne abone olun.

Değişiklik Kaydı

2.2.1

  • Türkçe çeviri artık eklentinin içinde geliyor. WordPress.org’dan yapılan kurulumlar, Türkçe bir sitede eklentiyi İngilizce gösteriyordu; çünkü dağıtım paketi derlenmiş çeviri dosyalarını dışarıda bırakmıştı ve bunların yerini alacak bir WordPress.org dil paketi yoktu. WordPress 6.8 ve sonrasında eklentinin tamamı çevrilmiş olarak görünür; 6.6 ve 6.7’de ayarlar ekranı çevrilmiş olur, menü etiketi gibi birkaç başka dizge ise İngilizce kalır.
  • Ön bellek uyumluluğu uyarıları artık bir görünüp bir kaybolmuyor. Sepet sayfasını açan bir müşteri ya da mağazada oturum açmış olarak gezinen mağaza sahibi, daha önce bir uyarıyı ve tüm yöneticilerin ertelemesini temizliyordu; bir sonraki sayfa görüntülemesi de uyarıyı geri getiriyordu. Bir uyarı artık sorunun ilk görüldüğü sayfayı adlandırmaya devam ediyor ve yalnızca o sayfa sorunsuz görüntülendiğinde, o sayfa artık var olmadığında ya da ön bellek uyumluluğu kapalı olarak kaydedildiğinde kalkıyor. “Bu değişene kadar ertele” artık gerçekten geçerli kalıyor.
  • Her iki uyarı artık ne zaman kalkacaklarını söylüyor.

2.2.0

  • Coğrafi konum artık WooCommerce’in uzak bir hizmetle iletişim kurmasına izin vermiyor. Eklenti artık WC_Geolocation::geolocate_ip() işlevini, WooCommerce çekirdeğinin mağaza ara yüzünde çağırdığı gibi, uzak API yedeği kapalı olarak çağırıyor. Bundan önce MaxMind veritabanı olmayan bir mağaza, her yeni ziyaretçinin IP adresini üçüncü taraf bir coğrafi konum hizmetine gönderiyordu. Ziyaretçi IP adresleri bu özellik için artık sunucunuzdan dışarı çıkmıyor.
  • Coğrafi konum algılama artık yeni kurulumlarda varsayılan olarak KAPALI. Mevcut mağazalar yapılandırdıkları ayarı korur; sizin yerinize hiçbir şey kapatılmaz.
  • Coğrafi konuma güveniyorsanız ve ne CloudFlare’iniz ne de bir MaxMind veritabanınız varsa, algılama artık uzak bir hizmete sormak yerine hiçbir sonuç bulmaz ve ziyaretçiler ana para birimini görür. Özelliğin tamamen kendi sunucunuzda çalışmaya devam etmesi için WooCommerce > Ayarlar > Entegrasyon > MaxMind Geolocation altında ücretsiz bir MaxMind GeoLite2 anahtarı ekleyin.
  • Gelişmiş sekmesi artık coğrafi konumun neler gerektirdiğini belirtiyor ve bunu ayar açık olsa da olmasa da gösteriyor.
  • Belgeler: readme, her iki README ve kullanıcı kılavuzu artık algılama zincirini, bunun maliyetini ve nasıl doğrulanacağını açıklıyor.

2.1.0

  • UYUMSUZ DEĞİŞİKLİK: değiştirici CSS sınıfları mhm-cs-* yerine mhmcs-* olarak yeniden adlandırıldı. Değiştiricinin CSS ve JS’indeki her sınıf — .mhm-cs-switcher, .mhm-cs-dropdown, .mhm-cs-size--small ve diğerleri — artık bunun yerine mhmcs- önekini kullanıyor. Eski mhm-cs-* sınıflarından birini hedefleyen özel CSS ya da JavaScript yazdıysanız, güncellemeden sonra eşleşmeyi bırakır: seçicilerinizi yeni mhmcs- adlarıyla değiştirin. Eski sınıflar için hiçbir takma ad tutulmuyor.
  • UYUMSUZ DEĞİŞİKLİK: mhmcs_fallback_rates_url süzgecinin $source bağımsız değişkeni artık her zaman ecb. Döviz kuru yedeği artık iki aşamalı değil (currency-api ardından frankfurter); artık Avrupa Merkez Bankası’nın günlük referans akışına yapılan tek bir istek. $source === ‘currency-api’ veya 'frankfurter' değerini denetleyen kod artık bu değerleri görmeyecek.
  • UYUMSUZ DEĞİŞİKLİK: hâlâ 1.0.0 öncesi bir kurulumda olan siteler için ayar taşıması kaldırıldı; buna karşılık gelen eski lisans temizliği ve kaldırma rutinindeki eşdeğer eski seçenek dalları da onunla birlikte kaldırıldı. 1.0.0’dan (2026-07) bu yana dağıtılan hiçbir sürüm etkilenmez; yalnızca 2026-03 dağıtımından sonra hiç güncellenmemiş bir site, aksi hâlde etkinleştirme sırasında alacağı bir taşımayı atlamış olur.
  • Değiştirildi: döviz kuru yedeği artık 2.0.0’da eklenen iki aşamalı currency-api.pages.dev ardından Frankfurter zinciri yerine tek bir Avrupa Merkez Bankası isteğidir. Kapsam değişmedi — aynı yaklaşık otuz para birimi — çünkü bu zaten eski zincirin son aşamasıydı; fazladan ara aşama artık yararlı olmadığı için kaldırıldı.
  • Eklendi: iki ön bellek uyumluluğu yönetim uyarısı için bir erteleme seçeneği. Bir uyarıyı kapatmak artık onu yalnızca o anda algılanan belirli sorun için temizliyor — ileride yeni, farklı bir ön bellek sorunu ortaya çıkarsa uyarı kalıcı olarak susmak yerine otomatik olarak geri geliyor.
  • Eklendi: WooCommerce eksik uyarısı ve her iki ön bellek uyumluluğu uyarısı artık her yönetim ekranında değil, yalnızca ait oldukları ekranlarda görünüyor. Yetkinlik gereksinimleri uyarıya göre değişir: WooCommerce eksik uyarısı activate_plugins gerektirir (uyarının istediği işlemi yapma yetkinliği — bir eklenti kurarsınız), iki ön bellek uyumluluğu uyarısı ise manage_woocommerce gerektirir.
  • Düzeltildi: eklentide hâlâ kalan her mhm-cs- / mhm_cs_ / mhm_currency_switcher_ eski adlandırma belirteci — CSS, JavaScript, yönetim paneli kaynağı ve derlenmiş çıktısı, testler ve belgeler genelinde — güncel mhmcs önekiyle yeniden adlandırıldı. Bu, 2.0.0’daki kısa kod ve seçenek yeniden adlandırmasıyla başlayan önek temizliğinin son adımıdır.
  • Düzeltildi: herkese açık, kimlik doğrulaması gerektirmeyen GET /rates REST uç noktası kaldırıldı. Sayfanın kendisinde zaten görünen bilgileri yineliyordu; yönetim panelinin kullandığı, kimlik doğrulaması gerektiren /rates/sync ve /rates/preview uç noktaları etkilenmedi.
  • Geliştiriciler için: derlenmiş çeviri dosyaları (.po, .mo, .l10n.php ve JavaScript .json katalogları) artık dağıtım ZIP’ine dâhil edilmiyor; languages/ hâlâ .pot şablonunu içeriyor. Çeviriler sitelere bunun yerine WordPress.org dil paketleri olarak ulaşır.

2.0.0

  • UYUMSUZ DEĞİŞİKLİK: iki kısa kod etiketi yeniden adlandırıldı. [mhm_currency_switcher] artık [mhmcs_currency_switcher], [mhm_currency_prices] ise artık [mhmcs_currency_prices]. Eski etiketler kaldırıldı; hâlâ bunlardan birini içeren bir sayfa değiştirici yerine ham metni gösterir, bu yüzden bunları kullanan her sayfayı, yazıyı veya şablonu güncelleyin. WordPress.org’un önek denetimi bir öneki ilk alt çizgide böler; bu da eski etiketleri “mhm” olarak okuyordu — üç harf, dört harflik alt sınırın altında — ve inceleme aracının eklentiye atfedemediği bir ad altında bir eklenti incelenemez. Saklanan veriye dokunulmadı: seçenek adları, sipariş üst verileri ve ürün bazlı sabit fiyatlar sahip oldukları adları korur.
  • Değiştirildi: yedek döviz kuru kaynağı farklı bir sunucudan sunuluyor. Kurlar için yedek olarak artık jsDelivr CDN yerine latest.currency-api.pages.dev kullanılıyor. Aynı üst kaynak proje, aynı veri; yalnızca sunucu değişti. WordPress.org’un inceleme aracı sabit bir herkese açık CDN alan adları listesi tutar ve bunlardan birini adlandıran, eklentiyle dağıtılan bir kaynak dosyayı, URL ne getirirse getirsin hata olarak ele alır. Mağazanız giden istekleri bir izin listesiyle kısıtlıyorsa yeni sunucuya izin verin — ya da aşağıdaki süzgeçle onu yönlendirin.
  • Eklendi: İKİNCİ bir yedek kur kaynağı; böylece engellenmiş bir ağ artık çıkmaz sokak değil. İlk yedeği sunan sunucuya bazı ulusal ağlardan ulaşılamıyor — Türkiye’de ölçüldü — ve bu yalnızca DNS kaynaklı değil: adresi DNS-over-HTTPS üzerinden çözümleyip doğru SNI ile doğrudan gerçek adreslere bağlanmak da zaman aşımına uğruyor, aynı altyapıdaki diğer sunucular ise normal yanıt veriyor. Oradaki bir sunucu çözümleyici değiştirerek bunu aşamaz, eski sunucu geri getirilemez (bu, yukarıdaki kuraldır) ve üst kaynak proje üçüncü bir yansı belgelemiyor. Zincir artık, Avrupa Merkez Bankası referans kurlarını sunan farklı bir sağlayıcı olan Frankfurter’da sona eriyor: API anahtarı yok, ticari kullanıma izin var, kaynak gösterme gerekli değil. Ödünleşim kapsamdır — yüzlerce yerine yaklaşık otuz para birimi –; bu, ancak diğer iki kaynak başarısız olduktan sonra başvurulan bir kaynak için doğru bir ödünleşimdir ve küme, mağazaların gerçekten fiyatlandırdığı para birimlerini içerir.
  • Eklendi: URL’yi, ana para birimi kodunu ve hangi kaynağın süzüldüğünü (currency-api ya da frankfurter) alan bir süzgeç, mhmcs_fallback_rates_url; böylece bir mağaza bir kaynağı, diğerlerini taşımadan başka bir yere taşıyabilir.
  • Eklendi: belgeler sitesine, WordPress.org destek forumuna ve sorun izleyiciye bağlantılar ile geliştiriciye nasıl ulaşılacağını içeren bir Hakkında sekmesi.
  • Eklendi: Gelişmiş sekmesi artık bir sonraki otomatik kur güncellemesinin yalnızca ne sıklıkla tekrarlandığını değil, NE ZAMAN yapılacağını da söylüyor. Zamanlanmış saati mağazanın kendi saat diliminde ve biçiminde, bunun şu andan ne kadar sonra olduğunu veriyor ve WordPress’in zamanlanmış işleri tam o saatte değil, o saatten sonraki ilk ziyarette çalıştırdığını açıkça belirtiyor.
  • Düzeltildi: alt birimi olmayan ya da üç basamaklı alt birimi olan para birimlerine iki ondalık basamak veriliyordu. Bir para biriminin açık bir ondalık ayarı olmadığında yedek değer, mağazanın kendi yapılandırması yerine sabit 2 idi; bu yüzden JPY ekleyen bir mağaza 100.00 görüyor, BHD ekleyen bir mağaza ise bir basamak kaybediyordu. Tablo, ICU’nun alt birim verisinden türetilmiştir; WooCommerce’in sunduğu 163 koddan 37’si iki ondalıklı para birimi değildir. intl uzantısı gerekmez.
  • Düzeltildi: Gelişmiş sekmesi, bir şey zamanladıktan hemen sonra hiçbir şeyin zamanlanmadığını söylüyordu. “Yalnızca manuel” seçeneğinden yinelenen bir aralığa geçip kaydetmek olayı kuruyordu, ancak panel sayfa yüklendiğinde okuduğu zamanlamayı tutuyor ve “Otomatik güncelleme açık, ancak zamanlanmış bir güncelleme yok. Zamanlamak için bu ayarı yeniden kaydedin.” iletisini gösteriyordu. Yeniden kaydetmek hiçbir şeyi değiştirmiyordu; yalnızca sayfayı yeniden yüklemek değiştiriyordu. Kaydetme yanıtı artık kurduğu zamanlamayı da taşıyor.
  • Düzeltildi: ilgisiz ayarları kaydetmek bir sonraki kur güncellemesini kaydırıyordu. Yönetim paneli ayarlar formunun tamamını gönderir ve zamanlayıcı, aralığın değişip değişmediğini değil, gönderilip gönderilmediğini soruyordu — bu yüzden o ekranda herhangi bir şeyi açıp kapatmak olayı o anki zamana yeniden kuruyor, günlük güncellenen bir mağazanın güncelleme saatini kaydırıyor ve bir sonraki ziyaretin tam bir eşitleme çalıştırmasına yol açıyordu. Kaydetme artık bunun yerine zamanlamayı saklanan aralıkla uzlaştırıyor: gerçek bir değişiklikte olayı yeniden kuruyor, ayar hâlâ bir olay vaat ederken kaybolmuş bir olayı geri getiriyor ve “Yalnızca manuel” seçiliyken geride kalmış bir olayı temizliyor.
  • Düzeltildi: herkese açık dönüştürme uç noktasından gelen, hız sınırına takılmış yanıtlar (HTTP 429) hiçbir ön bellek üst bilgisi taşımıyordu; bu yüzden bir vekil sunucu ya da sayfa ön belleği bir reddi saklayıp sınırı aşmamış çağıranlara sunabiliyordu.
  • Düzeltildi: ürün ve varyasyon ekranlarındaki para birimi başına fiyat alanlarının yönetim stilleri, işaretlemeden çıkarılıp bir stil dosyasına taşındı.
  • Düzeltildi: bir yönetim iletisindeki çevirmen notu, lint aracının göremeyeceği bir yere konmuştu; bu yüzden o dizge notu eklenmeden dağıtılıyordu.
  • Geliştiriciler için: eklentinin kaynağı ve derleme adımları artık readme.txt dosyasında adlandırılıyor ve Hakkında sekmesinin gösterdiği her URL, izleme parametresi içermeyen düz bir bağlantı.

1.3.1

  • Düzeltildi: kullanılabilir bir döviz kuru olmayan bir para birimi yine de fiyatlar için kullanılabiliyordu ve tutar ile tutarın gösterildiği para birimi farklı kararlardan geliyordu. Yönetim panelinde eklenen bir para birimi ilk eşitlemeye kadar 0 kuruyla başlar; bu para birimi altında ürün bazlı sabit fiyat uygulanırken simge ve kod ana para birimine geri dönüyordu — katalogda, sepette ve tahsilatta ana para biriminin kimliğini taşıyan yabancı bir tutar. Böyle bir para birimi artık her yerde ana para birimine çözümleniyor; yönetim paneli de zaten böyle olacağını söylüyordu.
  • Düzeltildi: WooCommerce REST API (wc/v3), aynı kullanılamaz para birimi ?currency= ile istendiğinde bu para birimi için ürün bazlı sabit fiyatı uyguluyordu; oysa yanıttaki diğer tüm alanlar ve istemcinin yanıtı okuduğu para birimi ana para biriminde kalıyordu. Ürün akışları, stok eşitlemeleri ve pazar yeri bütünleştirmeleri bu fiyatı gerçek kabul ediyordu.
  • Düzeltildi: mağazanın kendi para biriminde verilen siparişler döviz kuru olarak 0 kaydediyordu. Bu alan, müşteriden ne kadar tahsil edildiğinin kaydıdır; bu yüzden onu yeniden oluşturmaya çalışan hiçbir şeyin — bir rapor, bir muhasebe dışa aktarımı, bir iade — dayanabileceği bir veri yoktu. Yeni siparişler 1 kurunu kaydeder. Daha önce verilmiş siparişler kaydedildikleri değeri korur.
  • Düzeltildi: veritabanına hiç ulaşmayan bir kaydetme başarılı olarak bildiriliyordu. Bu; para birimi listesini, ayarlar ekranını ve kurların eşitlendiği üç yolun tümünü — yönetim panelindeki düğme, saatlik zamanlama ve WP-CLI — etkiliyordu; eşitleme durumunda “son eşitleme” zamanı yine de ileri alınıyordu, bu yüzden yönetim paneli eski kurları sunarken kurların güncel olduğunu söylüyordu. Bunların her biri artık hatayı bildiriyor; hiçbir şey değiştirilmeden yeniden kaydetmek ise hâlâ başarılı olarak bildiriliyor.
  • Düzeltildi: 0.3.0 öncesi bir sürümden yükseltmek para birimi yapılandırmasını kaybettirebiliyordu. Taşıma, eski ayarları kopyalıyor, ardından özgün ayarları siliyor ve kendini tamamlanmış olarak işaretliyordu — kopyanın yazılıp yazılmadığını kontrol etmeden. Kopya yazılmamışsa geriye hiçbir şey kalmıyor ve hiçbir şey yeniden denenmiyordu. Taşıma artık her şeyi yerinde bırakıyor ve bir sonraki istekte yeniden deniyor.
  • Düzeltildi: kur, komisyon ve yuvarlama alanları saklanamayan sayıları kabul ediyordu — metin, temsil edilemeyecek kadar büyük bir değer ya da negatif bir kur — ve bunlardan tek biri, aynı kaydetmedeki diğer tüm para birimlerini atıyordu. Artık bu değerler düzeltiliyor ve yönetim paneli, ondalık basamak sayısı için zaten yaptığı gibi her düzeltmeyi adlandırıyor.
  • Düzeltildi: temsil edilemeyecek kadar büyük bir sayı olarak girilen ürün bazlı sabit fiyat, sıfır olarak okunan bir biçimde saklanıyordu; bu da ürünü o para biriminde bedavaya sunuyordu. Negatif bir sabit fiyat da kabul ediliyordu. İkisi de artık hem ürün sayfasında hem de varyasyon satırlarında reddediliyor.

1.3.0

  • Eklendi: ayarlar ekranı yeniden oluşturuldu. Para birimleri artık tek bir tabloda; her satır kendi kur, komisyon ve yuvarlama denetimlerini taşıyor ve müşterinin o para biriminde gerçekten göreceği fiyatı gösteriyor — bu fiyat tarayıcıda tahmin edilmiyor, sunucuda mağazanın kendi fiyat biçimlendiricisiyle hesaplanıyor.
  • Eklendi: para birimi başına bir sayı biçimi düzenleyicisi — simge, simge konumu, ondalık basamaklar ve ondalık ile binlik ayırıcılar. WooCommerce tek bir para birimi varsaydığı için bunların tek bir takımını tüm mağaza için saklar; bu eklenti ise birkaç para birimi gösterir. Şimdiye kadar bu veri saklanıyordu ama onu düzenlemek için bir alan yoktu; bu yüzden yanlış simgeyle kaydedilmiş bir para birimi — bu, o sırada başka bir çoklu para birimi eklentisi WooCommerce’i süzüyorsa olur — yönetim panelinden hiçbir şekilde düzeltilemiyordu.
  • Eklendi: her para birimi satırında ve Gelişmiş sekmesinde bir kur güncelliği göstergesi. Hiç eşitleme kaydedilmemişse, bir eşitlemenin hiç çalışmadığını iddia etmek yerine tam olarak bunu söyler — “Henüz kayıtlı eşitleme yok” — böylece bu sürüme yükselten bir mağazaya, çalışan kurlarının eksik olduğu söylenmez.
  • Eklendi: eklenti kaldırıldığında eklentinin tüm verilerini silmek için varsayılan olarak kapalı bir seçenek. Kapalı bırakılırsa ayarlarınız ve her siparişe kaydedilen para birimi ile döviz kuru, eklenti kaldırıldıktan sonra da korunur. Bu kayıtlar çoklu para birimli satış geçmişinin tek dayanağıdır ve sonradan yeniden oluşturulamaz. Çoklu site ağında bu seçenek, eklentinin kaldırıldığı siteyi temizler.
  • Eklendi: “Nasıl kullanılır” sekmesi artık gezinme menüsü ögesini belgeliyor ve Görünüm Menüler’in yalnızca etkin tema menüleri veya bileşenleri desteklediğinde göründüğünü açıkça söylüyor; blok temaların çoğu desteklemez.
  • Eklendi: yukarıdakilerin tümü için Türkçe çeviriler.
  • Düzeltildi: yönetim paneline 1’in altında bir döviz kuru yazılamıyordu. 0.0211 yazmak alanda 211, 0.05 yazmak ise 5 bırakıyordu; hiçbir uyarı olmadan. Ana para birimi, sattığı para birimlerinden daha zayıf olan bir mağazanın 1’in üstünde hiçbir kuru yoktur; bu yüzden alan tek bir gerçekçi değeri bile alamıyordu. Kur, komisyon ve yuvarlama tutarlarının hepsi etkilenmişti, 1.2.0’da da. Artık hepsi yazdığınızı koruyor.
  • Düzeltildi: Görüntüleme Seçenekleri’ndeki değiştirici ön izlemesi ana para birimini dışarıda bırakıyor ve “Para birimi simgesi göster” seçeneğini yok sayıyordu; bu yüzden bir ziyaretçinin gördüğünden farklı bir liste gösteriyordu. Artık eşleşiyor. Ayrıca ürün fiyat bileşeninin para birimi alanı, izin verilen beş para biriminden kaçının seçildiğini gösteriyor.
  • Düzeltildi: ürün fiyat listesinin beş para birimi sınırı yalnızca tarayıcıda uygulanıyordu. REST API’ye gönderilen altıncı bir para birimi saklanıyor, ardından liste işlenirken sessizce düşürülüyordu. Sunucu artık aynı sınırı uyguluyor ve fazlalığı sessizce düşürmek yerine bunu bildiriyor.
  • Düzeltildi: varyasyonlu bir ürünün ilan edilen fiyat aralığı eski bir döviz kurundan sunulabiliyordu. WooCommerce bu aralığı 30 güne kadar ön belleğe alır ve anahtar olarak, bu eklentinin içine yalnızca para birimi kodunu koyduğu bir özet (hash) kullanır — bu yüzden bir kur güncellemesinden sonra sitedeki diğer tüm fiyatlar yeni kuru kullanırken aralık eski kurdan gelmeye devam ediyordu. Bir alışverişçi bir aralık okuyup o aralığın üst sınırından daha fazla ücretlendirilebiliyordu. Anahtar artık tutarların bağlı olduğu kuru ve yuvarlamayı da içeriyor.
  • Düzeltildi: GET /settings, denetimleri önceki bir dağıtımda kaldırılmış anahtarlar dâhil, saklanan seçeneğin tamamını döndürüyordu. Bunlardan biri olan provider_api_key, sizin sağladığınız bir kimlik bilgisidir. Ayarları kaydetmek bu anahtarları her zaman atıyordu; ancak o zamandan beri kaydet düğmesine basmamış bir mağaza değeri hâlâ tutuyordu ve okuma rotası bu değeri “manage WooCommerce” (WooCommerce’i yönetme) yetkinliğine sahip herkese veriyordu — buna yönetici olmayan mağaza yöneticileri de dâhildir. Okuma rotası artık kaydetme rotasının ve kaldırıcının süzdüğü listenin aynısını süzüyor.
  • Düzeltildi: para birimi seçicinin açılır penceresi Escape tuşuyla kapanmıyordu ve kapatıldığında klavye odağı onu açan düğmeye geri dönmüyordu.
  • Düzeltildi: yeni biçim alanlarına yazılan değerler sessizce kabul edilmek yerine düzeltiliyor — bir karakterden uzun bir ayırıcı, 0 ile 4 aralığı dışındaki bir ondalık basamak sayısı ya da birbirinin aynı binlik ve ondalık ayırıcılar — ve ekran, girdinizi bir şey söylemeden değiştirmek yerine yaptığı her düzeltmeyi adlandırıyor.
  • Değiştirildi: REST API artık herhangi bir boyuttaki yükü kabul etmek yerine, 500’den fazla para birimi satırı taşıyan bir kaydetme ya da ön izleme isteğini reddediyor. Yönetim paneli böyle bir istek üretemez — WooCommerce toplam 163 para birimi kodu sunar — bu yüzden koruma yalnızca panelden gelmeyen bir şeyde devreye girer.
  • Değiştirildi: ayarlar ekranı daha geniş; 900px yerine 1200px. Bu genişliğin altında para birimi tablosu, kenarda kesilmek yerine her para birimi için bir kart olacak şekilde alt alta dizilir ve her alan etiketlenir.

1.2.0

  • Eklendi: eklentinin ayarlar ekranına bir “Nasıl kullanılır” sekmesi. Eklenti beş farklı şekilde yerleştirilebilir — iki kısa kod, iki Elementor bileşeni ve bir gezinme menüsü ögesi — ve bunların hiçbiri yönetim panelinin herhangi bir yerinde adlandırılmıyordu; bu yüzden para birimleri ekledikten sonra, değiştiricinin sitenizde neden görünmediğini size söyleyecek hiçbir şey yoktu. Yeni sekme her seçeneği kopyalanabilir kodla, fiyat listesi kısa kodunun özniteliklerini gösteren bir tabloyla ve Görünüm Menüler yolunun yalnızca klasik temalarda bulunduğuna dair bir notla listeler.
  • Düzeltildi: ayarlar ekranındaki para birimi seçicide beş etiket Türkçe yazılmıştı; bu yüzden İngilizce dâhil diğer tüm dillerde Türkçe kalıyordu. Artık İngilizceler ve Türkçe ifadeler Türkçe çeviri dosyasına taşındı.
  • Düzeltildi: gezinme menüsü değiştiricisi, CSS sınıfını menü ögesinin class özniteliğine iki kez yazdırıyordu. Bu, mağaza ara yüzünde görünmüyordu ama yanlıştı.
  • Düzeltildi: tarayıcınız bir sayfanın panoya yazmasına izin vermediğinde, yeni sekmedeki kopyalama düğmeleri kodu seçer ve onu kopyalamanızı söyler. Bu ileti bir Windows tuş kombinasyonunu adlandırıyordu; artık hiçbir tuşu adlandırmıyor.

1.1.3

  • Düzeltildi: 0.3.0’dan eski bir sürümden yükseltmek eklentinin ayarlarını sıfırlıyordu ve para birimi yapılandırmış bir mağazada para birimi listesini tamamen kaybettiriyordu. Seçenek adları 0.3.0’da bir taşıma (migration) yapılmadan değişti ve güncel adlar yalnızca eklenti etkinleştirildiğinde yazılır — bu da yerinde güncelleme sırasında olmaz. Tek seferlik bir taşıma artık eski ayarları ve yapılandırılmış para birimlerini güncel adlara aktarıyor, eski satırları kaldırıyor ve 0.3.0 öncesi kur güncelleme görevini, çalışmaya devam edemesin diye iptal ediyor. Hiçbir şey yapılandırmamış siteler yalnızca standart varsayılanları alır: eski kurucunun yazdığı dört para birimi kodu, eklentinin hiçbir zaman okuyamadığı bir biçimdeydi; bu yüzden hiç kullanılmadılar ve aktarılmazlar.
  • Düzeltildi: Gelişmiş sekmesi, hiç aralık seçmemiş sitelerde otomatik kur güncelleme aralığı olarak “Günlük” gösteriyordu, ancak hiçbir şey zamanlanmamıştı — ayarlar ekranı ile zamanlayıcı, ayarlanmamış bir aralığın ne anlama geldiği konusunda uyuşmuyordu. Ekran artık “Yalnızca manuel” gösteriyor; siz bir aralık seçene kadar eklentinin gerçekte yaptığı da budur.
  • Düzeltildi: çoklu para birimi fiyat gösterimi, yapılandırmadığınız para birimleri için fiyat gösteriyordu ve gösterdiği rakam, diğer para biriminin kodunu ve bayrağını taşıyan ana fiyattı. Hiçbir şey yapılandırılmamış bir mağazada Elementor fiyat bileşeni bunu kurulur kurulmaz yapıyordu, çünkü varsayılan para birimi listesi USD, EUR, GBP’dir. Yapılandırmadığınız para birimleri artık dışarıda bırakılıyor.
  • [mhm_currency_switcher] ve [mhm_currency_prices] kısa kodları ve öznitelikleri belgelendi; bu dosya onlardan söz ediyor ama adlarını hiç vermiyordu.
  • Düzeltildi: ikinci bir para birimi eklentisi çalışan bir mağazada, para birimi eklemek onu yanlış simgeyle kaydedebiliyordu — her yeni para birimi o sırada görüntülenen para biriminin simgesini alıyordu; bu yüzden bir ABD Doları para birimi, mağaza ara yüzünde ana para biriminizin işaretini yazdırabiliyordu. Yeni para birimleri artık simgelerini WooCommerce’in kendi para birimi tablosundan alıyor. Bu dağıtımdan önce eklenen para birimleri saklanan simgeyi korur; sizinkilerden biri yanlış işaret gösteriyorsa onu kaldırıp yeniden ekleyin.

1.1.2

  • WordPress 6.6 gerektirir. Ayarlar ekranı 6.0 ile 6.5 arasında hiç yüklenmiyordu: yönetim paketi, WordPress’in yalnızca 6.6’dan itibaren kaydettiği bir betik tanıtıcısına bağlıdır ve kaydedilmemiş bir bağımlılık, WordPress’in betiği sessizce düşürmesine yol açar. Bugüne kadarki her dağıtım 6.0’ı desteklediğini belirtiyordu ve hiçbiri o ekranı 6.0’da gösteremiyordu. Daha eski bir WordPress kullanıyorsanız 1.1.1’de kalmak mağaza ara yüzünü çalışır durumda tutar — dönüştürme betiklerinin böyle bir bağımlılığı yoktur — ancak ayarlar ekranı orada da açılmaz.
  • Düzeltildi: para birimi tablosundaki her denetim ekran okuyucular için adsızdı — etkinleştirme düğmesi, iki kur denetimi, iki komisyon denetimi ve iki yuvarlama denetimi. Her biri artık neyi değiştirdiğini ve hangi para birimine ait olduğunu söylüyor.
  • Düzeltildi: para birimi seçici, görünür etiketi denetimle hiç ilişkilendirilmediği için ekran okuyucularca etiketsiz bir düğme olarak okunuyordu.
  • Sepet ve Ödeme Bloklarıyla uyumluluk bildirildi. Eklenti bu bloklarla zaten çalışıyordu — bloklar tutarlarını, sunucuda dönüştürülen Store API’den okur — ancak bu bildirim olmadan WooCommerce, bu ekranlarda mağaza sahiplerini eklenti hakkında uyarıyordu.

1.1.1

  • Ayarlar ekranı artık 36px denetim boyutu için WordPress’in kullanımdan kaldırma uyarısını tetiklemiyor; seçim kutuları ve metin alanları, WordPress 7.1’de varsayılan olacak 40px boyutunu kullanmayı seçiyor.
  • Var olmayan bir sayfayı gösteren Plugin URI düzeltildi.
  • WooCommerce gerekli eklenti olarak bildirildi ve test edilen WooCommerce aralığı, test paketinin gerçekten çalıştığı sürümlere (7.4 ile 10.9 arası) göre düzeltildi.

1.1.0

  • Varsayılan olarak açık olan ön bellek uyumluluk kipi. Anonim mağaza, arşiv ve ürün sayfaları ana para biriminizde işlenir; böylece bir sayfa ön belleği herkese aynı HTML’yi sunabilir ve tarayıcı görüntülenen fiyatları ardından dönüştürür. Sepet, ödeme, sipariş toplamları, sipariş e-postaları ve WooCommerce REST API hâlâ sunucuda dönüştürülür.
  • Para birimi değiştirici, ön bellek uyumluluğu açıkken artık sayfayı yeniden yüklemiyor; tanımlama bilgisini ayarlıyor, fiyatları yerinde dönüştürüyor ve mini sepeti yeniliyor.
  • Düzeltildi: fiyatlar yönetim ekranlarında ve yönetim AJAX isteklerinde dönüştürülüyordu; bu da bir sipariş satır ögesine dönüştürülmüş bir fiyat yazabiliyordu.
  • Düzeltildi: wc/v3 REST okumaları artık istek bir para birimi belirtmedikçe ana para birimini döndürüyor; böylece yanıt artık çağıranın tanımlama bilgilerine bağlı değil.
  • Düzeltildi: zamanlanmış görevler ve WP-CLI artık fiyatları dönüştürmüyor.
  • Düzeltildi: ziyaretçi para birimini değiştirdiğinde sepet toplamları yeniden hesaplanıyor; böylece mini sepet artık önceki para biriminden kalan bir tutarı gösteremez.
  • Düzeltildi: WooCommerce blok temalarındaki fiyatların üzerine, sayfa yüklendikten sonra artık ana tutarlar yazılmıyor.
  • Düzeltildi: para birimi başına yüzde komisyon hiç uygulanmıyordu, çünkü yönetim ekranı ile temizleyici (sanitiser) saklanan değer konusunda uyuşmuyordu.
  • Düzeltildi: döviz kuru sıfır olan bir para birimi artık ana fiyatları dönüştürülmüş gibi göstermeye geri dönmüyor.
  • Düzeltildi: yuvarlama artık ürün fiyatlarının yanı sıra gönderim tutarlarına, ücretlere ve kupon indirimlerine de uygulanıyor.
  • Düzeltildi: gönderim vergisi, gönderim tutarıyla birlikte dönüştürülüyor.
  • Eklenti artık, ön bellek uyumluluğu sessizce uygulanmadığında ve WooCommerce’in sepet parçacığı betiği yüklenmediği için bir mini sepet ana para biriminde kaldığında yönetim panelinde uyarı veriyor.
  • Yeni herkese açık REST uç noktası POST mhmcs/v1/convert; adres başına dakikada 120 istekle sınırlıdır (mhmcs_convert_rate_limit süzgeci).
  • Ön bellek kipinin kabul edilen ödünleşimleri için yukarıdaki “Bilinen sınırlar” bölümüne bakın.

1.0.0

  • İlk herkese açık dağıtım.
  • Tüm özellikler herkesin kullanımına açık: sınırsız para birimi, otomatik döviz kuru güncellemeleri, konuma dayalı para birimi algılama, ürün bazlı sabit fiyatlar ve WooCommerce REST API para birimi süzgeci.
  • Belirteçler mhmcs önekiyle yeniden adlandırıldı. Önceki geliştirme derlemelerindeki ayarlar aktarılmaz.