我正在尝试了解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,但是我要么将所有东西都获取了,要么一无所获。
我只想将特定的挂钩放置在特定的位置。
预先感谢
答案 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>
您只需要在撕裂之前将其删除即可。