首页 > 解决方案 > 自定义 woocommerce 订单号。从 1001 开始并在达到 9999 时重置?

问题描述

我正在尝试将 woocommerce 订单号自定义为“#E202105181001”

前缀 'E' 创建日期 2021 年 5 月 18 日,例如 '20210518' 订单号以 '1001' 开头,最大为 9999 并且想在订单号达到 9999 时再次将订单号重置为 1001

但是我的代码似乎只能在 24 小时内重置它,请问我应该如何编辑代码?另外,我发现woocommerce订单页面搜索功能也无法用自定义订单号搜索,请问是否可以用我的自定义订单号搜索?提前致谢!

// Custom Order Numbers

add_filter( 'woocommerce_order_number', 'change_woocommerce_order_number' );

function change_woocommerce_order_number( $order_id )  {
            global $wpdb;
            $prefix       = 'E';
            $digits       = 4;
            $order        = wc_get_order( $order_id );
            $order_date   = $order->get_date_created();
            $date_created = $order_date->date( 'Ymd' );
            $query        = "SELECT ID FROM {$wpdb->prefix}posts WHERE post_date LIKE '%".$date_created."%' AND post_type='shop_order' ORDER BY ID ";
            $result       = $wpdb->get_results( $query );
            $count        = 0;

            foreach( $result as $index => $id ) {
                if( strval($order_id) == $id->ID ) {
                    $count = $index + 1; 
                    break;        
                }
            }

            $new_order_id =  $prefix .$date_created. $suffix. str_pad($count, $digits, '0', STR_PAD_LEFT);
            return $new_order_id;
}

标签: phpwordpresswoocommercehook-woocommerce

解决方案


推荐阅读