Woocommerce'deki fiyatları ve ödeme işlevini gizle


17

Bu sorunun çok geniş olabileceğini biliyorum, ama biraz yön arıyorum. Müvekkilimin 30-40 ürünlü bir woocommerce mağazası var. Her ne sebeple olursa olsun, artık çevrimiçi satış yapmak istemiyorlar, ancak web sitelerinde ürün sayfalarını, bilgileri vb. Saklamak istiyorlar.

Woocommerce'de kancalar veya başka türlü, fiyatlar gibi şeyleri gizlemenin, alışveriş sepetine ekle düğmesine vs. eklemenin bir yolu var mı? Yoksa sadece php şablon dosyalarını düzenlemeli miyim?

Yanıtlar:


23

neyse ki woocommerce birçok kancaya sahiptir, bu fiyatları ve düğmeleri kaldırır:

remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart' );
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10 );

içeri girebilir content-product.phpve content-single-product.phpdaha fazla şeyi kaldırmanız gerekiyorsa.

Gizlemek / kaldırmak istediğiniz fiyatlardan / düğmelerden daha fazlası olduğunu düşünebilirsiniz (sayfalar / işlevler gibi), bu eğitici size bazı işaretçiler veriyor


Bu kancaların function.php'ye eklenmesi gerektiğini düşünmekte haklı mıyım? Öyleyse, onları yerleştirmem gereken belirli bir bölüm var mı? Çalışırlarsa, muhtemelen araba işlevselliği bazı stiller dışında artık görünmeyecek, doğru mu?
James

1
evet, onları function.php dosyasına koyabilirsiniz ve onları başka bir işleve nereye koyduğunuz önemli değildir. Genellikle dosya sonunda en güvenli olanıdır, son dosyadan sonra koymadığınız sürece ?>. Bu, alışveriş sepeti sayfasını kaldırmaz, ancak alışveriş sepetine bir şey ekleme olasılığını ortadan kaldırır. Alışveriş sepetini hiçbir yerde sevmiyorsanız nispeten güvenli olmalısınız.
Ewout

İşe yarıyor. Ama bu garip. Bunu uyguladıktan sonra, ürün görüntülerinin durması görüntülenir. Onların konumu için boş bir alan gösterir ve fareyi üzerlerine geçirip tıklattığımda bana doğru görüntüyü gösterirler. Bunun neden olduğu hakkında bir fikrin var mı?
Brethlosze

13

Yukarıdaki kodu genişletmek (teşekkürler Ewout), aşağıdaki kod tüm fiyatlardan kurtulacak ve tüm woocommerce ürünlerinde 'sepete ekle' düğmelerinin yanı sıra nedenine ilişkin bir açıklama sağlayacaktır. Doğrudan satış ürünleri sunan bir web sitesinin koduna ihtiyacım vardı ve kurallarına uymak için fiyatları halka gösteremem.

Filtreyi temanızın function.php dosyasına ekleyin.

    add_filter('woocommerce_get_price_html','members_only_price');

    function members_only_price($price){

if(is_user_logged_in() ){
    return $price;
}

else {
    remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart' );
    remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );
    remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
    remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10 );
    return 'Only <a href="' .get_permalink(woocommerce_get_page_id('myaccount')). '">Registered Users</a> are able to view pricing.';
      }

}

Bu tuhaf. Bunu uyguladıktan sonra, ürün görüntülerinin durması görüntülenir. Onların konumu için boş bir alan gösterir ve fareyi üzerlerine geçirip tıklattığımda bana doğru görüntüyü gösterirler. Bunun neden olduğu hakkında bir fikrin var mı?
Brethlosze

Bu kod WooCommerce v 3.2.1:-) ' de çalışmaz
Steve

1
add_filter( 'woocommerce_is_purchasable', '__return_false' );
add_filter( 'woocommerce_get_price_html', '__return_empty_string' );

Bu, ödeme işlemini tamamen önleyecek ve tüm fiyatları şu şekilde gizleyecektir:

  • Tüm ürünleri satın alınamaz hale getirme (satır 1)
  • Fiyat HTML'sini boşaltma (satır 2)
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.