我们有a plugin that allows people to submit offers on products,然后网站所有者可以接受,反击或拒绝优惠,您可以来回协商,直到达成价格协议 .

我们使用 woocommerce_after_add_to_cart_button 钩子在购物车按钮后添加商品按钮 .

我们收到很多反馈,人们希望将产品的价格留空,这样它只是在网站上显示价格,它不会显示添加到购物车按钮,但他们确实希望它显示商品按钮和允许该功能 .

如果您将价格设置为0.00,那么它在网站上显示为FREE,并且仍包含“添加到购物车”按钮,这样就没有用了 .

但是,如果留空,我们遇到的问题是,当客户点击从已接受的报价中购买产品时,WooCommerce会继续将该商品从购物车中移除,因为它说它不是购买的 . 这是因为is_purchasable() function而发生的 . 由于空白价格,WC表示该产品不可购买,因此它会自动从推车中取出,这确实在做 .

有一个钩子可以让我们强制产品 $purchasable = true ,但当然这会使Add to Cart按钮再次出现,这对于这个用例没有意义 .

所以现在我们就是这样 . 我们已经让系统覆盖了可购买的产品,这样我们就可以在空白的产品上完成结账,但是它会离开“添加到购物车”按钮,允许此人以0.00的价格添加产品 .

我在这个场景中难以隐藏到添加到购物车按钮的最佳方式.. ??我通常会通过使用钩子来隐藏它来使$ Purchasable = false,这很好地照顾它,但在这种情况下我不能这样做,因为这是使我们无法购买产品的原因 .

任何关于这方面的信息将不胜感激!

UPDATE

我发现本教程用于覆盖插件中的核心模板文件:https://www.skyverge.com/blog/override-woocommerce-template-file-within-a-plugin/

所以我认为我们要尝试的是基本上说“if $ purchasable = false和$ offers_enabled = true,然后使用这些模板添加到购物车按钮 . ”

在我们的模板中,我们只是在评论实际的 <button> 元素 . 这会留下所有挂钩,但隐藏我们的按钮 .

体面的解决方案?可怕的想法?