如何在Wordpress的Woocommerce中禁用模板挂钩中的操作?

时间:2015-02-11 12:01:22

标签: php wordpress woocommerce

这是wc-template-hooks.php中代码的一部分:

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 );

以下是content-single-product.php

的代码
do_action( 'woocommerce_after_single_product_summary' );

如果不编辑content-single-product.php,我应该在woocommerce_output_related_products删除wc-template-hooks.php的代码。

抱歉,我是PHP的新手。提前谢谢。

4 个答案:

答案 0 :(得分:4)

你不必把它放在content-single-product.php中,尝试将它添加到functions.php中,如果你只需要在单个产品页面上删除它,请使用woocommerce条件函数,只允许在你的页面上想。例如。

<?php if(is_product()){ 
remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_related_products', 20 ); }?>

答案 1 :(得分:2)

我已经尝试了以上所有解决方案,但没有工作。 Woo-commerce版本3.4.1

工作代码,在functions.php

中的子主题中添加
add_filter('woocommerce_product_related_posts_query', '__return_empty_array', 20);

答案 2 :(得分:1)

如果我正确理解了您的问题,请将其放入主题文件夹中的functions.php

<?php 
function woocommerce_remove_related_products() {
    remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_related_products', 20);
}

add_action('woocommerce_after_single_product_summary', 'woocommerce_remove_related_products'); 
?>

答案 3 :(得分:1)

您可以删除操作,尝试将其添加到 functions.php -

add_filter( 'body_class', 'remove_action_from_woocommerce');
function remove_action_from_woocommerce()
{
 if(is_product()){ 
  remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_related_products', 20 ); }
   }
}
  

在这里你可以获得WooCommerce Action和Filter Hook    - https://docs.woothemes.com/wc-apidocs/hook-docs.html