在 WooCommerce 中为特定邮政编码设置最低订单金额

以下基于 WooCommerce 官方代码片段的代码设置了最低要求的总金额,以便能够结帐:

add_action( 'woocommerce_checkout_process','wc_minimum_order_amount' );
add_action( 'woocommerce_before_cart','wc_minimum_order_amount' );
function wc_minimum_order_amount() {
    // Set this variable to specify a minimum order value
    $minimum = 50;

    if ( WC()->cart->total < $minimum ) {

        if( is_cart() ) {
            wc_print_notice( 
                sprintf( 'Your current order total is %s — you must have an order with a minimum of %s to place your order ',wc_price( WC()->cart->total ),wc_price( $minimum )
                ),'error' 
            );
        } else {
            wc_add_notice( 
                sprintf( 'Your current order total is %s — you must have an order with a minimum of %s to place your order','error' 
            );
        }
    }
}

如何在 WooCommerce 中设置特定的最低订单金额,但仅适用于特定的邮政编码?

感谢任何帮助。

lala_2009 回答:在 WooCommerce 中为特定邮政编码设置最低订单金额

要在 WooCommerce 中为特定邮政编码设置最低订单金额,请尝试以下操作:

add_action( 'woocommerce_checkout_process','wc_minimum_order_amount' );
add_action( 'woocommerce_before_cart','wc_minimum_order_amount' );
function wc_minimum_order_amount() {
    $minimum   = 50; // Set the minimum order value
    $postcodes = array('99152','99154'); // Define your targeted postcodes in the array
    $postcode  = ''; // Initializing

    if ( isset($_POST['shipping_postcode']) && ! empty($_POST['shipping_postcode']) ) {
        $postcode = $_POST['shipping_postcode'];
        if ( empty($postcode) && isset($_POST['billing_postcode']) && ! empty($_POST['billing_postcode']) ) {
            $postcode = $_POST['billing_postcode'];
        }
    } elseif ( $postcode = WC()->customer->get_shipping_postcode() ) {
        if ( empty($postcode) ) {
            $postcode = WC()->customer->get_billing_postcode();
        }
    }

    if ( WC()->cart->total < $minimum && ! empty($postcode) && in_array( $postcode,$postcodes ) ) {
        $error_notice = sprintf( 'Your current order total is %s — you must have an order with a minimum of %s to place your order ',wc_price( WC()->cart->total ),wc_price( $minimum )
        );

        if( is_cart() ) {
            wc_print_notice( $error_notice,'error' );
        } else {
            wc_add_notice( $error_notice,'error' );
        }
    }
}

代码位于活动子主题(或活动主题)的functions.php 文件中。经测试有效。

本文链接:https://www.f2er.com/621198.html

大家都在问