WooCommerce

隐藏WooCommerce的购物功能

WooCommerce可以用来展示产品,只要开启目录模式(Catalog Mode),即将与购买相关的内容去掉。本文介绍如何去掉价格和购买按钮。

2021年10月更新,请看这篇最新的文章WooCommerce目录模式Catalog Mode(2021).

去掉价格字段

把代码放在主题的functions.php下

//Hide price
add_filter( 'woocommerce_get_price_html', 'woocommerce_hide_price' );
function woocommerce_hide_price( $price ){
    return '';
}

return空字符串会隐藏价格,也可以选择显示一段文字。

去掉购买按钮

//Hide buy button
add_action( 'init', 'woocommerce_hide_buy_button' );
function woocommerce_hide_buy_button(){
    remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );
    remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
}

没有购买按钮,就无法向购物车中添加任何产品,购物车页面可有可无。

如果完全不需要购物功能,将WooCommerce的购物车、结账等页面删除即可。

54条评论

  1. 前輩大大你好!
    小弟是最近才開始使用woocommerce
    主要是利用此外掛來做展示的網頁,目前正在建置當中!
    但是其中遇到了隱藏購物車的問題 經由您這篇文章已經解決了,感謝!

    但另外一個問題就是 如何將頁首的購物車給隱藏或刪除
    也就是網頁右上角搜尋商品的下面
    這是我的頁面http://18k.lionfree.net/wp/

    1. 一般主题里都有选项,没有的话就用css隐藏吧,在style.css里找到下面这条css,加上隐藏属性

      .woocommerce-active .site-header .site-header-cart{
          display:none;
      }
      
      1. 前輩你好
        我已經成功將那些購物車有多少東西給隱藏了
        但是我利用你給我的語法試了好多次…
        就是無法將網頁右上角的購物車圖示隱藏…
        能否再請大大指點指點。。。

        1. 了解,我發現我好像用成功了
          因為我用平板直立來看就會出現推車
          但橫放就不見了 呵呵

          對了 你說與主題相關 如果說我想把首頁裡
          其中的一欄隱藏可以嗎?
          例如我的第一欄是商品種類(Product Categories)
          可以把他給隱藏嗎?
          因為我不打算開啟對商品的評分,
          所以想要隱藏該欄(Top Rated Products) 不知是否可行?

        2. 你说的都可以实现,比如你说购物车隐藏问题,增加css样式权重即可,修改模板也能去掉。
          相关产品去掉,或者换位置,都不是难事,就是修改模板。
          这些问题虽然简单,但看不到主题,仅凭你的描述,我能告诉你需要哪些知识才能解决,但不能直接告诉你针对你这个主题的方法,明白吗?
          我建议你把所有修改想好,去网上找个程序员帮你解决下,能省很多时间了。

      1. 还有一个问题, 真的很不好意思

        就是在店铺首页和product-category页面, 能否将Add to cart按钮去掉, 其他页面的Add to cart按钮保留?? 谢谢谢谢!

  2. 你好!请问我如何隐藏或删除首页(shop页面)或者商品分类页面的购买按钮(就是图片下面的那个按钮),而不是去掉购物功能。

  3. Hi Sola,

    关于去掉产品价格显示,我在function界面加入后成功了。
    但加入购物车cart, checkout order review,已经发给客户的邮件,还是有价格显示,请问在余下步骤的页面如何修改呢?是放在哪个global setting的php里面吗?

    谢谢。

    regards,
    Louis

    1. catalog模式只用来展示产品,既然价格都没有怎么能结账发邮件呢。
      如果你是预定模式,可以使用woocommerce pre-order插件。
      其它定制化需求,只能找到相应模板或filter去修改。

    2. 我没有想做Pre order,。
      我刚才测试的结果就是这样呢。点击shop时候看不到价格,但是继续点击add to cart,然后查看购物车,依然可以重新看到价格。继续进行checkout,也可以看到价格。然后系统自动发的订单邮件中也有价格,不知道如何可以取消这些地方显示的价格呢。。

      您可以帮忙我看看吗?

      1. 我的意思是用catalog mode就应该手动删除add to cart, checkout 和shopping cart页面,所以你的需求跟本文介绍的不是一回事,需要定制化。
        至于取消,肯定可以,但也需要去看代码,但我现在没时间,你找别人试试看吧。

  4. 加了第2个代码后出现下的提示。请问是怎么回事

    //Hide buy button add_action( ‘init’, ‘woocommerce_hide_buy_button’ ); function woocommerce_hide_buy_button(){ remove_action( ‘woocommerce_after_shop_loop_item’, ‘woocommerce_template_loop_add_to_cart’, 10 ); remove_action( ‘woocommerce_single_product_summary’, ‘woocommerce_template_single_add_to_cart’, 30 ); }

    1. 出现了什么提示?是parse error之类的吗?
      代码没什么问题,只是双击copy的话会有些乱七八糟的东西,导致错误,直接选择copy没事,我这代码高亮功能很久没更新了。

      1. 出现这个错误
        Parse error: syntax error, unexpected ‘endif’ (T_ENDIF) in /home/luitoujr/public_html/wp-content/themes/mx/inc/mx-functions.php on line 1679

        1. 我放在mxfunctions.php下面和functions.php下面都不行。

          WooCommerce可以用来展示产品,只要开启目录模式(Catalog Mode)这在哪里启用我都没有找到?

          感谢你回答我的问题!
          JERRY

        2. 就是因为没这功能所以才要代码啊。新版我没试过,可能filter有变化。如果你不懂代码,找个会的给你改吧。

  5. 您好,我想建一个导购网站,完全不需要购物车以及后面全部的功能(比如付款、配送等),就像您说的,我想把后面的页面、代码全删了,程序包里面的.PHP文件太多了,不知道该删哪些。您能帮我解决一下吗,谢谢!

    1. 不要用删除php文件方式隐藏功能。付款配送只是一些page,你把page删除,再加上catalog模式就可以了。

      1. 根据您上面的“去掉购买”button的代码已近解决了,谢谢!还有一个问题就是,能不能添加一个button(比如;立即购买),在button后填上一个url(如;www.taobao.com),点击这个button就能跳转到淘宝呢?谢谢!

        1. 您好,熬夜看您的帖子看到这个还真值得..嘿嘿,但是我想新开窗口跳转到淘宝的话要怎么实现呢

        2. 搞定了,搜索到目录plugins\woocommerce\templates\single-product\add-to-cart\external.php 修改
          <a href="” rel=”nofollow” class=”single_add_to_cart_button button alt” >


          <a href="” rel=”nofollow” class=”single_add_to_cart_button button alt” target=”_blank”>

          就好了

        3. 我觉得你的需求并不是catalog模式,而是淘宝导购类型的站点。那及时没有上面的代码也是可以的,方法是编辑产品时将产品数据设为“外接/关联产品”,即列表里的第三项。
          之后就可以输入产品链接和按钮文字了。

  6. 你好,打扰一下。请问如果我只想在产品目录页面去掉购物车按钮,而产品详情页面加上购物车按钮,就像淘宝店铺一样,除了在样式上用display:none控制,还有什么好的方法么?

    1. 用php的方法,在主题的functions.php里添加
      remove_action( ‘woocommerce_after_shop_loop_item’, ‘woocommerce_template_loop_add_to_cart’, 10 );

  7. 你好。我的想法和你正正相反。在购物模式下鼠标放到商品图片上回弹出放到购物车的按钮。在目录模式下却没有。问题: 怎么实现在购买模式下去掉下发这个按钮好像目录模式那样呢?
    原因是:用手机浏览的话。那块小按钮会一直存在。而且占图片面积相当大一部分。非常影响美观。先谢谢。

    1. 这是responsive样式问题,用media query写手机版样式,display:none !important强制按钮隐藏。

  8. 我安装了WooCommerce 但是在结算页面 ,下单的按钮一直是灰色的,怎么回事?

    1. 产品没写价格,或者库存为0,看看产品类型,先设置成simple product试试。要是还不行,换wp默认主题试试。

  9. sola 早~
    我已购买genesis framework做购物网,因为genesis的woocommerce网店模板少,我用了一个免费的child theme试验,并安装了genesis connect woocommerce. 但是目前发现,产品页面的图片不清晰,而且比较大,不是woocommerce里面的设定尺寸,也不是控制台media里面设置的尺寸(两者修改都不影响到产品图片)有没有什么办法?

    1. 你需要修改主题的css来控制图片尺寸,或者你直接在woocommerce catalog设置中,把图片尺寸调成更你主题一样的,然后用Regenerate Thumbnails插件重新生成缩略图,这步很重要,只是改变尺寸对之前上传的图片不会有任何影响,只会影响之后上传的图片。

    2. 图片不清晰说明小图被放大了,你看看放到到多大,然后把woocommerce里的图片尺寸改成这个,在用regenerate thumbnails重新生成一遍缩略图。

    1. 默认没这功能,把上面代码拷贝到functions.php里隐藏价格和购买按钮,假装有这功能就得了。

        1. add_filter( 'variable_add_to_cart_text', 'wc_add_to_cart_text' ); //默认为select options
          add_filter( 'grouped_add_to_cart_text', 'wc_add_to_cart_text' ); //默认为view options
          add_filter( 'add_to_cart_text', 'wc_add_to_cart_text' ); //默认为add to cart
          add_filter( 'external_add_to_cart_text', 'wc_add_to_cart_text' ); //默认为read more
          add_filter( 'not_purchasable_text', 'wc_add_to_cart_text' );//默认为read more
          add_filter( 'out_of_stock_add_to_cart_text', 'wc_add_to_cart_text' );//默认为read more
          function wc_add_to_cart_text(){
              return 'Purchase';
          }
          

          不同类型的商品按钮文字不同,你根据上面代码的默认值自己改吧。
          如果不懂,看一下add_filter的文档。

        2. 这个插件只能将按钮指向网站里的某个页面,不能指向别的地方的页面啊,比如淘宝什么的。

    1. 立即购买按钮是是指默认的加入购物车按钮吗?还是说点这个按钮会直接到结账页面?

        1. 还有你说用代码实现,所以我有点糊涂,后台功能里有Redirect to the cart page after successful addition,这个跟你说的功能好像差不多。

评论已关闭。