woocommerce - 仅在外部/附属产品页面上隐藏按钮/不在商店中
问题描述
我想隐藏仅适用于 Eternal/Affiliate 且仅在产品页面上的所有按钮
TLDR
在我的网站上,我有一些定价表,客户可以在其中选择合适的定价表,然后将该项目添加到购物车中。
问题是试图制作一个您无法购买但定价表在描述中的空产品。所以我不得不使用 Eternal/Affiliate 产品。由于 URL 是非常适合商店的产品页面本身,因此效果很好。
问题出在产品页面上,您可以看到一个显示添加到购物车的按钮。
我想仅在 Eternal/Affiliate 和产品页面上隐藏此按钮。
你看我下面已经有这段代码了,但显然我不想把它限制在 ID 号和可变产品上。
更新
所以下面的代码可以工作,但如果我在产品页面上放置一个 URL 链接,那么它就不起作用。不幸的是,现在有点难过。
如果我可以删除按钮并将其替换为一些文本,例如请阅读以下内容,那就太好了。
function woocommerce_add_aff_link(){
$product = wc_get_product(get_the_ID());
if ($product->is_type('external'))
echo '<a href="' .
$product->get_product_url() .
'" class="woocommerce-LoopProductImage-link">';
}
更新 +
经过一番挖掘,我发现创建新产品实际上更合乎逻辑,但是下面的解决方案非常有效:
参考:https ://www.businessbloomer.com/woocommerce-how-to-create-a-new-product-type/
解决方案
要删除单个外部产品页面上的添加到购物车按钮,请使用以下命令:
add_action( 'woocommerce_single_product_summary', 'remove_external_product_add_to_cart_button', 4 );
function remove_external_product_add_to_cart_button(){
global $product;
if ( ! is_a($product, 'WC_Product') ) {
$product = wc_get_product(get_the_ID());
}
if ( $product->is_type('external') ) {
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
}
}
代码位于活动子主题(或活动主题)的 functions.php 文件中。T它应该工作。
推荐阅读
- python - 如何在 Windows 10 中安装 pyaudio 错误('list' 对象没有属性 'read')
- c# - 如何更新嵌套模型
- asp.net-core - 当我使用 OrderBy property.Length 或混合 Include、OrderBy 和 AutoMapper ProjectTo 时,Linq 表达式失败
条款 - python - TypeError:“int”对象在 Python Twitter API 上不可迭代
- python - 通过带有滚动区域的 QHBoxLayoutSize 调整 QLabel 大小
- hyperledger - 哪个验证密钥用于 Indy 中的 Steward
- reactjs - Browserify v16.2.3 在构建时包括反应开发和生产
- python - Matplotlib 日期值无效
- html - 在悬停按钮上缩放元素会导致文本模糊
- javascript - 如何在 Redux 中创建动态 Reducer