方案一: 修改主题下的 functions.php 文件
我想将订单号按照“DD_+ 日期(20230508)+ 序号(001)”的规则生成:
add_filter('woocommerce_order_number', 'custom_order_number', 1, 2);
function custom_order_number($order_id, $order) {
// 检查订单是否已有自定义订单号
$order_number = $order->get_order_number();
if(strpos($order_number, 'DD_') !== false) {return $order_number;}
global $wpdb;
// 获取今天的订单数量
$current_date = date('Ymd');
$count = $wpdb->get_var($wpdb->prepare("
SELECT COUNT(*) FROM {$wpdb->prefix}woocommerce_orders
WHERE DATE(order_date) = %s
", $current_date)
);
// 设置订单号
$order_number = 'DD_'.$current_date.'_'.sprintf('%03d', $count + 1);
// 释放内存
unset($wpdb);
unset($current_date);
unset($count);
return $order_number;
}
通过以下两种方法来增加 PHP 的内存限制:
在 WordPress 的 wp-config.php 文件中添加以下代码:
define('WP_MEMORY_LIMIT', '256M');
这将把 WordPress 的内存限制增加到 256MB。
在 PHP.ini 文件中修改 memory_limit 指令: 找到 PHP.ini 文件中的 memory_limit 指令并将其设置为 256M
方案二: 安装插件
目前好多插件都有免费的功能,如果想更多的功能一般就都要付费了。不过有的插件,免费的模块也够我们使用了。 我推荐一款免费的自定义订单号插件:Sequential Order Numbers for WooCommerce