相关产品上的remove_action无法使用woocommerce hook

时间:2017-02-13 23:10:37

标签: woocommerce hook hook-woocommerce

remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_related_products', 20 );

我的functions.php文件中有这一行。我从content-single-product.php文件中获取了这些钩子。但是,我的单个产品页面上的相关产品仍然存在。

我不想完全删除这些功能,我欺骗他们$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' );
?>

1 个答案:

答案 0 :(得分:1)

正如LoicTheAztec正确指出的那样,您的代码运行正常。我们测试了它。相关产品已被删除,但追加销售的产品仍在那里。 我们使用店面主题进行了测试。

// View controller
public override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator)
{
  super.viewWillTransition(to: size, with: coordinator);

  self.navigationBar?.invalidateIntrinsicContentSize();
}

您可以看到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

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

注意:确保代码在当前主题的functions.php