在woocommerce中隐藏价格和结帐功能


17

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

有没有一种方法可以使用钩子或其他方法在woocommerce中隐藏价格,添加到购物车按钮等内容?还是应该只编辑php模板文件?

Answers:


23

幸运的是,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,如果你需要删除更多的东西。

我可以想像,您想要隐藏/删除的不仅是价格/按钮(例如页面/功能),本教程还为您提供了一些指导


我认为必须将这些钩子插入functions.php吗?如果是这样,我是否需要将其放在特定的部分?如果它们能够正常工作,那么除了某些样式外,大概不会再显示购物车功能,对吗?
詹姆斯

1
是的,您可以将它们放在functions.php中,将它们放在另一个函数中的位置都没有关系。通常,只要不将它们放在last后面,一路在文件末尾是最安全的?>。这不会删除购物车页面,但实际上会消除向购物车添加任何内容的可能性。如果您在任何地方都不喜欢购物车页面,则应该相对安全。
2013年

有用。但这很奇怪。应用此选项后,产品图像停止显示。它显示了他们位置的空白区域,当我将鼠标移到它们上方并单击它们时,它们会向我显示正确的图像。您是否知道为什么会这样?
Brethlosze

13

扩展以上代码(感谢Ewout),以下代码将摆脱所有woocommerce产品上的所有价格和“添加到购物车”按钮,并提供原因说明。我需要一个提供直销产品并遵守其规则的网站的代码,因此无法向公众显示价格。

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

}

这很奇怪。应用此选项后,产品图像停止显示。它显示了他们位置的空白区域,当我将鼠标移到它们上方并单击它们时,它们会向我显示正确的图像。您是否知道为什么会这样?
Brethlosze

此代码在WooCommerce v 3.2.1:-)中不起作用
Steve

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

这将完全阻止结帐并通过以下方式隐藏所有价格:

  • 使所有产品均不可购买(第1行)
  • 清空价格HTML(第2行)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.