مرحبا ،
مرحبا بك في {app_name}.
مرحبا ، {order_name} ، شكرا للتسوق
قمنا باستلام طلب الشراء الخاص بك ، سيتم الاتصال بك قريبا !
شكرا ،
{app_name}
{order_url}
您好,
欢迎来到 {app_name}。
您好,{order_name},感谢您的购物
我们已收到您的购买请求,我们很快就会与您联系!
谢谢,
Hej,
Velkommen til {app_name}.
Hej, {order_name}, tak for at Shopping
Vi har modtaget din købsanmodning.
Tak,
{app_navn}
Hello,
Willkommen bei {app_name}.
Hi, {order_name}, Vielen Dank für Shopping
Wir haben Ihre Kaufanforderung erhalten, wir werden in Kürze in Kontakt sein!
Danke,
Welcome to {app_name}.
Hi, {order_name}, Thank you for Shopping
We received your purchase request, we\'ll be in touch shortly!
Thanks,
Hola,
Bienvenido a {app_name}.
Recibimos su solicitud de compra, ¡estaremos en contacto en breve!
Gracias,
Bonjour,
Bienvenue dans {app_name}.
We reçus your purchase request, we \'ll be in touch incess!
שלום,
ברוך הבא ל{app_name}.
היי, {order_name}, תודה על הקניות
קיבלנו את בקשת הרכישה שלך, ניצור קשר בקרוב!
תודה,
NAVE ÓRICA-Тутутутугальстугальский (app_name}).
Hi, {order_name}, пасссский
польстугальский потугальский (португальский), "скортугальский".
nome_do_appсссский!
Ciao,
Benvenuti in {app_name}.
Ciao, {order_name}, Grazie per Shopping
Abbiamo ricevuto la tua richiesta di acquisto, noi \ saremo in contatto a breve!
Grazie,
こんにちは
{app_name}へようこそ。
こんにちは、 {order_name}、お客様の購買要求書をお受け取りいただき、すぐにご連絡いたします。
ありがとうございます。
Hallo,
Welkom bij {app_name}.
Hallo, {order_name}, Dank u voor Winkelen
We hebben uw aankoopaanvraag ontvangen, we zijn binnenkort in contact!
Bedankt,
{ app_name }
Witamy w aplikacji {app_name}.
Hi, {order_name}, Dziękujemy za zakupy
Otrzymamy Twój wniosek o zakup, wkrótce będziemy w kontakcie!
Dzięki,
Здравствуйте,
Вас приветствует {app_name}.
Hi, {order_name}, Спасибо за Шоппинг
Мы получили ваш запрос на покупку, мы \ скоро свяжемся!
Спасибо,
Merhaba,
{app_name}'e hoş geldiniz.
Merhaba {order_name}, Alışveriş için teşekkür ederiz
Satın alma talebinizi aldık, kısa süre içinde sizinle iletişime geçeceğiz!
Teşekkürler,
مرحبًا ،
مرحبًا بك في {app_name}.
طلبك هو {order_status}!
مرحبًا {order_name} ، شكرًا لك على التسوق
شكرًا ، p>
您的订单是 {order_status}!
您好{order_name},感谢您的购物
Din ordre er {order_status}!
Hej {order_navn}, Tak for at Shopping
Ihre Bestellung lautet {order_status}!
Hi {order_name}, Danke für Shopping
Your Order is {order_status}!
Hi {order_name}, Thank you for Shopping
Votre commande est {order_status} !
ברוך הבא ל {app_name}.
ההזמנה שלך היא {order_status}!
היי {order_name}, תודה על הקניות
SHOPPING CENTER-Тутутутугальстугальский (app_name}).
nomeia альстугальский (order_status}!
Hi {order_name}, Obrigado por Shopping
Obrigado,
Il tuo ordine è {order_status}!
Ciao {order_name}, Grazie per Shopping
Uw bestelling is {order_status}!
Hi {order_name}, Dank u voor Winkelen
Twoje zamówienie to {order_status}!
Hi {order_name}, Dziękujemy za zakupy
Ваш заказ-{order_status}!
Siparişiniz {order_status}!
Merhaba {order_name}, Alışveriş için teşekkürler
مرحبًا ، p>
عزيزي {owner_name}.
هذا أمر تأكيد {order_id} ضعه على {order_date}.
尊敬的{owner_name}。
这是确认订单 {order_id},地点为{order_date}。
Hej
Kære {owner_name}.
Dette er ordrebekræftelse {order_id} sted på {order_date}.
Sehr geehrter {owner_name}.
Dies ist die Auftragsbestätigung {order_id}, die am {order_date} aufgegeben wurde.
Dear {owner_name}.
This is Confirmation Order {order_id} place on {order_date}.
Estimado {owner_name}.
Este es el lugar de la orden de confirmación {order_id} en {order_date}.
Cher {owner_name}.
Ceci est la commande de confirmation {order_id} passée le {order_date}.
Merci,
יָקָר {owner_name}.
זהו צו אישור {order_id} מקום על {order_date}.
Térica-Dicas de Cadeia Pública de Тутутугальский (owner_name}).
Тугальстугальстугальский (order_id} ний {order_date}.
nome_do_chave de vida,
{order_url}', 'it' => '
Gentile {owner_name}.
Questo è l\'ordine di conferma {order_id} effettuato su {order_date}.
こんにちは、 p>
親愛なる{owner_name}。 p>
これは、 {order_date}の確認注文{order_id}の場所です。 span> p> ありがとうございます p> {order_url} p>', 'nl' => 'Hallo, Beste {owner_name}.Dit is de bevestigingsopdracht {order_id} die is geplaatst op {order_date}. Bedankt,{order_url}', 'pl' => 'Witaj, Drogi {owner_name}.To jest potwierdzenie zamówienia {order_id} złożone na {order_date}. Dzięki,{order_url}', 'ru' => ' Здравствуйте, Уважаемый {owner_name}. Это подтверждение заказа {order_id} на {order_date}. Спасибо, {order_url} ', 'tr' => 'Merhaba, Sevgili {owner_name}.Bu, {order_id} siparişinin {order_date}.Teşekkürler,{order_url}', 'pt-br' => ' Térica-Dicas de Cadeia Pública de Тутутугальский (owner_name}). Тугальстугальстугальский (order_id} ний {order_date}. nome_do_chave de vida, {order_url} {order_url}', ], ], 'Owner And Store Created' => [ 'subject' => 'Owner And Store Detail', 'lang' => [ 'ar' => 'مرحبًا, {owner_name} ! مرحبًا بك في التطبيق الخاص بنا تفاصيل تسجيل الدخول الخاصة بـ {app_name} هو البريد الإلكتروني : {owner_email} كلمة المرور : {owner_password} عنوان url للتطبيق : {app_url} عنوان URL للمتجر: {store_url} شكرا لتواصلك معنا، {app_name}', 'da' => 'Hej, {owner_name} ! Velkommen til vores app, hvor du kan logge ind {app_name} er E-mail : {owner_email} Adgangskode : {owner_password} App url : {app_url} Butiks-url: {store_url} Tak fordi du tog kontakt med os, {app_name}', 'de' => 'Hallo, {owner_name} ! Willkommen in unserer App für Ihre Login-Daten {app_name} ist Email : {owner_email} Passwort : {owner_password} App-URL : {app_url} Shop-URL: {store_url} Danke, dass Sie sich mit uns verbunden haben, {app_name}', 'en' => 'Hello, {owner_name} ! Welcome to our app yore login detail for {app_name} is Email : {owner_email} Password : {owner_password} App url : {app_url} Store url : {store_url} Thank you for connecting with us, {app_name}', 'es' => 'Hola, {owner_name} ! Bienvenido a nuestra aplicación antaño detalles de inicio de sesión para {app_name} es Correo electrónico : {owner_email} Clave : {owner_password} URL de la aplicación : {app_url} URL de la tienda: {store_url} Gracias por conectar con nosotras, {app_name}', 'fr' => 'Bonjour, {owner_name} ! Bienvenue sur notre application autrefois les informations de connexion pour {app_name} est E-mail : {owner_email} Mot de passe : {owner_password} URL de l\'application : {app_url} URL du magasin : {store_url} Merci de nous avoir contacté, {app_name}', 'it' => 'Ciao, {owner_name} ! Benvenuto nella nostra app per i tuoi dati di accesso {app_name} è E-mail : {owner_email} Parola d\'ordine : {owner_password} URL dell\'app : {app_url} URL del negozio: {store_url} Grazie per esserti connesso con noi, {app_name}', 'ja' => 'こんにちは, {owner_name} ! 私たちのアプリのyoreログインの詳細へようこそ {app_name} は Eメール : {owner_email} パスワード : {owner_password} アプリのURL : {app_url} ストアの URL : {store_url} ご連絡ありがとうございます, {app_name}', 'nl' => 'Hallo, {owner_name} ! Welkom bij de inloggegevens van onze app voor: {app_name} is E-mail : {owner_email} Wachtwoord : {owner_password} App-URL : {app_url} Winkel-URL: {winkel_url Bedankt voor het contact met ons, {app_name}', 'pl' => 'Witam, {owner_name} ! Witamy w naszej aplikacji yore dane logowania do {app_name} jest E-mail : {owner_email} Hasło : {owner_password} URL aplikacji : {app_url} Adres sklepu: {store_url} Dziękujemy za kontakt z nami, {app_name}', 'ru' => 'Привет, {owner_name} ! Добро пожаловать в наше приложение. {app_name} является Эл. адрес : {owner_email} Пароль : {owner_password} URL приложения : {app_url} URL-адрес магазина: {store_url} Спасибо, что связались с нами, {app_name}', 'pt' => 'Olá, {owner_name} ! Bem-vindo ao nosso aplicativo antigo detalhe de login para {app_name} é E-mail : {owner_email} Senha : {owner_password} URL do aplicativo : {app_url} URL da loja: {store_url} Obrigado por conectar com a gente, {app_name}', 'tr' => 'Merhaba, {owner_name} ! Uygulamamıza hoş geldiniz, eski {app_name} için giriş ayrıntısı E-posta : {owner_email} Şifre : {owner_password} Uygulama url : {app_url} Mağaza URL si : {store_url} Bizimle bağlantı kurduğunuz için teşekkür ederiz, {app_name}', 'he' => 'שלום, {owner_name} ! ברוך הבא לאפליקציה שלנו, פרטי ההתחברות של {app_name} הוא דוא"ל: {owner_email} סיסמה: {owner_password} כתובת אתר של אפליקציה: {app_url} כתובת אתר של חנות: {store_url} תודה שהתחברת אלינו, {app_name}', 'zh' => '您好, {owner_name} ! 欢迎使用我们的应用, {app_name} 的登录详细信息是 电子邮件:{owner_email} 密码:{owner_password} 应用程序网址:{app_url} 商店网址:{store_url} 感谢您与我们联系, {app_name}', 'pt-br' => 'Olá, {owner_name} ! Bem-vindo ao nosso aplicativo antigo detalhe de login para {app_name} é E-mail : {owner_email} Senha : {owner_password} URL do aplicativo : {app_url} URL da loja: {store_url} Obrigado por conectar com a gente, {app_name}', ], ], ]; $email = EmailTemplate::all(); foreach ($email as $e) { foreach ($defaultTemplate[$e->name]['lang'] as $lang => $content) { $emailTemp = EmailTemplateLang::where('lang',$lang)->where('subject',$defaultTemplate[$e->name]['subject'])->first(); if(!$emailTemp){ EmailTemplateLang::create( [ 'parent_id' => $e->id, 'lang' => $lang, 'subject' => $defaultTemplate[$e->name]['subject'], 'content' => $content, ] ); } } } } private static $store_id = null; private static $customer = null; public static function CustomerAuthCheck($slug = null) { if ($slug == null) { $slug = \Request::segment(1); } $auth_customer = Auth::guard('customers')->user(); if (!empty($auth_customer)) { if(is_null(self::$store_id)){ $store_id = Store::where('slug', $slug)->pluck('id')->first(); self::$store_id = $store_id; } else{ $store_id = self::$store_id; } if(is_null(self::$customer)){ $customer = Customer::where('store_id', $store_id)->where('email', $auth_customer->email)->count(); self::$customer = $customer; } else{ $customer = self::$customer; } if ($customer > 0) { return true; } else { return false; } } else { return false; } } public static function success_res($msg = "", $args = array()) { $msg = $msg == "" ? "success" : $msg; $msg_id = 'success.' . $msg; $converted = \Lang::get($msg_id, $args); $msg = $msg_id == $converted ? $msg : $converted; $json = array( 'flag' => 1, 'msg' => $msg, ); return $json; } public static function error_res($msg = "", $args = array()) { $msg = $msg == "" ? "error" : $msg; $msg_id = 'error.' . $msg; $converted = \Lang::get($msg_id, $args); $msg = $msg_id == $converted ? $msg : $converted; $json = array( 'flag' => 0, 'msg' => $msg, ); return $json; } public static function send_twilio_msg($to, $msg, $store) { try { $account_sid = $store->twilio_sid; $auth_token = $store->twilio_token; $twilio_number = $store->twilio_from; $client = new Client($account_sid, $auth_token); $client->messages->create($to, [ 'from' => $twilio_number, 'body' => $msg]); } catch (\Exception $e) { return $e; } } public static function order_create_owner($order, $owner, $store) { try { $msg = __("Hello, Dear" . ' ' . $owner->name . ' ' . ", This is Confirmation Order " . ' ' . $order->order_id . "place on" . self::dateFormat($order->created_at) . " Thanks,"); Utility::send_twilio_msg($store->notification_number, $msg, $store); } catch (\Exception $e) { return $e; } } public static function order_create_customer($order, $customer, $store) { try { $msg = __("Hello, Welcome to" . ' ' . $store->name . ' ' . ", Thank you for your purchase from" . ' ' . $store->name . ". Order Number:" . ' ' . $order->order_id . ". Order Date:" . ' ' . self::dateFormat($order->created_at)); Utility::send_twilio_msg($customer->phone_number, $msg, $store); } catch (\Exception $e) { return $e; } } public static function status_change_customer($order, $customer, $store) { try { $msg = __("Hello, Welcome to" . ' ' . $store->name . ' ' . ", Your Order is" . ' ' . $order->status . ". Hi" . ' ' . $order->name . ", Thank you for Shopping. Thanks, " . $store->name); Utility::send_twilio_msg($customer->phone_number, $msg, $store); } catch (\Exception $e) { return $e; } } public static function colorset() { if(is_null(self::$colorset)){ if (\Auth::user()) { if (\Auth::user()->type == 'super admin') { $user = \Auth::user(); $setting = DB::table('settings')->where('created_by', $user->id)->where('store_id', '0')->pluck('value', 'name')->toArray(); } else { $setting = DB::table('settings')->where('created_by', \Auth::user()->creatorId())->where('store_id', \Auth::user()->current_store)->pluck('value', 'name')->toArray(); } } else { $user = User::where('type', 'super admin')->first(); $setting = DB::table('settings')->where('created_by', 1)->pluck('value', 'name')->toArray(); } if (!isset($setting['color'])) { $setting = Utility::settings(); } self::$colorset = $setting; } return self::$colorset; } public static function GetLogo() { $setting = Utility::colorset(); if (\Auth::user() && \Auth::user()->type != 'super admin') { if (isset($setting['cust_darklayout']) && $setting['cust_darklayout'] == 'on') { return Utility::getValByName('company_logo_light'); } else { return Utility::getValByName('company_logo_dark'); } } else { if (isset($setting['cust_darklayout']) && $setting['cust_darklayout'] == 'on') { return Utility::getValByName('logo_light'); } else { return Utility::getValByName('logo_dark'); } } } public static function upload_file($request, $key_name, $name, $path, $custom_validation = []) { try { $settings = Utility::getStorageSetting(); if (!empty($settings['storage_setting'])) { if ($settings['storage_setting'] == 'wasabi') { config( [ 'filesystems.disks.wasabi.key' => $settings['wasabi_key'], 'filesystems.disks.wasabi.secret' => $settings['wasabi_secret'], 'filesystems.disks.wasabi.region' => $settings['wasabi_region'], 'filesystems.disks.wasabi.bucket' => $settings['wasabi_bucket'], 'filesystems.disks.wasabi.endpoint' => 'https://s3.' . $settings['wasabi_region'] . '.wasabisys.com', ] ); $max_size = !empty($settings['wasabi_max_upload_size']) ? $settings['wasabi_max_upload_size'] : '2048'; $mimes = !empty($settings['wasabi_storage_validation']) ? $settings['wasabi_storage_validation'] : ''; } else if ($settings['storage_setting'] == 's3') { config( [ 'filesystems.disks.s3.key' => $settings['s3_key'], 'filesystems.disks.s3.secret' => $settings['s3_secret'], 'filesystems.disks.s3.region' => $settings['s3_region'], 'filesystems.disks.s3.bucket' => $settings['s3_bucket'], 'filesystems.disks.s3.use_path_style_endpoint' => false, ] ); $max_size = !empty($settings['s3_max_upload_size']) ? $settings['s3_max_upload_size'] : '2048'; $mimes = !empty($settings['s3_storage_validation']) ? $settings['s3_storage_validation'] : ''; } else { $max_size = !empty($settings['local_storage_max_upload_size']) ? $settings['local_storage_max_upload_size'] : '2048'; $mimes = !empty($settings['local_storage_validation']) ? $settings['local_storage_validation'] : ''; } $file = $request->$key_name; if (count($custom_validation) > 0) { $validation = $custom_validation; } else { $validation = [ 'mimes:' . $mimes, 'max:' . $max_size, ]; } $validator = \Validator::make($request->all(), [ $key_name => $validation, ]); if ($validator->fails()) { $res = [ 'flag' => 0, 'msg' => $validator->messages()->first(), ]; return $res; } else { $name = $name; if ($settings['storage_setting'] == 'local') { $request->$key_name->move(storage_path($path), $name); $path = $path . $name; } else if ($settings['storage_setting'] == 'wasabi') { $path = \Storage::disk('wasabi')->putFileAs( $path, $file, $name ); // $path = $path.$name; } else if ($settings['storage_setting'] == 's3') { $path = \Storage::disk('s3')->putFileAs( $path, $file, $name ); } $res = [ 'flag' => 1, 'msg' => 'success', 'url' => $path, ]; return $res; } } else { $res = [ 'flag' => 0, 'msg' => __('Please set proper configuration for storage.'), ]; return $res; } } catch (\Exception $e) { $res = [ 'flag' => 0, 'msg' => $e->getMessage(), ]; return $res; } } public static function json_upload_file($json, $key_name, $name, $path, $custom_validation = []) { $request = [ $key_name => $json[$key_name] ]; try { $settings = Utility::getStorageSetting(); if (!empty($settings['storage_setting'])) { if ($settings['storage_setting'] == 'wasabi') { config( [ 'filesystems.disks.wasabi.key' => $settings['wasabi_key'], 'filesystems.disks.wasabi.secret' => $settings['wasabi_secret'], 'filesystems.disks.wasabi.region' => $settings['wasabi_region'], 'filesystems.disks.wasabi.bucket' => $settings['wasabi_bucket'], 'filesystems.disks.wasabi.endpoint' => 'https://s3.' . $settings['wasabi_region'] . '.wasabisys.com', ] ); $max_size = !empty($settings['wasabi_max_upload_size']) ? $settings['wasabi_max_upload_size'] : '2048'; $mimes = !empty($settings['wasabi_storage_validation']) ? $settings['wasabi_storage_validation'] : ''; } else if ($settings['storage_setting'] == 's3') { config( [ 'filesystems.disks.s3.key' => $settings['s3_key'], 'filesystems.disks.s3.secret' => $settings['s3_secret'], 'filesystems.disks.s3.region' => $settings['s3_region'], 'filesystems.disks.s3.bucket' => $settings['s3_bucket'], 'filesystems.disks.s3.use_path_style_endpoint' => false, ] ); $max_size = !empty($settings['s3_max_upload_size']) ? $settings['s3_max_upload_size'] : '2048'; $mimes = !empty($settings['s3_storage_validation']) ? $settings['s3_storage_validation'] : ''; } else { $max_size = !empty($settings['local_storage_max_upload_size']) ? $settings['local_storage_max_upload_size'] : '2048'; $mimes = !empty($settings['local_storage_validation']) ? $settings['local_storage_validation'] : ''; } $file = $json[$key_name]; if (count($custom_validation) > 0) { $validation = $custom_validation; } else { $validation = [ 'mimes:' . $mimes, 'max:' . $max_size, ]; } $validator = \Validator::make($request, [ $key_name => $validation, ]); if ($validator->fails()) { $res = [ 'flag' => 0, 'msg' => $validator->messages()->first(), ]; return $res; } else { $name = $name; if ($settings['storage_setting'] == 'local') { $json[$key_name]->move(storage_path($path), $name); $path = $path . $name; } else if ($settings['storage_setting'] == 'wasabi') { $path = \Storage::disk('wasabi')->putFileAs( $path, $file, $name ); // $path = $path.$name; } else if ($settings['storage_setting'] == 's3') { $path = \Storage::disk('s3')->putFileAs( $path, $file, $name ); } $res = [ 'flag' => 1, 'msg' => 'success', 'url' => $path, ]; return $res; } } else { $res = [ 'flag' => 0, 'msg' => __('Please set proper configuration for storage.'), ]; return $res; } } catch (\Exception $e) { $res = [ 'flag' => 0, 'msg' => $e->getMessage(), ]; return $res; } } public static function multi_json_upload_file($json, $key_name, $name, $path, $custom_validation = []) { $request = [ $key_name => $json ]; try { $settings = Utility::getStorageSetting(); if (!empty($settings['storage_setting'])) { if ($settings['storage_setting'] == 'wasabi') { config( [ 'filesystems.disks.wasabi.key' => $settings['wasabi_key'], 'filesystems.disks.wasabi.secret' => $settings['wasabi_secret'], 'filesystems.disks.wasabi.region' => $settings['wasabi_region'], 'filesystems.disks.wasabi.bucket' => $settings['wasabi_bucket'], 'filesystems.disks.wasabi.endpoint' => 'https://s3.' . $settings['wasabi_region'] . '.wasabisys.com', ] ); $max_size = !empty($settings['wasabi_max_upload_size']) ? $settings['wasabi_max_upload_size'] : '2048'; $mimes = !empty($settings['wasabi_storage_validation']) ? $settings['wasabi_storage_validation'] : ''; } else if ($settings['storage_setting'] == 's3') { config( [ 'filesystems.disks.s3.key' => $settings['s3_key'], 'filesystems.disks.s3.secret' => $settings['s3_secret'], 'filesystems.disks.s3.region' => $settings['s3_region'], 'filesystems.disks.s3.bucket' => $settings['s3_bucket'], 'filesystems.disks.s3.use_path_style_endpoint' => false, ] ); $max_size = !empty($settings['s3_max_upload_size']) ? $settings['s3_max_upload_size'] : '2048'; $mimes = !empty($settings['s3_storage_validation']) ? $settings['s3_storage_validation'] : ''; } else { $max_size = !empty($settings['local_storage_max_upload_size']) ? $settings['local_storage_max_upload_size'] : '2048'; $mimes = !empty($settings['local_storage_validation']) ? $settings['local_storage_validation'] : ''; } $file = $request[$key_name]; if (count($custom_validation) > 0) { $validation = $custom_validation; } else { $validation = [ 'mimes:' . $mimes, 'max:' . $max_size, ]; } $validator = \Validator::make($request, [ $key_name =>$validation ]); if ($validator->fails()) { $res = [ 'flag' => 0, 'msg' => $validator->messages()->first(), ]; return $res; } else { $name = $name; if ($settings['storage_setting'] == 'local') { $request[$key_name]->move(storage_path($path), $name); $path = $path . $name; } else if ($settings['storage_setting'] == 'wasabi') { $path = \Storage::disk('wasabi')->putFileAs( $path, $file, $name ); // $path = $path.$name; } else if ($settings['storage_setting'] == 's3') { $path = \Storage::disk('s3')->putFileAs( $path, $file, $name ); } $res = [ 'flag' => 1, 'msg' => 'success', 'url' => $path, ]; return $res; } } else { $res = [ 'flag' => 0, 'msg' => __('Please set proper configuration for storage.'), ]; return $res; } } catch (\Exception $e) { $res = [ 'flag' => 0, 'msg' => $e->getMessage(), ]; return $res; } } public static function get_file($path) { $storageSetting = Utility::StorageSettings(); try { if ($storageSetting['storage_setting'] == 'wasabi') { config( [ 'filesystems.disks.wasabi.key' => $storageSetting['wasabi_key'], 'filesystems.disks.wasabi.secret' => $storageSetting['wasabi_secret'], 'filesystems.disks.wasabi.region' => $storageSetting['wasabi_region'], 'filesystems.disks.wasabi.bucket' => $storageSetting['wasabi_bucket'], 'filesystems.disks.wasabi.endpoint' => 'https://s3.' . $storageSetting['wasabi_region'] . '.wasabisys.com', ] ); return \Storage::disk($storageSetting['storage_setting'])->url($path); } elseif ($storageSetting['storage_setting'] == 's3') { config( [ 'filesystems.disks.s3.key' => $storageSetting['s3_key'], 'filesystems.disks.s3.secret' => $storageSetting['s3_secret'], 'filesystems.disks.s3.region' => $storageSetting['s3_region'], 'filesystems.disks.s3.bucket' => $storageSetting['s3_bucket'], 'filesystems.disks.s3.use_path_style_endpoint' => false, ] ); return \Storage::disk($storageSetting['storage_setting'])->url($path); } return url('/').\Storage::disk($storageSetting['storage_setting'])->url($path); } catch (\Throwable $th) { return ''; } } public static function getStorageSetting() { $data = DB::table('settings'); $data = $data->where('created_by', '=', 1); $data = $data->get(); $settings = [ "storage_setting" => "local", "local_storage_validation" => "jpg,jpeg,png", "local_storage_max_upload_size" => "", "s3_key" => "", "s3_secret" => "", "s3_region" => "", "s3_bucket" => "", "s3_url" => "", "s3_endpoint" => "", "s3_max_upload_size" => "", "s3_storage_validation" => "", "wasabi_key" => "", "wasabi_secret" => "", "wasabi_region" => "", "wasabi_bucket" => "", "wasabi_url" => "", "wasabi_root" => "", "wasabi_max_upload_size" => "", "wasabi_storage_validation" => "", ]; foreach ($data as $row) { $settings[$row->name] = $row->value; } return $settings; } public static function keyWiseUpload_file($request, $key_name, $name, $path, $data_key, $custom_validation = []) { $multifile = [ $key_name => $request->file($key_name)[$data_key], ]; try { $settings = Utility::getStorageSetting(); if (!empty($settings['storage_setting'])) { if ($settings['storage_setting'] == 'wasabi') { config( [ 'filesystems.disks.wasabi.key' => $settings['wasabi_key'], 'filesystems.disks.wasabi.secret' => $settings['wasabi_secret'], 'filesystems.disks.wasabi.region' => $settings['wasabi_region'], 'filesystems.disks.wasabi.bucket' => $settings['wasabi_bucket'], 'filesystems.disks.wasabi.endpoint' => 'https://s3.' . $settings['wasabi_region'] . '.wasabisys.com', ] ); $max_size = !empty($settings['wasabi_max_upload_size']) ? $settings['wasabi_max_upload_size'] : '2048'; $mimes = !empty($settings['wasabi_storage_validation']) ? $settings['wasabi_storage_validation'] : ''; } else if ($settings['storage_setting'] == 's3') { config( [ 'filesystems.disks.s3.key' => $settings['s3_key'], 'filesystems.disks.s3.secret' => $settings['s3_secret'], 'filesystems.disks.s3.region' => $settings['s3_region'], 'filesystems.disks.s3.bucket' => $settings['s3_bucket'], 'filesystems.disks.s3.use_path_style_endpoint' => false, ] ); $max_size = !empty($settings['s3_max_upload_size']) ? $settings['s3_max_upload_size'] : '2048'; $mimes = !empty($settings['s3_storage_validation']) ? $settings['s3_storage_validation'] : ''; } else { $max_size = !empty($settings['local_storage_max_upload_size']) ? $settings['local_storage_max_upload_size'] : '2048'; $mimes = !empty($settings['local_storage_validation']) ? $settings['local_storage_validation'] : ''; } $file = $request->$key_name; if (count($custom_validation) > 0) { $validation = $custom_validation; } else { $validation = [ 'mimes:' . $mimes, 'max:' . $max_size, ]; } $validator = \Validator::make($multifile, [ $key_name => $validation, ]); if ($validator->fails()) { $res = [ 'flag' => 0, 'msg' => $validator->messages()->first(), ]; return $res; } else { $name = $name; if ($settings['storage_setting'] == 'local') { $multifile[$key_name]->move(storage_path($path), $name); $path = $path . $name; } else if ($settings['storage_setting'] == 'wasabi') { $path = \Storage::disk('wasabi')->putFileAs( $path, // $file, $multifile[$key_name], $name ); // $path = $path.$name; } else if ($settings['storage_setting'] == 's3') { $path = \Storage::disk('s3')->putFileAs( $path, // $file, $multifile[$key_name], $name ); } $res = [ 'flag' => 1, 'msg' => 'success', 'url' => $path, ]; return $res; } } else { $res = [ 'flag' => 0, 'msg' => __('Please set proper configuration for storage.'), ]; return $res; } } catch (\Exception $e) { $res = [ 'flag' => 0, 'msg' => $e->getMessage(), ]; return $res; } } public static function StorageSettings() { if (is_null(self::$storageSetting)) { $data = DB::table('settings'); $data->where('created_by', '=', 1); self::$storageSetting = $data->get(); } $data = self::$storageSetting; $settings = [ "site_currency" => "USD", "site_currency_symbol" => "$", "currency_symbol_position" => "pre", "logo_dark" => "logo-dark.png", "logo_light" => "logo-light.png", "currency_symbol" => "", "currency" => "", "site_date_format" => "M j, Y", "site_time_format" => "g:i A", "company_name" => "", "company_address" => "", "company_city" => "", "company_state" => "", "company_zipcode" => "", "company_country" => "", "company_telephone" => "", "company_email" => "", "company_email_from_name" => "", "invoice_prefix" => "#INV", "invoice_color" => "ffffff", "quote_template" => "template1", "quote_color" => "ffffff", "salesorder_template" => "template1", "salesorder_color" => "ffffff", "proposal_prefix" => "#PROP", "proposal_color" => "fffff", "bill_prefix" => "#BILL", "bill_color" => "fffff", "quote_prefix" => "#QUO", "salesorder_prefix" => "#SOP", "vender_prefix" => "#VEND", "footer_title" => "", "footer_notes" => "", "invoice_template" => "template1", "bill_template" => "template1", "proposal_template" => "template1", "default_language" => "en", "decimal_number" => "2", "tax_type" => "VAT", "shipping_display" => "on", "footer_link_1" => "Support", "footer_value_1" => "#", "footer_link_2" => "Terms", "footer_value_2" => "#", "footer_link_3" => "Privacy", "footer_value_3" => "#", "display_landing_page" => "on", "title_text" => "", "footer_text" => "", "company_logo_light" => "logo-light.png", "company_logo_dark" => "logo-dark.png", "company_favicon" => "", "gdpr_cookie" => "", "cookie_text" => "", "signup_button" => "on", "cust_theme_bg" => "on", "cust_darklayout" => "off", "color" => "theme-3", "SITE_RTL" => "off", "is_checkout_login_required" => "on", "storage_setting" => "local", "local_storage_validation" => "jpg,jpeg,png,xlsx,xls,csv,pdf", "local_storage_max_upload_size" => "2048000", "s3_key" => "", "s3_secret" => "", "s3_region" => "", "s3_bucket" => "", "s3_url" => "", "s3_endpoint" => "", "s3_max_upload_size" => "", "s3_storage_validation" => "", "wasabi_key" => "", "wasabi_secret" => "", "wasabi_region" => "", "wasabi_bucket" => "", "wasabi_url" => "", "wasabi_root" => "", "wasabi_max_upload_size" => "", "wasabi_storage_validation" => "", 'mail_driver'=>'', 'mail_host'=>'', 'mail_port'=>'', 'mail_username'=>'', 'mail_password'=>'', 'mail_encryption'=>'', 'mail_from_name'=>'', 'mail_from_address'=>'', ]; foreach ($data as $row) { $settings[$row->name] = $row->value; } return $settings; } public static function pixel_plateforms(){ $plateforms = [ 'facebook' => 'Facebook', 'twitter' => 'Twitter', 'linkedin' => 'Linkedin', 'pinterest' => 'Pinterest', 'quora' => 'Quora', 'bing' => 'Bing', 'google-adwords' => 'Google Adwords', 'google-analytics' => 'Google Analytics', 'snapchat' => 'Snapchat', 'tiktok' => 'Tiktok', ]; return $plateforms; } public static function GetCacheSize() { $file_size = 0; foreach (\File::allFiles(storage_path('/framework')) as $file) { $file_size += $file->getSize(); } $file_size = number_format($file_size / 1000000, 4); return $file_size; } public static function get_device_type($user_agent) { $mobile_regex = '/(?:phone|windows\s+phone|ipod|blackberry|(?:android|bb\d+|meego|silk|googlebot) .+? mobile|palm|windows\s+ce|opera mini|avantgo|mobilesafari|docomo)/i'; $tablet_regex = '/(?:ipad|playbook|(?:android|bb\d+|meego|silk)(?! .+? mobile))/i'; if(preg_match_all($mobile_regex, $user_agent)) { return 'mobile'; } else { if(preg_match_all($tablet_regex, $user_agent)) { return 'tablet'; } else { return 'desktop'; } } } public static function webhook($module, $store_id) { $webhook = Webhook::where('module',$module)->where('store_id', '=', $store_id)->first(); if(!empty($webhook)){ $url = $webhook->url; $method = $webhook->method; $reference_url = "https://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; $data['method'] = $method; $data['reference_url'] = $reference_url; $data['url'] = $url; return $data; } return false; } public static function WebhookCall($url = null,$parameter = null , $method = '') { if(!empty($url) && !empty($parameter)) { try { $curlHandle = curl_init($url); curl_setopt($curlHandle, CURLOPT_POSTFIELDS, $parameter); curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, true); curl_setopt($curlHandle, CURLOPT_CUSTOMREQUEST, $method); $curlResponse = curl_exec($curlHandle); curl_close($curlHandle); if(empty($curlResponse)) { return true; } else { return false; } } catch (\Throwable $th) { return false; } } else { return false; } } public static function updateStorageLimit($owner_id, $image_size) { $image_size = number_format($image_size / 1048576, 2); $user = User::find($owner_id); $plan = Plan::find($user->plan); $total_storage = $user->storage_limit + $image_size; if($plan->storage_limit <= $total_storage && $plan->storage_limit != -1) { $error= 'Plan storage limit is over so please upgrade the plan.'; return $error; } else{ $user->storage_limit = $total_storage; } $user->save(); return 1; } public static function changeStorageLimit($owner_id, $file_path) { $files = \File::glob(storage_path($file_path)); $fileSize = 0; foreach($files as $file){ $fileSize += \File::size($file); } $image_size = number_format($fileSize / 1048576, 2); $user = User::find($owner_id); $plan = Plan::find($user->plan); $total_storage = $user->storage_limit - $image_size; $user->storage_limit = $total_storage; $user->save(); $status = false; foreach($files as $key => $file) { if (\File::exists($file)) { \File::delete($file); } } return true; } public static function flagOfCountry(){ $arr = [ 'ar' => '🇦🇪 ar', "zh" => "🇨🇳 zh", 'da' => '🇩🇰 ad', 'de' => '🇩🇪 de', 'es' => '🇪🇸 es', 'fr' => '🇫🇷 fr', 'it' => '🇮🇹 it', 'ja' => '🇯🇵 ja', 'he' => '🇮🇱 he', 'nl' => '🇳🇱 nl', 'pl'=> '🇵🇱 pl', 'ru' => '🇷🇺 ru', 'pt' => '🇵🇹 pt', 'en' => '🇮🇳 en', 'tr' => '🇹🇷 tr', 'pt-br' => '🇧🇷 pt-br', ]; return $arr; } public static function langList(){ $languages = [ "ar" => "Arabic", "zh" => "Chinese", "da" => "Danish", "de" => "German", "en" => "English", "es" => "Spanish", "fr" => "French", "he" => "Hebrew", "it" => "Italian", "ja" => "Japanese", "nl" => "Dutch", "pl" => "Polish", "pt" => "Portuguese", "ru" => "Russian", "tr" => "Turkish", "pt-br"=>"Portuguese(Brazil)" ]; return $languages; } public static function languagecreate(){ $languages=Utility::langList(); foreach($languages as $key => $lang) { $languageExist = Languages::where('code',$key)->first(); if(empty($languageExist)) { $language = new Languages(); $language->code = $key; $language->fullName = $lang; $language->save(); } } } public static function langSetting(){ if (is_null(self::$settings)) { self::$settings = Utility::StorageSettings(); } return self::$settings; } public static function settingsById($id) { $data = DB::table('settings'); $data = $data->where('created_by', '=', $id); $data = $data->get(); $settings = [ "site_currency" => "USD", "site_currency_symbol" => "$", "currency_symbol_position" => "pre", "logo_dark" => "logo-dark.png", "logo_light" => "logo-light.png", "currency_symbol" => "", "currency" => "", "site_date_format" => "M j, Y", "site_time_format" => "g:i A", "company_name" => "", "company_address" => "", "company_city" => "", "company_state" => "", "company_zipcode" => "", "company_country" => "", "company_telephone" => "", "company_email" => "", "company_email_from_name" => "", "invoice_prefix" => "#INV", "invoice_color" => "ffffff", "quote_template" => "template1", "quote_color" => "ffffff", "salesorder_template" => "template1", "salesorder_color" => "ffffff", "proposal_prefix" => "#PROP", "proposal_color" => "fffff", "bill_prefix" => "#BILL", "bill_color" => "fffff", "quote_prefix" => "#QUO", "salesorder_prefix" => "#SOP", "vender_prefix" => "#VEND", "footer_title" => "", "footer_notes" => "", "invoice_template" => "template1", "bill_template" => "template1", "proposal_template" => "template1", "default_language" => "en", "decimal_number" => "2", "tax_type" => "VAT", "shipping_display" => "on", "footer_link_1" => "Support", "footer_value_1" => "#", "footer_link_2" => "Terms", "footer_value_2" => "#", "footer_link_3" => "Privacy", "footer_value_3" => "#", "display_landing_page" => "on", "title_text" => "", "footer_text" => "", "company_logo_light" => "logo-light.png", "company_logo_dark" => "logo-dark.png", "company_favicon" => "", "gdpr_cookie" => "", "cookie_text" => "", "signup_button" => "on", "email_verification" => "on", "cust_theme_bg" => "on", "cust_darklayout" => "off", "color" => "theme-3", "SITE_RTL" => "off", "is_checkout_login_required" => "on", "storage_setting" => "local", "local_storage_validation" => "jpg,jpeg,png,xlsx,xls,csv,pdf", "local_storage_max_upload_size" => "2048000", "s3_key" => "", "s3_secret" => "", "s3_region" => "", "s3_bucket" => "", "s3_url" => "", "s3_endpoint" => "", "s3_max_upload_size" => "", "s3_storage_validation" => "", "wasabi_key" => "", "wasabi_secret" => "", "wasabi_region" => "", "wasabi_bucket" => "", "wasabi_url" => "", "wasabi_root" => "", "wasabi_max_upload_size" => "", "wasabi_storage_validation" => "", 'chatgpt_key'=>'', 'disable_lang'=>'', 'mail_driver'=>'', 'mail_host'=>'', 'mail_port'=>'', 'mail_username'=>'', 'mail_password'=>'', 'mail_encryption'=>'', 'mail_from_name'=>'', 'mail_from_address'=>'', 'chatgpt_model_name'=>'', ]; foreach ($data as $row) { $settings[$row->name] = $row->value; } return $settings; } public static function getSMTPDetails($user_id) { $settings = Utility::StorageSettings(); if ($settings) { config([ 'mail.default' => isset($settings['mail_driver']) ? $settings['mail_driver'] : '', 'mail.mailers.smtp.host' => isset($settings['mail_host']) ? $settings['mail_host'] : '', 'mail.mailers.smtp.port' => isset($settings['mail_port']) ? $settings['mail_port'] : '', 'mail.mailers.smtp.encryption' => isset($settings['mail_encryption']) ? $settings['mail_encryption'] : '', 'mail.mailers.smtp.username' => isset($settings['mail_username']) ? $settings['mail_username'] : '', 'mail.mailers.smtp.password' => isset($settings['mail_password']) ? $settings['mail_password'] : '', 'mail.from.address' => isset($settings['mail_from_address']) ? $settings['mail_from_address'] : '', 'mail.from.name' => isset($settings['mail_from_name']) ? $settings['mail_from_name'] : '', ]); return $settings; } else { return redirect()->back()->with('Email SMTP settings does not configured so please contact to your site admin.'); } } public static function emailTemplateLang($lang) { $defaultTemplate = [ 'Order Created' => [ 'subject' => 'Order Complete', 'lang' => [ 'en' => 'Hello, Welcome to {app_name}.Hi, {order_name}, Thank you for ShoppingWe received your purchase request, we\'ll be in touch shortly!Thanks,{app_name}{order_url}', ], ], 'Status Change' => [ 'subject' => 'Order Status', 'lang' => [ 'en' => 'Hello, Welcome to {app_name}.Your Order is {order_status}!Hi {order_name}, Thank you for ShoppingThanks,{app_name}{order_url}', ], ], 'Order Created For Owner' => [ 'subject' => 'Order Detail', 'lang' => [ 'en' => 'Hello, Dear {owner_name}.This is Confirmation Order {order_id} place on {order_date}.Thanks,{order_url}', ], ], 'Owner And Store Created' => [ 'subject' => 'Owner And Store Detail', 'lang' => [ 'en' => 'Hello, {owner_name} ! Welcome to our app yore login detail for {app_name} is Email : {owner_email} Password : {owner_password} App url : {app_url} Store url : {store_url} Thank you for connecting with us, {app_name}', ], ], ]; $email = EmailTemplate::all(); foreach ($email as $e) { foreach ($defaultTemplate[$e->name]['lang'] as $content) { $emailNoti = EmailTemplateLang::where('parent_id', $e->id)->where('lang', $lang)->count(); if ($emailNoti == 0) { EmailTemplateLang::create( [ 'parent_id' => $e->id, 'lang' => $lang, 'subject' => $defaultTemplate[$e->name]['subject'], 'content' => $content, ] ); } } } } public static function referralTransaction($plan , $company= '') { if($company != '') { $objUser = $company; } else { $objUser = \Auth::user(); } $user = ReferralTransaction::where('company_id' , $objUser->id)->first(); $referralSetting = ReferralSetting::where('created_by' , 1)->first(); if($objUser->used_referral_code != 0 && $user == null && (isset($referralSetting) && $referralSetting->is_enable == 1)) { $transaction = new ReferralTransaction(); $transaction->company_id = $objUser->id; $transaction->plan_id = $plan->id; $transaction->plan_price = $plan->price; $transaction->commission = $referralSetting->percentage; $transaction->referral_code = $objUser->used_referral_code; $transaction->save(); $commissionAmount = ($plan->price * $referralSetting->percentage)/100; $user = User::where('referral_code' , $objUser->used_referral_code)->first(); $user->commission_amount = $user->commission_amount + $commissionAmount; $user->save(); } } }
ありがとうございます p>
{order_url} p>', 'nl' => '
Beste {owner_name}.
Dit is de bevestigingsopdracht {order_id} die is geplaatst op {order_date}.
Witaj,
Drogi {owner_name}.
To jest potwierdzenie zamówienia {order_id} złożone na {order_date}.
Уважаемый {owner_name}.
Это подтверждение заказа {order_id} на {order_date}.
Sevgili {owner_name}.
Bu, {order_id} siparişinin {order_date}.
{order_url}', ], ], 'Owner And Store Created' => [ 'subject' => 'Owner And Store Detail', 'lang' => [ 'ar' => '
مرحبًا, {owner_name} !
مرحبًا بك في التطبيق الخاص بنا تفاصيل تسجيل الدخول الخاصة بـ {app_name} هو
البريد الإلكتروني : {owner_email}
كلمة المرور : {owner_password}
عنوان url للتطبيق : {app_url}
عنوان URL للمتجر: {store_url}
شكرا لتواصلك معنا،
Hej, {owner_name} !
Velkommen til vores app, hvor du kan logge ind {app_name} er
E-mail : {owner_email}
Adgangskode : {owner_password}
App url : {app_url}
Butiks-url: {store_url}
Tak fordi du tog kontakt med os,
Hallo, {owner_name} !
Willkommen in unserer App für Ihre Login-Daten {app_name} ist
Email : {owner_email}
Passwort : {owner_password}
App-URL : {app_url}
Shop-URL: {store_url}
Danke, dass Sie sich mit uns verbunden haben,
Hello, {owner_name} !
Welcome to our app yore login detail for {app_name} is
Password : {owner_password}
Store url : {store_url}
Thank you for connecting with us,
Hola, {owner_name} !
Bienvenido a nuestra aplicación antaño detalles de inicio de sesión para {app_name} es
Correo electrónico : {owner_email}
Clave : {owner_password}
URL de la aplicación : {app_url}
URL de la tienda: {store_url}
Gracias por conectar con nosotras,
Bonjour, {owner_name} !
Bienvenue sur notre application autrefois les informations de connexion pour {app_name} est
Mot de passe : {owner_password}
URL de l\'application : {app_url}
URL du magasin : {store_url}
Merci de nous avoir contacté,
Ciao, {owner_name} !
Benvenuto nella nostra app per i tuoi dati di accesso {app_name} è
Parola d\'ordine : {owner_password}
URL dell\'app : {app_url}
URL del negozio: {store_url}
Grazie per esserti connesso con noi,
こんにちは, {owner_name} !
私たちのアプリのyoreログインの詳細へようこそ {app_name} は
Eメール : {owner_email}
パスワード : {owner_password}
アプリのURL : {app_url}
ストアの URL : {store_url}
ご連絡ありがとうございます,
Welkom bij de inloggegevens van onze app voor: {app_name} is
Wachtwoord : {owner_password}
Winkel-URL: {winkel_url
Bedankt voor het contact met ons,
Witam, {owner_name} !
Witamy w naszej aplikacji yore dane logowania do {app_name} jest
Hasło : {owner_password}
URL aplikacji : {app_url}
Adres sklepu: {store_url}
Dziękujemy za kontakt z nami,
Привет, {owner_name} !
Добро пожаловать в наше приложение. {app_name} является
Эл. адрес : {owner_email}
Пароль : {owner_password}
URL приложения : {app_url}
URL-адрес магазина: {store_url}
Спасибо, что связались с нами,
Olá, {owner_name} !
Bem-vindo ao nosso aplicativo antigo detalhe de login para {app_name} é
Senha : {owner_password}
URL do aplicativo : {app_url}
URL da loja: {store_url}
Obrigado por conectar com a gente,
Merhaba, {owner_name} !
Uygulamamıza hoş geldiniz, eski {app_name} için giriş ayrıntısı
E-posta : {owner_email}
Şifre : {owner_password}
Uygulama url : {app_url}
Mağaza URL si : {store_url}
Bizimle bağlantı kurduğunuz için teşekkür ederiz,
שלום, {owner_name} !
ברוך הבא לאפליקציה שלנו, פרטי ההתחברות של {app_name} הוא
דוא"ל: {owner_email}
סיסמה: {owner_password}
כתובת אתר של אפליקציה: {app_url}
כתובת אתר של חנות: {store_url}
תודה שהתחברת אלינו,
您好, {owner_name} !
欢迎使用我们的应用, {app_name} 的登录详细信息是
电子邮件:{owner_email}
密码:{owner_password}
应用程序网址:{app_url}
商店网址:{store_url}
感谢您与我们联系,