Plugin Directory

Changeset 2874788


Ignore:
Timestamp:
03/04/2023 06:40:43 PM (3 years ago)
Author:
wappointment
Message:

Commit version 2.4.15 to trunk

Location:
wappointment/trunk
Files:
28 added
12 deleted
45 edited

Legend:

Unmodified
Added
Removed
  • wappointment/trunk/app/Controllers/EventsController.php

    r2679872 r2874788  
    4242                throw new \WappointmentException(__('Error deleting appointment', 'wappointment'), 1);
    4343            }
     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);
    4454        }
    4555        return ['message' => __('Appointment cancelled', 'wappointment'), 'failures' => $failures];
     
    104114    public function patch(\Wappointment\ClassConnect\Request $request)
    105115    {
    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)) {
    108118            return ['message' => \Wappointment\Helpers\Translations::get('element_updated')];
    109119        } else {
  • wappointment/trunk/app/Controllers/ReminderController.php

    r2807115 r2874788  
    44
    55use Wappointment\ClassConnect\Request;
     6use Wappointment\Helpers\Site;
    67use Wappointment\Helpers\Translations;
    78use Wappointment\Services\Reminder;
     
    1112class ReminderController extends \Wappointment\Controllers\RestController
    1213{
    13     private $columns = ['id', 'subject', 'type', 'event', 'locked', 'published', 'options'];
    1414    public function isLegacy()
    1515    {
    1616        return !\Wappointment\Services\VersionDB::canServices();
    1717    }
     18    private function getRequested(\Wappointment\ClassConnect\Request $request)
     19    {
     20        return $request->except(['rest_route', 'locked', 'email_logo', 'label', 'canTranslate', 'children']);
     21    }
    1822    public function save(\Wappointment\ClassConnect\Request $request)
    1923    {
    20         $requested = $request->except(['rest_route', 'locked', 'email_logo', 'label']);
     24        $requested = $this->getRequested($request);
    2125        $requested['published'] = true;
    2226        $this->saveImage($request);
     
    3943    {
    4044        $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)))) {
    4246            return ['message' => \Wappointment\Helpers\Translations::get('element_updated')];
    4347        }
     
    6064    public function get()
    6165    {
    62         $queryReminders = \Wappointment\Models\Reminder::select($this->columns);
     66        $queryReminders = \Wappointment\Models\Reminder::query();
    6367        $queryReminders->activeReminders();
    6468        $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()]];
    6670        $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()]);
    6872    }
    6973}
  • wappointment/trunk/app/Events/AppointmentBookedEvent.php

    r2645781 r2874788  
    88class AppointmentBookedEvent extends \Wappointment\Events\AbstractEvent
    99{
    10     const NAME = 'appointment.booked';
     10    public const NAME = 'appointment.booked';
    1111    protected $appointment;
    1212    protected $client;
  • wappointment/trunk/app/Formatters/EventsCalendar.php

    r2807115 r2874788  
    229229        $bg_events = [];
    230230        $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        }
    231236        $daysOfTheWeek = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'];
    232237        while (!empty($daysOfTheWeek)) {
  • wappointment/trunk/app/Jobs/AppointmentEmailReminder.php

    r2297643 r2874788  
    55class AppointmentEmailReminder extends \Wappointment\Jobs\AppointmentEmailConfirmed
    66{
    7     const CONTENT = '\\Wappointment\\Messages\\AppointmentReminderEmail';
     7    public const CONTENT = '\\Wappointment\\Messages\\AppointmentReminderEmail';
     8    protected $get_first = false;
    89}
  • wappointment/trunk/app/Listeners/AdminNotifyCanceledListener.php

    r2645781 r2874788  
    88    protected function addToJobs($event)
    99    {
    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()];
    1115        parent::addToJobs($event);
    1216    }
  • wappointment/trunk/app/Listeners/AdminNotifyRescheduledListener.php

    r2645781 r2874788  
    88    protected function addToJobs($event)
    99    {
    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()];
    1115        parent::addToJobs($event);
    1216    }
  • wappointment/trunk/app/Listeners/AppointmentConfirmedListener.php

    r2645781 r2874788  
    99    protected $delay = 0;
    1010    protected $event_trigger = \Wappointment\Models\Reminder::APPOINTMENT_CONFIRMED;
     11    protected $get_first = true;
    1112    protected function addToJobs($event)
    1213    {
     
    1617                $params['reminder_id'] = 0;
    1718                $this->recordJob($this->jobClass, \array_merge($params, $this->data_job), 'client', null, $this->delay);
     19                if ($this->get_first) {
     20                    return;
     21                }
    1822            }
    1923        }
  • wappointment/trunk/app/Lists/addons.php

    r2679872 r2874788  
    33namespace WappoVendor;
    44
    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']];
     5return ['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  
    33namespace WappoVendor;
    44
    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' => ' ']];
     5return [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  
    1818    'titlege' => __('Group event', 'wappointment'),
    1919    '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'),
    2026];
  • wappointment/trunk/app/Lists/translations_js_common.php

    r2807115 r2874788  
    3737    'bwe_step' => __('Step', 'wappointment'),
    3838    'bwe_edit_more_colors' => __('Edit more colors', 'wappointment'),
     39    'bwe_primary_color' => __('Primary Color', 'wappointment'),
    3940    'create' => __('Create', 'wappointment'),
    4041    'hide' => __('Hide', 'wappointment'),
    4142    'save' => __('Save', 'wappointment'),
    4243    'edit' => __('Edit', 'wappointment'),
     44    'duplicate' => __('Duplicate', 'wappointment'),
     45    'translate' => __('Translate', 'wappointment'),
     46    'language' => __('Language', 'wappointment'),
    4347    'delete' => __('Delete', 'wappointment'),
    4448    'sort' => __('Sort', 'wappointment'),
     
    5256    'close' => __('Close', 'wappointment'),
    5357    'add' => __('Add', 'wappointment'),
     58    'reschedule' => __('Reschedule', 'wappointment'),
     59    'view_appointment' => __('View appointment', 'View'),
    5460    'regav_hours' => __('Hours', 'wappointment'),
    5561    /* translators: %s - minutes */
  • wappointment/trunk/app/Lists/translations_settings.php

    r2693573 r2874788  
    7676    'appearance_title' => __('Appearance', 'wappointment'),
    7777    'advanced_title' => __('Advanced', 'wappointment'),
     78    'addons_title' => 'Addons',
     79    'only_unpublish' => __('You can only unpublish it', 'wappointment'),
    7880    'when_reminder_sent' => __('When is the reminder sent? (before the appointment)', 'wappointment'),
    7981    'select_unit' => __('Select unit', 'wappointment'),
  • wappointment/trunk/app/Messages/AppointmentPendingEmail.php

    r2152317 r2874788  
    66{
    77    use HasNoAppointmentFooterLinks;
    8     const EVENT = \Wappointment\Models\Reminder::APPOINTMENT_PENDING;
     8    protected $icsRequired = false;
     9    public const EVENT = \Wappointment\Models\Reminder::APPOINTMENT_PENDING;
    910}
  • wappointment/trunk/app/Messages/AppointmentReminderEmail.php

    r2388385 r2874788  
    66class AppointmentReminderEmail extends \Wappointment\Messages\AbstractEmail
    77{
    8     use HasAppointmentFooterLinks, HasTagsToReplace, AttachesIcs, PreparesClientEmail;
     8    use HasAppointmentFooterLinks;
     9    use HasTagsToReplace;
     10    use AttachesIcs;
     11    use PreparesClientEmail;
    912    protected $icsRequired = true;
    10     const EVENT = \Wappointment\Models\Reminder::APPOINTMENT_STARTS;
     13    public const EVENT = \Wappointment\Models\Reminder::APPOINTMENT_STARTS;
    1114    public function loadContent()
    1215    {
    1316        $reminder_id = empty($this->params['reminder_id']) ? false : $this->params['reminder_id'];
    1417        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)) {
    1619                return false;
    1720            }
  • wappointment/trunk/app/Messages/PreparesClientEmail.php

    r2314670 r2874788  
    88trait PreparesClientEmail
    99{
    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)
    1111    {
    1212        $this->client = $client;
    1313        $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);
    1515        if (!$email) {
    1616            return false;
     
    2020        return true;
    2121    }
     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    }
    2243}
  • wappointment/trunk/app/Messages/Templates/FoundationEmail.php

    r2688125 r2874788  
    33namespace Wappointment\Messages\Templates;
    44
     5use Wappointment\Services\Settings;
    56use Wappointment\System\Helpers;
    67class FoundationEmail
     
    1213    {
    1314        $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');
    1417    }
    1518    public function setColors($colors)
     
    12501253                                text-decoration: none; }
    12511254                                a:hover {
    1252                                   color: ' . $this->getColor('primaryLight') . '; }
     1255                                  color: ' . $this->getColor('primary') . '; }
    12531256                                a:active {
    1254                                   color: ' . $this->getColor('primaryLight') . '; }
     1257                                  color: ' . $this->getColor('primary') . '; }
    12551258                                a:visited {
    12561259                                  color: ' . $this->getColor('primary') . '; }
  • wappointment/trunk/app/Models/Client.php

    r2807115 r2874788  
    99class Client extends \Wappointment\ClassConnect\Model
    1010{
    11     use SoftDeletes, CanBook, CanBookLegacy;
     11    use SoftDeletes;
     12    use CanBook;
     13    use CanBookLegacy;
     14    use CanGetCustomFieldValue;
    1215    protected $table = 'wappo_clients';
    1316    public $generatingOrder = true;
     
    7073    public function getCustomField($tag = false)
    7174    {
    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']];
    7383    }
    7484    protected function getRealDuration($service)
  • wappointment/trunk/app/Models/Reminder.php

    r2645781 r2874788  
    99class Reminder extends \Wappointment\ClassConnect\Model
    1010{
     11    use CanSortByParent;
    1112    protected $table = 'wappo_reminders';
    12     protected $fillable = ['subject', 'type', 'event', 'locked', 'options', 'published'];
     13    protected $fillable = ['subject', 'type', 'event', 'locked', 'options', 'published', 'parent', 'lang'];
    1314    protected $casts = ['options' => 'array', 'locked' => 'boolean', 'published' => 'boolean'];
    1415    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;
    2324    public static function getType($type)
    2425    {
     
    3738            $is_in[] = static::APPOINTMENT_PENDING;
    3839        }
    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));
    4640    }
    4741    public static function getTypes($col = false)
  • wappointment/trunk/app/Models/Service.php

    r2655182 r2874788  
    77class Service extends \Wappointment\ClassConnect\Model
    88{
    9     use SoftDeletes, CanLimit;
     9    use SoftDeletes;
     10    use CanLimit;
    1011    protected $dates = ['deleted_at'];
    1112    protected $table = 'wappo_services';
     
    3940        return !empty($this->options['woo_sellable']);
    4041    }
     42    public function isGroup()
     43    {
     44        return !empty($this->options['slots']);
     45    }
    4146    public function hasDuration($duration)
    4247    {
  • wappointment/trunk/app/Repositories/Availability.php

    r2727796 r2874788  
    88use Wappointment\Services\Settings;
    99use Wappointment\ClassConnect\Carbon;
     10use Wappointment\Helpers\Site;
    1011class Availability extends \Wappointment\Repositories\AbstractRepository
    1112{
     
    1314    public function query()
    1415    {
    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')]);
    1617    }
    1718}
  • wappointment/trunk/app/Routes/Main.php

    r2693573 r2874788  
    55class Main extends \Wappointment\Routes\AbstractRoutes
    66{
    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']]]];
    88    public function __construct()
    99    {
  • wappointment/trunk/app/Services/Addons.php

    r2344635 r2874788  
    33namespace Wappointment\Services;
    44
     5use Wappointment\ClassConnect\Collection;
    56class Addons
    67{
     
    89    {
    910        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        });
    1017    }
    1118    public static function isActive($addon_name)
  • wappointment/trunk/app/Services/Appointment.php

    r2645781 r2874788  
    212212    public static function cancel(\Wappointment\Models\Appointment $appointment)
    213213    {
    214         \Wappointment\Models\Log::canceledAppointment($appointment);
    215214        $client = $appointment->client()->first();
    216215        $staff_id_regenerate = $appointment->getStaffId();
  • wappointment/trunk/app/Services/AppointmentNew.php

    r2709311 r2874788  
    175175        return $result;
    176176    }
    177     public static function reschedule($edit_key, $start_at)
     177    public static function reschedule($edit_key, $start_at, $admin = false, $appointmentObject = null)
    178178    {
    179179        $allowrescheduling = (bool) \Wappointment\Services\Settings::get('allow_rescheduling');
    180         if (!$allowrescheduling) {
     180        if (!$admin && !$allowrescheduling) {
    181181            throw new \WappointmentException('Appointment rescheduling is not allowed', 1);
    182182        }
    183         if (\is_array($edit_key)) {
     183        if (!$admin && \is_array($edit_key)) {
    184184            throw new \WappointmentException(__("Malformed parameter", 'wappointment'), 1);
    185185        }
    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])) {
    188192            throw new \WappointmentException('Appointment rescheduling is not allowed', 1);
    189193        }
     
    192196            throw new \WappointmentException(__("Can't find appointment", 'wappointment'), 1);
    193197        }
    194         if (!$appointment->canStillReschedule()) {
     198        if (!$admin && !$appointment->canStillReschedule()) {
    195199            throw new \WappointmentException(__("Can't reschedule appointment anymore", 'wappointment'), 1);
    196200        }
     
    205209    {
    206210        (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        }
    207220        //send rescheduled email to client and admin
    208221        $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);
    210226    }
    211227    public static function unixToDb($unixTS)
     
    342358        //used for credit return in addons
    343359        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        }
    346370        //clearing charges for that appointment clearing order prices
    347371        if (!\Wappointment\Services\Payment::isWooActive()) {
     
    349373        }
    350374        static::destroy($appointment, $force);
     375        return true;
     376    }
     377    public static function sendCancelNotification($appointment, $client)
     378    {
    351379        //trigger cancelled email to user and cancelled notification to admin
    352380        \Wappointment\Services\JobHelper::dispatch('AppointmentCanceledEvent', ['appointment' => $appointment, 'client' => $client], $client);
    353         return true;
    354381    }
    355382    public static function destroy($appointment, $force = false)
  • wappointment/trunk/app/Services/CalendarParser.php

    r2742428 r2874788  
    8686        return !empty($vevent->{$column}) && $vevent->{$column}->getValue() == 'FREE';
    8787    }
     88    public function isFreeGoogle($vevent)
     89    {
     90        $column = 'TRANSP';
     91        return !empty($vevent->{$column}) && $vevent->{$column}->getValue() === 'TRANSPARENT';
     92    }
    8893    public function freeSpotted($vevent)
    8994    {
    90         return $this->isFreeOutlook($vevent);
     95        return $this->isFreeOutlook($vevent) || $this->isFreeGoogle($vevent);
    9196    }
    9297    public function getStatus($vevent)
  • wappointment/trunk/app/Services/Client.php

    r2807115 r2874788  
    33namespace Wappointment\Services;
    44
     5use Wappointment\Helpers\Site;
    56use Wappointment\Models\Client as MClient;
    67use Wappointment\Validators\HttpRequest\Booking;
     
    3839        if (empty($dataClient['name'])) {
    3940            $dataClient['name'] = '';
     41        }
     42        if (empty($dataClient['options']['locale'])) {
     43            $dataClient['options']['locale'] = \Wappointment\Helpers\Site::locale();
    4044        }
    4145        if (empty($client)) {
  • wappointment/trunk/app/Services/Settings.php

    r2807115 r2874788  
    5858            'allow_rescheduling' => true,
    5959            'email_footer' => '',
     60            'email_link_color' => '#6664cb',
    6061            'hours_before_booking_allowed' => 3,
    6162            'hours_before_cancellation_allowed' => 24,
  • wappointment/trunk/app/Services/ViewsData.php

    r2807115 r2874788  
    134134            'cal_duration' => (new \Wappointment\Services\Preferences())->get('cal_duration'),
    135135            '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']],
    136137        ];
    137138        if (\Wappointment\Services\VersionDB::canServices()) {
     
    229230        ];
    230231    }
     232    private function settingsaddons()
     233    {
     234        return ['addons' => \Wappointment\Services\Addons::withSettings()];
     235    }
    231236    private function wizardinit()
    232237    {
  • wappointment/trunk/app/Services/Wappointment/Addons.php

    r2679872 r2874788  
    55use Wappointment\WP\Helpers as WPHelpers;
    66use Wappointment\ClassConnect\Carbon;
     7use Wappointment\WP\Plugins;
    78class Addons extends \Wappointment\Services\Wappointment\API
    89{
    910    public function __construct()
    1011    {
    11         if (!\function_exists('WappoVendor\\get_plugins')) {
    12             require_once ABSPATH . 'wp-admin/includes/plugin.php';
    13         }
    1412        parent::__construct();
    1513    }
     
    3432                    if ($this->isAPlugin($package)) {
    3533                        $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));
    3836                    }
    3937                    if ($this->pluginNamekey($package)) {
     
    5351    {
    5452        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));
    6753    }
    6854    private function getPluginDetails($package)
     
    8470    public function activate($package)
    8571    {
    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));
    9073        if (is_wp_error($result)) {
    9174            // Process Error
     
    9679    public function deactivate($package)
    9780    {
    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)]);
    10282        return ['message' => 'Addon deactivated'];
    10383    }
  • wappointment/trunk/app/Services/Wappointment/VersionCheck.php

    r2679872 r2874788  
    33namespace Wappointment\Services\Wappointment;
    44
     5use Wappointment\WP\Plugins;
    56class VersionCheck extends \Wappointment\Services\Wappointment\API
    67{
     
    1819        foreach ($this->getWappointmentActiveSlugs() as $plugin) {
    1920            $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])) {
    2122                $latestVersion = $this->latestVersion($plugin);
    2223                if ($latestVersion !== false && \version_compare($latestVersion, $this->getActivePluginVersion($plugin), '>')) {
  • wappointment/trunk/app/System/Status.php

    r2679872 r2874788  
    1111    public static $version = WAPPOINTMENT_VERSION;
    1212    private static $last_step = 4;
    13     private static $db_version_required = '2.4.6';
     13    private static $db_version_required = '2.4.15';
    1414    public static function isInstalled()
    1515    {
  • wappointment/trunk/app/Transports/WpMail.php

    r2688125 r2874788  
    88class WpMail extends \Wappointment\Transports\Transport
    99{
    10     use WpMailPatched, CanSendPlainText, CanSendMultipart, CanSendPlugin;
     10    use WpMailPatched;
     11    use CanSendPlainText;
     12    use CanSendMultipart;
     13    use CanSendPlugin;
    1114    private $configSave = [];
    1215    public function __construct($config)
  • wappointment/trunk/app/Transports/WpMailPatched.php

    r2655182 r2874788  
    22
    33namespace Wappointment\Transports;
     4
     5use Wappointment\Plugins\MultiLang\TranslatePress;
    46
    57/**
     
    810trait WpMailPatched
    911{
    10 
    1112    public function getPhpMailer()
    1213    {
     
    3839    public function wpMail($to, $subject, $message, $headers = '', $attachments = array())
    3940    {
     41        TranslatePress::hackTranslatePress();
    4042        // Compact the input, apply the filters, and extract them back out
    4143
     
    103105
    104106                    switch (strtolower($name)) {
    105                             // Mainly for legacy -- process a From: header if it's there
     107                        // Mainly for legacy -- process a From: header if it's there
    106108                        case 'from':
    107109                            $bracket_pos = strpos($content, '<');
     
    118120                                $from_email = trim($from_email);
    119121
    120                                 // Avoid setting an empty $from_email.
     122                            // Avoid setting an empty $from_email.
    121123                            } elseif ('' !== trim($content)) {
    122124                                $from_email = trim($content);
     
    138140                                }
    139141
    140                                 // Avoid setting an empty $content_type.
     142                            // Avoid setting an empty $content_type.
    141143                            } elseif ('' !== trim($content)) {
    142144                                $content_type = trim($content);
  • wappointment/trunk/app/Validators/HttpRequest/BookingAdmin.php

    r2807195 r2874788  
    1212            $this->validationRulesArray['email'] = 'email';
    1313        }
    14         $this->validationRulesArray = $this->applyMoreRules();
     14        if (!$this->getService()->isGroup() && empty($inputs['clientid'])) {
     15            $this->validationRulesArray = $this->applyMoreRules();
     16        }
    1517        if (!empty($inputs['clientid'])) {
    1618            unset($this->validationRulesArray['email']);
  • wappointment/trunk/app/WP/Database.php

    r2554748 r2874788  
    3030            }
    3131        }
    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');
    3435    }
    3536    public function getAltPort()
  • wappointment/trunk/database/migrations/2018_07_01_000001_create_jobs_table.php

    r2356382 r2874788  
    1616            Capsule::schema()->create(Database::$prefix_self . '_jobs', function ($table) {
    1717                $table->bigIncrements('id');
    18                 $table->string('queue')->nullable();
     18                $table->string('queue', 25)->nullable();
    1919                $table->longText('payload');
    2020                $table->unsignedInteger('appointment_id')->nullable();
     
    2828
    2929        Capsule::schema()->table(Database::$prefix_self . '_jobs', function ($table) {
    30             $table->string('queue', 25)->nullable()->change();
    3130            $table->index(['queue', 'reserved_at']);
    3231        });
  • wappointment/trunk/dist/manifest.json

    r2807115 r2874788  
    33  "MainStyle.js": "MainStyle.2ff85ec05f1d6777122e.bundle.js",
    44  "VueTelInput.js": "VueTelInput.db54d74eedf67e3f5424.bundle.js",
    5   "WapImage.js": "WapImage.7862fe1cee429fe91413.bundle.js",
     5  "WapImage.js": "WapImage.edd74ffda296850a901b.bundle.js",
    66  "appFawesome.js": "appFawesome.4e2ad45bee468cf2e01a.bundle.js",
    77  "flags.png": "9c96e0ed7093c095fd33870329282962.png",
    88  "flags@2x.png": "f2c77a6b7e26ff160fdb4193b383b1ea.png",
    9   "front.js": "front.1430e6601f71edaa1b0e.bundle.js",
     9  "front.js": "front.e21a8b22b46724d79d9b.bundle.js",
    1010  "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",
    1212  "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",
    1515  "group-calendars-manage.js": "group-calendars-manage.1a72e1d9944896349806.bundle.js",
    1616  "group-clients.js": "group-clients.31cd2afe52417c760f44.bundle.js",
     
    1818  "group-service-package.js": "group-service-package.e39f759ef56a94e675d4.bundle.js",
    1919  "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",
    2222  "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",
    2424  "group-wizardinit.js": "group-wizardinit.f46cddbac82be6779009.bundle.js",
    25   "main.js": "main.1f25ff0960ad6f3dc300.bundle.js",
     25  "main.js": "main.906fddc02313f538209c.bundle.js",
    2626  "style-flag.js": "style-flag.216cbd8bd046bf27d58a.bundle.js",
    2727  "toggle-off.svg": "e500252a27eb6af0b0c0853d856b3647.svg",
    2828  "vendors-MainStyle.js": "vendors-MainStyle.4cb0b08feca57dfef1af.bundle.js",
    2929  "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",
    3131  "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",
    3233  "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",
    3434  "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",
    3636  "wappo-error.js": "wappo-error.a957e3f87eed42a1e694.bundle.js",
    3737  "wappo-notif.js": "wappo-notif.247dea9fedcb9fa57c10.bundle.js"
  • wappointment/trunk/index.php

    r2807195 r2874788  
    77/**
    88 * Plugin Name: Wappointment
    9  * Version: 2.4.13
     9 * Version: 2.4.15
    1010 * Plugin URI: https://wappointment.com
    1111 * Description: Clients quickly book a meeting with you on Zoom , GoogleMeet , the phone or at your office
     
    1414 * Requires at least: 4.7
    1515 * Requires PHP: 7.0
    16  * Tested up to: 6.0
     16 * Tested up to: 6.1
    1717 *
    1818 * Text Domain: wappointment
     
    3333 */
    3434
    35 define('WAPPOINTMENT_VERSION', '2.4.13');
     35define('WAPPOINTMENT_VERSION', '2.4.15');
    3636define('WAPPOINTMENT_PHP_MIN', '7.0.0');
    3737define('WAPPOINTMENT_NAME', 'Wappointment');
  • wappointment/trunk/readme.txt

    r2807195 r2874788  
    33Tags: appointment scheduling, appointment booking, booking calendar, booking form, zoom
    44Requires at least: 4.7
    5 Tested up to: 6.0
     5Tested up to: 6.1
    66Requires PHP: 7.0
    7 Stable tag: 2.4.13
     7Stable tag: 2.4.15
    88License: GPLv2 or later
    99License URI: http://www.gnu.org/licenses/gpl-2.0.html
     
    9999== Frequently Asked Questions ==
    100100
     101**Why do reminders go out late sometimes?**
     102
     103WordPress 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
     107Your 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
    101109**Can I change text and colors of the booking form?**
    102110
     
    114122
    115123Every 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*
    124124
    125125**I need 10 minutes to prepare between 2 appointments, how do I proceed?**
     
    148148
    149149== 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
    150162
    151163= 2.4.13 - 2022-10-30 =
  • wappointment/trunk/vendor/autoload.php

    r2807195 r2874788  
    1010require_once __DIR__ . '/composer/autoload_real.php';
    1111
    12 return ComposerAutoloaderInit3b2949d8d0a6d32a5d8172a74feaa95a::getLoader();
     12return ComposerAutoloaderInit802320a9b5ba85a72fedd4d0da64226f::getLoader();
  • wappointment/trunk/vendor/composer/autoload_real.php

    r2807195 r2874788  
    33// autoload_real.php @generated by Composer
    44
    5 class ComposerAutoloaderInit3b2949d8d0a6d32a5d8172a74feaa95a
     5class ComposerAutoloaderInit802320a9b5ba85a72fedd4d0da64226f
    66{
    77    private static $loader;
     
    2525        require __DIR__ . '/platform_check.php';
    2626
    27         spl_autoload_register(array('ComposerAutoloaderInit3b2949d8d0a6d32a5d8172a74feaa95a', 'loadClassLoader'), true, true);
     27        spl_autoload_register(array('ComposerAutoloaderInit802320a9b5ba85a72fedd4d0da64226f', 'loadClassLoader'), true, true);
    2828        self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
    29         spl_autoload_unregister(array('ComposerAutoloaderInit3b2949d8d0a6d32a5d8172a74feaa95a', 'loadClassLoader'));
     29        spl_autoload_unregister(array('ComposerAutoloaderInit802320a9b5ba85a72fedd4d0da64226f', 'loadClassLoader'));
    3030
    3131        require __DIR__ . '/autoload_static.php';
    32         call_user_func(\Composer\Autoload\ComposerStaticInit3b2949d8d0a6d32a5d8172a74feaa95a::getInitializer($loader));
     32        call_user_func(\Composer\Autoload\ComposerStaticInit802320a9b5ba85a72fedd4d0da64226f::getInitializer($loader));
    3333
    3434        $loader->register(true);
    3535
    36         $includeFiles = \Composer\Autoload\ComposerStaticInit3b2949d8d0a6d32a5d8172a74feaa95a::$files;
     36        $includeFiles = \Composer\Autoload\ComposerStaticInit802320a9b5ba85a72fedd4d0da64226f::$files;
    3737        foreach ($includeFiles as $fileIdentifier => $file) {
    38             composerRequire3b2949d8d0a6d32a5d8172a74feaa95a($fileIdentifier, $file);
     38            composerRequire802320a9b5ba85a72fedd4d0da64226f($fileIdentifier, $file);
    3939        }
    4040
     
    4848 * @return void
    4949 */
    50 function composerRequire3b2949d8d0a6d32a5d8172a74feaa95a($fileIdentifier, $file)
     50function composerRequire802320a9b5ba85a72fedd4d0da64226f($fileIdentifier, $file)
    5151{
    5252    if (empty($GLOBALS['__wappo_autoload_files'][$fileIdentifier])) {
  • wappointment/trunk/vendor/composer/autoload_static.php

    r2807195 r2874788  
    55namespace Composer\Autoload;
    66
    7 class ComposerStaticInit3b2949d8d0a6d32a5d8172a74feaa95a
     7class ComposerStaticInit802320a9b5ba85a72fedd4d0da64226f
    88{
    99    public static $files = array (
     
    266266    {
    267267        return \Closure::bind(function () use ($loader) {
    268             $loader->prefixLengthsPsr4 = ComposerStaticInit3b2949d8d0a6d32a5d8172a74feaa95a::$prefixLengthsPsr4;
    269             $loader->prefixDirsPsr4 = ComposerStaticInit3b2949d8d0a6d32a5d8172a74feaa95a::$prefixDirsPsr4;
    270             $loader->classMap = ComposerStaticInit3b2949d8d0a6d32a5d8172a74feaa95a::$classMap;
     268            $loader->prefixLengthsPsr4 = ComposerStaticInit802320a9b5ba85a72fedd4d0da64226f::$prefixLengthsPsr4;
     269            $loader->prefixDirsPsr4 = ComposerStaticInit802320a9b5ba85a72fedd4d0da64226f::$prefixDirsPsr4;
     270            $loader->classMap = ComposerStaticInit802320a9b5ba85a72fedd4d0da64226f::$classMap;
    271271
    272272        }, null, ClassLoader::class);
  • wappointment/trunk/vendor/composer/installed.php

    r2807195 r2874788  
    33namespace WappoVendor;
    44
    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)));
     5return 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) 2022 Wappointment
     1# Copyright (C) 2023 Wappointment
    22# This file is distributed under the same license as the Wappointment plugin.
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: Wappointment 2.4.13\n"
     5"Project-Id-Version: Wappointment 2.4.15\n"
    66"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wappointment-plugin\n"
    77"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
     
    1010"Content-Type: text/plain; charset=UTF-8\n"
    1111"Content-Transfer-Encoding: 8bit\n"
    12 "POT-Creation-Date: 2022-10-30T10:23:33+00:00\n"
     12"POT-Creation-Date: 2023-03-04T18:09:35+00:00\n"
    1313"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    1414"X-Generator: WP-CLI 2.5.0\n"
     
    2929msgstr ""
    3030
    31 #: app/Addons/AbstractBoot.php:216
     31#: app/Addons/AbstractBoot.php:214
    3232msgid "Your licence expired, you must renew in order to update to version %s"
    3333msgstr ""
    3434
    35 #: app/Addons/AbstractBoot.php:217
     35#: app/Addons/AbstractBoot.php:215
    3636msgid "Renew now"
    3737msgstr ""
     
    4040#: app/Services/Appointment.php:83
    4141#: app/Services/Appointment.php:266
    42 #: app/Services/AppointmentNew.php:249
    43 #: app/Services/AppointmentNew.php:432
     42#: app/Services/AppointmentNew.php:252
     43#: app/Services/AppointmentNew.php:449
    4444msgid "Can't find appointment"
    4545msgstr ""
     
    7272msgstr ""
    7373
    74 #: app/Controllers/BookingController.php:56
     74#: app/Controllers/BookingController.php:54
    7575#: app/Controllers/ClientController.php:36
    7676msgid "Appointment recorded"
     
    8989#: app/Services/Appointment.php:78
    9090#: app/Services/Appointment.php:260
    91 #: app/Services/AppointmentNew.php:241
    92 #: app/Services/AppointmentNew.php:426
     91#: app/Services/AppointmentNew.php:239
     92#: app/Services/AppointmentNew.php:443
    9393msgid "Malformed parameter"
    9494msgstr ""
     
    126126msgstr ""
    127127
    128 #: app/Controllers/EventsController.php:30
     128#: app/Controllers/EventsController.php:29
    129129msgid "Cannot modify an appointment which doesn't belong to you"
    130130msgstr ""
    131131
    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
    134136msgid "Appointment cancelled"
    135137msgstr ""
    136138
    137 #: app/Controllers/EventsController.php:46
     139#: app/Controllers/EventsController.php:45
     140#: app/Controllers/EventsController.php:58
    138141msgid "Error deleting appointment"
    139142msgstr ""
    140143
    141 #: app/Controllers/EventsController.php:112
     144#: app/Controllers/EventsController.php:123
    142145msgid "Appointment confirmed"
    143146msgstr ""
    144147
    145 #: app/Controllers/EventsController.php:114
     148#: app/Controllers/EventsController.php:125
    146149msgid "Error confirming appointment"
    147150msgstr ""
     
    159162msgstr ""
    160163
    161 #: app/Controllers/ReminderController.php:57
     164#: app/Controllers/ReminderController.php:58
    162165msgid "Reminder preview sent"
    163166msgstr ""
    164167
    165 #: app/Controllers/ReminderController.php:59
     168#: app/Controllers/ReminderController.php:60
    166169msgid "Error sending"
    167170msgstr ""
     
    463466msgstr ""
    464467
    465 #: app/Lists/translations_calendar.php:3
     468#: app/Lists/translations_calendar.php:4
    466469msgid "This week"
    467470msgstr ""
    468471
    469 #: app/Lists/translations_calendar.php:4
     472#: app/Lists/translations_calendar.php:5
    470473msgid "free slots"
    471474msgstr ""
    472475
    473 #: app/Lists/translations_calendar.php:5
     476#: app/Lists/translations_calendar.php:6
    474477msgid "Choose an action"
    475478msgstr ""
    476479
    477480#. translators: %1$s - date start %2$s - date end.
    478 #: app/Lists/translations_calendar.php:7
     481#: app/Lists/translations_calendar.php:8
    479482msgid "From %1$s until %2$s"
    480483msgstr ""
    481484
    482485#. translators: %s - cbuffer value in minutes
    483 #: app/Lists/translations_calendar.php:9
     486#: app/Lists/translations_calendar.php:10
    484487msgid "includes %s min buffer"
    485488msgstr ""
    486489
    487490#. translators: %s - total slot.
    488 #: app/Lists/translations_calendar.php:13
     491#: app/Lists/translations_calendar.php:14
    489492#: app/Lists/widget_settings.php:66
    490493msgid "%s free slots"
    491494msgstr ""
    492495
    493 #: app/Lists/translations_calendar.php:14
     496#: app/Lists/translations_calendar.php:15
    494497msgid "Show free times"
    495498msgstr ""
    496499
    497 #: app/Lists/translations_calendar.php:15
     500#: app/Lists/translations_calendar.php:16
    498501msgid "Group event"
    499502msgstr ""
    500503
    501 #: app/Lists/translations_calendar.php:16
     504#: app/Lists/translations_calendar.php:17
    502505msgid "Event for multiple participants"
     506msgstr ""
     507
     508#: app/Lists/translations_calendar.php:18
     509msgid "Do you really want to cancel"
     510msgstr ""
     511
     512#: app/Lists/translations_calendar.php:19
     513msgid "Confirm that you are free?"
     514msgstr ""
     515
     516#: app/Lists/translations_calendar.php:20
     517msgid "Click a time to select new start"
     518msgstr ""
     519
     520#: app/Lists/translations_calendar.php:21
     521msgid "Confirm new start:"
     522msgstr ""
     523
     524#: app/Lists/translations_calendar.php:22
     525msgid "Select another time"
     526msgstr ""
     527
     528#: app/Lists/translations_calendar.php:23
     529msgid "Modify your Weekly Availability"
    503530msgstr ""
    504531
     
    576603msgstr ""
    577604
    578 #: app/Lists/translations_js_common.php:3
     605#: app/Lists/translations_js_common.php:4
    579606msgid "Select or search timezone"
    580607msgstr ""
    581608
    582 #: app/Lists/translations_js_common.php:4
     609#: app/Lists/translations_js_common.php:5
    583610msgid "timezones"
    584611msgstr ""
    585612
    586 #: app/Lists/translations_js_common.php:6
     613#: app/Lists/translations_js_common.php:7
    587614msgid "Element is required"
    588615msgstr ""
    589616
    590 #: app/Lists/translations_js_common.php:8
     617#: app/Lists/translations_js_common.php:9
    591618msgid "Select countries"
    592619msgstr ""
    593620
    594 #: app/Lists/translations_js_common.php:9
     621#: app/Lists/translations_js_common.php:10
    595622msgid "Clear selection"
    596623msgstr ""
    597624
    598 #: app/Lists/translations_js_common.php:11
     625#: app/Lists/translations_js_common.php:12
    599626msgid "View"
    600627msgstr ""
    601628
    602 #: app/Lists/translations_js_common.php:12
     629#: app/Lists/translations_js_common.php:13
    603630msgid "Title"
    604631msgstr ""
    605632
    606 #: app/Lists/translations_js_common.php:13
     633#: app/Lists/translations_js_common.php:14
     634#: app/Lists/translations_js_common.php:45
     635msgid "Edit"
     636msgstr ""
     637
     638#: app/Lists/translations_js_common.php:15
     639msgid "Slug"
     640msgstr ""
     641
     642#: app/Lists/translations_js_common.php:16
     643msgid "Widget's settings"
     644msgstr ""
     645
     646#: app/Lists/translations_js_common.php:17
     647msgid "Button Title"
     648msgstr ""
     649
     650#: app/Lists/translations_js_common.php:18
     651msgid "Opens in a full screen popup"
     652msgstr ""
     653
     654#: app/Lists/translations_js_common.php:19
     655msgid "Random auto-select"
     656msgstr ""
     657
     658#: app/Lists/translations_js_common.php:20
     659msgid "Center"
     660msgstr ""
     661
     662#: app/Lists/translations_js_common.php:21
     663msgid "Auto-open Calendar"
     664msgstr ""
     665
     666#: app/Lists/translations_js_common.php:22
     667msgid "Full-width Calendar"
     668msgstr ""
     669
     670#: app/Lists/translations_js_common.php:23
     671msgid "Week view"
     672msgstr ""
     673
     674#: app/Lists/translations_js_common.php:24
     675msgid "Select staff first"
     676msgstr ""
     677
     678#: app/Lists/translations_js_common.php:25
     679msgid "Preview"
     680msgstr ""
     681
     682#: app/Lists/translations_js_common.php:26
     683msgid "Your booking page exists already!"
     684msgstr ""
     685
     686#: app/Lists/translations_js_common.php:27
     687msgid "Insert the booking form in a new page, within an existing page or within a widget area"
     688msgstr ""
     689
     690#: app/Lists/translations_js_common.php:28
     691msgid "Create a new page"
     692msgstr ""
     693
     694#: app/Lists/translations_js_common.php:29
     695msgid "Using a Shortcode"
     696msgstr ""
     697
     698#: app/Lists/translations_js_common.php:30
     699msgid "Using our Widget"
     700msgstr ""
     701
     702#: app/Lists/translations_js_common.php:31
     703msgid "Your shortcode:"
     704msgstr ""
     705
     706#: app/Lists/translations_js_common.php:32
     707msgid "How can I use this shortcode?"
     708msgstr ""
     709
     710#: app/Lists/translations_js_common.php:33
     711msgid "Customize"
     712msgstr ""
     713
     714#: app/Lists/translations_js_common.php:34
     715msgid "Insert"
     716msgstr ""
     717
     718#: app/Lists/translations_js_common.php:35
     719msgid "Edit Text"
     720msgstr ""
     721
     722#: app/Lists/translations_js_common.php:36
     723msgid "Edit Color"
     724msgstr ""
     725
     726#: app/Lists/translations_js_common.php:37
     727msgid "General"
     728msgstr ""
     729
     730#: app/Lists/translations_js_common.php:38
     731msgid "Step"
     732msgstr ""
     733
     734#: app/Lists/translations_js_common.php:39
     735msgid "Edit more colors"
     736msgstr ""
     737
     738#: app/Lists/translations_js_common.php:40
     739msgid "Primary Color"
     740msgstr ""
     741
     742#: app/Lists/translations_js_common.php:42
     743msgid "Create"
     744msgstr ""
     745
    607746#: app/Lists/translations_js_common.php:43
    608 msgid "Edit"
    609 msgstr ""
    610 
    611 #: app/Lists/translations_js_common.php:14
    612 msgid "Slug"
    613 msgstr ""
    614 
    615 #: app/Lists/translations_js_common.php:15
    616 msgid "Widget's settings"
    617 msgstr ""
    618 
    619 #: app/Lists/translations_js_common.php:16
    620 msgid "Button Title"
    621 msgstr ""
    622 
    623 #: app/Lists/translations_js_common.php:17
    624 msgid "Opens in a full screen popup"
    625 msgstr ""
    626 
    627 #: app/Lists/translations_js_common.php:18
    628 msgid "Random auto-select"
    629 msgstr ""
    630 
    631 #: app/Lists/translations_js_common.php:19
    632 msgid "Center"
    633 msgstr ""
    634 
    635 #: app/Lists/translations_js_common.php:20
    636 msgid "Auto-open Calendar"
    637 msgstr ""
    638 
    639 #: app/Lists/translations_js_common.php:21
    640 msgid "Full-width Calendar"
    641 msgstr ""
    642 
    643 #: app/Lists/translations_js_common.php:22
    644 msgid "Week view"
    645 msgstr ""
    646 
    647 #: app/Lists/translations_js_common.php:23
    648 msgid "Select staff first"
    649 msgstr ""
    650 
    651 #: app/Lists/translations_js_common.php:24
    652 msgid "Preview"
    653 msgstr ""
    654 
    655 #: app/Lists/translations_js_common.php:25
    656 msgid "Your booking page exists already!"
    657 msgstr ""
    658 
    659 #: app/Lists/translations_js_common.php:26
    660 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:27
    664 msgid "Create a new page"
    665 msgstr ""
    666 
    667 #: app/Lists/translations_js_common.php:28
    668 msgid "Using a Shortcode"
    669 msgstr ""
    670 
    671 #: app/Lists/translations_js_common.php:29
    672 msgid "Using our Widget"
    673 msgstr ""
    674 
    675 #: app/Lists/translations_js_common.php:30
    676 msgid "Your shortcode:"
    677 msgstr ""
    678 
    679 #: app/Lists/translations_js_common.php:31
    680 msgid "How can I use this shortcode?"
    681 msgstr ""
    682 
    683 #: app/Lists/translations_js_common.php:32
    684 msgid "Customize"
    685 msgstr ""
    686 
    687 #: app/Lists/translations_js_common.php:33
    688 msgid "Insert"
    689 msgstr ""
    690 
    691 #: app/Lists/translations_js_common.php:34
    692 msgid "Edit Text"
    693 msgstr ""
    694 
    695 #: app/Lists/translations_js_common.php:35
    696 msgid "Edit Color"
    697 msgstr ""
    698 
    699 #: app/Lists/translations_js_common.php:36
    700 msgid "General"
    701 msgstr ""
    702 
    703 #: app/Lists/translations_js_common.php:37
    704 msgid "Step"
    705 msgstr ""
    706 
    707 #: app/Lists/translations_js_common.php:38
    708 msgid "Edit more colors"
    709 msgstr ""
    710 
    711 #: app/Lists/translations_js_common.php:40
    712 msgid "Create"
    713 msgstr ""
    714 
    715 #: app/Lists/translations_js_common.php:41
    716747msgid "Hide"
    717748msgstr ""
    718749
    719 #: app/Lists/translations_js_common.php:42
    720 #: app/Lists/translations_js_common.php:68
     750#: app/Lists/translations_js_common.php:44
     751#: app/Lists/translations_js_common.php:75
    721752msgid "Save"
    722753msgstr ""
    723754
    724 #: app/Lists/translations_js_common.php:44
     755#: app/Lists/translations_js_common.php:46
     756msgid "Duplicate"
     757msgstr ""
     758
     759#: app/Lists/translations_js_common.php:47
     760msgid "Translate"
     761msgstr ""
     762
     763#: app/Lists/translations_js_common.php:48
     764msgid "Language"
     765msgstr ""
     766
     767#: app/Lists/translations_js_common.php:49
    725768msgid "Delete"
    726769msgstr ""
    727770
    728 #: app/Lists/translations_js_common.php:45
     771#: app/Lists/translations_js_common.php:50
    729772msgid "Sort"
    730773msgstr ""
    731774
    732 #: app/Lists/translations_js_common.php:46
     775#: app/Lists/translations_js_common.php:51
    733776#: app/Lists/translations_orders.php:6
    734777#: app/Lists/widget_settings.php:114
    735778#: app/Lists/widget_translations.php:12
    736 #: app/Services/Settings.php:101
     779#: app/Services/Settings.php:102
     780#: app/Services/ViewsData.php:235
    737781msgid "Cancel"
    738782msgstr ""
    739783
    740 #: app/Lists/translations_js_common.php:47
     784#: app/Lists/translations_js_common.php:52
    741785#: app/Lists/widget_settings.php:83
    742786#: app/Lists/widget_settings.php:115
     
    746790msgstr ""
    747791
    748 #: app/Lists/translations_js_common.php:48
     792#: app/Lists/translations_js_common.php:53
    749793msgid "Get Shortcode"
    750794msgstr ""
    751795
    752 #: app/Lists/translations_js_common.php:49
     796#: app/Lists/translations_js_common.php:54
    753797#: app/Lists/translations_wizard.php:3
    754798#: app/Lists/widget_settings.php:82
     
    756800msgstr ""
    757801
    758 #: app/Lists/translations_js_common.php:50
     802#: app/Lists/translations_js_common.php:55
    759803msgid "No results found"
    760804msgstr ""
    761805
    762 #: app/Lists/translations_js_common.php:51
     806#: app/Lists/translations_js_common.php:56
    763807msgid "Clear"
    764808msgstr ""
    765809
    766 #: app/Lists/translations_js_common.php:52
     810#: app/Lists/translations_js_common.php:57
    767811msgid "Search"
    768812msgstr ""
    769813
    770 #: app/Lists/translations_js_common.php:53
     814#: app/Lists/translations_js_common.php:58
    771815msgid "Close"
    772816msgstr ""
    773817
    774 #: app/Lists/translations_js_common.php:54
     818#: app/Lists/translations_js_common.php:59
    775819msgid "Add"
    776820msgstr ""
    777821
    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
     826msgid "Reschedule"
     827msgstr ""
     828
     829#: app/Lists/translations_js_common.php:63
    779830msgid "Hours"
    780831msgstr ""
    781832
    782833#. translators: %s - minutes
    783 #: app/Lists/translations_js_common.php:58
     834#: app/Lists/translations_js_common.php:65
    784835#: app/Models/Appointment/ManipulateDuration.php:27
    785836msgid "%s min"
     
    787838
    788839#. translators: %s - hours
    789 #: app/Lists/translations_js_common.php:60
     840#: app/Lists/translations_js_common.php:67
    790841msgid "%sh"
    791842msgstr ""
    792843
    793 #: app/Lists/translations_js_common.php:61
     844#: app/Lists/translations_js_common.php:68
    794845msgid "Account Selection"
    795846msgstr ""
    796847
    797 #: app/Lists/translations_js_common.php:62
     848#: app/Lists/translations_js_common.php:69
    798849msgid "Select an account or enter an email to create a new one"
    799850msgstr ""
    800851
    801 #: app/Lists/translations_js_common.php:63
    802 #: app/Lists/translations_settings.php:4
     852#: app/Lists/translations_js_common.php:70
     853#: app/Lists/translations_settings.php:5
    803854#: app/WP/StaffHistory.php:80
    804855msgid "Name"
    805856msgstr ""
    806857
    807 #: app/Lists/translations_js_common.php:64
     858#: app/Lists/translations_js_common.php:71
    808859msgid "Select account or enter email"
    809860msgstr ""
    810861
    811 #: app/Lists/translations_js_common.php:65
     862#: app/Lists/translations_js_common.php:72
    812863msgid "Set a timezone"
    813864msgstr ""
    814865
    815 #: app/Lists/translations_js_common.php:66
     866#: app/Lists/translations_js_common.php:73
    816867msgid "Set a standard weekly schedule"
    817868msgstr ""
    818869
    819 #: app/Lists/translations_js_common.php:67
     870#: app/Lists/translations_js_common.php:74
    820871msgid "Available Booking Days"
    821872msgstr ""
    822873
    823 #: app/Lists/translations_js_common.php:69
     874#: app/Lists/translations_js_common.php:76
    824875msgid "Send Preview"
    825876msgstr ""
    826877
    827 #: app/Lists/translations_js_common.php:71
     878#: app/Lists/translations_js_common.php:78
    828879msgid "Unlock this feature"
    829880msgstr ""
    830881
    831882#. translators: %s is the addon name
    832 #: app/Lists/translations_js_common.php:73
     883#: app/Lists/translations_js_common.php:80
    833884msgid "Unlock premium feature with our addon \"%s\""
    834885msgstr ""
    835886
    836 #: app/Lists/translations_js_common.php:74
     887#: app/Lists/translations_js_common.php:81
    837888msgid "Get the Addon"
    838889msgstr ""
    839890
    840 #: app/Lists/translations_js_common.php:75
     891#: app/Lists/translations_js_common.php:82
    841892msgid "Remember"
    842893msgstr ""
    843894
    844 #: app/Lists/translations_js_common.php:76
     895#: app/Lists/translations_js_common.php:83
    845896#: app/System/InitBackend.php:176
    846897#: app/WP/Menus.php:29
     
    848899msgstr ""
    849900
    850 #: app/Lists/translations_js_common.php:77
     901#: app/Lists/translations_js_common.php:84
    851902msgid "Created at"
    852903msgstr ""
    853904
    854 #: app/Lists/translations_js_common.php:79
     905#: app/Lists/translations_js_common.php:86
    855906msgid "Please make a selection"
    856907msgstr ""
     
    888939
    889940#: app/Lists/translations_orders.php:14
    890 #: app/Models/Service.php:35
     941#: app/Models/Service.php:36
    891942msgid "Free"
    892943msgstr ""
    893944
    894945#: app/Lists/translations_orders.php:15
    895 #: app/Models/Service.php:33
     946#: app/Models/Service.php:34
    896947msgid "Selling"
    897948msgstr ""
    898949
    899 #: app/Lists/translations_settings.php:3
     950#: app/Lists/translations_settings.php:4
    900951msgid "Calendars & Staff"
    901952msgstr ""
    902953
    903 #: app/Lists/translations_settings.php:5
     954#: app/Lists/translations_settings.php:6
    904955#: app/Lists/translations_wizard.php:13
    905956msgid "Weekly Availability"
    906957msgstr ""
    907958
    908 #: app/Lists/translations_settings.php:6
    909 #: app/Lists/translations_settings.php:35
     959#: app/Lists/translations_settings.php:7
     960#: app/Lists/translations_settings.php:36
    910961msgid "set default"
    911962msgstr ""
    912963
    913 #: app/Lists/translations_settings.php:7
     964#: app/Lists/translations_settings.php:8
    914965msgid "Assign services"
    915966msgstr ""
    916967
    917 #: app/Lists/translations_settings.php:8
     968#: app/Lists/translations_settings.php:9
    918969msgid "Integrations"
    919970msgstr ""
    920971
    921 #: app/Lists/translations_settings.php:9
     972#: app/Lists/translations_settings.php:10
    922973#: app/System/Status.php:101
    923974msgid "Connect Account"
    924975msgstr ""
    925976
    926 #: app/Lists/translations_settings.php:10
     977#: app/Lists/translations_settings.php:11
    927978msgid "Enter account code"
    928979msgstr ""
    929980
    930 #: app/Lists/translations_settings.php:11
     981#: app/Lists/translations_settings.php:12
    931982msgid "Don't have an account yet?"
    932983msgstr ""
    933984
    934 #: app/Lists/translations_settings.php:12
     985#: app/Lists/translations_settings.php:13
    935986msgid "Create your free account"
    936987msgstr ""
    937988
    938 #: app/Lists/translations_settings.php:13
     989#: app/Lists/translations_settings.php:14
    939990msgid "Automate your appointments' process"
    940991msgstr ""
    941992
    942 #: app/Lists/translations_settings.php:14
     993#: app/Lists/translations_settings.php:15
    943994msgid "Connect your favourite tools in seconds and automatically:"
    944995msgstr ""
    945996
    946 #: app/Lists/translations_settings.php:15
     997#: app/Lists/translations_settings.php:16
    947998msgid "Create meetings for"
    948999msgstr ""
    9491000
    950 #: app/Lists/translations_settings.php:16
     1001#: app/Lists/translations_settings.php:17
    9511002msgid "Save new appointments in"
    9521003msgstr ""
    9531004
    954 #: app/Lists/translations_settings.php:17
     1005#: app/Lists/translations_settings.php:18
    9551006msgid "and soon more to come ..."
    9561007msgstr ""
    9571008
    958 #: app/Lists/translations_settings.php:20
     1009#: app/Lists/translations_settings.php:21
    9591010msgid "Sync .ICS"
    9601011msgstr ""
    9611012
    962 #: app/Lists/translations_settings.php:21
     1013#: app/Lists/translations_settings.php:22
    9631014msgid "Connect .ICS calendar"
    9641015msgstr ""
    9651016
    966 #: app/Lists/translations_settings.php:22
     1017#: app/Lists/translations_settings.php:23
    9671018msgid "Make sure clients can't book you when you're busy"
    9681019msgstr ""
    9691020
    970 #: app/Lists/translations_settings.php:23
     1021#: app/Lists/translations_settings.php:24
    9711022msgid "Paste a .ICS calendar URL"
    9721023msgstr ""
    9731024
    974 #: app/Lists/translations_settings.php:24
     1025#: app/Lists/translations_settings.php:25
    9751026msgid "See how to get the URL of your calendar:"
    9761027msgstr ""
    9771028
    978 #: app/Lists/translations_settings.php:27
     1029#: app/Lists/translations_settings.php:28
    9791030msgid "Import"
    9801031msgstr ""
    9811032
    982 #: app/Lists/translations_settings.php:28
     1033#: app/Lists/translations_settings.php:29
    9831034msgid "Export"
    9841035msgstr ""
    9851036
    986 #: app/Lists/translations_settings.php:29
     1037#: app/Lists/translations_settings.php:30
    9871038msgid "Pick services provided by staff"
    9881039msgstr ""
    9891040
    9901041#. translators: %s - replace by Google Calendar, iCal, etc ...
    991 #: app/Lists/translations_settings.php:31
     1042#: app/Lists/translations_settings.php:32
    9921043msgid "Get your %s URL"
    9931044msgstr ""
    9941045
    995 #: app/Lists/translations_settings.php:32
     1046#: app/Lists/translations_settings.php:33
    9961047msgid "Connect your external calendars, to automatically lock times when you're already busy"
    9971048msgstr ""
    9981049
    999 #: app/Lists/translations_settings.php:33
     1050#: app/Lists/translations_settings.php:34
    10001051msgid "Get your new bookings to appear straight in your calendar app"
    10011052msgstr ""
    10021053
    1003 #: app/Lists/translations_settings.php:36
     1054#: app/Lists/translations_settings.php:37
    10041055msgid "Set Permissions"
    10051056msgstr ""
    10061057
    1007 #: app/Lists/translations_settings.php:37
     1058#: app/Lists/translations_settings.php:38
    10081059msgid "Set Custom Field"
    10091060msgstr ""
    10101061
    1011 #: app/Lists/translations_settings.php:39
     1062#: app/Lists/translations_settings.php:40
    10121063msgid "Services"
    10131064msgstr ""
    10141065
    1015 #: app/Lists/translations_settings.php:40
     1066#: app/Lists/translations_settings.php:41
    10161067msgid "Add 1-to-1 service"
    10171068msgstr ""
    10181069
    1019 #: app/Lists/translations_settings.php:41
     1070#: app/Lists/translations_settings.php:42
    10201071msgid "Add Group service"
    10211072msgstr ""
    10221073
    1023 #: app/Lists/translations_settings.php:42
    1024 #: app/Lists/translations_settings.php:50
     1074#: app/Lists/translations_settings.php:43
     1075#: app/Lists/translations_settings.php:51
    10251076msgid "Durations"
    10261077msgstr ""
    10271078
    1028 #: app/Lists/translations_settings.php:43
     1079#: app/Lists/translations_settings.php:44
    10291080msgid "Delivery Modalities"
    10301081msgstr ""
    10311082
    1032 #: app/Lists/translations_settings.php:44
     1083#: app/Lists/translations_settings.php:45
    10331084msgid "Manage"
    10341085msgstr ""
    10351086
    1036 #: app/Lists/translations_settings.php:45
     1087#: app/Lists/translations_settings.php:46
    10371088msgid "You don't have any services yet"
    10381089msgstr ""
    10391090
    1040 #: app/Lists/translations_settings.php:47
     1091#: app/Lists/translations_settings.php:48
    10411092#: app/Lists/widget_settings.php:47
    10421093#: app/Messages/EmailHelper.php:94
     
    10451096msgstr ""
    10461097
    1047 #: app/Lists/translations_settings.php:48
     1098#: app/Lists/translations_settings.php:49
    10481099msgid "Sell service"
    10491100msgstr ""
    10501101
    1051 #: app/Lists/translations_settings.php:49
     1102#: app/Lists/translations_settings.php:50
    10521103msgid "Short description"
    10531104msgstr ""
    10541105
    1055 #: app/Lists/translations_settings.php:51
     1106#: app/Lists/translations_settings.php:52
    10561107msgid "Delivery modality"
    10571108msgstr ""
    10581109
    1059 #: app/Lists/translations_settings.php:52
     1110#: app/Lists/translations_settings.php:53
    10601111msgid "When client select this service, display the following fields"
    10611112msgstr ""
    10621113
    1063 #: app/Lists/translations_settings.php:53
     1114#: app/Lists/translations_settings.php:54
    10641115msgid "Phone field accepted countries"
    10651116msgstr ""
    10661117
    10671118#. translators: %s - currency symbol.
    1068 #: app/Lists/translations_settings.php:55
     1119#: app/Lists/translations_settings.php:56
    10691120msgid "Price (%s)"
    10701121msgstr ""
    10711122
    1072 #: app/Lists/translations_settings.php:57
     1123#: app/Lists/translations_settings.php:58
    10731124msgid "Add Delivery Modality"
    10741125msgstr ""
    10751126
    1076 #: app/Lists/translations_settings.php:58
     1127#: app/Lists/translations_settings.php:59
    10771128msgid "Fields"
    10781129msgstr ""
    10791130
    1080 #: app/Lists/translations_settings.php:59
     1131#: app/Lists/translations_settings.php:60
    10811132msgid "Links"
    10821133msgstr ""
    10831134
    1084 #: app/Lists/translations_settings.php:60
     1135#: app/Lists/translations_settings.php:61
    10851136msgid "Add Custom Field"
    10861137msgstr ""
    10871138
    1088 #: app/Lists/translations_settings.php:61
     1139#: app/Lists/translations_settings.php:62
    10891140msgid "Add Duration"
    10901141msgstr ""
    10911142
    1092 #: app/Lists/translations_settings.php:62
     1143#: app/Lists/translations_settings.php:63
    10931144msgid "Add Reminder"
    10941145msgstr ""
    10951146
    1096 #: app/Lists/translations_settings.php:63
     1147#: app/Lists/translations_settings.php:64
    10971148msgid "Add Email Reminder"
    10981149msgstr ""
    10991150
    1100 #: app/Lists/translations_settings.php:64
     1151#: app/Lists/translations_settings.php:65
    11011152msgid "Add SMS reminder"
    11021153msgstr ""
    11031154
    1104 #: app/Lists/translations_settings.php:65
     1155#: app/Lists/translations_settings.php:66
    11051156msgid "You don't have any reminders"
    11061157msgstr ""
    11071158
    1108 #: app/Lists/translations_settings.php:66
     1159#: app/Lists/translations_settings.php:67
    11091160msgid "Phone session"
    11101161msgstr ""
    11111162
    1112 #: app/Lists/translations_settings.php:67
     1163#: app/Lists/translations_settings.php:68
    11131164msgid "Skype session"
    11141165msgstr ""
    11151166
    1116 #: app/Lists/translations_settings.php:68
     1167#: app/Lists/translations_settings.php:69
    11171168msgid "Video session"
    11181169msgstr ""
    11191170
    1120 #: app/Lists/translations_settings.php:69
     1171#: app/Lists/translations_settings.php:70
    11211172msgid "Session at an address"
    11221173msgstr ""
    11231174
    1124 #: app/Lists/translations_settings.php:70
     1175#: app/Lists/translations_settings.php:71
    11251176msgid "Link to a Wappointment page"
    11261177msgstr ""
    11271178
    1128 #: app/Lists/translations_settings.php:74
     1179#: app/Lists/translations_settings.php:75
    11291180msgid "Manage services"
    11301181msgstr ""
    11311182
    1132 #: app/Lists/translations_settings.php:75
     1183#: app/Lists/translations_settings.php:76
    11331184msgid "Sell packages"
    11341185msgstr ""
    11351186
    1136 #: app/Lists/translations_settings.php:76
     1187#: app/Lists/translations_settings.php:77
    11371188msgid "Currency:"
    11381189msgstr ""
    11391190
    1140 #: app/Lists/translations_settings.php:77
     1191#: app/Lists/translations_settings.php:78
    11411192msgid "Tax:"
    11421193msgstr ""
    11431194
    1144 #: app/Lists/translations_settings.php:78
     1195#: app/Lists/translations_settings.php:79
    11451196msgid "Payments accepted:"
    11461197msgstr ""
    11471198
    1148 #: app/Lists/translations_settings.php:79
     1199#: app/Lists/translations_settings.php:80
    11491200msgid "Inserts dynamic data"
    11501201msgstr ""
    11511202
    1152 #: app/Lists/translations_settings.php:80
     1203#: app/Lists/translations_settings.php:81
    11531204msgid "Show selection only when condition is met"
    11541205msgstr ""
    11551206
    1156 #: app/Lists/translations_settings.php:81
     1207#: app/Lists/translations_settings.php:82
    11571208msgid "Select text to enable"
    11581209msgstr ""
    11591210
    1160 #: app/Lists/translations_settings.php:82
     1211#: app/Lists/translations_settings.php:83
    11611212msgid "Shows when"
    11621213msgstr ""
    11631214
    1164 #: app/Lists/translations_settings.php:84
     1215#: app/Lists/translations_settings.php:85
    11651216msgid "Emails & SMS"
    11661217msgstr ""
    11671218
    1168 #: app/Lists/translations_settings.php:86
     1219#: app/Lists/translations_settings.php:87
    11691220msgid "Appearance"
    11701221msgstr ""
    11711222
    1172 #: app/Lists/translations_settings.php:88
     1223#: app/Lists/translations_settings.php:89
    11731224#: app/Lists/widget_fields.php:201
    11741225msgid "Advanced"
    11751226msgstr ""
    11761227
    1177 #: app/Lists/translations_settings.php:90
     1228#: app/Lists/translations_settings.php:91
     1229msgid "You can only unpublish it"
     1230msgstr ""
     1231
     1232#: app/Lists/translations_settings.php:92
    11781233msgid "When is the reminder sent? (before the appointment)"
    11791234msgstr ""
    11801235
    1181 #: app/Lists/translations_settings.php:91
     1236#: app/Lists/translations_settings.php:93
    11821237msgid "Select unit"
    11831238msgstr ""
    11841239
    1185 #: app/Lists/translations_settings.php:92
     1240#: app/Lists/translations_settings.php:94
    11861241msgid "Header Image"
    11871242msgstr ""
    11881243
    1189 #: app/Lists/translations_settings.php:93
     1244#: app/Lists/translations_settings.php:95
    11901245msgid "Subject"
    11911246msgstr ""
    11921247
    1193 #: app/Lists/translations_settings.php:94
     1248#: app/Lists/translations_settings.php:96
    11941249msgid "Select an image"
    11951250msgstr ""
     
    16641719msgstr ""
    16651720
    1666 #: app/Lists/widget_settings.php:121
    1667 #: app/Lists/widget_translations.php:11
    1668 #: app/Services/Settings.php:100
    1669 msgid "Reschedule"
    1670 msgstr ""
    1671 
    16721721#: app/Lists/widget_settings.php:125
    16731722msgid "Pick a service"
     
    19882037msgstr ""
    19892038
     2039#: app/Models/CanGetCustomFieldValue.php:54
     2040msgid "Yes"
     2041msgstr ""
     2042
     2043#: app/Models/CanGetCustomFieldValue.php:54
     2044msgid "No"
     2045msgstr ""
     2046
    19902047#: app/Models/Order.php:51
    19912048msgid "Pending"
     
    20122069msgstr ""
    20132070
     2071#: app/Models/Reminder.php:95
     2072msgid "Sent after appointment has been confirmed."
     2073msgstr ""
     2074
     2075#: app/Models/Reminder.php:96
     2076msgid "Sent after appointment has been rescheduled."
     2077msgstr ""
     2078
    20142079#: app/Models/Reminder.php:97
    2015 msgid "Sent after appointment has been confirmed."
     2080msgid "Sent after appointment has been cancelled."
    20162081msgstr ""
    20172082
    20182083#: app/Models/Reminder.php:98
    2019 msgid "Sent after appointment has been rescheduled."
    2020 msgstr ""
    2021 
    2022 #: app/Models/Reminder.php:99
    2023 msgid "Sent after appointment has been cancelled."
    2024 msgstr ""
    2025 
    2026 #: app/Models/Reminder.php:100
    20272084msgid "Sent after appointment has been booked (when admin approval is required or when payment method is active)"
    20282085msgstr ""
    20292086
    20302087#. translators: %1$s is replaced with a number of %2$s which are either, minutes, hours or days
    2031 #: app/Models/Reminder.php:109
     2088#: app/Models/Reminder.php:107
    20322089msgid "Sent before appointment takes place.(sent %1$s %2$s before)"
    20332090msgstr ""
     
    20432100
    20442101#: app/Services/Appointment.php:86
    2045 #: app/Services/AppointmentNew.php:252
     2102#: app/Services/AppointmentNew.php:255
    20462103msgid "Can't reschedule appointment anymore"
    20472104msgstr ""
    20482105
    20492106#: app/Services/Appointment.php:269
    2050 #: app/Services/AppointmentNew.php:435
     2107#: app/Services/AppointmentNew.php:452
    20512108msgid "Can't cancel appointment anymore"
    20522109msgstr ""
    20532110
    2054 #: app/Services/AppointmentNew.php:301
     2111#: app/Services/AppointmentNew.php:319
    20552112msgid "Not allowed to book"
    20562113msgstr ""
    20572114
    2058 #: app/Services/AppointmentNew.php:311
     2115#: app/Services/AppointmentNew.php:329
    20592116msgid "Slot not available"
    20602117msgstr ""
    20612118
    2062 #: app/Services/AppointmentNew.php:369
     2119#: app/Services/AppointmentNew.php:387
    20632120msgid "Slot already booked"
    20642121msgstr ""
     
    20682125msgstr ""
    20692126
    2070 #: app/Services/Client.php:16
     2127#: app/Services/Client.php:17
    20712128msgid "Max active bookings reached! Cancel one of your appointments in order to book a new one."
    20722129msgstr ""
     
    22792336msgstr ""
    22802337
    2281 #: app/Services/Settings.php:102
     2338#: app/Services/Settings.php:103
    22822339msgid "Save to calendar"
    22832340msgstr ""
    22842341
    2285 #: app/Services/Settings.php:103
     2342#: app/Services/Settings.php:104
    22862343msgid "Book a new appointment"
    22872344msgstr ""
    22882345
    2289 #: app/Services/Settings.php:140
     2346#: app/Services/Settings.php:141
    22902347msgid "Order nº"
    22912348msgstr ""
     
    22962353msgstr ""
    22972354
    2298 #: app/Services/ViewsData.php:213
     2355#: app/Services/ViewsData.php:212
    22992356#: app/WP/Widget.php:38
    23002357msgid "Book an appointment"
    23012358msgstr ""
    23022359
    2303 #: app/Services/ViewsData.php:214
     2360#: app/Services/ViewsData.php:213
    23042361msgid "On behalf of your client"
    23052362msgstr ""
    23062363
     2364#: app/Services/ViewsData.php:219
     2365msgid "Open this time"
     2366msgstr ""
     2367
    23072368#: app/Services/ViewsData.php:220
    2308 msgid "Open this time"
    2309 msgstr ""
    2310 
    2311 #: app/Services/ViewsData.php:221
    23122369msgid "Allow new bookings"
    23132370msgstr ""
    23142371
     2372#: app/Services/ViewsData.php:226
     2373msgid "Block this time"
     2374msgstr ""
     2375
    23152376#: app/Services/ViewsData.php:227
    2316 msgid "Block this time"
    2317 msgstr ""
    2318 
    2319 #: app/Services/ViewsData.php:228
    23202377msgid "Prevent new bookings"
    23212378msgstr ""
    23222379
    2323 #: app/Services/Wappointment/Addons.php:169
     2380#: app/Services/Wappointment/Addons.php:145
    23242381msgid "Success installing addon"
    23252382msgstr ""
Note: See TracChangeset for help on using the changeset viewer.