下面是 woocommerece-integration.php 文件中调用的现有函数,用于在任何 WordPress 页面上的产品卡中显示“添加到购物车”按钮。我有一个愿望清单插件,它提供了一个简码,我需要在
$content
: 之前显示该图标
// Add add_to_cart btn wrapper (products loop)
$adc = '<div class="card_bot">
<div class="vamtam-add-to-cart-wrap shrt">'
. $content .
'</div></div>';
return apply_filters( 'vamtam_woocommerce_loop_add_to_cart_link', $adc );
}
}
主要目标是获得左侧的愿望清单图标,并在同一行的右侧添加到购物车按钮,稍后我可以使用 CSS 进行处理,但这两个按钮应该位于同一包装类 card_bot 中,这是我的主要目标。
这是我的简码:
[wlfmc_add_to_wishlist]
我已经尝试过:
echo do_shortcode("[wlfmc_add_to_wishlist]");
echo do_shortcode
标签以及两者似乎都会出错,并且会破坏我的 PHP 文件或将短代码显示为字符串。正确的做法是什么?
从您提供的代码中,尝试插入
do_shortcode()
而不使用 echo
,使用 .
连接运算符,例如:
$adc = '<div class="card_bot">
<div class="vamtam-add-to-cart-wrap shrt">'
. do_shortcode("[wlfmc_add_to_wishlist]") . $content .
'</div></div>';
return apply_filters( 'vamtam_woocommerce_loop_add_to_cart_link', $adc );
应该可以。
要在 card_bot 包装器内同一行的“添加到购物车”按钮之前使用 [wlfmc_add_to_wishlist] 短代码显示 WooCommerce 愿望清单图标,您可以在 PHP 代码中正确使用 do_shortcode()。
$wishlist_icon = do_shortcode('[wlfmc_add_to_wishlist]');
$adc = ' ' 。 $wishlist_icon 。 $内容。 ' '; 返回 apply_filters( 'vamtam_woocommerce_loop_add_to_cart_link', $adc );
这应该有效
为了实现你想要的,我认为你应该使用钩子。
有两种类型的挂钩:
因此,在您的情况下,您应该使用过滤器,因为您基本上想要的是修改“添加到购物车”按钮的显示方式(也称为添加包装器和您的短代码)。
我建议您在 woo hook 参考中搜索,找到适合您案例的正确钩子(也许:woocommerce_loop_add_to_cart_link):
https://woocommerce.github.io/code-reference/hooks/hooks.html
要在回调方法中添加插件的短代码,正确的方法是:
echo do_shortcode('[wlfmc_add_to_wishlist]');