在WooCommerce中隐藏价格和结账功能

时间:2013-03-11 作者:miles

我知道这个问题可能过于宽泛,但我正在寻找一点方向。我的客户有一家woocommerce商店,有30-40种产品。无论出于何种原因,他们都不想再在网上销售,但他们希望在其网站上保留产品页面、信息等。

在woocommerce中,是否有办法使用挂钩或其他方式隐藏价格、添加到购物车按钮等内容?或者我应该编辑php模板文件吗?

3 个回复
最合适的回答,由SO网友:Ewout 整理而成

幸运的是,woocommerce有许多挂钩,这消除了价格和按钮:

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.phpcontent-single-product.php 如果你需要移走更多的东西。

我可以想象,你想要隐藏/删除的不仅仅是价格/按钮(比如页面/功能),this tutorial 给你一些提示

SO网友:Angela

扩展上述代码(感谢Ewout),以下代码将删除所有woocommerce产品上的所有价格和“添加到购物车”按钮,并解释原因。我需要一个提供直销产品的网站的代码,为了遵守他们的规则,我不能向公众展示价格。

将过滤器添加到主题的函数中。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="\' .get_permalink(woocommerce_get_page_id(\'myaccount\')). \'">Registered Users</a> are able to view pricing.\';
      }

}

SO网友:Nabil Kadimi

add_filter( \'woocommerce_is_purchasable\', \'__return_false\' );
add_filter( \'woocommerce_get_price_html\', \'__return_empty_string\' );
这将通过以下方式完全阻止结账并隐藏所有价格:

使所有产品无法购买(第1行)清空价格HTML(第2行)

结束

相关推荐

plugins_url vs plugin_dir_url

我看到WordPress插件在为一些文件夹创建常量时使用plugins\\u url或plugin\\u dir\\u url。一个比另一个好吗?示例:define( \'MEMBERS_URI\', trailingslashit( plugin_dir_url( __FILE__ ) ) ); define( \'WPACCESS_INC\', plugins_url( \'inc\', __FILE__ ) , true );