首页 > 解决方案 > Woocommerce 将特定的 add_action 放在特定的 div 中

问题描述

我试图了解 woocommerce webhook。

我在 content-single-product.php 内部工作

我有 2 个 div:

<div id="div_left"></div>
<div id="div_right"></div>

我现在有 do_action:

/**
         * Hook: woocommerce_after_single_product_summary.
         *
         * @hooked woocommerce_output_product_data_tabs - 10
         * @hooked woocommerce_upsell_display - 15
         * @hooked woocommerce_output_related_products - 20
         */
        do_action( 'woocommerce_after_single_product_summary' );

如您所见,网络挂钩包含多个操作。

我想要执行的是:

<div id="div_left">
woocommerce_output_product_data_tabs - 10
</div>

<div id="div_right">
woocommerce_upsell_display - 15
</div>

我如何插入这样的动作?

因为我现在正在尝试使用 remove_action 和 add_action,但是我要么将所有内容都放入钩子中,要么一无所获。

我只想将特定的钩子放在特定的地方。

提前致谢

标签: csswoocommercewebhooks

解决方案


你好,你可以试试这个。

<div id="div_left">
    <?php do_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_product_data_tabs', 10 ); ?>
</div>
<div id="div_right">
    <?php do_action( 'woocommerce_after_single_product_summary', 'woocommerce_upsell_display', 15 ); ?>
</div>

例如,do_action就像Echo在 PHP 中一样,并且会在您的情况下product_data_tabsafter_single_product_summary现场回显。

remove_action此外,您可以在调用之前为某些元素编写do_action; 例如:

<?php
remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_related_products', 20 ); ?>
<div id="div_left">
        <?php do_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_product_data_tabs', 10 ); ?>
    </div>
    <div id="div_right">
        <?php do_action( 'woocommerce_after_single_product_summary', 'woocommerce_upsell_display', 15 ); ?>
    </div>

你只需要在撕掉它之前删除它。


推荐阅读