【问题标题】:Woocommerce/Wordpress(Avada Theme) Remove Add to Cart and Details Buttons on Category PagesWoocommerce/Wordpress(Avada 主题)删除类别页面上的添加到购物车和详细信息按钮
【发布时间】:2021-08-30 01:57:21
【问题描述】:

我想从产品类别页面中删除“添加到购物车”按钮和“详细信息”按钮,但更具体地说,仅适用于具有特定自定义元数据的特定产品。

我已经设置了一个自定义插件来添加一个管理框,该管理框在产品管理页面上有一个简单的复选框,询问产品是否“即将推出”如果选中该复选框,它会设置“即将推出”的自定义元数据值-复选框”改为“是”。如果未选中,则为“否”。

问题在于使用 Avada 插件,它添加和替换了 woocommerce 的一些操作。所以我已经能够替换实际产品页面上的添加到购物车按钮,但在类别页面上我不知道该怎么做。

function remove_woo_commerce_hooks() {
    global $avada_woocommerce;
    $coming_soon = get_post_meta( get_the_ID(), 'comingsoon-checkbox', true );
     
    if ($coming_soon == 'yes'){ 
        remove_action( 'woocommerce_after_shop_loop_item', array( $avada_woocommerce, 'template_loop_add_to_cart' ), 10 );
        remove_action( 'woocommerce_after_shop_loop_item', array( $avada_woocommerce, 'show_details_button' ), 15 );
        
        add_action( 'woocommerce_after_shop_loop_item', 'coming_soon_text', 30 );
    }
}
add_action( 'after_setup_theme', 'remove_woo_commerce_hooks' );

同样在类别页面上,元数据返回 null。有没有办法做到这一点?

谢谢。

【问题讨论】:

    标签: php wordpress woocommerce


    【解决方案1】:

    我已经为那些寻找这个的人想出了我自己的问题。我更改了“add_action”,因为它没有在正确的时间运行以移除按钮。

    add_action( 'woocommerce_shop_loop_item_title', 'remove_woo_commerce_hooks');   
        
    function remove_woo_commerce_hooks() {
        global $avada_woocommerce;
        $coming_soon = get_post_meta( get_the_ID(), 'comingsoon-checkbox', true );
            
        if ($coming_soon == 'yes'){ 
            
            remove_action( 'woocommerce_after_shop_loop_item', array( $avada_woocommerce, 'template_loop_add_to_cart' ), 10 );
            remove_action( 'woocommerce_after_shop_loop_item', array( $avada_woocommerce, 'show_details_button' ), 15 );
            
            add_action( 'woocommerce_after_shop_loop_item', 'coming_soon_text', 30 );
            
        }
        else{
            add_action( 'woocommerce_after_shop_loop_item', array( $avada_woocommerce, 'template_loop_add_to_cart' ), 10 );
            add_action( 'woocommerce_after_shop_loop_item', array( $avada_woocommerce, 'show_details_button' ), 15 );
        }
        
    }
    

    这就是coming_soon_text函数。

    function coming_soon_text(){
    $coming_soon = get_post_meta( get_the_ID(), 'comingsoon-checkbox', true );
     if ($coming_soon == 'yes'){   
            echo '<div class="comingsoontext">PRODUCT COMING SOON</div>';
            
            
     }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-22
      • 2013-06-11
      • 1970-01-01
      相关资源
      最近更新 更多