php - 自定义 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;
}
解决方案
推荐阅读
- html - 对齐徽标和导航按钮内联居中 HTML/CSS
- c# - 在 Umbraco 8 中,如何仅查询和返回标签列表中出现的节点?
- mongodb - Realm-CLI 拉取失败:(403 禁止)
- flutter - 两个连接颤动未调用
- visual-c++ - 无效的委托初始化器——函数与委托类型不匹配
- android - Dumpsys 电池历史记录标签
- typescript - 将具有泛型的函数接口提取到单独的类型/接口变量
- azure - 从 azure 获取秘密并将其设置为事实时未定义 Ansible 主机变量
- regression - 降维能提高回归模型的性能吗?
- pytorch - 是什么导致分配 12 GB 内存并导致 CUDA 内存不足错误?模型、数据还是其他?