簡體   English   中英

為 Woocommerce 中的登錄用戶隱藏“添加到購物車”按鈕

[英]Hide "Add to Cart" button for logged in users in Woocommerce

在我的網站上(使用 Woocommerce 3.2.6),我只想為登錄用戶隱藏“添加到購物車”按鈕。

我有這段代碼:

add_action('init', 'hide_price_add_cart_logged_in');
function hide_price_add_cart_logged_in() {
    if ( is_user_logged_in() ) {       
        remove_action( 'woocommerce_after_shop_loop_item', 
            'woocommerce_template_loop_add_to_cart', 10 );
        remove_action( 'woocommerce_single_product_summary', 
            'woocommerce_template_single_add_to_cart', 30 );
    }
}

編輯:有人建議我使用這個:

add_action('init', 'hide_price_add_cart_logged_in');
function hide_price_add_cart_logged_in() { 
    if ( is_user_logged_in() ) {       
        remove_action( 'woocommerce_after_shop_loop_item', 
            'woocommerce_template_loop_add_to_cart', 10 );
        remove_action( 'woocommerce_single_product_summary', 
            'woocommerce_template_single_add_to_cart', 30 );
        return WooCommerce::instance();
    }
}

但這沒有用...

我已將這段代碼插入 functions.php 文件到我的主題中,但它似乎沒有做任何改變。 檢查某些產品時,我仍然看到添加到購物車按鈕。

如何刪除該按鈕? 我的 function 錯誤在哪里?

您應該嘗試以下方法:

add_action( 'woocommerce_after_shop_loop_item', 'remove_loop_add_to_cart_button', 1 );
function remove_loop_add_to_cart_button() {
    // Only for logged in users
    if( ! is_user_logged_in() ) return;

    remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );
}


add_action( 'woocommerce_single_product_summary', 'remove_add_to_cart_button', 1 );
function remove_add_to_cart_button() {
    // Only for logged in users
    if( ! is_user_logged_in() ) return;

    global $product;

    // For variable product types (keeping attribute select fields)
    if( $product->is_type( 'variable' ) ) {
        remove_action( 'woocommerce_single_variation', 'woocommerce_single_variation_add_to_cart_button', 20 );
    }
    // For all other product types
    else {
        remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
    }
}

代碼進入您的活動子主題(或活動主題)的function.php文件中。

經過測試和工作


您可以用鏈接到產品的按鈕代替它,而不是在存檔頁面(例如商店)上隱藏“添加到購物車”按鈕。 因此,代碼將改為:

// Replacing the button add to cart by a link to the product in Shop and archives pages
add_filter( 'woocommerce_loop_add_to_cart_link', 'replace_loop_add_to_cart_button', 10, 2 );
function replace_loop_add_to_cart_button( $button, $product  ) {
    // Only for logged in users
    if( ! is_user_logged_in() ) return;

    $button_text = __( "View product", "woocommerce" );
    $button = '<a class="button" href="' . $product->get_permalink() . '">' . $button_text . '</a>';

    return $button;
}

add_action( 'woocommerce_single_product_summary', 'remove_add_to_cart_button', 1 );
function remove_add_to_cart_button() {
    // Only for logged in users
    if( ! is_user_logged_in() ) return;

    global $product;

    // For variable product types (keeping attribute select fields)
    if( $product->is_type( 'variable' ) ) {
        remove_action( 'woocommerce_single_variation', 'woocommerce_single_variation_add_to_cart_button', 20 );
    }
    // For all other product types
    else {
        remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );;
    }
}

代碼進入您的活動子主題(或活動主題)的function.php文件中。

經過測試和工作

add_action( 'init', 'shessvy_hide_price_add_cart_not_logged_in' );
 
function shessvy_hide_price_add_cart_not_logged_in() {
    if ( ! is_user_logged_in() ) {
 
        add_filter( 'woocommerce_is_purchasable', '__return_false');
 
        add_action( 'woocommerce_single_product_summary', 'shessvy_print_login_to_see', 31 );
        add_action( 'woocommerce_after_shop_loop_item', 'shessvy_print_login_to_see', 11 );
        add_action( 'woocommerce_simple_add_to_cart', 'shessvy_print_login_to_see', 30 );
        remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );

    }
}
 
function shessvy_print_login_to_see() {
    echo '<a href="' . get_permalink(wc_get_page_id('myaccount')) . '" rel="nofollow ugc">' . __('Login to add this item to your cart', 'theme_name') . '</a>';
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM