簡體   English   中英

如果產品已經在 WooCommerce 購物車中,則禁用添加到購物車按鈕

[英]Disable add to cart button if product is already in WooCommerce cart

如果產品已添加,我想禁用“添加到購物車”按鈕。 我已經設法改變了。 測試已添加的產品,以便按鈕顯示“已添加”。 代碼或在下面。 除了文本更改之外,我只是不知道如何禁用該按鈕。

add_filter('woocommerce_product_add_to_cart_text', 'wc_product_add_to_cart_text', 10, 2 );
add_filter('woocommerce_product_single_add_to_cart_text', 'wc_product_add_to_cart_text', 10, 2 );

function wc_product_add_to_cart_text( $text, $product ){

    $product_cart_id = WC()->cart->generate_cart_id( $product->get_id() );
    $in_cart = WC()->cart->find_product_in_cart( $product_cart_id );

    if ( $in_cart ) {
        $text = "Already added";
    }
    return $text;
}

當您在 WooCommerce 中編輯產品時,可以選擇“僅單獨銷售”。 我不知道這是否是您想要實現的目標,但這可能是一個更合適的解決方案並且不太容易出現錯誤。

如果您根本不使用默認商店頁面,您應該在商店頁面上放置一個重定向,該頁面始終將用戶重定向到例如您用於商店的頁面。

除此之外,您還可以在這里找到一個鈎子,您可以使用它來禁用“添加到購物車”的重定向。

我找到此代碼來檢查產品是否已在您的購物車中。 您可以從 body_class(); 獲取當前產品 ID。 只需將此功能掛鈎到 woocommerce_add_to_cart。

function woo_in_cart($product_id) {
    global $woocommerce;         
    foreach($woocommerce->cart->get_cart() as $key => $val ) {
        $_product = $val['data'];

        if($product_id == $_product->id ) {
            wp_redirect( $url );
        }
    }         
}

只需添加

ul.woocommerce-error {
display: none;

}

在您的附加 CSS 中。

暫無
暫無

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

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