簡體   English   中英

根據 WooCommerce 購物車總數刪除“繼續結帳”按鈕

[英]Remove "proceed to checkout" button based on WooCommerce cart total

我正在嘗試根據購物車總數禁用和啟用結帳。

禁用繼續結帳按鈕有效,但啟用它不會給出所需的結果,請參見下面的代碼:

function disable_checkout() { 

    $maximum = 500;

    if( WC()->cart->total < $maximum ){
        remove_action( 'woocommerce_proceed_to_checkout', 'woocommerce_button_proceed_to_checkout', 20 );
        echo '<p class="checkout-button button alt">Wholesale Orders is only valid on order more than ' . $maximum . '  Euros.</p>'; 
    } else {
        echo '<p class="checkout-button button alt">Proceed to checkout</p>'; 
        add_action( 'woocommerce_proceed_to_checkout', 'woocommerce_button_proceed_to_checkout', 20 );
    }
}
add_action( 'woocommerce_proceed_to_checkout', 'disable_checkout', 1 );

有人可以指導我完成這個過程嗎?

關於您的代碼嘗試的一些評論/建議:

  • 您可以改用woocommerce_check_cart_items操作掛鈎
  • 使用WC()->cart->get_cart_contents_total()獲取購物車總數。 這是購物車中的商品總數,但已打折。

所以你得到:

function action_woocommerce_check_cart_items() {
    // Setting
    $minimum = 500;

    // Get cart total
    $cart_total = WC()->cart->get_cart_contents_total();

    // Less than the minimum
    if ( $cart_total < $minimum ) {
        // Notice
        wc_add_notice( sprintf( __( 'Wholesale Orders is only valid on order more than %s Euros.', 'woocommerce' ), $minimum ), 'error' );
        
        // Optional: remove proceed to checkout button
        remove_action( 'woocommerce_proceed_to_checkout', 'woocommerce_button_proceed_to_checkout', 20 );
    }
}   
add_action( 'woocommerce_check_cart_items' , 'action_woocommerce_check_cart_items', 10 );

暫無
暫無

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

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