Changeset 2874788
- Timestamp:
- 03/04/2023 06:40:43 PM (3 years ago)
- Location:
- wappointment/trunk
- Files:
-
- 28 added
- 12 deleted
- 45 edited
-
app/Controllers/EventsController.php (modified) (2 diffs)
-
app/Controllers/ReminderController.php (modified) (4 diffs)
-
app/Events/AppointmentBookedEvent.php (modified) (1 diff)
-
app/Formatters/EventsCalendar.php (modified) (1 diff)
-
app/Helpers/Site.php (added)
-
app/Jobs/AppointmentEmailReminder.php (modified) (1 diff)
-
app/Listeners/AdminNotifyCanceledListener.php (modified) (1 diff)
-
app/Listeners/AdminNotifyRescheduledListener.php (modified) (1 diff)
-
app/Listeners/AppointmentConfirmedListener.php (modified) (2 diffs)
-
app/Lists/addons.php (modified) (1 diff)
-
app/Lists/currencies.php (modified) (1 diff)
-
app/Lists/translations_calendar.php (modified) (1 diff)
-
app/Lists/translations_js_common.php (modified) (2 diffs)
-
app/Lists/translations_settings.php (modified) (1 diff)
-
app/Messages/AppointmentPendingEmail.php (modified) (1 diff)
-
app/Messages/AppointmentReminderEmail.php (modified) (1 diff)
-
app/Messages/PreparesClientEmail.php (modified) (2 diffs)
-
app/Messages/Templates/FoundationEmail.php (modified) (3 diffs)
-
app/Models/CanGetCustomFieldValue.php (added)
-
app/Models/CanSortByParent.php (added)
-
app/Models/Client.php (modified) (2 diffs)
-
app/Models/Reminder.php (modified) (2 diffs)
-
app/Models/Service.php (modified) (2 diffs)
-
app/Plugins (added)
-
app/Plugins/Contract (added)
-
app/Plugins/Contract/PluginDefinition.php (added)
-
app/Plugins/Contract/PluginMultilang.php (added)
-
app/Plugins/Helper.php (added)
-
app/Plugins/MultiLang (added)
-
app/Plugins/MultiLang/AbstractMultilang.php (added)
-
app/Plugins/MultiLang/Definition.php (added)
-
app/Plugins/MultiLang/NullMultiLang.php (added)
-
app/Plugins/MultiLang/TranslatePress.php (added)
-
app/Repositories/Availability.php (modified) (2 diffs)
-
app/Routes/Main.php (modified) (1 diff)
-
app/Services/Addons.php (modified) (2 diffs)
-
app/Services/Appointment.php (modified) (1 diff)
-
app/Services/AppointmentNew.php (modified) (5 diffs)
-
app/Services/CalendarParser.php (modified) (1 diff)
-
app/Services/Client.php (modified) (2 diffs)
-
app/Services/Settings.php (modified) (1 diff)
-
app/Services/ViewsData.php (modified) (2 diffs)
-
app/Services/Wappointment/Addons.php (modified) (5 diffs)
-
app/Services/Wappointment/VersionCheck.php (modified) (2 diffs)
-
app/System/Container.php (added)
-
app/System/Status.php (modified) (1 diff)
-
app/Transports/WpMail.php (modified) (1 diff)
-
app/Transports/WpMailPatched.php (modified) (6 diffs)
-
app/Validators/HttpRequest/BookingAdmin.php (modified) (1 diff)
-
app/WP/Database.php (modified) (1 diff)
-
app/WP/Plugins.php (added)
-
database/migrations/2018_07_01_000001_create_jobs_table.php (modified) (2 diffs)
-
database/migrations/2022_11_01_000001_alter_reminders_table_for_multilang.php (added)
-
dist/WapImage.7862fe1cee429fe91413.bundle.js (deleted)
-
dist/WapImage.edd74ffda296850a901b.bundle.js (added)
-
dist/front.1430e6601f71edaa1b0e.bundle.js (deleted)
-
dist/front.e21a8b22b46724d79d9b.bundle.js (added)
-
dist/group-addons.62f7f338dceaa556b4e7.bundle.js (deleted)
-
dist/group-addons.92bbdf5b3c572d267822.bundle.js (added)
-
dist/group-bookingform.3130e8835fde0c98aacf.bundle.js (deleted)
-
dist/group-bookingform.4df6b50bfdd724e88abe.bundle.js (added)
-
dist/group-calendar.8ca29d9eb8bde37e2049.bundle.js (added)
-
dist/group-calendar.e0bb82c52e4a930f6057.bundle.js (deleted)
-
dist/group-settings.cf3729aad89ac6e8a71f.bundle.js (added)
-
dist/group-settings.fd826bd63bca4708f0dc.bundle.js (deleted)
-
dist/group-viewingappointment.535315325e97b1f5ed7c.bundle.js (added)
-
dist/group-viewingappointment.cfa239f0bbf94e9a8cdc.bundle.js (deleted)
-
dist/group-wizard2.0265f97a9c14df72649c.bundle.js (deleted)
-
dist/group-wizard2.b726ddef16c94a4e0942.bundle.js (added)
-
dist/main.1f25ff0960ad6f3dc300.bundle.js (deleted)
-
dist/main.906fddc02313f538209c.bundle.js (added)
-
dist/manifest.json (modified) (2 diffs)
-
dist/vendors-appFawesome-group-addons-group-settings.3526a613f1c039ad8c51.bundle.js (deleted)
-
dist/vendors-appFawesome-group-addons-group-settings.ec572a4e672a6afb1a95.bundle.js (added)
-
dist/vendors-group-addons-group-bookingform-group-calendar-group-settings.e1b6846f51b17a373f16.bundle.js (added)
-
dist/vendors-group-addons-group-calendar-group-settings.45a20e4931e221fa6bd1.bundle.js (deleted)
-
dist/vendors-group-calendar.04e9c008dc4e67c29964.bundle.js (added)
-
dist/vendors-group-calendar.4a0c310530759f35589b.bundle.js (deleted)
-
index.php (modified) (3 diffs)
-
readme.txt (modified) (4 diffs)
-
vendor/autoload.php (modified) (1 diff)
-
vendor/composer/autoload_real.php (modified) (3 diffs)
-
vendor/composer/autoload_static.php (modified) (2 diffs)
-
vendor/composer/installed.php (modified) (1 diff)
-
wappointment.pot (modified) (23 diffs)
Legend:
- Unmodified
- Added
- Removed
-
wappointment/trunk/app/Controllers/EventsController.php
r2679872 r2874788 42 42 throw new \WappointmentException(__('Error deleting appointment', 'wappointment'), 1); 43 43 } 44 } 45 return ['message' => __('Appointment cancelled', 'wappointment'), 'failures' => $failures]; 46 } 47 public function forceDelete(\Wappointment\ClassConnect\Request $request) 48 { 49 $appointment = $this->canEditAppointment($request->input('id')); 50 if ($this->processCancel($appointment)) { 51 return ['message' => __('Appointment cancelled', 'wappointment')]; 52 } else { 53 throw new \WappointmentException(__('Error deleting appointment', 'wappointment'), 1); 44 54 } 45 55 return ['message' => __('Appointment cancelled', 'wappointment'), 'failures' => $failures]; … … 104 114 public function patch(\Wappointment\ClassConnect\Request $request) 105 115 { 106 $ this->canEditAppointment($request->input('id'));107 if (\Wappointment\Services\AppointmentNew:: patch((int) $request->input('id'), ['start_at' => \Wappointment\Services\DateTime::convertUnixTS($request->input('start')), 'end_at' => \Wappointment\Services\DateTime::convertUnixTS($request->input('end'))])) {116 $appointment = $this->canEditAppointment($request->input('id')); 117 if (\Wappointment\Services\AppointmentNew::reschedule((int) $request->input('id'), $request->input('start'), true, $appointment)) { 108 118 return ['message' => \Wappointment\Helpers\Translations::get('element_updated')]; 109 119 } else { -
wappointment/trunk/app/Controllers/ReminderController.php
r2807115 r2874788 4 4 5 5 use Wappointment\ClassConnect\Request; 6 use Wappointment\Helpers\Site; 6 7 use Wappointment\Helpers\Translations; 7 8 use Wappointment\Services\Reminder; … … 11 12 class ReminderController extends \Wappointment\Controllers\RestController 12 13 { 13 private $columns = ['id', 'subject', 'type', 'event', 'locked', 'published', 'options'];14 14 public function isLegacy() 15 15 { 16 16 return !\Wappointment\Services\VersionDB::canServices(); 17 17 } 18 private function getRequested(\Wappointment\ClassConnect\Request $request) 19 { 20 return $request->except(['rest_route', 'locked', 'email_logo', 'label', 'canTranslate', 'children']); 21 } 18 22 public function save(\Wappointment\ClassConnect\Request $request) 19 23 { 20 $requested = $ request->except(['rest_route', 'locked', 'email_logo', 'label']);24 $requested = $this->getRequested($request); 21 25 $requested['published'] = true; 22 26 $this->saveImage($request); … … 39 43 { 40 44 $this->saveImage($request); 41 if ($this->isTrueOrFail(\Wappointment\Services\Reminder::save($ request->except(['rest_route', 'locked', 'email_logo', 'label'])))) {45 if ($this->isTrueOrFail(\Wappointment\Services\Reminder::save($this->getRequested($request)))) { 42 46 return ['message' => \Wappointment\Helpers\Translations::get('element_updated')]; 43 47 } … … 60 64 public function get() 61 65 { 62 $queryReminders = \Wappointment\Models\Reminder:: select($this->columns);66 $queryReminders = \Wappointment\Models\Reminder::query(); 63 67 $queryReminders->activeReminders(); 64 68 $queryReminders->whereIn('type', \Wappointment\Models\Reminder::getTypes('code')); 65 $data = ['mail_status' => (bool) \Wappointment\Services\Settings::get('mail_status'), ' allow_cancellation' => (bool) \Wappointment\Services\Settings::get('allow_cancellation'), 'email_footer' => \Wappointment\Services\Settings::get('email_footer'), 'allow_rescheduling' => (bool) \Wappointment\Services\Settings::get('allow_rescheduling'), 'reschedule_link' => \Wappointment\Services\Settings::get('reschedule_link'), 'cancellation_link' => \Wappointment\Services\Settings::get('cancellation_link'), 'save_appointment_text_link' => \Wappointment\Services\Settings::get('save_appointment_text_link'), 'multiple_service_type' => \Wappointment\Helpers\Service::hasMultipleTypes($this->isLegacy()), 'reminders' => $queryReminders->get(), 'recipient' => wp_get_current_user()->user_email, 'defaultReminders' => ['email' => \Wappointment\Services\Reminder::getSeedReminder()], 'labels' => ['types' => \Wappointment\Models\Reminder::getTypes(), 'events' => \Wappointment\Models\Reminder::getEvents()]];69 $data = ['mail_status' => (bool) \Wappointment\Services\Settings::get('mail_status'), 'languages' => \Wappointment\Helpers\Site::languages(), 'allow_cancellation' => (bool) \Wappointment\Services\Settings::get('allow_cancellation'), 'email_footer' => \Wappointment\Services\Settings::get('email_footer'), 'link_color' => \Wappointment\Services\Settings::get('email_link_color'), 'allow_rescheduling' => (bool) \Wappointment\Services\Settings::get('allow_rescheduling'), 'reschedule_link' => \Wappointment\Services\Settings::get('reschedule_link'), 'cancellation_link' => \Wappointment\Services\Settings::get('cancellation_link'), 'save_appointment_text_link' => \Wappointment\Services\Settings::get('save_appointment_text_link'), 'multiple_service_type' => \Wappointment\Helpers\Service::hasMultipleTypes($this->isLegacy()), 'recipient' => wp_get_current_user()->user_email, 'defaultReminders' => ['email' => \Wappointment\Services\Reminder::getSeedReminder()], 'labels' => ['types' => \Wappointment\Models\Reminder::getTypes(), 'events' => \Wappointment\Models\Reminder::getEvents()]]; 66 70 $data['email_logo'] = $this->isLegacy() ? \Wappointment\Services\Settings::getStaff('email_logo') : \Wappointment\Services\Settings::get('email_logo'); 67 return apply_filters('wappointment_settings_reminders_get', $data);71 return \array_merge(apply_filters('wappointment_settings_reminders_get', $data), ['reminders' => $queryReminders->getParentSorting()]); 68 72 } 69 73 } -
wappointment/trunk/app/Events/AppointmentBookedEvent.php
r2645781 r2874788 8 8 class AppointmentBookedEvent extends \Wappointment\Events\AbstractEvent 9 9 { 10 const NAME = 'appointment.booked';10 public const NAME = 'appointment.booked'; 11 11 protected $appointment; 12 12 protected $client; -
wappointment/trunk/app/Formatters/EventsCalendar.php
r2807115 r2874788 229 229 $bg_events = []; 230 230 $startDate = new \Wappointment\ClassConnect\Carbon($this->request->input('start'), $this->timezone); 231 if ($startDate->hour !== 0) { 232 // fixed issue next an prevs in summertime 233 $startDate->addDay(1); 234 $startDate->hour(0); 235 } 231 236 $daysOfTheWeek = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday']; 232 237 while (!empty($daysOfTheWeek)) { -
wappointment/trunk/app/Jobs/AppointmentEmailReminder.php
r2297643 r2874788 5 5 class AppointmentEmailReminder extends \Wappointment\Jobs\AppointmentEmailConfirmed 6 6 { 7 const CONTENT = '\\Wappointment\\Messages\\AppointmentReminderEmail'; 7 public const CONTENT = '\\Wappointment\\Messages\\AppointmentReminderEmail'; 8 protected $get_first = false; 8 9 } -
wappointment/trunk/app/Listeners/AdminNotifyCanceledListener.php
r2645781 r2874788 8 8 protected function addToJobs($event) 9 9 { 10 $this->data_job = ['appointment' => $event->getAppointment(), 'client' => $event->getClient(), 'args' => $event->getAdditional()]; 10 $appointment = $event->getAppointment(); 11 if ($appointment->service->isGroup()) { 12 return false; 13 } 14 $this->data_job = ['appointment' => $appointment, 'client' => $event->getClient(), 'args' => $event->getAdditional()]; 11 15 parent::addToJobs($event); 12 16 } -
wappointment/trunk/app/Listeners/AdminNotifyRescheduledListener.php
r2645781 r2874788 8 8 protected function addToJobs($event) 9 9 { 10 $this->data_job = ['appointment' => $event->getAppointment(), 'client' => $event->getClient(), 'oldAppointment' => $event->getOldAppointment(), 'args' => $event->getAdditional()]; 10 $appointment = $event->getAppointment(); 11 if ($appointment->service->isGroup()) { 12 return false; 13 } 14 $this->data_job = ['appointment' => $appointment, 'client' => $event->getClient(), 'oldAppointment' => $event->getOldAppointment(), 'args' => $event->getAdditional()]; 11 15 parent::addToJobs($event); 12 16 } -
wappointment/trunk/app/Listeners/AppointmentConfirmedListener.php
r2645781 r2874788 9 9 protected $delay = 0; 10 10 protected $event_trigger = \Wappointment\Models\Reminder::APPOINTMENT_CONFIRMED; 11 protected $get_first = true; 11 12 protected function addToJobs($event) 12 13 { … … 16 17 $params['reminder_id'] = 0; 17 18 $this->recordJob($this->jobClass, \array_merge($params, $this->data_job), 'client', null, $this->delay); 19 if ($this->get_first) { 20 return; 21 } 18 22 } 19 23 } -
wappointment/trunk/app/Lists/addons.php
r2679872 r2874788 3 3 namespace WappoVendor; 4 4 5 return ['wappointment_services' => ['min' => '2.4.0', 'name' => 'Services suite'], 'wappointment_woocommerce' => ['min' => '2.4.0', 'name' => 'Appointments for WooCommerce'], 'wappointment_staff' => ['min' => '2.2.0', 'name' => 'Calendars & Staff'], 'wappointment_twilio' => ['min' => '2.2.0', 'name' => 'Twilio SMS'], 'wappointment_stripe' => ['min' => '1.0.0', 'name' => 'Stripe Payments'], 'wappointment_paypal' => ['min' => '1.0.0', 'name' => 'Paypal Payments'], 'wappointment_packages' => ['min' => '1.1.0', 'name' => 'Packages'], 'wappointment_group' => ['min' => '1.0.0', 'name' => 'Group'], 'wappointment_syncal' => ['min' => '1.0.0', 'name' => 'SyncCal'] ];5 return ['wappointment_services' => ['min' => '2.4.0', 'name' => 'Services suite'], 'wappointment_woocommerce' => ['min' => '2.4.0', 'name' => 'Appointments for WooCommerce'], 'wappointment_staff' => ['min' => '2.2.0', 'name' => 'Calendars & Staff'], 'wappointment_twilio' => ['min' => '2.2.0', 'name' => 'Twilio SMS'], 'wappointment_stripe' => ['min' => '1.0.0', 'name' => 'Stripe Payments'], 'wappointment_paypal' => ['min' => '1.0.0', 'name' => 'Paypal Payments'], 'wappointment_packages' => ['min' => '1.1.0', 'name' => 'Packages'], 'wappointment_group' => ['min' => '1.0.0', 'name' => 'Group'], 'wappointment_syncal' => ['min' => '1.0.0', 'name' => 'SyncCal'], 'wappointment_mailchimp' => ['min' => '1.0.0', 'name' => 'Mailchimp']]; -
wappointment/trunk/app/Lists/currencies.php
r2807115 r2874788 3 3 namespace WappoVendor; 4 4 5 return [0 => ['code' => 'AED', 'name' => 'United Arab Emirates dirham', 'symbol' => 'د.إ', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 1 => ['code' => 'AFN', 'name' => 'Afghan afghani', 'symbol' => '؋', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 2 => ['code' => 'ALL', 'name' => 'Albanian lek', 'symbol' => 'L', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 3 => ['code' => 'AMD', 'name' => 'Armenian dram', 'symbol' => 'AMD', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 4 => ['code' => 'ANG', 'name' => 'Netherlands Antillean guilder', 'symbol' => 'ƒ', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 5 => ['code' => 'AOA', 'name' => 'Angolan kwanza', 'symbol' => 'Kz', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 6 => ['code' => 'ARS', 'name' => 'Argentine peso', 'symbol' => '$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 7 => ['code' => 'AUD', 'name' => 'Australian dollar', 'symbol' => '$', 'position' => 2, 'decimals_sep' => '.', 'thousand_sep' => ','], 8 => ['code' => 'AWG', 'name' => 'Aruban florin', 'symbol' => 'Afl.', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 9 => ['code' => 'AZN', 'name' => 'Azerbaijani manat', 'symbol' => 'AZN', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 10 => ['code' => 'BAM', 'name' => 'Bosnia and Herzegovina convertible mark', 'symbol' => 'KM', 'position' => 3, 'decimals_sep' => ',', 'thousand_sep' => '.'], 11 => ['code' => 'BBD', 'name' => 'Barbadian dollar', 'symbol' => '$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 12 => ['code' => 'BDT', 'name' => 'Bangladeshi taka', 'symbol' => '৳ ', 'position' => 2, 'decimals_sep' => '.', 'thousand_sep' => ','], 13 => ['code' => 'BGN', 'name' => 'Bulgarian lev', 'symbol' => 'лв.', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 14 => ['code' => 'BHD', 'name' => 'Bahraini dinar', 'symbol' => '.د.ب', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 15 => ['code' => 'BIF', 'name' => 'Burundian franc', 'symbol' => 'Fr', 'position' => 1, 'decimals_sep' => \false, 'thousand_sep' => ' '], 16 => ['code' => 'BMD', 'name' => 'Bermudian dollar', 'symbol' => '$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 17 => ['code' => 'BND', 'name' => 'Brunei dollar', 'symbol' => '$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 18 => ['code' => 'BOB', 'name' => 'Bolivian boliviano', 'symbol' => 'Bs.', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 19 => ['code' => 'BRL', 'name' => 'Brazilian real', 'symbol' => 'R$', 'position' => 2, 'decimals_sep' => ',', 'thousand_sep' => '.'], 20 => ['code' => 'BSD', 'name' => 'Bahamian dollar', 'symbol' => '$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 21 => ['code' => 'BTC', 'name' => 'Bitcoin', 'symbol' => '฿', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 22 => ['code' => 'BTN', 'name' => 'Bhutanese ngultrum', 'symbol' => 'Nu.', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 23 => ['code' => 'BWP', 'name' => 'Botswana pula', 'symbol' => 'P', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 24 => ['code' => 'BYR', 'name' => 'Belarusian ruble (old)', 'symbol' => 'Br', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 25 => ['code' => 'BYN', 'name' => 'Belarusian ruble', 'symbol' => 'Br', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 26 => ['code' => 'BZD', 'name' => 'Belize dollar', 'symbol' => '$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 27 => ['code' => 'CAD', 'name' => 'Canadian dollar', 'symbol' => '$', 'position' => 2, 'decimals_sep' => '.', 'thousand_sep' => ','], 28 => ['code' => 'CDF', 'name' => 'Congolese franc', 'symbol' => 'Fr', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 29 => ['code' => 'CHF', 'name' => 'Swiss franc', 'symbol' => 'CHF', 'position' => 4, 'decimals_sep' => '.', 'thousand_sep' => '\''], 30 => ['code' => 'CLP', 'name' => 'Chilean peso', 'symbol' => '$', 'position' => 1, 'decimals_sep' => \false, 'thousand_sep' => ' '], 31 => ['code' => 'CNY', 'name' => 'Chinese yuan', 'symbol' => '¥', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 32 => ['code' => 'COP', 'name' => 'Colombian peso', 'symbol' => '$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 33 => ['code' => 'CRC', 'name' => 'Costa Rican colón', 'symbol' => '₡', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 34 => ['code' => 'CUC', 'name' => 'Cuban convertible peso', 'symbol' => '$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 35 => ['code' => 'CUP', 'name' => 'Cuban peso', 'symbol' => '$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 36 => ['code' => 'CVE', 'name' => 'Cape Verdean escudo', 'symbol' => '$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 37 => ['code' => 'CZK', 'name' => 'Czech koruna', 'symbol' => 'Kč', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 38 => ['code' => 'DJF', 'name' => 'Djiboutian franc', 'symbol' => 'Fr', 'position' => 1, 'decimals_sep' => \false, 'thousand_sep' => ' '], 39 => ['code' => 'DKK', 'name' => 'Danish krone', 'symbol' => 'DKK', 'position' => 4, 'decimals_sep' => ',', 'thousand_sep' => '.'], 40 => ['code' => 'DOP', 'name' => 'Dominican peso', 'symbol' => 'RD$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 41 => ['code' => 'DZD', 'name' => 'Algerian dinar', 'symbol' => 'د.ج', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 42 => ['code' => 'EGP', 'name' => 'Egyptian pound', 'symbol' => 'EGP', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 43 => ['code' => 'ERN', 'name' => 'Eritrean nakfa', 'symbol' => 'Nfk', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 44 => ['code' => 'ETB', 'name' => 'Ethiopian birr', 'symbol' => 'Br', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 45 => ['code' => 'EUR', 'name' => 'Euro', 'symbol' => '€', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 46 => ['code' => 'FJD', 'name' => 'Fijian dollar', 'symbol' => '$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 47 => ['code' => 'FKP', 'name' => 'Falkland Islands pound', 'symbol' => '£', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 48 => ['code' => 'GBP', 'name' => 'Pound sterling', 'symbol' => '£', 'position' => 2, 'decimals_sep' => '.', 'thousand_sep' => ','], 49 => ['code' => 'GEL', 'name' => 'Georgian lari', 'symbol' => '₾', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 50 => ['code' => 'GGP', 'name' => 'Guernsey pound', 'symbol' => '£', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 51 => ['code' => 'GHS', 'name' => 'Ghana cedi', 'symbol' => '₵', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 52 => ['code' => 'GIP', 'name' => 'Gibraltar pound', 'symbol' => '£', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 53 => ['code' => 'GMD', 'name' => 'Gambian dalasi', 'symbol' => 'D', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 54 => ['code' => 'GNF', 'name' => 'Guinean franc', 'symbol' => 'Fr', 'position' => 1, 'decimals_sep' => \false, 'thousand_sep' => ' '], 55 => ['code' => 'GTQ', 'name' => 'Guatemalan quetzal', 'symbol' => 'Q', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 56 => ['code' => 'GYD', 'name' => 'Guyanese dollar', 'symbol' => '$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 57 => ['code' => 'HKD', 'name' => 'Hong Kong dollar', 'symbol' => '$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 58 => ['code' => 'HNL', 'name' => 'Honduran lempira', 'symbol' => 'L', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 59 => ['code' => 'HRK', 'name' => 'Croatian kuna', 'symbol' => 'kn', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 60 => ['code' => 'HTG', 'name' => 'Haitian gourde', 'symbol' => 'G', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 61 => ['code' => 'HUF', 'name' => 'Hungarian forint', 'symbol' => 'Ft', 'position' => 3, 'decimals_sep' => ',', 'thousand_sep' => ' ', 'decimals' => 0], 62 => ['code' => 'IDR', 'name' => 'Indonesian rupiah', 'symbol' => 'Rp', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 63 => ['code' => 'ILS', 'name' => 'Israeli new shekel', 'symbol' => '₪', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 64 => ['code' => 'IMP', 'name' => 'Manx pound', 'symbol' => '£', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 65 => ['code' => 'INR', 'name' => 'Indian rupee', 'symbol' => '₹', 'position' => 1, 'decimals_sep' => '.', 'thousand_sep' => ' '], 66 => ['code' => 'IQD', 'name' => 'Iraqi dinar', 'symbol' => 'ع.د', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 67 => ['code' => 'IRR', 'name' => 'Iranian rial', 'symbol' => '﷼', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 68 => ['code' => 'IRT', 'name' => 'Iranian toman', 'symbol' => 'تومان', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 69 => ['code' => 'ISK', 'name' => 'Icelandic króna', 'symbol' => 'kr.', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 70 => ['code' => 'JEP', 'name' => 'Jersey pound', 'symbol' => '£', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 71 => ['code' => 'JMD', 'name' => 'Jamaican dollar', 'symbol' => '$', 'position' => 2, 'decimals_sep' => '.', 'thousand_sep' => ','], 72 => ['code' => 'JOD', 'name' => 'Jordanian dinar', 'symbol' => 'د.ا', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 73 => ['code' => 'JPY', 'name' => 'Japanese yen', 'symbol' => '¥', 'position' => 2, 'decimals_sep' => \false, 'thousand_sep' => ',', 'decimals' => 0], 74 => ['code' => 'KES', 'name' => 'Kenyan shilling', 'symbol' => 'KSh', 'position' => 2, 'decimals_sep' => '.', 'thousand_sep' => ',', 'decimals' => 0], 75 => ['code' => 'KGS', 'name' => 'Kyrgyzstani som', 'symbol' => 'сом', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 76 => ['code' => 'KHR', 'name' => 'Cambodian riel', 'symbol' => '៛', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 77 => ['code' => 'KMF', 'name' => 'Comorian franc', 'symbol' => 'Fr', 'position' => 1, 'decimals_sep' => \false, 'thousand_sep' => ' '], 78 => ['code' => 'KPW', 'name' => 'North Korean won', 'symbol' => '₩', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 79 => ['code' => 'KRW', 'name' => 'South Korean won', 'symbol' => '₩', 'position' => 1, 'decimals_sep' => \false, 'thousand_sep' => ',', 'decimals' => 0], 80 => ['code' => 'KWD', 'name' => 'Kuwaiti dinar', 'symbol' => 'د.ك', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 81 => ['code' => 'KYD', 'name' => 'Cayman Islands dollar', 'symbol' => '$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 82 => ['code' => 'KZT', 'name' => 'Kazakhstani tenge', 'symbol' => '₸', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 83 => ['code' => 'LAK', 'name' => 'Lao kip', 'symbol' => '₭', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 84 => ['code' => 'LBP', 'name' => 'Lebanese pound', 'symbol' => 'ل.ل', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 85 => ['code' => 'LKR', 'name' => 'Sri Lankan rupee', 'symbol' => 'රු', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 86 => ['code' => 'LRD', 'name' => 'Liberian dollar', 'symbol' => '$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 87 => ['code' => 'LSL', 'name' => 'Lesotho loti', 'symbol' => 'L', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 88 => ['code' => 'LYD', 'name' => 'Libyan dinar', 'symbol' => 'ل.د', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 89 => ['code' => 'MAD', 'name' => 'Moroccan dirham', 'symbol' => 'د.م.', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 90 => ['code' => 'MDL', 'name' => 'Moldovan leu', 'symbol' => 'MDL', 'position' => 3, 'decimals_sep' => ',', 'thousand_sep' => '.'], 91 => ['code' => 'MGA', 'name' => 'Malagasy ariary', 'symbol' => 'Ar', 'position' => 1, 'decimals_sep' => \false, 'thousand_sep' => ' '], 92 => ['code' => 'MKD', 'name' => 'Macedonian denar', 'symbol' => 'ден', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 93 => ['code' => 'MMK', 'name' => 'Burmese kyat', 'symbol' => 'Ks', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 94 => ['code' => 'MNT', 'name' => 'Mongolian tögrög', 'symbol' => '₮', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 95 => ['code' => 'MOP', 'name' => 'Macanese pataca', 'symbol' => 'P', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 96 => ['code' => 'MRU', 'name' => 'Mauritanian ouguiya', 'symbol' => 'UM', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 97 => ['code' => 'MUR', 'name' => 'Mauritian rupee', 'symbol' => '₨', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 98 => ['code' => 'MVR', 'name' => 'Maldivian rufiyaa', 'symbol' => '.ރ', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 99 => ['code' => 'MWK', 'name' => 'Malawian kwacha', 'symbol' => 'MK', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 100 => ['code' => 'MXN', 'name' => 'Mexican peso', 'symbol' => '$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 101 => ['code' => 'MYR', 'name' => 'Malaysian ringgit', 'symbol' => 'RM', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 102 => ['code' => 'MZN', 'name' => 'Mozambican metical', 'symbol' => 'MT', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 103 => ['code' => 'NAD', 'name' => 'Namibian dollar', 'symbol' => 'N$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 104 => ['code' => 'NGN', 'name' => 'Nigerian naira', 'symbol' => '₦', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 105 => ['code' => 'NIO', 'name' => 'Nicaraguan córdoba', 'symbol' => 'C$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 106 => ['code' => 'NOK', 'name' => 'Norwegian krone', 'symbol' => 'kr', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 107 => ['code' => 'NPR', 'name' => 'Nepalese rupee', 'symbol' => '₨', 'position' => 4, 'decimals_sep' => '.', 'thousand_sep' => ','], 108 => ['code' => 'NZD', 'name' => 'New Zealand dollar', 'symbol' => '$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 109 => ['code' => 'OMR', 'name' => 'Omani rial', 'symbol' => 'ر.ع.', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 110 => ['code' => 'PAB', 'name' => 'Panamanian balboa', 'symbol' => 'B/.', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 111 => ['code' => 'PEN', 'name' => 'Sol', 'symbol' => 'S/', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 112 => ['code' => 'PGK', 'name' => 'Papua New Guinean kina', 'symbol' => 'K', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 113 => ['code' => 'PHP', 'name' => 'Philippine peso', 'symbol' => '₱', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 114 => ['code' => 'PKR', 'name' => 'Pakistani rupee', 'symbol' => '₨', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 115 => ['code' => 'PLN', 'name' => 'Polish złoty', 'symbol' => 'zł', 'position' => 3, 'decimals_sep' => ',', 'thousand_sep' => ' '], 116 => ['code' => 'PRB', 'name' => 'Transnistrian ruble', 'symbol' => 'р.', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 117 => ['code' => 'PYG', 'name' => 'Paraguayan guaraní', 'symbol' => '₲', 'position' => 2, 'decimals_sep' => \false, 'thousand_sep' => '.'], 118 => ['code' => 'QAR', 'name' => 'Qatari riyal', 'symbol' => 'ر.ق', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 119 => ['code' => 'RON', 'name' => 'Romanian leu', 'symbol' => 'lei', 'position' => 3, 'decimals_sep' => ',', 'thousand_sep' => '.'], 120 => ['code' => 'RSD', 'name' => 'Serbian dinar', 'symbol' => 'рсд', 'position' => 3, 'decimals_sep' => ',', 'thousand_sep' => '.'], 121 => ['code' => 'RUB', 'name' => 'Russian ruble', 'symbol' => '₽', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 122 => ['code' => 'RWF', 'name' => 'Rwandan franc', 'symbol' => 'Fr', 'position' => 1, 'decimals_sep' => \false, 'thousand_sep' => ' '], 123 => ['code' => 'SAR', 'name' => 'Saudi riyal', 'symbol' => 'ر.س', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 124 => ['code' => 'SBD', 'name' => 'Solomon Islands dollar', 'symbol' => '$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 125 => ['code' => 'SCR', 'name' => 'Seychellois rupee', 'symbol' => '₨', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 126 => ['code' => 'SDG', 'name' => 'Sudanese pound', 'symbol' => 'ج.س.', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 127 => ['code' => 'SEK', 'name' => 'Swedish krona', 'symbol' => 'kr', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 128 => ['code' => 'SGD', 'name' => 'Singapore dollar', 'symbol' => '$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 129 => ['code' => 'SHP', 'name' => 'Saint Helena pound', 'symbol' => '£', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 130 => ['code' => 'SLL', 'name' => 'Sierra Leonean leone', 'symbol' => 'Le', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 131 => ['code' => 'SOS', 'name' => 'Somali shilling', 'symbol' => 'Sh', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 132 => ['code' => 'SRD', 'name' => 'Surinamese dollar', 'symbol' => '$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 133 => ['code' => 'SSP', 'name' => 'South Sudanese pound', 'symbol' => '£', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 134 => ['code' => 'STN', 'name' => 'São Tomé and Príncipe dobra', 'symbol' => 'Db', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 135 => ['code' => 'SYP', 'name' => 'Syrian pound', 'symbol' => 'ل.س', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 136 => ['code' => 'SZL', 'name' => 'Swazi lilangeni', 'symbol' => 'L', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 137 => ['code' => 'THB', 'name' => 'Thai baht', 'symbol' => '฿', 'position' => 2, 'decimals_sep' => '.', 'thousand_sep' => ','], 138 => ['code' => 'TJS', 'name' => 'Tajikistani somoni', 'symbol' => 'ЅМ', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 139 => ['code' => 'TMT', 'name' => 'Turkmenistan manat', 'symbol' => 'm', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 140 => ['code' => 'TND', 'name' => 'Tunisian dinar', 'symbol' => 'د.ت', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 141 => ['code' => 'TOP', 'name' => 'Tongan paʻanga', 'symbol' => 'T$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 142 => ['code' => 'TRY', 'name' => 'Turkish lira', 'symbol' => '₺', 'position' => 4, 'decimals_sep' => ',', 'thousand_sep' => '.'], 143 => ['code' => 'TTD', 'name' => 'Trinidad and Tobago dollar', 'symbol' => '$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 144 => ['code' => 'TWD', 'name' => 'New Taiwan dollar', 'symbol' => 'NT$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 145 => ['code' => 'TZS', 'name' => 'Tanzanian shilling', 'symbol' => 'Sh', 'position' => 2, 'decimals_sep' => '.', 'thousand_sep' => ',', 'decimals' => 0], 146 => ['code' => 'UAH', 'name' => 'Ukrainian hryvnia', 'symbol' => '₴', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 147 => ['code' => 'UGX', 'name' => 'Ugandan shilling', 'symbol' => 'UGX', 'position' => 2, 'decimals_sep' => \false, 'thousand_sep' => ',', 'decimals' => 0], 148 => ['code' => 'USD', 'name' => 'United States (US) dollar', 'symbol' => '$', 'position' => 2, 'decimals_sep' => '.', 'thousand_sep' => ','], 149 => ['code' => 'UYU', 'name' => 'Uruguayan peso', 'symbol' => '$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 150 => ['code' => 'UZS', 'name' => 'Uzbekistani som', 'symbol' => 'UZS', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 151 => ['code' => 'VEF', 'name' => 'Venezuelan bolívar', 'symbol' => 'Bs F', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 152 => ['code' => 'VES', 'name' => 'Bolívar soberano', 'symbol' => 'Bs.S', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 153 => ['code' => 'VND', 'name' => 'Vietnamese đồng', 'symbol' => '₫', 'position' => 1, 'decimals_sep' => \false, 'thousand_sep' => ' '], 154 => ['code' => 'VUV', 'name' => 'Vanuatu vatu', 'symbol' => 'Vt', 'position' => 1, 'decimals_sep' => \false, 'thousand_sep' => ' '], 155 => ['code' => 'WST', 'name' => 'Samoan tālā', 'symbol' => 'T', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 156 => ['code' => 'XAF', 'name' => 'Central African CFA franc', 'symbol' => 'CFA', 'position' => 1, 'decimals_sep' => \false, 'thousand_sep' => ' '], 157 => ['code' => 'XCD', 'name' => 'East Caribbean dollar', 'symbol' => '$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 158 => ['code' => 'XOF', 'name' => 'West African CFA franc', 'symbol' => 'CFA', 'position' => 1, 'decimals_sep' => \false, 'thousand_sep' => ' '], 159 => ['code' => 'XPF', 'name' => 'CFP franc', 'symbol' => 'Fr', 'position' => 1, 'decimals_sep' => \false, 'thousand_sep' => ' '], 160 => ['code' => 'YER', 'name' => 'Yemeni rial', 'symbol' => '﷼', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 161 => ['code' => 'ZAR', 'name' => 'South African rand', 'symbol' => 'R', 'position' => 2, 'decimals_sep' => '.', 'thousand_sep' => ','], 162 => ['code' => 'ZMW', 'name' => 'Zambian kwacha', 'symbol' => 'ZK', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' ']];5 return [0 => ['code' => 'AED', 'name' => 'United Arab Emirates dirham', 'symbol' => 'د.إ', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 1 => ['code' => 'AFN', 'name' => 'Afghan afghani', 'symbol' => '؋', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 2 => ['code' => 'ALL', 'name' => 'Albanian lek', 'symbol' => 'L', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 3 => ['code' => 'AMD', 'name' => 'Armenian dram', 'symbol' => 'AMD', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 4 => ['code' => 'ANG', 'name' => 'Netherlands Antillean guilder', 'symbol' => 'ƒ', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 5 => ['code' => 'AOA', 'name' => 'Angolan kwanza', 'symbol' => 'Kz', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 6 => ['code' => 'ARS', 'name' => 'Argentine peso', 'symbol' => '$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 7 => ['code' => 'AUD', 'name' => 'Australian dollar', 'symbol' => '$', 'position' => 2, 'decimals_sep' => '.', 'thousand_sep' => ','], 8 => ['code' => 'AWG', 'name' => 'Aruban florin', 'symbol' => 'Afl.', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 9 => ['code' => 'AZN', 'name' => 'Azerbaijani manat', 'symbol' => 'AZN', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 10 => ['code' => 'BAM', 'name' => 'Bosnia and Herzegovina convertible mark', 'symbol' => 'KM', 'position' => 3, 'decimals_sep' => ',', 'thousand_sep' => '.'], 11 => ['code' => 'BBD', 'name' => 'Barbadian dollar', 'symbol' => '$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 12 => ['code' => 'BDT', 'name' => 'Bangladeshi taka', 'symbol' => '৳ ', 'position' => 2, 'decimals_sep' => '.', 'thousand_sep' => ','], 13 => ['code' => 'BGN', 'name' => 'Bulgarian lev', 'symbol' => 'лв.', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 14 => ['code' => 'BHD', 'name' => 'Bahraini dinar', 'symbol' => '.د.ب', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 15 => ['code' => 'BIF', 'name' => 'Burundian franc', 'symbol' => 'Fr', 'position' => 1, 'decimals_sep' => \false, 'thousand_sep' => ' '], 16 => ['code' => 'BMD', 'name' => 'Bermudian dollar', 'symbol' => '$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 17 => ['code' => 'BND', 'name' => 'Brunei dollar', 'symbol' => '$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 18 => ['code' => 'BOB', 'name' => 'Bolivian boliviano', 'symbol' => 'Bs.', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 19 => ['code' => 'BRL', 'name' => 'Brazilian real', 'symbol' => 'R$', 'position' => 2, 'decimals_sep' => ',', 'thousand_sep' => '.'], 20 => ['code' => 'BSD', 'name' => 'Bahamian dollar', 'symbol' => '$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 21 => ['code' => 'BTC', 'name' => 'Bitcoin', 'symbol' => '฿', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 22 => ['code' => 'BTN', 'name' => 'Bhutanese ngultrum', 'symbol' => 'Nu.', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 23 => ['code' => 'BWP', 'name' => 'Botswana pula', 'symbol' => 'P', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 24 => ['code' => 'BYR', 'name' => 'Belarusian ruble (old)', 'symbol' => 'Br', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 25 => ['code' => 'BYN', 'name' => 'Belarusian ruble', 'symbol' => 'Br', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 26 => ['code' => 'BZD', 'name' => 'Belize dollar', 'symbol' => '$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 27 => ['code' => 'CAD', 'name' => 'Canadian dollar', 'symbol' => '$', 'position' => 2, 'decimals_sep' => '.', 'thousand_sep' => ','], 28 => ['code' => 'CDF', 'name' => 'Congolese franc', 'symbol' => 'Fr', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 29 => ['code' => 'CHF', 'name' => 'Swiss franc', 'symbol' => 'CHF', 'position' => 4, 'decimals_sep' => '.', 'thousand_sep' => '\''], 30 => ['code' => 'CLP', 'name' => 'Chilean peso', 'symbol' => '$', 'position' => 2, 'decimals_sep' => \false, 'thousand_sep' => ' '], 31 => ['code' => 'CNY', 'name' => 'Chinese yuan', 'symbol' => '¥', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 32 => ['code' => 'COP', 'name' => 'Colombian peso', 'symbol' => '$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 33 => ['code' => 'CRC', 'name' => 'Costa Rican colón', 'symbol' => '₡', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 34 => ['code' => 'CUC', 'name' => 'Cuban convertible peso', 'symbol' => '$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 35 => ['code' => 'CUP', 'name' => 'Cuban peso', 'symbol' => '$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 36 => ['code' => 'CVE', 'name' => 'Cape Verdean escudo', 'symbol' => '$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 37 => ['code' => 'CZK', 'name' => 'Czech koruna', 'symbol' => 'Kč', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 38 => ['code' => 'DJF', 'name' => 'Djiboutian franc', 'symbol' => 'Fr', 'position' => 1, 'decimals_sep' => \false, 'thousand_sep' => ' '], 39 => ['code' => 'DKK', 'name' => 'Danish krone', 'symbol' => 'DKK', 'position' => 4, 'decimals_sep' => ',', 'thousand_sep' => '.'], 40 => ['code' => 'DOP', 'name' => 'Dominican peso', 'symbol' => 'RD$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 41 => ['code' => 'DZD', 'name' => 'Algerian dinar', 'symbol' => 'د.ج', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 42 => ['code' => 'EGP', 'name' => 'Egyptian pound', 'symbol' => 'EGP', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 43 => ['code' => 'ERN', 'name' => 'Eritrean nakfa', 'symbol' => 'Nfk', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 44 => ['code' => 'ETB', 'name' => 'Ethiopian birr', 'symbol' => 'Br', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 45 => ['code' => 'EUR', 'name' => 'Euro', 'symbol' => '€', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 46 => ['code' => 'FJD', 'name' => 'Fijian dollar', 'symbol' => '$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 47 => ['code' => 'FKP', 'name' => 'Falkland Islands pound', 'symbol' => '£', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 48 => ['code' => 'GBP', 'name' => 'Pound sterling', 'symbol' => '£', 'position' => 2, 'decimals_sep' => '.', 'thousand_sep' => ','], 49 => ['code' => 'GEL', 'name' => 'Georgian lari', 'symbol' => '₾', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 50 => ['code' => 'GGP', 'name' => 'Guernsey pound', 'symbol' => '£', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 51 => ['code' => 'GHS', 'name' => 'Ghana cedi', 'symbol' => '₵', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 52 => ['code' => 'GIP', 'name' => 'Gibraltar pound', 'symbol' => '£', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 53 => ['code' => 'GMD', 'name' => 'Gambian dalasi', 'symbol' => 'D', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 54 => ['code' => 'GNF', 'name' => 'Guinean franc', 'symbol' => 'Fr', 'position' => 1, 'decimals_sep' => \false, 'thousand_sep' => ' '], 55 => ['code' => 'GTQ', 'name' => 'Guatemalan quetzal', 'symbol' => 'Q', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 56 => ['code' => 'GYD', 'name' => 'Guyanese dollar', 'symbol' => '$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 57 => ['code' => 'HKD', 'name' => 'Hong Kong dollar', 'symbol' => '$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 58 => ['code' => 'HNL', 'name' => 'Honduran lempira', 'symbol' => 'L', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 59 => ['code' => 'HRK', 'name' => 'Croatian kuna', 'symbol' => 'kn', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 60 => ['code' => 'HTG', 'name' => 'Haitian gourde', 'symbol' => 'G', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 61 => ['code' => 'HUF', 'name' => 'Hungarian forint', 'symbol' => 'Ft', 'position' => 3, 'decimals_sep' => ',', 'thousand_sep' => ' ', 'decimals' => 0], 62 => ['code' => 'IDR', 'name' => 'Indonesian rupiah', 'symbol' => 'Rp', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 63 => ['code' => 'ILS', 'name' => 'Israeli new shekel', 'symbol' => '₪', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 64 => ['code' => 'IMP', 'name' => 'Manx pound', 'symbol' => '£', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 65 => ['code' => 'INR', 'name' => 'Indian rupee', 'symbol' => '₹', 'position' => 1, 'decimals_sep' => '.', 'thousand_sep' => ' '], 66 => ['code' => 'IQD', 'name' => 'Iraqi dinar', 'symbol' => 'ع.د', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 67 => ['code' => 'IRR', 'name' => 'Iranian rial', 'symbol' => '﷼', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 68 => ['code' => 'IRT', 'name' => 'Iranian toman', 'symbol' => 'تومان', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 69 => ['code' => 'ISK', 'name' => 'Icelandic króna', 'symbol' => 'kr.', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 70 => ['code' => 'JEP', 'name' => 'Jersey pound', 'symbol' => '£', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 71 => ['code' => 'JMD', 'name' => 'Jamaican dollar', 'symbol' => '$', 'position' => 2, 'decimals_sep' => '.', 'thousand_sep' => ','], 72 => ['code' => 'JOD', 'name' => 'Jordanian dinar', 'symbol' => 'د.ا', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 73 => ['code' => 'JPY', 'name' => 'Japanese yen', 'symbol' => '¥', 'position' => 2, 'decimals_sep' => \false, 'thousand_sep' => ',', 'decimals' => 0], 74 => ['code' => 'KES', 'name' => 'Kenyan shilling', 'symbol' => 'KSh', 'position' => 2, 'decimals_sep' => '.', 'thousand_sep' => ',', 'decimals' => 0], 75 => ['code' => 'KGS', 'name' => 'Kyrgyzstani som', 'symbol' => 'сом', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 76 => ['code' => 'KHR', 'name' => 'Cambodian riel', 'symbol' => '៛', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 77 => ['code' => 'KMF', 'name' => 'Comorian franc', 'symbol' => 'Fr', 'position' => 1, 'decimals_sep' => \false, 'thousand_sep' => ' '], 78 => ['code' => 'KPW', 'name' => 'North Korean won', 'symbol' => '₩', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 79 => ['code' => 'KRW', 'name' => 'South Korean won', 'symbol' => '₩', 'position' => 1, 'decimals_sep' => \false, 'thousand_sep' => ',', 'decimals' => 0], 80 => ['code' => 'KWD', 'name' => 'Kuwaiti dinar', 'symbol' => 'د.ك', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 81 => ['code' => 'KYD', 'name' => 'Cayman Islands dollar', 'symbol' => '$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 82 => ['code' => 'KZT', 'name' => 'Kazakhstani tenge', 'symbol' => '₸', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 83 => ['code' => 'LAK', 'name' => 'Lao kip', 'symbol' => '₭', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 84 => ['code' => 'LBP', 'name' => 'Lebanese pound', 'symbol' => 'ل.ل', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 85 => ['code' => 'LKR', 'name' => 'Sri Lankan rupee', 'symbol' => 'රු', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 86 => ['code' => 'LRD', 'name' => 'Liberian dollar', 'symbol' => '$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 87 => ['code' => 'LSL', 'name' => 'Lesotho loti', 'symbol' => 'L', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 88 => ['code' => 'LYD', 'name' => 'Libyan dinar', 'symbol' => 'ل.د', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 89 => ['code' => 'MAD', 'name' => 'Moroccan dirham', 'symbol' => 'د.م.', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 90 => ['code' => 'MDL', 'name' => 'Moldovan leu', 'symbol' => 'MDL', 'position' => 3, 'decimals_sep' => ',', 'thousand_sep' => '.'], 91 => ['code' => 'MGA', 'name' => 'Malagasy ariary', 'symbol' => 'Ar', 'position' => 1, 'decimals_sep' => \false, 'thousand_sep' => ' '], 92 => ['code' => 'MKD', 'name' => 'Macedonian denar', 'symbol' => 'ден', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 93 => ['code' => 'MMK', 'name' => 'Burmese kyat', 'symbol' => 'Ks', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 94 => ['code' => 'MNT', 'name' => 'Mongolian tögrög', 'symbol' => '₮', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 95 => ['code' => 'MOP', 'name' => 'Macanese pataca', 'symbol' => 'P', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 96 => ['code' => 'MRU', 'name' => 'Mauritanian ouguiya', 'symbol' => 'UM', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 97 => ['code' => 'MUR', 'name' => 'Mauritian rupee', 'symbol' => '₨', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 98 => ['code' => 'MVR', 'name' => 'Maldivian rufiyaa', 'symbol' => '.ރ', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 99 => ['code' => 'MWK', 'name' => 'Malawian kwacha', 'symbol' => 'MK', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 100 => ['code' => 'MXN', 'name' => 'Mexican peso', 'symbol' => '$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 101 => ['code' => 'MYR', 'name' => 'Malaysian ringgit', 'symbol' => 'RM', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 102 => ['code' => 'MZN', 'name' => 'Mozambican metical', 'symbol' => 'MT', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 103 => ['code' => 'NAD', 'name' => 'Namibian dollar', 'symbol' => 'N$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 104 => ['code' => 'NGN', 'name' => 'Nigerian naira', 'symbol' => '₦', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 105 => ['code' => 'NIO', 'name' => 'Nicaraguan córdoba', 'symbol' => 'C$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 106 => ['code' => 'NOK', 'name' => 'Norwegian krone', 'symbol' => 'kr', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 107 => ['code' => 'NPR', 'name' => 'Nepalese rupee', 'symbol' => '₨', 'position' => 4, 'decimals_sep' => '.', 'thousand_sep' => ','], 108 => ['code' => 'NZD', 'name' => 'New Zealand dollar', 'symbol' => '$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 109 => ['code' => 'OMR', 'name' => 'Omani rial', 'symbol' => 'ر.ع.', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 110 => ['code' => 'PAB', 'name' => 'Panamanian balboa', 'symbol' => 'B/.', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 111 => ['code' => 'PEN', 'name' => 'Sol', 'symbol' => 'S/', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 112 => ['code' => 'PGK', 'name' => 'Papua New Guinean kina', 'symbol' => 'K', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 113 => ['code' => 'PHP', 'name' => 'Philippine peso', 'symbol' => '₱', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 114 => ['code' => 'PKR', 'name' => 'Pakistani rupee', 'symbol' => '₨', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 115 => ['code' => 'PLN', 'name' => 'Polish złoty', 'symbol' => 'zł', 'position' => 3, 'decimals_sep' => ',', 'thousand_sep' => ' '], 116 => ['code' => 'PRB', 'name' => 'Transnistrian ruble', 'symbol' => 'р.', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 117 => ['code' => 'PYG', 'name' => 'Paraguayan guaraní', 'symbol' => '₲', 'position' => 2, 'decimals_sep' => \false, 'thousand_sep' => '.'], 118 => ['code' => 'QAR', 'name' => 'Qatari riyal', 'symbol' => 'ر.ق', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 119 => ['code' => 'RON', 'name' => 'Romanian leu', 'symbol' => 'lei', 'position' => 3, 'decimals_sep' => ',', 'thousand_sep' => '.'], 120 => ['code' => 'RSD', 'name' => 'Serbian dinar', 'symbol' => 'рсд', 'position' => 3, 'decimals_sep' => ',', 'thousand_sep' => '.'], 121 => ['code' => 'RUB', 'name' => 'Russian ruble', 'symbol' => '₽', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 122 => ['code' => 'RWF', 'name' => 'Rwandan franc', 'symbol' => 'Fr', 'position' => 1, 'decimals_sep' => \false, 'thousand_sep' => ' '], 123 => ['code' => 'SAR', 'name' => 'Saudi riyal', 'symbol' => 'ر.س', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 124 => ['code' => 'SBD', 'name' => 'Solomon Islands dollar', 'symbol' => '$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 125 => ['code' => 'SCR', 'name' => 'Seychellois rupee', 'symbol' => '₨', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 126 => ['code' => 'SDG', 'name' => 'Sudanese pound', 'symbol' => 'ج.س.', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 127 => ['code' => 'SEK', 'name' => 'Swedish krona', 'symbol' => 'kr', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 128 => ['code' => 'SGD', 'name' => 'Singapore dollar', 'symbol' => '$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 129 => ['code' => 'SHP', 'name' => 'Saint Helena pound', 'symbol' => '£', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 130 => ['code' => 'SLL', 'name' => 'Sierra Leonean leone', 'symbol' => 'Le', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 131 => ['code' => 'SOS', 'name' => 'Somali shilling', 'symbol' => 'Sh', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 132 => ['code' => 'SRD', 'name' => 'Surinamese dollar', 'symbol' => '$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 133 => ['code' => 'SSP', 'name' => 'South Sudanese pound', 'symbol' => '£', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 134 => ['code' => 'STN', 'name' => 'São Tomé and Príncipe dobra', 'symbol' => 'Db', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 135 => ['code' => 'SYP', 'name' => 'Syrian pound', 'symbol' => 'ل.س', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 136 => ['code' => 'SZL', 'name' => 'Swazi lilangeni', 'symbol' => 'L', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 137 => ['code' => 'THB', 'name' => 'Thai baht', 'symbol' => '฿', 'position' => 2, 'decimals_sep' => '.', 'thousand_sep' => ','], 138 => ['code' => 'TJS', 'name' => 'Tajikistani somoni', 'symbol' => 'ЅМ', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 139 => ['code' => 'TMT', 'name' => 'Turkmenistan manat', 'symbol' => 'm', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 140 => ['code' => 'TND', 'name' => 'Tunisian dinar', 'symbol' => 'د.ت', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 141 => ['code' => 'TOP', 'name' => 'Tongan paʻanga', 'symbol' => 'T$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 142 => ['code' => 'TRY', 'name' => 'Turkish lira', 'symbol' => '₺', 'position' => 4, 'decimals_sep' => ',', 'thousand_sep' => '.'], 143 => ['code' => 'TTD', 'name' => 'Trinidad and Tobago dollar', 'symbol' => '$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 144 => ['code' => 'TWD', 'name' => 'New Taiwan dollar', 'symbol' => 'NT$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 145 => ['code' => 'TZS', 'name' => 'Tanzanian shilling', 'symbol' => 'Sh', 'position' => 2, 'decimals_sep' => '.', 'thousand_sep' => ',', 'decimals' => 0], 146 => ['code' => 'UAH', 'name' => 'Ukrainian hryvnia', 'symbol' => '₴', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 147 => ['code' => 'UGX', 'name' => 'Ugandan shilling', 'symbol' => 'UGX', 'position' => 2, 'decimals_sep' => \false, 'thousand_sep' => ',', 'decimals' => 0], 148 => ['code' => 'USD', 'name' => 'United States (US) dollar', 'symbol' => '$', 'position' => 2, 'decimals_sep' => '.', 'thousand_sep' => ','], 149 => ['code' => 'UYU', 'name' => 'Uruguayan peso', 'symbol' => '$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 150 => ['code' => 'UZS', 'name' => 'Uzbekistani som', 'symbol' => 'UZS', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 151 => ['code' => 'VEF', 'name' => 'Venezuelan bolívar', 'symbol' => 'Bs F', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 152 => ['code' => 'VES', 'name' => 'Bolívar soberano', 'symbol' => 'Bs.S', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 153 => ['code' => 'VND', 'name' => 'Vietnamese đồng', 'symbol' => '₫', 'position' => 1, 'decimals_sep' => \false, 'thousand_sep' => ' '], 154 => ['code' => 'VUV', 'name' => 'Vanuatu vatu', 'symbol' => 'Vt', 'position' => 1, 'decimals_sep' => \false, 'thousand_sep' => ' '], 155 => ['code' => 'WST', 'name' => 'Samoan tālā', 'symbol' => 'T', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 156 => ['code' => 'XAF', 'name' => 'Central African CFA franc', 'symbol' => 'CFA', 'position' => 1, 'decimals_sep' => \false, 'thousand_sep' => ' '], 157 => ['code' => 'XCD', 'name' => 'East Caribbean dollar', 'symbol' => '$', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 158 => ['code' => 'XOF', 'name' => 'West African CFA franc', 'symbol' => 'CFA', 'position' => 1, 'decimals_sep' => \false, 'thousand_sep' => ' '], 159 => ['code' => 'XPF', 'name' => 'CFP franc', 'symbol' => 'Fr', 'position' => 1, 'decimals_sep' => \false, 'thousand_sep' => ' '], 160 => ['code' => 'YER', 'name' => 'Yemeni rial', 'symbol' => '﷼', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' '], 161 => ['code' => 'ZAR', 'name' => 'South African rand', 'symbol' => 'R', 'position' => 2, 'decimals_sep' => '.', 'thousand_sep' => ','], 162 => ['code' => 'ZMW', 'name' => 'Zambian kwacha', 'symbol' => 'ZK', 'position' => 1, 'decimals_sep' => ',', 'thousand_sep' => ' ']]; -
wappointment/trunk/app/Lists/translations_calendar.php
r2807115 r2874788 18 18 'titlege' => __('Group event', 'wappointment'), 19 19 'subtitlege' => __('Event for multiple participants', 'wappointment'), 20 'really_cancel' => __('Do you really want to cancel', 'wappointment'), 21 'confirm_free' => __('Confirm that you are free?', 'wappointment'), 22 'click_for_new_start' => __('Click a time to select new start', 'wappointment'), 23 'confirm_new_start' => __('Confirm new start:', 'wappointment'), 24 'select_another_time' => __('Select another time', 'wappointment'), 25 'modify_weekly_availability' => __('Modify your Weekly Availability', 'wappointment'), 20 26 ]; -
wappointment/trunk/app/Lists/translations_js_common.php
r2807115 r2874788 37 37 'bwe_step' => __('Step', 'wappointment'), 38 38 'bwe_edit_more_colors' => __('Edit more colors', 'wappointment'), 39 'bwe_primary_color' => __('Primary Color', 'wappointment'), 39 40 'create' => __('Create', 'wappointment'), 40 41 'hide' => __('Hide', 'wappointment'), 41 42 'save' => __('Save', 'wappointment'), 42 43 'edit' => __('Edit', 'wappointment'), 44 'duplicate' => __('Duplicate', 'wappointment'), 45 'translate' => __('Translate', 'wappointment'), 46 'language' => __('Language', 'wappointment'), 43 47 'delete' => __('Delete', 'wappointment'), 44 48 'sort' => __('Sort', 'wappointment'), … … 52 56 'close' => __('Close', 'wappointment'), 53 57 'add' => __('Add', 'wappointment'), 58 'reschedule' => __('Reschedule', 'wappointment'), 59 'view_appointment' => __('View appointment', 'View'), 54 60 'regav_hours' => __('Hours', 'wappointment'), 55 61 /* translators: %s - minutes */ -
wappointment/trunk/app/Lists/translations_settings.php
r2693573 r2874788 76 76 'appearance_title' => __('Appearance', 'wappointment'), 77 77 'advanced_title' => __('Advanced', 'wappointment'), 78 'addons_title' => 'Addons', 79 'only_unpublish' => __('You can only unpublish it', 'wappointment'), 78 80 'when_reminder_sent' => __('When is the reminder sent? (before the appointment)', 'wappointment'), 79 81 'select_unit' => __('Select unit', 'wappointment'), -
wappointment/trunk/app/Messages/AppointmentPendingEmail.php
r2152317 r2874788 6 6 { 7 7 use HasNoAppointmentFooterLinks; 8 const EVENT = \Wappointment\Models\Reminder::APPOINTMENT_PENDING; 8 protected $icsRequired = false; 9 public const EVENT = \Wappointment\Models\Reminder::APPOINTMENT_PENDING; 9 10 } -
wappointment/trunk/app/Messages/AppointmentReminderEmail.php
r2388385 r2874788 6 6 class AppointmentReminderEmail extends \Wappointment\Messages\AbstractEmail 7 7 { 8 use HasAppointmentFooterLinks, HasTagsToReplace, AttachesIcs, PreparesClientEmail; 8 use HasAppointmentFooterLinks; 9 use HasTagsToReplace; 10 use AttachesIcs; 11 use PreparesClientEmail; 9 12 protected $icsRequired = true; 10 const EVENT = \Wappointment\Models\Reminder::APPOINTMENT_STARTS;13 public const EVENT = \Wappointment\Models\Reminder::APPOINTMENT_STARTS; 11 14 public function loadContent() 12 15 { 13 16 $reminder_id = empty($this->params['reminder_id']) ? false : $this->params['reminder_id']; 14 17 if ($reminder_id) { 15 if (!$this->prepareClientEmail($this->params['client'], $this->params['appointment'], static::EVENT )) {18 if (!$this->prepareClientEmail($this->params['client'], $this->params['appointment'], static::EVENT, $reminder_id)) { 16 19 return false; 17 20 } -
wappointment/trunk/app/Messages/PreparesClientEmail.php
r2314670 r2874788 8 8 trait PreparesClientEmail 9 9 { 10 public function prepareClientEmail(\Wappointment\Models\Client $client, \Wappointment\Models\Appointment $appointment, $eventType )10 public function prepareClientEmail(\Wappointment\Models\Client $client, \Wappointment\Models\Appointment $appointment, $eventType, $reminderId = 0) 11 11 { 12 12 $this->client = $client; 13 13 $this->appointment = $appointment; 14 $email = \Wappointment\Models\Reminder::where('published', 1)->where('type', \Wappointment\Models\Reminder::getType('email'))->where('event', $eventType)->first();14 $email = $this->tryToLoadEmail($eventType, $this->client->options['locale'] ?? false, $reminderId); 15 15 if (!$email) { 16 16 return false; … … 20 20 return true; 21 21 } 22 private function tryToLoadEmail($eventType, $localized = false, $reminderId) 23 { 24 if ($localized !== false) { 25 $email = $this->tryEmail($eventType, $localized, $reminderId); 26 if ($email) { 27 return $email; 28 } 29 } 30 return $this->tryEmail($eventType, false, $reminderId); 31 } 32 private function tryEmail($eventType, $localized = false, $reminderId) 33 { 34 $query = \Wappointment\Models\Reminder::where('published', 1)->where('type', \Wappointment\Models\Reminder::getType('email'))->where('event', $eventType); 35 if ($localized) { 36 $query->where('lang', $localized); 37 } 38 if ($reminderId > 0) { 39 $query->where('id', $reminderId); 40 } 41 return $query->first(); 42 } 22 43 } -
wappointment/trunk/app/Messages/Templates/FoundationEmail.php
r2688125 r2874788 3 3 namespace Wappointment\Messages\Templates; 4 4 5 use Wappointment\Services\Settings; 5 6 use Wappointment\System\Helpers; 6 7 class FoundationEmail … … 12 13 { 13 14 $this->rtl = (bool) $rtl; 15 $this->colors['primary'] = \Wappointment\Services\Settings::get('email_link_color'); 16 $this->colors['primary'] = \Wappointment\Services\Settings::get('email_link_color'); 14 17 } 15 18 public function setColors($colors) … … 1250 1253 text-decoration: none; } 1251 1254 a:hover { 1252 color: ' . $this->getColor('primary Light') . '; }1255 color: ' . $this->getColor('primary') . '; } 1253 1256 a:active { 1254 color: ' . $this->getColor('primary Light') . '; }1257 color: ' . $this->getColor('primary') . '; } 1255 1258 a:visited { 1256 1259 color: ' . $this->getColor('primary') . '; } -
wappointment/trunk/app/Models/Client.php
r2807115 r2874788 9 9 class Client extends \Wappointment\ClassConnect\Model 10 10 { 11 use SoftDeletes, CanBook, CanBookLegacy; 11 use SoftDeletes; 12 use CanBook; 13 use CanBookLegacy; 14 use CanGetCustomFieldValue; 12 15 protected $table = 'wappo_clients'; 13 16 public $generatingOrder = true; … … 70 73 public function getCustomField($tag = false) 71 74 { 72 return empty($tag) || empty($this->options[$tag['key']]) ? '' : $this->options[$tag['key']]; 75 return empty($tag) || empty($this->options[$tag['key']]) ? '' : $this->getCfReadableValue($tag); 76 } 77 private function getCfReadableValue($tag) 78 { 79 if (\class_exists('\\WappointmentAddonServices\\Services\\CustomFields')) { 80 return $this->getCustomFieldFormattedValue($tag); 81 } 82 return $this->options[$tag['key']]; 73 83 } 74 84 protected function getRealDuration($service) -
wappointment/trunk/app/Models/Reminder.php
r2645781 r2874788 9 9 class Reminder extends \Wappointment\ClassConnect\Model 10 10 { 11 use CanSortByParent; 11 12 protected $table = 'wappo_reminders'; 12 protected $fillable = ['subject', 'type', 'event', 'locked', 'options', 'published' ];13 protected $fillable = ['subject', 'type', 'event', 'locked', 'options', 'published', 'parent', 'lang']; 13 14 protected $casts = ['options' => 'array', 'locked' => 'boolean', 'published' => 'boolean']; 14 15 protected $appends = ['label']; 15 const APPOINTMENT_STARTS = 1;16 const APPOINTMENT_CONFIRMED = 2;17 const APPOINTMENT_RESCHEDULED = 3;18 const APPOINTMENT_CANCELLED = 4;19 const APPOINTMENT_PENDING = 5;20 const WHEN_UNIT_MINUTES = 1;21 const WHEN_UNIT_HOURS = 2;22 const WHEN_UNIT_DAYS = 3;16 public const APPOINTMENT_STARTS = 1; 17 public const APPOINTMENT_CONFIRMED = 2; 18 public const APPOINTMENT_RESCHEDULED = 3; 19 public const APPOINTMENT_CANCELLED = 4; 20 public const APPOINTMENT_PENDING = 5; 21 public const WHEN_UNIT_MINUTES = 1; 22 public const WHEN_UNIT_HOURS = 2; 23 public const WHEN_UNIT_DAYS = 3; 23 24 public static function getType($type) 24 25 { … … 37 38 $is_in[] = static::APPOINTMENT_PENDING; 38 39 } 39 if (\Wappointment\Services\Settings::get('allow_rescheduling')) {40 $is_in[] = static::APPOINTMENT_RESCHEDULED;41 }42 if (\Wappointment\Services\Settings::get('allow_cancellation')) {43 $is_in[] = static::APPOINTMENT_CANCELLED;44 }45 $query->whereIn('event', apply_filters('wappointment_reminders_listed', $is_in));46 40 } 47 41 public static function getTypes($col = false) -
wappointment/trunk/app/Models/Service.php
r2655182 r2874788 7 7 class Service extends \Wappointment\ClassConnect\Model 8 8 { 9 use SoftDeletes, CanLimit; 9 use SoftDeletes; 10 use CanLimit; 10 11 protected $dates = ['deleted_at']; 11 12 protected $table = 'wappo_services'; … … 39 40 return !empty($this->options['woo_sellable']); 40 41 } 42 public function isGroup() 43 { 44 return !empty($this->options['slots']); 45 } 41 46 public function hasDuration($duration) 42 47 { -
wappointment/trunk/app/Repositories/Availability.php
r2727796 r2874788 8 8 use Wappointment\Services\Settings; 9 9 use Wappointment\ClassConnect\Carbon; 10 use Wappointment\Helpers\Site; 10 11 class Availability extends \Wappointment\Repositories\AbstractRepository 11 12 { … … 13 14 public function query() 14 15 { 15 return apply_filters('wappointment_front_availability', ['staffs' => \Wappointment\Services\Staff::get(), 'week_starts_on' => \Wappointment\Services\Settings::get('week_starts_on'), 'frontend_weekstart' => \Wappointment\Services\Settings::get('frontend_weekstart'), 'date_format' => \Wappointment\Services\Settings::get('date_format'), 'time_format' => \Wappointment\Services\Settings::get('time_format'), 'min_bookable' => \Wappointment\Services\Settings::get('hours_before_booking_allowed'), 'date_time_union' => \Wappointment\Services\Settings::get('date_time_union', ' - '), 'now' => (new \Wappointment\ClassConnect\Carbon())->format('Y-m-d\\TH:i:00'), 'buffer_time' => \Wappointment\Services\Settings::get('buffer_time'), 'services' => \Wappointment\Managers\Service::all(), 'site_lang' => \ substr(get_locale(), 0, 2), 'custom_fields' => \Wappointment\Managers\Central::get('CustomFields')::get(), 'availability_fluid' => \Wappointment\Services\Settings::get('availability_fluid'), 'more_st' => \Wappointment\Services\Settings::get('more_st'), 'starting_each' => \Wappointment\Services\Settings::get('starting_each')]);16 return apply_filters('wappointment_front_availability', ['staffs' => \Wappointment\Services\Staff::get(), 'week_starts_on' => \Wappointment\Services\Settings::get('week_starts_on'), 'frontend_weekstart' => \Wappointment\Services\Settings::get('frontend_weekstart'), 'date_format' => \Wappointment\Services\Settings::get('date_format'), 'time_format' => \Wappointment\Services\Settings::get('time_format'), 'min_bookable' => \Wappointment\Services\Settings::get('hours_before_booking_allowed'), 'date_time_union' => \Wappointment\Services\Settings::get('date_time_union', ' - '), 'now' => (new \Wappointment\ClassConnect\Carbon())->format('Y-m-d\\TH:i:00'), 'buffer_time' => \Wappointment\Services\Settings::get('buffer_time'), 'services' => \Wappointment\Managers\Service::all(), 'site_lang' => \Wappointment\Helpers\Site::lang(), 'custom_fields' => \Wappointment\Managers\Central::get('CustomFields')::get(), 'availability_fluid' => \Wappointment\Services\Settings::get('availability_fluid'), 'more_st' => \Wappointment\Services\Settings::get('more_st'), 'starting_each' => \Wappointment\Services\Settings::get('starting_each')]); 16 17 } 17 18 } -
wappointment/trunk/app/Routes/Main.php
r2693573 r2874788 5 5 class Main extends \Wappointment\Routes\AbstractRoutes 6 6 { 7 protected $routes = ['public' => ['GET' => ['/ping' => ['controller' => 'PingController', 'method' => 'ping'], '/availability' => ['controller' => 'AvailabilityController', 'method' => 'get']], 'POST' => ['/appointment' => ['controller' => 'AppointmentController', 'method' => 'get'], '/convertdate' => ['controller' => 'BookingController', 'method' => 'convertDate'], '/services/booking' => ['controller' => 'BookingController', 'method' => 'save', 'hint' => 'Booking'], '/booking' => ['controller' => 'LegacyBookingController', 'method' => 'save', 'hint' => 'LegacyBooking'], '/order/confirm' => ['controller' => 'OrderController', 'method' => 'confirm']], 'PATCH' => ['/booking' => ['controller' => 'BookingController', 'method' => 'reschedule'], '/appointment' => ['controller' => 'AppointmentController', 'method' => 'cancel']]], 'administrator' => ['RESOURCE' => ['/addons' => ['methods' => ['get', 'post'], 'controller' => 'AddonsController'], '/reminder' => ['methods' => ['get', 'post', 'delete', 'patch'], 'controller' => 'ReminderController'], '/service' => ['methods' => ['post'], 'controller' => 'ServiceController'], '/services' => ['methods' => ['post', 'delete'], 'controller' => 'ServicesController'], '/calendars' => ['methods' => ['delete'], 'controller' => 'CalendarsController'], '/services/location' => ['methods' => ['get', 'post', 'delete'], 'controller' => 'LocationsController'], '/currency' => ['methods' => ['get', 'post'], 'controller' => 'CurrencyController']], 'GET' => ['/addons/check' => ['method' => 'check', 'controller' => 'AddonsController'], '/pingAdmin' => ['controller' => 'PingController', 'method' => 'pingAdmin'], '/settings/(?P<key>\\S+)' => ['controller' => 'SettingsController', 'method' => 'get'], '/settingsstaff/(?P<key>\\S+)' => ['controller' => 'SettingsStaffController', 'method' => 'get'], '/services/custom_fields' => ['method' => 'get', 'controller' => 'CustomFieldsController'], '/services' => ['method' => 'get', 'controller' => 'ServicesController', 'paginated' => true], '/orders' => ['controller' => 'OrdersBackController', 'method' => 'index', 'paginated' => true], '/health' => ['method' => 'health', 'controller' => 'AppController']], 'POST' => ['/addons/clear' => ['method' => 'clear', 'controller' => 'AddonsController'], '/events/record' => ['method' => 'recordDotcom', 'controller' => 'EventsController'], '/send_feedback' => ['method' => 'sendFeedback', 'controller' => 'AppController'], '/app/migrate' => ['method' => 'migrate', 'controller' => 'AppController'], '/wappointment/refresh' => ['method' => 'refresh', 'controller' => 'CalendarsController'], '/wappointment/subscribe' => ['method' => 'subscribe', 'controller' => 'WappointmentController', 'hint' => 'SubscribeAdmin'], '/wappointment/sendignore' => ['method' => 'sendIgnoreBooking', 'controller' => 'WappointmentController'], '/addons/install' => ['method' => 'install', 'controller' => 'AddonsController'], '/addons/activate' => ['method' => 'activate', 'controller' => 'AddonsController'], '/addons/deactivate' => ['method' => 'deactivate', 'controller' => 'AddonsController'], '/events' => ['method' => 'save', 'controller' => 'EventsController', 'hint' => 'BookingAdmin'], '/freshinstall' => ['controller' => 'DebugController', 'method' => 'freshInstall'], 'refreshcache' => ['controller' => 'DebugController', 'method' => 'refreshCache'], '/updatepage' => ['controller' => 'DebugController', 'method' => 'updatePage'], '/addmanagerrole' => ['controller' => 'DebugController', 'method' => 'addManagerRole'], '/settings' => ['controller' => 'SettingsController', 'method' => 'save'], '/settingsstaff' => ['controller' => 'SettingsStaffController', 'method' => 'save'], '/reminderpreview' => ['controller' => 'ReminderController', 'method' => 'preview'], '/settings/sendtestemail' => ['controller' => 'SettingsController', 'method' => 'sendPreviewEmail'], '/client/search' => ['method' => 'search', 'controller' => 'ClientController'], '/client/book' => ['method' => 'book', 'controller' => 'ClientController', 'hint' => 'BookingAdmin'], '/services/reorder' => ['controller' => 'ServicesController', 'method' => 'reorder'], '/calendars/reorder' => ['controller' => 'CalendarsController', 'method' => 'reorder'], '/calendars/permissions' => ['controller' => 'CalendarsController', 'method' => 'savePermissions'], '/order/refund' => ['controller' => 'OrdersBackController', 'method' => 'refund'], '/order/paid' => ['controller' => 'OrdersBackController', 'method' => 'markAsPaid'], '/order/cancel' => ['controller' => 'OrdersBackController', 'method' => 'cancel']]], 'mixed' => ['GET' => ['/calendars' => ['method' => 'get', 'controller' => 'CalendarsController', 'cap' => 'wappo_self_man'], '/config/calendar' => ['controller' => 'ViewsDataController', 'method' => 'getCalendar', 'cap' => 'wappo_calendar_man'], '/client' => ['controller' => 'ClientController', 'method' => 'index', 'cap' => 'wappo_clients_man'], '/calendars/customfields' => ['controller' => 'CalendarsController', 'method' => 'getCFStructure', 'cap' => 'wappo_self_cf']], 'POST' => ['/events/delete' => ['method' => 'delete', 'controller' => 'EventsController', 'cap' => 'wappo_calendar_cancel'], '/events/ patch' => ['method' => 'patch', 'controller' => 'EventsController', 'cap' => 'wappo_calendar_reschedule'], '/events/put' => ['method' => 'put', 'controller' => 'EventsController', 'cap' => 'wappo_calendar_confirm'], '/events/list' => ['method' => 'get', 'controller' => 'EventsController', 'cap' => 'wappo_calendar_man'], '/services/booking/admin' => ['controller' => 'BookingController', 'method' => 'adminBook', 'hint' => 'BookingAdmin', 'cap' => 'wappo_calendar_book'], '/status' => ['method' => 'save', 'controller' => 'StatusController', 'cap' => 'wappo_calendar_man'], '/status/delete' => ['method' => 'delete', 'controller' => 'StatusController', 'cap' => 'wappo_calendar_man'], '/calendars' => ['method' => 'save', 'controller' => 'CalendarsController', 'cap' => 'wappo_self_weekly'], '/calendars/avatar' => ['method' => 'getAvatar', 'controller' => 'CalendarsController', 'cap' => 'wappo_self_weekly'], '/calendars/services' => ['controller' => 'CalendarsController', 'method' => 'saveServices', 'cap' => 'wappo_self_services'], '/calendars/customfields' => ['controller' => 'CalendarsController', 'method' => 'saveCustomFields', 'cap' => 'wappo_self_cf'], '/wappointment/connect' => ['method' => 'connect', 'controller' => 'CalendarsController', 'cap' => 'wappo_self_connect_account'], '/wappointment/disconnect' => ['method' => 'disconnect', 'controller' => 'CalendarsController', 'cap' => 'wappo_self_connect_account'], '/calendars/savecal' => ['method' => 'saveCal', 'controller' => 'CalendarsController', 'cap' => 'wappo_self_add_ics'], '/calendars/refreshcalendars' => ['controller' => 'CalendarsController', 'method' => 'refreshCalendars', 'cap' => 'wappo_self_add_ics'], '/calendars/disconnect' => ['controller' => 'CalendarsController', 'method' => 'disconnectCal', 'cap' => 'wappo_self_del_ics'], '/calendars/toggle' => ['controller' => 'CalendarsController', 'method' => 'toggle', 'cap' => 'wappo_self_unpublish'], '/client' => ['method' => 'save', 'controller' => 'ClientController', 'cap' => 'wappo_clients_edit'], '/client/delete' => ['method' => 'delete', 'controller' => 'ClientController', 'cap' => 'wappo_clients_del']]]];7 protected $routes = ['public' => ['GET' => ['/ping' => ['controller' => 'PingController', 'method' => 'ping'], '/availability' => ['controller' => 'AvailabilityController', 'method' => 'get']], 'POST' => ['/appointment' => ['controller' => 'AppointmentController', 'method' => 'get'], '/convertdate' => ['controller' => 'BookingController', 'method' => 'convertDate'], '/services/booking' => ['controller' => 'BookingController', 'method' => 'save', 'hint' => 'Booking'], '/booking' => ['controller' => 'LegacyBookingController', 'method' => 'save', 'hint' => 'LegacyBooking'], '/order/confirm' => ['controller' => 'OrderController', 'method' => 'confirm']], 'PATCH' => ['/booking' => ['controller' => 'BookingController', 'method' => 'reschedule'], '/appointment' => ['controller' => 'AppointmentController', 'method' => 'cancel']]], 'administrator' => ['RESOURCE' => ['/addons' => ['methods' => ['get', 'post'], 'controller' => 'AddonsController'], '/reminder' => ['methods' => ['get', 'post', 'delete', 'patch'], 'controller' => 'ReminderController'], '/service' => ['methods' => ['post'], 'controller' => 'ServiceController'], '/services' => ['methods' => ['post', 'delete'], 'controller' => 'ServicesController'], '/calendars' => ['methods' => ['delete'], 'controller' => 'CalendarsController'], '/services/location' => ['methods' => ['get', 'post', 'delete'], 'controller' => 'LocationsController'], '/currency' => ['methods' => ['get', 'post'], 'controller' => 'CurrencyController']], 'GET' => ['/addons/check' => ['method' => 'check', 'controller' => 'AddonsController'], '/pingAdmin' => ['controller' => 'PingController', 'method' => 'pingAdmin'], '/settings/(?P<key>\\S+)' => ['controller' => 'SettingsController', 'method' => 'get'], '/settingsstaff/(?P<key>\\S+)' => ['controller' => 'SettingsStaffController', 'method' => 'get'], '/services/custom_fields' => ['method' => 'get', 'controller' => 'CustomFieldsController'], '/services' => ['method' => 'get', 'controller' => 'ServicesController', 'paginated' => true], '/orders' => ['controller' => 'OrdersBackController', 'method' => 'index', 'paginated' => true], '/health' => ['method' => 'health', 'controller' => 'AppController']], 'POST' => ['/addons/clear' => ['method' => 'clear', 'controller' => 'AddonsController'], '/events/record' => ['method' => 'recordDotcom', 'controller' => 'EventsController'], '/send_feedback' => ['method' => 'sendFeedback', 'controller' => 'AppController'], '/app/migrate' => ['method' => 'migrate', 'controller' => 'AppController'], '/wappointment/refresh' => ['method' => 'refresh', 'controller' => 'CalendarsController'], '/wappointment/subscribe' => ['method' => 'subscribe', 'controller' => 'WappointmentController', 'hint' => 'SubscribeAdmin'], '/wappointment/sendignore' => ['method' => 'sendIgnoreBooking', 'controller' => 'WappointmentController'], '/addons/install' => ['method' => 'install', 'controller' => 'AddonsController'], '/addons/activate' => ['method' => 'activate', 'controller' => 'AddonsController'], '/addons/deactivate' => ['method' => 'deactivate', 'controller' => 'AddonsController'], '/events' => ['method' => 'save', 'controller' => 'EventsController', 'hint' => 'BookingAdmin'], '/freshinstall' => ['controller' => 'DebugController', 'method' => 'freshInstall'], 'refreshcache' => ['controller' => 'DebugController', 'method' => 'refreshCache'], '/updatepage' => ['controller' => 'DebugController', 'method' => 'updatePage'], '/addmanagerrole' => ['controller' => 'DebugController', 'method' => 'addManagerRole'], '/settings' => ['controller' => 'SettingsController', 'method' => 'save'], '/settingsstaff' => ['controller' => 'SettingsStaffController', 'method' => 'save'], '/reminderpreview' => ['controller' => 'ReminderController', 'method' => 'preview'], '/settings/sendtestemail' => ['controller' => 'SettingsController', 'method' => 'sendPreviewEmail'], '/client/search' => ['method' => 'search', 'controller' => 'ClientController'], '/client/book' => ['method' => 'book', 'controller' => 'ClientController', 'hint' => 'BookingAdmin'], '/services/reorder' => ['controller' => 'ServicesController', 'method' => 'reorder'], '/calendars/reorder' => ['controller' => 'CalendarsController', 'method' => 'reorder'], '/calendars/permissions' => ['controller' => 'CalendarsController', 'method' => 'savePermissions'], '/order/refund' => ['controller' => 'OrdersBackController', 'method' => 'refund'], '/order/paid' => ['controller' => 'OrdersBackController', 'method' => 'markAsPaid'], '/order/cancel' => ['controller' => 'OrdersBackController', 'method' => 'cancel']]], 'mixed' => ['GET' => ['/calendars' => ['method' => 'get', 'controller' => 'CalendarsController', 'cap' => 'wappo_self_man'], '/config/calendar' => ['controller' => 'ViewsDataController', 'method' => 'getCalendar', 'cap' => 'wappo_calendar_man'], '/client' => ['controller' => 'ClientController', 'method' => 'index', 'cap' => 'wappo_clients_man'], '/calendars/customfields' => ['controller' => 'CalendarsController', 'method' => 'getCFStructure', 'cap' => 'wappo_self_cf']], 'POST' => ['/events/delete' => ['method' => 'delete', 'controller' => 'EventsController', 'cap' => 'wappo_calendar_cancel'], '/events/forceDelete' => ['method' => 'forceDelete', 'controller' => 'EventsController', 'cap' => 'wappo_calendar_cancel'], '/events/patch' => ['method' => 'patch', 'controller' => 'EventsController', 'cap' => 'wappo_calendar_reschedule'], '/events/put' => ['method' => 'put', 'controller' => 'EventsController', 'cap' => 'wappo_calendar_confirm'], '/events/list' => ['method' => 'get', 'controller' => 'EventsController', 'cap' => 'wappo_calendar_man'], '/services/booking/admin' => ['controller' => 'BookingController', 'method' => 'adminBook', 'hint' => 'BookingAdmin', 'cap' => 'wappo_calendar_book'], '/status' => ['method' => 'save', 'controller' => 'StatusController', 'cap' => 'wappo_calendar_man'], '/status/delete' => ['method' => 'delete', 'controller' => 'StatusController', 'cap' => 'wappo_calendar_man'], '/calendars' => ['method' => 'save', 'controller' => 'CalendarsController', 'cap' => 'wappo_self_weekly'], '/calendars/avatar' => ['method' => 'getAvatar', 'controller' => 'CalendarsController', 'cap' => 'wappo_self_weekly'], '/calendars/services' => ['controller' => 'CalendarsController', 'method' => 'saveServices', 'cap' => 'wappo_self_services'], '/calendars/customfields' => ['controller' => 'CalendarsController', 'method' => 'saveCustomFields', 'cap' => 'wappo_self_cf'], '/wappointment/connect' => ['method' => 'connect', 'controller' => 'CalendarsController', 'cap' => 'wappo_self_connect_account'], '/wappointment/disconnect' => ['method' => 'disconnect', 'controller' => 'CalendarsController', 'cap' => 'wappo_self_connect_account'], '/calendars/savecal' => ['method' => 'saveCal', 'controller' => 'CalendarsController', 'cap' => 'wappo_self_add_ics'], '/calendars/refreshcalendars' => ['controller' => 'CalendarsController', 'method' => 'refreshCalendars', 'cap' => 'wappo_self_add_ics'], '/calendars/disconnect' => ['controller' => 'CalendarsController', 'method' => 'disconnectCal', 'cap' => 'wappo_self_del_ics'], '/calendars/toggle' => ['controller' => 'CalendarsController', 'method' => 'toggle', 'cap' => 'wappo_self_unpublish'], '/client' => ['method' => 'save', 'controller' => 'ClientController', 'cap' => 'wappo_clients_edit'], '/client/delete' => ['method' => 'delete', 'controller' => 'ClientController', 'cap' => 'wappo_clients_del']]]]; 8 8 public function __construct() 9 9 { -
wappointment/trunk/app/Services/Addons.php
r2344635 r2874788 3 3 namespace Wappointment\Services; 4 4 5 use Wappointment\ClassConnect\Collection; 5 6 class Addons 6 7 { … … 8 9 { 9 10 return apply_filters('wappointment_active_addons', []); 11 } 12 public static function withSettings() 13 { 14 return (new \Wappointment\ClassConnect\Collection(static::getActive()))->filter(function ($item) { 15 return $item['settings'] === true; 16 }); 10 17 } 11 18 public static function isActive($addon_name) -
wappointment/trunk/app/Services/Appointment.php
r2645781 r2874788 212 212 public static function cancel(\Wappointment\Models\Appointment $appointment) 213 213 { 214 \Wappointment\Models\Log::canceledAppointment($appointment);215 214 $client = $appointment->client()->first(); 216 215 $staff_id_regenerate = $appointment->getStaffId(); -
wappointment/trunk/app/Services/AppointmentNew.php
r2709311 r2874788 175 175 return $result; 176 176 } 177 public static function reschedule($edit_key, $start_at )177 public static function reschedule($edit_key, $start_at, $admin = false, $appointmentObject = null) 178 178 { 179 179 $allowrescheduling = (bool) \Wappointment\Services\Settings::get('allow_rescheduling'); 180 if (!$a llowrescheduling) {180 if (!$admin && !$allowrescheduling) { 181 181 throw new \WappointmentException('Appointment rescheduling is not allowed', 1); 182 182 } 183 if ( \is_array($edit_key)) {183 if (!$admin && \is_array($edit_key)) { 184 184 throw new \WappointmentException(__("Malformed parameter", 'wappointment'), 1); 185 185 } 186 $appointment = static::getAppointmentModel()::where('edit_key', $edit_key)->first(); 187 if (!apply_filters('wappointment_reschedule_allowed', $allowrescheduling, ['appointment' => $appointment])) { 186 if ($admin) { 187 $appointment = $appointmentObject; 188 } else { 189 $appointment = static::getAppointmentModel()::where('edit_key', $edit_key)->first(); 190 } 191 if (!$admin && !apply_filters('wappointment_reschedule_allowed', $allowrescheduling, ['appointment' => $appointment])) { 188 192 throw new \WappointmentException('Appointment rescheduling is not allowed', 1); 189 193 } … … 192 196 throw new \WappointmentException(__("Can't find appointment", 'wappointment'), 1); 193 197 } 194 if (!$a ppointment->canStillReschedule()) {198 if (!$admin && !$appointment->canStillReschedule()) { 195 199 throw new \WappointmentException(__("Can't reschedule appointment anymore", 'wappointment'), 1); 196 200 } … … 205 209 { 206 210 (new \Wappointment\Services\Availability($appointment->staff_id))->regenerate(); 211 if ($appointment->service->isGroup() && \class_exists('\\WappointmentAddonGroup\\Models\\AppointmentsParticipants')) { 212 $participants = \WappointmentAddonGroup\Models\AppointmentsParticipants::where('appointment_id', $appointment->id)->with(['client'])->get(); 213 foreach ($participants as $participant) { 214 $client = $participant->client; 215 static::sendRescheduleNotification($appointment, $client, $oldAppointment); 216 } 217 } else { 218 static::sendRescheduleNotification($appointment, $appointment->getClientModel(), $oldAppointment); 219 } 207 220 //send rescheduled email to client and admin 208 221 $clientModel = $appointment->getClientModel(); 209 \Wappointment\Services\JobHelper::dispatch('AppointmentRescheduledEvent', ['appointment' => $appointment, 'client' => $clientModel, 'oldAppointment' => $oldAppointment], $clientModel); 222 } 223 public static function sendRescheduleNotification($appointment, $client, $oldAppointment) 224 { 225 \Wappointment\Services\JobHelper::dispatch('AppointmentRescheduledEvent', ['appointment' => $appointment, 'client' => $client, 'oldAppointment' => $oldAppointment], $client); 210 226 } 211 227 public static function unixToDb($unixTS) … … 342 358 //used for credit return in addons 343 359 apply_filters('wappointment_cancelled_appointment', $appointment); 344 \Wappointment\Models\Log::canceledAppointment($appointment); 345 $client = \is_null($client) ? $appointment->getClientModel() : $client; 360 if ($appointment->service->isGroup() && \class_exists('\\WappointmentAddonGroup\\Models\\AppointmentsParticipants')) { 361 $participants = \WappointmentAddonGroup\Models\AppointmentsParticipants::where('appointment_id', $appointment->id)->with(['client'])->get(); 362 foreach ($participants as $participant) { 363 $client = $participant->client; 364 static::sendCancelNotification($appointment, $client); 365 $participant->delete(); 366 } 367 } else { 368 static::sendCancelNotification($appointment, \is_null($client) ? $appointment->getClientModel() : $client); 369 } 346 370 //clearing charges for that appointment clearing order prices 347 371 if (!\Wappointment\Services\Payment::isWooActive()) { … … 349 373 } 350 374 static::destroy($appointment, $force); 375 return true; 376 } 377 public static function sendCancelNotification($appointment, $client) 378 { 351 379 //trigger cancelled email to user and cancelled notification to admin 352 380 \Wappointment\Services\JobHelper::dispatch('AppointmentCanceledEvent', ['appointment' => $appointment, 'client' => $client], $client); 353 return true;354 381 } 355 382 public static function destroy($appointment, $force = false) -
wappointment/trunk/app/Services/CalendarParser.php
r2742428 r2874788 86 86 return !empty($vevent->{$column}) && $vevent->{$column}->getValue() == 'FREE'; 87 87 } 88 public function isFreeGoogle($vevent) 89 { 90 $column = 'TRANSP'; 91 return !empty($vevent->{$column}) && $vevent->{$column}->getValue() === 'TRANSPARENT'; 92 } 88 93 public function freeSpotted($vevent) 89 94 { 90 return $this->isFreeOutlook($vevent) ;95 return $this->isFreeOutlook($vevent) || $this->isFreeGoogle($vevent); 91 96 } 92 97 public function getStatus($vevent) -
wappointment/trunk/app/Services/Client.php
r2807115 r2874788 3 3 namespace Wappointment\Services; 4 4 5 use Wappointment\Helpers\Site; 5 6 use Wappointment\Models\Client as MClient; 6 7 use Wappointment\Validators\HttpRequest\Booking; … … 38 39 if (empty($dataClient['name'])) { 39 40 $dataClient['name'] = ''; 41 } 42 if (empty($dataClient['options']['locale'])) { 43 $dataClient['options']['locale'] = \Wappointment\Helpers\Site::locale(); 40 44 } 41 45 if (empty($client)) { -
wappointment/trunk/app/Services/Settings.php
r2807115 r2874788 58 58 'allow_rescheduling' => true, 59 59 'email_footer' => '', 60 'email_link_color' => '#6664cb', 60 61 'hours_before_booking_allowed' => 3, 61 62 'hours_before_cancellation_allowed' => 24, -
wappointment/trunk/app/Services/ViewsData.php
r2807115 r2874788 134 134 'cal_duration' => (new \Wappointment\Services\Preferences())->get('cal_duration'), 135 135 'buttons' => [['key' => 'book', 'title' => __('Book an appointment', 'wappointment'), 'subtitle' => __('On behalf of your client', 'wappointment'), 'icon' => 'dashicons-admin-users', 'component' => 'BehalfBooking'], ['key' => 'free', 'title' => __('Open this time', 'wappointment'), 'subtitle' => __('Allow new bookings', 'wappointment'), 'icon' => 'dashicons-unlock txt blue', 'component' => 'StatusFreeConfirm'], ['key' => 'busy', 'title' => __('Block this time', 'wappointment'), 'subtitle' => __('Prevent new bookings', 'wappointment'), 'icon' => 'dashicons-lock txt red', 'component' => 'StatusBusyConfirm']], 136 'buttons_appointment' => [['key' => 'cancel', 'title' => __('Cancel', 'wappointment'), 'subtitle' => '', 'icon' => 'dashicons-dismiss red', 'component' => 'CancelBooking']], 136 137 ]; 137 138 if (\Wappointment\Services\VersionDB::canServices()) { … … 229 230 ]; 230 231 } 232 private function settingsaddons() 233 { 234 return ['addons' => \Wappointment\Services\Addons::withSettings()]; 235 } 231 236 private function wizardinit() 232 237 { -
wappointment/trunk/app/Services/Wappointment/Addons.php
r2679872 r2874788 5 5 use Wappointment\WP\Helpers as WPHelpers; 6 6 use Wappointment\ClassConnect\Carbon; 7 use Wappointment\WP\Plugins; 7 8 class Addons extends \Wappointment\Services\Wappointment\API 8 9 { 9 10 public function __construct() 10 11 { 11 if (!\function_exists('WappoVendor\\get_plugins')) {12 require_once ABSPATH . 'wp-admin/includes/plugin.php';13 }14 12 parent::__construct(); 15 13 } … … 34 32 if ($this->isAPlugin($package)) { 35 33 $package->plugin = $package->solutions[0]->type === 1; 36 $package->installed = $this->isPluginInstalled($package);37 $package->activated = $this->isPluginActivated($package);34 $package->installed = \Wappointment\WP\Plugins::wp()->installed($this->pluginFileName($package)); 35 $package->activated = \Wappointment\WP\Plugins::wp()->active($this->pluginFileName($package)); 38 36 } 39 37 if ($this->pluginNamekey($package)) { … … 53 51 { 54 52 return $this->pluginNamekey($package) . '/index.php'; 55 }56 private function pluginName($package)57 {58 return $this->getPluginDetails($package)->name;59 }60 private function isPluginInstalled($package)61 {62 return !empty(get_plugins()[$this->pluginFileName($package)]);63 }64 private function isPluginActivated($package)65 {66 return is_plugin_active($this->pluginFileName($package));67 53 } 68 54 private function getPluginDetails($package) … … 84 70 public function activate($package) 85 71 { 86 if (!current_user_can('activate_plugins')) { 87 throw new \WappointmentException('Sorry, you are not allowed to activate plugins on this site.'); 88 } 89 $result = activate_plugin($this->pluginFileName($package)); 72 $result = \Wappointment\WP\Plugins::wp()->activate($this->pluginFileName($package)); 90 73 if (is_wp_error($result)) { 91 74 // Process Error … … 96 79 public function deactivate($package) 97 80 { 98 if (!current_user_can('activate_plugins')) { 99 throw new \WappointmentException('Sorry, you are not allowed to activate plugins on this site.'); 100 } 101 $result = deactivate_plugins([$this->pluginFileName($package)]); 81 \Wappointment\WP\Plugins::wp()->deactivate([$this->pluginFileName($package)]); 102 82 return ['message' => 'Addon deactivated']; 103 83 } -
wappointment/trunk/app/Services/Wappointment/VersionCheck.php
r2679872 r2874788 3 3 namespace Wappointment\Services\Wappointment; 4 4 5 use Wappointment\WP\Plugins; 5 6 class VersionCheck extends \Wappointment\Services\Wappointment\API 6 7 { … … 18 19 foreach ($this->getWappointmentActiveSlugs() as $plugin) { 19 20 $plugin_file = $plugin . '/index.php'; 20 if ( is_plugin_active($plugin_file) && !isset($transient->response[$plugin_file])) {21 if (\Wappointment\WP\Plugins::wp()->active($plugin_file) && !isset($transient->response[$plugin_file])) { 21 22 $latestVersion = $this->latestVersion($plugin); 22 23 if ($latestVersion !== false && \version_compare($latestVersion, $this->getActivePluginVersion($plugin), '>')) { -
wappointment/trunk/app/System/Status.php
r2679872 r2874788 11 11 public static $version = WAPPOINTMENT_VERSION; 12 12 private static $last_step = 4; 13 private static $db_version_required = '2.4. 6';13 private static $db_version_required = '2.4.15'; 14 14 public static function isInstalled() 15 15 { -
wappointment/trunk/app/Transports/WpMail.php
r2688125 r2874788 8 8 class WpMail extends \Wappointment\Transports\Transport 9 9 { 10 use WpMailPatched, CanSendPlainText, CanSendMultipart, CanSendPlugin; 10 use WpMailPatched; 11 use CanSendPlainText; 12 use CanSendMultipart; 13 use CanSendPlugin; 11 14 private $configSave = []; 12 15 public function __construct($config) -
wappointment/trunk/app/Transports/WpMailPatched.php
r2655182 r2874788 2 2 3 3 namespace Wappointment\Transports; 4 5 use Wappointment\Plugins\MultiLang\TranslatePress; 4 6 5 7 /** … … 8 10 trait WpMailPatched 9 11 { 10 11 12 public function getPhpMailer() 12 13 { … … 38 39 public function wpMail($to, $subject, $message, $headers = '', $attachments = array()) 39 40 { 41 TranslatePress::hackTranslatePress(); 40 42 // Compact the input, apply the filters, and extract them back out 41 43 … … 103 105 104 106 switch (strtolower($name)) { 105 // Mainly for legacy -- process a From: header if it's there107 // Mainly for legacy -- process a From: header if it's there 106 108 case 'from': 107 109 $bracket_pos = strpos($content, '<'); … … 118 120 $from_email = trim($from_email); 119 121 120 // Avoid setting an empty $from_email.122 // Avoid setting an empty $from_email. 121 123 } elseif ('' !== trim($content)) { 122 124 $from_email = trim($content); … … 138 140 } 139 141 140 // Avoid setting an empty $content_type.142 // Avoid setting an empty $content_type. 141 143 } elseif ('' !== trim($content)) { 142 144 $content_type = trim($content); -
wappointment/trunk/app/Validators/HttpRequest/BookingAdmin.php
r2807195 r2874788 12 12 $this->validationRulesArray['email'] = 'email'; 13 13 } 14 $this->validationRulesArray = $this->applyMoreRules(); 14 if (!$this->getService()->isGroup() && empty($inputs['clientid'])) { 15 $this->validationRulesArray = $this->applyMoreRules(); 16 } 15 17 if (!empty($inputs['clientid'])) { 16 18 unset($this->validationRulesArray['email']); -
wappointment/trunk/app/WP/Database.php
r2554748 r2874788 30 30 } 31 31 } 32 $this->charset = $wpdb->charset; 33 $this->collate = $wpdb->collate; 32 $charset_collate = $wpdb->determine_charset($wpdb->charset, $wpdb->collate); 33 $this->charset = !empty($charset_collate['charset']) ? $charset_collate['charset'] : $wpdb->charset; 34 $this->collate = !empty($charset_collate['collate']) ? $charset_collate['collate'] : (!empty($wpdb->collate) ? $wpdb->collate : 'utf8mb4_unicode_ci'); 34 35 } 35 36 public function getAltPort() -
wappointment/trunk/database/migrations/2018_07_01_000001_create_jobs_table.php
r2356382 r2874788 16 16 Capsule::schema()->create(Database::$prefix_self . '_jobs', function ($table) { 17 17 $table->bigIncrements('id'); 18 $table->string('queue' )->nullable();18 $table->string('queue', 25)->nullable(); 19 19 $table->longText('payload'); 20 20 $table->unsignedInteger('appointment_id')->nullable(); … … 28 28 29 29 Capsule::schema()->table(Database::$prefix_self . '_jobs', function ($table) { 30 $table->string('queue', 25)->nullable()->change();31 30 $table->index(['queue', 'reserved_at']); 32 31 }); -
wappointment/trunk/dist/manifest.json
r2807115 r2874788 3 3 "MainStyle.js": "MainStyle.2ff85ec05f1d6777122e.bundle.js", 4 4 "VueTelInput.js": "VueTelInput.db54d74eedf67e3f5424.bundle.js", 5 "WapImage.js": "WapImage. 7862fe1cee429fe91413.bundle.js",5 "WapImage.js": "WapImage.edd74ffda296850a901b.bundle.js", 6 6 "appFawesome.js": "appFawesome.4e2ad45bee468cf2e01a.bundle.js", 7 7 "flags.png": "9c96e0ed7093c095fd33870329282962.png", 8 8 "flags@2x.png": "f2c77a6b7e26ff160fdb4193b383b1ea.png", 9 "front.js": "front. 1430e6601f71edaa1b0e.bundle.js",9 "front.js": "front.e21a8b22b46724d79d9b.bundle.js", 10 10 "group-addons-group-calendar-group-calendars-manage-group-settings-group-wizard.js": "group-addons-group-calendar-group-calendars-manage-group-settings-group-wizard.61e7d7f6f03e8c0ded71.bundle.js", 11 "group-addons.js": "group-addons. 62f7f338dceaa556b4e7.bundle.js",11 "group-addons.js": "group-addons.92bbdf5b3c572d267822.bundle.js", 12 12 "group-bookingform-group-viewingappointment.js": "group-bookingform-group-viewingappointment.537ed95561ac3b785fae.bundle.js", 13 "group-bookingform.js": "group-bookingform. 3130e8835fde0c98aacf.bundle.js",14 "group-calendar.js": "group-calendar. e0bb82c52e4a930f6057.bundle.js",13 "group-bookingform.js": "group-bookingform.4df6b50bfdd724e88abe.bundle.js", 14 "group-calendar.js": "group-calendar.8ca29d9eb8bde37e2049.bundle.js", 15 15 "group-calendars-manage.js": "group-calendars-manage.1a72e1d9944896349806.bundle.js", 16 16 "group-clients.js": "group-clients.31cd2afe52417c760f44.bundle.js", … … 18 18 "group-service-package.js": "group-service-package.e39f759ef56a94e675d4.bundle.js", 19 19 "group-service.js": "group-service.23b729da5c2c1cca3810.bundle.js", 20 "group-settings.js": "group-settings. fd826bd63bca4708f0dc.bundle.js",21 "group-viewingappointment.js": "group-viewingappointment. cfa239f0bbf94e9a8cdc.bundle.js",20 "group-settings.js": "group-settings.cf3729aad89ac6e8a71f.bundle.js", 21 "group-viewingappointment.js": "group-viewingappointment.535315325e97b1f5ed7c.bundle.js", 22 22 "group-wizard.js": "group-wizard.3d7300e49525080102ea.bundle.js", 23 "group-wizard2.js": "group-wizard2. 0265f97a9c14df72649c.bundle.js",23 "group-wizard2.js": "group-wizard2.b726ddef16c94a4e0942.bundle.js", 24 24 "group-wizardinit.js": "group-wizardinit.f46cddbac82be6779009.bundle.js", 25 "main.js": "main. 1f25ff0960ad6f3dc300.bundle.js",25 "main.js": "main.906fddc02313f538209c.bundle.js", 26 26 "style-flag.js": "style-flag.216cbd8bd046bf27d58a.bundle.js", 27 27 "toggle-off.svg": "e500252a27eb6af0b0c0853d856b3647.svg", 28 28 "vendors-MainStyle.js": "vendors-MainStyle.4cb0b08feca57dfef1af.bundle.js", 29 29 "vendors-VueTelInput.js": "vendors-VueTelInput.963bd74bb64bfadac67a.bundle.js", 30 "vendors-appFawesome-group-addons-group-settings.js": "vendors-appFawesome-group-addons-group-settings. 3526a613f1c039ad8c51.bundle.js",30 "vendors-appFawesome-group-addons-group-settings.js": "vendors-appFawesome-group-addons-group-settings.ec572a4e672a6afb1a95.bundle.js", 31 31 "vendors-appFawesome.js": "vendors-appFawesome.da7bfb1947fa4220ddbf.bundle.js", 32 "vendors-group-addons-group-bookingform-group-calendar-group-settings.js": "vendors-group-addons-group-bookingform-group-calendar-group-settings.e1b6846f51b17a373f16.bundle.js", 32 33 "vendors-group-addons-group-calendar-group-calendars-manage-group-settings-group-wizard.js": "vendors-group-addons-group-calendar-group-calendars-manage-group-settings-group-wizard.7f287232e60ec4fb8568.bundle.js", 33 "vendors-group-addons-group-calendar-group-settings.js": "vendors-group-addons-group-calendar-group-settings.45a20e4931e221fa6bd1.bundle.js",34 34 "vendors-group-bookingform-group-viewingappointment.js": "vendors-group-bookingform-group-viewingappointment.fc4462bd18462511fca3.bundle.js", 35 "vendors-group-calendar.js": "vendors-group-calendar. 4a0c310530759f35589b.bundle.js",35 "vendors-group-calendar.js": "vendors-group-calendar.04e9c008dc4e67c29964.bundle.js", 36 36 "wappo-error.js": "wappo-error.a957e3f87eed42a1e694.bundle.js", 37 37 "wappo-notif.js": "wappo-notif.247dea9fedcb9fa57c10.bundle.js" -
wappointment/trunk/index.php
r2807195 r2874788 7 7 /** 8 8 * Plugin Name: Wappointment 9 * Version: 2.4.1 39 * Version: 2.4.15 10 10 * Plugin URI: https://wappointment.com 11 11 * Description: Clients quickly book a meeting with you on Zoom , GoogleMeet , the phone or at your office … … 14 14 * Requires at least: 4.7 15 15 * Requires PHP: 7.0 16 * Tested up to: 6. 016 * Tested up to: 6.1 17 17 * 18 18 * Text Domain: wappointment … … 33 33 */ 34 34 35 define('WAPPOINTMENT_VERSION', '2.4.1 3');35 define('WAPPOINTMENT_VERSION', '2.4.15'); 36 36 define('WAPPOINTMENT_PHP_MIN', '7.0.0'); 37 37 define('WAPPOINTMENT_NAME', 'Wappointment'); -
wappointment/trunk/readme.txt
r2807195 r2874788 3 3 Tags: appointment scheduling, appointment booking, booking calendar, booking form, zoom 4 4 Requires at least: 4.7 5 Tested up to: 6. 05 Tested up to: 6.1 6 6 Requires PHP: 7.0 7 Stable tag: 2.4.1 37 Stable tag: 2.4.15 8 8 License: GPLv2 or later 9 9 License URI: http://www.gnu.org/licenses/gpl-2.0.html … … 99 99 == Frequently Asked Questions == 100 100 101 **Why do reminders go out late sometimes?** 102 103 WordPress by default uses an unreliable system to process background scheduled tasks; but we have created a guide to help you [make your site faster and more reliable](https://wappointment.com/docs/wp-cron?utm_source=wp-repo&utm_medium=link&utm_campaign=readme) 104 105 **Why does nobody receive my confirmations or reminders emails?** 106 107 Your emails most likely go straight to SPAM or don't event reach your inbox. Check this guide to [improve your emails' deliverability](https://wappointment.com/docs/configure-email?utm_source=wp-repo&utm_medium=link&utm_campaign=readme) 108 101 109 **Can I change text and colors of the booking form?** 102 110 … … 114 122 115 123 Every 5 minutes we download your calendar and check for changes, we don't do it more often as it could be a heavy task depending on how big is your calendar. 116 117 **Why do reminders go out late sometimes?**118 119 It depends on your website's configuration. The most reliable solution is to setup a cron task manually on your server(check your host's documentation) and disable WP cron (DISABLE_WP_CRON)120 121 **Why does nobody receive my confirmations or reminders emails?**122 123 Your emails most likely go straight to SPAM or don't event reach your inbox. *Change the email sending method* in *Wappointment > Settings > Confirmations & Reminders* just go for the easy and reliable solution, [create a free account at SendGrid (100emails/day are free)](https://signup.sendgrid.com/) and configure Wappointment with the *SendGrid API*124 124 125 125 **I need 10 minutes to prepare between 2 appointments, how do I proceed?** … … 148 148 149 149 == Changelog == 150 151 = 2.4.15 - 2023-03-04 = 152 * added reschedule from backend improved 153 * added multilang emails for "TranslatePress for Multiples languages sites" 154 * fixed dailight saving time bug 155 * fixed issue validation when creating appointment from backend 156 * fixed chrome issue 157 * fixed remove reminders from pending emails 158 * fixed custom field in confirmation email 159 * fixed chilean pesos formatting 160 * fixed set collate with default value 161 * improved .ics import recognize more recurrence 150 162 151 163 = 2.4.13 - 2022-10-30 = -
wappointment/trunk/vendor/autoload.php
r2807195 r2874788 10 10 require_once __DIR__ . '/composer/autoload_real.php'; 11 11 12 return ComposerAutoloaderInit 3b2949d8d0a6d32a5d8172a74feaa95a::getLoader();12 return ComposerAutoloaderInit802320a9b5ba85a72fedd4d0da64226f::getLoader(); -
wappointment/trunk/vendor/composer/autoload_real.php
r2807195 r2874788 3 3 // autoload_real.php @generated by Composer 4 4 5 class ComposerAutoloaderInit 3b2949d8d0a6d32a5d8172a74feaa95a5 class ComposerAutoloaderInit802320a9b5ba85a72fedd4d0da64226f 6 6 { 7 7 private static $loader; … … 25 25 require __DIR__ . '/platform_check.php'; 26 26 27 spl_autoload_register(array('ComposerAutoloaderInit 3b2949d8d0a6d32a5d8172a74feaa95a', 'loadClassLoader'), true, true);27 spl_autoload_register(array('ComposerAutoloaderInit802320a9b5ba85a72fedd4d0da64226f', 'loadClassLoader'), true, true); 28 28 self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__)); 29 spl_autoload_unregister(array('ComposerAutoloaderInit 3b2949d8d0a6d32a5d8172a74feaa95a', 'loadClassLoader'));29 spl_autoload_unregister(array('ComposerAutoloaderInit802320a9b5ba85a72fedd4d0da64226f', 'loadClassLoader')); 30 30 31 31 require __DIR__ . '/autoload_static.php'; 32 call_user_func(\Composer\Autoload\ComposerStaticInit 3b2949d8d0a6d32a5d8172a74feaa95a::getInitializer($loader));32 call_user_func(\Composer\Autoload\ComposerStaticInit802320a9b5ba85a72fedd4d0da64226f::getInitializer($loader)); 33 33 34 34 $loader->register(true); 35 35 36 $includeFiles = \Composer\Autoload\ComposerStaticInit 3b2949d8d0a6d32a5d8172a74feaa95a::$files;36 $includeFiles = \Composer\Autoload\ComposerStaticInit802320a9b5ba85a72fedd4d0da64226f::$files; 37 37 foreach ($includeFiles as $fileIdentifier => $file) { 38 composerRequire 3b2949d8d0a6d32a5d8172a74feaa95a($fileIdentifier, $file);38 composerRequire802320a9b5ba85a72fedd4d0da64226f($fileIdentifier, $file); 39 39 } 40 40 … … 48 48 * @return void 49 49 */ 50 function composerRequire 3b2949d8d0a6d32a5d8172a74feaa95a($fileIdentifier, $file)50 function composerRequire802320a9b5ba85a72fedd4d0da64226f($fileIdentifier, $file) 51 51 { 52 52 if (empty($GLOBALS['__wappo_autoload_files'][$fileIdentifier])) { -
wappointment/trunk/vendor/composer/autoload_static.php
r2807195 r2874788 5 5 namespace Composer\Autoload; 6 6 7 class ComposerStaticInit 3b2949d8d0a6d32a5d8172a74feaa95a7 class ComposerStaticInit802320a9b5ba85a72fedd4d0da64226f 8 8 { 9 9 public static $files = array ( … … 266 266 { 267 267 return \Closure::bind(function () use ($loader) { 268 $loader->prefixLengthsPsr4 = ComposerStaticInit 3b2949d8d0a6d32a5d8172a74feaa95a::$prefixLengthsPsr4;269 $loader->prefixDirsPsr4 = ComposerStaticInit 3b2949d8d0a6d32a5d8172a74feaa95a::$prefixDirsPsr4;270 $loader->classMap = ComposerStaticInit 3b2949d8d0a6d32a5d8172a74feaa95a::$classMap;268 $loader->prefixLengthsPsr4 = ComposerStaticInit802320a9b5ba85a72fedd4d0da64226f::$prefixLengthsPsr4; 269 $loader->prefixDirsPsr4 = ComposerStaticInit802320a9b5ba85a72fedd4d0da64226f::$prefixDirsPsr4; 270 $loader->classMap = ComposerStaticInit802320a9b5ba85a72fedd4d0da64226f::$classMap; 271 271 272 272 }, null, ClassLoader::class); -
wappointment/trunk/vendor/composer/installed.php
r2807195 r2874788 3 3 namespace WappoVendor; 4 4 5 return array('root' => array('name' => 'wappointment/wappointment', 'pretty_version' => 'dev-master', 'version' => 'dev-master', 'reference' => ' 488acbc0510678318ec035bdd81673c9edb15768', 'type' => 'worpdress-plugin', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev' => \false), 'versions' => array('doctrine/annotations' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '54cacc9b81758b14e3ce750f205a393d52339e97', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/annotations', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/cache' => array('pretty_version' => 'v1.6.2', 'version' => '1.6.2.0', 'reference' => 'eb152c5100571c7a45470ff2a35095ab3f3b900b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/cache', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/collections' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1a4fb7e902202c33cce8c55989b945612943c2ba', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/collections', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/common' => array('pretty_version' => 'v2.7.3', 'version' => '2.7.3.0', 'reference' => '4acb8f89626baafede6ee5475bc5844096eba8a9', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/common', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/dbal' => array('pretty_version' => 'v2.5.13', 'version' => '2.5.13.0', 'reference' => '729340d8d1eec8f01bff708e12e449a3415af873', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/dbal', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => 'v1.2.0', 'version' => '1.2.0.0', 'reference' => 'e11d84c6e018beedd929cff5220969a3c6d1d462', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/lexer' => array('pretty_version' => '1.0.2', 'version' => '1.0.2.0', 'reference' => '1febd6c3ef84253d7c815bed85fc622ad207a9f8', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/lexer', 'aliases' => array(), 'dev_requirement' => \false), 'egulias/email-validator' => array('pretty_version' => '2.1.14', 'version' => '2.1.14.0', 'reference' => 'c4b8d12921999d8a561004371701dbc2e05b5ece', 'type' => 'library', 'install_path' => __DIR__ . '/../egulias/email-validator', 'aliases' => array(), 'dev_requirement' => \false), 'guzzlehttp/guzzle' => array('pretty_version' => '6.5.2', 'version' => '6.5.2.0', 'reference' => '43ece0e75098b7ecd8d13918293029e555a50f82', 'type' => 'library', 'install_path' => __DIR__ . '/../guzzlehttp/guzzle', 'aliases' => array(), 'dev_requirement' => \false), 'guzzlehttp/promises' => array('pretty_version' => 'v1.3.1', 'version' => '1.3.1.0', 'reference' => 'a59da6cf61d80060647ff4d3eb2c03a2bc694646', 'type' => 'library', 'install_path' => __DIR__ . '/../guzzlehttp/promises', 'aliases' => array(), 'dev_requirement' => \false), 'guzzlehttp/psr7' => array('pretty_version' => '1.6.1', 'version' => '1.6.1.0', 'reference' => '239400de7a173fe9901b9ac7c06497751f00727a', 'type' => 'library', 'install_path' => __DIR__ . '/../guzzlehttp/psr7', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/container' => array('pretty_version' => 'v5.5.44', 'version' => '5.5.44.0', 'reference' => '7917f4c86ecf7f4d0efcfd83248ad3e301e08858', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/container', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/contracts' => array('pretty_version' => 'v5.5.44', 'version' => '5.5.44.0', 'reference' => 'b2a62b4a85485fca9cf5fa61a933ad64006ff528', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/database' => array('pretty_version' => 'v5.5.44', 'version' => '5.5.44.0', 'reference' => 'f5403b3dd774eb89ff0ef5e633e57458c3dc537d', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/database', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/filesystem' => array('pretty_version' => 'v5.5.44', 'version' => '5.5.44.0', 'reference' => 'b8c0e36d47cfde3a0727bc6e2057775ff98a1bcd', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/http' => array('pretty_version' => 'v5.5.44', 'version' => '5.5.44.0', 'reference' => 'ee799d1dcacd7fccfc665b0b0437bfbae784306a', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/http', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/pagination' => array('pretty_version' => 'v5.5.44', 'version' => '5.5.44.0', 'reference' => '686b121987164d161fe3440f407014ad026bdbbc', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/pagination', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/session' => array('pretty_version' => 'v5.5.44', 'version' => '5.5.44.0', 'reference' => '248422140e7898ae0d5a4ed42e6e314c52677814', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/session', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/support' => array('pretty_version' => 'v5.5.44', 'version' => '5.5.44.0', 'reference' => '5c405512d75dcaf5d37791badce02d86ed8e4bc4', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/support', 'aliases' => array(), 'dev_requirement' => \false), 'nesbot/carbon' => array('pretty_version' => '1.37.1', 'version' => '1.37.1.0', 'reference' => '5be4fdf97076a685b23efdedfc2b73ad0c5eab70', 'type' => 'library', 'install_path' => __DIR__ . '/../nesbot/carbon', 'aliases' => array(), 'dev_requirement' => \false), 'paragonie/random_compat' => array('pretty_version' => 'v9.99.99', 'version' => '9.99.99.0', 'reference' => '84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95', 'type' => 'library', 'install_path' => __DIR__ . '/../paragonie/random_compat', 'aliases' => array(), 'dev_requirement' => \false), 'pelago/emogrifier' => array('pretty_version' => 'v3.1.0', 'version' => '3.1.0.0', 'reference' => 'f6a5c7d44612d86c3901c93f1592f5440e6b2cd8', 'type' => 'library', 'install_path' => __DIR__ . '/../pelago/emogrifier', 'aliases' => array(), 'dev_requirement' => \false), 'psr/container' => array('pretty_version' => '1.0.0', 'version' => '1.0.0.0', 'reference' => 'b7ce3b176482dbbc1245ebf52b181af44c2cf55f', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/container', 'aliases' => array(), 'dev_requirement' => \false), 'psr/http-message' => array('pretty_version' => '1.0.1', 'version' => '1.0.1.0', 'reference' => 'f6561bf28d520154e4b0ec72be95418abe6d9363', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/http-message', 'aliases' => array(), 'dev_requirement' => \false), 'psr/http-message-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0')), 'psr/log' => array('pretty_version' => '1.1.3', 'version' => '1.1.3.0', 'reference' => '0f73288fd15629204f9d42b7055f72dacbe811fc', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/log', 'aliases' => array(), 'dev_requirement' => \false), 'psr/log-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0')), 'psr/simple-cache' => array('pretty_version' => '1.0.1', 'version' => '1.0.1.0', 'reference' => '408d5eafb83c57f6365a3ca330ff23aa4a5fa39b', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/simple-cache', 'aliases' => array(), 'dev_requirement' => \false), 'rakit/validation' => array('pretty_version' => 'v0.18.2', 'version' => '0.18.2.0', 'reference' => '2d431c70f0fed550f3962dfc94ffe78eabdada66', 'type' => 'library', 'install_path' => __DIR__ . '/../rakit/validation', 'aliases' => array(), 'dev_requirement' => \false), 'ralouphie/getallheaders' => array('pretty_version' => '3.0.3', 'version' => '3.0.3.0', 'reference' => '120b605dfeb996808c31b6477290a714d356e822', 'type' => 'library', 'install_path' => __DIR__ . '/../ralouphie/getallheaders', 'aliases' => array(), 'dev_requirement' => \false), 'sabre/uri' => array('pretty_version' => '2.1.3', 'version' => '2.1.3.0', 'reference' => '18f454324f371cbcabdad3d0d3755b4b0182095d', 'type' => 'library', 'install_path' => __DIR__ . '/../sabre/uri', 'aliases' => array(), 'dev_requirement' => \false), 'sabre/vobject' => array('pretty_version' => '4.2.2', 'version' => '4.2.2.0', 'reference' => '449616b2d45b95c8973975de23f34a3d14f63b4b', 'type' => 'library', 'install_path' => __DIR__ . '/../sabre/vobject', 'aliases' => array(), 'dev_requirement' => \false), 'sabre/xml' => array('pretty_version' => '2.1.3', 'version' => '2.1.3.0', 'reference' => 'f08a58f57e2b0d7df769a432756aa371417ab9eb', 'type' => 'library', 'install_path' => __DIR__ . '/../sabre/xml', 'aliases' => array(), 'dev_requirement' => \false), 'soundasleep/html2text' => array('pretty_version' => '0.5.0', 'version' => '0.5.0.0', 'reference' => 'cdb89f6ffa2c4cc78f8ed9ea6ee0594a9133ccad', 'type' => 'library', 'install_path' => __DIR__ . '/../soundasleep/html2text', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/css-selector' => array('pretty_version' => 'v3.4.39', 'version' => '3.4.39.0', 'reference' => '9ccf6e78077a3fc1596e6c7b5958008965a11518', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/css-selector', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/debug' => array('pretty_version' => 'v3.4.39', 'version' => '3.4.39.0', 'reference' => 'ce9f3b5e8e1c50f849fded59b3a1b6bc3562ec29', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/debug', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/event-dispatcher' => array('pretty_version' => 'v3.4.39', 'version' => '3.4.39.0', 'reference' => '9d4e22943b73acc1ba50595b7de1a01fe9dbad48', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/event-dispatcher', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v3.4.39', 'version' => '3.4.39.0', 'reference' => '5ec813ccafa8164ef21757e8c725d3a57da59200', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/http-foundation' => array('pretty_version' => 'v3.4.39', 'version' => '3.4.39.0', 'reference' => 'a8833c56f6a4abcf17a319d830d71fdb0ba93675', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/http-foundation', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/http-kernel' => array('pretty_version' => 'v3.4.39', 'version' => '3.4.39.0', 'reference' => 'c15b5acab571224b1bf792692ff2ad63239081fe', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/http-kernel', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('pretty_version' => 'v1.15.0', 'version' => '1.15.0.0', 'reference' => '4719fa9c18b0464d399f1a63bf624b42b6fa8d14', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-ctype', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-mbstring' => array('pretty_version' => 'v1.15.0', 'version' => '1.15.0.0', 'reference' => '81ffd3a9c6d707be22e3012b827de1c9775fc5ac', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-mbstring', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-php56' => array('pretty_version' => 'v1.15.0', 'version' => '1.15.0.0', 'reference' => 'd51ec491c8ddceae7dca8dd6c7e30428f543f37d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php56', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-php70' => array('pretty_version' => 'v1.15.0', 'version' => '1.15.0.0', 'reference' => '2a18e37a489803559284416df58c71ccebe50bf0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php70', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-util' => array('pretty_version' => 'v1.15.0', 'version' => '1.15.0.0', 'reference' => 'd8e76c104127675d0ea3df3be0f2ae24a8619027', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-util', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/translation' => array('pretty_version' => 'v3.4.39', 'version' => '3.4.39.0', 'reference' => 'e06ca83b2682eba25854b97a8a9af22c1da491f5', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/translation', 'aliases' => array(), 'dev_requirement' => \false), 'tightenco/collect' => array('dev_requirement' => \false, 'replaced' => array(0 => '<5.5.33')), 'true/punycode' => array('pretty_version' => 'v2.1.1', 'version' => '2.1.1.0', 'reference' => 'a4d0c11a36dd7f4e7cd7096076cab6d3378a071e', 'type' => 'library', 'install_path' => __DIR__ . '/../true/punycode', 'aliases' => array(), 'dev_requirement' => \false), 'wappointment/wappointment' => array('pretty_version' => 'dev-master', 'version' => 'dev-master', 'reference' => '488acbc0510678318ec035bdd81673c9edb15768', 'type' => 'worpdress-plugin', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false)));5 return array('root' => array('name' => 'wappointment/wappointment', 'pretty_version' => 'dev-master', 'version' => 'dev-master', 'reference' => '26466126e19bf755c486954ce0a87ec1ced63ca7', 'type' => 'worpdress-plugin', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev' => \false), 'versions' => array('doctrine/annotations' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '54cacc9b81758b14e3ce750f205a393d52339e97', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/annotations', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/cache' => array('pretty_version' => 'v1.6.2', 'version' => '1.6.2.0', 'reference' => 'eb152c5100571c7a45470ff2a35095ab3f3b900b', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/cache', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/collections' => array('pretty_version' => 'v1.4.0', 'version' => '1.4.0.0', 'reference' => '1a4fb7e902202c33cce8c55989b945612943c2ba', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/collections', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/common' => array('pretty_version' => 'v2.7.3', 'version' => '2.7.3.0', 'reference' => '4acb8f89626baafede6ee5475bc5844096eba8a9', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/common', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/dbal' => array('pretty_version' => 'v2.5.13', 'version' => '2.5.13.0', 'reference' => '729340d8d1eec8f01bff708e12e449a3415af873', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/dbal', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/inflector' => array('pretty_version' => 'v1.2.0', 'version' => '1.2.0.0', 'reference' => 'e11d84c6e018beedd929cff5220969a3c6d1d462', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/inflector', 'aliases' => array(), 'dev_requirement' => \false), 'doctrine/lexer' => array('pretty_version' => '1.0.2', 'version' => '1.0.2.0', 'reference' => '1febd6c3ef84253d7c815bed85fc622ad207a9f8', 'type' => 'library', 'install_path' => __DIR__ . '/../doctrine/lexer', 'aliases' => array(), 'dev_requirement' => \false), 'egulias/email-validator' => array('pretty_version' => '2.1.14', 'version' => '2.1.14.0', 'reference' => 'c4b8d12921999d8a561004371701dbc2e05b5ece', 'type' => 'library', 'install_path' => __DIR__ . '/../egulias/email-validator', 'aliases' => array(), 'dev_requirement' => \false), 'guzzlehttp/guzzle' => array('pretty_version' => '6.5.2', 'version' => '6.5.2.0', 'reference' => '43ece0e75098b7ecd8d13918293029e555a50f82', 'type' => 'library', 'install_path' => __DIR__ . '/../guzzlehttp/guzzle', 'aliases' => array(), 'dev_requirement' => \false), 'guzzlehttp/promises' => array('pretty_version' => 'v1.3.1', 'version' => '1.3.1.0', 'reference' => 'a59da6cf61d80060647ff4d3eb2c03a2bc694646', 'type' => 'library', 'install_path' => __DIR__ . '/../guzzlehttp/promises', 'aliases' => array(), 'dev_requirement' => \false), 'guzzlehttp/psr7' => array('pretty_version' => '1.6.1', 'version' => '1.6.1.0', 'reference' => '239400de7a173fe9901b9ac7c06497751f00727a', 'type' => 'library', 'install_path' => __DIR__ . '/../guzzlehttp/psr7', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/container' => array('pretty_version' => 'v5.5.44', 'version' => '5.5.44.0', 'reference' => '7917f4c86ecf7f4d0efcfd83248ad3e301e08858', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/container', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/contracts' => array('pretty_version' => 'v5.5.44', 'version' => '5.5.44.0', 'reference' => 'b2a62b4a85485fca9cf5fa61a933ad64006ff528', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/contracts', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/database' => array('pretty_version' => 'v5.5.44', 'version' => '5.5.44.0', 'reference' => 'f5403b3dd774eb89ff0ef5e633e57458c3dc537d', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/database', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/filesystem' => array('pretty_version' => 'v5.5.44', 'version' => '5.5.44.0', 'reference' => 'b8c0e36d47cfde3a0727bc6e2057775ff98a1bcd', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/filesystem', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/http' => array('pretty_version' => 'v5.5.44', 'version' => '5.5.44.0', 'reference' => 'ee799d1dcacd7fccfc665b0b0437bfbae784306a', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/http', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/pagination' => array('pretty_version' => 'v5.5.44', 'version' => '5.5.44.0', 'reference' => '686b121987164d161fe3440f407014ad026bdbbc', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/pagination', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/session' => array('pretty_version' => 'v5.5.44', 'version' => '5.5.44.0', 'reference' => '248422140e7898ae0d5a4ed42e6e314c52677814', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/session', 'aliases' => array(), 'dev_requirement' => \false), 'illuminate/support' => array('pretty_version' => 'v5.5.44', 'version' => '5.5.44.0', 'reference' => '5c405512d75dcaf5d37791badce02d86ed8e4bc4', 'type' => 'library', 'install_path' => __DIR__ . '/../illuminate/support', 'aliases' => array(), 'dev_requirement' => \false), 'nesbot/carbon' => array('pretty_version' => '1.37.1', 'version' => '1.37.1.0', 'reference' => '5be4fdf97076a685b23efdedfc2b73ad0c5eab70', 'type' => 'library', 'install_path' => __DIR__ . '/../nesbot/carbon', 'aliases' => array(), 'dev_requirement' => \false), 'paragonie/random_compat' => array('pretty_version' => 'v9.99.99', 'version' => '9.99.99.0', 'reference' => '84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95', 'type' => 'library', 'install_path' => __DIR__ . '/../paragonie/random_compat', 'aliases' => array(), 'dev_requirement' => \false), 'pelago/emogrifier' => array('pretty_version' => 'v3.1.0', 'version' => '3.1.0.0', 'reference' => 'f6a5c7d44612d86c3901c93f1592f5440e6b2cd8', 'type' => 'library', 'install_path' => __DIR__ . '/../pelago/emogrifier', 'aliases' => array(), 'dev_requirement' => \false), 'psr/container' => array('pretty_version' => '1.0.0', 'version' => '1.0.0.0', 'reference' => 'b7ce3b176482dbbc1245ebf52b181af44c2cf55f', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/container', 'aliases' => array(), 'dev_requirement' => \false), 'psr/http-message' => array('pretty_version' => '1.0.1', 'version' => '1.0.1.0', 'reference' => 'f6561bf28d520154e4b0ec72be95418abe6d9363', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/http-message', 'aliases' => array(), 'dev_requirement' => \false), 'psr/http-message-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0')), 'psr/log' => array('pretty_version' => '1.1.3', 'version' => '1.1.3.0', 'reference' => '0f73288fd15629204f9d42b7055f72dacbe811fc', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/log', 'aliases' => array(), 'dev_requirement' => \false), 'psr/log-implementation' => array('dev_requirement' => \false, 'provided' => array(0 => '1.0')), 'psr/simple-cache' => array('pretty_version' => '1.0.1', 'version' => '1.0.1.0', 'reference' => '408d5eafb83c57f6365a3ca330ff23aa4a5fa39b', 'type' => 'library', 'install_path' => __DIR__ . '/../psr/simple-cache', 'aliases' => array(), 'dev_requirement' => \false), 'rakit/validation' => array('pretty_version' => 'v0.18.2', 'version' => '0.18.2.0', 'reference' => '2d431c70f0fed550f3962dfc94ffe78eabdada66', 'type' => 'library', 'install_path' => __DIR__ . '/../rakit/validation', 'aliases' => array(), 'dev_requirement' => \false), 'ralouphie/getallheaders' => array('pretty_version' => '3.0.3', 'version' => '3.0.3.0', 'reference' => '120b605dfeb996808c31b6477290a714d356e822', 'type' => 'library', 'install_path' => __DIR__ . '/../ralouphie/getallheaders', 'aliases' => array(), 'dev_requirement' => \false), 'sabre/uri' => array('pretty_version' => '2.1.3', 'version' => '2.1.3.0', 'reference' => '18f454324f371cbcabdad3d0d3755b4b0182095d', 'type' => 'library', 'install_path' => __DIR__ . '/../sabre/uri', 'aliases' => array(), 'dev_requirement' => \false), 'sabre/vobject' => array('pretty_version' => '4.2.2', 'version' => '4.2.2.0', 'reference' => '449616b2d45b95c8973975de23f34a3d14f63b4b', 'type' => 'library', 'install_path' => __DIR__ . '/../sabre/vobject', 'aliases' => array(), 'dev_requirement' => \false), 'sabre/xml' => array('pretty_version' => '2.1.3', 'version' => '2.1.3.0', 'reference' => 'f08a58f57e2b0d7df769a432756aa371417ab9eb', 'type' => 'library', 'install_path' => __DIR__ . '/../sabre/xml', 'aliases' => array(), 'dev_requirement' => \false), 'soundasleep/html2text' => array('pretty_version' => '0.5.0', 'version' => '0.5.0.0', 'reference' => 'cdb89f6ffa2c4cc78f8ed9ea6ee0594a9133ccad', 'type' => 'library', 'install_path' => __DIR__ . '/../soundasleep/html2text', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/css-selector' => array('pretty_version' => 'v3.4.39', 'version' => '3.4.39.0', 'reference' => '9ccf6e78077a3fc1596e6c7b5958008965a11518', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/css-selector', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/debug' => array('pretty_version' => 'v3.4.39', 'version' => '3.4.39.0', 'reference' => 'ce9f3b5e8e1c50f849fded59b3a1b6bc3562ec29', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/debug', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/event-dispatcher' => array('pretty_version' => 'v3.4.39', 'version' => '3.4.39.0', 'reference' => '9d4e22943b73acc1ba50595b7de1a01fe9dbad48', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/event-dispatcher', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/finder' => array('pretty_version' => 'v3.4.39', 'version' => '3.4.39.0', 'reference' => '5ec813ccafa8164ef21757e8c725d3a57da59200', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/finder', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/http-foundation' => array('pretty_version' => 'v3.4.39', 'version' => '3.4.39.0', 'reference' => 'a8833c56f6a4abcf17a319d830d71fdb0ba93675', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/http-foundation', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/http-kernel' => array('pretty_version' => 'v3.4.39', 'version' => '3.4.39.0', 'reference' => 'c15b5acab571224b1bf792692ff2ad63239081fe', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/http-kernel', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-ctype' => array('pretty_version' => 'v1.15.0', 'version' => '1.15.0.0', 'reference' => '4719fa9c18b0464d399f1a63bf624b42b6fa8d14', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-ctype', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-mbstring' => array('pretty_version' => 'v1.15.0', 'version' => '1.15.0.0', 'reference' => '81ffd3a9c6d707be22e3012b827de1c9775fc5ac', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-mbstring', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-php56' => array('pretty_version' => 'v1.15.0', 'version' => '1.15.0.0', 'reference' => 'd51ec491c8ddceae7dca8dd6c7e30428f543f37d', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php56', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-php70' => array('pretty_version' => 'v1.15.0', 'version' => '1.15.0.0', 'reference' => '2a18e37a489803559284416df58c71ccebe50bf0', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-php70', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/polyfill-util' => array('pretty_version' => 'v1.15.0', 'version' => '1.15.0.0', 'reference' => 'd8e76c104127675d0ea3df3be0f2ae24a8619027', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/polyfill-util', 'aliases' => array(), 'dev_requirement' => \false), 'symfony/translation' => array('pretty_version' => 'v3.4.39', 'version' => '3.4.39.0', 'reference' => 'e06ca83b2682eba25854b97a8a9af22c1da491f5', 'type' => 'library', 'install_path' => __DIR__ . '/../symfony/translation', 'aliases' => array(), 'dev_requirement' => \false), 'tightenco/collect' => array('dev_requirement' => \false, 'replaced' => array(0 => '<5.5.33')), 'true/punycode' => array('pretty_version' => 'v2.1.1', 'version' => '2.1.1.0', 'reference' => 'a4d0c11a36dd7f4e7cd7096076cab6d3378a071e', 'type' => 'library', 'install_path' => __DIR__ . '/../true/punycode', 'aliases' => array(), 'dev_requirement' => \false), 'wappointment/wappointment' => array('pretty_version' => 'dev-master', 'version' => 'dev-master', 'reference' => '26466126e19bf755c486954ce0a87ec1ced63ca7', 'type' => 'worpdress-plugin', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false))); -
wappointment/trunk/wappointment.pot
r2807195 r2874788 1 # Copyright (C) 202 2Wappointment1 # Copyright (C) 2023 Wappointment 2 2 # This file is distributed under the same license as the Wappointment plugin. 3 3 msgid "" 4 4 msgstr "" 5 "Project-Id-Version: Wappointment 2.4.1 3\n"5 "Project-Id-Version: Wappointment 2.4.15\n" 6 6 "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wappointment-plugin\n" 7 7 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" … … 10 10 "Content-Type: text/plain; charset=UTF-8\n" 11 11 "Content-Transfer-Encoding: 8bit\n" 12 "POT-Creation-Date: 202 2-10-30T10:23:33+00:00\n"12 "POT-Creation-Date: 2023-03-04T18:09:35+00:00\n" 13 13 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 14 14 "X-Generator: WP-CLI 2.5.0\n" … … 29 29 msgstr "" 30 30 31 #: app/Addons/AbstractBoot.php:21 631 #: app/Addons/AbstractBoot.php:214 32 32 msgid "Your licence expired, you must renew in order to update to version %s" 33 33 msgstr "" 34 34 35 #: app/Addons/AbstractBoot.php:21 735 #: app/Addons/AbstractBoot.php:215 36 36 msgid "Renew now" 37 37 msgstr "" … … 40 40 #: app/Services/Appointment.php:83 41 41 #: app/Services/Appointment.php:266 42 #: app/Services/AppointmentNew.php:2 4943 #: app/Services/AppointmentNew.php:4 3242 #: app/Services/AppointmentNew.php:252 43 #: app/Services/AppointmentNew.php:449 44 44 msgid "Can't find appointment" 45 45 msgstr "" … … 72 72 msgstr "" 73 73 74 #: app/Controllers/BookingController.php:5 674 #: app/Controllers/BookingController.php:54 75 75 #: app/Controllers/ClientController.php:36 76 76 msgid "Appointment recorded" … … 89 89 #: app/Services/Appointment.php:78 90 90 #: app/Services/Appointment.php:260 91 #: app/Services/AppointmentNew.php:2 4192 #: app/Services/AppointmentNew.php:4 2691 #: app/Services/AppointmentNew.php:239 92 #: app/Services/AppointmentNew.php:443 93 93 msgid "Malformed parameter" 94 94 msgstr "" … … 126 126 msgstr "" 127 127 128 #: app/Controllers/EventsController.php: 30128 #: app/Controllers/EventsController.php:29 129 129 msgid "Cannot modify an appointment which doesn't belong to you" 130 130 msgstr "" 131 131 132 #: app/Controllers/EventsController.php:44 133 #: app/Controllers/EventsController.php:50 132 #: app/Controllers/EventsController.php:43 133 #: app/Controllers/EventsController.php:49 134 #: app/Controllers/EventsController.php:56 135 #: app/Controllers/EventsController.php:61 134 136 msgid "Appointment cancelled" 135 137 msgstr "" 136 138 137 #: app/Controllers/EventsController.php:46 139 #: app/Controllers/EventsController.php:45 140 #: app/Controllers/EventsController.php:58 138 141 msgid "Error deleting appointment" 139 142 msgstr "" 140 143 141 #: app/Controllers/EventsController.php:1 12144 #: app/Controllers/EventsController.php:123 142 145 msgid "Appointment confirmed" 143 146 msgstr "" 144 147 145 #: app/Controllers/EventsController.php:1 14148 #: app/Controllers/EventsController.php:125 146 149 msgid "Error confirming appointment" 147 150 msgstr "" … … 159 162 msgstr "" 160 163 161 #: app/Controllers/ReminderController.php:5 7164 #: app/Controllers/ReminderController.php:58 162 165 msgid "Reminder preview sent" 163 166 msgstr "" 164 167 165 #: app/Controllers/ReminderController.php: 59168 #: app/Controllers/ReminderController.php:60 166 169 msgid "Error sending" 167 170 msgstr "" … … 463 466 msgstr "" 464 467 465 #: app/Lists/translations_calendar.php: 3468 #: app/Lists/translations_calendar.php:4 466 469 msgid "This week" 467 470 msgstr "" 468 471 469 #: app/Lists/translations_calendar.php: 4472 #: app/Lists/translations_calendar.php:5 470 473 msgid "free slots" 471 474 msgstr "" 472 475 473 #: app/Lists/translations_calendar.php: 5476 #: app/Lists/translations_calendar.php:6 474 477 msgid "Choose an action" 475 478 msgstr "" 476 479 477 480 #. translators: %1$s - date start %2$s - date end. 478 #: app/Lists/translations_calendar.php: 7481 #: app/Lists/translations_calendar.php:8 479 482 msgid "From %1$s until %2$s" 480 483 msgstr "" 481 484 482 485 #. translators: %s - cbuffer value in minutes 483 #: app/Lists/translations_calendar.php: 9486 #: app/Lists/translations_calendar.php:10 484 487 msgid "includes %s min buffer" 485 488 msgstr "" 486 489 487 490 #. translators: %s - total slot. 488 #: app/Lists/translations_calendar.php:1 3491 #: app/Lists/translations_calendar.php:14 489 492 #: app/Lists/widget_settings.php:66 490 493 msgid "%s free slots" 491 494 msgstr "" 492 495 493 #: app/Lists/translations_calendar.php:1 4496 #: app/Lists/translations_calendar.php:15 494 497 msgid "Show free times" 495 498 msgstr "" 496 499 497 #: app/Lists/translations_calendar.php:1 5500 #: app/Lists/translations_calendar.php:16 498 501 msgid "Group event" 499 502 msgstr "" 500 503 501 #: app/Lists/translations_calendar.php:1 6504 #: app/Lists/translations_calendar.php:17 502 505 msgid "Event for multiple participants" 506 msgstr "" 507 508 #: app/Lists/translations_calendar.php:18 509 msgid "Do you really want to cancel" 510 msgstr "" 511 512 #: app/Lists/translations_calendar.php:19 513 msgid "Confirm that you are free?" 514 msgstr "" 515 516 #: app/Lists/translations_calendar.php:20 517 msgid "Click a time to select new start" 518 msgstr "" 519 520 #: app/Lists/translations_calendar.php:21 521 msgid "Confirm new start:" 522 msgstr "" 523 524 #: app/Lists/translations_calendar.php:22 525 msgid "Select another time" 526 msgstr "" 527 528 #: app/Lists/translations_calendar.php:23 529 msgid "Modify your Weekly Availability" 503 530 msgstr "" 504 531 … … 576 603 msgstr "" 577 604 578 #: app/Lists/translations_js_common.php: 3605 #: app/Lists/translations_js_common.php:4 579 606 msgid "Select or search timezone" 580 607 msgstr "" 581 608 582 #: app/Lists/translations_js_common.php: 4609 #: app/Lists/translations_js_common.php:5 583 610 msgid "timezones" 584 611 msgstr "" 585 612 586 #: app/Lists/translations_js_common.php: 6613 #: app/Lists/translations_js_common.php:7 587 614 msgid "Element is required" 588 615 msgstr "" 589 616 590 #: app/Lists/translations_js_common.php: 8617 #: app/Lists/translations_js_common.php:9 591 618 msgid "Select countries" 592 619 msgstr "" 593 620 594 #: app/Lists/translations_js_common.php: 9621 #: app/Lists/translations_js_common.php:10 595 622 msgid "Clear selection" 596 623 msgstr "" 597 624 598 #: app/Lists/translations_js_common.php:1 1625 #: app/Lists/translations_js_common.php:12 599 626 msgid "View" 600 627 msgstr "" 601 628 602 #: app/Lists/translations_js_common.php:1 2629 #: app/Lists/translations_js_common.php:13 603 630 msgid "Title" 604 631 msgstr "" 605 632 606 #: app/Lists/translations_js_common.php:13 633 #: app/Lists/translations_js_common.php:14 634 #: app/Lists/translations_js_common.php:45 635 msgid "Edit" 636 msgstr "" 637 638 #: app/Lists/translations_js_common.php:15 639 msgid "Slug" 640 msgstr "" 641 642 #: app/Lists/translations_js_common.php:16 643 msgid "Widget's settings" 644 msgstr "" 645 646 #: app/Lists/translations_js_common.php:17 647 msgid "Button Title" 648 msgstr "" 649 650 #: app/Lists/translations_js_common.php:18 651 msgid "Opens in a full screen popup" 652 msgstr "" 653 654 #: app/Lists/translations_js_common.php:19 655 msgid "Random auto-select" 656 msgstr "" 657 658 #: app/Lists/translations_js_common.php:20 659 msgid "Center" 660 msgstr "" 661 662 #: app/Lists/translations_js_common.php:21 663 msgid "Auto-open Calendar" 664 msgstr "" 665 666 #: app/Lists/translations_js_common.php:22 667 msgid "Full-width Calendar" 668 msgstr "" 669 670 #: app/Lists/translations_js_common.php:23 671 msgid "Week view" 672 msgstr "" 673 674 #: app/Lists/translations_js_common.php:24 675 msgid "Select staff first" 676 msgstr "" 677 678 #: app/Lists/translations_js_common.php:25 679 msgid "Preview" 680 msgstr "" 681 682 #: app/Lists/translations_js_common.php:26 683 msgid "Your booking page exists already!" 684 msgstr "" 685 686 #: app/Lists/translations_js_common.php:27 687 msgid "Insert the booking form in a new page, within an existing page or within a widget area" 688 msgstr "" 689 690 #: app/Lists/translations_js_common.php:28 691 msgid "Create a new page" 692 msgstr "" 693 694 #: app/Lists/translations_js_common.php:29 695 msgid "Using a Shortcode" 696 msgstr "" 697 698 #: app/Lists/translations_js_common.php:30 699 msgid "Using our Widget" 700 msgstr "" 701 702 #: app/Lists/translations_js_common.php:31 703 msgid "Your shortcode:" 704 msgstr "" 705 706 #: app/Lists/translations_js_common.php:32 707 msgid "How can I use this shortcode?" 708 msgstr "" 709 710 #: app/Lists/translations_js_common.php:33 711 msgid "Customize" 712 msgstr "" 713 714 #: app/Lists/translations_js_common.php:34 715 msgid "Insert" 716 msgstr "" 717 718 #: app/Lists/translations_js_common.php:35 719 msgid "Edit Text" 720 msgstr "" 721 722 #: app/Lists/translations_js_common.php:36 723 msgid "Edit Color" 724 msgstr "" 725 726 #: app/Lists/translations_js_common.php:37 727 msgid "General" 728 msgstr "" 729 730 #: app/Lists/translations_js_common.php:38 731 msgid "Step" 732 msgstr "" 733 734 #: app/Lists/translations_js_common.php:39 735 msgid "Edit more colors" 736 msgstr "" 737 738 #: app/Lists/translations_js_common.php:40 739 msgid "Primary Color" 740 msgstr "" 741 742 #: app/Lists/translations_js_common.php:42 743 msgid "Create" 744 msgstr "" 745 607 746 #: app/Lists/translations_js_common.php:43 608 msgid "Edit"609 msgstr ""610 611 #: app/Lists/translations_js_common.php:14612 msgid "Slug"613 msgstr ""614 615 #: app/Lists/translations_js_common.php:15616 msgid "Widget's settings"617 msgstr ""618 619 #: app/Lists/translations_js_common.php:16620 msgid "Button Title"621 msgstr ""622 623 #: app/Lists/translations_js_common.php:17624 msgid "Opens in a full screen popup"625 msgstr ""626 627 #: app/Lists/translations_js_common.php:18628 msgid "Random auto-select"629 msgstr ""630 631 #: app/Lists/translations_js_common.php:19632 msgid "Center"633 msgstr ""634 635 #: app/Lists/translations_js_common.php:20636 msgid "Auto-open Calendar"637 msgstr ""638 639 #: app/Lists/translations_js_common.php:21640 msgid "Full-width Calendar"641 msgstr ""642 643 #: app/Lists/translations_js_common.php:22644 msgid "Week view"645 msgstr ""646 647 #: app/Lists/translations_js_common.php:23648 msgid "Select staff first"649 msgstr ""650 651 #: app/Lists/translations_js_common.php:24652 msgid "Preview"653 msgstr ""654 655 #: app/Lists/translations_js_common.php:25656 msgid "Your booking page exists already!"657 msgstr ""658 659 #: app/Lists/translations_js_common.php:26660 msgid "Insert the booking form in a new page, within an existing page or within a widget area"661 msgstr ""662 663 #: app/Lists/translations_js_common.php:27664 msgid "Create a new page"665 msgstr ""666 667 #: app/Lists/translations_js_common.php:28668 msgid "Using a Shortcode"669 msgstr ""670 671 #: app/Lists/translations_js_common.php:29672 msgid "Using our Widget"673 msgstr ""674 675 #: app/Lists/translations_js_common.php:30676 msgid "Your shortcode:"677 msgstr ""678 679 #: app/Lists/translations_js_common.php:31680 msgid "How can I use this shortcode?"681 msgstr ""682 683 #: app/Lists/translations_js_common.php:32684 msgid "Customize"685 msgstr ""686 687 #: app/Lists/translations_js_common.php:33688 msgid "Insert"689 msgstr ""690 691 #: app/Lists/translations_js_common.php:34692 msgid "Edit Text"693 msgstr ""694 695 #: app/Lists/translations_js_common.php:35696 msgid "Edit Color"697 msgstr ""698 699 #: app/Lists/translations_js_common.php:36700 msgid "General"701 msgstr ""702 703 #: app/Lists/translations_js_common.php:37704 msgid "Step"705 msgstr ""706 707 #: app/Lists/translations_js_common.php:38708 msgid "Edit more colors"709 msgstr ""710 711 #: app/Lists/translations_js_common.php:40712 msgid "Create"713 msgstr ""714 715 #: app/Lists/translations_js_common.php:41716 747 msgid "Hide" 717 748 msgstr "" 718 749 719 #: app/Lists/translations_js_common.php:4 2720 #: app/Lists/translations_js_common.php: 68750 #: app/Lists/translations_js_common.php:44 751 #: app/Lists/translations_js_common.php:75 721 752 msgid "Save" 722 753 msgstr "" 723 754 724 #: app/Lists/translations_js_common.php:44 755 #: app/Lists/translations_js_common.php:46 756 msgid "Duplicate" 757 msgstr "" 758 759 #: app/Lists/translations_js_common.php:47 760 msgid "Translate" 761 msgstr "" 762 763 #: app/Lists/translations_js_common.php:48 764 msgid "Language" 765 msgstr "" 766 767 #: app/Lists/translations_js_common.php:49 725 768 msgid "Delete" 726 769 msgstr "" 727 770 728 #: app/Lists/translations_js_common.php: 45771 #: app/Lists/translations_js_common.php:50 729 772 msgid "Sort" 730 773 msgstr "" 731 774 732 #: app/Lists/translations_js_common.php: 46775 #: app/Lists/translations_js_common.php:51 733 776 #: app/Lists/translations_orders.php:6 734 777 #: app/Lists/widget_settings.php:114 735 778 #: app/Lists/widget_translations.php:12 736 #: app/Services/Settings.php:101 779 #: app/Services/Settings.php:102 780 #: app/Services/ViewsData.php:235 737 781 msgid "Cancel" 738 782 msgstr "" 739 783 740 #: app/Lists/translations_js_common.php: 47784 #: app/Lists/translations_js_common.php:52 741 785 #: app/Lists/widget_settings.php:83 742 786 #: app/Lists/widget_settings.php:115 … … 746 790 msgstr "" 747 791 748 #: app/Lists/translations_js_common.php: 48792 #: app/Lists/translations_js_common.php:53 749 793 msgid "Get Shortcode" 750 794 msgstr "" 751 795 752 #: app/Lists/translations_js_common.php: 49796 #: app/Lists/translations_js_common.php:54 753 797 #: app/Lists/translations_wizard.php:3 754 798 #: app/Lists/widget_settings.php:82 … … 756 800 msgstr "" 757 801 758 #: app/Lists/translations_js_common.php:5 0802 #: app/Lists/translations_js_common.php:55 759 803 msgid "No results found" 760 804 msgstr "" 761 805 762 #: app/Lists/translations_js_common.php:5 1806 #: app/Lists/translations_js_common.php:56 763 807 msgid "Clear" 764 808 msgstr "" 765 809 766 #: app/Lists/translations_js_common.php:5 2810 #: app/Lists/translations_js_common.php:57 767 811 msgid "Search" 768 812 msgstr "" 769 813 770 #: app/Lists/translations_js_common.php:5 3814 #: app/Lists/translations_js_common.php:58 771 815 msgid "Close" 772 816 msgstr "" 773 817 774 #: app/Lists/translations_js_common.php:5 4818 #: app/Lists/translations_js_common.php:59 775 819 msgid "Add" 776 820 msgstr "" 777 821 778 #: app/Lists/translations_js_common.php:56 822 #: app/Lists/translations_js_common.php:60 823 #: app/Lists/widget_settings.php:121 824 #: app/Lists/widget_translations.php:11 825 #: app/Services/Settings.php:101 826 msgid "Reschedule" 827 msgstr "" 828 829 #: app/Lists/translations_js_common.php:63 779 830 msgid "Hours" 780 831 msgstr "" 781 832 782 833 #. translators: %s - minutes 783 #: app/Lists/translations_js_common.php: 58834 #: app/Lists/translations_js_common.php:65 784 835 #: app/Models/Appointment/ManipulateDuration.php:27 785 836 msgid "%s min" … … 787 838 788 839 #. translators: %s - hours 789 #: app/Lists/translations_js_common.php:6 0840 #: app/Lists/translations_js_common.php:67 790 841 msgid "%sh" 791 842 msgstr "" 792 843 793 #: app/Lists/translations_js_common.php:6 1844 #: app/Lists/translations_js_common.php:68 794 845 msgid "Account Selection" 795 846 msgstr "" 796 847 797 #: app/Lists/translations_js_common.php:6 2848 #: app/Lists/translations_js_common.php:69 798 849 msgid "Select an account or enter an email to create a new one" 799 850 msgstr "" 800 851 801 #: app/Lists/translations_js_common.php: 63802 #: app/Lists/translations_settings.php: 4852 #: app/Lists/translations_js_common.php:70 853 #: app/Lists/translations_settings.php:5 803 854 #: app/WP/StaffHistory.php:80 804 855 msgid "Name" 805 856 msgstr "" 806 857 807 #: app/Lists/translations_js_common.php: 64858 #: app/Lists/translations_js_common.php:71 808 859 msgid "Select account or enter email" 809 860 msgstr "" 810 861 811 #: app/Lists/translations_js_common.php: 65862 #: app/Lists/translations_js_common.php:72 812 863 msgid "Set a timezone" 813 864 msgstr "" 814 865 815 #: app/Lists/translations_js_common.php: 66866 #: app/Lists/translations_js_common.php:73 816 867 msgid "Set a standard weekly schedule" 817 868 msgstr "" 818 869 819 #: app/Lists/translations_js_common.php: 67870 #: app/Lists/translations_js_common.php:74 820 871 msgid "Available Booking Days" 821 872 msgstr "" 822 873 823 #: app/Lists/translations_js_common.php: 69874 #: app/Lists/translations_js_common.php:76 824 875 msgid "Send Preview" 825 876 msgstr "" 826 877 827 #: app/Lists/translations_js_common.php:7 1878 #: app/Lists/translations_js_common.php:78 828 879 msgid "Unlock this feature" 829 880 msgstr "" 830 881 831 882 #. translators: %s is the addon name 832 #: app/Lists/translations_js_common.php: 73883 #: app/Lists/translations_js_common.php:80 833 884 msgid "Unlock premium feature with our addon \"%s\"" 834 885 msgstr "" 835 886 836 #: app/Lists/translations_js_common.php: 74887 #: app/Lists/translations_js_common.php:81 837 888 msgid "Get the Addon" 838 889 msgstr "" 839 890 840 #: app/Lists/translations_js_common.php: 75891 #: app/Lists/translations_js_common.php:82 841 892 msgid "Remember" 842 893 msgstr "" 843 894 844 #: app/Lists/translations_js_common.php: 76895 #: app/Lists/translations_js_common.php:83 845 896 #: app/System/InitBackend.php:176 846 897 #: app/WP/Menus.php:29 … … 848 899 msgstr "" 849 900 850 #: app/Lists/translations_js_common.php: 77901 #: app/Lists/translations_js_common.php:84 851 902 msgid "Created at" 852 903 msgstr "" 853 904 854 #: app/Lists/translations_js_common.php: 79905 #: app/Lists/translations_js_common.php:86 855 906 msgid "Please make a selection" 856 907 msgstr "" … … 888 939 889 940 #: app/Lists/translations_orders.php:14 890 #: app/Models/Service.php:3 5941 #: app/Models/Service.php:36 891 942 msgid "Free" 892 943 msgstr "" 893 944 894 945 #: app/Lists/translations_orders.php:15 895 #: app/Models/Service.php:3 3946 #: app/Models/Service.php:34 896 947 msgid "Selling" 897 948 msgstr "" 898 949 899 #: app/Lists/translations_settings.php: 3950 #: app/Lists/translations_settings.php:4 900 951 msgid "Calendars & Staff" 901 952 msgstr "" 902 953 903 #: app/Lists/translations_settings.php: 5954 #: app/Lists/translations_settings.php:6 904 955 #: app/Lists/translations_wizard.php:13 905 956 msgid "Weekly Availability" 906 957 msgstr "" 907 958 908 #: app/Lists/translations_settings.php: 6909 #: app/Lists/translations_settings.php:3 5959 #: app/Lists/translations_settings.php:7 960 #: app/Lists/translations_settings.php:36 910 961 msgid "set default" 911 962 msgstr "" 912 963 913 #: app/Lists/translations_settings.php: 7964 #: app/Lists/translations_settings.php:8 914 965 msgid "Assign services" 915 966 msgstr "" 916 967 917 #: app/Lists/translations_settings.php: 8968 #: app/Lists/translations_settings.php:9 918 969 msgid "Integrations" 919 970 msgstr "" 920 971 921 #: app/Lists/translations_settings.php: 9972 #: app/Lists/translations_settings.php:10 922 973 #: app/System/Status.php:101 923 974 msgid "Connect Account" 924 975 msgstr "" 925 976 926 #: app/Lists/translations_settings.php:1 0977 #: app/Lists/translations_settings.php:11 927 978 msgid "Enter account code" 928 979 msgstr "" 929 980 930 #: app/Lists/translations_settings.php:1 1981 #: app/Lists/translations_settings.php:12 931 982 msgid "Don't have an account yet?" 932 983 msgstr "" 933 984 934 #: app/Lists/translations_settings.php:1 2985 #: app/Lists/translations_settings.php:13 935 986 msgid "Create your free account" 936 987 msgstr "" 937 988 938 #: app/Lists/translations_settings.php:1 3989 #: app/Lists/translations_settings.php:14 939 990 msgid "Automate your appointments' process" 940 991 msgstr "" 941 992 942 #: app/Lists/translations_settings.php:1 4993 #: app/Lists/translations_settings.php:15 943 994 msgid "Connect your favourite tools in seconds and automatically:" 944 995 msgstr "" 945 996 946 #: app/Lists/translations_settings.php:1 5997 #: app/Lists/translations_settings.php:16 947 998 msgid "Create meetings for" 948 999 msgstr "" 949 1000 950 #: app/Lists/translations_settings.php:1 61001 #: app/Lists/translations_settings.php:17 951 1002 msgid "Save new appointments in" 952 1003 msgstr "" 953 1004 954 #: app/Lists/translations_settings.php:1 71005 #: app/Lists/translations_settings.php:18 955 1006 msgid "and soon more to come ..." 956 1007 msgstr "" 957 1008 958 #: app/Lists/translations_settings.php:2 01009 #: app/Lists/translations_settings.php:21 959 1010 msgid "Sync .ICS" 960 1011 msgstr "" 961 1012 962 #: app/Lists/translations_settings.php:2 11013 #: app/Lists/translations_settings.php:22 963 1014 msgid "Connect .ICS calendar" 964 1015 msgstr "" 965 1016 966 #: app/Lists/translations_settings.php:2 21017 #: app/Lists/translations_settings.php:23 967 1018 msgid "Make sure clients can't book you when you're busy" 968 1019 msgstr "" 969 1020 970 #: app/Lists/translations_settings.php:2 31021 #: app/Lists/translations_settings.php:24 971 1022 msgid "Paste a .ICS calendar URL" 972 1023 msgstr "" 973 1024 974 #: app/Lists/translations_settings.php:2 41025 #: app/Lists/translations_settings.php:25 975 1026 msgid "See how to get the URL of your calendar:" 976 1027 msgstr "" 977 1028 978 #: app/Lists/translations_settings.php:2 71029 #: app/Lists/translations_settings.php:28 979 1030 msgid "Import" 980 1031 msgstr "" 981 1032 982 #: app/Lists/translations_settings.php:2 81033 #: app/Lists/translations_settings.php:29 983 1034 msgid "Export" 984 1035 msgstr "" 985 1036 986 #: app/Lists/translations_settings.php: 291037 #: app/Lists/translations_settings.php:30 987 1038 msgid "Pick services provided by staff" 988 1039 msgstr "" 989 1040 990 1041 #. translators: %s - replace by Google Calendar, iCal, etc ... 991 #: app/Lists/translations_settings.php:3 11042 #: app/Lists/translations_settings.php:32 992 1043 msgid "Get your %s URL" 993 1044 msgstr "" 994 1045 995 #: app/Lists/translations_settings.php:3 21046 #: app/Lists/translations_settings.php:33 996 1047 msgid "Connect your external calendars, to automatically lock times when you're already busy" 997 1048 msgstr "" 998 1049 999 #: app/Lists/translations_settings.php:3 31050 #: app/Lists/translations_settings.php:34 1000 1051 msgid "Get your new bookings to appear straight in your calendar app" 1001 1052 msgstr "" 1002 1053 1003 #: app/Lists/translations_settings.php:3 61054 #: app/Lists/translations_settings.php:37 1004 1055 msgid "Set Permissions" 1005 1056 msgstr "" 1006 1057 1007 #: app/Lists/translations_settings.php:3 71058 #: app/Lists/translations_settings.php:38 1008 1059 msgid "Set Custom Field" 1009 1060 msgstr "" 1010 1061 1011 #: app/Lists/translations_settings.php: 391062 #: app/Lists/translations_settings.php:40 1012 1063 msgid "Services" 1013 1064 msgstr "" 1014 1065 1015 #: app/Lists/translations_settings.php:4 01066 #: app/Lists/translations_settings.php:41 1016 1067 msgid "Add 1-to-1 service" 1017 1068 msgstr "" 1018 1069 1019 #: app/Lists/translations_settings.php:4 11070 #: app/Lists/translations_settings.php:42 1020 1071 msgid "Add Group service" 1021 1072 msgstr "" 1022 1073 1023 #: app/Lists/translations_settings.php:4 21024 #: app/Lists/translations_settings.php:5 01074 #: app/Lists/translations_settings.php:43 1075 #: app/Lists/translations_settings.php:51 1025 1076 msgid "Durations" 1026 1077 msgstr "" 1027 1078 1028 #: app/Lists/translations_settings.php:4 31079 #: app/Lists/translations_settings.php:44 1029 1080 msgid "Delivery Modalities" 1030 1081 msgstr "" 1031 1082 1032 #: app/Lists/translations_settings.php:4 41083 #: app/Lists/translations_settings.php:45 1033 1084 msgid "Manage" 1034 1085 msgstr "" 1035 1086 1036 #: app/Lists/translations_settings.php:4 51087 #: app/Lists/translations_settings.php:46 1037 1088 msgid "You don't have any services yet" 1038 1089 msgstr "" 1039 1090 1040 #: app/Lists/translations_settings.php:4 71091 #: app/Lists/translations_settings.php:48 1041 1092 #: app/Lists/widget_settings.php:47 1042 1093 #: app/Messages/EmailHelper.php:94 … … 1045 1096 msgstr "" 1046 1097 1047 #: app/Lists/translations_settings.php:4 81098 #: app/Lists/translations_settings.php:49 1048 1099 msgid "Sell service" 1049 1100 msgstr "" 1050 1101 1051 #: app/Lists/translations_settings.php: 491102 #: app/Lists/translations_settings.php:50 1052 1103 msgid "Short description" 1053 1104 msgstr "" 1054 1105 1055 #: app/Lists/translations_settings.php:5 11106 #: app/Lists/translations_settings.php:52 1056 1107 msgid "Delivery modality" 1057 1108 msgstr "" 1058 1109 1059 #: app/Lists/translations_settings.php:5 21110 #: app/Lists/translations_settings.php:53 1060 1111 msgid "When client select this service, display the following fields" 1061 1112 msgstr "" 1062 1113 1063 #: app/Lists/translations_settings.php:5 31114 #: app/Lists/translations_settings.php:54 1064 1115 msgid "Phone field accepted countries" 1065 1116 msgstr "" 1066 1117 1067 1118 #. translators: %s - currency symbol. 1068 #: app/Lists/translations_settings.php:5 51119 #: app/Lists/translations_settings.php:56 1069 1120 msgid "Price (%s)" 1070 1121 msgstr "" 1071 1122 1072 #: app/Lists/translations_settings.php:5 71123 #: app/Lists/translations_settings.php:58 1073 1124 msgid "Add Delivery Modality" 1074 1125 msgstr "" 1075 1126 1076 #: app/Lists/translations_settings.php:5 81127 #: app/Lists/translations_settings.php:59 1077 1128 msgid "Fields" 1078 1129 msgstr "" 1079 1130 1080 #: app/Lists/translations_settings.php: 591131 #: app/Lists/translations_settings.php:60 1081 1132 msgid "Links" 1082 1133 msgstr "" 1083 1134 1084 #: app/Lists/translations_settings.php:6 01135 #: app/Lists/translations_settings.php:61 1085 1136 msgid "Add Custom Field" 1086 1137 msgstr "" 1087 1138 1088 #: app/Lists/translations_settings.php:6 11139 #: app/Lists/translations_settings.php:62 1089 1140 msgid "Add Duration" 1090 1141 msgstr "" 1091 1142 1092 #: app/Lists/translations_settings.php:6 21143 #: app/Lists/translations_settings.php:63 1093 1144 msgid "Add Reminder" 1094 1145 msgstr "" 1095 1146 1096 #: app/Lists/translations_settings.php:6 31147 #: app/Lists/translations_settings.php:64 1097 1148 msgid "Add Email Reminder" 1098 1149 msgstr "" 1099 1150 1100 #: app/Lists/translations_settings.php:6 41151 #: app/Lists/translations_settings.php:65 1101 1152 msgid "Add SMS reminder" 1102 1153 msgstr "" 1103 1154 1104 #: app/Lists/translations_settings.php:6 51155 #: app/Lists/translations_settings.php:66 1105 1156 msgid "You don't have any reminders" 1106 1157 msgstr "" 1107 1158 1108 #: app/Lists/translations_settings.php:6 61159 #: app/Lists/translations_settings.php:67 1109 1160 msgid "Phone session" 1110 1161 msgstr "" 1111 1162 1112 #: app/Lists/translations_settings.php:6 71163 #: app/Lists/translations_settings.php:68 1113 1164 msgid "Skype session" 1114 1165 msgstr "" 1115 1166 1116 #: app/Lists/translations_settings.php:6 81167 #: app/Lists/translations_settings.php:69 1117 1168 msgid "Video session" 1118 1169 msgstr "" 1119 1170 1120 #: app/Lists/translations_settings.php: 691171 #: app/Lists/translations_settings.php:70 1121 1172 msgid "Session at an address" 1122 1173 msgstr "" 1123 1174 1124 #: app/Lists/translations_settings.php:7 01175 #: app/Lists/translations_settings.php:71 1125 1176 msgid "Link to a Wappointment page" 1126 1177 msgstr "" 1127 1178 1128 #: app/Lists/translations_settings.php:7 41179 #: app/Lists/translations_settings.php:75 1129 1180 msgid "Manage services" 1130 1181 msgstr "" 1131 1182 1132 #: app/Lists/translations_settings.php:7 51183 #: app/Lists/translations_settings.php:76 1133 1184 msgid "Sell packages" 1134 1185 msgstr "" 1135 1186 1136 #: app/Lists/translations_settings.php:7 61187 #: app/Lists/translations_settings.php:77 1137 1188 msgid "Currency:" 1138 1189 msgstr "" 1139 1190 1140 #: app/Lists/translations_settings.php:7 71191 #: app/Lists/translations_settings.php:78 1141 1192 msgid "Tax:" 1142 1193 msgstr "" 1143 1194 1144 #: app/Lists/translations_settings.php:7 81195 #: app/Lists/translations_settings.php:79 1145 1196 msgid "Payments accepted:" 1146 1197 msgstr "" 1147 1198 1148 #: app/Lists/translations_settings.php: 791199 #: app/Lists/translations_settings.php:80 1149 1200 msgid "Inserts dynamic data" 1150 1201 msgstr "" 1151 1202 1152 #: app/Lists/translations_settings.php:8 01203 #: app/Lists/translations_settings.php:81 1153 1204 msgid "Show selection only when condition is met" 1154 1205 msgstr "" 1155 1206 1156 #: app/Lists/translations_settings.php:8 11207 #: app/Lists/translations_settings.php:82 1157 1208 msgid "Select text to enable" 1158 1209 msgstr "" 1159 1210 1160 #: app/Lists/translations_settings.php:8 21211 #: app/Lists/translations_settings.php:83 1161 1212 msgid "Shows when" 1162 1213 msgstr "" 1163 1214 1164 #: app/Lists/translations_settings.php:8 41215 #: app/Lists/translations_settings.php:85 1165 1216 msgid "Emails & SMS" 1166 1217 msgstr "" 1167 1218 1168 #: app/Lists/translations_settings.php:8 61219 #: app/Lists/translations_settings.php:87 1169 1220 msgid "Appearance" 1170 1221 msgstr "" 1171 1222 1172 #: app/Lists/translations_settings.php:8 81223 #: app/Lists/translations_settings.php:89 1173 1224 #: app/Lists/widget_fields.php:201 1174 1225 msgid "Advanced" 1175 1226 msgstr "" 1176 1227 1177 #: app/Lists/translations_settings.php:90 1228 #: app/Lists/translations_settings.php:91 1229 msgid "You can only unpublish it" 1230 msgstr "" 1231 1232 #: app/Lists/translations_settings.php:92 1178 1233 msgid "When is the reminder sent? (before the appointment)" 1179 1234 msgstr "" 1180 1235 1181 #: app/Lists/translations_settings.php:9 11236 #: app/Lists/translations_settings.php:93 1182 1237 msgid "Select unit" 1183 1238 msgstr "" 1184 1239 1185 #: app/Lists/translations_settings.php:9 21240 #: app/Lists/translations_settings.php:94 1186 1241 msgid "Header Image" 1187 1242 msgstr "" 1188 1243 1189 #: app/Lists/translations_settings.php:9 31244 #: app/Lists/translations_settings.php:95 1190 1245 msgid "Subject" 1191 1246 msgstr "" 1192 1247 1193 #: app/Lists/translations_settings.php:9 41248 #: app/Lists/translations_settings.php:96 1194 1249 msgid "Select an image" 1195 1250 msgstr "" … … 1664 1719 msgstr "" 1665 1720 1666 #: app/Lists/widget_settings.php:1211667 #: app/Lists/widget_translations.php:111668 #: app/Services/Settings.php:1001669 msgid "Reschedule"1670 msgstr ""1671 1672 1721 #: app/Lists/widget_settings.php:125 1673 1722 msgid "Pick a service" … … 1988 2037 msgstr "" 1989 2038 2039 #: app/Models/CanGetCustomFieldValue.php:54 2040 msgid "Yes" 2041 msgstr "" 2042 2043 #: app/Models/CanGetCustomFieldValue.php:54 2044 msgid "No" 2045 msgstr "" 2046 1990 2047 #: app/Models/Order.php:51 1991 2048 msgid "Pending" … … 2012 2069 msgstr "" 2013 2070 2071 #: app/Models/Reminder.php:95 2072 msgid "Sent after appointment has been confirmed." 2073 msgstr "" 2074 2075 #: app/Models/Reminder.php:96 2076 msgid "Sent after appointment has been rescheduled." 2077 msgstr "" 2078 2014 2079 #: app/Models/Reminder.php:97 2015 msgid "Sent after appointment has been c onfirmed."2080 msgid "Sent after appointment has been cancelled." 2016 2081 msgstr "" 2017 2082 2018 2083 #: app/Models/Reminder.php:98 2019 msgid "Sent after appointment has been rescheduled."2020 msgstr ""2021 2022 #: app/Models/Reminder.php:992023 msgid "Sent after appointment has been cancelled."2024 msgstr ""2025 2026 #: app/Models/Reminder.php:1002027 2084 msgid "Sent after appointment has been booked (when admin approval is required or when payment method is active)" 2028 2085 msgstr "" 2029 2086 2030 2087 #. translators: %1$s is replaced with a number of %2$s which are either, minutes, hours or days 2031 #: app/Models/Reminder.php:10 92088 #: app/Models/Reminder.php:107 2032 2089 msgid "Sent before appointment takes place.(sent %1$s %2$s before)" 2033 2090 msgstr "" … … 2043 2100 2044 2101 #: app/Services/Appointment.php:86 2045 #: app/Services/AppointmentNew.php:25 22102 #: app/Services/AppointmentNew.php:255 2046 2103 msgid "Can't reschedule appointment anymore" 2047 2104 msgstr "" 2048 2105 2049 2106 #: app/Services/Appointment.php:269 2050 #: app/Services/AppointmentNew.php:4 352107 #: app/Services/AppointmentNew.php:452 2051 2108 msgid "Can't cancel appointment anymore" 2052 2109 msgstr "" 2053 2110 2054 #: app/Services/AppointmentNew.php:3 012111 #: app/Services/AppointmentNew.php:319 2055 2112 msgid "Not allowed to book" 2056 2113 msgstr "" 2057 2114 2058 #: app/Services/AppointmentNew.php:3 112115 #: app/Services/AppointmentNew.php:329 2059 2116 msgid "Slot not available" 2060 2117 msgstr "" 2061 2118 2062 #: app/Services/AppointmentNew.php:3 692119 #: app/Services/AppointmentNew.php:387 2063 2120 msgid "Slot already booked" 2064 2121 msgstr "" … … 2068 2125 msgstr "" 2069 2126 2070 #: app/Services/Client.php:1 62127 #: app/Services/Client.php:17 2071 2128 msgid "Max active bookings reached! Cancel one of your appointments in order to book a new one." 2072 2129 msgstr "" … … 2279 2336 msgstr "" 2280 2337 2281 #: app/Services/Settings.php:10 22338 #: app/Services/Settings.php:103 2282 2339 msgid "Save to calendar" 2283 2340 msgstr "" 2284 2341 2285 #: app/Services/Settings.php:10 32342 #: app/Services/Settings.php:104 2286 2343 msgid "Book a new appointment" 2287 2344 msgstr "" 2288 2345 2289 #: app/Services/Settings.php:14 02346 #: app/Services/Settings.php:141 2290 2347 msgid "Order nº" 2291 2348 msgstr "" … … 2296 2353 msgstr "" 2297 2354 2298 #: app/Services/ViewsData.php:21 32355 #: app/Services/ViewsData.php:212 2299 2356 #: app/WP/Widget.php:38 2300 2357 msgid "Book an appointment" 2301 2358 msgstr "" 2302 2359 2303 #: app/Services/ViewsData.php:21 42360 #: app/Services/ViewsData.php:213 2304 2361 msgid "On behalf of your client" 2305 2362 msgstr "" 2306 2363 2364 #: app/Services/ViewsData.php:219 2365 msgid "Open this time" 2366 msgstr "" 2367 2307 2368 #: app/Services/ViewsData.php:220 2308 msgid "Open this time"2309 msgstr ""2310 2311 #: app/Services/ViewsData.php:2212312 2369 msgid "Allow new bookings" 2313 2370 msgstr "" 2314 2371 2372 #: app/Services/ViewsData.php:226 2373 msgid "Block this time" 2374 msgstr "" 2375 2315 2376 #: app/Services/ViewsData.php:227 2316 msgid "Block this time"2317 msgstr ""2318 2319 #: app/Services/ViewsData.php:2282320 2377 msgid "Prevent new bookings" 2321 2378 msgstr "" 2322 2379 2323 #: app/Services/Wappointment/Addons.php:1 692380 #: app/Services/Wappointment/Addons.php:145 2324 2381 msgid "Success installing addon" 2325 2382 msgstr ""
Note: See TracChangeset
for help on using the changeset viewer.