从循环中删除“添加到购物车按钮”(Wordpress主题:Avada)

时间:2018-07-04 13:47:55

标签: wordpress woocommerce hook

除了单条信息,我想删除所有地方的“添加到购物车按钮”。

我已经尝试过此解决方案:

Hide 'add to cart' button ONLY on woocommerce shop/category pages

虽然它对我没有用。我猜这是因为我使用的模板是:Avada。看起来模板使用的钩子与普通的woocommerce钩子不同。使用在文件中找到的钩子名称,我尝试了以下方法:

add_action( 'woocommerce_after_shop_loop_item', 'remove_add_to_cart_buttons', 1 );

 function remove_add_to_cart_buttons() {
     remove_action( 'avada_woocommerce_buttons_on_rollover', 'avada_woocommerce_template_loop_add_to_cart',10 );
 }

它什么也没做。有人知道我需要做什么吗?

编辑: 有这些行的文件class-avada-woocommerce.php

add_action( 'avada_woocommerce_buttons_on_rollover', array( $this, 'template_loop_add_to_cart' ), 10 );
...
remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );

如果我在父主题文件中删除了这两行的第一行,则添加到购物车按钮会消失。因此,我知道这是我需要删除的操作,但我无法删除。

因此,我也尝试了以下每一行:

remove_action( 'avada_woocommerce_buttons_on_rollover', 'avada_woocommerce_template_loop_add_to_cart',10 );

remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart');

remove_action( 'avada_woocommerce_buttons_on_rollover', array( $this, 'template_loop_add_to_cart' ), 10 );

remove_action( 'avada_woocommerce_buttons_on_rollover', 'template_loop_add_to_cart' , 10 );

4 个答案:

答案 0 :(得分:2)

我也坚持这个问题,因为remove_action对我不起作用。仅通过浏览woocommerce模板的代码,我才发现他们使用过滤器来调用此按钮。因此,请尝试以下代码:

add_filter( 'woocommerce_loop_add_to_cart_link', 'hide_add_to_cart_link', 10, 2 );
function hide_add_to_cart_link( $html, $product ) {
    if ( !is_user_logged_in() ) { 
        $html = '';
    }
    return $html;
}

根据您的需要进行修改。我也使用Avada,它对我有用!

答案 1 :(得分:1)

需要覆盖Avada Woocommerce挂钩。将此代码添加到functions.php

function remove_woo_commerce_hooks() {
    global $avada_woocommerce;
    remove_action( 'woocommerce_after_shop_loop_item', array( $avada_woocommerce, 'template_loop_add_to_cart' ), 10 );
}
add_action( 'after_setup_theme', 'remove_woo_commerce_hooks' );

答案 2 :(得分:0)

只需将此波纹管代码添加到functions.php中

remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart');

然后让我知道结果。 谢谢

答案 3 :(得分:0)

请使用下面的代码从商店页面上删除add to cart按钮,因为您缺少$avada_woocommerce,这是用于avada woocommerce的变量。

remove_action( 'woocommerce_after_shop_loop_item', array( $avada_woocommerce, 'show_details_button' ), 15 );