Woocommerce’de özel dağıtım yöntemi nasıl eklenir
WooCommerce’a aşina iseniz, bir dizi çok kullanışlı özelliğe sahip harika bir ücretsiz e-ticaret çözümü olduğunu biliyorsunuz. Öne çıkan şey, Woocommerce’in WordPress modülerliğine benzer şekilde genişleme dikkate alınarak geliştirilmesidir. Ancak, WooCommerce’den ekstra bir şeye ihtiyacınız varsa, genellikle WooCommerce’in ihtiyacınız olan her şeyi vermediğini, örneğin, özel bir gönderim yöntemi eklemek istiyorsanız. Ancak, endişelenmeyin, çünkü bu kısa öğreticide, Woocommerce için nakliye maliyetlerini hesaplayacak basit bir nakliye yönteminin nasıl yapılacağını öğreneceksiniz.
Buna ek olarak, gönderim yönteminin birkaç ülke için kullanılabilir olması için eklentimize nasıl birkaç sınır ekleyeceğinizi öğreneceksiniz. Gönderim Yöntemleri için Özel Nakliye Kuralları Bu bölümde, bir kod oluşturmak için kullanacağımız gönderim yöntemi için özel gönderim kuralları oluşturacağız. Nakliye yönteminin maliyeti nasıl hesaplayacağını ve nerede teslim edileceğini belirleyeceğiz. Bu, maliyetlerin teslimat hedef bölgesinin ağırlığı ve bölgesi ile belirleneceği anlamına gelir. Bu örnek için ABD, Kanada, Almanya, Büyük Britanya, İtalya, İspanya ve Kenya’ya göndereceğiz. Kenya, 10 $ için Bölge 0, 30 $ için Bölge 1 İtalyan, 50 $ için İspanyol Bölge 2, İngiltere’nin 50 $ ‘lık Bölge 2, ABD ve Bölge 3 Kanada’nın 70 $ karşılığında olacak.
Tartım için aşağıdaki fiyatları vereceğiz: 0-10kg ücretsiz, 5 $ için 11-30kgs, 10 $ için 31-50kgs ve 20 $ için 51-100kgs. Kodlamaya başlamaya hazır olabilirsiniz, ancak henüz değil! İlk olarak, WooCommerce Nakliye API’sı hakkında bilgi edinmeniz gerekir. Özel bir nakliye yöntemi oluşturmak istediğinizde, Woocommerce WC_shipping_method’dan Soyut Sınıfı’ndan sınıfı genişletmeniz gerekir. Belirtilen birkaç öznitelik vardır, yani: $ id: id (slug, anahtar kelime) Gerekli teslimatımız.
$ Sayı: Bu bir tamsayı kimliğidir.
$ Method_title: Gönderim adımız yöneticide listelenmiştir.
$ Method_description: Gönderimizin kısa bir açıklaması yöneticide (isteğe bağlı) görüntülenir.
$ ENABLID: String Boolean, “Evet” veya “Hayır”, teslimatımızın etkinleştirilip etkinleştirilmeyeceği ve kullanılamayacağı konusunda bilgi sağlayan bilgiler.
$ Title: Sitemizde gönderim adımızı görüntülemek için kullanılır.
$ Kullanılabilirlik: Bu, gönderimin mevcut olup olmadığını belirler.
$ Ülke: Bu yöntemin etkinleştirildiği ülkenin dizisi. Varsayılan değer boş bir dizidir.
$ Tax_Status: Varsayılan değer vergilendirilebilir. Vergiye tabi bir kalem varsa, vergi uygulanacaktır.
$ ücret: varsayılan değer 0
$ Minimum_fee: Varsayılan yöntem ve değer için minimum maliyet boş.
$ Has_settings: Bu, bu yöntemin herhangi bir düzenleme olup olmadığını belirler. Varsayılan değer doğrudur.
$ Destekler: Bu yöntemle desteklenen özellikleri içeren dizi. Varsayılan değer boş bir dizidir.
$ Oranlar: Bir dizi tarife ve nakliye maliyetlerini kaydetmek için bu doldurulmalıdır. Varsayılan değer boş bir dizidir.
WC_shipping_method’da belirtilen yöntemler şunlardır:
IS_Taxable (): Bu, vergiyi nakliye oranının üzerindeki hesaplamamız gerekip gerekmese de döndürür. Add_rate ($ args = array ()): Bu, $ args parametresinde belirtilen nakliye oranını $ Rays özniteliğine iter.
Has_settings (): Bu, $ Has_settings öznitelik değerini döndürür.
IS_available (): Gönderim mevcutsa ve $ Ülke özelliklerinde düzenlenen ülkeler varsa ve $ kullanılabilirlik özellikleri, belirli veya dahil edilmeyen değerlerle düzenlenirse, ülke nakliye için kullanılabilirse bu doğru veya yanlıştır. .
Get_title (): Bu, bu gönderimin başlığını döndürür.
Get_fee ($ ücret, toplam $): Bu, bu sevkiyatın maliyetinin değerini $ ücrete ve toplam ayrıştırmaya dayalı olarak döndürür.
Destekler ($ Özellik): Bu gönderim yöntemi özellikleri destekliyor veya desteklemiyorsa bu döner.
WC_shipping_method sınıfı wc_settings_api sınıfını genişlettiğinden, burada basitlik amacıyla açıklamayacağım daha fazla özellik ve yöntem var.
Ayrıca, nakliye ayarlarını alabilmesi veya ayarlayabilmesi ve gerçek nakliye maliyetlerini hesaplayabilmesi için başka yöntemlerin belirlenmesi gerekir. Bu yöntem burada listelenmiştir:
İnit (): Bu alanları ve ayarları yapar. Bununla birlikte, içindeki yöntemi kullandığımız ve __Constructor yönteminde çağırdığımız sürece farklı adlandırılabilir.
Calculate_shipping ($ paketi): Bu yöntem bu nakliye maliyetini hesaplamak için kullanılır ve paket gönderilecek ürünle bir çizgidir.
Nakliye hesaplama yöntemine odaklanmak istiyorum. Örneğimiz için bu yöntemi kullanacağız ve Add_Rate yöntemine ekleyeceğiz. Bu yöntem, aşağıdakiler gibi çeşitli seçeneklere sahip diziler alacaktır:
ID: Bu tarife kimliğidir. Etiket: Bu tarife için bir etikettir.
Maliyet: Teslimat Sayısı.
Vergiler: Verginin Woocommerce tarafından hesaplanması için bir dizi vergi aldı ya da hiç almadı. Vergi almak istemiyorsanız, sahte alabilir.
Calc_tax: Bu perorder veya per_item alır. Per_item kullanırsanız, bir dizi ücret sağlanmalıdır.
Woocommerce eklentisinde belirtilen WordPress filtresini kullanarak, sınıf adımıza devam ederek, kayıtlı yöntemler dizisine gönderim yöntemimizi ekleyen diziyi almak için bir WordPress filtresi kullanacağız. Filtreye wooocommerce_shipping_methods denir.
Masada bununla birlikte, paylaşacağım PHP snippet’teki tüm konsepti anlayabilmeniz için bu kısa öğreticinin kodlama bölümüne girelim. a) Yeni Bir Nakliye Sınıfı Oluşturma Adımları Bu bölümde, gönderim yöntemimizi WooCommerce’ı genişleten yeni bir eklenti olarak oluşturacağız.
İlk olarak, WP-Content> eklentileri açmanız ve yeni bir klasör oluşturmanız gerekir. Bunun için Njengah -Helfer adını kullanacağım
O zaman, aynı adlı bir dosya oluşturmanız gerekir Njengah -shiping.php
Bu dosyaya aşağıdaki kodu ekleyin:
id = ‘njengahplus’;
$ this-> metod_title = __ (‘njengahplus nakliye’, ‘njengahplus’);
$ this-> metod_description = __ (‘özel njengahplus,’ njengahplus ‘);
$ this-> init ();
$ this-> enabled = isset ($ this-> ayarlar [‘etkin’])? $ this-> ayarlar [‘etkin’]: ‘evet’;
$ this-> title = isset ($ this-> ayarlar [‘başlık’])? $ this-> ayarlar [‘başlık’]: __ (‘njengah nakliye’, ‘njengahplus’);
}
/**
* Ayarlarınızı başlatın
*
* @Access Public
* @kurnal iptal edildi
*/
İnit işlevi () {
// API ayarlarını yükleme
$ this-> init_form_fields ();
$ this-> init_settings ();
// Varsa Yöneticiye Ayarları Kaydet
Add_action (‘wooocommerce_update_options_shiping_’. $ This-> id, dizi ($ this, ‘process_admin_options’));
}
/**
* Bu teslimat için ayarlar alanını belirleyin
* @kurnal iptal edildi
*/
İnit_form_fields () işlevi {
// Ayarlarımızı buraya ekleyeceğiz
}
/**
* Bu işlev, nakliye maliyetlerini hesaplamak için kullanılır. Bu işlevde, ağırlığı, boyutları ve diğer parametreleri kontrol edebiliriz.
*
* @Access Public
* @param karışık $ paketi
@kurnal iptal edildi
*/
Genel işlev celcuting_asi dağıtım ($ paket) {
// Buraya ücret, tarife ve mantık ekleyeceğiz
}
}
}
}
Add_action (‘wooocommerce_shipping_init’, ‘njengahplus_shipping_method’);
İşlev add_njengahplus_shiping_method ($ yöntemler) {$ yöntem [] = ‘njengahplus_shiping_method’;
geri $ yöntem;
}
add_filter (‘wooocommerce_shipping_methods’, ‘add_njengahplus_shipping_method’);
} Nasıl çalışır
İlk olarak WPINC’in sürekli olarak tanımlanıp tanımlanmadığını kontrol ettik. Belirlenmezse, birisinin bu dosyaya doğrudan veya WordPress değil bir konumdan erişmeye çalıştığı anlamına gelir.
O zaman WooCommerce’in aktif olup olmadığını kontrol etmeliyiz. Burada WooCommerce.php’nin Active_Plugins seçeneği altında veritabanında depolanan etkin eklenti dizisinde olup olmadığını kontrol ediyoruz.
Wooocommerce_shipping_init, WOOOCOMMERCE nakliye için ana eylemdir ve kullanılmadan önce tüm nakliye sınıflarını içerir. Bu eylemin kullanılması, WooCommerce başlatıldıktan sonra ve WooCommerce’in kullanması için doğru yerde gönderim yöntemimizin dahil edilmesini sağlayacaktır.
__Construct yöntemi birkaç genel öznitelik ayarlar ve ayarlar, INIT yöntemindeki veritabanından yüklendikten sonra bazıları kolayca yazılabilir.
Diğer yöntemler boş bırakılır çünkü daha sonra öğreticide tanımlayacağız.
Ardından, aşağıda gösterilen adımları kullanarak eklentiyi etkinleştirmek için gitmeniz gerekir:
WordPress sitenizi girin ve yönetici kullanıcısı olarak gösterge tablosuna erişin.
Gösterge Tablosu menüsünden, eklentiyi tıklayın ve aşağıda gösterildiği gibi teslimatın ortasını etkinleştirin:
Eklentiyi etkinleştirdikten sonra WooCommerce> Ayarlarını Açın. WooCommerce sekmesini tıklayın, ardından NJengahplus Nakliye’yi tıklayın. Bunu görebilmelisiniz:
b) Oluşturduğumuz eyalet nakliye yönteminin kullanılabilirliğini yalnızca belirtilen ülke listesinde kullanılabilir.
<? Php
$ this-> country = dizi (
‘AS’, // Amerika Birleşik Devletleri
‘CA’, // Kanada
‘De’, // Almanya
‘GB’, // Birleşik Krallık
‘It’, // İtalya
‘Buz’, // İspanyol
‘HR’ // Kenya
);
$ this-> init ();
// … Nitelikler Kodu Kullanılabilirliği nasıl ‘dahil’ olarak ayarlanır, böylece bu sevkiyat yalnızca ülkenin niteliklerinde ülke için kullanılabilir.
WooCommerce, nakliye ülkesinin öznitelik ülkesine dahil edilip edilmediğini kontrol edecektir. Ayarlarınızın yalnızca bu kodu kopyalamanız ve init_form_fields yöntemimizi doldurmanız gerekir: form_fields = dizi (
‘Etkinleştirilmiş’ => dizi (
‘başlık’ => __ (‘etkinleştir’, ‘njengahplus’),
‘type’ => ‘onay kutusu’,
‘Açıklama’ => __ (‘Bu gönderimi etkinleştir.’, ‘Njengahplus’),
‘Varsayılan’ => ‘Evet’
),
‘başlık’ => dizi (
‘Başlık’ => __ (‘başlık’, ‘njengahplus’),
‘type’ => ‘metin’,
‘Açıklama’ => __ (‘Sitede görüntülenecek başlık’, ‘Njengahplus’),
‘varsayılan’ => __ (‘njengahplus nakliye’, ‘njengahplus’)
),
);
} Sonuçları kontrol etmek için aşağıdaki adımları izleyin:
WordPress sitenizi girin ve pano olarak gösterge paneline erişin Gösterge paneli menü kullanıcısından kaçının, WooCommerce> Gönderim sekmesini tıklayın ve aşağıda gösterildiği gibi NJengahplus gönderimine tıklayın:
Onay kutusunu etkinleştirin ve değişikliği kaydet.
Nakliye yöntemini 100 kg’a kadar gönderebiliriz. Daha sonra kurallar hemen değişirse ayarlarda düzenlenmesine izin vereceğiz. Bunu ayarladıktan sonra, ayar kodu şöyle görünecektir: form_fields = dizi (
‘Etkinleştirilmiş’ => dizi (
‘başlık’ => __ (‘etkinleştir’, ‘njengahplus’),
‘type’ => ‘onay kutusu’, ‘Açıklama’ => __ (‘Bu gönderimi etkinleştir.’, ‘Njengahplus’),
‘Varsayılan’ => ‘Evet’
),
‘başlık’ => dizi (
‘Başlık’ => __ (‘başlık’, ‘njengahplus’),
‘type’ => ‘metin’,
‘Açıklama’ => __ (‘Sitede görüntülenecek başlık’, ‘Njengahplus’),
‘varsayılan’ => __ (‘njengahplus nakliye’, ‘njengahplus’)
),
‘Ağırlık’ => dizi (
‘Başlık’ => __ (‘ağırlık (kg)’, ‘njengahplus’),
‘Tür’ => ‘Numaralar’,
‘Açıklama’ => __ (‘Maksimum Ağırlık İzin Ver’, ‘Njengahplus’),
‘Varsayılan’ => 100
),
);
} Yukarıdaki kodda, şimdi ayarların altındaki maksimum ağırlığı ayarladık. Sonuç bu:
C) Nakliye Maliyetlerini Hesaplayın Nakliye maliyetlerini hesaplamak için, her adımı anlayabilmeniz için her seferinde bir adım hesaplama yöntemini güncelleyeceğiz.
İlk olarak, maliyetleri ağırlığa göre almamız gerekiyor. Bunu yapmak için, bu kodu Calc_shipping yöntemine ekleyin:
<? Php
// …
Genel işlev celcuting_asi dağıtım ($ paket) {
$ ağırlık = 0;
$ maliyet = 0; $ country = $ paket [“hedef”] [“ülke”];
Foreach ($ paketi [‘içerik’] $ öğe_id => $ değerler)
{
$ _Products = $ değer [‘veri’];
$ ağırlık = $ ağırlık + $ _products-> get_berat () * $ değer [‘miktar’];
}
$ ağırlık = wc_get_weight ($ ağırlık, ‘kg’);
eğer ($ ağırlık <= 10) {
$ maliyet = 0;
} elseif ($ ağırlık <= 30) {
$ maliyet = 5;
} elseif ($ ağırlık <= 50) {
$ maliyet = 10;
} değilse {
$ maliyet = 20;
}
}
Yukarıdaki koddan, arabanın ağırlığına dayalı bir maliyetimiz var, seçilen nakliye ülkesinin maliyetini hesaplamalıyız. Bunu yapmak için şu kodu ekleyin:
0,
‘AS’ => 3,
‘Gb’ => 2,
‘Ca’ => 3,
‘Buz’ => 2,
‘De’ => 1,
‘Bu’ => 1
);
$ ZoneHarga = dizi (
0 => 10,
1 => 30,
2 => 50,
3 => 70
);
$ ZoneFromcountry = $ countryZones [$ Country];
$ PriceFromZone = $ ZoneHarga [$ ZoneFromcountry];
$ COST += $ Hargadarizona;
}
Toplam ağırlığa dayalı maliyetleri hesapladık ve nakliye ülkesine dayalı maliyetler de ekledik. Son adım, tarifeleri kaydetmek için bu kodu eklemektir.
Kodun bu bölümdeki ilk snippet’te çalışma şekli, birkaç başlangıç değişkeni tanımladık: $ ağırlık, $ maliyet ve $ ülke. Toplam elde etmek için, sepeti tekrarlayarak ve bir sepetteki her ürüne $ ağırlık değişkenine ağırlık ekleyerek toplam ağırlık elde ederiz. Toplam ağırlığa sahip olduktan sonra, ağırlığı kilogram olarak değiştirmek için WC_GET_weight işlevini kullanıyoruz çünkü bu, nakliye yöntemimizin sınırlarını belirlediği bir birim. O zaman son şey 100kg’a kadar bir sınır belirlemektir. İkinci çekimlerde, $ CountryZones her ülke için bölgeleri ve ikinci diziler her bölge için Depo Fiyatları. Bu İtalya Bölge 1’in sonucu olacak: Bu İspanya Bölgesi 2’nin sonucu olacak:
Bu Kanada bölgesinin sonucu olacak:
Bu kodu uygulamakta zorlanıyorsanız, işte tam kod: $ değerler) { $ _Products = $ değer [‘veri’]; $ ağırlık = $ ağırlık + $ _products-> get_berat () * $ değer [‘miktar’];
}
$ ağırlık = wc_get_weight ($ ağırlık, ‘kg’);
eğer ($ ağırlık <= 10) {
$ maliyet = 0;
} elseif ($ ağırlık <= 30) {
$ maliyet = 5;
} elseif ($ ağırlık 0,
‘AS’ => 3,
‘Gb’ => 2,
‘Ca’ => 3,
‘Buz’ => 2,
‘De’ => 1,
‘Bu’ => 1
);
$ ZoneHarga = dizi (
0 => 10,
1 => 30,
2 => 50,
3 => 70
);
$ ZoneFromcountry = $ countryZones [$ Country];
$ priceFromzone = $ zoneharga [$ zoneFromountry]; $ maliyet += $ hargadarizona;
$ seviye = dizi (
‘id’ => $ this-> id,
‘Etiket’ => $ this-> başlık,
‘maliyet’ => $ ücret
);
$ this-> add_rate ($ fiyat);
}
Sonuç Bu yazıda, Woocommerce’e özel nakliye yöntemleri eklemek için özel bir eklenti oluşturuyoruz. Buna ek olarak, basit adımlarla bir nakliye yöntemi oluşturmanızı sağlayan WooCommerce nakliye ateşi ile paylaştım. Ayrıca, nakliye yöntemlerinin kullanılabilirliği veya maliyeti hesaplanırken, sınırlamalar ve kullanılabilirlik dağıtım yönteminde düzenlenebilir. Ancak, WooCommerce eylemi kullanılarak nakliye yönteminin dışında düzenlenebilirler. Umarım bu öğretici WooCommerce’a özel bir nakliye yöntemi eklemek için bir çözüm sunar. Benzer makaleler
Wooocommerce’deki ürüne GTIN numarası nasıl eklenir
Sepetinize nasıl silinir veya wooocommerce siparişi
Wooocommerce Checkut sayfasına Güven veya Güvenli Logo Nasıl Eklenir
WooCommerce Oturum Açma Onay olmadan: “Dışarı çıkmak istediğinizden emin misiniz?”
WordPress sayfası eklenti olmadan nasıl yönlendirilir?
Wooocommerce Checkout sayfasının ürün görüntüleri nasıl eklenir
Wooocommerce’de üstün ürünler nasıl ayarlanır
Wooocommerce Kupon Kodu Alanı Nasıl Gizlenir
Wooocommerce ürünlerini kategoriye göre nasıl gösterilir
Woocommerce’deki mağaza sayfasından tüm ürünler nasıl gizlenir
Daha iyi kullanıcı deneyimi için wooocommerce kategorisi nasıl sıralanır
Wooocommerce ile dijital ürünler nasıl satılır
WooCommerce Sepetine Not Nasıl Değiştirilir
Belirli kategoriler için ödeme yöntemleri nasıl devre dışı bırakılır
Mağazanız için 30+ En İyi WooCommerce Eklentisi (en ücretsiz) Woocommerce’de Sipariş Durum Mesajı Adını Nasıl Değiştirir
Ödeme sayfalarının özelleştirilmesi için 23 En İyi WooCommerce eklentisi
Varsayılan WooOcommerce ürününün sıralanması nasıl kaldırılır
Eklentinin WordPress’te aktif olup olmadığını nasıl kontrol edilir [3 yol]
Buna ek olarak, gönderim yönteminin birkaç ülke için kullanılabilir olması için eklentimize nasıl birkaç sınır ekleyeceğinizi öğreneceksiniz. Gönderim Yöntemleri için Özel Nakliye Kuralları Bu bölümde, bir kod oluşturmak için kullanacağımız gönderim yöntemi için özel gönderim kuralları oluşturacağız. Nakliye yönteminin maliyeti nasıl hesaplayacağını ve nerede teslim edileceğini belirleyeceğiz. Bu, maliyetlerin teslimat hedef bölgesinin ağırlığı ve bölgesi ile belirleneceği anlamına gelir. Bu örnek için ABD, Kanada, Almanya, Büyük Britanya, İtalya, İspanya ve Kenya’ya göndereceğiz. Kenya, 10 $ için Bölge 0, 30 $ için Bölge 1 İtalyan, 50 $ için İspanyol Bölge 2, İngiltere’nin 50 $ ‘lık Bölge 2, ABD ve Bölge 3 Kanada’nın 70 $ karşılığında olacak.
Tartım için aşağıdaki fiyatları vereceğiz: 0-10kg ücretsiz, 5 $ için 11-30kgs, 10 $ için 31-50kgs ve 20 $ için 51-100kgs. Kodlamaya başlamaya hazır olabilirsiniz, ancak henüz değil! İlk olarak, WooCommerce Nakliye API’sı hakkında bilgi edinmeniz gerekir. Özel bir nakliye yöntemi oluşturmak istediğinizde, Woocommerce WC_shipping_method’dan Soyut Sınıfı’ndan sınıfı genişletmeniz gerekir. Belirtilen birkaç öznitelik vardır, yani: $ id: id (slug, anahtar kelime) Gerekli teslimatımız.
$ Sayı: Bu bir tamsayı kimliğidir.
$ Method_title: Gönderim adımız yöneticide listelenmiştir.
$ Method_description: Gönderimizin kısa bir açıklaması yöneticide (isteğe bağlı) görüntülenir.
$ ENABLID: String Boolean, “Evet” veya “Hayır”, teslimatımızın etkinleştirilip etkinleştirilmeyeceği ve kullanılamayacağı konusunda bilgi sağlayan bilgiler.
$ Title: Sitemizde gönderim adımızı görüntülemek için kullanılır.
$ Kullanılabilirlik: Bu, gönderimin mevcut olup olmadığını belirler.
$ Ülke: Bu yöntemin etkinleştirildiği ülkenin dizisi. Varsayılan değer boş bir dizidir.
$ Tax_Status: Varsayılan değer vergilendirilebilir. Vergiye tabi bir kalem varsa, vergi uygulanacaktır.
$ ücret: varsayılan değer 0
$ Minimum_fee: Varsayılan yöntem ve değer için minimum maliyet boş.
$ Has_settings: Bu, bu yöntemin herhangi bir düzenleme olup olmadığını belirler. Varsayılan değer doğrudur.
$ Destekler: Bu yöntemle desteklenen özellikleri içeren dizi. Varsayılan değer boş bir dizidir.
$ Oranlar: Bir dizi tarife ve nakliye maliyetlerini kaydetmek için bu doldurulmalıdır. Varsayılan değer boş bir dizidir.
WC_shipping_method’da belirtilen yöntemler şunlardır:
IS_Taxable (): Bu, vergiyi nakliye oranının üzerindeki hesaplamamız gerekip gerekmese de döndürür. Add_rate ($ args = array ()): Bu, $ args parametresinde belirtilen nakliye oranını $ Rays özniteliğine iter.
Has_settings (): Bu, $ Has_settings öznitelik değerini döndürür.
IS_available (): Gönderim mevcutsa ve $ Ülke özelliklerinde düzenlenen ülkeler varsa ve $ kullanılabilirlik özellikleri, belirli veya dahil edilmeyen değerlerle düzenlenirse, ülke nakliye için kullanılabilirse bu doğru veya yanlıştır. .
Get_title (): Bu, bu gönderimin başlığını döndürür.
Get_fee ($ ücret, toplam $): Bu, bu sevkiyatın maliyetinin değerini $ ücrete ve toplam ayrıştırmaya dayalı olarak döndürür.
Destekler ($ Özellik): Bu gönderim yöntemi özellikleri destekliyor veya desteklemiyorsa bu döner.
WC_shipping_method sınıfı wc_settings_api sınıfını genişlettiğinden, burada basitlik amacıyla açıklamayacağım daha fazla özellik ve yöntem var.
Ayrıca, nakliye ayarlarını alabilmesi veya ayarlayabilmesi ve gerçek nakliye maliyetlerini hesaplayabilmesi için başka yöntemlerin belirlenmesi gerekir. Bu yöntem burada listelenmiştir:
İnit (): Bu alanları ve ayarları yapar. Bununla birlikte, içindeki yöntemi kullandığımız ve __Constructor yönteminde çağırdığımız sürece farklı adlandırılabilir.
Calculate_shipping ($ paketi): Bu yöntem bu nakliye maliyetini hesaplamak için kullanılır ve paket gönderilecek ürünle bir çizgidir.
Nakliye hesaplama yöntemine odaklanmak istiyorum. Örneğimiz için bu yöntemi kullanacağız ve Add_Rate yöntemine ekleyeceğiz. Bu yöntem, aşağıdakiler gibi çeşitli seçeneklere sahip diziler alacaktır:
ID: Bu tarife kimliğidir. Etiket: Bu tarife için bir etikettir.
Maliyet: Teslimat Sayısı.
Vergiler: Verginin Woocommerce tarafından hesaplanması için bir dizi vergi aldı ya da hiç almadı. Vergi almak istemiyorsanız, sahte alabilir.
Calc_tax: Bu perorder veya per_item alır. Per_item kullanırsanız, bir dizi ücret sağlanmalıdır.
Woocommerce eklentisinde belirtilen WordPress filtresini kullanarak, sınıf adımıza devam ederek, kayıtlı yöntemler dizisine gönderim yöntemimizi ekleyen diziyi almak için bir WordPress filtresi kullanacağız. Filtreye wooocommerce_shipping_methods denir.
Masada bununla birlikte, paylaşacağım PHP snippet’teki tüm konsepti anlayabilmeniz için bu kısa öğreticinin kodlama bölümüne girelim. a) Yeni Bir Nakliye Sınıfı Oluşturma Adımları Bu bölümde, gönderim yöntemimizi WooCommerce’ı genişleten yeni bir eklenti olarak oluşturacağız.
İlk olarak, WP-Content> eklentileri açmanız ve yeni bir klasör oluşturmanız gerekir. Bunun için Njengah -Helfer adını kullanacağım
O zaman, aynı adlı bir dosya oluşturmanız gerekir Njengah -shiping.php
Bu dosyaya aşağıdaki kodu ekleyin:
id = ‘njengahplus’;
$ this-> metod_title = __ (‘njengahplus nakliye’, ‘njengahplus’);
$ this-> metod_description = __ (‘özel njengahplus,’ njengahplus ‘);
$ this-> init ();
$ this-> enabled = isset ($ this-> ayarlar [‘etkin’])? $ this-> ayarlar [‘etkin’]: ‘evet’;
$ this-> title = isset ($ this-> ayarlar [‘başlık’])? $ this-> ayarlar [‘başlık’]: __ (‘njengah nakliye’, ‘njengahplus’);
}
/**
* Ayarlarınızı başlatın
*
* @Access Public
* @kurnal iptal edildi
*/
İnit işlevi () {
// API ayarlarını yükleme
$ this-> init_form_fields ();
$ this-> init_settings ();
// Varsa Yöneticiye Ayarları Kaydet
Add_action (‘wooocommerce_update_options_shiping_’. $ This-> id, dizi ($ this, ‘process_admin_options’));
}
/**
* Bu teslimat için ayarlar alanını belirleyin
* @kurnal iptal edildi
*/
İnit_form_fields () işlevi {
// Ayarlarımızı buraya ekleyeceğiz
}
/**
* Bu işlev, nakliye maliyetlerini hesaplamak için kullanılır. Bu işlevde, ağırlığı, boyutları ve diğer parametreleri kontrol edebiliriz.
*
* @Access Public
* @param karışık $ paketi
@kurnal iptal edildi
*/
Genel işlev celcuting_asi dağıtım ($ paket) {
// Buraya ücret, tarife ve mantık ekleyeceğiz
}
}
}
}
Add_action (‘wooocommerce_shipping_init’, ‘njengahplus_shipping_method’);
İşlev add_njengahplus_shiping_method ($ yöntemler) {$ yöntem [] = ‘njengahplus_shiping_method’;
geri $ yöntem;
}
add_filter (‘wooocommerce_shipping_methods’, ‘add_njengahplus_shipping_method’);
} Nasıl çalışır
İlk olarak WPINC’in sürekli olarak tanımlanıp tanımlanmadığını kontrol ettik. Belirlenmezse, birisinin bu dosyaya doğrudan veya WordPress değil bir konumdan erişmeye çalıştığı anlamına gelir.
O zaman WooCommerce’in aktif olup olmadığını kontrol etmeliyiz. Burada WooCommerce.php’nin Active_Plugins seçeneği altında veritabanında depolanan etkin eklenti dizisinde olup olmadığını kontrol ediyoruz.
Wooocommerce_shipping_init, WOOOCOMMERCE nakliye için ana eylemdir ve kullanılmadan önce tüm nakliye sınıflarını içerir. Bu eylemin kullanılması, WooCommerce başlatıldıktan sonra ve WooCommerce’in kullanması için doğru yerde gönderim yöntemimizin dahil edilmesini sağlayacaktır.
__Construct yöntemi birkaç genel öznitelik ayarlar ve ayarlar, INIT yöntemindeki veritabanından yüklendikten sonra bazıları kolayca yazılabilir.
Diğer yöntemler boş bırakılır çünkü daha sonra öğreticide tanımlayacağız.
Ardından, aşağıda gösterilen adımları kullanarak eklentiyi etkinleştirmek için gitmeniz gerekir:
WordPress sitenizi girin ve yönetici kullanıcısı olarak gösterge tablosuna erişin.
Gösterge Tablosu menüsünden, eklentiyi tıklayın ve aşağıda gösterildiği gibi teslimatın ortasını etkinleştirin:
Eklentiyi etkinleştirdikten sonra WooCommerce> Ayarlarını Açın. WooCommerce sekmesini tıklayın, ardından NJengahplus Nakliye’yi tıklayın. Bunu görebilmelisiniz:
b) Oluşturduğumuz eyalet nakliye yönteminin kullanılabilirliğini yalnızca belirtilen ülke listesinde kullanılabilir.
<? Php
// …
$ this-> metod_description = __ (‘özel njengahplus,’ njengahplus ‘);
$ this-> country = dizi (
‘AS’, // Amerika Birleşik Devletleri
‘CA’, // Kanada
‘De’, // Almanya
‘GB’, // Birleşik Krallık
‘It’, // İtalya
‘Buz’, // İspanyol
‘HR’ // Kenya
);
$ this-> init ();
// … Nitelikler Kodu Kullanılabilirliği nasıl ‘dahil’ olarak ayarlanır, böylece bu sevkiyat yalnızca ülkenin niteliklerinde ülke için kullanılabilir.
WooCommerce, nakliye ülkesinin öznitelik ülkesine dahil edilip edilmediğini kontrol edecektir. Ayarlarınızın yalnızca bu kodu kopyalamanız ve init_form_fields yöntemimizi doldurmanız gerekir: form_fields = dizi (
‘Etkinleştirilmiş’ => dizi (
‘başlık’ => __ (‘etkinleştir’, ‘njengahplus’),
‘type’ => ‘onay kutusu’,
‘Açıklama’ => __ (‘Bu gönderimi etkinleştir.’, ‘Njengahplus’),
‘Varsayılan’ => ‘Evet’
),
‘başlık’ => dizi (
‘Başlık’ => __ (‘başlık’, ‘njengahplus’),
‘type’ => ‘metin’,
‘Açıklama’ => __ (‘Sitede görüntülenecek başlık’, ‘Njengahplus’),
‘varsayılan’ => __ (‘njengahplus nakliye’, ‘njengahplus’)
),
);
} Sonuçları kontrol etmek için aşağıdaki adımları izleyin:
WordPress sitenizi girin ve pano olarak gösterge paneline erişin Gösterge paneli menü kullanıcısından kaçının, WooCommerce> Gönderim sekmesini tıklayın ve aşağıda gösterildiği gibi NJengahplus gönderimine tıklayın:
Onay kutusunu etkinleştirin ve değişikliği kaydet.
Nakliye yöntemini 100 kg’a kadar gönderebiliriz. Daha sonra kurallar hemen değişirse ayarlarda düzenlenmesine izin vereceğiz. Bunu ayarladıktan sonra, ayar kodu şöyle görünecektir: form_fields = dizi (
‘Etkinleştirilmiş’ => dizi (
‘başlık’ => __ (‘etkinleştir’, ‘njengahplus’),
‘type’ => ‘onay kutusu’, ‘Açıklama’ => __ (‘Bu gönderimi etkinleştir.’, ‘Njengahplus’),
‘Varsayılan’ => ‘Evet’
),
‘başlık’ => dizi (
‘Başlık’ => __ (‘başlık’, ‘njengahplus’),
‘type’ => ‘metin’,
‘Açıklama’ => __ (‘Sitede görüntülenecek başlık’, ‘Njengahplus’),
‘varsayılan’ => __ (‘njengahplus nakliye’, ‘njengahplus’)
),
‘Ağırlık’ => dizi (
‘Başlık’ => __ (‘ağırlık (kg)’, ‘njengahplus’),
‘Tür’ => ‘Numaralar’,
‘Açıklama’ => __ (‘Maksimum Ağırlık İzin Ver’, ‘Njengahplus’),
‘Varsayılan’ => 100
),
);
} Yukarıdaki kodda, şimdi ayarların altındaki maksimum ağırlığı ayarladık. Sonuç bu:
C) Nakliye Maliyetlerini Hesaplayın Nakliye maliyetlerini hesaplamak için, her adımı anlayabilmeniz için her seferinde bir adım hesaplama yöntemini güncelleyeceğiz.
İlk olarak, maliyetleri ağırlığa göre almamız gerekiyor. Bunu yapmak için, bu kodu Calc_shipping yöntemine ekleyin:
<? Php
// …
Genel işlev celcuting_asi dağıtım ($ paket) {
$ ağırlık = 0;
$ maliyet = 0; $ country = $ paket [“hedef”] [“ülke”];
Foreach ($ paketi [‘içerik’] $ öğe_id => $ değerler)
{
$ _Products = $ değer [‘veri’];
$ ağırlık = $ ağırlık + $ _products-> get_berat () * $ değer [‘miktar’];
}
$ ağırlık = wc_get_weight ($ ağırlık, ‘kg’);
eğer ($ ağırlık <= 10) {
$ maliyet = 0;
} elseif ($ ağırlık <= 30) {
$ maliyet = 5;
} elseif ($ ağırlık <= 50) {
$ maliyet = 10;
} değilse {
$ maliyet = 20;
}
}
Yukarıdaki koddan, arabanın ağırlığına dayalı bir maliyetimiz var, seçilen nakliye ülkesinin maliyetini hesaplamalıyız. Bunu yapmak için şu kodu ekleyin:
0,
‘AS’ => 3,
‘Gb’ => 2,
‘Ca’ => 3,
‘Buz’ => 2,
‘De’ => 1,
‘Bu’ => 1
);
$ ZoneHarga = dizi (
0 => 10,
1 => 30,
2 => 50,
3 => 70
);
$ ZoneFromcountry = $ countryZones [$ Country];
$ PriceFromZone = $ ZoneHarga [$ ZoneFromcountry];
$ COST += $ Hargadarizona;
}
Toplam ağırlığa dayalı maliyetleri hesapladık ve nakliye ülkesine dayalı maliyetler de ekledik. Son adım, tarifeleri kaydetmek için bu kodu eklemektir.
Kodun bu bölümdeki ilk snippet’te çalışma şekli, birkaç başlangıç değişkeni tanımladık: $ ağırlık, $ maliyet ve $ ülke. Toplam elde etmek için, sepeti tekrarlayarak ve bir sepetteki her ürüne $ ağırlık değişkenine ağırlık ekleyerek toplam ağırlık elde ederiz. Toplam ağırlığa sahip olduktan sonra, ağırlığı kilogram olarak değiştirmek için WC_GET_weight işlevini kullanıyoruz çünkü bu, nakliye yöntemimizin sınırlarını belirlediği bir birim. O zaman son şey 100kg’a kadar bir sınır belirlemektir. İkinci çekimlerde, $ CountryZones her ülke için bölgeleri ve ikinci diziler her bölge için Depo Fiyatları. Bu İtalya Bölge 1’in sonucu olacak: Bu İspanya Bölgesi 2’nin sonucu olacak:
Bu Kanada bölgesinin sonucu olacak:
Bu kodu uygulamakta zorlanıyorsanız, işte tam kod: $ değerler) { $ _Products = $ değer [‘veri’]; $ ağırlık = $ ağırlık + $ _products-> get_berat () * $ değer [‘miktar’];
}
$ ağırlık = wc_get_weight ($ ağırlık, ‘kg’);
eğer ($ ağırlık <= 10) {
$ maliyet = 0;
} elseif ($ ağırlık <= 30) {
$ maliyet = 5;
} elseif ($ ağırlık 0,
‘AS’ => 3,
‘Gb’ => 2,
‘Ca’ => 3,
‘Buz’ => 2,
‘De’ => 1,
‘Bu’ => 1
);
$ ZoneHarga = dizi (
0 => 10,
1 => 30,
2 => 50,
3 => 70
);
$ ZoneFromcountry = $ countryZones [$ Country];
$ priceFromzone = $ zoneharga [$ zoneFromountry]; $ maliyet += $ hargadarizona;
$ seviye = dizi (
‘id’ => $ this-> id,
‘Etiket’ => $ this-> başlık,
‘maliyet’ => $ ücret
);
$ this-> add_rate ($ fiyat);
}
Sonuç Bu yazıda, Woocommerce’e özel nakliye yöntemleri eklemek için özel bir eklenti oluşturuyoruz. Buna ek olarak, basit adımlarla bir nakliye yöntemi oluşturmanızı sağlayan WooCommerce nakliye ateşi ile paylaştım. Ayrıca, nakliye yöntemlerinin kullanılabilirliği veya maliyeti hesaplanırken, sınırlamalar ve kullanılabilirlik dağıtım yönteminde düzenlenebilir. Ancak, WooCommerce eylemi kullanılarak nakliye yönteminin dışında düzenlenebilirler. Umarım bu öğretici WooCommerce’a özel bir nakliye yöntemi eklemek için bir çözüm sunar. Benzer makaleler
Wooocommerce’deki ürüne GTIN numarası nasıl eklenir
Sepetinize nasıl silinir veya wooocommerce siparişi
Wooocommerce Checkut sayfasına Güven veya Güvenli Logo Nasıl Eklenir
WooCommerce Oturum Açma Onay olmadan: “Dışarı çıkmak istediğinizden emin misiniz?”
WordPress sayfası eklenti olmadan nasıl yönlendirilir?
Wooocommerce Checkout sayfasının ürün görüntüleri nasıl eklenir
Wooocommerce’de üstün ürünler nasıl ayarlanır
Wooocommerce Kupon Kodu Alanı Nasıl Gizlenir
Wooocommerce ürünlerini kategoriye göre nasıl gösterilir
Woocommerce’deki mağaza sayfasından tüm ürünler nasıl gizlenir
Daha iyi kullanıcı deneyimi için wooocommerce kategorisi nasıl sıralanır
Wooocommerce ile dijital ürünler nasıl satılır
WooCommerce Sepetine Not Nasıl Değiştirilir
Belirli kategoriler için ödeme yöntemleri nasıl devre dışı bırakılır
Mağazanız için 30+ En İyi WooCommerce Eklentisi (en ücretsiz) Woocommerce’de Sipariş Durum Mesajı Adını Nasıl Değiştirir
Ödeme sayfalarının özelleştirilmesi için 23 En İyi WooCommerce eklentisi
Varsayılan WooOcommerce ürününün sıralanması nasıl kaldırılır
Eklentinin WordPress’te aktif olup olmadığını nasıl kontrol edilir [3 yol]