From 83ec4b4306271f9545684a3ae0ea25b8a07618ae Mon Sep 17 00:00:00 2001 From: Abhishek Kumar Date: Mon, 15 Jan 2024 12:52:37 +0530 Subject: [PATCH] Fix voucher code issue --- classes/PaymentModule.php | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/classes/PaymentModule.php b/classes/PaymentModule.php index 8c1841308..ce2801e26 100644 --- a/classes/PaymentModule.php +++ b/classes/PaymentModule.php @@ -664,12 +664,9 @@ abstract class PaymentModuleCore extends Module unset($voucher->id); // Set a new voucher code + // For a customer, applying voucher ABCD will create partial vouchers ABCD-2, ABCD-3 and so on, and + // applying voucher ABCD-2 will create vouchers ABCD-2-2, ABCD-2-3 and so on $voucher->code = empty($voucher->code) ? substr(md5($order->id.'-'.$order->id_customer.'-'.$cart_rule['obj']->id), 0, 16) : $voucher->code.'-2'; - if (preg_match('/\-([0-9]{1,2})\-([0-9]{1,2})$/', $voucher->code, $matches) && $matches[1] == $matches[2]) { - $voucher->code = preg_replace('/'.$matches[0].'$/', '-'.(intval($matches[1]) + 1), $voucher->code); - } - - // If ABCDEFGH-2 already exists for customer use ABCDEFGH-3 while (CartRule::cartRuleExists($voucher->code, $order->id_customer)) { if (preg_match('/\-([0-9]{1,2})$/', $voucher->code, $matches)) { $voucher->code = preg_replace('/'.$matches[1].'$/', (intval($matches[1]) + 1), $voucher->code);