Woocommerce将特定的add_action放入特定的div

时间:2019-02-14 08:44:15

标签: css woocommerce webhooks

我正在尝试了解woocommerce网络钩子。

我正在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,但是我要么将所有东西都获取了,要么一无所获。

我只想将特定的挂钩放置在特定的位置。

预先感谢

2 个答案:

答案 0 :(得分:0)

使用此选项卡可在所需位置显示标签

<div id="div_left">
wc_get_template( 'single-product/tabs/tabs.php' );
</div>

从操作中删除标签页回调

remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_product_data_tabs', 10 );

答案 1 :(得分:0)

你好,你可以试试这个。

<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 就像 PHP 中的 Echo,并且会在您的情况下从 product_data_tabs 字段中回显 after_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>

您只需要在撕裂之前将其删除即可。