問題描述
我知道這個問題可能太廣泛了,但我正在尋找一個方向。我的客户有一個 30-40 個產品的商店。無論什麼原因,他們不想在線銷售,但他們希望在其網站上保留產品頁面,信息等。
有沒有辦法,使用鈎子或其他方式來隱藏物品的價格,添加到購物車按鈕等在 woocommerce?還是應該只是編輯 php 模板文件?
最佳解決方案
幸運的是,手機有很多鈎子,這樣可以消除價格和按鈕:
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 );
如果您需要刪除更多的東西,您可以挖掘 content-product.php 和 content-single-product.php 。
我可以想象,不僅僅是你想隱藏/刪除的價格/按鈕 (如頁面/功能),this tutorial 給你一些指針
次佳解決方案
擴展上述代碼 (感謝 Ewout),以下代碼將擺脱所有產品的所有價格和 「添加到購物車」 按鈕,以及為什麼提供解釋。我需要一個提供直銷產品的網站的代碼,並遵守其規則,我不能向公眾顯示價格。
將過濾器添加到您的主題的 functions.php 文件中。
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="'%20.get_permalink(woocommerce_get_page_id('myaccount')).%20'">Registered Users</a> are able to view pricing.';
}
}
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。