gpt4 book ai didi

php - 删除操作无法删除默认的 WooCommerce Hook 函数

转载 作者:行者123 更新时间:2023-12-02 03:42:11 27 4
gpt4 key购买 nike

我正在尝试将产品选项卡从 woocommerce_after_single_product_summary 移动到 woocommerce_before_single_product_summary。本质上,我想用具有图像库的选项卡替换单个产品上的产品图像,但所有其他选项卡都显示在同一容器中。我在尝试让选项卡周围的容器像图像周围的容器一样工作时遇到问题,但让我困惑的是如何从 woocommerce_after_single_product_summary 部分中删除选项卡。我可以毫无问题地从同一部分删除“相关产品”,但我所做的一切都没有改变标签。

这可以很好地删除图像:

remove_action ('woocommerce_before_single_product_summary', 
'woocommerce_show_product_images',20);

这可以很好地在其位置添加选项卡(容器问题除外):

add_action( 'woocommerce_before_single_product_summary', 
'woocommerce_output_product_data_tabs', 20 );

但这似乎永远不会摆脱标签:

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

我已经检查过 10 是正确的数字(我发现确实有所不同),但它是正确的。我跟踪 add_action 到woocommerce/includes/wc-template-hooks.php:

/**
* After Single Products Summary Div.
*
* @see woocommerce_output_product_data_tabs()
* @see woocommerce_upsell_display()
* @see woocommerce_output_related_products()
*/
add_action( 'woocommerce_after_single_product_summary',
'woocommerce_output_product_data_tabs', 10 );
add_action( 'woocommerce_after_single_product_summary',
'woocommerce_upsell_display', 15 );
add_action( 'woocommerce_after_single_product_summary',
'woocommerce_output_related_products', 20 );

我可以通过以下方式删除相关产品:删除_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_lated_products', 20 );

我已经尝试过(在另一个主题中)该钩子(Hook)可能需要“模板重定向”的建议,但这也不起作用。我尝试的是:

    // Trying template redirect
function esb_product_category_filter_changes()
{remove_action('woocommerce_after_single_product_summary',
'woocommerce_output_product_data_tabs', 10);
}
do_action('template_redirect','esb_product_category_filter_changes');

有什么想法吗?我搜索了所有可能相关的插件,关闭了一些插件,但行为仍然相同。我可以将标签放在任何我想要的地方,但我无法摆脱它们。

最佳答案

我已经在店面主题上进行了测试:

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

而且它有效。因此,您的问题可能是由于您的主题或某些对此进行一些自定义的插件造成的。

如何检查:
通过以下 Hook 函数,您将获得 woocommerce_after_single_product_summary Hook 的原始数据输出(所有回调,带有优先级和参数) 。通过这种方式,您将能够查看 woocommerce_output_lated_products 是否已 Hook 以及优先级是什么。

此测试功能将仅在文件和产品页面中为管理员输出数据:

add_action( 'woocommerce_before_main_content', function(){
// Only for admin user role
if( ! current_user_can('edit_products')) return;

global $wp_filter;
echo '<pre>';
print_r( $wp_filter['woocommerce_after_single_product_summary'] );
echo '</pre>';
}, 50 );

代码位于事件子主题(或事件主题)的 function.php 文件中。

现在您可以在 remove_action() 中设置正确的优先级(并删除此测试代码)。


您还可以尝试以下代码(没有任何保证):

add_action( 'woocommerce_after_single_product_summary', 'removing_product_tabs', 2 );
function removing_product_tabs(){
remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_product_data_tabs', 10 );
}

代码位于事件子主题(或事件主题)的 function.php 文件中。

关于php - 删除操作无法删除默认的 WooCommerce Hook 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48215628/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com