WooCommerce产品详细信息页面:在缩略图下添加内容

时间:2021-10-15 作者:sohaib

我正在尝试使用以下方法在产品功能图像及其缩略图下添加内容action woocommerce_before_single_product_summary 但内容放在图像和内容的顶部。

add_action( \'woocommerce_before_single_product_summary\' , \'bbloomer_add_below_prod_gallery\', 9 );
当我将优先级从9更改为20时,右侧内容移动到自定义内容下。

以下是用于呈现自定义内容的操作函数。

function bbloomer_add_below_prod_gallery() {
    global $product;
        echo \'<div class="text" style="border: thin solid black; clear: both;">\';
        echo \'<p>Random text now</p>\';
        echo \'</div>\';
}
任何形式的帮助都将不胜感激。

我试过了Woocommerce template override 还有,但运气不好。当我试图覆盖woocommerce/templates/sigle-product/product-image.php 在主题中,自定义内容仍然位于顶部。

谢谢

1 个回复
SO网友:Tim

在里面woocommerce/templates/content-single-product.php 你可以看到woocommerce_show_product_images 优先权为20。

如果希望自定义函数在图像下方但在摘要上方渲染,则需要将优先级设置为大于20。我认为下面的代码应该可以做到这一点:

add_action(\'woocommerce_before_single_product_summary\', \'bbloomer_add_below_prod_gallery\', 30);

function bbloomer_add_below_prod_gallery() {
    global $product;
    echo \'<div class="text" style="border: thin solid black; clear: both;">\';
    echo \'<p>Random text now</p>\';
    echo \'</div>\';
}

UPDATE

默认woocommerce样式表woocommerce-layout.scss 将库向左浮动,使其具有48%的宽度,如下所示:

.woocommerce #content div.product div.images, .woocommerce div.product div.images, .woocommerce-page #content div.product div.images, .woocommerce-page div.product div.images {
    float: left;
    width: 48%;
}
您可以将此样式添加到html中,但根据您使用的主题,它可能最终位于库的右侧(因为它是浮动的)。

因此,如果您想直接在gallery元素下面获取文本,最快的方法是重写product-image.php 模板并添加额外的挂钩。

// In your copy of product-image.php everything is the same except the new action hook.
...
<div class="...">
    <figure class="woocommerce-product-gallery__wrapper">
        <?php
        // Stuff copied from original template.
        ...
        do_action( \'woocommerce_product_thumbnails\' );
        ?>
    </figure>

    <!-- Create a new action hook before the final <div> -->
    <?php do_action( \'bbloomer_after_single_product_gallery\' ); ?>
</div>
...
然后在你的主题中加入这个新动作。

add_action(\'bbloomer_after_single_product_gallery\', \'bbloomer_add_below_prod_gallery\', 30);

function bbloomer_add_below_prod_gallery() {
    global $product;
    echo \'<div class="text" style="border: thin solid black; clear: both;">\';
    echo \'<p>Random text now</p>\';
    echo \'</div>\';
}
或者直接在新模板中添加html,而不是添加挂钩。

相关推荐