目前这是我创建随机唯一发票号码的功能,该号码存储在表格的隐藏字段中
function generate_invoice_number() {
global $wpdb;
$lastVisitor = $wpdb->get_results("SELECT visitorID FROM event_visitors_2014 ORDER BY visitorsID DESC LIMIT 1", ARRAY_A);
$nr_last = $lastVisitor[0]['visitorID'];
$nr = 501 + $nr_last;
$value = sprintf( '%04d', $nr );
$number = 'LEDEXPO'.date('Y').'-'.uniqid().'-'.$value;
return $number;
}
当多个人同时使用该表单时,我遇到了问题,比如3个人正在使用他们都生成相同数字的表单。 所以我添加了uniqid(),所以$ value可以重复,但$ number应该是唯一的?这是正确的还是有更好的方法?
如何使测试功能在独特性上测试此功能?
问候
答案 0 :(得分:1)
试试这个:
function generate_invoice_number()
{
global $wpdb;
$lastVisitor = $wpdb->get_results("SELECT visitorID FROM event_visitors_2014 ORDER BY visitorsID DESC LIMIT 1", ARRAY_A);
$nr_last = $lastVisitor[0]['visitorID'] + 1;
$number = date('Ymd') . $nr_last;
return $number;
}