diff --git a/app/Http/Controllers/Admin/MassageController.php b/app/Http/Controllers/Admin/MassageController.php index 88e6b7e..22be621 100644 --- a/app/Http/Controllers/Admin/MassageController.php +++ b/app/Http/Controllers/Admin/MassageController.php @@ -325,24 +325,18 @@ class MassageController extends Controller } /** - * جایگزینی توکن نام مشتری با واریانت‌های فارسی/انگلیسی و فاصله اختیاری. + * جایگزینی توکن نام مشتری با واریانت‌های فارسی/انگلیسی. + * فاصلهٔ بعد از توکن خورده نمی‌شود (باگ «تستسلام»). * مثال: %name ، %name% ، ٪نام ، % نام ، ٪ نام */ private function applyCustomerNamePlaceholders(string $message, string $customerName): string { - $patterns = [ - '/[%٪]\s*name\s*[%٪]?/iu', - '/[%٪]\s*نام\s*[%٪]?/u', - ]; + // فقط فاصلهٔ بین % و کلمهٔ name/نام مجاز است؛ فاصلهٔ بعد از توکن حفظ می‌شود + $pattern = '/[%٪]\s*(?:name|نام)[%٪]?/iu'; - foreach ($patterns as $pattern) { - $replaced = preg_replace($pattern, $customerName, $message); - if (is_string($replaced)) { - $message = $replaced; - } - } + $replaced = preg_replace($pattern, $customerName, $message); - return $message; + return is_string($replaced) ? $replaced : $message; } /** خط آخر پیام باید نام اپ باشد؛ اگر نبود اضافه می‌شود. */