問題描述
我知道這個問題可能太廣泛了,但我正在尋找一個方向。我的客戶有一個 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。