Woocommerce Woothemes Siparişi Eklentisini Genişletme – Açılır Kullanılabilir

Ah Woothemes’den WooCommerce rezervasyonu, WooCommerce için çok iyi bir rezervasyon uzantısı ne kadar bekliyoruz ve nihayet geldiğinde, hayal kırıklığına uğratmaz – güçlü, istikrarlı, çok yönlü ve elbette diğer tüm büyük Woothemes uzantılarıyla eşleşir.Ancak ne yazık ki, herhangi bir WordPress eklentisi geliştiricisinin binlerce kullanım durumunu özetlemesi imkansızdır (şimdi milyonlarca mı?) E-Niaga mağazaları WooCommerce tarafından güçlendirilir ve eklenti, yüzlerce talep yanı sıra yüzlerce talep için Temel işlevselliğinde ayarlama veya ayarlama.Neyse ki, her Woothemes eklentisi gibi, oynatılacak birçok kanca var ve diğerleri% 100 WP ile birleştiriliyor, böylece çekirdek dosyaya dokunmak zorunda kalmadan genişlemesi çok kolay.Örtbas edeceğim
DatePicker’dan Damgalı Tarih Mevcut Seçmenler Tarih/Woocommerce Sipariş Eklentisi ile doğrudan kutudan aldığınız tarih/saat çok iyidir, ancak açılır tarihlerin listesi olan bazı mağazalar için daha kullanıcı dostu bir arayüzdür.İşte nasıl yapabilirsiniz: Bu kodu makalenin sonunda temel bağlantıda paylaşacağım, dürüstüm.Bu eklentideki ilk ana hedef DatePicker alanını düşecek şekilde değiştirmek olsa da, ilk kod satırı aslında $ wswp_dates_built = false;- Bu, global bir değişken (global olarak ne demek istediğimi bilmiyorsanız Google PHP değişkeninin kapsamı) ayarlar.Doğru hatırlıyorsam, bu, açılır tarihte aynı tarihin birkaç setini önler, çünkü seçmen alanı aslında sipariş formunda iki/üç gerçek alana bölünür.
Yani … Türünün seçmen saha tarihini değiştiren ilk varış noktasına = Tarih seçicisi, kullanılabilir tarih şeklinde seçenekle birlikte açılır ve tamamlayın. Dediğim gibi, gerçek tarih seçmenleri birkaç alana bölünüyor, bunlardan birini tıklamak seçmenleri büyütecek ve her şeyin değeri maliyet hesaplamasına dahil ediliyor. Açılır liste sadece 1 alandır, bu yüzden tek yapmamız gereken orijinal alanı kaydetmek, gizlemek ve yeni açılır menüsümüzü yerine göstermek. Daha sonra, fiyat sağlamak ve verilen blokların satın alınmasına izin vermek için gerekenleri woo rezervasyonları vermek için açılır seçim seçimini hızla koyabiliriz. Neyse ki bunları sadece iyi bir filtre.add_filter (‘Booking_form_fields’, ‘wswp_booking_form_fields’) kullanarak yapabiliriz; İşlev wswp_booking_form_fields ($ fields) {global $ wswp_dates_built; $ i = 0; foreach ($ field olarak $ field) {$ new_fields [$ i] = $ field; if ($ field [‘type’] == “tarih seçicisi” && $ wswp_dates_built === yanlış) {$ s = $ i; $ new_fields [$ s] [‘class’] = dizi (‘seçici gizli’); $ i ++; $ new_fields [$ i] = $ field; $ new_fields [$ i] [‘type’] = “Seç”; $ new_fields [$ i] [‘options’] = wswp_build_options ($ field [‘kullanılabilirlik_rules’] [0]); $ new_fields [$ i] [‘class’] = dizi (‘Picker-Chooser’); } $ i ++; } return $ new_fields; } SO … önce burada ihtiyacımız olduğu gibi $ wswp_dates_built global giriyoruz. Daha sonra (orijinal dizi ilişkili olduğu için), değerde değişiklik yaptığımızda dizi öğelerini izlemek için kullanabileceğimiz sayısal hesaplama değişkenini başlatırız.
Ardından, filtreye $ olarak $ olarak iletilen gerçek form alanına giriyoruz ve tekrar dağıtılacak yeni bir alan dizileri oluşturuyor – $ new_fields. İlk olarak tüm alanları sakladığımız için, her alanı $ New_Fields dizisinde tutuyoruz. Seçmen tarihi alanı olup olmadığını kontrol ediyoruz ve eğer bir tarih yapmadıysak hareket edeceğiz. Şu anda $ i değeri olan bir dizide depolanan orijinal alana “Seçici Gizli” sınıfını ekledik ve sonra aynı alandan diziye klon eklemek için $ i ++ ile 1 ila $ i ekledik Yeni $ i değerinde. Daha sonra bu alana açılır duruma dönüştürmek için değişiklikler yapıyoruz. Türü “seç” olarak değiştiriyoruz, DOM’da hedeflemek için sınıf seçmenleri ekliyoruz (belge nesne modeli) ve ayrıca alana ‘opsiyon’ öğesini ekliyoruz, Burada işlevden gelen ve açılır listemizden gelen tarihimizi burada kaydediyoruz – bir sonraki işlevi göstereceğim. Kodun geri kalanı yalnızca $ i tekrarlar ve döngüyü geri kalan alanlara tekrarlar ve şimdi sipariş formunuzu oluşturan bir alan koleksiyonu olarak $ new_fields döndürür. Şimdi, orijinal seçmenlerin alanı için kullanılabilirlik kurallarını geçtiğimiz WSWP_BUILT_OPtions kodunun anahtarı olan işlev. Kullanılabilirlik kurallarının, sipariş edilebilecek ürünler yaparken kullanılan düzenlemelerden yapılan çok karmaşık bir düzenleme olduğunu merak ediyorsanız. İşlevimizde, mevcut tarihi almak için diziyi açıklıyoruz.
İşlev wswp_build_opations ($ kurallar, $ bina = false) {global $ wswp_dates_built;$ dates = array ();foreach ($ DateSet olarak $ kurallar) {if ($ dateset [0] == “özel”) {$ yıl = reset (array_keys ($ dateSet [1]);$ ay = reset (array_keys ($ dateSet [1] [$ yıl]));$ gün = reset (array_keys ($ dateSet [1] [$ yıl] [ay]);$ dime = strtotime (yıl. “-“. $ ay. “-“. $ gün);$ tarihler [$ dTime] = tarih (“d/m/y”, $ dime);}} ksort ($ tarihler);foreach ($ Key => $ Tarih olarak $ Dates) {$ Dates [Date (“YMD”, $ Key)] = $ tarih;Unset ($ Dates [$ Key]);} $ wswp_dates_built = true;Dönüş $ tarihleri;} Sizi bu işlevdeki satırdan sonra satırdan sıkılmayacağım çünkü daha sonra dizinin yapısına girmek zorundayım.Google’ın işlevlerini daha fazla bilmek isteyenler için, yorumlarda sorun ve $ kural değişkeninde print_r ile oynamak.

Son olarak, açılır listemizi yalnızca DOM’daki doğru yere taşımamız ve olay işleyicisini açılır etkinliğe eklememiz gerekiyor, böylece tarih seçildiğinde orijinal seçici alanını gerekli değerle dolduracak. Bu oldukça kısa bir JavaScript parçası olduğu için, bir wp_footer kullanarak altbilgiye koymaya karar verdim: add_action (‘wp_footer’, ‘wswp_css_js’); İşlev wswp_css_js () {// altbilgiye yeni stil sayfası ve js dosyasını haklı çıkarmak için yeterli değil? }
<? PHP} ve Voila – Şimdi sipariş edilebilecek bir ürün sayfasına ve seçmenlerin alanını gördüğünüz yerde, şimdi iyi bir açılır liste göreceksiniz.

admin

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir