Categorías
1win Turkiye

1win Türkiye Giriş Yap Ve Oyna Bonus Twenty-four, 00

1win Türkiye Giriş Yap Ve Oyna Bonus Twenty-four, 000

1win Giriş Türkiye ️ 1 Win Bet Casino ️

Hesapla ilgili sorunlar veya belirli sorular ortaya çıktığında, 1Win kumarhanesi kullanıcıları her zaman yardım alabilirler. «Soru ve Cevaplar» bölümüyle başlamanız önerilir, burada platform hakkında durante sık sorulan soruların cevapları sunulmuştur. Doğrulama işlemi genellikle 1 ila 7 iş günü sürmektedir. Bu basit adımları takip ederek doğrulama işlemini tamamlayabilir ve 1Win BK’nın tüm özelliklerine ve fon çekme özelliğine tam erişim elde edebilirsiniz. 1Win casino’nun oyun faaliyeti lisansını Curacao’nun yetkili organı, Curacao eGaming vermektedir. Bu, platformdaki tüm kullanıcıların kayıt ve oyun faaliyetlerinin yasallığını garanti eder.

Sonuçta, aynalar, sunucudaki aynı veritabanına eriştiği için teknik olarak tam bir kopyadır. Sitede, oyuncuların pra yatırma, bahis ve kayıp limitlerini belirlemelerine yardımcı olacak araçlar bulunur. Ayrıca bir süreliğine kumardan uzak durma seçenekleri para mevcuttur. 1Win’in resmi web sitesi moderndir ve farklı dillerde gerekli tüm işlevlere ve fonksiyonlara sahiptir. Navigasyon basit empieza kullanışlıdır, aşırı bölüm yüklemesi yoktur.

In — Çevrimiçi Spor Bahislerinin Resmi Web Sitesine Giriş Yapın

Bonus freebetleri neredeyse tüm bahis şirketlerinin bonus programlarında bulunması yaygın bir uygulamadır. 1Win de bir istisna değildir, ancak burada freebies kalıcı promosyonların bir parçası değildir, geçicidir. Burada anlam farklıdır, ancak teşvik daha ag ilginçtir. Ve bahisçinin katılımı, 5 ya da daha fazla etkinlik içeren tüm ekspreslerde otomatik olarak sabitlenir. Net artıda nenni kadar çok etkinlik kapanırsa, 1Win’in ekleyeceği bonus miktarı um kadar büyük olacaktır 1 win.

  • Herhangi bir cihazdan 1Win’i kullanırken otomatik olarak mobil site sürümüne geçersiniz, bu weil telefonunuzun ekran boyutuna mükemmel bir şekilde uyum sağlar.
  • Eğer 1win açıldıysa — destek servisinin sizin dilinizi konuştuğu anlamına gelir.
  • Sonuçta hangisinin belirleyici olacağını tahmin etmek zor.
  • Bahis  , bir oyuncunun belirli bir spor etkinliğine yatırdığı para miktarıdır.
  • 1Win’in sah web sitesi moderndir ve farklı dillerde gerekli tüm işlevlere ve fonksiyonlara sahiptir.
  • E-posta yoluyla ise iki gün içinde yanıt alabilirsiniz.

Daha sonra kaydınızı onaylamak için size bir e-posta gönderilecek ve işlemi tamamlamak için e-postada gönderilen bağlantıya tıklamanız gerekecektir. Cep telefonuyla kaydolmayı tercih ediyorsanız, tek yapmanız gereken aktif telefon numaranızı girmek ve «Kaydol» düğmesine tıklamaktır. Bundan sonra kişisel hesabınıza erişmek için kullanıcı adı ve şifre içeren bir TEXT MESSAGE gönderilecektir. Kumarda garantili kazançlar için hiçbir ipucu yoktur.

In’e Para Yatırma Empieza Çekme İşlemleri Nasıl Yapılır?

Tüm bonus özellikleri, ister freespin’li freebies olsun, ister yatırımsız added bonus parası ile bahis olsun, manuel olarak kullanılır. Kayıt bonusları da diğer bonuslar gibi bahis şartlarına tabidir. Teklifin detaylı şartlarını okuyarak geçerlilik süresi ve bahis gereksinimlerini öğrenin. Belirlediğiniz şifreyi kullanırız, ardından giriş bilgilerinizi veya e-posta/numaranızı belirtiriz. Mobil uygulamada sadece bir kez giriş yapmanız yeterlidir.

1Win Türkiye, gambling establishment oyun tutkunlarına adeta bir cennet sunuyor. Sitede yüzlerce farklı slot oyunu, canlı casino masaları, klasik masa oyunları ve daha fazlası mevcut. Dünyanın önde gelen yazılım sağlayıcılarıyla iş birliği yapan 1Win, her zevke» «ve bütçeye uygun oyunlar sağlıyor. Kazançlı goldmine slotlarından, görsel bir şölene dönüşen movie slotlara kadar geniş bir yelpazede oyun deneyimi yaşamak mümkün.

Promosyon Kodu Nasıl Girilir

1Win’e üye olmak için güncel giriş adresine gidip «Kayıt Ol» butonuna tıklayarak gerekli bilgileri doldurmanız yeterlidir. Evet, sitede rulet, blackjack, Football Studio gibi yaklaşık twelve adet Türkçe oyun bulunmaktadır. Para yatırma yöntemlerimiz ve limitlerimizi aşağıdaki tabloda inceleyebilirsiniz. Bundan sonra, fifteen dakika içinde, em virtude de 1Win com hesabınızın bonus bakiyesine yatırılacaktır. Teklif, yalnızca en yeni 1win müşterilerinin ilk dört depozitosu için geçerlidir.

Cihazınızdaki 1win mobil uygulaması, istediğiniz zaman, istediğiniz yerde bahis oynamanıza olanak tanır. Apk dosyasını indirme işlemi fazla zaman almaz ve kurulumu basittir ve her kullanıcı için kullanılabilir. Yeni gelenlere büyük nakit bonuslar içeren bir başlangıç paketi sağlanır + mevsimsel promosyonlar sunulur. Bazı slotlar için, oyuncunun sadece oynayarak elde edebileceği benzersiz bonuslar mevcuttur.» «[newline]Freebies için de genellikle belirli bir miktar bahis yapmak ya da tüm bahislerde belirli bir limite ulaşmak gerekir. 1Win’in hoşgeldin bonusları, alternatif bahis mağazaları tarafından sunulanlardan çok daha kapsamlıdır. Ana hesabınızı yenilediğinizde, bir oyuncu ankle rehab ebook standart Hoş Geldin bonusunu hem de mevcut promosyonlardan birini alabilir.

Bahisçi Ölçeği

Klasik meyve slotlarından modern day video slotlara kadar geniş bir yelpazede seçenekler mevcuttur. Ödül çarkları, ücretsiz dönüşler ve bonus oyunları gibi heyecan verici özellikler, slot» «deneyimini daha da keyifli hale getirir. 1Win ayrıca milyonlarca Türk Lirası ödül sunan progresif jackpot slotlarına da ev sahipliği yapar. Sadece birkaç dönüşte hayatınızı değiştirecek büyük ikramiyelere ulaşma şansınız var.

  • Sonuçta, aynalar, sunucudaki aynı veritabanına eriştiği için teknik olarak tam bir kopyadır.
  • Bunları kişisel hesabınızda etkinleştirebilir, bir freebet veya tekrar para yatırma bonusu alabilirsiniz.
  • Tüm bonus özellikleri, ister freespin’li freebies olsun, ister yatırımsız benefit parası ile bahis olsun, manuel olarak kullanılır.
  • Oyuncuların para yatırma, bahis empieza kayıp limitlerini belirlemelerine yardımcı olacak araçlar sunulmaktadır.

Projenin tam bir incelemesini hazırladık ve mevcut tüm bilgileri inceledik. Şimdi bu bahis şirketinin ne olduğunu tam olarak öğrenebilirsiniz. Tanınmış ve lisanslı sağlayıcılardan 11. 000’den fazla oyun içeren yasal bir kumarhanedir. Tüm oyunlar, kullanıcıların ihtiyaç duyduklarını hızlı bir şekilde bulabilmeleri için uygun şekilde bölümlere ayrılmıştır. Bunu telefonunuzdan veya tabletinizden yapmak çok daha uygundur. 1win bahisçisinin destek bölümü, sitenin mevcut olduğu tüm dillerde hizmet vermektedir.

Şirketin Tarihçesi

Ve artık yatırımın “ilk” olması gibi bir zorunlulukları da yok. 1Win’de para yatırma empieza çekme işlemleri çeşitli ödeme yöntemleri ile gerçekleştirilebilir. Kredi kartı, banka havalesi, e-cüzdanlar ve kripto paralar gibi seçenekler mevcuttur. 1Win Türkiye, sürekli güncellenen promosyonların yanı sıra oyuncularına yenilikler sunar. 1Win ayrıca sorumlu kumar uygulamalarını teşvik etmektedir.

  • Birçok oyuncu bunun spesifik bir bonus tipi değil, daha ziyade bir bonus formu olduğuna inanmaktadır.
  • E-posta yoluyla kaydolmayı seçerseniz, tek yapmanız gereken doğru e-posta adresinizi girmek ve oturum açmak için bir canto oluşturmaktır.
  • Evet, sitede rulet, blackjack, Football Studio gibi yaklaşık ten adet Türkçe oyun bulunmaktadır.
  • Hoş geldin bonuslarından ekspres bonuslara, nakit ödüllerden bedava bahislere kadar birçok fayda bulunmaktadır.

1Win Online casino, çeşitliliği ve sunulan eğlencelerin kalitesiyle kumarhane severleri çeken çevrimiçi uzmanınız olan eğlence platformudur. Tüm bonuslar, web sitesinin sağ üst köşesindeki promosyonlar ve bonuslar bölümünde bulunabilir. Ve bu yöntem hem resmi web sitesinde hem de aynasında çalışır.

Resmi 1 Win Bahis Sitesi

Türkiye’de çevrimiçi bahis ve casino sitelerinin adresleri, erişim engelleri nedeniyle sık sık değişmektedir. Bu nedenle 1Win’in güncel giriş adresini takip etmek önemlidir. Ayrıca 1Win, kumar bağımlılığıyla mücadele edenlere destek sağlayan kuruluşlarla iş birliği yapar.

  • Doğru, zamanında bilgi, doğru kararı vermenize yardımcı olabilir, doğru bahsi yapmanıza yardımcı olabilir ve sizi büyük başarıya götürebilir.
  • Yakında bu segmentte de bir sadakat programı görmeyi umuyoruz.
  • 1Win casino’nun oyun faaliyeti lisansını Curacao’nun yetkili organı, Curacao eGaming vermektedir.
  • Ödüller, yerel oyun içi para birimi» «1Win jetonları şeklinde verilir.
  • 1WIN bahis ofisi, tahmin yeteneklerini denemek ve spor hakkındaki bilgisiyle birlikte kazanmak isteyenler için mükemmel bir platformdur.

Spor bahisleri de mevcut kategorilere dahil değildir. Ancak bahis şirketi bunun geçici bir durum olduğunu vaat ediyor. Yakında bu segmentte de bir sadakat programı görmeyi umuyoruz. Düzenli müşterilerin faydasına olan bir sadakat programı.

Kumarhane Ve Slotlarda Nasıl Oynanır

Bunlar sistem içi ligi mekanizmaları, ikramiyeler empieza spor etkinlikleri ve belirli slotlar için promosyonlara yönelik bireysel tekliflerdir. 1Win, en yeni üyelere ve mevcut kullanıcılara çeşitli bonuslar sunmaktadır. İlk üyelik bonusu, yatırım bonusları ve kayıp bonusları gibi birçok farklı promosyon bulunmaktadır. 1Win de kullanıcılar herhangi bir popüler spor dalına bahis oynayabilir. Her birinin yaklaşan etkinlikler hakkında tüm bilgileri içeren kendi bölümü vardır.

  • Teknik» «destek 7/24 çalışır empieza müşteri sorularına (e-posta, operatörle sohbet, telefonla) 24 saat yanıt vermeyi garanti eder.
  • Bu aktiviteler, 1Win’de oyunu daha da çekici ve karlı good getirir.
  • 1Win para yatırma limitlerinin esnekliği sayesinde kullanıcılar hesaplarına kolayca pra yatırabilmektedir.
  • Yeni gelenlere büyük nakit bonuslar içeren bir başlangıç paketi sağlanır + mevsimsel promosyonlar sunulur.
  • Genellikle, online casino oyunları oynamak için eklenen para ya da freespindir.

Toplam ödül» «havuzu kapanış noktasına kadar sürekli olarak artar. Kim daha üst sıralarda yer alırsa en büyük ödülü alır. Ve bonuslar basittir, onları yatırmak zorunda değilsiniz. Kayıt olurken promosyon kodları gibi depozitosuz bonusların da genellikle işaretlenmesi gerekir. 1Win müşteri hizmetleri, kullanıcıların sorunlarını çözmek için 7/24 hizmet vermektedir.

Bonuslar Nasıl Kullanılır

Ayrıca, doğru alana yazdığınız harf ve rakamların bir kombinasyonudur. Sonuç, yatırımsız kategorideki hesabınıza n’inci tutarın yatırılmasıdır. Ancak mobil uygulamada, yeni kayıt hediyesi biraz farklıdır empieza en iyisi, bu 1Win bonusları üst üste eklenebilir. Bir bahis firmasının bonus programı genellikle bir bahisçinin en çok ilgisini çeken şeydir. Farklı kuruluşlar oranlarda, hizmet işlevselliğinde ve hat çeşitliliğinde olduğu kadar bonuslarda ag farklılık göstermezler. Güvenlik ve adil oyun, 1Win Türkiye’nin önceliklerinden biridir.

  • Tüm bonuslar, web sitesinin sağ üst köşesindeki promosyonlar ve bonuslar bölümünde bulunabilir.
  • Platform, balompié, basketbol, tenis, hokey ve birçok diğer spor dalında geniş bir bahis seçeneği sunmaktadır.
  • Bahislerde birçok faktörün kombinasyonu önemlidir – bilgi, deneyim, analiz vb.
  • Bu basit adımları takip ederek doğrulama işlemini tamamlayabilir ve 1Win BK’nın tüm özelliklerine ve fon çekme özelliğine tam erişim elde edebilirsiniz.
  • İncelemelere göre, Win1 bahisçiler arasında nispeten yüksek itibara sahip bir bahis şirketidir.

Bahis şirketi Curacao’dan bir offshore uluslararası lisansa sahiptir. Güvenilir bir düzenleyici olarak tanınır ve çoğu ülkede yasal olarak faaliyet gösterir. Şirketin herhangi bir bahis mağazası bulunmamaktadır. Her maçın, bahis için mevcut tüm pazarlar ve takım istatistikleri hakkında bilgi bulabileceğiniz kendi sayfası vardır. Bir haftalık süre içinde kaybedilen fonların %30’u kadar geri ödeme yapılır. Mobile uygulama ve PWA, sitenin tüm işlevselliğini destekler.

Destek Hizmeti

Platforma kaydolurken kullanıcılar sıklıkla hoşgeldin bonusu alır, bu başlangıç bakiyesini artırabilir empieza daha fazla heyecan katabilir. Buna ek olarak, bakiyeyi yatırırken oyuncular yatırma işleminde promosyon kodunu kullanabilir, bu da oyun için ek fonlar almanızı sağlar. Bu aktiviteler, 1Win’de oyunu daha da çekici ve karlı hale getirir. 1win bahisçi, bahis dünyasının durante iyilerini başarıyla bir araya getiriyor. Zengin bir yelpazeye, çekici bonuslara, farklı bahis türlerini desteklemesine sahiptir. Bahisçinin ayrıca kullanıcı dostu bir website sitesi, gelişmiş istemci uygulaması ve sağlam bir ödeme araçları seçkisine sahiptir.

  • Açıkçası, yüksek kazanma olasılığına ve düşük oranlara sahip bahislerde yatırımsız şekilde bahis oynamaya sistem tarafından izin verilmez.
  • Casinomuzda renkli slot makineleri, klasik masa oyunlarının yanı sıra kumarhanemizin sanal duvarları içinde heyecan verici canlı krupiye oyunları bulacaksınız.
  • «Soru ve Cevaplar» bölümüyle başlamanız önerilir, burada platform hakkında sobre sık sorulan soruların cevapları sunulmuştur.
  • Bu durum, bonus referans bilgileri ile kanıtlanmaktadır.
  • Hesapla ilgili sorunlar veya belirli sorular ortaya çıktığında, 1Win kumarhanesi kullanıcıları her zaman yardım alabilirler.
  • Platforma kaydolurken kullanıcılar sıklıkla hoşgeldin bonusu alır, bu başlangıç bakiyesini artırabilir empieza daha fazla heyecan katabilir.

Tüm para 1Win best bakiyesine alınır ve kullanıcı istediği zaman çekebilir. 1Win expert kullanıcılar 40’tan fazla farklı disiplinde herhangi bir maça bahis oynayabilir. Her gün binlerce maç mevcuttur ve herkes ilginç bir maç bulabilir. Daha önce bahsettiğimiz en önemli şey bahis oynama ihtiyacıdır. Ancak bu yalnızca yatırımsız bonuslar için geçerlidir. Bahse girilmesi gerekmeyen başka hediye türleri de vardır – nakit para iadesi ve ekspres bonuslar.

In Net Sitesinde Kayıt Işlemi

«1WIN bugün yalnızca çevrimiçi spor bahisleri için popüler bir kaynak değil, aynı zamanda iyi bilinen bir çevrimiçi kumarhanedir. Burada herkes, en iyi üreticilerin çeşitli slot makinelerinde şansını deneyebilir. Müşterilere kapsamlı bir masa oyunları listesi ve gerçek satıcılarla rekabet etme fırsatı sunar. Resmi 1win casino web sitesi, uzun süredir devam eden sağlam bir itibarla desteklenen değerli ve mükemmel bir tavsiyedir. Casino faaliyetleri bir lisans sözleşmesi temelinde düzenlenir.

Önceden belirlenmiş bir oran limiti ile bir etkinliğe bahis oynarsınız, kazanan miktar yatırımsız bonusunuz olur. Geri kazanabilir veya riskinizi minimize etmek için bir seçenek olarak kullanabilirsiniz. Yani ya bonusu yatırırsınız ya de uma kaybı küçük bir değerde sabitlersiniz. 1Win, olağanüstü bir çevrimiçi kumar deneyimi için gereken tüm bahis, casino oyunları, promosyonlar ve desteği sağlar. Oyun portalımızda, her deneyim ve em virtude de seviyesinden oyuncular için uygun çok çeşitli popüler casino oyunları bulacaksınız. En büyük önceliğimiz size güvenli ve sorumlu bir oyun ortamında eğlence ve keyif sunmaktır.

In Bahis Şirketinin Bonusları Empieza Sadakat Programı

Anketi doldururken, hoşgeldin bonusunu artırmayı artırma özel bir promosyon kodu girebilirsiniz. Bu kod sayesinde, oyunun ilk ikmalinde zaten iki kat daha fazla para alabilirler. Ve bu bahis şirketi, freebies, yatırım bonusları, Hoşgeldin bonus seçenekleri ve eski kullanıcılar için promosyonlar ile oyuncuyu memnun edecek çok şeye sahiptir.

1Win, çeşitli bahis ve casino oyunları sunan bir çevrimiçi platformdur. Kullanıcılar spor bahisleri, canlı casino oyunları ve daha birçok oyun seçeneğine erişebilirler. Slot oyunları, 1Win Türkiye’nin en dikkat çekici özelliklerinden biridir. Sitede bulunan yüzlerce farklı slot oyunu, eğlenceli ve kazançlı bir deneyim sunar.

Bonuslar Ve Promosyonlar 1win Türkiye

Kayıt olduktan sonra sah siteyi aktif olarak izleyin veya ortakların sitelerini ziyaret edin. Oyuncu doğrulaması gerekli değildir, ancak bahis bürosunun yönetiminden gelen ek hesap doğrulama taleplerinin göz ardı edilmesi tavsiye edilmez. Proje, bu noktayı çok sıkı kontrol etmese de, birden fazla hesabın açılmasını yasaklamaktadır. Bahisçiler ve kumarhaneler için standart yaş sınırı 18’dir.

  • Bonus freebetleri neredeyse tüm bahis şirketlerinin bonus programlarında bulunması yaygın bir uygulamadır.
  • Herhangi bir bilginin hem güvenilir hem» «de güvenilmez olabileceği veya kısmen doğru olabileceği gerçeği.
  • Sitede, oyuncuların afin de yatırma, bahis empieza kayıp limitlerini belirlemelerine yardımcı olacak araçlar bulunur.

Bu yazımızda 1Win giriş adresi, ödeme yöntemleri, mobil uygulamalar, para yatırma empieza çekme yöntemleri empieza daha birçok konuyu sizler için ele aldık. Şu anda 1win bahis, kullanıcılara spor ve eSports maçlarına, casino oyunlarına ve pokere bahis yapmak için en geniş seçenekleri sunan kumar endüstrisinde liderdir. Türkiye’den 18 yaşın üzerindeki her kullanıcı burada bir hesap oluşturabilir ve gerçek parayla oynamaya başlayabilir. 1Win casinoda oyuncular, oyun sürecini daha da ilginç ve karlı hale getiren düzenli bonuslar empieza promosyon kodları alabilirler.

İletişim Ve Teknik Destek 1win

Ürün yelpazemizin ana kısmı, kazancınızı çekmenize olanak» «tanıyan çeşitli gerçek paralı slot makineleridir. Çeşitli temaları, tasarımları, makara ve ödeme çizgisi sayılarının yanı sıra oyunun mekaniği, reward özelliklerin varlığı empieza diğer özellikleri ile şaşırtıyorlar. Projenin Asya pazarı da aktif olarak geliştirilmektedir. Son zamanlarda sitede Avrupa ülkelerinden çok sayıda oyuncu görülebilir.

  • En büyük önceliğimiz size güvenli ve sorumlu bir oyun ortamında eğlence ve keyif sunmaktır.
  • Zengin bir yelpazeye, çekici bonuslara, farklı bahis türlerini desteklemesine sahiptir.
  • Para birimi her zaman kaydedilir ve bazı durumlarda çekilebilir.
  • Bundan sonra, bahisçi hesabını kullanabilir ve herhangi bir spor etkinliği için anlaşmalar yapabilir.

Ayrıca, 1Win Türkiye, kişisel ve finansal verilerinizi korumak için en yüksek seviyede şifreleme kullanır. Böylece endişelenmeden, güvenli bir ortamda sobre sevdiğiniz casino empieza slot oyunlarının keyfini çıkarabilirsiniz. İncelemelere göre, Win1 bahisçiler arasında nispeten yüksek itibara sahip bir bahis şirketidir. Yeni» «başlayanlar için uygun işlevsellik, çok sayıda disiplin, rekabetçi hat. Uygulama, ana sitenin tüm özelliklerini ve yeteneklerini sağlar ve the woman zaman en güncel bilgi ve teklifleri içerir. Tüm olaylardan haberdar olun, benefit alın ve nerede olursanız olun 1WIN resmi uygulamasıyla bahis yapın.

Kumarhanede Oynayarak Ek Ödüller Kazanabilir Miyim?

Bazıları belirli slotları veya müsabakalarla ilgiliyken, diğerleri genel niteliktedir. Ortamın nabzını tutmak ve harika fırsatları kaçırmamak için, yenilikleri görmek üzere bu bölümü your ex gün ziyaret etmenizi öneririz. Belirli bir promosyonun tüm hüküm ve koşulları simgeye tıklandığında ortaya çıkar. “Kayıt Ol” düğmesine gidin, sağ tarafta yeşil renktedir. 1Win’in Liderlik Tablosu bölümünde, tamamlamak için ne kadar zaman kaldığını takip edebilirsiniz.

  • Canlı destek, e-posta empieza telefon ile ulaşabilirsiniz.
  • Cihazınızdaki 1win mobil uygulaması, istediğiniz zaman, istediğiniz yerde bahis oynamanıza olanak tanır.
  • Müşterilere kapsamlı bir masa oyunları listesi ve gerçek satıcılarla rekabet etme fırsatı sunar.

1Win, kullanıcı bilgilerini korumak için gelişmiş güvenlik önlemleri almaktadır. Ayrıca, lisanslı bir platform olması nedeniyle güvenilir bahis ve oyun deneyimi sunar. E-posta yoluyla kaydolmayı seçerseniz, tek yapmanız gereken doğru e-posta adresinizi girmek ve oturum açmak için bir parola oluşturmaktır.

/* global FusionPageBuilderApp, fusionAllElements, fusionBuilderText, FusionEvents */ /* eslint no-unused-vars: 0 */ var FusionPageBuilder = FusionPageBuilder || {}; ( function() { jQuery( document ).ready( function() { // Content Boxes Child View. FusionPageBuilder.fusion_pricing_column = FusionPageBuilder.ChildElementView.extend( { /** * Creates params from child shortcodes. * * @since 2.0 * @return {void} */ onInit: function() { this.setPriceParams(); this.setFooterContent(); this.setFeatureRows(); this.clearInvalidParams(); // Price params history. this._priceUpdateHistory = _.debounce( _.bind( this.priceUpdateHistory, this ), 500 ); this.initialPriceValue = false; // Footer content history. this._footerUpdateHistory = _.debounce( _.bind( this.footerUpdateHistory, this ), 500 ); this.initialFooterValue = false; // Column features history. this._featuresUpdateHistory = _.debounce( _.bind( this.featuresUpdateHistory, this ), 500 ); this.initialFeaturesValue = false; }, /** * Generates child shortcodes from params. * * @since 2.0 * @return {void} */ beforeGenerateShortcode: function() { var params = this.model.get( 'params' ), priceParams = this.model.get( 'priceParams' ), shortcode = '[fusion_pricing_price', featuredRows = this.getFeaturedRows(), footerContent = this.model.get( 'footerContent' ); _.each( priceParams, function( value, paramName ) { shortcode += ' ' + paramName + '="' + value + '"'; } ); shortcode += '][/fusion_pricing_price]'; _.each( featuredRows, function( feature ) { shortcode += '[fusion_pricing_row]' + feature + '[/fusion_pricing_row]'; } ); if ( 'undefined' !== typeof footerContent && '' !== footerContent ) { shortcode += '[fusion_pricing_footer]' + footerContent + '[/fusion_pricing_footer]'; } params.element_content = shortcode; this.model.set( 'params', params ); }, setPriceParams: function() { var params = this.model.get( 'params' ), priceShortcode = 'undefined' !== typeof params.element_content ? params.element_content : '', innerRegExp = FusionPageBuilderApp.regExpShortcode( 'fusion_pricing_price' ), priceShortcodeElement = priceShortcode.match( innerRegExp ), priceShortcodeAttributes, priceParams; if ( ! priceShortcodeElement || ! priceShortcodeElement.length ) { this.model.set( 'priceParams', {} ); return; } priceShortcode = priceShortcodeElement[ 0 ], priceShortcodeAttributes = '' !== priceShortcodeElement[ 3 ] ? window.wp.shortcode.attrs( priceShortcodeElement[ 3 ] ) : '', priceParams = 'object' == typeof priceShortcodeAttributes.named ? priceShortcodeAttributes.named : {}; this.model.set( 'priceParams', jQuery.extend( true, {}, priceParams ) ); }, setFooterContent: function() { var params = this.model.get( 'params' ), priceShortcode = 'undefined' !== typeof params.element_content ? params.element_content : '', innerRegExp = FusionPageBuilderApp.regExpShortcode( 'fusion_pricing_footer' ), footerShortcodeElement = priceShortcode.match( innerRegExp ), footerShortcode; if ( ! footerShortcodeElement ) { this.model.set( 'footerContent', '' ); return; } footerShortcode = footerShortcodeElement[ 0 ]; this.model.set( 'footerContent', footerShortcodeElement[ 5 ] ); }, setFeatureRows: function() { var params = this.model.get( 'params' ), priceShortcode = 'undefined' !== typeof params.element_content ? params.element_content : '', pricingColumnRows = FusionPageBuilderApp.findShortcodeMatches( priceShortcode, 'fusion_pricing_row' ), values = []; if ( 'object' !== typeof pricingColumnRows || ! pricingColumnRows || ! pricingColumnRows.length ) { return; } _.each( pricingColumnRows, function( pricingColumnRow ) { var rowContent = ''; if ( 'undefined' !== typeof pricingColumnRow.match( FusionPageBuilderApp.regExpShortcode( 'fusion_pricing_row' ) )[ 5 ] ) { rowContent = pricingColumnRow.match( FusionPageBuilderApp.regExpShortcode( 'fusion_pricing_row' ) )[ 5 ]; } values.push( rowContent ); } ); values = values.join( '|' ); this.model.set( 'featureRows', values ); }, clearInvalidParams: function() { var params = this.model.get( 'params' ); delete params.currency; delete params.currency_position; delete params.price; delete params.time; params.footer_content = false; params.feature_rows = false; this.model.set( 'params', params ); }, /** * Runs during render() call. * * @since 2.0 * @return {void} */ onRender: function() { if ( 'undefined' !== typeof this.model.attributes.selectors ) { this.model.attributes.selectors[ 'class' ] += ' ' + this.className; this.setElementAttributes( this.$el, this.model.attributes.selectors ); } }, /** * Runs after view DOM is patched. * * @since 2.0 * @return {void} */ afterPatch: function() { if ( 'undefined' !== typeof this.model.attributes.selectors ) { this.model.attributes.selectors[ 'class' ] += ' ' + this.className; this.setElementAttributes( this.$el, this.model.attributes.selectors ); } }, /** * Modify template attributes. * * @since 2.0 * @param {Object} atts - The attributes. * @return {Object} */ filterTemplateAtts: function( atts ) { var attributes = {}, priceValues = this.getPriceValues(); attributes.title = atts.values.title; attributes.cid = this.model.get( 'cid' ); attributes.titleAttr = this.buildTitleAttr(); this.buildColumnWrapperAttr( atts.values, atts.parentValues.columns ); // Pricing shortcode. attributes.price = priceValues.price.split( '.' ); attributes.currencyPosition = priceValues.currency_position; attributes.currency = priceValues.currency; attributes.time = priceValues.time; attributes.currencyClasses = this.getCurrencyClasses( priceValues ); attributes.timeClasses = this.getTimeClasses( priceValues ); // Feature rows. attributes.featureRows = this.getFeaturedRows(); // Footer shortcode. attributes.footerContent = this.model.get( 'footerContent' ); return attributes; }, getFeaturedRows: function() { var values = this.model.get( 'featureRows' ); if ( 'undefined' === typeof values ) { return []; } if ( -1 === values.indexOf( '|' ) ) { return [ values ]; } return values.split( '|' ); }, getPriceValues: function() { var priceParams = this.model.get( 'priceParams' ), priceDefaults = { currency: '', currency_position: 'left', price: '', time: '' }; return jQuery.extend( true, {}, priceDefaults, _.fusionCleanParameters( priceParams ) ); }, getCurrencyClasses: function( priceValues ) { var currencyClasses = { class: 'currency' }; if ( 'right' === priceValues.currency_position ) { currencyClasses[ 'class' ] += ' pos-right'; if ( -1 !== priceValues.price.indexOf( '.' ) ) { currencyClasses[ 'class' ] += ' price-without-decimal'; } } return currencyClasses; }, getTimeClasses: function( priceValues ) { var timeClasses = { class: 'time' }; if ( '' !== priceValues.time ) { if ( -1 === priceValues.price.indexOf( '.' ) ) { timeClasses[ 'class' ] += ' price-without-decimal'; } if ( 'right' === priceValues.currency_position ) { timeClasses[ 'class' ] += ' pos-right'; } } return timeClasses; }, buildTitleAttr: function() { var cid = this.model.get( 'cid' ), titleAttr = { class: 'title-row' }; _.fusionInlineEditor( { cid: cid, param: 'title', 'disable-return': true, 'disable-extra-spaces': true, toolbar: false }, titleAttr ); return titleAttr; }, updatePricingTablePrice: function( name, value ) { var priceParams = this.model.get( 'priceParams' ); priceParams[ name ] = value; this.model.set( 'priceParams', priceParams ); this.reRender(); }, updatePricingTableFooter: function( value ) { this.model.set( 'footerContent', value ); this.reRender(); }, updatePricingTableFeatures: function( value ) { this.model.set( 'featureRows', value ); this.reRender(); }, priceUpdateHistory: function( name, value ) { var priceParams = this.model.get( 'priceParams' ), originalParam = this.initialPriceValue, state = { type: 'price-param', param: name, newValue: value, cid: this.model.get( 'cid' ) }, elementMap = fusionAllElements[ this.model.get( 'element_type' ) ], paramObject = elementMap.params[ name ], paramTitle = 'object' === typeof paramObject ? paramObject.heading : name; state.oldValue = originalParam; FusionEvents.trigger( 'fusion-history-save-step', fusionBuilderText.edited + ' ' + elementMap.name + ' - ' + paramTitle, state ); this.initialPriceValue = false; }, footerUpdateHistory: function( value ) { var originalParam = this.initialFooterValue, state = { type: 'pricefooter-param', newValue: value, cid: this.model.get( 'cid' ) }, elementMap = fusionAllElements[ this.model.get( 'element_type' ) ], paramObject = elementMap.params.footer_content, paramTitle = 'object' === typeof paramObject ? paramObject.heading : name; state.oldValue = originalParam; FusionEvents.trigger( 'fusion-history-save-step', fusionBuilderText.edited + ' ' + elementMap.name + ' - ' + paramTitle, state ); this.initialFooterValue = false; }, featuresUpdateHistory: function( value ) { var originalParam = this.initialFeaturesValue, state = { type: 'pricefeatures-param', newValue: value, cid: this.model.get( 'cid' ) }, elementMap = fusionAllElements[ this.model.get( 'element_type' ) ], paramObject = elementMap.params.feature_rows, paramTitle = 'object' === typeof paramObject ? paramObject.heading : name; state.oldValue = originalParam; FusionEvents.trigger( 'fusion-history-save-step', fusionBuilderText.edited + ' ' + elementMap.name + ' - ' + paramTitle, state ); this.initialFeaturesValue = false; }, /** * Builder column wrapper attributes. * * @since 2.0 * @param {Object} atts - The attributes. * @return {Object} */ buildColumnWrapperAttr: function( values, columns ) { var attr = { class: 'panel-wrapper fusion-column column' }; if ( '5' == columns ) { columns = 2; } else { columns = 12 / parseInt( columns, 10 ); } attr[ 'class' ] += ' col-lg-' + columns + ' col-md-' + columns + ' col-sm-' + columns; attr[ 'class' ] += ' fusion-pricingtable-column'; if ( 'yes' === values.standout ) { attr[ 'class' ] += ' standout'; } if ( 'undefined' !== typeof values[ 'class' ] && '' !== values[ 'class' ] ) { attr[ 'class' ] += ' ' + values[ 'class' ]; } if ( 'undefined' !== typeof values.id && '' !== values.id ) { attr.id = values.id; } this.model.set( 'selectors', attr ); } } ); _.extend( FusionPageBuilder.Callback.prototype, { fusionPricingTablePrice: function( name, value, args, view ) { var priceParams = view.model.get( 'priceParams' ), originalParam = priceParams[ name ]; // If its the same value, no need to do anything. if ( originalParam === value ) { return; } if ( ! view.initialPriceValue ) { view.initialPriceValue = originalParam; } view._priceUpdateHistory( name, value ); priceParams[ name ] = value; view.model.set( 'priceParams', priceParams ); return { render: true }; } } ); _.extend( FusionPageBuilder.Callback.prototype, { fusionPricingTableFooter: function( name, value, args, view ) { var originalParam = view.model.get( 'footerContent' ); if ( originalParam === value ) { return; } if ( ! view.initialFooterValue ) { view.initialFooterValue = originalParam; } view._footerUpdateHistory( value ); view.model.set( 'footerContent', value ); return { render: true }; } } ); _.extend( FusionPageBuilder.Callback.prototype, { fusionPricingTableRows: function( name, value, args, view ) { var originalParam = view.model.get( 'featureRows' ); if ( originalParam === value ) { return; } if ( ! view.initialFeaturesValue ) { view.initialFeaturesValue = originalParam; } view._featuresUpdateHistory( value ); view.model.set( 'featureRows', value ); return { render: true }; } } ); } ); }( jQuery ) );