微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决在 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 中设置特定的最低订单金额,但仅适用于特定的邮政编码?

感谢任何帮助。

解决方法

要在 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 文件中。经测试有效。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?