Plugin Directory

Changeset 2807115


Ignore:
Timestamp:
10/29/2022 09:44:01 PM (3 years ago)
Author:
wappointment
Message:

Commit version 2.4.12 to trunk

Location:
wappointment/trunk
Files:
11 added
11 deleted
33 edited

Legend:

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

    r2727796 r2807115  
    2424        $service = $isLegacy ? \Wappointment\Services\Service::get() : \Wappointment\Managers\Central::get('ServiceModel')::find((int) $appointment->service_id);
    2525        $client = $appointment->client()->select(['name', 'email', 'options'])->first();
    26         return apply_filters('wappointment_appointment_load', ['appointment' => $appointment->toArraySpecial(), 'client' => $client, 'service' => $service, 'staff' => $isLegacy ? (new \Wappointment\WP\StaffLegacy($appointment->getStaffId()))->toArray() : (new \Wappointment\WP\Staff($appointment->getStaffId()))->toArray(), 'date_format' => \Wappointment\Services\Settings::get('date_format'), 'time_format' => \Wappointment\Services\Settings::get('time_format'), 'date_time_union' => \Wappointment\Services\Settings::get('date_time_union', ' - '), 'display' => [
     26        $staff = $isLegacy ? (new \Wappointment\WP\StaffLegacy($appointment->getStaffId()))->toArray() : (new \Wappointment\WP\Staff($appointment->getStaffId()))->toArray();
     27        return apply_filters('wappointment_appointment_load', ['appointment' => $appointment->toArraySpecial(), 'client' => $client, 'service' => $service, 'staff' => $staff, 'date_format' => \Wappointment\Services\Settings::get('date_format'), 'time_format' => \Wappointment\Services\Settings::get('time_format'), 'date_time_union' => \Wappointment\Services\Settings::get('date_time_union', ' - '), 'display' => [
    2728            '[h2]getText(title)[/h2]',
    2829            /* translators: %1$s is service name, %2$s is the duration  */
    2930            empty($client) ? '' : \sprintf(__('%1$s - %2$s', 'wappointment'), '[b]' . $client->name . '[/b]', $client->email),
    3031            \sprintf(__('%1$s - %2$s', 'wappointment'), '[b]' . $service->name . '[/b]', $appointment->getDuration()),
     32            \sprintf(__('Staff: %s', 'wappointment'), $staff['n']),
     33            \sprintf(__('Location: %s', 'wappointment'), $appointment->getlocation()),
    3134        ]], $appointment, $request);
    3235    }
  • wappointment/trunk/app/Controllers/CalendarsController.php

    r2693573 r2807115  
    8080    public function testIsAllowedToRunQuery($idName, \Wappointment\ClassConnect\Request $request)
    8181    {
    82         if (!\Wappointment\Services\CurrentUser::isAdmin() && (int) \Wappointment\Services\CurrentUser::calendarId() !== (int) $request->input($idName)) {
     82        if (!\Wappointment\Services\CurrentUser::isAdmin() && !\Wappointment\Services\CurrentUser::owns((int) $request->input($idName))) {
    8383            throw new \WappointmentException(\Wappointment\Helpers\Translations::get('forbidden'), 1);
    8484        }
  • wappointment/trunk/app/Controllers/ReminderController.php

    r2645781 r2807115  
    6363        $queryReminders->activeReminders();
    6464        $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'), '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()]];
     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()]];
    6666        $data['email_logo'] = $this->isLegacy() ? \Wappointment\Services\Settings::getStaff('email_logo') : \Wappointment\Services\Settings::get('email_logo');
    6767        return apply_filters('wappointment_settings_reminders_get', $data);
  • wappointment/trunk/app/Formatters/EventsCalendar.php

    r2742428 r2807115  
    9393            'title' => !empty($preparedClient) ? $preparedClient->name : __('Unknown client', 'wappointment'),
    9494            /* translators: %1$s is service name, %2$s is the duration  */
    95             'service' => \sprintf(__('%1$s - %2$smin', 'wappointment'), $nameService, $event->getDurationInSec() / 60),
     95            'service' => \sprintf(__('%1$s - %2$s min', 'wappointment'), $nameService, $event->getDurationInSec() / 60),
    9696            'time' => $this->formatAppointmentTime($event->start_at, $this->timeFormat) . ' - ' . $this->formatAppointmentTime($event->getEndTimeWithoutBuffer(), $this->timeFormat),
    9797            'location' => $event->location->name,
  • wappointment/trunk/app/Helpers/TipTap.php

    r2459859 r2807115  
    4747            case 'text':
    4848            case 'doc':
     49            case 'hard_break':
    4950                return false;
    5051        }
  • wappointment/trunk/app/Installation/Migrate.php

    r2529936 r2807115  
    2121    protected function getForeignName($name)
    2222    {
    23         return is_multisite() ? \Wappointment\ClassConnect\Capsule::connection()->getTablePrefix() . $name : $name;
     23        return \Wappointment\ClassConnect\Capsule::connection()->getTablePrefix() . $name;
    2424    }
    2525    protected function setMigrationFolders($migrations_folder = false)
  • wappointment/trunk/app/Jobs/AbstractAppointmentEmailJob.php

    r2645781 r2807115  
    1111        //if the email is empty that means there was no result so we can just skip sending the email
    1212        if (!empty($emailObject->body)) {
    13             $result = $this->transport->to($this->client->mailableAddress())->send($emailObject);
    14             if (!$result) {
     13            $this->transport->to($this->client->mailableAddress());
     14            $this->addReplyTo();
     15            if (!$this->transport->send($emailObject)) {
    1516                throw new \WappointmentException('Error while sending email 1', 1);
    1617            }
     18        }
     19    }
     20    protected function addReplyTo()
     21    {
     22        $has_reply_to = apply_filters('wappointment_replyto_email', '');
     23        if (!empty($has_reply_to)) {
     24            $this->transport->reply($has_reply_to, apply_filters('wappointment_replyto_name', ''));
    1725        }
    1826    }
  • wappointment/trunk/app/Lists/currencies.php

    r2601283 r2807115  
    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' => 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' => ' ']];
  • wappointment/trunk/app/Lists/translations_calendar.php

    r2679872 r2807115  
    1010    'calendar_popup_from_until' => __('From %1$s until %2$s', 'wappointment'),
    1111    /* translators: %s - cbuffer value in minutes */
    12     'calendar_popup_includes' => __('includes %smin buffer', 'wappointment'),
     12    'calendar_popup_includes' => __('includes %s min buffer', 'wappointment'),
    1313    'calendar_popup_you_cal_sel' => __('Your calendar selection:'),
    1414    'calendar_popup_confirm_free' => __('Confirm that you are free'),
  • wappointment/trunk/app/Lists/translations_js_common.php

    r2688125 r2807115  
    1616    'bwe_widget_button_title' => __('Button Title', 'wappointment'),
    1717    'bwe_widget_ck_fs_popup' => __('Opens in a full screen popup', 'wappointment'),
     18    'bwe_widget_ck_random' => __('Random auto-select', 'wappointment'),
    1819    'bwe_widget_ck_center' => __('Center', 'wappointment'),
    1920    'bwe_widget_ck_open' => __('Auto-open Calendar', 'wappointment'),
     
    5354    'regav_hours' => __('Hours', 'wappointment'),
    5455    /* translators: %s - minutes */
    55     'regav_min' => __('%smin', 'wappointment'),
     56    'regav_min' => __('%s min', 'wappointment'),
    5657    /* translators: %s - hours */
    5758    'regav_h' => __('%sh', 'wappointment'),
  • wappointment/trunk/app/Messages/HasAppointmentFooterLinks.php

    r2645781 r2807115  
    2727    protected function footerLinks()
    2828    {
     29        $footer = '';
     30        if (!empty(\Wappointment\Services\Settings::get('email_footer'))) {
     31            $footer .= '<p>' . \nl2br(\strip_tags(\Wappointment\Services\Settings::get('email_footer'))) . '</p>';
     32        }
    2933        $rescheduleAndCancelLinks = $this->rescheduleAndCancelLinks();
    3034        if (!empty($rescheduleAndCancelLinks)) {
    3135            $rescheduleAndCancelLinks = $this->separator . $rescheduleAndCancelLinks;
    3236        }
    33         return '<p>' . $this->calendarLink() . $rescheduleAndCancelLinks . '</p>';
     37        $footer .= '<p>' . $this->calendarLink() . $rescheduleAndCancelLinks . '</p>';
     38        return $footer;
    3439    }
    3540}
  • wappointment/trunk/app/Models/Appointment.php

    r2679872 r2807115  
    2020class Appointment extends \Wappointment\Models\TicketAbstract
    2121{
    22     use CanLock, ManipulateIcs, ManipulateType, ManipulateLinks, ManipulateStaff, ManipulateDotcom, ManipulateService, ManipulateDuration, ManipulateLocation, ManipulateCancelReschedule;
     22    use CanLock;
     23    use ManipulateIcs;
     24    use ManipulateType;
     25    use ManipulateLinks;
     26    use ManipulateStaff;
     27    use ManipulateDotcom;
     28    use ManipulateService;
     29    use ManipulateDuration;
     30    use ManipulateLocation;
     31    use ManipulateCancelReschedule;
    2332    protected $table = 'wappo_appointments';
    2433    protected $fillable = ['start_at', 'end_at', 'edit_key', 'client_id', 'status', 'type', 'staff_id', 'service_id', 'options', 'location_id', 'recurrent', 'parent', 'created_at', 'updated_at'];
    2534    protected $casts = ['options' => 'array'];
    2635    protected $dates = ['start_at', 'end_at', 'created_at', 'updated_at'];
    27     const TYPE_PHYSICAL = 0;
    28     const TYPE_PHONE = 1;
    29     const TYPE_SKYPE = 2;
    30     const TYPE_ZOOM = 5;
    31     const STATUS_AWAITING_CONFIRMATION = 0;
    32     const STATUS_CONFIRMED = 1;
    33     protected $appends = ['duration_sec', 'location_label', 'can_cancel_until', 'can_reschedule_until'];
     36    public const TYPE_PHYSICAL = 0;
     37    public const TYPE_PHONE = 1;
     38    public const TYPE_SKYPE = 2;
     39    public const TYPE_ZOOM = 5;
     40    public const STATUS_AWAITING_CONFIRMATION = 0;
     41    public const STATUS_CONFIRMED = 1;
     42    protected $appends = ['duration_sec', 'location_label', 'can_cancel_until', 'can_reschedule_until', 'cancel_until_text', 'reschedule_until_text'];
    3443    private $shared_client = null;
    3544    public function order()
     
    6776    public function getTitle($includes_buffer = true)
    6877    {
    69         return $this->getStatusTag() . $this->getServiceName() . ' ' . $this->getDuration() . ($includes_buffer ? $this->getBuffer() : '') . ' - ' . $this->getClientMethodOrEmpty('getNameForDotcom');
     78        return apply_filters('wappointment_get_title', $this->getStatusTag() . $this->getServiceName() . ' ' . $this->getDuration() . ($includes_buffer ? $this->getBuffer() : '') . ' - ' . $this->getClientMethodOrEmpty('getNameForDotcom'), $this);
    7079    }
    7180    public function getIdentifier()
  • wappointment/trunk/app/Models/Appointment/ManipulateCancelReschedule.php

    r2688125 r2807115  
    55use Wappointment\Services\Settings;
    66use Wappointment\ClassConnect\Carbon;
     7use Wappointment\Services\DateTime;
    78trait ManipulateCancelReschedule
    89{
     
    1213            return $this->canRescheduleUntilTimestamp();
    1314        }
     15    }
     16    public function getRescheduleUntilTextAttribute()
     17    {
     18        return \sprintf(__('Reschedule (until %1$s): &#10; %2$s', 'wappointment'), $this->rescheduleLimit(), $this->getLinkRescheduleEvent());
     19    }
     20    public function getCancelUntilTextAttribute()
     21    {
     22        return \sprintf(__('Cancel (until %1$s): &#10; %2$s', 'wappointment'), $this->cancelLimit(), $this->getLinkCancelEvent());
    1423    }
    1524    public function getCanCancelUntilAttribute()
     
    3746    public function cancelLimit()
    3847    {
    39         return \Wappointment\ClassConnect\Carbon::createFromTimestamp($this->canCancelUntilTimestamp())->setTimezone($this->getClientModel()->getTimezone($this->getStaffTZ()))->format($this->longFormat());
     48        return \Wappointment\Services\DateTime::i18nDateTime($this->canCancelUntilTimestamp(), $this->getStaffTZ());
    4049    }
    4150    public function rescheduleLimit()
    4251    {
    43         return \Wappointment\ClassConnect\Carbon::createFromTimestamp($this->canRescheduleUntilTimestamp())->setTimezone($this->getClientModel()->getTimezone($this->getStaffTZ()))->format($this->longFormat());
     52        return \Wappointment\Services\DateTime::i18nDateTime($this->canRescheduleUntilTimestamp(), $this->getStaffTZ());
    4453    }
    4554    protected function longFormat()
  • wappointment/trunk/app/Models/Appointment/ManipulateDuration.php

    r2742428 r2807115  
    1818        return $this->getFullDurationInSec() - $this->getBufferInSec();
    1919    }
     20    protected function formatDuration($durationInMin)
     21    {
     22        /* translators: %s - minutes */
     23        return \sprintf(__('%s min', 'wappointment'), $durationInMin);
     24    }
    2025    public function getDuration()
    2126    {
    22         return $this->getDurationInSec() / 60 . __('min', 'wappointment');
     27        return $this->formatDuration($this->getDurationInSec() / 60);
    2328    }
    2429    public function getBufferInSec()
     
    3641    {
    3742        $buffer = $this->getBufferInSec();
    38         return $buffer > 0 ? '(+' . $buffer / 60 . __('min', 'wappointment') . ')' : '';
     43        return $buffer > 0 ? '(+' . $this->formatDuration($buffer / 60) . ')' : '';
    3944    }
    4045    public function getStartsDayAndTime($timezone)
  • wappointment/trunk/app/Models/Client.php

    r2688125 r2807115  
    1919        return $this->hasMany(\Wappointment\Models\Appointment::class);
    2020    }
    21     public function hasActiveBooking()
     21    public function hasActiveBooking($staff_id)
    2222    {
    2323        $start_at_string = \Wappointment\ClassConnect\Carbon::now('UTC')->format(WAPPOINTMENT_DB_FORMAT);
    24         return \Wappointment\Models\Appointment::where('client_id', $this->id)->where('start_at', '>=', $start_at_string)->count();
     24        $appointments_query = \Wappointment\Models\Appointment::where('client_id', $this->id)->where('start_at', '>=', $start_at_string);
     25        if ((int) \Wappointment\Services\Settings::get('max_active_per_staff')) {
     26            $appointments_query->where('staff_id', $staff_id);
     27        }
     28        return $appointments_query->count();
    2529    }
    2630    public function getEmailAttribute($value)
  • wappointment/trunk/app/Services/Admin.php

    r2727796 r2807115  
    1919        }
    2020        if (empty($client)) {
    21             $dataClient = $booking->preparedData();
    22             $client = \Wappointment\Models\Client::create($dataClient);
     21            $client = \Wappointment\Models\Client::create(static::addDefaultEmail($booking->preparedData(), $booking));
    2322        }
    2423        //book with that client
    2524        return $client->bookAsAdmin($booking);
    2625    }
     26    /**
     27     * fail saafe for recurrent booking creating error
     28     *
     29     * @param [type] $dataClient
     30     * @param [type] $booking
     31     * @return void
     32     */
     33    protected static function addDefaultEmail($dataClient, $booking)
     34    {
     35        if (empty($dataClient['email']) && !empty($booking->get('staff_id'))) {
     36            $sraff = new \Wappointment\WP\Staff((int) $booking->get('staff_id'));
     37            $dataClient['email'] = $sraff->emailAddress();
     38        }
     39        return $dataClient;
     40    }
    2741}
  • wappointment/trunk/app/Services/Client.php

    r2688125 r2807115  
    1010    {
    1111        $client = static::clientLoadAdd($booking);
    12         if (static::maxActiveBookingReached($client)) {
     12        if (static::maxActiveBookingReached($client, $booking)) {
    1313            throw new \WappointmentException(__('Max active bookings reached! Cancel one of your appointments in order to book a new one.', 'wappointment'), 1);
    1414        }
     
    2222        return $client->bookLegacy($booking);
    2323    }
    24     protected static function maxActiveBookingReached(\Wappointment\Models\Client $client)
     24    protected static function maxActiveBookingReached(\Wappointment\Models\Client $client, \Wappointment\Validators\HttpRequest\Booking $booking)
    2525    {
    2626        $max_active_bookings = (int) \Wappointment\Services\Settings::get('max_active_bookings');
    27         return $max_active_bookings > 0 && $client->hasActiveBooking() >= $max_active_bookings;
     27        return $max_active_bookings > 0 && $client->hasActiveBooking($booking->get('staff_id')) >= $max_active_bookings;
    2828    }
    2929    protected static function clientLoadAdd(\Wappointment\Validators\HttpRequest\Booking $booking)
  • wappointment/trunk/app/Services/CurrentUser.php

    r2688125 r2807115  
    1616    {
    1717        return static::get()->ID;
     18    }
     19    public static function owns($calendarId)
     20    {
     21        return \Wappointment\Models\Calendar::where('wp_uid', static::id())->where('id', $calendarId)->first();
    1822    }
    1923    public static function calendarId()
  • wappointment/trunk/app/Services/CustomTZParser.php

    r2742428 r2807115  
    115115    {
    116116        $carbon = \Wappointment\ClassConnect\Carbon::parse($vcalDateTimeString);
     117        if (empty($this->customTZ->DAYLIGHT->RRULE) || $this->customTZ->STANDARD->RRULE) {
     118            return false;
     119        }
    117120        $dstLowerLimit = $this->getMonthAndDayStart($carbon->year, $this->customTZ->DAYLIGHT->RRULE);
    118121        $dstHigherLimit = $this->getMonthAndDayStart($carbon->year, $this->customTZ->STANDARD->RRULE);
  • wappointment/trunk/app/Services/IcsGenerator.php

    r2660065 r2807115  
    154154    protected function getTitle(Appointment $appointment, $staff)
    155155    {
    156         $title = $appointment->getServiceName() . ' ';
    157         $title .= $this->admin ? $appointment->getClientModel()->name . '(' . $appointment->getClientModel()->email . ')' :  $staff->name;
     156        $title = $appointment->getServiceName() . ' - ';
     157        $title .= $this->admin ? $appointment->getClientModel()->name . ' (' . $appointment->getClientModel()->email . ')' :  $staff->name;
    158158
    159159        return esc_html($title);
     
    163163    {
    164164        $description = '';
    165         foreach (['name', 'tz', 'email', 'phone', 'skype'] as $key) {
     165        $keysParse = ['name', 'tz', 'email'];
     166        if (!Addons::isActive('wappointment_services')) {
     167            $keysParse[] = 'phone';
     168            $keysParse[] = 'skype';
     169        }
     170        foreach ($keysParse as $key) {
    166171            if (!empty($appointment->getClientModel()->options[$key])) {
    167172                $description .= "\n" . $key . ' : ';
     
    170175        }
    171176
    172 
    173         $description = apply_filters('wappointment_ics_description', $description, $appointment);
     177        $description = str_replace('::', ':', apply_filters('wappointment_ics_description', $description, $appointment));
    174178
    175179        if ($appointment->isZoom()) {
    176180            $description .= "\n\n" . __('Appointment is a Video meeting', 'wappointment');
    177             $description .= "\n" . __('Meeting will be accessible from the link below:', 'wappointment') .
     181            $description .= "\n\n" . __('Meeting will be accessible from the link below:', 'wappointment') .
    178182                "\n " . $appointment->getLinkViewEvent();
    179183        }
  • wappointment/trunk/app/Services/Settings.php

    r2727796 r2807115  
    5757            'allow_cancellation' => true,
    5858            'allow_rescheduling' => true,
     59            'email_footer' => '',
    5960            'hours_before_booking_allowed' => 3,
    6061            'hours_before_cancellation_allowed' => 24,
     
    8586            'calendar_roles' => ['administrator', 'author', 'editor', 'contributor', 'wappointment_staff'],
    8687            'max_active_bookings' => 0,
     88            'max_active_per_staff' => false,
    8789            'autofill' => true,
    8890            'onsite_enabled' => true,
  • wappointment/trunk/app/Services/ViewsData.php

    r2727796 r2807115  
    182182            'allow_cancellation' => \Wappointment\Services\Settings::get('allow_cancellation'),
    183183            'allow_rescheduling' => \Wappointment\Services\Settings::get('allow_rescheduling'),
     184            'email_footer' => \Wappointment\Services\Settings::get('email_footer'),
    184185            'week_starts_on' => \Wappointment\Services\Settings::get('week_starts_on'),
    185186            'hours_before_booking_allowed' => \Wappointment\Services\Settings::get('hours_before_booking_allowed'),
     
    208209            'all_roles' => \Wappointment\Services\Permissions::getAllWpRoles(),
    209210            'max_active_bookings' => (int) \Wappointment\Services\Settings::get('max_active_bookings'),
     211            'max_active_per_staff' => (int) \Wappointment\Services\Settings::get('max_active_per_staff'),
    210212            'autofill' => (int) \Wappointment\Services\Settings::get('autofill'),
    211213            'manager_added' => \Wappointment\Services\Permissions::hasManagerRole(),
  • wappointment/trunk/app/Validators/HttpRequest/Booking.php

    r2709311 r2807115  
    4444            $this->validationRulesArray['email'] = 'required|email';
    4545        }
     46        $this->validationRulesArray = $this->applyMoreRules();
     47    }
     48    protected function applyMoreRules()
     49    {
    4650        $custom_fields = \Wappointment\Managers\Central::get('CustomFields')::get();
    4751        $this->addCustomValidations($this->service, $custom_fields);
    4852        $this->addCustomValidations($this->location, $custom_fields);
    49         $this->validationRulesArray = apply_filters('wappointment_booking_validation_rules', $this->validationRulesArray, $this->service);
     53        return apply_filters('wappointment_booking_validation_rules', $this->validationRulesArray, $this->service);
    5054    }
    5155    protected function addCustomValidations($model, $custom_fields)
     
    175179            }
    176180        }
    177         return $dataClient;
     181        return apply_filters('wappointment_booking_data_process', $dataClient, \Wappointment\Managers\Central::get('CustomFields')::get());
    178182    }
    179183}
  • wappointment/trunk/app/Validators/HttpRequest/BookingAdmin.php

    r2679872 r2807115  
    1212            $this->validationRulesArray['email'] = 'email';
    1313        }
     14        $this->validationRulesArray = $this->applyMoreRules();
    1415    }
    1516}
  • wappointment/trunk/app/WP/Shortcodes.php

    r2660065 r2807115  
    3434    public static function handleFilters($atts)
    3535    {
    36         $params = ['center' => \in_array('center', $atts), 'auto_open' => \in_array('open', $atts), 'large_version' => \in_array('large', $atts), 'popup' => \in_array('popup', $atts), 'pop_off' => \in_array('pop_off', $atts), 'auto_pop' => \in_array('pop', $atts), 'week' => \in_array('week', $atts), 'button_title' => !empty($atts['title']) ? $atts['title'] : (new \Wappointment\Services\WidgetSettings())->get()['button']['title']];
     36        $params = ['center' => \in_array('center', $atts), 'auto_open' => \in_array('open', $atts), 'random' => \in_array('random', $atts), 'large_version' => \in_array('large', $atts), 'popup' => \in_array('popup', $atts), 'pop_off' => \in_array('pop_off', $atts), 'auto_pop' => \in_array('pop', $atts), 'week' => \in_array('week', $atts), 'button_title' => !empty($atts['title']) ? $atts['title'] : (new \Wappointment\Services\WidgetSettings())->get()['button']['title']];
    3737        if (\in_array('staff_page', $atts)) {
    3838            $params['staff_page'] = true;
  • wappointment/trunk/dist/manifest.json

    r2742428 r2807115  
    22  "FieldsGenerated.js": "FieldsGenerated.7cb15031d6d09da2a3ad.bundle.js",
    33  "MainStyle.js": "MainStyle.2ff85ec05f1d6777122e.bundle.js",
    4   "VueTelInput.js": "VueTelInput.6c34ce2ae7cb20d448f0.bundle.js",
     4  "VueTelInput.js": "VueTelInput.db54d74eedf67e3f5424.bundle.js",
    55  "WapImage.js": "WapImage.7862fe1cee429fe91413.bundle.js",
    66  "appFawesome.js": "appFawesome.4e2ad45bee468cf2e01a.bundle.js",
    77  "flags.png": "9c96e0ed7093c095fd33870329282962.png",
    88  "[email protected]": "f2c77a6b7e26ff160fdb4193b383b1ea.png",
    9   "front.js": "front.a07033a31fba8857e99f.bundle.js",
     9  "front.js": "front.1430e6601f71edaa1b0e.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.300c733513b713fa8c7b.bundle.js",
    12   "group-bookingform-group-viewingappointment.js": "group-bookingform-group-viewingappointment.cee2ee4fc0811772e1ed.bundle.js",
    13   "group-bookingform.js": "group-bookingform.48511d2c3721f0f617ae.bundle.js",
    14   "group-calendar.js": "group-calendar.cba7357020b12d820cd3.bundle.js",
    15   "group-calendars-manage.js": "group-calendars-manage.63ce0d48d5272b99d1a3.bundle.js",
     11  "group-addons.js": "group-addons.62f7f338dceaa556b4e7.bundle.js",
     12  "group-bookingform-group-viewingappointment.js": "group-bookingform-group-viewingappointment.537ed95561ac3b785fae.bundle.js",
     13  "group-bookingform.js": "group-bookingform.3130e8835fde0c98aacf.bundle.js",
     14  "group-calendar.js": "group-calendar.e0bb82c52e4a930f6057.bundle.js",
     15  "group-calendars-manage.js": "group-calendars-manage.1a72e1d9944896349806.bundle.js",
    1616  "group-clients.js": "group-clients.31cd2afe52417c760f44.bundle.js",
    1717  "group-help.js": "group-help.32e1d2f4f32e5e433e04.bundle.js",
    18   "group-service-package.js": "group-service-package.535ae7302c673f8c5a26.bundle.js",
     18  "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.66cf7ffb5e14850cfe46.bundle.js",
     20  "group-settings.js": "group-settings.fd826bd63bca4708f0dc.bundle.js",
    2121  "group-viewingappointment.js": "group-viewingappointment.cfa239f0bbf94e9a8cdc.bundle.js",
    2222  "group-wizard.js": "group-wizard.3d7300e49525080102ea.bundle.js",
    23   "group-wizard2.js": "group-wizard2.c98e2cad469ab994b4c2.bundle.js",
     23  "group-wizard2.js": "group-wizard2.0265f97a9c14df72649c.bundle.js",
    2424  "group-wizardinit.js": "group-wizardinit.f46cddbac82be6779009.bundle.js",
    25   "main.js": "main.fc4f742a404305a9baca.bundle.js",
     25  "main.js": "main.1f25ff0960ad6f3dc300.bundle.js",
    2626  "style-flag.js": "style-flag.216cbd8bd046bf27d58a.bundle.js",
    2727  "toggle-off.svg": "e500252a27eb6af0b0c0853d856b3647.svg",
  • wappointment/trunk/index.php

    r2742467 r2807115  
    77/**
    88 * Plugin Name: Wappointment
    9  * Version: 2.4.11
     9 * Version: 2.4.12
    1010 * Plugin URI: https://wappointment.com
    1111 * Description: Clients quickly book a meeting with you on Zoom , GoogleMeet , the phone or at your office
     
    3333 */
    3434
    35 define('WAPPOINTMENT_VERSION', '2.4.11');
     35define('WAPPOINTMENT_VERSION', '2.4.12');
    3636define('WAPPOINTMENT_PHP_MIN', '7.0.0');
    3737define('WAPPOINTMENT_NAME', 'Wappointment');
  • wappointment/trunk/readme.txt

    r2742431 r2807115  
    55Tested up to: 6.0
    66Requires PHP: 7.0
    7 Stable tag: 2.4.11
     7Stable tag: 2.4.12
    88License: GPLv2 or later
    99License URI: http://www.gnu.org/licenses/gpl-2.0.html
     
    148148
    149149== Changelog ==
     150
     151= 2.4.12 - 2022-10-29 =
     152* added random staff auto-selection
     153* added max booking per staff
     154* added email footer notes
     155* added reply to address through filter wappointment_replyto_email and wappointment_replyto_name
     156* fixed popup close when clicking on background
     157* fixed staff filtering
     158* fixed save to calendar button generated .ICS
     159* fixed double fields in .ics
     160* fixed calendar sync and custom DST issue for Outlook
     161* fixed issue with italian phone validation
     162* fixed indian rupee currency decimal separator
     163* fixed bug on calendar edit
     164* fixed multiple installations on same db
     165* fixed issue custom fields not saved when booking from backend
    150166
    151167= 2.4.11 - 2022-06-15 =
  • wappointment/trunk/vendor/autoload.php

    r2742428 r2807115  
    1010require_once __DIR__ . '/composer/autoload_real.php';
    1111
    12 return ComposerAutoloaderInit12696d909c9d3982c61d5378366a2d83::getLoader();
     12return ComposerAutoloaderInitfdea42702693c11268e236b797202e49::getLoader();
  • wappointment/trunk/vendor/composer/autoload_real.php

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

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

    r2742428 r2807115  
    33namespace WappoVendor;
    44
    5 return array('root' => array('name' => 'wappointment/wappointment', 'pretty_version' => 'dev-master', 'version' => 'dev-master', 'reference' => '5d24f658e7a5b9f57a303aeca267cbdaa9a88eb9', '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' => '5d24f658e7a5b9f57a303aeca267cbdaa9a88eb9', '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' => '09867ebff0e8d36e6987dbd8a245097d7725e1b2', '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' => '09867ebff0e8d36e6987dbd8a245097d7725e1b2', 'type' => 'worpdress-plugin', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), 'dev_requirement' => \false)));
  • wappointment/trunk/wappointment.pot

    r2742428 r2807115  
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: Wappointment 2.4.11\n"
     5"Project-Id-Version: Wappointment 2.4.12\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-06-14T18:34:57+00:00\n"
     12"POT-Creation-Date: 2022-10-29T21:14:41+00:00\n"
    1313"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    1414"X-Generator: WP-CLI 2.5.0\n"
     
    4646
    4747#. translators: %1$s is service name, %2$s is the duration
    48 #: app/Controllers/AppointmentController.php:45
    4948#: app/Controllers/AppointmentController.php:46
     49#: app/Controllers/AppointmentController.php:47
    5050msgid "%1$s - %2$s"
    5151msgstr ""
    5252
    53 #: app/Controllers/AppointmentController.php:56
     53#. translators: %s is replaced with the staff name
     54#: app/Controllers/AppointmentController.php:48
     55#: app/Messages/AdminGeneratesDefault.php:29
     56msgid "Staff: %s"
     57msgstr ""
     58
     59#. translators: %s is replaced with the location name
     60#: app/Controllers/AppointmentController.php:49
     61#: app/Messages/AdminGeneratesDefault.php:33
     62msgid "Location: %s"
     63msgstr ""
     64
     65#: app/Controllers/AppointmentController.php:59
    5466msgid "Appointment has been canceled"
    5567msgstr ""
     
    6577msgstr ""
    6678
    67 #: app/Controllers/CalendarsController.php:193
     79#: app/Controllers/CalendarsController.php:192
    6880msgid "Services assigned"
    6981msgstr ""
    7082
    71 #: app/Controllers/CalendarsController.php:203
     83#: app/Controllers/CalendarsController.php:202
    7284msgid "Permissions saved"
    7385msgstr ""
    7486
    75 #: app/Controllers/CalendarsController.php:281
     87#: app/Controllers/CalendarsController.php:280
    7688#: app/Services/AdminLegacy.php:18
    7789#: app/Services/Appointment.php:78
     
    8294msgstr ""
    8395
    84 #: app/Controllers/CalendarsController.php:302
     96#: app/Controllers/CalendarsController.php:301
    8597msgid "Connected"
    8698msgstr ""
    8799
    88 #: app/Controllers/CalendarsController.php:305
     100#: app/Controllers/CalendarsController.php:304
    89101msgid "Error connecting"
    90102msgstr ""
    91103
    92 #: app/Controllers/CalendarsController.php:319
     104#: app/Controllers/CalendarsController.php:318
    93105msgid "Disconnected"
    94106msgstr ""
    95107
    96 #: app/Controllers/CalendarsController.php:322
     108#: app/Controllers/CalendarsController.php:321
    97109msgid "Error disconnecting"
    98110msgstr ""
    99111
    100 #: app/Controllers/CalendarsController.php:336
     112#: app/Controllers/CalendarsController.php:335
    101113msgid "Refreshed"
    102114msgstr ""
    103115
    104 #: app/Controllers/CalendarsController.php:339
     116#: app/Controllers/CalendarsController.php:338
    105117msgid "Error refreshing"
    106118msgstr ""
     
    201213#. translators: %1$s is service name, %2$s is the duration
    202214#: app/Formatters/EventsCalendar.php:132
    203 msgid "%1$s - %2$smin"
     215msgid "%1$s - %2$s min"
    204216msgstr ""
    205217
     
    470482#. translators: %s - cbuffer value in minutes
    471483#: app/Lists/translations_calendar.php:9
    472 msgid "includes %smin buffer"
     484msgid "includes %s min buffer"
    473485msgstr ""
    474486
     
    593605
    594606#: app/Lists/translations_js_common.php:13
    595 #: app/Lists/translations_js_common.php:42
     607#: app/Lists/translations_js_common.php:43
    596608msgid "Edit"
    597609msgstr ""
     
    614626
    615627#: app/Lists/translations_js_common.php:18
     628msgid "Random auto-select"
     629msgstr ""
     630
     631#: app/Lists/translations_js_common.php:19
    616632msgid "Center"
    617633msgstr ""
    618634
    619 #: app/Lists/translations_js_common.php:19
     635#: app/Lists/translations_js_common.php:20
    620636msgid "Auto-open Calendar"
    621637msgstr ""
    622638
    623 #: app/Lists/translations_js_common.php:20
     639#: app/Lists/translations_js_common.php:21
    624640msgid "Full-width Calendar"
    625641msgstr ""
    626642
    627 #: app/Lists/translations_js_common.php:21
     643#: app/Lists/translations_js_common.php:22
    628644msgid "Week view"
    629645msgstr ""
    630646
    631 #: app/Lists/translations_js_common.php:22
     647#: app/Lists/translations_js_common.php:23
    632648msgid "Select staff first"
    633649msgstr ""
    634650
    635 #: app/Lists/translations_js_common.php:23
     651#: app/Lists/translations_js_common.php:24
    636652msgid "Preview"
    637653msgstr ""
    638654
    639 #: app/Lists/translations_js_common.php:24
     655#: app/Lists/translations_js_common.php:25
    640656msgid "Your booking page exists already!"
    641657msgstr ""
    642658
    643 #: app/Lists/translations_js_common.php:25
     659#: app/Lists/translations_js_common.php:26
    644660msgid "Insert the booking form in a new page, within an existing page or within a widget area"
    645661msgstr ""
    646662
    647 #: app/Lists/translations_js_common.php:26
     663#: app/Lists/translations_js_common.php:27
    648664msgid "Create a new page"
    649665msgstr ""
    650666
    651 #: app/Lists/translations_js_common.php:27
     667#: app/Lists/translations_js_common.php:28
    652668msgid "Using a Shortcode"
    653669msgstr ""
    654670
    655 #: app/Lists/translations_js_common.php:28
     671#: app/Lists/translations_js_common.php:29
    656672msgid "Using our Widget"
    657673msgstr ""
    658674
    659 #: app/Lists/translations_js_common.php:29
     675#: app/Lists/translations_js_common.php:30
    660676msgid "Your shortcode:"
    661677msgstr ""
    662678
    663 #: app/Lists/translations_js_common.php:30
     679#: app/Lists/translations_js_common.php:31
    664680msgid "How can I use this shortcode?"
    665681msgstr ""
    666682
    667 #: app/Lists/translations_js_common.php:31
     683#: app/Lists/translations_js_common.php:32
    668684msgid "Customize"
    669685msgstr ""
    670686
    671 #: app/Lists/translations_js_common.php:32
     687#: app/Lists/translations_js_common.php:33
    672688msgid "Insert"
    673689msgstr ""
    674690
    675 #: app/Lists/translations_js_common.php:33
     691#: app/Lists/translations_js_common.php:34
    676692msgid "Edit Text"
    677693msgstr ""
    678694
    679 #: app/Lists/translations_js_common.php:34
     695#: app/Lists/translations_js_common.php:35
    680696msgid "Edit Color"
    681697msgstr ""
    682698
    683 #: app/Lists/translations_js_common.php:35
     699#: app/Lists/translations_js_common.php:36
    684700msgid "General"
    685701msgstr ""
    686702
    687 #: app/Lists/translations_js_common.php:36
     703#: app/Lists/translations_js_common.php:37
    688704msgid "Step"
    689705msgstr ""
    690706
    691 #: app/Lists/translations_js_common.php:37
     707#: app/Lists/translations_js_common.php:38
    692708msgid "Edit more colors"
    693709msgstr ""
    694710
    695 #: app/Lists/translations_js_common.php:39
     711#: app/Lists/translations_js_common.php:40
    696712msgid "Create"
    697713msgstr ""
    698714
    699 #: app/Lists/translations_js_common.php:40
     715#: app/Lists/translations_js_common.php:41
    700716msgid "Hide"
    701717msgstr ""
    702718
    703 #: app/Lists/translations_js_common.php:41
    704 #: app/Lists/translations_js_common.php:67
     719#: app/Lists/translations_js_common.php:42
     720#: app/Lists/translations_js_common.php:68
    705721msgid "Save"
    706722msgstr ""
    707723
    708 #: app/Lists/translations_js_common.php:43
     724#: app/Lists/translations_js_common.php:44
    709725msgid "Delete"
    710726msgstr ""
    711727
    712 #: app/Lists/translations_js_common.php:44
     728#: app/Lists/translations_js_common.php:45
    713729msgid "Sort"
    714730msgstr ""
    715731
    716 #: app/Lists/translations_js_common.php:45
     732#: app/Lists/translations_js_common.php:46
    717733#: app/Lists/translations_orders.php:6
    718734#: app/Lists/widget_settings.php:114
    719735#: app/Lists/widget_translations.php:12
    720 #: app/Services/Settings.php:100
     736#: app/Services/Settings.php:101
    721737msgid "Cancel"
    722738msgstr ""
    723739
    724 #: app/Lists/translations_js_common.php:46
     740#: app/Lists/translations_js_common.php:47
    725741#: app/Lists/widget_settings.php:83
    726742#: app/Lists/widget_settings.php:115
     
    730746msgstr ""
    731747
    732 #: app/Lists/translations_js_common.php:47
     748#: app/Lists/translations_js_common.php:48
    733749msgid "Get Shortcode"
    734750msgstr ""
    735751
    736 #: app/Lists/translations_js_common.php:48
     752#: app/Lists/translations_js_common.php:49
    737753#: app/Lists/translations_wizard.php:3
    738754#: app/Lists/widget_settings.php:82
     
    740756msgstr ""
    741757
    742 #: app/Lists/translations_js_common.php:49
     758#: app/Lists/translations_js_common.php:50
    743759msgid "No results found"
    744760msgstr ""
    745761
    746 #: app/Lists/translations_js_common.php:50
     762#: app/Lists/translations_js_common.php:51
    747763msgid "Clear"
    748764msgstr ""
    749765
    750 #: app/Lists/translations_js_common.php:51
     766#: app/Lists/translations_js_common.php:52
    751767msgid "Search"
    752768msgstr ""
    753769
    754 #: app/Lists/translations_js_common.php:52
     770#: app/Lists/translations_js_common.php:53
    755771msgid "Close"
    756772msgstr ""
    757773
    758 #: app/Lists/translations_js_common.php:53
     774#: app/Lists/translations_js_common.php:54
    759775msgid "Add"
    760776msgstr ""
    761777
    762 #: app/Lists/translations_js_common.php:55
     778#: app/Lists/translations_js_common.php:56
    763779msgid "Hours"
    764780msgstr ""
    765781
    766782#. translators: %s - minutes
    767 #: app/Lists/translations_js_common.php:57
    768 msgid "%smin"
     783#: app/Lists/translations_js_common.php:58
     784#: app/Models/Appointment/ManipulateDuration.php:27
     785msgid "%s min"
    769786msgstr ""
    770787
    771788#. translators: %s - hours
    772 #: app/Lists/translations_js_common.php:59
     789#: app/Lists/translations_js_common.php:60
    773790msgid "%sh"
    774791msgstr ""
    775792
    776 #: app/Lists/translations_js_common.php:60
     793#: app/Lists/translations_js_common.php:61
    777794msgid "Account Selection"
    778795msgstr ""
    779796
    780 #: app/Lists/translations_js_common.php:61
     797#: app/Lists/translations_js_common.php:62
    781798msgid "Select an account or enter an email to create a new one"
    782799msgstr ""
    783800
    784 #: app/Lists/translations_js_common.php:62
     801#: app/Lists/translations_js_common.php:63
    785802#: app/Lists/translations_settings.php:4
    786803#: app/WP/StaffHistory.php:80
     
    788805msgstr ""
    789806
    790 #: app/Lists/translations_js_common.php:63
     807#: app/Lists/translations_js_common.php:64
    791808msgid "Select account or enter email"
    792809msgstr ""
    793810
    794 #: app/Lists/translations_js_common.php:64
     811#: app/Lists/translations_js_common.php:65
    795812msgid "Set a timezone"
    796813msgstr ""
    797814
    798 #: app/Lists/translations_js_common.php:65
     815#: app/Lists/translations_js_common.php:66
    799816msgid "Set a standard weekly schedule"
    800817msgstr ""
    801818
    802 #: app/Lists/translations_js_common.php:66
     819#: app/Lists/translations_js_common.php:67
    803820msgid "Available Booking Days"
    804821msgstr ""
    805822
    806 #: app/Lists/translations_js_common.php:68
     823#: app/Lists/translations_js_common.php:69
    807824msgid "Send Preview"
    808825msgstr ""
    809826
    810 #: app/Lists/translations_js_common.php:70
     827#: app/Lists/translations_js_common.php:71
    811828msgid "Unlock this feature"
    812829msgstr ""
    813830
    814831#. translators: %s is the addon name
    815 #: app/Lists/translations_js_common.php:72
     832#: app/Lists/translations_js_common.php:73
    816833msgid "Unlock premium feature with our addon \"%s\""
    817834msgstr ""
    818835
    819 #: app/Lists/translations_js_common.php:73
     836#: app/Lists/translations_js_common.php:74
    820837msgid "Get the Addon"
    821838msgstr ""
    822839
    823 #: app/Lists/translations_js_common.php:74
     840#: app/Lists/translations_js_common.php:75
    824841msgid "Remember"
    825842msgstr ""
    826843
    827 #: app/Lists/translations_js_common.php:75
     844#: app/Lists/translations_js_common.php:76
    828845#: app/System/InitBackend.php:176
    829846#: app/WP/Menus.php:29
     
    831848msgstr ""
    832849
    833 #: app/Lists/translations_js_common.php:76
     850#: app/Lists/translations_js_common.php:77
    834851msgid "Created at"
    835852msgstr ""
    836853
    837 #: app/Lists/translations_js_common.php:78
     854#: app/Lists/translations_js_common.php:79
    838855msgid "Please make a selection"
    839856msgstr ""
     
    14891506
    14901507#: app/Lists/widget_settings.php:50
    1491 #: app/Models/Appointment/ManipulateDuration.php:26
    1492 #: app/Models/Appointment/ManipulateDuration.php:45
    14931508msgid "min"
    14941509msgstr ""
     
    16511666#: app/Lists/widget_settings.php:121
    16521667#: app/Lists/widget_translations.php:11
    1653 #: app/Services/Settings.php:99
     1668#: app/Services/Settings.php:100
    16541669msgid "Reschedule"
    16551670msgstr ""
     
    17211736
    17221737#: app/Lists/widget_translations.php:3
    1723 #: app/Services/IcsGenerator.php:176
     1738#: app/Services/IcsGenerator.php:180
    17241739msgid "Appointment is a Video meeting"
    17251740msgstr ""
    17261741
    17271742#: app/Lists/widget_translations.php:4
    1728 #: app/Services/IcsGenerator.php:177
     1743#: app/Services/IcsGenerator.php:181
    17291744msgid "Meeting will be accessible from the link below:"
    17301745msgstr ""
     
    18391854msgstr ""
    18401855
    1841 #. translators: %s is replaced with the staff name
    1842 #: app/Messages/AdminGeneratesDefault.php:29
    1843 msgid "Staff: %s"
    1844 msgstr ""
    1845 
    18461856#. translators: %s is replaced with the service name
    18471857#: app/Messages/AdminGeneratesDefault.php:31
     
    18491859msgstr ""
    18501860
    1851 #. translators: %s is replaced with the location name
    1852 #: app/Messages/AdminGeneratesDefault.php:33
    1853 msgid "Location: %s"
    1854 msgstr ""
    1855 
    18561861#. translators: %s is replaced with the client's name
    18571862#: app/Messages/AdminGeneratesDefault.php:35
     
    19571962#: app/Messages/TagsReplacement.php:39
    19581963msgid "Staff Custom Field - %s"
     1964msgstr ""
     1965
     1966#. translators: %1$s - date %2$s rescheule link.
     1967#: app/Models/Appointment/ManipulateCancelReschedule.php:21
     1968#: app/Services/IcsGenerator.php:190
     1969msgid "Reschedule (until %1$s): &#10; %2$s"
     1970msgstr ""
     1971
     1972#. translators: %1$s - date %2$s cancel link.
     1973#: app/Models/Appointment/ManipulateCancelReschedule.php:30
     1974#: app/Services/IcsGenerator.php:192
     1975msgid "Cancel (until %1$s): &#10; %2$s"
    19591976msgstr ""
    19601977
     
    20562073
    20572074#. translators: %s - email of the account.
    2058 #: app/Services/CurrentUser.php:27
     2075#: app/Services/CurrentUser.php:31
    20592076msgid "No Wappointment calendar is connected to your WordPress account %s"
    20602077msgstr ""
     
    20722089msgstr ""
    20732090
    2074 #: app/Services/IcsGenerator.php:184
     2091#: app/Services/IcsGenerator.php:188
    20752092msgid "Need to modify this event?"
    20762093msgstr ""
    20772094
    2078 #. translators: %1$s - date %2$s rescheule link.
    2079 #: app/Services/IcsGenerator.php:186
    2080 msgid "Reschedule (until %1$s): &#10; %2$s"
    2081 msgstr ""
    2082 
    2083 #. translators: %1$s - date %2$s cancel link.
    2084 #: app/Services/IcsGenerator.php:188
    2085 msgid "Cancel (until %1$s): &#10; %2$s"
    2086 msgstr ""
    2087 
    20882095#. translators: %s is replaced with https://wappointment.com
    2089 #: app/Services/IcsGenerator.php:198
     2096#: app/Services/IcsGenerator.php:202
    20902097msgid "Booked with %s"
    20912098msgstr ""
     
    22722279msgstr ""
    22732280
    2274 #: app/Services/Settings.php:101
     2281#: app/Services/Settings.php:102
    22752282msgid "Save to calendar"
    22762283msgstr ""
    22772284
    2278 #: app/Services/Settings.php:102
     2285#: app/Services/Settings.php:103
    22792286msgid "Book a new appointment"
    22802287msgstr ""
    22812288
    2282 #: app/Services/Settings.php:138
     2289#: app/Services/Settings.php:140
    22832290msgid "Order nº"
    22842291msgstr ""
Note: See TracChangeset for help on using the changeset viewer.