WooCommerce'de Sepete ekle düğmesi nasıl gizlenir ve kaldırılır
Yayınlanan: 2020-12-10Sepete ekle düğmesini mağazanızdan gizlemek istiyor musunuz? Bu kılavuzda, WooCommerce'de Sepete ekle düğmesini programlı olarak nasıl kaldıracağınızı öğreneceksiniz (eklenti yok).
WooCommerce'de Sepete Ekle düğmesini neden kaldırmalısınız?
İlk olarak, Sepete ekle düğmesini neden gizlemek isteyebileceğinizi anlamaya başlayalım. Sepete ekle düğmesini kaldırmak, belirli bir ürün veya mağaza için satın alma sürecini devre dışı bırakmanın en iyi yollarından biridir. Kulağa mantıksız gelse de, gerçek şu ki, sepete ekle düğmesini silmek bazı durumlarda çok faydalı olabilir.
Mağazanızı kişiselleştirme konusunda size daha fazla seçenek sunmanın yanı sıra, mağazanızın bazı sayfalarından Sepete ekle düğmesini kaldırmak istemenizin birkaç nedeni olabilir:
- WooCommerce'i katalog olarak kullandığınız için
- Stok bittiğinde veya bir ürün artık mevcut olmadığında
- Düğmeyi mantık koşullarına göre kaldırmak için (yani belirli kullanıcı rolleri veya ürünleri, oturum açmamış kullanıcılar vb. için)
- Ürün henüz satın alınamadığı için
- Kullanıcıların standart WooCommerce satın alma sürecini takip etmek yerine bir mesaj göndermek veya bir röportaj planlamak için bu düğmeyi kullanmasını istediğinizde
Bunlar, mağazanızdaki Sepete ekle düğmesini kaldırmanız veya gizlemeniz gerekebilecek bazı durumlardır, ancak başka birçok durum vardır. Şimdi devam edelim ve WooCommerce sepete ekle düğmesini mağazanızdan nasıl kaldıracağınızı görelim.
WooCommerce'de Sepete ekle düğmesi nasıl kaldırılır
Bu bölümde, sepete ekle düğmesini gizlemenin farklı yollarını öğreneceksiniz. Size farklı alternatifler sunmak için şunları nasıl yapacağınızı göstereceğiz:
- Site genelinde Sepete ekle düğmesini kaldırın veya gizleyin
- Oturum açmamış kullanıcılar için Sepete ekle düğmesini gizle
- Kullanıcı rollerine göre sepete ekle düğmesini kaldır
- Belirli ürünlerde Sepete ekle düğmesini gizle
- Düğmeyi geçici olarak kaldır ve bir tarihten sonra otomatik olarak göster
Her birine bir göz atalım.
Başlamadan önce
WordPress çekirdek dosyalarını düzenleyeceğimiz için, bir şeyler ters giderse diye sitenizin tam bir yedeğini oluşturmanızı öneririz. Ek olarak, bir alt tema kullanabilirsiniz. Eğer yoksa, bu kılavuzu izleyerek bir tane oluşturabilir veya bir alt tema eklentisi kullanabilirsiniz.
1) Site genelinde Sepete ekle düğmesini kaldırın veya gizleyin
Sepete ekle düğmesini mağazanızdan tamamen gizlemenin birkaç yolu vardır. En kolaylarından biri, alt temanızın functions.php
dosyasında aşağıdaki betiği kullanmaktır:
remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart');
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
İlk remove_action()
kancası ile ürün sayfasında Sepete ekle butonunu devre dışı bırakıyoruz ve ikincisi ile aynı işlemi mağaza sayfasında yapıyoruz. Ancak daha temiz ve güvenilir bir çözüm, ürün satın alma seçeneğini devre dışı bırakmaktır. Bu sayede ürünleri satın alınamaz hale getirir ve kullanıcıların sepete eklemesini engellersiniz.
Bunu yapabilir ve aşağıdaki komut dosyasıyla ürünlerinizi mağazanızın tamamında satın alınamaz hale getirebilirsiniz:
add_filter( 'woocommerce_is_purchasable', '__return_false');
Bunun WooCommerce'de Sepete ekle'yi devre dışı bırakacağını ancak düğmeyi kaldırmayacağını unutmayın. Kullanıcıları, hiçbir düğmenin olmadığı ürün sayfasına yönlendirerek, daha fazlasını oku düğmesiyle değiştirecektir. Sepete ekle düğmesini kaldırmanın yanı sıra Daha fazla oku düğmesini de gizlemek istiyorsanız, bir CSS kuralı uygulamalısınız. Ancak, müşteriler sepete ürün ekleyemeyecekleri için, tarayıcı geliştirici aracını göstermek için nasıl kullanacaklarını bilseler bile hiçbir şey satın alamayacaklar. Mümkün olduğunda, her zaman remove_action()
yerine add_filter
kancasını kullanmayı denemelisiniz.
WooCommerce kancalarının nasıl kullanılacağı hakkında daha fazla bilgi için bu eksiksiz kılavuza göz atın.
2. Giriş yapmamış kullanıcılar için Sepete ekle düğmesini gizleyin
Kayıtlı kullanıcılarınız için özel bir teklif sunduğunuzu varsayalım. Özel bir açılış sayfası oluşturabilir ve yalnızca kayıtlı müşterilerinize bağlantı içeren bir e-posta gönderebilirsiniz, ancak bunu diğer kullanıcılarla paylaşırlarsa ne olur? Bu tür bir durumdan kaçınmak ve indirimleri yalnızca doğru müşterilere sunduğunuzdan emin olmak için , Sepete ekle düğmesini WooCommerce mağazanızdan yalnızca oturum açmamış kullanıcılar için kaldırabilirsiniz . Bunu yapmak için, aşağıdaki betiği alt temanızın functions.php
dosyasına yapıştırın:
/* REMOVE ADD TO CART BUTTON FOR NON-LOGGED-IN USERS */
if (!is_user_logged_in()) {
// in product page
add_filter('woocommerce_is_purchasable', '__return_false'); }
is_user_logged_in()
yerel WordPress işlevini kullanarak, yalnızca oturum açmamış kullanıcılar için Sepete ekle düğmesini devre dışı bırakacağız.
3. Kullanıcı rollerine göre Sepete ekle düğmesini kaldırın
Bir başka ilginç seçenek de , kullanıcı rollerine göre Sepete ekle düğmesini kaldırmaktır . Örneğin, herhangi bir yönetici kullanıcı için düğmenin nasıl gizleneceğini görelim:
/* REMOVE ADD TO CART BUTTON FOR ADMIN USERS */ add_action('wp_loaded','get_user_role'); function get_user_role(){ $current_user = wp_get_current_user(); if(count($current_user->roles)!==0){ if($current_user->roles[0]=='administrator'){ add_filter('woocommerce_is_purchasable', '__return_false'); }
}
}
Komut dosyası, WordPress kullanıcı nesnesini alır ve ona iki koşul uygular. Birincisi, bir kullanıcının bir rolü olup olmadığını bilmek ve ikincisi, yalnızca kullanıcı rolü bizim belirttiğimiz (bu durumda yönetici) ile eşleşirse ürünleri satın alınamaz hale getirmektir. Bu kodu uyarlayabilir ve Sepete ekle düğmesini görmek istemediğiniz rolü if($current_user->roles[0]=='your_role'){ içindeki rolü düzenleyerek değiştirebilirsiniz.
4. Belirli ürünlerde Sepete ekle düğmesini gizle
Şimdi, belirli ürünler için stokta kalmadığınızı varsayalım, bu nedenle bu ürünler için Sepete ekle düğmesini geçici olarak gizlemek istiyorsunuz.
Belirli ürünler için düğmeyi kaldırmak için, bu komut dosyasını kopyalayıp alt temanın functions.php
dosyasına yapıştırın:
/* REMOVE ADD TO CART BUTTON ON SPECIFIC PRODUCT IDs*/ add_filter('woocommerce_is_purchasable', 'filter_is_purchasable', 10, 2); function filter_is_purchasable($is_purchasable, $product ) { global $product; if( in_array( $product->get_id(), not_purchasable_ids() )) { return false; } return $is_purchasable; } function not_purchasable_ids() { return array( 624,625 ); }
Bu örnek komut dosyasında, 624 ve 625 numaralı ürünler için Sepete ekle düğmesini devre dışı bırakıyoruz. Bunu WooCommerce mağazanıza uyarlamak için bu kimlikleri ürün kimliklerinizle değiştirmeniz yeterlidir. Gördüğünüz gibi, ID'leri virgülle ayırarak birden fazla ürün ekleyebilirsiniz.
Bir ürünün kimliğini bulmak için WordPress panonuz > WooCommerce > Ürünler'e gidin ve fareyi listedeki bir ürünün üzerine getirin. Alternatif olarak, ürüne tıklarsanız, kimliğini tarayıcınızın URL'sinde göreceksiniz.
5. Belirli kategoriler için Sepete Ekle düğmesini devre dışı bırakın
Benzer şekilde, belirli kategoriler için Sepete Ekle düğmesini kaldırabilirsiniz . Örneğin, "Dizüstü Bilgisayarlar" kategorisindeki düğmeyi gizlemek istediğinizi varsayalım, bu kodu kullanırsınız:
add_action('wp', 'QL_remove_add_to_cart_from_category');
function QL_remove_add_to_cart_from_category(){
if( is_product_category( 'dizüstü bilgisayarlar' )) {
remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart');
}
}
Sadece bu kodu alın ve 3. satırdaki "dizüstü bilgisayarları" Sepete Ekle düğmesini gizlemek istediğiniz kategorinin adıyla değiştirmeyi unutmayın.
6. Sepete ekle düğmesini geçici olarak kaldırın ve bir tarihten sonra otomatik olarak görüntüleyin
Şimdi işleri bir adım daha ileri götürelim ve öğrendiğimiz bazı şeyleri birleştirelim. Bir ürünü piyasaya sürmek üzere olduğunuzu ve tüm özellikleriyle ürün sayfasını oluşturduğunuzu hayal edin. Bu sayfayı lansmandan önce biraz heyecan yaratmak ve ürünü tanıtmak için kullanmak istiyorsanız , Sepete ekle düğmesini lansman tarihine kadar gizleyebilir ve ardından lansman gününü otomatik olarak görüntüleyebilirsiniz .
Örneğin, ürününüzü 15 Aralık 2020'de piyasaya sürmeyi planladığınızı ve o zamana kadar Sepete ekle düğmesini kaldırmak istediğinizi ve ardından düğmeyi bu belirli tarihte görüntülemek istediğinizi varsayalım. Bunu yapmak için aşağıdaki komut dosyasını kopyalayıp yapıştırmanız yeterlidir:
add_filter( 'woocommerce_is_purchasable', 'hide_add_to_cart_button_until_date', 10, 2 ); function hide_add_to_cart_button_until_date( $is_purchasable = true, $product ) { $current_date = date('Ym-d'); $release_date = date( 'Ym-d', strtotime('2020-12-15') ); if( strtotime($current_date) < strtotime($release_date) && $product->get_id() == 624 ) { $is_purchasable = false; } return $is_purchasable; }
Bu, Sepete Ekle düğmesini, kullanıcıları lansman tarihine kadar ürün sayfasına yönlendiren Daha fazla oku düğmesiyle değiştirecektir. Şimdi betiğin nasıl çalıştığını daha iyi anlayalım. Kod, mevcut tarihi lansman tarihi ile karşılaştırır ve mevcut tarih daha erken ise ürünü satın alınamaz hale getirir.
Geçerli tarih lansman tarihine eşit veya daha sonraysa, ürün satın alınabilir olacak ve Sepete ekle düğmesi otomatik olarak görüntülenecektir. Yalnızca tarihi değil, aynı zamanda ürün kimliğini de (örneğimizde 624) belirtmeyi unutmayın.
Bonus: Sepete ekle düğmesini özelleştirin
Yukarıda açıkladığımız durumlardan bazıları için, Sepete ekle düğmesini özelleştirmek ve alışveriş yapanlarınız üzerinde bir izlenim bırakmak çok yararlıdır. Düğmeyi gizlemenin yanı sıra, metnini ve rengini değiştirebilir, üstüne veya altına metin ekleyebilir, düğmenin davranışını düzenleyebilir ve daha fazlasını yapabilirsiniz. Basit bir şeyle başlayalım ve Sepete ekle düğmesinin metninin nasıl değiştirileceğini görelim.
Diyelim ki “Sepete ekle” yerine düğmede “ Bu ürünü satın al ” metnini görüntülemek istiyorsunuz. Aşağıdaki betiği kopyalayıp function.php dosyasına yapıştırmanız yeterlidir:
('woocommerce_product_single_add_to_cart_text','QL_customize_add_to_cart_button_woocommerce'); function QL_customize_add_to_cart_button_woocommerce(){ return __('Bu ürünü satın al', 'woocommerce'); }
Ek olarak, tek ürünlerde düğmenin rengini değiştirmek için bu komut dosyasını kullanın ve istediğiniz renkleri seçin.
.tek ürün .product .single_add_to_cart_button.button { arka plan rengi: #FF0000; renk: #C0C0C0; }
Bunlar yalnızca iki temel örnektir ancak çok daha fazlasını yapabilir ve düğmeyi başka şekillerde özelleştirebilirsiniz. Daha fazla örnek ve bilgi için Sepete ekle düğmesinin nasıl düzenleneceğine ilişkin adım adım kılavuzumuza göz atın.
Çözüm
Sonuç olarak, Sepete ekle düğmesinin gizlenmesi birçok farklı durumda faydalı olabilir:
- WooCommerce'i katalog olarak kullandığınızda
- Stok bittiğinde veya bir ürün artık mevcut olmadığında
- Belirli kullanıcı türleri veya kullanıcı rolleri için kampanyalar yayınlamak için
- Yeni bir ürünü piyasaya sürmek üzereyken
- Standart WooCommerce satın alma sürecini takip etmeyen belirli bir eylemi gerçekleştirmek için düğmeyi kullandığınızda
Bu kılavuzda, Sepete ekle düğmesini kaldırmanın farklı yollarını öğrendiniz. Belirli ürünler, kullanıcılar ve kullanıcı rolleri için tüm mağazadan nasıl gizleneceğini ve hatta nasıl gizleneceğini ve ardından belirli bir tarihten sonra otomatik olarak nasıl görüntüleneceğini gördük. Bu, mağazanızı farklı durumlarda özelleştirmek için size biraz esneklik sağlayacaktır. Bu komut dosyalarını temel olarak kullanın ve mağazanızda bunlardan en iyi şekilde yararlanmak için düzenleyin.
Sepete Ekle düğmesini kaldırmak istemiyorsanız ancak bununla ilgili sorun yaşıyorsanız, Sepete ekle ile ilgili en yaygın sorunları çözmenize yardımcı olan bu kılavuza göz atmanızı öneririz.
Sepete Ekle düğmesinden en iyi şekilde nasıl yararlanılacağı hakkında daha fazla bilgi için aşağıdaki eğiticilere göz atın:
- WooCommerce'de Sepete Ekle düğmesi nasıl özelleştirilir
- WooCommerce Sepete Ekle işlevi programlı olarak
Senaryolarla ilgili herhangi bir sorun yaşadınız mı? Sepete ekle düğmesini kaldırmanın başka yollarını biliyor musunuz? Aşağıdaki yorumlar bölümünde bize bildirin!