Merhaba. Uzun süredir (yaklaşık 7 yıl) bloğa yazı yazmamışım zaman gerçekten çabuk geçiyor. Bu süre içinde web tasarımları ve wordpress konusunda önemli değişklikler oldu. Muhtemelen blogumda uzun süre önce paylaştığım hatalar ya da ihtiyaçlara yönelik çözüm yollarıın pek çoğu artık geçerli değil. Ben de elimden geldiğince wordpress wem sitesi tasarımlarında karşılaştığım sorunlarla ilgili bulduğum çözmleri burada paylaşmaya devam edeceğim.
WPML, wordpress için en popüler ve en kullanışlı çoklu dil eklentilerinden biri, bana göre en iyisi olmasına ramen hala eksikleri var elbette. Bir müşterimin talebiyle e ticart sitesinde farkı ülkelere farklı kargo fiyatlarını tanmladım, bununla birlikte farklı ülkelerin farklı para birimlerini de WPML multi currency ile yaptım. Ayrıca bir ürün ile birkaç ürün arasındaki kargo ücreti farkını da çözdüm. Yani müşteri sepete birden çok ürün eklerse kargo maliyeti de ürün sayısına göre değişiyor. Güzel ilerlerken bir sorunla karşılaştık. Woocommerce multilingual çoklu kur fonksiyonu kargo ücretini müşterinin kargo adresine göre değil, fatura adresine göre hesaplıyordu. Bu da farklı bir adrese teslimat istendiğinde yanlış kargo ücreti hesaplamaya neden oluyordu. Müşteri yurt dışı gönderi adresine göre kargo fiyatı değiştirme için Woocommerce multilingual geolocation dosyasında küçük bir modifiye yaptım:
private static function getUserCountryFromOrder() ile başlayan kod öbeğini aşağıdaki ile değiştirin:
private static function getUserCountryFromOrder() {
if ( isset( $_GET[‘wc-ajax’] ) ) {
if ( isset ( $_POST[‘s_country’] ) && ‘update_order_review’ === $_GET[‘wc-ajax’] ) {
return wc_clean( wp_unslash( $_POST[‘s_country’] ) );
}
if ( isset ( $_POST[‘country’] ) && ‘update_order_review’ === $_GET[‘wc-ajax’] ) {
return wc_clean( wp_unslash( $_POST[‘country’] ) );
}
}
}
Sorun çözüldü, artık müşteri fatura adresinden farklı bir gönderi adresi seçtiğinde kargo tutarı gönderi adresine göre hesaplanıyor.
Not: Bu modifiye WPML ve Woocommerce multilingual’ın şu an için son sürümü olan WPML 4.5.5 ile test edilmiştir.