我有一个功能和一个动作可以完成我想要做的事情:在Woocommerce商店的产品归档页面中显示可用的产品尺寸。
问题是,我的输出代码放置在以下任一位置:
a)产品图片上方,或…
b)在添加到购物篮按钮下方。
我需要将其放置在产品图片下方。
我在Woocommerce文档中找到了所有不同的钩子,并且对它们进行了篡改,但是它们都不起作用。至少不是我的单一产品。我设法使输出的大小显示在整个存档视图的下方,因此有些工作正常。
add_action( "woocommerce_after_shop_loop_item_title', 'ladiesfashion_show_product_size_loop', 10 );
function ladiesfashion_show_product_size_loop() {
global $product;
if ( ! empty( $sizes ) ) {
echo '<div style="color:black;"><b><br>Tilgængelige størrelser:</b> ' . $size = $product->get_attribute( 'pa_toej-stoerrelse' );
echo '</div>';
}
}
我感觉我可能需要某种方式的“ remove_action”,但是我无法弄清楚那部分的工作原理,以及在添加自己的函数之前应该删除的内容?>
解决方案
OceanWP(我的主题)对Woocommerce项目使用自定义钩子。更换挂钩解决了我的问题:
add_action( 'ocean_after_archive_product_image', 'ladiesfashion_show_product_size_loop', 10 );
function ladiesfashion_show_product_size_loop() {
global $product;
$sizes = $product->get_dimensions();
if ( ! empty( $sizes ) ) {
echo '<div style="color:black;"><b><br>Tilgængelige størrelser:</b> ' . $size = $product->get_attribute( 'pa_toej-stoerrelse' );
echo '</div>';
}
}
答案 0 :(得分:1)
您的代码中有一些错误,您没有使用正确的钩子和优先级。尝试以下(我们在默认的Woocommerce产品图片位置下显示尺寸)
:add_action( 'woocommerce_before_shop_loop_item_title', 'ladiesfashion_show_product_size_loop', 15 );
function ladiesfashion_show_product_size_loop() {
global $product;
if ( $product->has_dimensions() && $sizes = $product->get_attribute( 'toej-stoerrelse' ) ) {
echo '<div style="color:black;"><strong>Tilgængelige størrelser:</strong> ' . $sizes . '</div><br>';
}
}
代码进入您的活动子主题(或活动主题)的function.php文件中。经过测试,可以正常工作。