2017-02-13 62 views
0
remove_action('woocommerce_after_single_product_summary', 'woocommerce_output_related_products', 20); 

我在我的functions.php文件中有此行。我从content-single-product.php文件中获得了这些钩子。但是,我的单一产品页面上的相关产品仍然存在。remove_action对相关产品无法使用woocommerce钩子

我不想完全删除的功能,我欺骗他们$args做我自己的查询。

更新

function remove_woo_relate_products(){ 
    remove_action('woocommerce_after_single_product_summary', 'woocommerce_output_related_products', 20); 
    remove_action('woocommerce_after_single_product_summary', 'woocommerce_upsell_display', 15); 
} 

add_action('init', 'remove_woo_relate_products', 10); 

我试着写一个函数来实现我的目标,但是从do_action相关产品仍然存在。我只能想到CSS来做我需要的,但我不应该依赖这个。

而且,只是为了展示这个的缘故,这是什么在content-single.product.php文件:

<?php 
    /** 
    * woocommerce_after_single_product_summary hook. 
    * 
    * @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'); 
?> 
+0

在你删除语句中的优先级'ADD_ACTION)的优先级('不匹配,这是10 – helgatheviking

+0

**你的代码正在完美地使用作品**(以及您使用的**优先顺序**是好的**)。你的问题当然与你的主题有关。为了说明这些证据,请尝试以下操作(之前进行数据库备份):切换到默认的Wordpress主题,并将您的代码添加到此默认主题的function.php并保存。 **你会看到你的代码正在工作...... ** – LoicTheAztec

回答

0

由于LoicTheAztec正确地指出,你的代码工作正常。我们测试了它。相关产品被删除,但加售产品仍在那里。 我们使用店面主题进行了测试。

function remove_woo_relate_products(){ 
    remove_action('woocommerce_after_single_product_summary', 'woocommerce_output_related_products', 20); 
    remove_action('woocommerce_after_single_product_summary', 'woocommerce_upsell_display', 15); 
    remove_action('woocommerce_after_single_product_summary', 'storefront_upsell_display', 15); 
} 
add_action('init', 'remove_woo_relate_products', 10); 

你可以看到,storefront_upsell_display呼吁加售的woocommerce_upsell_display

function storefront_upsell_display() { 
    woocommerce_upsell_display(-1, 3); 
} 

所以在这段代码中,我们已经删除了主题的行动。在相同的逻辑中,可能会在您的主题中调用相关产品功能。如果是这种情况,您可以删除相应的操作。

注:请确保该代码是在当前的主题的functions.php的