Version Description
Download this release
Release Info
Developer | bordoni |
Plugin | Event Tickets |
Version | 4.6.1 |
Comparing to | |
See all releases |
Code changes from version 4.6 to 4.6.1
- common/lang/tribe-common-af.po +17 -17
- common/lang/tribe-common-ar.po +17 -17
- common/lang/tribe-common-bg_BG.po +17 -17
- common/lang/tribe-common-ca.po +17 -17
- common/lang/tribe-common-cs_CZ.po +17 -17
- common/lang/tribe-common-da_DK.po +17 -17
- common/lang/tribe-common-de_DE.po +17 -17
- common/lang/tribe-common-el.po +17 -17
- common/lang/tribe-common-en_GB.po +17 -17
- common/lang/tribe-common-es_ES.po +17 -17
- common/lang/tribe-common-et.po +17 -17
- common/lang/tribe-common-fi.po +17 -17
- common/lang/tribe-common-fr_CA.po +17 -17
- common/lang/tribe-common-fr_FR.po +17 -17
- common/lang/tribe-common-hu_HU.po +17 -17
- common/lang/tribe-common-id_ID.po +17 -17
- common/lang/tribe-common-is_IS.po +17 -17
- common/lang/tribe-common-it_IT.po +17 -17
- common/lang/tribe-common-lt_LT.po +17 -17
- common/lang/tribe-common-lv.po +17 -17
- common/lang/tribe-common-nb_NO.po +17 -17
- common/lang/tribe-common-nl_NL.po +17 -17
- common/lang/tribe-common-pl_PL.po +17 -17
- common/lang/tribe-common-pt_BR.po +17 -17
- common/lang/tribe-common-pt_PT.po +17 -17
- common/lang/tribe-common-ro_RO.po +17 -17
- common/lang/tribe-common-ru_RU.po +17 -17
- common/lang/tribe-common-sk_SK.po +17 -17
- common/lang/tribe-common-sl_SI.po +17 -17
- common/lang/tribe-common-sr_RS.po +17 -17
- common/lang/tribe-common-sv_SE.po +17 -17
- common/lang/tribe-common-tr_TR.po +17 -17
- common/lang/tribe-common-zh_CN.po +17 -17
- common/lang/tribe-common-zh_TW.po +17 -17
- common/lang/tribe-common.pot +20 -20
- common/readme.txt +18 -0
- common/src/Tribe/Ajax/Dropdown.php +8 -3
- common/src/Tribe/Container.php +37 -5
- common/src/Tribe/Log/File_Logger.php +1 -1
- common/src/Tribe/Main.php +4 -2
- common/src/Tribe/Meta/Chunker.php +4 -0
- common/src/Tribe/Rewrite.php +1 -1
- common/src/Tribe/Template.php +383 -0
- common/src/Tribe/Utils/Callback.php +109 -0
- common/src/Tribe/Validate.php +6 -2
- common/src/admin-views/tribe-options-general.php +0 -1
- common/src/functions/template-tags/date.php +14 -0
- common/src/resources/js/dependency.js +10 -6
- common/src/resources/js/dependency.min.js +1 -1
- common/src/resources/js/dropdowns.js +5 -0
- common/src/resources/js/dropdowns.min.js +1 -1
- common/tribe-common.php +1 -1
- event-tickets.php +1 -1
- lang/event-tickets-cs_CZ.mo +0 -0
- lang/event-tickets-cs_CZ.po +181 -175
- lang/event-tickets.pot +377 -371
- readme.txt +20 -2
- src/Tribe/Admin/Columns/Tickets.php +54 -60
- src/Tribe/Admin/Views.php +22 -9
- src/Tribe/Assets.php +2 -12
- src/Tribe/Attendees.php +720 -0
- src/Tribe/Main.php +2 -3
- src/Tribe/Metabox.php +555 -23
- src/Tribe/RSVP.php +15 -16
- src/Tribe/Service_Provider.php +4 -0
- src/Tribe/Ticket_Object.php +0 -11
- src/Tribe/Tickets.php +160 -631
- src/Tribe/Tickets_Handler.php +672 -795
- src/admin-views/attendees.php +15 -5
- src/admin-views/{tickets-advanced.php → editor/fieldset/advanced.php} +51 -9
- src/admin-views/{tickets-history.php → editor/fieldset/history.php} +11 -3
- src/admin-views/editor/list-row.php +82 -0
- src/admin-views/{list.php → editor/list-table.php} +25 -23
- src/admin-views/editor/metabox.php +28 -0
- src/admin-views/{base_admin_panel.php → editor/panel/list.php} +10 -24
- src/admin-views/{settings_admin_panel.php → editor/panel/settings.php} +33 -13
- src/admin-views/{edit_admin_panel.php → editor/panel/ticket.php} +48 -25
- src/admin-views/meta-box.php +0 -36
- src/admin-views/rsvp-metabox-capacity.php +1 -1
- src/resources/css/rsvp.css +4 -0
- src/resources/css/rsvp.min.css +1 -1
- src/resources/css/tickets-refresh.css +1 -0
- src/resources/css/tickets-refresh.min.css +1 -1
- src/resources/css/tickets-tables.css +5 -4
- src/resources/css/tickets-tables.min.css +1 -1
- src/resources/css/tickets.css +3 -2
- src/resources/css/tickets.min.css +1 -1
- src/resources/js/accordion.js +2 -0
- src/resources/js/accordion.min.js +1 -1
- src/resources/js/tickets-attendees.js +2 -2
- src/resources/js/tickets-attendees.min.js +1 -1
- src/resources/js/tickets-tables.js +29 -22
- src/resources/js/tickets-tables.min.js +1 -1
- src/resources/js/tickets.js +358 -740
- src/resources/js/tickets.min.js +1 -1
- src/resources/postcss/rsvp.pcss +4 -0
- src/resources/postcss/tickets-refresh.pcss +1 -0
- src/resources/postcss/tickets-tables.pcss +7 -4
- src/resources/postcss/tickets.pcss +3 -2
- src/template-tags/tickets.php +68 -2
- src/views/tickets/email.php +2 -3
- src/views/tickets/orders-link.php +2 -4
common/lang/tribe-common-af.po
CHANGED
@@ -75,15 +75,15 @@ msgstr ""
|
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
@@ -2070,56 +2070,56 @@ msgstr "Afghanistan"
|
|
2070 |
msgid "Select a Country:"
|
2071 |
msgstr "Kies 'n Land:"
|
2072 |
|
2073 |
-
#: src/Tribe/Validate.php:
|
2074 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2075 |
msgstr "Land lys moet geformateer word met een land per reël in die volgende formaat: <br> VSA, die Verenigde State van Amerika <br> die Verenigde Koninkryk, die Verenigde Koninkryk."
|
2076 |
|
2077 |
-
#: src/Tribe/Validate.php:
|
2078 |
msgid "%s must be a phone number."
|
2079 |
msgstr "%s moet 'n telefoon nommer wees."
|
2080 |
|
2081 |
-
#: src/Tribe/Validate.php:
|
2082 |
msgid "%s must consist of 5 numbers."
|
2083 |
msgstr "%s moet uit 5 syfers bestaan."
|
2084 |
|
2085 |
-
#: src/Tribe/Validate.php:
|
2086 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2087 |
msgstr "% s moet bestaan uit letters, spasies, afkapings, en strepies."
|
2088 |
|
2089 |
-
#: src/Tribe/Validate.php:
|
2090 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2091 |
msgstr "% s moet bestaan uit letters, getalle, koppeltekens, afkapings, en ruimtes."
|
2092 |
|
2093 |
-
#: src/Tribe/Validate.php:
|
2094 |
msgid "%s must be a number between 0 and 21."
|
2095 |
msgstr "%s moet 'n getal 0 en 21 wees."
|
2096 |
|
2097 |
-
#: src/Tribe/Validate.php:
|
2098 |
msgid "%s must be a number or percentage."
|
2099 |
msgstr "%s moet 'n syfer of 'n persentasie wees."
|
2100 |
|
2101 |
-
#: src/Tribe/Validate.php:
|
2102 |
msgid "%s cannot be a duplicate"
|
2103 |
msgstr "%s mag nie 'n duplikaat wees nie"
|
2104 |
|
2105 |
-
#: src/Tribe/Validate.php:
|
2106 |
msgid "%s cannot be the same as %s."
|
2107 |
msgstr "%s mag nie die selfde wees nie %s."
|
2108 |
|
2109 |
-
#: src/Tribe/Validate.php:
|
2110 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2111 |
msgstr "Vergelyking bekragtiging misluk omdat geen vergelyking waarde is verskaf vir veld %s"
|
2112 |
|
2113 |
-
#: src/Tribe/Validate.php:
|
2114 |
-
#: src/Tribe/Validate.php:
|
2115 |
msgid "%s must have a value that's part of its options."
|
2116 |
msgstr "% s moet 'n waarde hë wat deel is van sy opsies."
|
2117 |
|
2118 |
-
#: src/Tribe/Validate.php:
|
2119 |
msgid "%s must be a valid absolute URL."
|
2120 |
msgstr "% s moet 'n geldige absolute URL wees."
|
2121 |
|
2122 |
-
#: src/Tribe/Validate.php:
|
2123 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2124 |
msgstr "% s moet 'n geldige afkorting (getalle, letters, koppeltekens en onderstreep) wees."
|
2125 |
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
+
#: src/Tribe/Ajax/Dropdown.php:243
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
+
#: src/Tribe/Ajax/Dropdown.php:193
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
+
#: src/Tribe/Ajax/Dropdown.php:180
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
2070 |
msgid "Select a Country:"
|
2071 |
msgstr "Kies 'n Land:"
|
2072 |
|
2073 |
+
#: src/Tribe/Validate.php:503
|
2074 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2075 |
msgstr "Land lys moet geformateer word met een land per reël in die volgende formaat: <br> VSA, die Verenigde State van Amerika <br> die Verenigde Koninkryk, die Verenigde Koninkryk."
|
2076 |
|
2077 |
+
#: src/Tribe/Validate.php:487
|
2078 |
msgid "%s must be a phone number."
|
2079 |
msgstr "%s moet 'n telefoon nommer wees."
|
2080 |
|
2081 |
+
#: src/Tribe/Validate.php:473
|
2082 |
msgid "%s must consist of 5 numbers."
|
2083 |
msgstr "%s moet uit 5 syfers bestaan."
|
2084 |
|
2085 |
+
#: src/Tribe/Validate.php:459
|
2086 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2087 |
msgstr "% s moet bestaan uit letters, spasies, afkapings, en strepies."
|
2088 |
|
2089 |
+
#: src/Tribe/Validate.php:443
|
2090 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2091 |
msgstr "% s moet bestaan uit letters, getalle, koppeltekens, afkapings, en ruimtes."
|
2092 |
|
2093 |
+
#: src/Tribe/Validate.php:427
|
2094 |
msgid "%s must be a number between 0 and 21."
|
2095 |
msgstr "%s moet 'n getal 0 en 21 wees."
|
2096 |
|
2097 |
+
#: src/Tribe/Validate.php:373
|
2098 |
msgid "%s must be a number or percentage."
|
2099 |
msgstr "%s moet 'n syfer of 'n persentasie wees."
|
2100 |
|
2101 |
+
#: src/Tribe/Validate.php:357
|
2102 |
msgid "%s cannot be a duplicate"
|
2103 |
msgstr "%s mag nie 'n duplikaat wees nie"
|
2104 |
|
2105 |
+
#: src/Tribe/Validate.php:355
|
2106 |
msgid "%s cannot be the same as %s."
|
2107 |
msgstr "%s mag nie die selfde wees nie %s."
|
2108 |
|
2109 |
+
#: src/Tribe/Validate.php:348
|
2110 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2111 |
msgstr "Vergelyking bekragtiging misluk omdat geen vergelyking waarde is verskaf vir veld %s"
|
2112 |
|
2113 |
+
#: src/Tribe/Validate.php:295 src/Tribe/Validate.php:312
|
2114 |
+
#: src/Tribe/Validate.php:334
|
2115 |
msgid "%s must have a value that's part of its options."
|
2116 |
msgstr "% s moet 'n waarde hë wat deel is van sy opsies."
|
2117 |
|
2118 |
+
#: src/Tribe/Validate.php:279
|
2119 |
msgid "%s must be a valid absolute URL."
|
2120 |
msgstr "% s moet 'n geldige absolute URL wees."
|
2121 |
|
2122 |
+
#: src/Tribe/Validate.php:264
|
2123 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2124 |
msgstr "% s moet 'n geldige afkorting (getalle, letters, koppeltekens en onderstreep) wees."
|
2125 |
|
common/lang/tribe-common-ar.po
CHANGED
@@ -75,15 +75,15 @@ msgstr ""
|
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
@@ -2082,56 +2082,56 @@ msgstr "أفغانستان"
|
|
2082 |
msgid "Select a Country:"
|
2083 |
msgstr ""
|
2084 |
|
2085 |
-
#: src/Tribe/Validate.php:
|
2086 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2087 |
msgstr ""
|
2088 |
|
2089 |
-
#: src/Tribe/Validate.php:
|
2090 |
msgid "%s must be a phone number."
|
2091 |
msgstr ""
|
2092 |
|
2093 |
-
#: src/Tribe/Validate.php:
|
2094 |
msgid "%s must consist of 5 numbers."
|
2095 |
msgstr ""
|
2096 |
|
2097 |
-
#: src/Tribe/Validate.php:
|
2098 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2099 |
msgstr ""
|
2100 |
|
2101 |
-
#: src/Tribe/Validate.php:
|
2102 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2103 |
msgstr ""
|
2104 |
|
2105 |
-
#: src/Tribe/Validate.php:
|
2106 |
msgid "%s must be a number between 0 and 21."
|
2107 |
msgstr ""
|
2108 |
|
2109 |
-
#: src/Tribe/Validate.php:
|
2110 |
msgid "%s must be a number or percentage."
|
2111 |
msgstr ""
|
2112 |
|
2113 |
-
#: src/Tribe/Validate.php:
|
2114 |
msgid "%s cannot be a duplicate"
|
2115 |
msgstr ""
|
2116 |
|
2117 |
-
#: src/Tribe/Validate.php:
|
2118 |
msgid "%s cannot be the same as %s."
|
2119 |
msgstr ""
|
2120 |
|
2121 |
-
#: src/Tribe/Validate.php:
|
2122 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2123 |
msgstr ""
|
2124 |
|
2125 |
-
#: src/Tribe/Validate.php:
|
2126 |
-
#: src/Tribe/Validate.php:
|
2127 |
msgid "%s must have a value that's part of its options."
|
2128 |
msgstr ""
|
2129 |
|
2130 |
-
#: src/Tribe/Validate.php:
|
2131 |
msgid "%s must be a valid absolute URL."
|
2132 |
msgstr ""
|
2133 |
|
2134 |
-
#: src/Tribe/Validate.php:
|
2135 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2136 |
msgstr ""
|
2137 |
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
+
#: src/Tribe/Ajax/Dropdown.php:243
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
+
#: src/Tribe/Ajax/Dropdown.php:193
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
+
#: src/Tribe/Ajax/Dropdown.php:180
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
2082 |
msgid "Select a Country:"
|
2083 |
msgstr ""
|
2084 |
|
2085 |
+
#: src/Tribe/Validate.php:503
|
2086 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2087 |
msgstr ""
|
2088 |
|
2089 |
+
#: src/Tribe/Validate.php:487
|
2090 |
msgid "%s must be a phone number."
|
2091 |
msgstr ""
|
2092 |
|
2093 |
+
#: src/Tribe/Validate.php:473
|
2094 |
msgid "%s must consist of 5 numbers."
|
2095 |
msgstr ""
|
2096 |
|
2097 |
+
#: src/Tribe/Validate.php:459
|
2098 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2099 |
msgstr ""
|
2100 |
|
2101 |
+
#: src/Tribe/Validate.php:443
|
2102 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2103 |
msgstr ""
|
2104 |
|
2105 |
+
#: src/Tribe/Validate.php:427
|
2106 |
msgid "%s must be a number between 0 and 21."
|
2107 |
msgstr ""
|
2108 |
|
2109 |
+
#: src/Tribe/Validate.php:373
|
2110 |
msgid "%s must be a number or percentage."
|
2111 |
msgstr ""
|
2112 |
|
2113 |
+
#: src/Tribe/Validate.php:357
|
2114 |
msgid "%s cannot be a duplicate"
|
2115 |
msgstr ""
|
2116 |
|
2117 |
+
#: src/Tribe/Validate.php:355
|
2118 |
msgid "%s cannot be the same as %s."
|
2119 |
msgstr ""
|
2120 |
|
2121 |
+
#: src/Tribe/Validate.php:348
|
2122 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2123 |
msgstr ""
|
2124 |
|
2125 |
+
#: src/Tribe/Validate.php:295 src/Tribe/Validate.php:312
|
2126 |
+
#: src/Tribe/Validate.php:334
|
2127 |
msgid "%s must have a value that's part of its options."
|
2128 |
msgstr ""
|
2129 |
|
2130 |
+
#: src/Tribe/Validate.php:279
|
2131 |
msgid "%s must be a valid absolute URL."
|
2132 |
msgstr ""
|
2133 |
|
2134 |
+
#: src/Tribe/Validate.php:264
|
2135 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2136 |
msgstr ""
|
2137 |
|
common/lang/tribe-common-bg_BG.po
CHANGED
@@ -75,15 +75,15 @@ msgstr ""
|
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
@@ -2070,56 +2070,56 @@ msgstr "Афганистан"
|
|
2070 |
msgid "Select a Country:"
|
2071 |
msgstr "Избор на страна:"
|
2072 |
|
2073 |
-
#: src/Tribe/Validate.php:
|
2074 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2075 |
msgstr "Списъка със страните трябва да съдържа по една страна на ред и да бъде в следния формат: <br>САЩ, Съединени Американски щати <br> БГ, България."
|
2076 |
|
2077 |
-
#: src/Tribe/Validate.php:
|
2078 |
msgid "%s must be a phone number."
|
2079 |
msgstr "%s трябва да е валиден телефонен номер."
|
2080 |
|
2081 |
-
#: src/Tribe/Validate.php:
|
2082 |
msgid "%s must consist of 5 numbers."
|
2083 |
msgstr "%s трябва да съдържа 5 цифри."
|
2084 |
|
2085 |
-
#: src/Tribe/Validate.php:
|
2086 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2087 |
msgstr "%s трябва да съдържа само букви, интервали, апострофи и тирета."
|
2088 |
|
2089 |
-
#: src/Tribe/Validate.php:
|
2090 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2091 |
msgstr "%s трябва да съдържа само букви, цифри, тирета, апострофи и интервали."
|
2092 |
|
2093 |
-
#: src/Tribe/Validate.php:
|
2094 |
msgid "%s must be a number between 0 and 21."
|
2095 |
msgstr "%s трябва да е число между 0 и 21."
|
2096 |
|
2097 |
-
#: src/Tribe/Validate.php:
|
2098 |
msgid "%s must be a number or percentage."
|
2099 |
msgstr "%s трябва да е номер или процент."
|
2100 |
|
2101 |
-
#: src/Tribe/Validate.php:
|
2102 |
msgid "%s cannot be a duplicate"
|
2103 |
msgstr "%s не може да се дублира"
|
2104 |
|
2105 |
-
#: src/Tribe/Validate.php:
|
2106 |
msgid "%s cannot be the same as %s."
|
2107 |
msgstr "%s не може да съвпада с %s."
|
2108 |
|
2109 |
-
#: src/Tribe/Validate.php:
|
2110 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2111 |
msgstr "Валидирането на сравнението се провали, тъй като не е зададена стойност за сравнение в полето %s"
|
2112 |
|
2113 |
-
#: src/Tribe/Validate.php:
|
2114 |
-
#: src/Tribe/Validate.php:
|
2115 |
msgid "%s must have a value that's part of its options."
|
2116 |
msgstr "%s трябва да има стойност, която отговаря на една от възможноте опции."
|
2117 |
|
2118 |
-
#: src/Tribe/Validate.php:
|
2119 |
msgid "%s must be a valid absolute URL."
|
2120 |
msgstr "%s трябва да е валиден абсолюрен URL."
|
2121 |
|
2122 |
-
#: src/Tribe/Validate.php:
|
2123 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2124 |
msgstr "%s трябва да е валиден низ (числа, букви, тире и долно тире)."
|
2125 |
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
+
#: src/Tribe/Ajax/Dropdown.php:243
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
+
#: src/Tribe/Ajax/Dropdown.php:193
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
+
#: src/Tribe/Ajax/Dropdown.php:180
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
2070 |
msgid "Select a Country:"
|
2071 |
msgstr "Избор на страна:"
|
2072 |
|
2073 |
+
#: src/Tribe/Validate.php:503
|
2074 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2075 |
msgstr "Списъка със страните трябва да съдържа по една страна на ред и да бъде в следния формат: <br>САЩ, Съединени Американски щати <br> БГ, България."
|
2076 |
|
2077 |
+
#: src/Tribe/Validate.php:487
|
2078 |
msgid "%s must be a phone number."
|
2079 |
msgstr "%s трябва да е валиден телефонен номер."
|
2080 |
|
2081 |
+
#: src/Tribe/Validate.php:473
|
2082 |
msgid "%s must consist of 5 numbers."
|
2083 |
msgstr "%s трябва да съдържа 5 цифри."
|
2084 |
|
2085 |
+
#: src/Tribe/Validate.php:459
|
2086 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2087 |
msgstr "%s трябва да съдържа само букви, интервали, апострофи и тирета."
|
2088 |
|
2089 |
+
#: src/Tribe/Validate.php:443
|
2090 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2091 |
msgstr "%s трябва да съдържа само букви, цифри, тирета, апострофи и интервали."
|
2092 |
|
2093 |
+
#: src/Tribe/Validate.php:427
|
2094 |
msgid "%s must be a number between 0 and 21."
|
2095 |
msgstr "%s трябва да е число между 0 и 21."
|
2096 |
|
2097 |
+
#: src/Tribe/Validate.php:373
|
2098 |
msgid "%s must be a number or percentage."
|
2099 |
msgstr "%s трябва да е номер или процент."
|
2100 |
|
2101 |
+
#: src/Tribe/Validate.php:357
|
2102 |
msgid "%s cannot be a duplicate"
|
2103 |
msgstr "%s не може да се дублира"
|
2104 |
|
2105 |
+
#: src/Tribe/Validate.php:355
|
2106 |
msgid "%s cannot be the same as %s."
|
2107 |
msgstr "%s не може да съвпада с %s."
|
2108 |
|
2109 |
+
#: src/Tribe/Validate.php:348
|
2110 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2111 |
msgstr "Валидирането на сравнението се провали, тъй като не е зададена стойност за сравнение в полето %s"
|
2112 |
|
2113 |
+
#: src/Tribe/Validate.php:295 src/Tribe/Validate.php:312
|
2114 |
+
#: src/Tribe/Validate.php:334
|
2115 |
msgid "%s must have a value that's part of its options."
|
2116 |
msgstr "%s трябва да има стойност, която отговаря на една от възможноте опции."
|
2117 |
|
2118 |
+
#: src/Tribe/Validate.php:279
|
2119 |
msgid "%s must be a valid absolute URL."
|
2120 |
msgstr "%s трябва да е валиден абсолюрен URL."
|
2121 |
|
2122 |
+
#: src/Tribe/Validate.php:264
|
2123 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2124 |
msgstr "%s трябва да е валиден низ (числа, букви, тире и долно тире)."
|
2125 |
|
common/lang/tribe-common-ca.po
CHANGED
@@ -75,15 +75,15 @@ msgstr ""
|
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
@@ -2070,56 +2070,56 @@ msgstr "Afganistan"
|
|
2070 |
msgid "Select a Country:"
|
2071 |
msgstr "Selecciona un país:"
|
2072 |
|
2073 |
-
#: src/Tribe/Validate.php:
|
2074 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2075 |
msgstr "La llista de països ha de contenir només un país per línia de la següent manera: <br>US, Estats Units<br> UK, Regne Unit."
|
2076 |
|
2077 |
-
#: src/Tribe/Validate.php:
|
2078 |
msgid "%s must be a phone number."
|
2079 |
msgstr "%s ha de ser un número de telèfon."
|
2080 |
|
2081 |
-
#: src/Tribe/Validate.php:
|
2082 |
msgid "%s must consist of 5 numbers."
|
2083 |
msgstr "%s ha de contenir només 5 números."
|
2084 |
|
2085 |
-
#: src/Tribe/Validate.php:
|
2086 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2087 |
msgstr "%s ha de consistir només de lletres, espais, apòstrofs i guions."
|
2088 |
|
2089 |
-
#: src/Tribe/Validate.php:
|
2090 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2091 |
msgstr "%s ha de consistir només de lletres, números, guions, apòstrofs i espais,"
|
2092 |
|
2093 |
-
#: src/Tribe/Validate.php:
|
2094 |
msgid "%s must be a number between 0 and 21."
|
2095 |
msgstr "%s ha de ser un número entre 0 i 21."
|
2096 |
|
2097 |
-
#: src/Tribe/Validate.php:
|
2098 |
msgid "%s must be a number or percentage."
|
2099 |
msgstr "%s ha de ser un número o un percentatge."
|
2100 |
|
2101 |
-
#: src/Tribe/Validate.php:
|
2102 |
msgid "%s cannot be a duplicate"
|
2103 |
msgstr "%s no pot ser un duplicat"
|
2104 |
|
2105 |
-
#: src/Tribe/Validate.php:
|
2106 |
msgid "%s cannot be the same as %s."
|
2107 |
msgstr "%s no pot ser el mateix que %s."
|
2108 |
|
2109 |
-
#: src/Tribe/Validate.php:
|
2110 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2111 |
msgstr "La validació per comparació ha fallat perquè no s'ha indicat el valor a comparar per al camp %s"
|
2112 |
|
2113 |
-
#: src/Tribe/Validate.php:
|
2114 |
-
#: src/Tribe/Validate.php:
|
2115 |
msgid "%s must have a value that's part of its options."
|
2116 |
msgstr "%s ha de tenir un valor que sigui part de les seves opcions."
|
2117 |
|
2118 |
-
#: src/Tribe/Validate.php:
|
2119 |
msgid "%s must be a valid absolute URL."
|
2120 |
msgstr "%s ha de ser una URL absoluta vàlida."
|
2121 |
|
2122 |
-
#: src/Tribe/Validate.php:
|
2123 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2124 |
msgstr "%s ha de ser un slug vàlid (números, lletres, guions i guions baixos)."
|
2125 |
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
+
#: src/Tribe/Ajax/Dropdown.php:243
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
+
#: src/Tribe/Ajax/Dropdown.php:193
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
+
#: src/Tribe/Ajax/Dropdown.php:180
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
2070 |
msgid "Select a Country:"
|
2071 |
msgstr "Selecciona un país:"
|
2072 |
|
2073 |
+
#: src/Tribe/Validate.php:503
|
2074 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2075 |
msgstr "La llista de països ha de contenir només un país per línia de la següent manera: <br>US, Estats Units<br> UK, Regne Unit."
|
2076 |
|
2077 |
+
#: src/Tribe/Validate.php:487
|
2078 |
msgid "%s must be a phone number."
|
2079 |
msgstr "%s ha de ser un número de telèfon."
|
2080 |
|
2081 |
+
#: src/Tribe/Validate.php:473
|
2082 |
msgid "%s must consist of 5 numbers."
|
2083 |
msgstr "%s ha de contenir només 5 números."
|
2084 |
|
2085 |
+
#: src/Tribe/Validate.php:459
|
2086 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2087 |
msgstr "%s ha de consistir només de lletres, espais, apòstrofs i guions."
|
2088 |
|
2089 |
+
#: src/Tribe/Validate.php:443
|
2090 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2091 |
msgstr "%s ha de consistir només de lletres, números, guions, apòstrofs i espais,"
|
2092 |
|
2093 |
+
#: src/Tribe/Validate.php:427
|
2094 |
msgid "%s must be a number between 0 and 21."
|
2095 |
msgstr "%s ha de ser un número entre 0 i 21."
|
2096 |
|
2097 |
+
#: src/Tribe/Validate.php:373
|
2098 |
msgid "%s must be a number or percentage."
|
2099 |
msgstr "%s ha de ser un número o un percentatge."
|
2100 |
|
2101 |
+
#: src/Tribe/Validate.php:357
|
2102 |
msgid "%s cannot be a duplicate"
|
2103 |
msgstr "%s no pot ser un duplicat"
|
2104 |
|
2105 |
+
#: src/Tribe/Validate.php:355
|
2106 |
msgid "%s cannot be the same as %s."
|
2107 |
msgstr "%s no pot ser el mateix que %s."
|
2108 |
|
2109 |
+
#: src/Tribe/Validate.php:348
|
2110 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2111 |
msgstr "La validació per comparació ha fallat perquè no s'ha indicat el valor a comparar per al camp %s"
|
2112 |
|
2113 |
+
#: src/Tribe/Validate.php:295 src/Tribe/Validate.php:312
|
2114 |
+
#: src/Tribe/Validate.php:334
|
2115 |
msgid "%s must have a value that's part of its options."
|
2116 |
msgstr "%s ha de tenir un valor que sigui part de les seves opcions."
|
2117 |
|
2118 |
+
#: src/Tribe/Validate.php:279
|
2119 |
msgid "%s must be a valid absolute URL."
|
2120 |
msgstr "%s ha de ser una URL absoluta vàlida."
|
2121 |
|
2122 |
+
#: src/Tribe/Validate.php:264
|
2123 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2124 |
msgstr "%s ha de ser un slug vàlid (números, lletres, guions i guions baixos)."
|
2125 |
|
common/lang/tribe-common-cs_CZ.po
CHANGED
@@ -75,15 +75,15 @@ msgstr ""
|
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
@@ -2073,56 +2073,56 @@ msgstr "Afghánistán"
|
|
2073 |
msgid "Select a Country:"
|
2074 |
msgstr "Vyberte zemi:"
|
2075 |
|
2076 |
-
#: src/Tribe/Validate.php:
|
2077 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2078 |
msgstr "Seznam zemí musí být formátován jako jedna země na řádek v následujícím formátu: <br>US, United States <br> UK, United Kingdom."
|
2079 |
|
2080 |
-
#: src/Tribe/Validate.php:
|
2081 |
msgid "%s must be a phone number."
|
2082 |
msgstr "%s musí být telefonní číslo."
|
2083 |
|
2084 |
-
#: src/Tribe/Validate.php:
|
2085 |
msgid "%s must consist of 5 numbers."
|
2086 |
msgstr "%s se musí skládat z 5 čísel."
|
2087 |
|
2088 |
-
#: src/Tribe/Validate.php:
|
2089 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2090 |
msgstr "%s se musí skládat pouze z písmen, mezer, apostrofů a pomlček."
|
2091 |
|
2092 |
-
#: src/Tribe/Validate.php:
|
2093 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2094 |
msgstr "%s se musí skládat pouze z písmen, číslic, pomlček, apostrofů a mezer."
|
2095 |
|
2096 |
-
#: src/Tribe/Validate.php:
|
2097 |
msgid "%s must be a number between 0 and 21."
|
2098 |
msgstr "%s musí být číslo v rozmezí 0 až 21."
|
2099 |
|
2100 |
-
#: src/Tribe/Validate.php:
|
2101 |
msgid "%s must be a number or percentage."
|
2102 |
msgstr "%s musí být číslo nebo procento."
|
2103 |
|
2104 |
-
#: src/Tribe/Validate.php:
|
2105 |
msgid "%s cannot be a duplicate"
|
2106 |
msgstr "%s nemůže být duplicitní"
|
2107 |
|
2108 |
-
#: src/Tribe/Validate.php:
|
2109 |
msgid "%s cannot be the same as %s."
|
2110 |
msgstr "%s nemůže být stejné jako %s."
|
2111 |
|
2112 |
-
#: src/Tribe/Validate.php:
|
2113 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2114 |
msgstr "Kontrola porovnávání se nezdařila, protože nebyla zadána porovnávací hodnota pro pole %s"
|
2115 |
|
2116 |
-
#: src/Tribe/Validate.php:
|
2117 |
-
#: src/Tribe/Validate.php:
|
2118 |
msgid "%s must have a value that's part of its options."
|
2119 |
msgstr "%s musí mít hodnotu, která je jednou z možných voleb."
|
2120 |
|
2121 |
-
#: src/Tribe/Validate.php:
|
2122 |
msgid "%s must be a valid absolute URL."
|
2123 |
msgstr "%s musí být platná absolutní adresa URL."
|
2124 |
|
2125 |
-
#: src/Tribe/Validate.php:
|
2126 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2127 |
msgstr "%s musí být platným názvem v URL (číslice, písmena, pomlčky, a podtržítka)."
|
2128 |
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
+
#: src/Tribe/Ajax/Dropdown.php:243
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
+
#: src/Tribe/Ajax/Dropdown.php:193
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
+
#: src/Tribe/Ajax/Dropdown.php:180
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
2073 |
msgid "Select a Country:"
|
2074 |
msgstr "Vyberte zemi:"
|
2075 |
|
2076 |
+
#: src/Tribe/Validate.php:503
|
2077 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2078 |
msgstr "Seznam zemí musí být formátován jako jedna země na řádek v následujícím formátu: <br>US, United States <br> UK, United Kingdom."
|
2079 |
|
2080 |
+
#: src/Tribe/Validate.php:487
|
2081 |
msgid "%s must be a phone number."
|
2082 |
msgstr "%s musí být telefonní číslo."
|
2083 |
|
2084 |
+
#: src/Tribe/Validate.php:473
|
2085 |
msgid "%s must consist of 5 numbers."
|
2086 |
msgstr "%s se musí skládat z 5 čísel."
|
2087 |
|
2088 |
+
#: src/Tribe/Validate.php:459
|
2089 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2090 |
msgstr "%s se musí skládat pouze z písmen, mezer, apostrofů a pomlček."
|
2091 |
|
2092 |
+
#: src/Tribe/Validate.php:443
|
2093 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2094 |
msgstr "%s se musí skládat pouze z písmen, číslic, pomlček, apostrofů a mezer."
|
2095 |
|
2096 |
+
#: src/Tribe/Validate.php:427
|
2097 |
msgid "%s must be a number between 0 and 21."
|
2098 |
msgstr "%s musí být číslo v rozmezí 0 až 21."
|
2099 |
|
2100 |
+
#: src/Tribe/Validate.php:373
|
2101 |
msgid "%s must be a number or percentage."
|
2102 |
msgstr "%s musí být číslo nebo procento."
|
2103 |
|
2104 |
+
#: src/Tribe/Validate.php:357
|
2105 |
msgid "%s cannot be a duplicate"
|
2106 |
msgstr "%s nemůže být duplicitní"
|
2107 |
|
2108 |
+
#: src/Tribe/Validate.php:355
|
2109 |
msgid "%s cannot be the same as %s."
|
2110 |
msgstr "%s nemůže být stejné jako %s."
|
2111 |
|
2112 |
+
#: src/Tribe/Validate.php:348
|
2113 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2114 |
msgstr "Kontrola porovnávání se nezdařila, protože nebyla zadána porovnávací hodnota pro pole %s"
|
2115 |
|
2116 |
+
#: src/Tribe/Validate.php:295 src/Tribe/Validate.php:312
|
2117 |
+
#: src/Tribe/Validate.php:334
|
2118 |
msgid "%s must have a value that's part of its options."
|
2119 |
msgstr "%s musí mít hodnotu, která je jednou z možných voleb."
|
2120 |
|
2121 |
+
#: src/Tribe/Validate.php:279
|
2122 |
msgid "%s must be a valid absolute URL."
|
2123 |
msgstr "%s musí být platná absolutní adresa URL."
|
2124 |
|
2125 |
+
#: src/Tribe/Validate.php:264
|
2126 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2127 |
msgstr "%s musí být platným názvem v URL (číslice, písmena, pomlčky, a podtržítka)."
|
2128 |
|
common/lang/tribe-common-da_DK.po
CHANGED
@@ -75,15 +75,15 @@ msgstr ""
|
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
@@ -2070,56 +2070,56 @@ msgstr "Afghanistan"
|
|
2070 |
msgid "Select a Country:"
|
2071 |
msgstr "Vælg et land:"
|
2072 |
|
2073 |
-
#: src/Tribe/Validate.php:
|
2074 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2075 |
msgstr "Landelisten skal formatteres med ét land per linje:<br>US, United States <br> UK, United Kingdom."
|
2076 |
|
2077 |
-
#: src/Tribe/Validate.php:
|
2078 |
msgid "%s must be a phone number."
|
2079 |
msgstr "%s skal være et telefonnummer."
|
2080 |
|
2081 |
-
#: src/Tribe/Validate.php:
|
2082 |
msgid "%s must consist of 5 numbers."
|
2083 |
msgstr "%s skal indeholde 5 cifre."
|
2084 |
|
2085 |
-
#: src/Tribe/Validate.php:
|
2086 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2087 |
msgstr "%s må kun indeholde bogstaver, mellemrum og skråstreger."
|
2088 |
|
2089 |
-
#: src/Tribe/Validate.php:
|
2090 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2091 |
msgstr "%s må kun indeholde tal, bogstaver, bindestreger, apostroffer og mellemrum."
|
2092 |
|
2093 |
-
#: src/Tribe/Validate.php:
|
2094 |
msgid "%s must be a number between 0 and 21."
|
2095 |
msgstr "%s skal være et nummer mellem 0 og 21."
|
2096 |
|
2097 |
-
#: src/Tribe/Validate.php:
|
2098 |
msgid "%s must be a number or percentage."
|
2099 |
msgstr "%s skal være et nummer eller en procent."
|
2100 |
|
2101 |
-
#: src/Tribe/Validate.php:
|
2102 |
msgid "%s cannot be a duplicate"
|
2103 |
msgstr "%s må ikke være en gentagelse."
|
2104 |
|
2105 |
-
#: src/Tribe/Validate.php:
|
2106 |
msgid "%s cannot be the same as %s."
|
2107 |
msgstr "%s må ikke være det samme som %s."
|
2108 |
|
2109 |
-
#: src/Tribe/Validate.php:
|
2110 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2111 |
msgstr "Fejl på grund af manglende værdi som %s kan måle sig mod."
|
2112 |
|
2113 |
-
#: src/Tribe/Validate.php:
|
2114 |
-
#: src/Tribe/Validate.php:
|
2115 |
msgid "%s must have a value that's part of its options."
|
2116 |
msgstr "%s skal have en værdi der afspejler dens valg."
|
2117 |
|
2118 |
-
#: src/Tribe/Validate.php:
|
2119 |
msgid "%s must be a valid absolute URL."
|
2120 |
msgstr "%s skal være et gyldigt link"
|
2121 |
|
2122 |
-
#: src/Tribe/Validate.php:
|
2123 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2124 |
msgstr "%s må kun indeholde tal, bogstaver, bindestreger og underscores"
|
2125 |
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
+
#: src/Tribe/Ajax/Dropdown.php:243
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
+
#: src/Tribe/Ajax/Dropdown.php:193
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
+
#: src/Tribe/Ajax/Dropdown.php:180
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
2070 |
msgid "Select a Country:"
|
2071 |
msgstr "Vælg et land:"
|
2072 |
|
2073 |
+
#: src/Tribe/Validate.php:503
|
2074 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2075 |
msgstr "Landelisten skal formatteres med ét land per linje:<br>US, United States <br> UK, United Kingdom."
|
2076 |
|
2077 |
+
#: src/Tribe/Validate.php:487
|
2078 |
msgid "%s must be a phone number."
|
2079 |
msgstr "%s skal være et telefonnummer."
|
2080 |
|
2081 |
+
#: src/Tribe/Validate.php:473
|
2082 |
msgid "%s must consist of 5 numbers."
|
2083 |
msgstr "%s skal indeholde 5 cifre."
|
2084 |
|
2085 |
+
#: src/Tribe/Validate.php:459
|
2086 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2087 |
msgstr "%s må kun indeholde bogstaver, mellemrum og skråstreger."
|
2088 |
|
2089 |
+
#: src/Tribe/Validate.php:443
|
2090 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2091 |
msgstr "%s må kun indeholde tal, bogstaver, bindestreger, apostroffer og mellemrum."
|
2092 |
|
2093 |
+
#: src/Tribe/Validate.php:427
|
2094 |
msgid "%s must be a number between 0 and 21."
|
2095 |
msgstr "%s skal være et nummer mellem 0 og 21."
|
2096 |
|
2097 |
+
#: src/Tribe/Validate.php:373
|
2098 |
msgid "%s must be a number or percentage."
|
2099 |
msgstr "%s skal være et nummer eller en procent."
|
2100 |
|
2101 |
+
#: src/Tribe/Validate.php:357
|
2102 |
msgid "%s cannot be a duplicate"
|
2103 |
msgstr "%s må ikke være en gentagelse."
|
2104 |
|
2105 |
+
#: src/Tribe/Validate.php:355
|
2106 |
msgid "%s cannot be the same as %s."
|
2107 |
msgstr "%s må ikke være det samme som %s."
|
2108 |
|
2109 |
+
#: src/Tribe/Validate.php:348
|
2110 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2111 |
msgstr "Fejl på grund af manglende værdi som %s kan måle sig mod."
|
2112 |
|
2113 |
+
#: src/Tribe/Validate.php:295 src/Tribe/Validate.php:312
|
2114 |
+
#: src/Tribe/Validate.php:334
|
2115 |
msgid "%s must have a value that's part of its options."
|
2116 |
msgstr "%s skal have en værdi der afspejler dens valg."
|
2117 |
|
2118 |
+
#: src/Tribe/Validate.php:279
|
2119 |
msgid "%s must be a valid absolute URL."
|
2120 |
msgstr "%s skal være et gyldigt link"
|
2121 |
|
2122 |
+
#: src/Tribe/Validate.php:264
|
2123 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2124 |
msgstr "%s må kun indeholde tal, bogstaver, bindestreger og underscores"
|
2125 |
|
common/lang/tribe-common-de_DE.po
CHANGED
@@ -75,15 +75,15 @@ msgstr "Erweitern Sie den Events Calendar um Veranstaltungen, die durch Nutzer
|
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr "Veranstlaltungen aus dem Internet importieren! Event Aggregator macht es einfach, geplante oder manuelle Importe von Facebook, Meetup, Google Kalender und iCalendar, zusammen mit Uploads aus CSV und ICS Dateien laufen zu lassen. Sie können dank unserer REST API auch direkt von anderen Seiten importieren, die den Events Calendar nutzen."
|
77 |
|
78 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr "\"%s\" ist ungültig und kann auf der \"%s\" Instanz nicht erreicht werden."
|
81 |
|
82 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr "Keine Daten für dieses Dropdownmenü festgelegt"
|
85 |
|
86 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr "Keine Datenquelle für diese Dropdownmenü verfügbar"
|
89 |
|
@@ -2070,56 +2070,56 @@ msgstr "Afghanistan"
|
|
2070 |
msgid "Select a Country:"
|
2071 |
msgstr "Land wählen ..."
|
2072 |
|
2073 |
-
#: src/Tribe/Validate.php:
|
2074 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2075 |
msgstr "Die Länder-Liste muss als ein Land pro Zeile in der folgenden Weise formatiert sein: <br>US, United States <br> UK, United Kingdom."
|
2076 |
|
2077 |
-
#: src/Tribe/Validate.php:
|
2078 |
msgid "%s must be a phone number."
|
2079 |
msgstr "%s muss eine Telefonnummer sein."
|
2080 |
|
2081 |
-
#: src/Tribe/Validate.php:
|
2082 |
msgid "%s must consist of 5 numbers."
|
2083 |
msgstr "%s muss aus fünf Ziffern bestehen."
|
2084 |
|
2085 |
-
#: src/Tribe/Validate.php:
|
2086 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2087 |
msgstr "%s muss aus Buchstaben, Leerzeichen, Apostrophe und Gedankenstrichen bestehen."
|
2088 |
|
2089 |
-
#: src/Tribe/Validate.php:
|
2090 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2091 |
msgstr "%s darf nur aus Buchstaben, Zahlen, Gedankenstrichen, Apostrophe und Leerzeichen bestehen. "
|
2092 |
|
2093 |
-
#: src/Tribe/Validate.php:
|
2094 |
msgid "%s must be a number between 0 and 21."
|
2095 |
msgstr "%s muss eine Zahl zwischen 0 und 21 sein."
|
2096 |
|
2097 |
-
#: src/Tribe/Validate.php:
|
2098 |
msgid "%s must be a number or percentage."
|
2099 |
msgstr "%s muss eine Zahl oder Prozentsatz sein."
|
2100 |
|
2101 |
-
#: src/Tribe/Validate.php:
|
2102 |
msgid "%s cannot be a duplicate"
|
2103 |
msgstr "%s kann nicht vervielfältigt werden"
|
2104 |
|
2105 |
-
#: src/Tribe/Validate.php:
|
2106 |
msgid "%s cannot be the same as %s."
|
2107 |
msgstr "%s kann nicht dasselbe sein wie %s."
|
2108 |
|
2109 |
-
#: src/Tribe/Validate.php:
|
2110 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2111 |
msgstr "Der Vergleich ist fehlgeschlagen, weil keine Eingabe im Feld %s gefunden wurde"
|
2112 |
|
2113 |
-
#: src/Tribe/Validate.php:
|
2114 |
-
#: src/Tribe/Validate.php:
|
2115 |
msgid "%s must have a value that's part of its options."
|
2116 |
msgstr "%s muss eine Wert haben, der Teil der Optionen ist."
|
2117 |
|
2118 |
-
#: src/Tribe/Validate.php:
|
2119 |
msgid "%s must be a valid absolute URL."
|
2120 |
msgstr "%s muss eine gültige URL sein."
|
2121 |
|
2122 |
-
#: src/Tribe/Validate.php:
|
2123 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2124 |
msgstr "%s muss eine gültige Ausgangsform haben (Nummern, Buchstaben, Gedankenstriche und Unterstreichungen)."
|
2125 |
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr "Veranstlaltungen aus dem Internet importieren! Event Aggregator macht es einfach, geplante oder manuelle Importe von Facebook, Meetup, Google Kalender und iCalendar, zusammen mit Uploads aus CSV und ICS Dateien laufen zu lassen. Sie können dank unserer REST API auch direkt von anderen Seiten importieren, die den Events Calendar nutzen."
|
77 |
|
78 |
+
#: src/Tribe/Ajax/Dropdown.php:243
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr "\"%s\" ist ungültig und kann auf der \"%s\" Instanz nicht erreicht werden."
|
81 |
|
82 |
+
#: src/Tribe/Ajax/Dropdown.php:193
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr "Keine Daten für dieses Dropdownmenü festgelegt"
|
85 |
|
86 |
+
#: src/Tribe/Ajax/Dropdown.php:180
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr "Keine Datenquelle für diese Dropdownmenü verfügbar"
|
89 |
|
2070 |
msgid "Select a Country:"
|
2071 |
msgstr "Land wählen ..."
|
2072 |
|
2073 |
+
#: src/Tribe/Validate.php:503
|
2074 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2075 |
msgstr "Die Länder-Liste muss als ein Land pro Zeile in der folgenden Weise formatiert sein: <br>US, United States <br> UK, United Kingdom."
|
2076 |
|
2077 |
+
#: src/Tribe/Validate.php:487
|
2078 |
msgid "%s must be a phone number."
|
2079 |
msgstr "%s muss eine Telefonnummer sein."
|
2080 |
|
2081 |
+
#: src/Tribe/Validate.php:473
|
2082 |
msgid "%s must consist of 5 numbers."
|
2083 |
msgstr "%s muss aus fünf Ziffern bestehen."
|
2084 |
|
2085 |
+
#: src/Tribe/Validate.php:459
|
2086 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2087 |
msgstr "%s muss aus Buchstaben, Leerzeichen, Apostrophe und Gedankenstrichen bestehen."
|
2088 |
|
2089 |
+
#: src/Tribe/Validate.php:443
|
2090 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2091 |
msgstr "%s darf nur aus Buchstaben, Zahlen, Gedankenstrichen, Apostrophe und Leerzeichen bestehen. "
|
2092 |
|
2093 |
+
#: src/Tribe/Validate.php:427
|
2094 |
msgid "%s must be a number between 0 and 21."
|
2095 |
msgstr "%s muss eine Zahl zwischen 0 und 21 sein."
|
2096 |
|
2097 |
+
#: src/Tribe/Validate.php:373
|
2098 |
msgid "%s must be a number or percentage."
|
2099 |
msgstr "%s muss eine Zahl oder Prozentsatz sein."
|
2100 |
|
2101 |
+
#: src/Tribe/Validate.php:357
|
2102 |
msgid "%s cannot be a duplicate"
|
2103 |
msgstr "%s kann nicht vervielfältigt werden"
|
2104 |
|
2105 |
+
#: src/Tribe/Validate.php:355
|
2106 |
msgid "%s cannot be the same as %s."
|
2107 |
msgstr "%s kann nicht dasselbe sein wie %s."
|
2108 |
|
2109 |
+
#: src/Tribe/Validate.php:348
|
2110 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2111 |
msgstr "Der Vergleich ist fehlgeschlagen, weil keine Eingabe im Feld %s gefunden wurde"
|
2112 |
|
2113 |
+
#: src/Tribe/Validate.php:295 src/Tribe/Validate.php:312
|
2114 |
+
#: src/Tribe/Validate.php:334
|
2115 |
msgid "%s must have a value that's part of its options."
|
2116 |
msgstr "%s muss eine Wert haben, der Teil der Optionen ist."
|
2117 |
|
2118 |
+
#: src/Tribe/Validate.php:279
|
2119 |
msgid "%s must be a valid absolute URL."
|
2120 |
msgstr "%s muss eine gültige URL sein."
|
2121 |
|
2122 |
+
#: src/Tribe/Validate.php:264
|
2123 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2124 |
msgstr "%s muss eine gültige Ausgangsform haben (Nummern, Buchstaben, Gedankenstriche und Unterstreichungen)."
|
2125 |
|
common/lang/tribe-common-el.po
CHANGED
@@ -75,15 +75,15 @@ msgstr ""
|
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
@@ -2070,56 +2070,56 @@ msgstr "Αφγανιστάν"
|
|
2070 |
msgid "Select a Country:"
|
2071 |
msgstr "Επιλογή Χώρας:"
|
2072 |
|
2073 |
-
#: src/Tribe/Validate.php:
|
2074 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2075 |
msgstr "Η λίστα χωρών πρέπει να διαμορφωθεί ως μία χώρα ανά γραμμή με την ακόλουθη μορφή: <br> ΗΠΑ, Ηνωμένες Πολιτείες <br> ΗΒ, Ηνωμένο Βασίλειο."
|
2076 |
|
2077 |
-
#: src/Tribe/Validate.php:
|
2078 |
msgid "%s must be a phone number."
|
2079 |
msgstr "%s πρέπει να είναι ένας αριθμός τηλεφώνου."
|
2080 |
|
2081 |
-
#: src/Tribe/Validate.php:
|
2082 |
msgid "%s must consist of 5 numbers."
|
2083 |
msgstr "%s πρέπει να αποτελείται από 5 αριθμούς."
|
2084 |
|
2085 |
-
#: src/Tribe/Validate.php:
|
2086 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2087 |
msgstr "%s πρέπει να αποτελείται από γράμματα, κενά διαστήματα, αποστρόφους και παύλες."
|
2088 |
|
2089 |
-
#: src/Tribe/Validate.php:
|
2090 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2091 |
msgstr "%s πρέπει να αποτελείται μόνο από γράμματα, αριθμούς, παύλες, αποστρόφους και κενά διαστήματα."
|
2092 |
|
2093 |
-
#: src/Tribe/Validate.php:
|
2094 |
msgid "%s must be a number between 0 and 21."
|
2095 |
msgstr "%s πρέπει να είναι ένας αριθμός μεταξύ 0 και 21."
|
2096 |
|
2097 |
-
#: src/Tribe/Validate.php:
|
2098 |
msgid "%s must be a number or percentage."
|
2099 |
msgstr "%s πρέπει να είναι αριθμός ή ποσοστό."
|
2100 |
|
2101 |
-
#: src/Tribe/Validate.php:
|
2102 |
msgid "%s cannot be a duplicate"
|
2103 |
msgstr "%s δεν μπορεί να είναι ένα διπλότυπο"
|
2104 |
|
2105 |
-
#: src/Tribe/Validate.php:
|
2106 |
msgid "%s cannot be the same as %s."
|
2107 |
msgstr "%s δεν μπορεί να είναι το ίδιο με %s."
|
2108 |
|
2109 |
-
#: src/Tribe/Validate.php:
|
2110 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2111 |
msgstr "Η σύγκριση επικύρωσης απέτυχε διότι δεν παρασχέθηκε αξία σύγκρισης για το πεδίο %s"
|
2112 |
|
2113 |
-
#: src/Tribe/Validate.php:
|
2114 |
-
#: src/Tribe/Validate.php:
|
2115 |
msgid "%s must have a value that's part of its options."
|
2116 |
msgstr "%s πρέπει να έχει μια τιμή που να είναι μέρος των επιλογών του."
|
2117 |
|
2118 |
-
#: src/Tribe/Validate.php:
|
2119 |
msgid "%s must be a valid absolute URL."
|
2120 |
msgstr "%s πρέπει να είναι έγκυρη απόλυτη διεύθυνση URL."
|
2121 |
|
2122 |
-
#: src/Tribe/Validate.php:
|
2123 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2124 |
msgstr "%s πρέπει να είναι ένα έγκυρο slug (αριθμοί, γράμματα, παύλες, και κάτω παύλες)."
|
2125 |
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
+
#: src/Tribe/Ajax/Dropdown.php:243
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
+
#: src/Tribe/Ajax/Dropdown.php:193
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
+
#: src/Tribe/Ajax/Dropdown.php:180
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
2070 |
msgid "Select a Country:"
|
2071 |
msgstr "Επιλογή Χώρας:"
|
2072 |
|
2073 |
+
#: src/Tribe/Validate.php:503
|
2074 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2075 |
msgstr "Η λίστα χωρών πρέπει να διαμορφωθεί ως μία χώρα ανά γραμμή με την ακόλουθη μορφή: <br> ΗΠΑ, Ηνωμένες Πολιτείες <br> ΗΒ, Ηνωμένο Βασίλειο."
|
2076 |
|
2077 |
+
#: src/Tribe/Validate.php:487
|
2078 |
msgid "%s must be a phone number."
|
2079 |
msgstr "%s πρέπει να είναι ένας αριθμός τηλεφώνου."
|
2080 |
|
2081 |
+
#: src/Tribe/Validate.php:473
|
2082 |
msgid "%s must consist of 5 numbers."
|
2083 |
msgstr "%s πρέπει να αποτελείται από 5 αριθμούς."
|
2084 |
|
2085 |
+
#: src/Tribe/Validate.php:459
|
2086 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2087 |
msgstr "%s πρέπει να αποτελείται από γράμματα, κενά διαστήματα, αποστρόφους και παύλες."
|
2088 |
|
2089 |
+
#: src/Tribe/Validate.php:443
|
2090 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2091 |
msgstr "%s πρέπει να αποτελείται μόνο από γράμματα, αριθμούς, παύλες, αποστρόφους και κενά διαστήματα."
|
2092 |
|
2093 |
+
#: src/Tribe/Validate.php:427
|
2094 |
msgid "%s must be a number between 0 and 21."
|
2095 |
msgstr "%s πρέπει να είναι ένας αριθμός μεταξύ 0 και 21."
|
2096 |
|
2097 |
+
#: src/Tribe/Validate.php:373
|
2098 |
msgid "%s must be a number or percentage."
|
2099 |
msgstr "%s πρέπει να είναι αριθμός ή ποσοστό."
|
2100 |
|
2101 |
+
#: src/Tribe/Validate.php:357
|
2102 |
msgid "%s cannot be a duplicate"
|
2103 |
msgstr "%s δεν μπορεί να είναι ένα διπλότυπο"
|
2104 |
|
2105 |
+
#: src/Tribe/Validate.php:355
|
2106 |
msgid "%s cannot be the same as %s."
|
2107 |
msgstr "%s δεν μπορεί να είναι το ίδιο με %s."
|
2108 |
|
2109 |
+
#: src/Tribe/Validate.php:348
|
2110 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2111 |
msgstr "Η σύγκριση επικύρωσης απέτυχε διότι δεν παρασχέθηκε αξία σύγκρισης για το πεδίο %s"
|
2112 |
|
2113 |
+
#: src/Tribe/Validate.php:295 src/Tribe/Validate.php:312
|
2114 |
+
#: src/Tribe/Validate.php:334
|
2115 |
msgid "%s must have a value that's part of its options."
|
2116 |
msgstr "%s πρέπει να έχει μια τιμή που να είναι μέρος των επιλογών του."
|
2117 |
|
2118 |
+
#: src/Tribe/Validate.php:279
|
2119 |
msgid "%s must be a valid absolute URL."
|
2120 |
msgstr "%s πρέπει να είναι έγκυρη απόλυτη διεύθυνση URL."
|
2121 |
|
2122 |
+
#: src/Tribe/Validate.php:264
|
2123 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2124 |
msgstr "%s πρέπει να είναι ένα έγκυρο slug (αριθμοί, γράμματα, παύλες, και κάτω παύλες)."
|
2125 |
|
common/lang/tribe-common-en_GB.po
CHANGED
@@ -75,15 +75,15 @@ msgstr ""
|
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
@@ -2070,56 +2070,56 @@ msgstr "Afghanistan"
|
|
2070 |
msgid "Select a Country:"
|
2071 |
msgstr "Select a Country:"
|
2072 |
|
2073 |
-
#: src/Tribe/Validate.php:
|
2074 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2075 |
msgstr "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2076 |
|
2077 |
-
#: src/Tribe/Validate.php:
|
2078 |
msgid "%s must be a phone number."
|
2079 |
msgstr "%s must be a phone number."
|
2080 |
|
2081 |
-
#: src/Tribe/Validate.php:
|
2082 |
msgid "%s must consist of 5 numbers."
|
2083 |
msgstr "%s must consist of 5 numbers."
|
2084 |
|
2085 |
-
#: src/Tribe/Validate.php:
|
2086 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2087 |
msgstr "%s must consist of letters, spaces, apostrophes, and dashes."
|
2088 |
|
2089 |
-
#: src/Tribe/Validate.php:
|
2090 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2091 |
msgstr "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2092 |
|
2093 |
-
#: src/Tribe/Validate.php:
|
2094 |
msgid "%s must be a number between 0 and 21."
|
2095 |
msgstr "%s must be a number between 0 and 21."
|
2096 |
|
2097 |
-
#: src/Tribe/Validate.php:
|
2098 |
msgid "%s must be a number or percentage."
|
2099 |
msgstr "%s must be a number or percentage."
|
2100 |
|
2101 |
-
#: src/Tribe/Validate.php:
|
2102 |
msgid "%s cannot be a duplicate"
|
2103 |
msgstr "%s cannot be a duplicate"
|
2104 |
|
2105 |
-
#: src/Tribe/Validate.php:
|
2106 |
msgid "%s cannot be the same as %s."
|
2107 |
msgstr "%s cannot be the same as %s."
|
2108 |
|
2109 |
-
#: src/Tribe/Validate.php:
|
2110 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2111 |
msgstr "Comparison validation failed because no comparison value was provided, for field %s"
|
2112 |
|
2113 |
-
#: src/Tribe/Validate.php:
|
2114 |
-
#: src/Tribe/Validate.php:
|
2115 |
msgid "%s must have a value that's part of its options."
|
2116 |
msgstr "%s must have a value that's part of its options."
|
2117 |
|
2118 |
-
#: src/Tribe/Validate.php:
|
2119 |
msgid "%s must be a valid absolute URL."
|
2120 |
msgstr "%s must be a valid absolute URL."
|
2121 |
|
2122 |
-
#: src/Tribe/Validate.php:
|
2123 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2124 |
msgstr "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2125 |
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
+
#: src/Tribe/Ajax/Dropdown.php:243
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
+
#: src/Tribe/Ajax/Dropdown.php:193
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
+
#: src/Tribe/Ajax/Dropdown.php:180
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
2070 |
msgid "Select a Country:"
|
2071 |
msgstr "Select a Country:"
|
2072 |
|
2073 |
+
#: src/Tribe/Validate.php:503
|
2074 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2075 |
msgstr "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2076 |
|
2077 |
+
#: src/Tribe/Validate.php:487
|
2078 |
msgid "%s must be a phone number."
|
2079 |
msgstr "%s must be a phone number."
|
2080 |
|
2081 |
+
#: src/Tribe/Validate.php:473
|
2082 |
msgid "%s must consist of 5 numbers."
|
2083 |
msgstr "%s must consist of 5 numbers."
|
2084 |
|
2085 |
+
#: src/Tribe/Validate.php:459
|
2086 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2087 |
msgstr "%s must consist of letters, spaces, apostrophes, and dashes."
|
2088 |
|
2089 |
+
#: src/Tribe/Validate.php:443
|
2090 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2091 |
msgstr "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2092 |
|
2093 |
+
#: src/Tribe/Validate.php:427
|
2094 |
msgid "%s must be a number between 0 and 21."
|
2095 |
msgstr "%s must be a number between 0 and 21."
|
2096 |
|
2097 |
+
#: src/Tribe/Validate.php:373
|
2098 |
msgid "%s must be a number or percentage."
|
2099 |
msgstr "%s must be a number or percentage."
|
2100 |
|
2101 |
+
#: src/Tribe/Validate.php:357
|
2102 |
msgid "%s cannot be a duplicate"
|
2103 |
msgstr "%s cannot be a duplicate"
|
2104 |
|
2105 |
+
#: src/Tribe/Validate.php:355
|
2106 |
msgid "%s cannot be the same as %s."
|
2107 |
msgstr "%s cannot be the same as %s."
|
2108 |
|
2109 |
+
#: src/Tribe/Validate.php:348
|
2110 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2111 |
msgstr "Comparison validation failed because no comparison value was provided, for field %s"
|
2112 |
|
2113 |
+
#: src/Tribe/Validate.php:295 src/Tribe/Validate.php:312
|
2114 |
+
#: src/Tribe/Validate.php:334
|
2115 |
msgid "%s must have a value that's part of its options."
|
2116 |
msgstr "%s must have a value that's part of its options."
|
2117 |
|
2118 |
+
#: src/Tribe/Validate.php:279
|
2119 |
msgid "%s must be a valid absolute URL."
|
2120 |
msgstr "%s must be a valid absolute URL."
|
2121 |
|
2122 |
+
#: src/Tribe/Validate.php:264
|
2123 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2124 |
msgstr "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2125 |
|
common/lang/tribe-common-es_ES.po
CHANGED
@@ -75,15 +75,15 @@ msgstr ""
|
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
@@ -2070,56 +2070,56 @@ msgstr "Afganistán"
|
|
2070 |
msgid "Select a Country:"
|
2071 |
msgstr "Selecciona un país:"
|
2072 |
|
2073 |
-
#: src/Tribe/Validate.php:
|
2074 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2075 |
msgstr "La lista de países debe contener solo un país por línea de la siguiente forma: <br>US, Estados Unidos<br> UK, Reino Unido."
|
2076 |
|
2077 |
-
#: src/Tribe/Validate.php:
|
2078 |
msgid "%s must be a phone number."
|
2079 |
msgstr "%s debe ser un número de teléfono."
|
2080 |
|
2081 |
-
#: src/Tribe/Validate.php:
|
2082 |
msgid "%s must consist of 5 numbers."
|
2083 |
msgstr "%s debe solo contener 5 números."
|
2084 |
|
2085 |
-
#: src/Tribe/Validate.php:
|
2086 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2087 |
msgstr "%s debe consistir solo de letras, guiones, apostrofes y espacios."
|
2088 |
|
2089 |
-
#: src/Tribe/Validate.php:
|
2090 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2091 |
msgstr "%s debe consistir solo de letras, números, guiones, apostrofes y espacios."
|
2092 |
|
2093 |
-
#: src/Tribe/Validate.php:
|
2094 |
msgid "%s must be a number between 0 and 21."
|
2095 |
msgstr "%s debe ser un número entre 0 y 21."
|
2096 |
|
2097 |
-
#: src/Tribe/Validate.php:
|
2098 |
msgid "%s must be a number or percentage."
|
2099 |
msgstr "%s debe ser un número o un porcentaje."
|
2100 |
|
2101 |
-
#: src/Tribe/Validate.php:
|
2102 |
msgid "%s cannot be a duplicate"
|
2103 |
msgstr "%s no puede estar duplicada"
|
2104 |
|
2105 |
-
#: src/Tribe/Validate.php:
|
2106 |
msgid "%s cannot be the same as %s."
|
2107 |
msgstr "%s no puede ser igual a %s"
|
2108 |
|
2109 |
-
#: src/Tribe/Validate.php:
|
2110 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2111 |
msgstr "La validación por comparación falló debido a que no se indicó el valor a comparar para el campo %s"
|
2112 |
|
2113 |
-
#: src/Tribe/Validate.php:
|
2114 |
-
#: src/Tribe/Validate.php:
|
2115 |
msgid "%s must have a value that's part of its options."
|
2116 |
msgstr "%s debe contener una valor que sea parte de sus opciones disponibles."
|
2117 |
|
2118 |
-
#: src/Tribe/Validate.php:
|
2119 |
msgid "%s must be a valid absolute URL."
|
2120 |
msgstr "%s debe ser una URL absoluta válida"
|
2121 |
|
2122 |
-
#: src/Tribe/Validate.php:
|
2123 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2124 |
msgstr "%s debe ser un slug válido (números, letras, guiones y guiones bajos)."
|
2125 |
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
+
#: src/Tribe/Ajax/Dropdown.php:243
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
+
#: src/Tribe/Ajax/Dropdown.php:193
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
+
#: src/Tribe/Ajax/Dropdown.php:180
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
2070 |
msgid "Select a Country:"
|
2071 |
msgstr "Selecciona un país:"
|
2072 |
|
2073 |
+
#: src/Tribe/Validate.php:503
|
2074 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2075 |
msgstr "La lista de países debe contener solo un país por línea de la siguiente forma: <br>US, Estados Unidos<br> UK, Reino Unido."
|
2076 |
|
2077 |
+
#: src/Tribe/Validate.php:487
|
2078 |
msgid "%s must be a phone number."
|
2079 |
msgstr "%s debe ser un número de teléfono."
|
2080 |
|
2081 |
+
#: src/Tribe/Validate.php:473
|
2082 |
msgid "%s must consist of 5 numbers."
|
2083 |
msgstr "%s debe solo contener 5 números."
|
2084 |
|
2085 |
+
#: src/Tribe/Validate.php:459
|
2086 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2087 |
msgstr "%s debe consistir solo de letras, guiones, apostrofes y espacios."
|
2088 |
|
2089 |
+
#: src/Tribe/Validate.php:443
|
2090 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2091 |
msgstr "%s debe consistir solo de letras, números, guiones, apostrofes y espacios."
|
2092 |
|
2093 |
+
#: src/Tribe/Validate.php:427
|
2094 |
msgid "%s must be a number between 0 and 21."
|
2095 |
msgstr "%s debe ser un número entre 0 y 21."
|
2096 |
|
2097 |
+
#: src/Tribe/Validate.php:373
|
2098 |
msgid "%s must be a number or percentage."
|
2099 |
msgstr "%s debe ser un número o un porcentaje."
|
2100 |
|
2101 |
+
#: src/Tribe/Validate.php:357
|
2102 |
msgid "%s cannot be a duplicate"
|
2103 |
msgstr "%s no puede estar duplicada"
|
2104 |
|
2105 |
+
#: src/Tribe/Validate.php:355
|
2106 |
msgid "%s cannot be the same as %s."
|
2107 |
msgstr "%s no puede ser igual a %s"
|
2108 |
|
2109 |
+
#: src/Tribe/Validate.php:348
|
2110 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2111 |
msgstr "La validación por comparación falló debido a que no se indicó el valor a comparar para el campo %s"
|
2112 |
|
2113 |
+
#: src/Tribe/Validate.php:295 src/Tribe/Validate.php:312
|
2114 |
+
#: src/Tribe/Validate.php:334
|
2115 |
msgid "%s must have a value that's part of its options."
|
2116 |
msgstr "%s debe contener una valor que sea parte de sus opciones disponibles."
|
2117 |
|
2118 |
+
#: src/Tribe/Validate.php:279
|
2119 |
msgid "%s must be a valid absolute URL."
|
2120 |
msgstr "%s debe ser una URL absoluta válida"
|
2121 |
|
2122 |
+
#: src/Tribe/Validate.php:264
|
2123 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2124 |
msgstr "%s debe ser un slug válido (números, letras, guiones y guiones bajos)."
|
2125 |
|
common/lang/tribe-common-et.po
CHANGED
@@ -75,15 +75,15 @@ msgstr ""
|
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
@@ -2070,56 +2070,56 @@ msgstr "Afghanistan"
|
|
2070 |
msgid "Select a Country:"
|
2071 |
msgstr "Vali riik:"
|
2072 |
|
2073 |
-
#: src/Tribe/Validate.php:
|
2074 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2075 |
msgstr "Riikide list peab olema formaadis üks maa reas järgneva formaadi järgi: <br>US,Ameerika Ühendriigid <br> UK, United Kingdom."
|
2076 |
|
2077 |
-
#: src/Tribe/Validate.php:
|
2078 |
msgid "%s must be a phone number."
|
2079 |
msgstr "%s peab olema telefoninumber"
|
2080 |
|
2081 |
-
#: src/Tribe/Validate.php:
|
2082 |
msgid "%s must consist of 5 numbers."
|
2083 |
msgstr "%s peab sisaldama 5 numbrit"
|
2084 |
|
2085 |
-
#: src/Tribe/Validate.php:
|
2086 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2087 |
msgstr "%s võib sisaldada vaid tähti, tühikuid, ülakoma ja mõttekriipsu"
|
2088 |
|
2089 |
-
#: src/Tribe/Validate.php:
|
2090 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2091 |
msgstr "%s võib sisaldada vaid tähti, numbreid, ülakoma ja tühikuid"
|
2092 |
|
2093 |
-
#: src/Tribe/Validate.php:
|
2094 |
msgid "%s must be a number between 0 and 21."
|
2095 |
msgstr "%s peab olema number 0 ja 21 vahel"
|
2096 |
|
2097 |
-
#: src/Tribe/Validate.php:
|
2098 |
msgid "%s must be a number or percentage."
|
2099 |
msgstr "%s peab olema number protsentides"
|
2100 |
|
2101 |
-
#: src/Tribe/Validate.php:
|
2102 |
msgid "%s cannot be a duplicate"
|
2103 |
msgstr "%s ei saa olla dublikaat"
|
2104 |
|
2105 |
-
#: src/Tribe/Validate.php:
|
2106 |
msgid "%s cannot be the same as %s."
|
2107 |
msgstr "%s ei saa olla sama kui %s."
|
2108 |
|
2109 |
-
#: src/Tribe/Validate.php:
|
2110 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2111 |
msgstr "Võrdlus ebaõnnestus kuna väärtust ei edastatud väljale %s."
|
2112 |
|
2113 |
-
#: src/Tribe/Validate.php:
|
2114 |
-
#: src/Tribe/Validate.php:
|
2115 |
msgid "%s must have a value that's part of its options."
|
2116 |
msgstr "%s peab sisaldama väärtust sellest valikust"
|
2117 |
|
2118 |
-
#: src/Tribe/Validate.php:
|
2119 |
msgid "%s must be a valid absolute URL."
|
2120 |
msgstr "%s peab olema kehtiv absoluutne URL"
|
2121 |
|
2122 |
-
#: src/Tribe/Validate.php:
|
2123 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2124 |
msgstr "%s peab olema kehtiv slug (numbrid, tähed, alakriipsud)"
|
2125 |
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
+
#: src/Tribe/Ajax/Dropdown.php:243
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
+
#: src/Tribe/Ajax/Dropdown.php:193
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
+
#: src/Tribe/Ajax/Dropdown.php:180
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
2070 |
msgid "Select a Country:"
|
2071 |
msgstr "Vali riik:"
|
2072 |
|
2073 |
+
#: src/Tribe/Validate.php:503
|
2074 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2075 |
msgstr "Riikide list peab olema formaadis üks maa reas järgneva formaadi järgi: <br>US,Ameerika Ühendriigid <br> UK, United Kingdom."
|
2076 |
|
2077 |
+
#: src/Tribe/Validate.php:487
|
2078 |
msgid "%s must be a phone number."
|
2079 |
msgstr "%s peab olema telefoninumber"
|
2080 |
|
2081 |
+
#: src/Tribe/Validate.php:473
|
2082 |
msgid "%s must consist of 5 numbers."
|
2083 |
msgstr "%s peab sisaldama 5 numbrit"
|
2084 |
|
2085 |
+
#: src/Tribe/Validate.php:459
|
2086 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2087 |
msgstr "%s võib sisaldada vaid tähti, tühikuid, ülakoma ja mõttekriipsu"
|
2088 |
|
2089 |
+
#: src/Tribe/Validate.php:443
|
2090 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2091 |
msgstr "%s võib sisaldada vaid tähti, numbreid, ülakoma ja tühikuid"
|
2092 |
|
2093 |
+
#: src/Tribe/Validate.php:427
|
2094 |
msgid "%s must be a number between 0 and 21."
|
2095 |
msgstr "%s peab olema number 0 ja 21 vahel"
|
2096 |
|
2097 |
+
#: src/Tribe/Validate.php:373
|
2098 |
msgid "%s must be a number or percentage."
|
2099 |
msgstr "%s peab olema number protsentides"
|
2100 |
|
2101 |
+
#: src/Tribe/Validate.php:357
|
2102 |
msgid "%s cannot be a duplicate"
|
2103 |
msgstr "%s ei saa olla dublikaat"
|
2104 |
|
2105 |
+
#: src/Tribe/Validate.php:355
|
2106 |
msgid "%s cannot be the same as %s."
|
2107 |
msgstr "%s ei saa olla sama kui %s."
|
2108 |
|
2109 |
+
#: src/Tribe/Validate.php:348
|
2110 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2111 |
msgstr "Võrdlus ebaõnnestus kuna väärtust ei edastatud väljale %s."
|
2112 |
|
2113 |
+
#: src/Tribe/Validate.php:295 src/Tribe/Validate.php:312
|
2114 |
+
#: src/Tribe/Validate.php:334
|
2115 |
msgid "%s must have a value that's part of its options."
|
2116 |
msgstr "%s peab sisaldama väärtust sellest valikust"
|
2117 |
|
2118 |
+
#: src/Tribe/Validate.php:279
|
2119 |
msgid "%s must be a valid absolute URL."
|
2120 |
msgstr "%s peab olema kehtiv absoluutne URL"
|
2121 |
|
2122 |
+
#: src/Tribe/Validate.php:264
|
2123 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2124 |
msgstr "%s peab olema kehtiv slug (numbrid, tähed, alakriipsud)"
|
2125 |
|
common/lang/tribe-common-fi.po
CHANGED
@@ -75,15 +75,15 @@ msgstr ""
|
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
@@ -2070,56 +2070,56 @@ msgstr "Afganistan"
|
|
2070 |
msgid "Select a Country:"
|
2071 |
msgstr "Valitse maa:"
|
2072 |
|
2073 |
-
#: src/Tribe/Validate.php:
|
2074 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2075 |
msgstr "Maaluettelossa tulee olla yksi maa per rivi seuraavassa muodossa: <br>US, Yhdysvallat <br> UK, Iso-Britannia."
|
2076 |
|
2077 |
-
#: src/Tribe/Validate.php:
|
2078 |
msgid "%s must be a phone number."
|
2079 |
msgstr "%s on oltava puhelinnumero."
|
2080 |
|
2081 |
-
#: src/Tribe/Validate.php:
|
2082 |
msgid "%s must consist of 5 numbers."
|
2083 |
msgstr "%s täytyy sisältää 5 numeroa."
|
2084 |
|
2085 |
-
#: src/Tribe/Validate.php:
|
2086 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2087 |
msgstr "%s saa olla vain kirjaimia, välilyöntejä, heittomerkkejä ja viivoja."
|
2088 |
|
2089 |
-
#: src/Tribe/Validate.php:
|
2090 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2091 |
msgstr "%s saa sisältää vain kirjaimia, numeroita, väliviivoja, heittomerkkejä ja välilyöntejä."
|
2092 |
|
2093 |
-
#: src/Tribe/Validate.php:
|
2094 |
msgid "%s must be a number between 0 and 21."
|
2095 |
msgstr "%s täytyy olla numero väliltä 0 ja 21."
|
2096 |
|
2097 |
-
#: src/Tribe/Validate.php:
|
2098 |
msgid "%s must be a number or percentage."
|
2099 |
msgstr "%s täytyy olla numero tai prosenttiluku."
|
2100 |
|
2101 |
-
#: src/Tribe/Validate.php:
|
2102 |
msgid "%s cannot be a duplicate"
|
2103 |
msgstr "%s ei voi olla kaksoiskappale"
|
2104 |
|
2105 |
-
#: src/Tribe/Validate.php:
|
2106 |
msgid "%s cannot be the same as %s."
|
2107 |
msgstr "%s ei voi olla sama kuin %s ."
|
2108 |
|
2109 |
-
#: src/Tribe/Validate.php:
|
2110 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2111 |
msgstr "Kentän %s validointi epäonnistui, koska vertailuarvoa ei annettu"
|
2112 |
|
2113 |
-
#: src/Tribe/Validate.php:
|
2114 |
-
#: src/Tribe/Validate.php:
|
2115 |
msgid "%s must have a value that's part of its options."
|
2116 |
msgstr "%s on oltava arvo, joka on sen asetuksissa."
|
2117 |
|
2118 |
-
#: src/Tribe/Validate.php:
|
2119 |
msgid "%s must be a valid absolute URL."
|
2120 |
msgstr "%s on oltava kelvollinen URL."
|
2121 |
|
2122 |
-
#: src/Tribe/Validate.php:
|
2123 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2124 |
msgstr "%s on oltava osoite-muotoa (numeroita, kirjaimia, väliviivoja ja alaviivoja)."
|
2125 |
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
+
#: src/Tribe/Ajax/Dropdown.php:243
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
+
#: src/Tribe/Ajax/Dropdown.php:193
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
+
#: src/Tribe/Ajax/Dropdown.php:180
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
2070 |
msgid "Select a Country:"
|
2071 |
msgstr "Valitse maa:"
|
2072 |
|
2073 |
+
#: src/Tribe/Validate.php:503
|
2074 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2075 |
msgstr "Maaluettelossa tulee olla yksi maa per rivi seuraavassa muodossa: <br>US, Yhdysvallat <br> UK, Iso-Britannia."
|
2076 |
|
2077 |
+
#: src/Tribe/Validate.php:487
|
2078 |
msgid "%s must be a phone number."
|
2079 |
msgstr "%s on oltava puhelinnumero."
|
2080 |
|
2081 |
+
#: src/Tribe/Validate.php:473
|
2082 |
msgid "%s must consist of 5 numbers."
|
2083 |
msgstr "%s täytyy sisältää 5 numeroa."
|
2084 |
|
2085 |
+
#: src/Tribe/Validate.php:459
|
2086 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2087 |
msgstr "%s saa olla vain kirjaimia, välilyöntejä, heittomerkkejä ja viivoja."
|
2088 |
|
2089 |
+
#: src/Tribe/Validate.php:443
|
2090 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2091 |
msgstr "%s saa sisältää vain kirjaimia, numeroita, väliviivoja, heittomerkkejä ja välilyöntejä."
|
2092 |
|
2093 |
+
#: src/Tribe/Validate.php:427
|
2094 |
msgid "%s must be a number between 0 and 21."
|
2095 |
msgstr "%s täytyy olla numero väliltä 0 ja 21."
|
2096 |
|
2097 |
+
#: src/Tribe/Validate.php:373
|
2098 |
msgid "%s must be a number or percentage."
|
2099 |
msgstr "%s täytyy olla numero tai prosenttiluku."
|
2100 |
|
2101 |
+
#: src/Tribe/Validate.php:357
|
2102 |
msgid "%s cannot be a duplicate"
|
2103 |
msgstr "%s ei voi olla kaksoiskappale"
|
2104 |
|
2105 |
+
#: src/Tribe/Validate.php:355
|
2106 |
msgid "%s cannot be the same as %s."
|
2107 |
msgstr "%s ei voi olla sama kuin %s ."
|
2108 |
|
2109 |
+
#: src/Tribe/Validate.php:348
|
2110 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2111 |
msgstr "Kentän %s validointi epäonnistui, koska vertailuarvoa ei annettu"
|
2112 |
|
2113 |
+
#: src/Tribe/Validate.php:295 src/Tribe/Validate.php:312
|
2114 |
+
#: src/Tribe/Validate.php:334
|
2115 |
msgid "%s must have a value that's part of its options."
|
2116 |
msgstr "%s on oltava arvo, joka on sen asetuksissa."
|
2117 |
|
2118 |
+
#: src/Tribe/Validate.php:279
|
2119 |
msgid "%s must be a valid absolute URL."
|
2120 |
msgstr "%s on oltava kelvollinen URL."
|
2121 |
|
2122 |
+
#: src/Tribe/Validate.php:264
|
2123 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2124 |
msgstr "%s on oltava osoite-muotoa (numeroita, kirjaimia, väliviivoja ja alaviivoja)."
|
2125 |
|
common/lang/tribe-common-fr_CA.po
CHANGED
@@ -75,15 +75,15 @@ msgstr ""
|
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
@@ -2070,56 +2070,56 @@ msgstr "Afghanistan"
|
|
2070 |
msgid "Select a Country:"
|
2071 |
msgstr "Choisissez un pays :"
|
2072 |
|
2073 |
-
#: src/Tribe/Validate.php:
|
2074 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2075 |
msgstr "Liste des pays doit être formatée comme un pays par ligne dans le format suivant :<br>EUA, États-Unis d'Amérique<br>RU, Royaume-Uni."
|
2076 |
|
2077 |
-
#: src/Tribe/Validate.php:
|
2078 |
msgid "%s must be a phone number."
|
2079 |
msgstr "%s doit être un numéro de téléphone."
|
2080 |
|
2081 |
-
#: src/Tribe/Validate.php:
|
2082 |
msgid "%s must consist of 5 numbers."
|
2083 |
msgstr "%s doit contenir 5 chiffres."
|
2084 |
|
2085 |
-
#: src/Tribe/Validate.php:
|
2086 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2087 |
msgstr "%s doit contenir uniquement des lettres, tirets, apostrophes et espaces."
|
2088 |
|
2089 |
-
#: src/Tribe/Validate.php:
|
2090 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2091 |
msgstr "%s doit contenir uniquement des lettres, chiffres, tirets, apostrophes et espaces."
|
2092 |
|
2093 |
-
#: src/Tribe/Validate.php:
|
2094 |
msgid "%s must be a number between 0 and 21."
|
2095 |
msgstr "%s doit être un chiffre entre 0 et 21."
|
2096 |
|
2097 |
-
#: src/Tribe/Validate.php:
|
2098 |
msgid "%s must be a number or percentage."
|
2099 |
msgstr "%s doit être un chiffre ou en pourcentage."
|
2100 |
|
2101 |
-
#: src/Tribe/Validate.php:
|
2102 |
msgid "%s cannot be a duplicate"
|
2103 |
msgstr "%s ne peut être dupliqué"
|
2104 |
|
2105 |
-
#: src/Tribe/Validate.php:
|
2106 |
msgid "%s cannot be the same as %s."
|
2107 |
msgstr "%s ne peut-être pareil à %s."
|
2108 |
|
2109 |
-
#: src/Tribe/Validate.php:
|
2110 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2111 |
msgstr "Validation de comparaison échoué parce qu’il n’y a pas de valeur de comparaison fourni pour le champ %s"
|
2112 |
|
2113 |
-
#: src/Tribe/Validate.php:
|
2114 |
-
#: src/Tribe/Validate.php:
|
2115 |
msgid "%s must have a value that's part of its options."
|
2116 |
msgstr "%s doit contenir une valeur qui font partie de l'une de ses options."
|
2117 |
|
2118 |
-
#: src/Tribe/Validate.php:
|
2119 |
msgid "%s must be a valid absolute URL."
|
2120 |
msgstr "%s doit être un lien URL valide et absolu."
|
2121 |
|
2122 |
-
#: src/Tribe/Validate.php:
|
2123 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2124 |
msgstr "%s doit être une entré valide (nombres, lettres, tirets, et traits de soulignement)."
|
2125 |
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
+
#: src/Tribe/Ajax/Dropdown.php:243
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
+
#: src/Tribe/Ajax/Dropdown.php:193
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
+
#: src/Tribe/Ajax/Dropdown.php:180
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
2070 |
msgid "Select a Country:"
|
2071 |
msgstr "Choisissez un pays :"
|
2072 |
|
2073 |
+
#: src/Tribe/Validate.php:503
|
2074 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2075 |
msgstr "Liste des pays doit être formatée comme un pays par ligne dans le format suivant :<br>EUA, États-Unis d'Amérique<br>RU, Royaume-Uni."
|
2076 |
|
2077 |
+
#: src/Tribe/Validate.php:487
|
2078 |
msgid "%s must be a phone number."
|
2079 |
msgstr "%s doit être un numéro de téléphone."
|
2080 |
|
2081 |
+
#: src/Tribe/Validate.php:473
|
2082 |
msgid "%s must consist of 5 numbers."
|
2083 |
msgstr "%s doit contenir 5 chiffres."
|
2084 |
|
2085 |
+
#: src/Tribe/Validate.php:459
|
2086 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2087 |
msgstr "%s doit contenir uniquement des lettres, tirets, apostrophes et espaces."
|
2088 |
|
2089 |
+
#: src/Tribe/Validate.php:443
|
2090 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2091 |
msgstr "%s doit contenir uniquement des lettres, chiffres, tirets, apostrophes et espaces."
|
2092 |
|
2093 |
+
#: src/Tribe/Validate.php:427
|
2094 |
msgid "%s must be a number between 0 and 21."
|
2095 |
msgstr "%s doit être un chiffre entre 0 et 21."
|
2096 |
|
2097 |
+
#: src/Tribe/Validate.php:373
|
2098 |
msgid "%s must be a number or percentage."
|
2099 |
msgstr "%s doit être un chiffre ou en pourcentage."
|
2100 |
|
2101 |
+
#: src/Tribe/Validate.php:357
|
2102 |
msgid "%s cannot be a duplicate"
|
2103 |
msgstr "%s ne peut être dupliqué"
|
2104 |
|
2105 |
+
#: src/Tribe/Validate.php:355
|
2106 |
msgid "%s cannot be the same as %s."
|
2107 |
msgstr "%s ne peut-être pareil à %s."
|
2108 |
|
2109 |
+
#: src/Tribe/Validate.php:348
|
2110 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2111 |
msgstr "Validation de comparaison échoué parce qu’il n’y a pas de valeur de comparaison fourni pour le champ %s"
|
2112 |
|
2113 |
+
#: src/Tribe/Validate.php:295 src/Tribe/Validate.php:312
|
2114 |
+
#: src/Tribe/Validate.php:334
|
2115 |
msgid "%s must have a value that's part of its options."
|
2116 |
msgstr "%s doit contenir une valeur qui font partie de l'une de ses options."
|
2117 |
|
2118 |
+
#: src/Tribe/Validate.php:279
|
2119 |
msgid "%s must be a valid absolute URL."
|
2120 |
msgstr "%s doit être un lien URL valide et absolu."
|
2121 |
|
2122 |
+
#: src/Tribe/Validate.php:264
|
2123 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2124 |
msgstr "%s doit être une entré valide (nombres, lettres, tirets, et traits de soulignement)."
|
2125 |
|
common/lang/tribe-common-fr_FR.po
CHANGED
@@ -75,15 +75,15 @@ msgstr ""
|
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
@@ -2070,56 +2070,56 @@ msgstr "Afghanistan"
|
|
2070 |
msgid "Select a Country:"
|
2071 |
msgstr "Choisissez un pays :"
|
2072 |
|
2073 |
-
#: src/Tribe/Validate.php:
|
2074 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2075 |
msgstr "La liste de pays doit être formatée avec un pays par ligne et avec le format suivant: <br>FR, France <br> UK, United Kingdom."
|
2076 |
|
2077 |
-
#: src/Tribe/Validate.php:
|
2078 |
msgid "%s must be a phone number."
|
2079 |
msgstr "%s doit être un numéro de téléphone."
|
2080 |
|
2081 |
-
#: src/Tribe/Validate.php:
|
2082 |
msgid "%s must consist of 5 numbers."
|
2083 |
msgstr "%s doit comprendre au moins 5 chiffres."
|
2084 |
|
2085 |
-
#: src/Tribe/Validate.php:
|
2086 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2087 |
msgstr "%s doit comporter des lettres, espaces, apostrophes et tirets."
|
2088 |
|
2089 |
-
#: src/Tribe/Validate.php:
|
2090 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2091 |
msgstr "%s doit contenir seulement des lettres, nombres, tirets, apostrophes et espaces."
|
2092 |
|
2093 |
-
#: src/Tribe/Validate.php:
|
2094 |
msgid "%s must be a number between 0 and 21."
|
2095 |
msgstr "%s doit être un nombre entre 0 et 21."
|
2096 |
|
2097 |
-
#: src/Tribe/Validate.php:
|
2098 |
msgid "%s must be a number or percentage."
|
2099 |
msgstr "%s doit être un nombre ou un pourcentage."
|
2100 |
|
2101 |
-
#: src/Tribe/Validate.php:
|
2102 |
msgid "%s cannot be a duplicate"
|
2103 |
msgstr "%s ne doit pas être en double"
|
2104 |
|
2105 |
-
#: src/Tribe/Validate.php:
|
2106 |
msgid "%s cannot be the same as %s."
|
2107 |
msgstr "%s ne peut être identique à %s."
|
2108 |
|
2109 |
-
#: src/Tribe/Validate.php:
|
2110 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2111 |
msgstr "Échec de validation de la comparaison : aucune valeur de comparaison fournie pour le champ %s"
|
2112 |
|
2113 |
-
#: src/Tribe/Validate.php:
|
2114 |
-
#: src/Tribe/Validate.php:
|
2115 |
msgid "%s must have a value that's part of its options."
|
2116 |
msgstr "%s doit être une valeur qui fait parti de ses options."
|
2117 |
|
2118 |
-
#: src/Tribe/Validate.php:
|
2119 |
msgid "%s must be a valid absolute URL."
|
2120 |
msgstr "%s doit être une URL absolue valide."
|
2121 |
|
2122 |
-
#: src/Tribe/Validate.php:
|
2123 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2124 |
msgstr "%s doit être un permalien valide (nombre, lettres, tirets et tirets de soulignement)."
|
2125 |
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
+
#: src/Tribe/Ajax/Dropdown.php:243
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
+
#: src/Tribe/Ajax/Dropdown.php:193
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
+
#: src/Tribe/Ajax/Dropdown.php:180
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
2070 |
msgid "Select a Country:"
|
2071 |
msgstr "Choisissez un pays :"
|
2072 |
|
2073 |
+
#: src/Tribe/Validate.php:503
|
2074 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2075 |
msgstr "La liste de pays doit être formatée avec un pays par ligne et avec le format suivant: <br>FR, France <br> UK, United Kingdom."
|
2076 |
|
2077 |
+
#: src/Tribe/Validate.php:487
|
2078 |
msgid "%s must be a phone number."
|
2079 |
msgstr "%s doit être un numéro de téléphone."
|
2080 |
|
2081 |
+
#: src/Tribe/Validate.php:473
|
2082 |
msgid "%s must consist of 5 numbers."
|
2083 |
msgstr "%s doit comprendre au moins 5 chiffres."
|
2084 |
|
2085 |
+
#: src/Tribe/Validate.php:459
|
2086 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2087 |
msgstr "%s doit comporter des lettres, espaces, apostrophes et tirets."
|
2088 |
|
2089 |
+
#: src/Tribe/Validate.php:443
|
2090 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2091 |
msgstr "%s doit contenir seulement des lettres, nombres, tirets, apostrophes et espaces."
|
2092 |
|
2093 |
+
#: src/Tribe/Validate.php:427
|
2094 |
msgid "%s must be a number between 0 and 21."
|
2095 |
msgstr "%s doit être un nombre entre 0 et 21."
|
2096 |
|
2097 |
+
#: src/Tribe/Validate.php:373
|
2098 |
msgid "%s must be a number or percentage."
|
2099 |
msgstr "%s doit être un nombre ou un pourcentage."
|
2100 |
|
2101 |
+
#: src/Tribe/Validate.php:357
|
2102 |
msgid "%s cannot be a duplicate"
|
2103 |
msgstr "%s ne doit pas être en double"
|
2104 |
|
2105 |
+
#: src/Tribe/Validate.php:355
|
2106 |
msgid "%s cannot be the same as %s."
|
2107 |
msgstr "%s ne peut être identique à %s."
|
2108 |
|
2109 |
+
#: src/Tribe/Validate.php:348
|
2110 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2111 |
msgstr "Échec de validation de la comparaison : aucune valeur de comparaison fournie pour le champ %s"
|
2112 |
|
2113 |
+
#: src/Tribe/Validate.php:295 src/Tribe/Validate.php:312
|
2114 |
+
#: src/Tribe/Validate.php:334
|
2115 |
msgid "%s must have a value that's part of its options."
|
2116 |
msgstr "%s doit être une valeur qui fait parti de ses options."
|
2117 |
|
2118 |
+
#: src/Tribe/Validate.php:279
|
2119 |
msgid "%s must be a valid absolute URL."
|
2120 |
msgstr "%s doit être une URL absolue valide."
|
2121 |
|
2122 |
+
#: src/Tribe/Validate.php:264
|
2123 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2124 |
msgstr "%s doit être un permalien valide (nombre, lettres, tirets et tirets de soulignement)."
|
2125 |
|
common/lang/tribe-common-hu_HU.po
CHANGED
@@ -75,15 +75,15 @@ msgstr ""
|
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
@@ -2070,56 +2070,56 @@ msgstr "Afganisztán"
|
|
2070 |
msgid "Select a Country:"
|
2071 |
msgstr "Válassz országot:"
|
2072 |
|
2073 |
-
#: src/Tribe/Validate.php:
|
2074 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2075 |
msgstr "Egy ország soronként a következő formában: <br> US, Egyesült Államok <br> UK, Egyesült Királyság."
|
2076 |
|
2077 |
-
#: src/Tribe/Validate.php:
|
2078 |
msgid "%s must be a phone number."
|
2079 |
msgstr "%s csak telefonszám lehet."
|
2080 |
|
2081 |
-
#: src/Tribe/Validate.php:
|
2082 |
msgid "%s must consist of 5 numbers."
|
2083 |
msgstr "%s 5 számot kell, hogy tartalmazzon."
|
2084 |
|
2085 |
-
#: src/Tribe/Validate.php:
|
2086 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2087 |
msgstr "%s csak betűket, szóközöket, aposztrofokat és kötőjeleket tartalmazhat."
|
2088 |
|
2089 |
-
#: src/Tribe/Validate.php:
|
2090 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2091 |
msgstr "%s csak betűket, számokat, kötőjeleket, aposztrofokat és szóközöket tartalmazhat."
|
2092 |
|
2093 |
-
#: src/Tribe/Validate.php:
|
2094 |
msgid "%s must be a number between 0 and 21."
|
2095 |
msgstr "%s értéke csak 0 és 21 közötti szám lehet."
|
2096 |
|
2097 |
-
#: src/Tribe/Validate.php:
|
2098 |
msgid "%s must be a number or percentage."
|
2099 |
msgstr "%s csak szám vagy százalék lehet."
|
2100 |
|
2101 |
-
#: src/Tribe/Validate.php:
|
2102 |
msgid "%s cannot be a duplicate"
|
2103 |
msgstr "%s nem lehet duplikált"
|
2104 |
|
2105 |
-
#: src/Tribe/Validate.php:
|
2106 |
msgid "%s cannot be the same as %s."
|
2107 |
msgstr "%s nem lehet ugyan az, mint %s"
|
2108 |
|
2109 |
-
#: src/Tribe/Validate.php:
|
2110 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2111 |
msgstr "Az összehasonlítás érvényesítése sikertelen volt, mert nem lett megadva összehasonlítási érték erre a mezőre: %s"
|
2112 |
|
2113 |
-
#: src/Tribe/Validate.php:
|
2114 |
-
#: src/Tribe/Validate.php:
|
2115 |
msgid "%s must have a value that's part of its options."
|
2116 |
msgstr "%s csak olyan értéket vehet fel, amit a lehetőségei tartamaznak."
|
2117 |
|
2118 |
-
#: src/Tribe/Validate.php:
|
2119 |
msgid "%s must be a valid absolute URL."
|
2120 |
msgstr "%s csak érvényes URL lehet."
|
2121 |
|
2122 |
-
#: src/Tribe/Validate.php:
|
2123 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2124 |
msgstr "%s csak érvényes előtag lehet: szám, betű, kötőjel, alávonás."
|
2125 |
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
+
#: src/Tribe/Ajax/Dropdown.php:243
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
+
#: src/Tribe/Ajax/Dropdown.php:193
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
+
#: src/Tribe/Ajax/Dropdown.php:180
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
2070 |
msgid "Select a Country:"
|
2071 |
msgstr "Válassz országot:"
|
2072 |
|
2073 |
+
#: src/Tribe/Validate.php:503
|
2074 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2075 |
msgstr "Egy ország soronként a következő formában: <br> US, Egyesült Államok <br> UK, Egyesült Királyság."
|
2076 |
|
2077 |
+
#: src/Tribe/Validate.php:487
|
2078 |
msgid "%s must be a phone number."
|
2079 |
msgstr "%s csak telefonszám lehet."
|
2080 |
|
2081 |
+
#: src/Tribe/Validate.php:473
|
2082 |
msgid "%s must consist of 5 numbers."
|
2083 |
msgstr "%s 5 számot kell, hogy tartalmazzon."
|
2084 |
|
2085 |
+
#: src/Tribe/Validate.php:459
|
2086 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2087 |
msgstr "%s csak betűket, szóközöket, aposztrofokat és kötőjeleket tartalmazhat."
|
2088 |
|
2089 |
+
#: src/Tribe/Validate.php:443
|
2090 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2091 |
msgstr "%s csak betűket, számokat, kötőjeleket, aposztrofokat és szóközöket tartalmazhat."
|
2092 |
|
2093 |
+
#: src/Tribe/Validate.php:427
|
2094 |
msgid "%s must be a number between 0 and 21."
|
2095 |
msgstr "%s értéke csak 0 és 21 közötti szám lehet."
|
2096 |
|
2097 |
+
#: src/Tribe/Validate.php:373
|
2098 |
msgid "%s must be a number or percentage."
|
2099 |
msgstr "%s csak szám vagy százalék lehet."
|
2100 |
|
2101 |
+
#: src/Tribe/Validate.php:357
|
2102 |
msgid "%s cannot be a duplicate"
|
2103 |
msgstr "%s nem lehet duplikált"
|
2104 |
|
2105 |
+
#: src/Tribe/Validate.php:355
|
2106 |
msgid "%s cannot be the same as %s."
|
2107 |
msgstr "%s nem lehet ugyan az, mint %s"
|
2108 |
|
2109 |
+
#: src/Tribe/Validate.php:348
|
2110 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2111 |
msgstr "Az összehasonlítás érvényesítése sikertelen volt, mert nem lett megadva összehasonlítási érték erre a mezőre: %s"
|
2112 |
|
2113 |
+
#: src/Tribe/Validate.php:295 src/Tribe/Validate.php:312
|
2114 |
+
#: src/Tribe/Validate.php:334
|
2115 |
msgid "%s must have a value that's part of its options."
|
2116 |
msgstr "%s csak olyan értéket vehet fel, amit a lehetőségei tartamaznak."
|
2117 |
|
2118 |
+
#: src/Tribe/Validate.php:279
|
2119 |
msgid "%s must be a valid absolute URL."
|
2120 |
msgstr "%s csak érvényes URL lehet."
|
2121 |
|
2122 |
+
#: src/Tribe/Validate.php:264
|
2123 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2124 |
msgstr "%s csak érvényes előtag lehet: szám, betű, kötőjel, alávonás."
|
2125 |
|
common/lang/tribe-common-id_ID.po
CHANGED
@@ -75,15 +75,15 @@ msgstr ""
|
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
@@ -2070,56 +2070,56 @@ msgstr "Afganistan"
|
|
2070 |
msgid "Select a Country:"
|
2071 |
msgstr "Pilih Negara:"
|
2072 |
|
2073 |
-
#: src/Tribe/Validate.php:
|
2074 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2075 |
msgstr "Daftar Negara harus diformat sebagai salah satu negara per baris dalam format berikut: <br> AS, Amerika Serikat <br> UK, United Kingdom."
|
2076 |
|
2077 |
-
#: src/Tribe/Validate.php:
|
2078 |
msgid "%s must be a phone number."
|
2079 |
msgstr "%s harus berupa nomor telepon."
|
2080 |
|
2081 |
-
#: src/Tribe/Validate.php:
|
2082 |
msgid "%s must consist of 5 numbers."
|
2083 |
msgstr "%s harus terdiri dari 5 angka."
|
2084 |
|
2085 |
-
#: src/Tribe/Validate.php:
|
2086 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2087 |
msgstr "%s harus terdiri dari huruf, spasi, apostrof, dan tanda hubung."
|
2088 |
|
2089 |
-
#: src/Tribe/Validate.php:
|
2090 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2091 |
msgstr "%s harus terdiri dari huruf, angka, tanda hubung, apostrof, dan spasi saja."
|
2092 |
|
2093 |
-
#: src/Tribe/Validate.php:
|
2094 |
msgid "%s must be a number between 0 and 21."
|
2095 |
msgstr "%s harus berupa angka antara 0 dan 21."
|
2096 |
|
2097 |
-
#: src/Tribe/Validate.php:
|
2098 |
msgid "%s must be a number or percentage."
|
2099 |
msgstr "%s harus berupa angka atau persentase."
|
2100 |
|
2101 |
-
#: src/Tribe/Validate.php:
|
2102 |
msgid "%s cannot be a duplicate"
|
2103 |
msgstr "%s tidak dapat duplikat"
|
2104 |
|
2105 |
-
#: src/Tribe/Validate.php:
|
2106 |
msgid "%s cannot be the same as %s."
|
2107 |
msgstr "%s tidak bisa sama dengan %s ."
|
2108 |
|
2109 |
-
#: src/Tribe/Validate.php:
|
2110 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2111 |
msgstr "Validasi perbandingan gagal karena tidak ada nilai perbandingan diberikan, untuk field %s"
|
2112 |
|
2113 |
-
#: src/Tribe/Validate.php:
|
2114 |
-
#: src/Tribe/Validate.php:
|
2115 |
msgid "%s must have a value that's part of its options."
|
2116 |
msgstr "%s harus memiliki nilai yang merupakan bagian dari pilihan."
|
2117 |
|
2118 |
-
#: src/Tribe/Validate.php:
|
2119 |
msgid "%s must be a valid absolute URL."
|
2120 |
msgstr "%s harus mutlak URL yang valid."
|
2121 |
|
2122 |
-
#: src/Tribe/Validate.php:
|
2123 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2124 |
msgstr "%s harus slug valid (angka, huruf, tanda hubung, dan garis bawah)."
|
2125 |
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
+
#: src/Tribe/Ajax/Dropdown.php:243
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
+
#: src/Tribe/Ajax/Dropdown.php:193
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
+
#: src/Tribe/Ajax/Dropdown.php:180
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
2070 |
msgid "Select a Country:"
|
2071 |
msgstr "Pilih Negara:"
|
2072 |
|
2073 |
+
#: src/Tribe/Validate.php:503
|
2074 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2075 |
msgstr "Daftar Negara harus diformat sebagai salah satu negara per baris dalam format berikut: <br> AS, Amerika Serikat <br> UK, United Kingdom."
|
2076 |
|
2077 |
+
#: src/Tribe/Validate.php:487
|
2078 |
msgid "%s must be a phone number."
|
2079 |
msgstr "%s harus berupa nomor telepon."
|
2080 |
|
2081 |
+
#: src/Tribe/Validate.php:473
|
2082 |
msgid "%s must consist of 5 numbers."
|
2083 |
msgstr "%s harus terdiri dari 5 angka."
|
2084 |
|
2085 |
+
#: src/Tribe/Validate.php:459
|
2086 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2087 |
msgstr "%s harus terdiri dari huruf, spasi, apostrof, dan tanda hubung."
|
2088 |
|
2089 |
+
#: src/Tribe/Validate.php:443
|
2090 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2091 |
msgstr "%s harus terdiri dari huruf, angka, tanda hubung, apostrof, dan spasi saja."
|
2092 |
|
2093 |
+
#: src/Tribe/Validate.php:427
|
2094 |
msgid "%s must be a number between 0 and 21."
|
2095 |
msgstr "%s harus berupa angka antara 0 dan 21."
|
2096 |
|
2097 |
+
#: src/Tribe/Validate.php:373
|
2098 |
msgid "%s must be a number or percentage."
|
2099 |
msgstr "%s harus berupa angka atau persentase."
|
2100 |
|
2101 |
+
#: src/Tribe/Validate.php:357
|
2102 |
msgid "%s cannot be a duplicate"
|
2103 |
msgstr "%s tidak dapat duplikat"
|
2104 |
|
2105 |
+
#: src/Tribe/Validate.php:355
|
2106 |
msgid "%s cannot be the same as %s."
|
2107 |
msgstr "%s tidak bisa sama dengan %s ."
|
2108 |
|
2109 |
+
#: src/Tribe/Validate.php:348
|
2110 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2111 |
msgstr "Validasi perbandingan gagal karena tidak ada nilai perbandingan diberikan, untuk field %s"
|
2112 |
|
2113 |
+
#: src/Tribe/Validate.php:295 src/Tribe/Validate.php:312
|
2114 |
+
#: src/Tribe/Validate.php:334
|
2115 |
msgid "%s must have a value that's part of its options."
|
2116 |
msgstr "%s harus memiliki nilai yang merupakan bagian dari pilihan."
|
2117 |
|
2118 |
+
#: src/Tribe/Validate.php:279
|
2119 |
msgid "%s must be a valid absolute URL."
|
2120 |
msgstr "%s harus mutlak URL yang valid."
|
2121 |
|
2122 |
+
#: src/Tribe/Validate.php:264
|
2123 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2124 |
msgstr "%s harus slug valid (angka, huruf, tanda hubung, dan garis bawah)."
|
2125 |
|
common/lang/tribe-common-is_IS.po
CHANGED
@@ -75,15 +75,15 @@ msgstr ""
|
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
@@ -2070,56 +2070,56 @@ msgstr "Afghanistan"
|
|
2070 |
msgid "Select a Country:"
|
2071 |
msgstr "Veldu land:"
|
2072 |
|
2073 |
-
#: src/Tribe/Validate.php:
|
2074 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2075 |
msgstr "Landslisti verður að vera með aðeins eitt land í línu og líta svona út: <br>US, United States <br> UK, United Kingdom."
|
2076 |
|
2077 |
-
#: src/Tribe/Validate.php:
|
2078 |
msgid "%s must be a phone number."
|
2079 |
msgstr "%s verður að vera símanúmer."
|
2080 |
|
2081 |
-
#: src/Tribe/Validate.php:
|
2082 |
msgid "%s must consist of 5 numbers."
|
2083 |
msgstr "%s verður að innihalda 5 tölustafi."
|
2084 |
|
2085 |
-
#: src/Tribe/Validate.php:
|
2086 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2087 |
msgstr "%s verður að vera bókstafir, bil, úrfellingarmerki og bandstrik."
|
2088 |
|
2089 |
-
#: src/Tribe/Validate.php:
|
2090 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2091 |
msgstr "%s verður að innihalda bókstafi, tölur, bandstrik, úrfellingarmerki og bil."
|
2092 |
|
2093 |
-
#: src/Tribe/Validate.php:
|
2094 |
msgid "%s must be a number between 0 and 21."
|
2095 |
msgstr "%s verður að vera tala á milli 0 og 21."
|
2096 |
|
2097 |
-
#: src/Tribe/Validate.php:
|
2098 |
msgid "%s must be a number or percentage."
|
2099 |
msgstr "%s verður að vera tala eða prósenta."
|
2100 |
|
2101 |
-
#: src/Tribe/Validate.php:
|
2102 |
msgid "%s cannot be a duplicate"
|
2103 |
msgstr "%s má ekki vera afrit"
|
2104 |
|
2105 |
-
#: src/Tribe/Validate.php:
|
2106 |
msgid "%s cannot be the same as %s."
|
2107 |
msgstr "%s má ekki vera sama og %s."
|
2108 |
|
2109 |
-
#: src/Tribe/Validate.php:
|
2110 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2111 |
msgstr "Samanburðar skráning tókst ekki þar sem engin samanburðar gildi voru tilgreind fyrir svæði %s"
|
2112 |
|
2113 |
-
#: src/Tribe/Validate.php:
|
2114 |
-
#: src/Tribe/Validate.php:
|
2115 |
msgid "%s must have a value that's part of its options."
|
2116 |
msgstr "%s verður að vera gildi sem er hluti af valkosti."
|
2117 |
|
2118 |
-
#: src/Tribe/Validate.php:
|
2119 |
msgid "%s must be a valid absolute URL."
|
2120 |
msgstr "%s verður að vera gilt endanlegt URL."
|
2121 |
|
2122 |
-
#: src/Tribe/Validate.php:
|
2123 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2124 |
msgstr "%s verður að vera gilt gildi (tölur, bókstafir, bandstirk eða undirstrik)."
|
2125 |
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
+
#: src/Tribe/Ajax/Dropdown.php:243
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
+
#: src/Tribe/Ajax/Dropdown.php:193
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
+
#: src/Tribe/Ajax/Dropdown.php:180
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
2070 |
msgid "Select a Country:"
|
2071 |
msgstr "Veldu land:"
|
2072 |
|
2073 |
+
#: src/Tribe/Validate.php:503
|
2074 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2075 |
msgstr "Landslisti verður að vera með aðeins eitt land í línu og líta svona út: <br>US, United States <br> UK, United Kingdom."
|
2076 |
|
2077 |
+
#: src/Tribe/Validate.php:487
|
2078 |
msgid "%s must be a phone number."
|
2079 |
msgstr "%s verður að vera símanúmer."
|
2080 |
|
2081 |
+
#: src/Tribe/Validate.php:473
|
2082 |
msgid "%s must consist of 5 numbers."
|
2083 |
msgstr "%s verður að innihalda 5 tölustafi."
|
2084 |
|
2085 |
+
#: src/Tribe/Validate.php:459
|
2086 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2087 |
msgstr "%s verður að vera bókstafir, bil, úrfellingarmerki og bandstrik."
|
2088 |
|
2089 |
+
#: src/Tribe/Validate.php:443
|
2090 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2091 |
msgstr "%s verður að innihalda bókstafi, tölur, bandstrik, úrfellingarmerki og bil."
|
2092 |
|
2093 |
+
#: src/Tribe/Validate.php:427
|
2094 |
msgid "%s must be a number between 0 and 21."
|
2095 |
msgstr "%s verður að vera tala á milli 0 og 21."
|
2096 |
|
2097 |
+
#: src/Tribe/Validate.php:373
|
2098 |
msgid "%s must be a number or percentage."
|
2099 |
msgstr "%s verður að vera tala eða prósenta."
|
2100 |
|
2101 |
+
#: src/Tribe/Validate.php:357
|
2102 |
msgid "%s cannot be a duplicate"
|
2103 |
msgstr "%s má ekki vera afrit"
|
2104 |
|
2105 |
+
#: src/Tribe/Validate.php:355
|
2106 |
msgid "%s cannot be the same as %s."
|
2107 |
msgstr "%s má ekki vera sama og %s."
|
2108 |
|
2109 |
+
#: src/Tribe/Validate.php:348
|
2110 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2111 |
msgstr "Samanburðar skráning tókst ekki þar sem engin samanburðar gildi voru tilgreind fyrir svæði %s"
|
2112 |
|
2113 |
+
#: src/Tribe/Validate.php:295 src/Tribe/Validate.php:312
|
2114 |
+
#: src/Tribe/Validate.php:334
|
2115 |
msgid "%s must have a value that's part of its options."
|
2116 |
msgstr "%s verður að vera gildi sem er hluti af valkosti."
|
2117 |
|
2118 |
+
#: src/Tribe/Validate.php:279
|
2119 |
msgid "%s must be a valid absolute URL."
|
2120 |
msgstr "%s verður að vera gilt endanlegt URL."
|
2121 |
|
2122 |
+
#: src/Tribe/Validate.php:264
|
2123 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2124 |
msgstr "%s verður að vera gilt gildi (tölur, bókstafir, bandstirk eða undirstrik)."
|
2125 |
|
common/lang/tribe-common-it_IT.po
CHANGED
@@ -75,15 +75,15 @@ msgstr ""
|
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
@@ -2070,56 +2070,56 @@ msgstr "Afghanistan"
|
|
2070 |
msgid "Select a Country:"
|
2071 |
msgstr "Seleziona un Paese:"
|
2072 |
|
2073 |
-
#: src/Tribe/Validate.php:
|
2074 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2075 |
msgstr "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2076 |
|
2077 |
-
#: src/Tribe/Validate.php:
|
2078 |
msgid "%s must be a phone number."
|
2079 |
msgstr "%s deve essere un numero telefonico"
|
2080 |
|
2081 |
-
#: src/Tribe/Validate.php:
|
2082 |
msgid "%s must consist of 5 numbers."
|
2083 |
msgstr "%s deve essere costituito da 5 numeri."
|
2084 |
|
2085 |
-
#: src/Tribe/Validate.php:
|
2086 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2087 |
msgstr "%s deve essere costituito da lettere, spazi, apostrofi e trattini."
|
2088 |
|
2089 |
-
#: src/Tribe/Validate.php:
|
2090 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2091 |
msgstr "%s deve essere costituito da lettere, numeri, trattini, apostrofi, e solo spazi."
|
2092 |
|
2093 |
-
#: src/Tribe/Validate.php:
|
2094 |
msgid "%s must be a number between 0 and 21."
|
2095 |
msgstr "%s deve essere un numero tra 0 e 21."
|
2096 |
|
2097 |
-
#: src/Tribe/Validate.php:
|
2098 |
msgid "%s must be a number or percentage."
|
2099 |
msgstr "%s deve essere un numero o una percentuale."
|
2100 |
|
2101 |
-
#: src/Tribe/Validate.php:
|
2102 |
msgid "%s cannot be a duplicate"
|
2103 |
msgstr "%s non può essere un duplicato"
|
2104 |
|
2105 |
-
#: src/Tribe/Validate.php:
|
2106 |
msgid "%s cannot be the same as %s."
|
2107 |
msgstr "%s non può essere lo stesso di %s."
|
2108 |
|
2109 |
-
#: src/Tribe/Validate.php:
|
2110 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2111 |
msgstr "Convalida confronto non è riuscita perché è stato fornito alcun valore di confronto, per il camp %s"
|
2112 |
|
2113 |
-
#: src/Tribe/Validate.php:
|
2114 |
-
#: src/Tribe/Validate.php:
|
2115 |
msgid "%s must have a value that's part of its options."
|
2116 |
msgstr "%s deve avere un valore che fa parte delle sue opzioni."
|
2117 |
|
2118 |
-
#: src/Tribe/Validate.php:
|
2119 |
msgid "%s must be a valid absolute URL."
|
2120 |
msgstr "%s deve essere un URL assoluto valido."
|
2121 |
|
2122 |
-
#: src/Tribe/Validate.php:
|
2123 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2124 |
msgstr "%s deve essere uno slug valido (numeri, lettere, trattini, e sottolineature)."
|
2125 |
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
+
#: src/Tribe/Ajax/Dropdown.php:243
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
+
#: src/Tribe/Ajax/Dropdown.php:193
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
+
#: src/Tribe/Ajax/Dropdown.php:180
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
2070 |
msgid "Select a Country:"
|
2071 |
msgstr "Seleziona un Paese:"
|
2072 |
|
2073 |
+
#: src/Tribe/Validate.php:503
|
2074 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2075 |
msgstr "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2076 |
|
2077 |
+
#: src/Tribe/Validate.php:487
|
2078 |
msgid "%s must be a phone number."
|
2079 |
msgstr "%s deve essere un numero telefonico"
|
2080 |
|
2081 |
+
#: src/Tribe/Validate.php:473
|
2082 |
msgid "%s must consist of 5 numbers."
|
2083 |
msgstr "%s deve essere costituito da 5 numeri."
|
2084 |
|
2085 |
+
#: src/Tribe/Validate.php:459
|
2086 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2087 |
msgstr "%s deve essere costituito da lettere, spazi, apostrofi e trattini."
|
2088 |
|
2089 |
+
#: src/Tribe/Validate.php:443
|
2090 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2091 |
msgstr "%s deve essere costituito da lettere, numeri, trattini, apostrofi, e solo spazi."
|
2092 |
|
2093 |
+
#: src/Tribe/Validate.php:427
|
2094 |
msgid "%s must be a number between 0 and 21."
|
2095 |
msgstr "%s deve essere un numero tra 0 e 21."
|
2096 |
|
2097 |
+
#: src/Tribe/Validate.php:373
|
2098 |
msgid "%s must be a number or percentage."
|
2099 |
msgstr "%s deve essere un numero o una percentuale."
|
2100 |
|
2101 |
+
#: src/Tribe/Validate.php:357
|
2102 |
msgid "%s cannot be a duplicate"
|
2103 |
msgstr "%s non può essere un duplicato"
|
2104 |
|
2105 |
+
#: src/Tribe/Validate.php:355
|
2106 |
msgid "%s cannot be the same as %s."
|
2107 |
msgstr "%s non può essere lo stesso di %s."
|
2108 |
|
2109 |
+
#: src/Tribe/Validate.php:348
|
2110 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2111 |
msgstr "Convalida confronto non è riuscita perché è stato fornito alcun valore di confronto, per il camp %s"
|
2112 |
|
2113 |
+
#: src/Tribe/Validate.php:295 src/Tribe/Validate.php:312
|
2114 |
+
#: src/Tribe/Validate.php:334
|
2115 |
msgid "%s must have a value that's part of its options."
|
2116 |
msgstr "%s deve avere un valore che fa parte delle sue opzioni."
|
2117 |
|
2118 |
+
#: src/Tribe/Validate.php:279
|
2119 |
msgid "%s must be a valid absolute URL."
|
2120 |
msgstr "%s deve essere un URL assoluto valido."
|
2121 |
|
2122 |
+
#: src/Tribe/Validate.php:264
|
2123 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2124 |
msgstr "%s deve essere uno slug valido (numeri, lettere, trattini, e sottolineature)."
|
2125 |
|
common/lang/tribe-common-lt_LT.po
CHANGED
@@ -75,15 +75,15 @@ msgstr ""
|
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
@@ -2073,56 +2073,56 @@ msgstr "Afganistanas"
|
|
2073 |
msgid "Select a Country:"
|
2074 |
msgstr "Pasirinkite šalį:"
|
2075 |
|
2076 |
-
#: src/Tribe/Validate.php:
|
2077 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2078 |
msgstr "Šalių sąrašas turi būti suformatuota kaip viena šalis eilutėje šiuo formatu: <br>US, United States <br> UK, United Kingdom."
|
2079 |
|
2080 |
-
#: src/Tribe/Validate.php:
|
2081 |
msgid "%s must be a phone number."
|
2082 |
msgstr "%s turi būti telefono numeris."
|
2083 |
|
2084 |
-
#: src/Tribe/Validate.php:
|
2085 |
msgid "%s must consist of 5 numbers."
|
2086 |
msgstr "%s turi būti sudaryti iš 5 skaičių."
|
2087 |
|
2088 |
-
#: src/Tribe/Validate.php:
|
2089 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2090 |
msgstr "%s turi sudaryti tik raidės, tarpai, apostrofai ir brūkšneliai."
|
2091 |
|
2092 |
-
#: src/Tribe/Validate.php:
|
2093 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2094 |
msgstr "%s turi sudaryti tik raidės, skaičiai, brūkšneliai, apostrofai ir tarpai."
|
2095 |
|
2096 |
-
#: src/Tribe/Validate.php:
|
2097 |
msgid "%s must be a number between 0 and 21."
|
2098 |
msgstr "%s turi būti skaičius nuo 0 iki 21."
|
2099 |
|
2100 |
-
#: src/Tribe/Validate.php:
|
2101 |
msgid "%s must be a number or percentage."
|
2102 |
msgstr "%s turi būti skaičius arba procentas."
|
2103 |
|
2104 |
-
#: src/Tribe/Validate.php:
|
2105 |
msgid "%s cannot be a duplicate"
|
2106 |
msgstr "%s negali būti dublikatas"
|
2107 |
|
2108 |
-
#: src/Tribe/Validate.php:
|
2109 |
msgid "%s cannot be the same as %s."
|
2110 |
msgstr "%s negali būti tas pats kaip%s"
|
2111 |
|
2112 |
-
#: src/Tribe/Validate.php:
|
2113 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2114 |
msgstr "Palyginimo patikrinti nepavyko, nes nebuvo nurodyta jokia palyginimo vertė laukui %s"
|
2115 |
|
2116 |
-
#: src/Tribe/Validate.php:
|
2117 |
-
#: src/Tribe/Validate.php:
|
2118 |
msgid "%s must have a value that's part of its options."
|
2119 |
msgstr "%s turi turėti reikšmę, kuri yra jos pasirinkties dalis."
|
2120 |
|
2121 |
-
#: src/Tribe/Validate.php:
|
2122 |
msgid "%s must be a valid absolute URL."
|
2123 |
msgstr "%s turi būti galiojantis absoliutus URL."
|
2124 |
|
2125 |
-
#: src/Tribe/Validate.php:
|
2126 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2127 |
msgstr "%s turi būti galiojantis trumpinys (skaičiai, raidės, brūkšneliai ir pabraukimai)."
|
2128 |
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
+
#: src/Tribe/Ajax/Dropdown.php:243
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
+
#: src/Tribe/Ajax/Dropdown.php:193
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
+
#: src/Tribe/Ajax/Dropdown.php:180
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
2073 |
msgid "Select a Country:"
|
2074 |
msgstr "Pasirinkite šalį:"
|
2075 |
|
2076 |
+
#: src/Tribe/Validate.php:503
|
2077 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2078 |
msgstr "Šalių sąrašas turi būti suformatuota kaip viena šalis eilutėje šiuo formatu: <br>US, United States <br> UK, United Kingdom."
|
2079 |
|
2080 |
+
#: src/Tribe/Validate.php:487
|
2081 |
msgid "%s must be a phone number."
|
2082 |
msgstr "%s turi būti telefono numeris."
|
2083 |
|
2084 |
+
#: src/Tribe/Validate.php:473
|
2085 |
msgid "%s must consist of 5 numbers."
|
2086 |
msgstr "%s turi būti sudaryti iš 5 skaičių."
|
2087 |
|
2088 |
+
#: src/Tribe/Validate.php:459
|
2089 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2090 |
msgstr "%s turi sudaryti tik raidės, tarpai, apostrofai ir brūkšneliai."
|
2091 |
|
2092 |
+
#: src/Tribe/Validate.php:443
|
2093 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2094 |
msgstr "%s turi sudaryti tik raidės, skaičiai, brūkšneliai, apostrofai ir tarpai."
|
2095 |
|
2096 |
+
#: src/Tribe/Validate.php:427
|
2097 |
msgid "%s must be a number between 0 and 21."
|
2098 |
msgstr "%s turi būti skaičius nuo 0 iki 21."
|
2099 |
|
2100 |
+
#: src/Tribe/Validate.php:373
|
2101 |
msgid "%s must be a number or percentage."
|
2102 |
msgstr "%s turi būti skaičius arba procentas."
|
2103 |
|
2104 |
+
#: src/Tribe/Validate.php:357
|
2105 |
msgid "%s cannot be a duplicate"
|
2106 |
msgstr "%s negali būti dublikatas"
|
2107 |
|
2108 |
+
#: src/Tribe/Validate.php:355
|
2109 |
msgid "%s cannot be the same as %s."
|
2110 |
msgstr "%s negali būti tas pats kaip%s"
|
2111 |
|
2112 |
+
#: src/Tribe/Validate.php:348
|
2113 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2114 |
msgstr "Palyginimo patikrinti nepavyko, nes nebuvo nurodyta jokia palyginimo vertė laukui %s"
|
2115 |
|
2116 |
+
#: src/Tribe/Validate.php:295 src/Tribe/Validate.php:312
|
2117 |
+
#: src/Tribe/Validate.php:334
|
2118 |
msgid "%s must have a value that's part of its options."
|
2119 |
msgstr "%s turi turėti reikšmę, kuri yra jos pasirinkties dalis."
|
2120 |
|
2121 |
+
#: src/Tribe/Validate.php:279
|
2122 |
msgid "%s must be a valid absolute URL."
|
2123 |
msgstr "%s turi būti galiojantis absoliutus URL."
|
2124 |
|
2125 |
+
#: src/Tribe/Validate.php:264
|
2126 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2127 |
msgstr "%s turi būti galiojantis trumpinys (skaičiai, raidės, brūkšneliai ir pabraukimai)."
|
2128 |
|
common/lang/tribe-common-lv.po
CHANGED
@@ -75,15 +75,15 @@ msgstr ""
|
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
@@ -2073,56 +2073,56 @@ msgstr "Afganistāna"
|
|
2073 |
msgid "Select a Country:"
|
2074 |
msgstr "Izvēlies Valsti:"
|
2075 |
|
2076 |
-
#: src/Tribe/Validate.php:
|
2077 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2078 |
msgstr "Valstu sarakstā katrai valstij jābūt savā līnijā pēc sekojoša formāta <br>US, Unated States <br> UK, United Kingdom."
|
2079 |
|
2080 |
-
#: src/Tribe/Validate.php:
|
2081 |
msgid "%s must be a phone number."
|
2082 |
msgstr "%s jābūt tālrunim"
|
2083 |
|
2084 |
-
#: src/Tribe/Validate.php:
|
2085 |
msgid "%s must consist of 5 numbers."
|
2086 |
msgstr "%s jāsastāv no 5 skaitļiem."
|
2087 |
|
2088 |
-
#: src/Tribe/Validate.php:
|
2089 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2090 |
msgstr "%s jāsastāv no burtiem, atstarpēm, apostrofiem un domuzīmēm."
|
2091 |
|
2092 |
-
#: src/Tribe/Validate.php:
|
2093 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2094 |
msgstr "%s jāsastāv tikai no no burtiem, cipariem, domuzīmēm, apostrofiem un atstarpēm."
|
2095 |
|
2096 |
-
#: src/Tribe/Validate.php:
|
2097 |
msgid "%s must be a number between 0 and 21."
|
2098 |
msgstr "%s jābūt skaitlim no 0 līdz 21"
|
2099 |
|
2100 |
-
#: src/Tribe/Validate.php:
|
2101 |
msgid "%s must be a number or percentage."
|
2102 |
msgstr "%s jābūt skaitlim vai procentiem"
|
2103 |
|
2104 |
-
#: src/Tribe/Validate.php:
|
2105 |
msgid "%s cannot be a duplicate"
|
2106 |
msgstr "%s nedrīkst būt dublikāts"
|
2107 |
|
2108 |
-
#: src/Tribe/Validate.php:
|
2109 |
msgid "%s cannot be the same as %s."
|
2110 |
msgstr "%s nedrīkst būt tāds pats kā %s."
|
2111 |
|
2112 |
-
#: src/Tribe/Validate.php:
|
2113 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2114 |
msgstr "Salīdzināšanas validācija neizdevās, jo laukam %s netika padota salīdzināmā vērtība"
|
2115 |
|
2116 |
-
#: src/Tribe/Validate.php:
|
2117 |
-
#: src/Tribe/Validate.php:
|
2118 |
msgid "%s must have a value that's part of its options."
|
2119 |
msgstr "%s ir jābūt vērtībai kura ir daļa no tās opcijām."
|
2120 |
|
2121 |
-
#: src/Tribe/Validate.php:
|
2122 |
msgid "%s must be a valid absolute URL."
|
2123 |
msgstr "%s ir jābūt derīgam un absolūtam URL."
|
2124 |
|
2125 |
-
#: src/Tribe/Validate.php:
|
2126 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2127 |
msgstr "%s ir jābūt derīgam īsvārdam (skaitļi, burti, domuzīmes un apakšsvītras)."
|
2128 |
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
+
#: src/Tribe/Ajax/Dropdown.php:243
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
+
#: src/Tribe/Ajax/Dropdown.php:193
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
+
#: src/Tribe/Ajax/Dropdown.php:180
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
2073 |
msgid "Select a Country:"
|
2074 |
msgstr "Izvēlies Valsti:"
|
2075 |
|
2076 |
+
#: src/Tribe/Validate.php:503
|
2077 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2078 |
msgstr "Valstu sarakstā katrai valstij jābūt savā līnijā pēc sekojoša formāta <br>US, Unated States <br> UK, United Kingdom."
|
2079 |
|
2080 |
+
#: src/Tribe/Validate.php:487
|
2081 |
msgid "%s must be a phone number."
|
2082 |
msgstr "%s jābūt tālrunim"
|
2083 |
|
2084 |
+
#: src/Tribe/Validate.php:473
|
2085 |
msgid "%s must consist of 5 numbers."
|
2086 |
msgstr "%s jāsastāv no 5 skaitļiem."
|
2087 |
|
2088 |
+
#: src/Tribe/Validate.php:459
|
2089 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2090 |
msgstr "%s jāsastāv no burtiem, atstarpēm, apostrofiem un domuzīmēm."
|
2091 |
|
2092 |
+
#: src/Tribe/Validate.php:443
|
2093 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2094 |
msgstr "%s jāsastāv tikai no no burtiem, cipariem, domuzīmēm, apostrofiem un atstarpēm."
|
2095 |
|
2096 |
+
#: src/Tribe/Validate.php:427
|
2097 |
msgid "%s must be a number between 0 and 21."
|
2098 |
msgstr "%s jābūt skaitlim no 0 līdz 21"
|
2099 |
|
2100 |
+
#: src/Tribe/Validate.php:373
|
2101 |
msgid "%s must be a number or percentage."
|
2102 |
msgstr "%s jābūt skaitlim vai procentiem"
|
2103 |
|
2104 |
+
#: src/Tribe/Validate.php:357
|
2105 |
msgid "%s cannot be a duplicate"
|
2106 |
msgstr "%s nedrīkst būt dublikāts"
|
2107 |
|
2108 |
+
#: src/Tribe/Validate.php:355
|
2109 |
msgid "%s cannot be the same as %s."
|
2110 |
msgstr "%s nedrīkst būt tāds pats kā %s."
|
2111 |
|
2112 |
+
#: src/Tribe/Validate.php:348
|
2113 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2114 |
msgstr "Salīdzināšanas validācija neizdevās, jo laukam %s netika padota salīdzināmā vērtība"
|
2115 |
|
2116 |
+
#: src/Tribe/Validate.php:295 src/Tribe/Validate.php:312
|
2117 |
+
#: src/Tribe/Validate.php:334
|
2118 |
msgid "%s must have a value that's part of its options."
|
2119 |
msgstr "%s ir jābūt vērtībai kura ir daļa no tās opcijām."
|
2120 |
|
2121 |
+
#: src/Tribe/Validate.php:279
|
2122 |
msgid "%s must be a valid absolute URL."
|
2123 |
msgstr "%s ir jābūt derīgam un absolūtam URL."
|
2124 |
|
2125 |
+
#: src/Tribe/Validate.php:264
|
2126 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2127 |
msgstr "%s ir jābūt derīgam īsvārdam (skaitļi, burti, domuzīmes un apakšsvītras)."
|
2128 |
|
common/lang/tribe-common-nb_NO.po
CHANGED
@@ -75,15 +75,15 @@ msgstr ""
|
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
@@ -2070,56 +2070,56 @@ msgstr "Afghanistan"
|
|
2070 |
msgid "Select a Country:"
|
2071 |
msgstr "Velg et land:"
|
2072 |
|
2073 |
-
#: src/Tribe/Validate.php:
|
2074 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2075 |
msgstr "Liste over land må være formatert som ett land pr linje i følgende format: <br>US, United States <br> UK, United Kingdom."
|
2076 |
|
2077 |
-
#: src/Tribe/Validate.php:
|
2078 |
msgid "%s must be a phone number."
|
2079 |
msgstr "%s må være et telefonnummer."
|
2080 |
|
2081 |
-
#: src/Tribe/Validate.php:
|
2082 |
msgid "%s must consist of 5 numbers."
|
2083 |
msgstr "%s må inneholde 5 tall."
|
2084 |
|
2085 |
-
#: src/Tribe/Validate.php:
|
2086 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2087 |
msgstr "%s må inneholde bokstaver, mellomrom, apostrofer og bindestrek."
|
2088 |
|
2089 |
-
#: src/Tribe/Validate.php:
|
2090 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2091 |
msgstr "%s kan kun inneholde bokstaver, tall, strek, apostrof eller mellomrom."
|
2092 |
|
2093 |
-
#: src/Tribe/Validate.php:
|
2094 |
msgid "%s must be a number between 0 and 21."
|
2095 |
msgstr "%s må være et tall mellom 0 og 21."
|
2096 |
|
2097 |
-
#: src/Tribe/Validate.php:
|
2098 |
msgid "%s must be a number or percentage."
|
2099 |
msgstr "%s må være ett nummer."
|
2100 |
|
2101 |
-
#: src/Tribe/Validate.php:
|
2102 |
msgid "%s cannot be a duplicate"
|
2103 |
msgstr "%s kan ikke være et duplikat"
|
2104 |
|
2105 |
-
#: src/Tribe/Validate.php:
|
2106 |
msgid "%s cannot be the same as %s."
|
2107 |
msgstr "%s kan ikke være det samme som %s."
|
2108 |
|
2109 |
-
#: src/Tribe/Validate.php:
|
2110 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2111 |
msgstr "Sammenligningsvalidering mislyktes fordi ingen sammenligningsverdi var angitt for felt %s"
|
2112 |
|
2113 |
-
#: src/Tribe/Validate.php:
|
2114 |
-
#: src/Tribe/Validate.php:
|
2115 |
msgid "%s must have a value that's part of its options."
|
2116 |
msgstr "%s må ha en verdi i samsvar med valgmulighetene."
|
2117 |
|
2118 |
-
#: src/Tribe/Validate.php:
|
2119 |
msgid "%s must be a valid absolute URL."
|
2120 |
msgstr "%s må være en gyldig absolutt URL."
|
2121 |
|
2122 |
-
#: src/Tribe/Validate.php:
|
2123 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2124 |
msgstr "%s må være en gyldig kortlenke (tall, bokstaver, bindestrek og understrek)."
|
2125 |
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
+
#: src/Tribe/Ajax/Dropdown.php:243
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
+
#: src/Tribe/Ajax/Dropdown.php:193
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
+
#: src/Tribe/Ajax/Dropdown.php:180
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
2070 |
msgid "Select a Country:"
|
2071 |
msgstr "Velg et land:"
|
2072 |
|
2073 |
+
#: src/Tribe/Validate.php:503
|
2074 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2075 |
msgstr "Liste over land må være formatert som ett land pr linje i følgende format: <br>US, United States <br> UK, United Kingdom."
|
2076 |
|
2077 |
+
#: src/Tribe/Validate.php:487
|
2078 |
msgid "%s must be a phone number."
|
2079 |
msgstr "%s må være et telefonnummer."
|
2080 |
|
2081 |
+
#: src/Tribe/Validate.php:473
|
2082 |
msgid "%s must consist of 5 numbers."
|
2083 |
msgstr "%s må inneholde 5 tall."
|
2084 |
|
2085 |
+
#: src/Tribe/Validate.php:459
|
2086 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2087 |
msgstr "%s må inneholde bokstaver, mellomrom, apostrofer og bindestrek."
|
2088 |
|
2089 |
+
#: src/Tribe/Validate.php:443
|
2090 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2091 |
msgstr "%s kan kun inneholde bokstaver, tall, strek, apostrof eller mellomrom."
|
2092 |
|
2093 |
+
#: src/Tribe/Validate.php:427
|
2094 |
msgid "%s must be a number between 0 and 21."
|
2095 |
msgstr "%s må være et tall mellom 0 og 21."
|
2096 |
|
2097 |
+
#: src/Tribe/Validate.php:373
|
2098 |
msgid "%s must be a number or percentage."
|
2099 |
msgstr "%s må være ett nummer."
|
2100 |
|
2101 |
+
#: src/Tribe/Validate.php:357
|
2102 |
msgid "%s cannot be a duplicate"
|
2103 |
msgstr "%s kan ikke være et duplikat"
|
2104 |
|
2105 |
+
#: src/Tribe/Validate.php:355
|
2106 |
msgid "%s cannot be the same as %s."
|
2107 |
msgstr "%s kan ikke være det samme som %s."
|
2108 |
|
2109 |
+
#: src/Tribe/Validate.php:348
|
2110 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2111 |
msgstr "Sammenligningsvalidering mislyktes fordi ingen sammenligningsverdi var angitt for felt %s"
|
2112 |
|
2113 |
+
#: src/Tribe/Validate.php:295 src/Tribe/Validate.php:312
|
2114 |
+
#: src/Tribe/Validate.php:334
|
2115 |
msgid "%s must have a value that's part of its options."
|
2116 |
msgstr "%s må ha en verdi i samsvar med valgmulighetene."
|
2117 |
|
2118 |
+
#: src/Tribe/Validate.php:279
|
2119 |
msgid "%s must be a valid absolute URL."
|
2120 |
msgstr "%s må være en gyldig absolutt URL."
|
2121 |
|
2122 |
+
#: src/Tribe/Validate.php:264
|
2123 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2124 |
msgstr "%s må være en gyldig kortlenke (tall, bokstaver, bindestrek og understrek)."
|
2125 |
|
common/lang/tribe-common-nl_NL.po
CHANGED
@@ -75,15 +75,15 @@ msgstr ""
|
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
@@ -2072,56 +2072,56 @@ msgstr "Afghanistan"
|
|
2072 |
msgid "Select a Country:"
|
2073 |
msgstr "Selecteer een land:"
|
2074 |
|
2075 |
-
#: src/Tribe/Validate.php:
|
2076 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2077 |
msgstr "Landenlijst moet geformatteerd zijn als een land per regel in het volgende formaat <br>US, United States <br> UK, United Kingdom."
|
2078 |
|
2079 |
-
#: src/Tribe/Validate.php:
|
2080 |
msgid "%s must be a phone number."
|
2081 |
msgstr "%s moet een telefoonnummer zijn."
|
2082 |
|
2083 |
-
#: src/Tribe/Validate.php:
|
2084 |
msgid "%s must consist of 5 numbers."
|
2085 |
msgstr "%s moet bestaan uit 5 getallen."
|
2086 |
|
2087 |
-
#: src/Tribe/Validate.php:
|
2088 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2089 |
msgstr "%s moet bestaan uit letters, spaties, apostroffen en streepjes."
|
2090 |
|
2091 |
-
#: src/Tribe/Validate.php:
|
2092 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2093 |
msgstr "%s moet alleen bestaan uit letters, getallen, streepjes, apostroffen en spaties."
|
2094 |
|
2095 |
-
#: src/Tribe/Validate.php:
|
2096 |
msgid "%s must be a number between 0 and 21."
|
2097 |
msgstr "%s moet een getal tussen 0 en 21 zijn."
|
2098 |
|
2099 |
-
#: src/Tribe/Validate.php:
|
2100 |
msgid "%s must be a number or percentage."
|
2101 |
msgstr "%s moet een getal of percentage zijn."
|
2102 |
|
2103 |
-
#: src/Tribe/Validate.php:
|
2104 |
msgid "%s cannot be a duplicate"
|
2105 |
msgstr "%s kan geen duplicaat zijn"
|
2106 |
|
2107 |
-
#: src/Tribe/Validate.php:
|
2108 |
msgid "%s cannot be the same as %s."
|
2109 |
msgstr "%s kan niet hetzelfde zijn als %s."
|
2110 |
|
2111 |
-
#: src/Tribe/Validate.php:
|
2112 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2113 |
msgstr "Vergelijkende validatie lukt niet omdat geen vergelijkingswaarde is verstrekt in het veld %s"
|
2114 |
|
2115 |
-
#: src/Tribe/Validate.php:
|
2116 |
-
#: src/Tribe/Validate.php:
|
2117 |
msgid "%s must have a value that's part of its options."
|
2118 |
msgstr "%s moet een waarde hebben die deel is van de opties."
|
2119 |
|
2120 |
-
#: src/Tribe/Validate.php:
|
2121 |
msgid "%s must be a valid absolute URL."
|
2122 |
msgstr "%s moet een valide absolute URL zijn."
|
2123 |
|
2124 |
-
#: src/Tribe/Validate.php:
|
2125 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2126 |
msgstr "%s moet een geldige slug zijn (nummers, letters, streepjes en underscores)."
|
2127 |
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
+
#: src/Tribe/Ajax/Dropdown.php:243
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
+
#: src/Tribe/Ajax/Dropdown.php:193
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
+
#: src/Tribe/Ajax/Dropdown.php:180
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
2072 |
msgid "Select a Country:"
|
2073 |
msgstr "Selecteer een land:"
|
2074 |
|
2075 |
+
#: src/Tribe/Validate.php:503
|
2076 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2077 |
msgstr "Landenlijst moet geformatteerd zijn als een land per regel in het volgende formaat <br>US, United States <br> UK, United Kingdom."
|
2078 |
|
2079 |
+
#: src/Tribe/Validate.php:487
|
2080 |
msgid "%s must be a phone number."
|
2081 |
msgstr "%s moet een telefoonnummer zijn."
|
2082 |
|
2083 |
+
#: src/Tribe/Validate.php:473
|
2084 |
msgid "%s must consist of 5 numbers."
|
2085 |
msgstr "%s moet bestaan uit 5 getallen."
|
2086 |
|
2087 |
+
#: src/Tribe/Validate.php:459
|
2088 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2089 |
msgstr "%s moet bestaan uit letters, spaties, apostroffen en streepjes."
|
2090 |
|
2091 |
+
#: src/Tribe/Validate.php:443
|
2092 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2093 |
msgstr "%s moet alleen bestaan uit letters, getallen, streepjes, apostroffen en spaties."
|
2094 |
|
2095 |
+
#: src/Tribe/Validate.php:427
|
2096 |
msgid "%s must be a number between 0 and 21."
|
2097 |
msgstr "%s moet een getal tussen 0 en 21 zijn."
|
2098 |
|
2099 |
+
#: src/Tribe/Validate.php:373
|
2100 |
msgid "%s must be a number or percentage."
|
2101 |
msgstr "%s moet een getal of percentage zijn."
|
2102 |
|
2103 |
+
#: src/Tribe/Validate.php:357
|
2104 |
msgid "%s cannot be a duplicate"
|
2105 |
msgstr "%s kan geen duplicaat zijn"
|
2106 |
|
2107 |
+
#: src/Tribe/Validate.php:355
|
2108 |
msgid "%s cannot be the same as %s."
|
2109 |
msgstr "%s kan niet hetzelfde zijn als %s."
|
2110 |
|
2111 |
+
#: src/Tribe/Validate.php:348
|
2112 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2113 |
msgstr "Vergelijkende validatie lukt niet omdat geen vergelijkingswaarde is verstrekt in het veld %s"
|
2114 |
|
2115 |
+
#: src/Tribe/Validate.php:295 src/Tribe/Validate.php:312
|
2116 |
+
#: src/Tribe/Validate.php:334
|
2117 |
msgid "%s must have a value that's part of its options."
|
2118 |
msgstr "%s moet een waarde hebben die deel is van de opties."
|
2119 |
|
2120 |
+
#: src/Tribe/Validate.php:279
|
2121 |
msgid "%s must be a valid absolute URL."
|
2122 |
msgstr "%s moet een valide absolute URL zijn."
|
2123 |
|
2124 |
+
#: src/Tribe/Validate.php:264
|
2125 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2126 |
msgstr "%s moet een geldige slug zijn (nummers, letters, streepjes en underscores)."
|
2127 |
|
common/lang/tribe-common-pl_PL.po
CHANGED
@@ -75,15 +75,15 @@ msgstr ""
|
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
@@ -2073,56 +2073,56 @@ msgstr ""
|
|
2073 |
msgid "Select a Country:"
|
2074 |
msgstr "Wybierz kraj:"
|
2075 |
|
2076 |
-
#: src/Tribe/Validate.php:
|
2077 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2078 |
msgstr "Podaj po jednym kraju w każdej linii, zachowując następujący format: <br>US, United States <br> UK, United Kingdom."
|
2079 |
|
2080 |
-
#: src/Tribe/Validate.php:
|
2081 |
msgid "%s must be a phone number."
|
2082 |
msgstr "%s musi być numerem telefonu."
|
2083 |
|
2084 |
-
#: src/Tribe/Validate.php:
|
2085 |
msgid "%s must consist of 5 numbers."
|
2086 |
msgstr "%s musi składać się z 5 cyfr."
|
2087 |
|
2088 |
-
#: src/Tribe/Validate.php:
|
2089 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2090 |
msgstr "%s może zawierać litery, spacje, apostrofy i podkreślenia."
|
2091 |
|
2092 |
-
#: src/Tribe/Validate.php:
|
2093 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2094 |
msgstr "%s może zawierać tylko litery, cyfry, podkreślenia, apostrofy i spacje. "
|
2095 |
|
2096 |
-
#: src/Tribe/Validate.php:
|
2097 |
msgid "%s must be a number between 0 and 21."
|
2098 |
msgstr "%s musi być liczbą z zakresu 0-21."
|
2099 |
|
2100 |
-
#: src/Tribe/Validate.php:
|
2101 |
msgid "%s must be a number or percentage."
|
2102 |
msgstr "%s musi być liczbą lub procentem."
|
2103 |
|
2104 |
-
#: src/Tribe/Validate.php:
|
2105 |
msgid "%s cannot be a duplicate"
|
2106 |
msgstr "%s nie może być zduplikowane"
|
2107 |
|
2108 |
-
#: src/Tribe/Validate.php:
|
2109 |
msgid "%s cannot be the same as %s."
|
2110 |
msgstr "%s nie może być taka sama jak %s."
|
2111 |
|
2112 |
-
#: src/Tribe/Validate.php:
|
2113 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2114 |
msgstr ""
|
2115 |
|
2116 |
-
#: src/Tribe/Validate.php:
|
2117 |
-
#: src/Tribe/Validate.php:
|
2118 |
msgid "%s must have a value that's part of its options."
|
2119 |
msgstr ""
|
2120 |
|
2121 |
-
#: src/Tribe/Validate.php:
|
2122 |
msgid "%s must be a valid absolute URL."
|
2123 |
msgstr "%s musi być poprawnym bezwzględnym adresem URL."
|
2124 |
|
2125 |
-
#: src/Tribe/Validate.php:
|
2126 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2127 |
msgstr "%s musi być poprawnym slugiem (moze zawierać cyfry, litery, myślniki i podkreślenie)."
|
2128 |
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
+
#: src/Tribe/Ajax/Dropdown.php:243
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
+
#: src/Tribe/Ajax/Dropdown.php:193
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
+
#: src/Tribe/Ajax/Dropdown.php:180
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
2073 |
msgid "Select a Country:"
|
2074 |
msgstr "Wybierz kraj:"
|
2075 |
|
2076 |
+
#: src/Tribe/Validate.php:503
|
2077 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2078 |
msgstr "Podaj po jednym kraju w każdej linii, zachowując następujący format: <br>US, United States <br> UK, United Kingdom."
|
2079 |
|
2080 |
+
#: src/Tribe/Validate.php:487
|
2081 |
msgid "%s must be a phone number."
|
2082 |
msgstr "%s musi być numerem telefonu."
|
2083 |
|
2084 |
+
#: src/Tribe/Validate.php:473
|
2085 |
msgid "%s must consist of 5 numbers."
|
2086 |
msgstr "%s musi składać się z 5 cyfr."
|
2087 |
|
2088 |
+
#: src/Tribe/Validate.php:459
|
2089 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2090 |
msgstr "%s może zawierać litery, spacje, apostrofy i podkreślenia."
|
2091 |
|
2092 |
+
#: src/Tribe/Validate.php:443
|
2093 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2094 |
msgstr "%s może zawierać tylko litery, cyfry, podkreślenia, apostrofy i spacje. "
|
2095 |
|
2096 |
+
#: src/Tribe/Validate.php:427
|
2097 |
msgid "%s must be a number between 0 and 21."
|
2098 |
msgstr "%s musi być liczbą z zakresu 0-21."
|
2099 |
|
2100 |
+
#: src/Tribe/Validate.php:373
|
2101 |
msgid "%s must be a number or percentage."
|
2102 |
msgstr "%s musi być liczbą lub procentem."
|
2103 |
|
2104 |
+
#: src/Tribe/Validate.php:357
|
2105 |
msgid "%s cannot be a duplicate"
|
2106 |
msgstr "%s nie może być zduplikowane"
|
2107 |
|
2108 |
+
#: src/Tribe/Validate.php:355
|
2109 |
msgid "%s cannot be the same as %s."
|
2110 |
msgstr "%s nie może być taka sama jak %s."
|
2111 |
|
2112 |
+
#: src/Tribe/Validate.php:348
|
2113 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2114 |
msgstr ""
|
2115 |
|
2116 |
+
#: src/Tribe/Validate.php:295 src/Tribe/Validate.php:312
|
2117 |
+
#: src/Tribe/Validate.php:334
|
2118 |
msgid "%s must have a value that's part of its options."
|
2119 |
msgstr ""
|
2120 |
|
2121 |
+
#: src/Tribe/Validate.php:279
|
2122 |
msgid "%s must be a valid absolute URL."
|
2123 |
msgstr "%s musi być poprawnym bezwzględnym adresem URL."
|
2124 |
|
2125 |
+
#: src/Tribe/Validate.php:264
|
2126 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2127 |
msgstr "%s musi być poprawnym slugiem (moze zawierać cyfry, litery, myślniki i podkreślenie)."
|
2128 |
|
common/lang/tribe-common-pt_BR.po
CHANGED
@@ -75,15 +75,15 @@ msgstr ""
|
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
@@ -2070,56 +2070,56 @@ msgstr "Afeganistão"
|
|
2070 |
msgid "Select a Country:"
|
2071 |
msgstr "Selecione um País:"
|
2072 |
|
2073 |
-
#: src/Tribe/Validate.php:
|
2074 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2075 |
msgstr "A listagem de países deve ser formatada com um país por linha, no seguinte formato: <br/>US, Estados Unidos <br/> UK, Reino Unido."
|
2076 |
|
2077 |
-
#: src/Tribe/Validate.php:
|
2078 |
msgid "%s must be a phone number."
|
2079 |
msgstr "%s deve ser um número de telefone."
|
2080 |
|
2081 |
-
#: src/Tribe/Validate.php:
|
2082 |
msgid "%s must consist of 5 numbers."
|
2083 |
msgstr "%s deve conter 5 números."
|
2084 |
|
2085 |
-
#: src/Tribe/Validate.php:
|
2086 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2087 |
msgstr "%s deve possuir letras, espaços, apóstrofos e traços."
|
2088 |
|
2089 |
-
#: src/Tribe/Validate.php:
|
2090 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2091 |
msgstr "%s deve possuir apenas letras, números, traços, apóstrofos e espaços."
|
2092 |
|
2093 |
-
#: src/Tribe/Validate.php:
|
2094 |
msgid "%s must be a number between 0 and 21."
|
2095 |
msgstr "%s deve ser um número entre 0 e 21."
|
2096 |
|
2097 |
-
#: src/Tribe/Validate.php:
|
2098 |
msgid "%s must be a number or percentage."
|
2099 |
msgstr "%s deve ser um número ou porcentagem."
|
2100 |
|
2101 |
-
#: src/Tribe/Validate.php:
|
2102 |
msgid "%s cannot be a duplicate"
|
2103 |
msgstr "%s não pode ser uma duplicata"
|
2104 |
|
2105 |
-
#: src/Tribe/Validate.php:
|
2106 |
msgid "%s cannot be the same as %s."
|
2107 |
msgstr "%s não pode ser o mesmo que %s."
|
2108 |
|
2109 |
-
#: src/Tribe/Validate.php:
|
2110 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2111 |
msgstr "A comparação de validação falhou porque não foi fornecido um valor de comparação para o campo %s"
|
2112 |
|
2113 |
-
#: src/Tribe/Validate.php:
|
2114 |
-
#: src/Tribe/Validate.php:
|
2115 |
msgid "%s must have a value that's part of its options."
|
2116 |
msgstr "%s precisa ter um valor que seja parte destas opções."
|
2117 |
|
2118 |
-
#: src/Tribe/Validate.php:
|
2119 |
msgid "%s must be a valid absolute URL."
|
2120 |
msgstr "%sprecisa ser uma URL absoluta válida."
|
2121 |
|
2122 |
-
#: src/Tribe/Validate.php:
|
2123 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2124 |
msgstr "%s precisa ser um slug válido (números, letras, traços e sublinhados)"
|
2125 |
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
+
#: src/Tribe/Ajax/Dropdown.php:243
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
+
#: src/Tribe/Ajax/Dropdown.php:193
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
+
#: src/Tribe/Ajax/Dropdown.php:180
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
2070 |
msgid "Select a Country:"
|
2071 |
msgstr "Selecione um País:"
|
2072 |
|
2073 |
+
#: src/Tribe/Validate.php:503
|
2074 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2075 |
msgstr "A listagem de países deve ser formatada com um país por linha, no seguinte formato: <br/>US, Estados Unidos <br/> UK, Reino Unido."
|
2076 |
|
2077 |
+
#: src/Tribe/Validate.php:487
|
2078 |
msgid "%s must be a phone number."
|
2079 |
msgstr "%s deve ser um número de telefone."
|
2080 |
|
2081 |
+
#: src/Tribe/Validate.php:473
|
2082 |
msgid "%s must consist of 5 numbers."
|
2083 |
msgstr "%s deve conter 5 números."
|
2084 |
|
2085 |
+
#: src/Tribe/Validate.php:459
|
2086 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2087 |
msgstr "%s deve possuir letras, espaços, apóstrofos e traços."
|
2088 |
|
2089 |
+
#: src/Tribe/Validate.php:443
|
2090 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2091 |
msgstr "%s deve possuir apenas letras, números, traços, apóstrofos e espaços."
|
2092 |
|
2093 |
+
#: src/Tribe/Validate.php:427
|
2094 |
msgid "%s must be a number between 0 and 21."
|
2095 |
msgstr "%s deve ser um número entre 0 e 21."
|
2096 |
|
2097 |
+
#: src/Tribe/Validate.php:373
|
2098 |
msgid "%s must be a number or percentage."
|
2099 |
msgstr "%s deve ser um número ou porcentagem."
|
2100 |
|
2101 |
+
#: src/Tribe/Validate.php:357
|
2102 |
msgid "%s cannot be a duplicate"
|
2103 |
msgstr "%s não pode ser uma duplicata"
|
2104 |
|
2105 |
+
#: src/Tribe/Validate.php:355
|
2106 |
msgid "%s cannot be the same as %s."
|
2107 |
msgstr "%s não pode ser o mesmo que %s."
|
2108 |
|
2109 |
+
#: src/Tribe/Validate.php:348
|
2110 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2111 |
msgstr "A comparação de validação falhou porque não foi fornecido um valor de comparação para o campo %s"
|
2112 |
|
2113 |
+
#: src/Tribe/Validate.php:295 src/Tribe/Validate.php:312
|
2114 |
+
#: src/Tribe/Validate.php:334
|
2115 |
msgid "%s must have a value that's part of its options."
|
2116 |
msgstr "%s precisa ter um valor que seja parte destas opções."
|
2117 |
|
2118 |
+
#: src/Tribe/Validate.php:279
|
2119 |
msgid "%s must be a valid absolute URL."
|
2120 |
msgstr "%sprecisa ser uma URL absoluta válida."
|
2121 |
|
2122 |
+
#: src/Tribe/Validate.php:264
|
2123 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2124 |
msgstr "%s precisa ser um slug válido (números, letras, traços e sublinhados)"
|
2125 |
|
common/lang/tribe-common-pt_PT.po
CHANGED
@@ -75,15 +75,15 @@ msgstr "Aceite eventos submetidos por utilizadores no seu site! Com o plugin Com
|
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr "Importe eventos de toda a web! O Event Aggregator permite-lhe facilmente executar importações agendadas ou manuais do Facebook, Meetup, Calendário Google e iCalendar, bem como através de carregar ficheiros CSV e ICS. Pode também importar directamente de outros sites que utilizem o The Events Calendar graças ao suporte da REST API incorporada."
|
77 |
|
78 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr "A \"%s\" origem é inválida e não é possível obter na instância \"%s\"."
|
81 |
|
82 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr "Conjunto de dados vazio para este selector"
|
85 |
|
86 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr "Origem de dados em falta para este selector"
|
89 |
|
@@ -2070,56 +2070,56 @@ msgstr "Afeganistão"
|
|
2070 |
msgid "Select a Country:"
|
2071 |
msgstr "Seleccione um país:"
|
2072 |
|
2073 |
-
#: src/Tribe/Validate.php:
|
2074 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2075 |
msgstr "A lista de países tem de ser formatada como um país por linha no seguinte formato: <br>US, Estados Unidos <br> UK, Reino Unido."
|
2076 |
|
2077 |
-
#: src/Tribe/Validate.php:
|
2078 |
msgid "%s must be a phone number."
|
2079 |
msgstr "%s deve ser um número de telefone."
|
2080 |
|
2081 |
-
#: src/Tribe/Validate.php:
|
2082 |
msgid "%s must consist of 5 numbers."
|
2083 |
msgstr "%s deve ser constituído por 5 números."
|
2084 |
|
2085 |
-
#: src/Tribe/Validate.php:
|
2086 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2087 |
msgstr "%s deve ser constituído por letras, espaços, apóstrofos e traços."
|
2088 |
|
2089 |
-
#: src/Tribe/Validate.php:
|
2090 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2091 |
msgstr "%s deve ser constituído apenas por letras, número, traços, apóstrofos e espaços."
|
2092 |
|
2093 |
-
#: src/Tribe/Validate.php:
|
2094 |
msgid "%s must be a number between 0 and 21."
|
2095 |
msgstr "%s deve ser um número entre 0 e 21."
|
2096 |
|
2097 |
-
#: src/Tribe/Validate.php:
|
2098 |
msgid "%s must be a number or percentage."
|
2099 |
msgstr "%s deve ser um número ou percentagem."
|
2100 |
|
2101 |
-
#: src/Tribe/Validate.php:
|
2102 |
msgid "%s cannot be a duplicate"
|
2103 |
msgstr "%s não pode ser um duplicado"
|
2104 |
|
2105 |
-
#: src/Tribe/Validate.php:
|
2106 |
msgid "%s cannot be the same as %s."
|
2107 |
msgstr "%s não pode ser o mesmo que %s."
|
2108 |
|
2109 |
-
#: src/Tribe/Validate.php:
|
2110 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2111 |
msgstr "A validação da comparação falhou porque não foi fornecido nenhum valor de comparação para o campo %s"
|
2112 |
|
2113 |
-
#: src/Tribe/Validate.php:
|
2114 |
-
#: src/Tribe/Validate.php:
|
2115 |
msgid "%s must have a value that's part of its options."
|
2116 |
msgstr "%s deve ser um valor presente nas suas opções."
|
2117 |
|
2118 |
-
#: src/Tribe/Validate.php:
|
2119 |
msgid "%s must be a valid absolute URL."
|
2120 |
msgstr "%s deve ser um URL válido e absoluto."
|
2121 |
|
2122 |
-
#: src/Tribe/Validate.php:
|
2123 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2124 |
msgstr "%s deve ser uma slug válida (números, letras, traços e underscores)."
|
2125 |
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr "Importe eventos de toda a web! O Event Aggregator permite-lhe facilmente executar importações agendadas ou manuais do Facebook, Meetup, Calendário Google e iCalendar, bem como através de carregar ficheiros CSV e ICS. Pode também importar directamente de outros sites que utilizem o The Events Calendar graças ao suporte da REST API incorporada."
|
77 |
|
78 |
+
#: src/Tribe/Ajax/Dropdown.php:243
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr "A \"%s\" origem é inválida e não é possível obter na instância \"%s\"."
|
81 |
|
82 |
+
#: src/Tribe/Ajax/Dropdown.php:193
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr "Conjunto de dados vazio para este selector"
|
85 |
|
86 |
+
#: src/Tribe/Ajax/Dropdown.php:180
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr "Origem de dados em falta para este selector"
|
89 |
|
2070 |
msgid "Select a Country:"
|
2071 |
msgstr "Seleccione um país:"
|
2072 |
|
2073 |
+
#: src/Tribe/Validate.php:503
|
2074 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2075 |
msgstr "A lista de países tem de ser formatada como um país por linha no seguinte formato: <br>US, Estados Unidos <br> UK, Reino Unido."
|
2076 |
|
2077 |
+
#: src/Tribe/Validate.php:487
|
2078 |
msgid "%s must be a phone number."
|
2079 |
msgstr "%s deve ser um número de telefone."
|
2080 |
|
2081 |
+
#: src/Tribe/Validate.php:473
|
2082 |
msgid "%s must consist of 5 numbers."
|
2083 |
msgstr "%s deve ser constituído por 5 números."
|
2084 |
|
2085 |
+
#: src/Tribe/Validate.php:459
|
2086 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2087 |
msgstr "%s deve ser constituído por letras, espaços, apóstrofos e traços."
|
2088 |
|
2089 |
+
#: src/Tribe/Validate.php:443
|
2090 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2091 |
msgstr "%s deve ser constituído apenas por letras, número, traços, apóstrofos e espaços."
|
2092 |
|
2093 |
+
#: src/Tribe/Validate.php:427
|
2094 |
msgid "%s must be a number between 0 and 21."
|
2095 |
msgstr "%s deve ser um número entre 0 e 21."
|
2096 |
|
2097 |
+
#: src/Tribe/Validate.php:373
|
2098 |
msgid "%s must be a number or percentage."
|
2099 |
msgstr "%s deve ser um número ou percentagem."
|
2100 |
|
2101 |
+
#: src/Tribe/Validate.php:357
|
2102 |
msgid "%s cannot be a duplicate"
|
2103 |
msgstr "%s não pode ser um duplicado"
|
2104 |
|
2105 |
+
#: src/Tribe/Validate.php:355
|
2106 |
msgid "%s cannot be the same as %s."
|
2107 |
msgstr "%s não pode ser o mesmo que %s."
|
2108 |
|
2109 |
+
#: src/Tribe/Validate.php:348
|
2110 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2111 |
msgstr "A validação da comparação falhou porque não foi fornecido nenhum valor de comparação para o campo %s"
|
2112 |
|
2113 |
+
#: src/Tribe/Validate.php:295 src/Tribe/Validate.php:312
|
2114 |
+
#: src/Tribe/Validate.php:334
|
2115 |
msgid "%s must have a value that's part of its options."
|
2116 |
msgstr "%s deve ser um valor presente nas suas opções."
|
2117 |
|
2118 |
+
#: src/Tribe/Validate.php:279
|
2119 |
msgid "%s must be a valid absolute URL."
|
2120 |
msgstr "%s deve ser um URL válido e absoluto."
|
2121 |
|
2122 |
+
#: src/Tribe/Validate.php:264
|
2123 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2124 |
msgstr "%s deve ser uma slug válida (números, letras, traços e underscores)."
|
2125 |
|
common/lang/tribe-common-ro_RO.po
CHANGED
@@ -75,15 +75,15 @@ msgstr ""
|
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
@@ -2073,56 +2073,56 @@ msgstr "Afghanistan"
|
|
2073 |
msgid "Select a Country:"
|
2074 |
msgstr "Selectaţi Ţara:"
|
2075 |
|
2076 |
-
#: src/Tribe/Validate.php:
|
2077 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2078 |
msgstr "Lista ţărilor trebuie formatată sub forma unei singure ţări pe linie, cu următorul format:<br>RO, România <br> UK, United Kingdom."
|
2079 |
|
2080 |
-
#: src/Tribe/Validate.php:
|
2081 |
msgid "%s must be a phone number."
|
2082 |
msgstr "%s trebuie să fie un număr de telefon."
|
2083 |
|
2084 |
-
#: src/Tribe/Validate.php:
|
2085 |
msgid "%s must consist of 5 numbers."
|
2086 |
msgstr "%s trebuie să conţină 5 numere."
|
2087 |
|
2088 |
-
#: src/Tribe/Validate.php:
|
2089 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2090 |
msgstr "%s trebuie să conţină doar litere, spaţii,semne de apostrof şi liniuţe."
|
2091 |
|
2092 |
-
#: src/Tribe/Validate.php:
|
2093 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2094 |
msgstr "%s trebuie să conţină doar litere, numere, liniuţe, semne de apostrof şi spaţii."
|
2095 |
|
2096 |
-
#: src/Tribe/Validate.php:
|
2097 |
msgid "%s must be a number between 0 and 21."
|
2098 |
msgstr "%s trebuie să fie un număr între 0 şi 21."
|
2099 |
|
2100 |
-
#: src/Tribe/Validate.php:
|
2101 |
msgid "%s must be a number or percentage."
|
2102 |
msgstr "%s trebuie să fie un număr sau un procent."
|
2103 |
|
2104 |
-
#: src/Tribe/Validate.php:
|
2105 |
msgid "%s cannot be a duplicate"
|
2106 |
msgstr "%s nu poate fi un duplicat"
|
2107 |
|
2108 |
-
#: src/Tribe/Validate.php:
|
2109 |
msgid "%s cannot be the same as %s."
|
2110 |
msgstr "%s nu poate fi la fel ca %s."
|
2111 |
|
2112 |
-
#: src/Tribe/Validate.php:
|
2113 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2114 |
msgstr "Validarea comparărilor a eşuat pentru că nu a fost alocată nici-o valoare de comparat, pentru câmpul %s"
|
2115 |
|
2116 |
-
#: src/Tribe/Validate.php:
|
2117 |
-
#: src/Tribe/Validate.php:
|
2118 |
msgid "%s must have a value that's part of its options."
|
2119 |
msgstr "%s trebuie să aibă o valoare, parte din propriile-i opţiuni."
|
2120 |
|
2121 |
-
#: src/Tribe/Validate.php:
|
2122 |
msgid "%s must be a valid absolute URL."
|
2123 |
msgstr "%s trebuie să fie o adresă URL absolută."
|
2124 |
|
2125 |
-
#: src/Tribe/Validate.php:
|
2126 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2127 |
msgstr "%s trebuie să fie un slug valid (numere, litere,liniuţe şi linii de subliniere)"
|
2128 |
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
+
#: src/Tribe/Ajax/Dropdown.php:243
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
+
#: src/Tribe/Ajax/Dropdown.php:193
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
+
#: src/Tribe/Ajax/Dropdown.php:180
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
2073 |
msgid "Select a Country:"
|
2074 |
msgstr "Selectaţi Ţara:"
|
2075 |
|
2076 |
+
#: src/Tribe/Validate.php:503
|
2077 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2078 |
msgstr "Lista ţărilor trebuie formatată sub forma unei singure ţări pe linie, cu următorul format:<br>RO, România <br> UK, United Kingdom."
|
2079 |
|
2080 |
+
#: src/Tribe/Validate.php:487
|
2081 |
msgid "%s must be a phone number."
|
2082 |
msgstr "%s trebuie să fie un număr de telefon."
|
2083 |
|
2084 |
+
#: src/Tribe/Validate.php:473
|
2085 |
msgid "%s must consist of 5 numbers."
|
2086 |
msgstr "%s trebuie să conţină 5 numere."
|
2087 |
|
2088 |
+
#: src/Tribe/Validate.php:459
|
2089 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2090 |
msgstr "%s trebuie să conţină doar litere, spaţii,semne de apostrof şi liniuţe."
|
2091 |
|
2092 |
+
#: src/Tribe/Validate.php:443
|
2093 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2094 |
msgstr "%s trebuie să conţină doar litere, numere, liniuţe, semne de apostrof şi spaţii."
|
2095 |
|
2096 |
+
#: src/Tribe/Validate.php:427
|
2097 |
msgid "%s must be a number between 0 and 21."
|
2098 |
msgstr "%s trebuie să fie un număr între 0 şi 21."
|
2099 |
|
2100 |
+
#: src/Tribe/Validate.php:373
|
2101 |
msgid "%s must be a number or percentage."
|
2102 |
msgstr "%s trebuie să fie un număr sau un procent."
|
2103 |
|
2104 |
+
#: src/Tribe/Validate.php:357
|
2105 |
msgid "%s cannot be a duplicate"
|
2106 |
msgstr "%s nu poate fi un duplicat"
|
2107 |
|
2108 |
+
#: src/Tribe/Validate.php:355
|
2109 |
msgid "%s cannot be the same as %s."
|
2110 |
msgstr "%s nu poate fi la fel ca %s."
|
2111 |
|
2112 |
+
#: src/Tribe/Validate.php:348
|
2113 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2114 |
msgstr "Validarea comparărilor a eşuat pentru că nu a fost alocată nici-o valoare de comparat, pentru câmpul %s"
|
2115 |
|
2116 |
+
#: src/Tribe/Validate.php:295 src/Tribe/Validate.php:312
|
2117 |
+
#: src/Tribe/Validate.php:334
|
2118 |
msgid "%s must have a value that's part of its options."
|
2119 |
msgstr "%s trebuie să aibă o valoare, parte din propriile-i opţiuni."
|
2120 |
|
2121 |
+
#: src/Tribe/Validate.php:279
|
2122 |
msgid "%s must be a valid absolute URL."
|
2123 |
msgstr "%s trebuie să fie o adresă URL absolută."
|
2124 |
|
2125 |
+
#: src/Tribe/Validate.php:264
|
2126 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2127 |
msgstr "%s trebuie să fie un slug valid (numere, litere,liniuţe şi linii de subliniere)"
|
2128 |
|
common/lang/tribe-common-ru_RU.po
CHANGED
@@ -75,15 +75,15 @@ msgstr ""
|
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
@@ -2073,56 +2073,56 @@ msgstr "Афганистан"
|
|
2073 |
msgid "Select a Country:"
|
2074 |
msgstr "Выберите страну:"
|
2075 |
|
2076 |
-
#: src/Tribe/Validate.php:
|
2077 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2078 |
msgstr "Список стран должен быть форматирован следующим образом: одна страна в строке в формате <br>США, Соединенные штаты Америки <br>ВБ, Великобритания."
|
2079 |
|
2080 |
-
#: src/Tribe/Validate.php:
|
2081 |
msgid "%s must be a phone number."
|
2082 |
msgstr "%s должен быть номером телефона."
|
2083 |
|
2084 |
-
#: src/Tribe/Validate.php:
|
2085 |
msgid "%s must consist of 5 numbers."
|
2086 |
msgstr "%s должен содержать 5 цифр."
|
2087 |
|
2088 |
-
#: src/Tribe/Validate.php:
|
2089 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2090 |
msgstr "%s должен содержать буквы, пробелы, апострофы и тире."
|
2091 |
|
2092 |
-
#: src/Tribe/Validate.php:
|
2093 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2094 |
msgstr "%s должен содержать только буквы, цифры, тире, апострофы и пробелы."
|
2095 |
|
2096 |
-
#: src/Tribe/Validate.php:
|
2097 |
msgid "%s must be a number between 0 and 21."
|
2098 |
msgstr "%s должен быть числом от 0 до 21."
|
2099 |
|
2100 |
-
#: src/Tribe/Validate.php:
|
2101 |
msgid "%s must be a number or percentage."
|
2102 |
msgstr "%s должен быть числом или процентом."
|
2103 |
|
2104 |
-
#: src/Tribe/Validate.php:
|
2105 |
msgid "%s cannot be a duplicate"
|
2106 |
msgstr "%s не может быть копией"
|
2107 |
|
2108 |
-
#: src/Tribe/Validate.php:
|
2109 |
msgid "%s cannot be the same as %s."
|
2110 |
msgstr "%s не может совпадать с %s."
|
2111 |
|
2112 |
-
#: src/Tribe/Validate.php:
|
2113 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2114 |
msgstr "Cравнение не произошло, поскольку для поля %s не было предоставлено никакое значение"
|
2115 |
|
2116 |
-
#: src/Tribe/Validate.php:
|
2117 |
-
#: src/Tribe/Validate.php:
|
2118 |
msgid "%s must have a value that's part of its options."
|
2119 |
msgstr "%s должен иметь значение, которое является частью его параметров."
|
2120 |
|
2121 |
-
#: src/Tribe/Validate.php:
|
2122 |
msgid "%s must be a valid absolute URL."
|
2123 |
msgstr "%s должен быть допустимой абсолютной ссылкой."
|
2124 |
|
2125 |
-
#: src/Tribe/Validate.php:
|
2126 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2127 |
msgstr "%s должен быть допустимым адресом (цифры, буквы, тире и подчеркивания)"
|
2128 |
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
+
#: src/Tribe/Ajax/Dropdown.php:243
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
+
#: src/Tribe/Ajax/Dropdown.php:193
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
+
#: src/Tribe/Ajax/Dropdown.php:180
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
2073 |
msgid "Select a Country:"
|
2074 |
msgstr "Выберите страну:"
|
2075 |
|
2076 |
+
#: src/Tribe/Validate.php:503
|
2077 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2078 |
msgstr "Список стран должен быть форматирован следующим образом: одна страна в строке в формате <br>США, Соединенные штаты Америки <br>ВБ, Великобритания."
|
2079 |
|
2080 |
+
#: src/Tribe/Validate.php:487
|
2081 |
msgid "%s must be a phone number."
|
2082 |
msgstr "%s должен быть номером телефона."
|
2083 |
|
2084 |
+
#: src/Tribe/Validate.php:473
|
2085 |
msgid "%s must consist of 5 numbers."
|
2086 |
msgstr "%s должен содержать 5 цифр."
|
2087 |
|
2088 |
+
#: src/Tribe/Validate.php:459
|
2089 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2090 |
msgstr "%s должен содержать буквы, пробелы, апострофы и тире."
|
2091 |
|
2092 |
+
#: src/Tribe/Validate.php:443
|
2093 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2094 |
msgstr "%s должен содержать только буквы, цифры, тире, апострофы и пробелы."
|
2095 |
|
2096 |
+
#: src/Tribe/Validate.php:427
|
2097 |
msgid "%s must be a number between 0 and 21."
|
2098 |
msgstr "%s должен быть числом от 0 до 21."
|
2099 |
|
2100 |
+
#: src/Tribe/Validate.php:373
|
2101 |
msgid "%s must be a number or percentage."
|
2102 |
msgstr "%s должен быть числом или процентом."
|
2103 |
|
2104 |
+
#: src/Tribe/Validate.php:357
|
2105 |
msgid "%s cannot be a duplicate"
|
2106 |
msgstr "%s не может быть копией"
|
2107 |
|
2108 |
+
#: src/Tribe/Validate.php:355
|
2109 |
msgid "%s cannot be the same as %s."
|
2110 |
msgstr "%s не может совпадать с %s."
|
2111 |
|
2112 |
+
#: src/Tribe/Validate.php:348
|
2113 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2114 |
msgstr "Cравнение не произошло, поскольку для поля %s не было предоставлено никакое значение"
|
2115 |
|
2116 |
+
#: src/Tribe/Validate.php:295 src/Tribe/Validate.php:312
|
2117 |
+
#: src/Tribe/Validate.php:334
|
2118 |
msgid "%s must have a value that's part of its options."
|
2119 |
msgstr "%s должен иметь значение, которое является частью его параметров."
|
2120 |
|
2121 |
+
#: src/Tribe/Validate.php:279
|
2122 |
msgid "%s must be a valid absolute URL."
|
2123 |
msgstr "%s должен быть допустимой абсолютной ссылкой."
|
2124 |
|
2125 |
+
#: src/Tribe/Validate.php:264
|
2126 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2127 |
msgstr "%s должен быть допустимым адресом (цифры, буквы, тире и подчеркивания)"
|
2128 |
|
common/lang/tribe-common-sk_SK.po
CHANGED
@@ -75,15 +75,15 @@ msgstr ""
|
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
@@ -2073,56 +2073,56 @@ msgstr "Afganistan"
|
|
2073 |
msgid "Select a Country:"
|
2074 |
msgstr "Vybrať krajinu:"
|
2075 |
|
2076 |
-
#: src/Tribe/Validate.php:
|
2077 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2078 |
msgstr "Zoznam krajín musí byť formátovaný ako jedna krajina na riadok vo formáte: <br>US, Spojené štáty americke <br> UK, Spojené kráľovstvo."
|
2079 |
|
2080 |
-
#: src/Tribe/Validate.php:
|
2081 |
msgid "%s must be a phone number."
|
2082 |
msgstr "%s musí byť telefónne číslo."
|
2083 |
|
2084 |
-
#: src/Tribe/Validate.php:
|
2085 |
msgid "%s must consist of 5 numbers."
|
2086 |
msgstr "%s musí obsahovať 5 číslic."
|
2087 |
|
2088 |
-
#: src/Tribe/Validate.php:
|
2089 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2090 |
msgstr "%s musí obsahovať len písmená, medzery, apostrofy a pomĺčky."
|
2091 |
|
2092 |
-
#: src/Tribe/Validate.php:
|
2093 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2094 |
msgstr "%s musí obsahovať len písmená, číslice, pomĺčky, apostrofy a medzery."
|
2095 |
|
2096 |
-
#: src/Tribe/Validate.php:
|
2097 |
msgid "%s must be a number between 0 and 21."
|
2098 |
msgstr "%s musí byť číslo medzi 0 a 21."
|
2099 |
|
2100 |
-
#: src/Tribe/Validate.php:
|
2101 |
msgid "%s must be a number or percentage."
|
2102 |
msgstr "%s musí byť číslo alebo percento."
|
2103 |
|
2104 |
-
#: src/Tribe/Validate.php:
|
2105 |
msgid "%s cannot be a duplicate"
|
2106 |
msgstr "%s nemôže byť duplicitné"
|
2107 |
|
2108 |
-
#: src/Tribe/Validate.php:
|
2109 |
msgid "%s cannot be the same as %s."
|
2110 |
msgstr "%s nemôže byť také isté ako %s"
|
2111 |
|
2112 |
-
#: src/Tribe/Validate.php:
|
2113 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2114 |
msgstr "Validácia zlyhala, pretože nebola vložená žiadna porovnávaná hodnota do poľa %s"
|
2115 |
|
2116 |
-
#: src/Tribe/Validate.php:
|
2117 |
-
#: src/Tribe/Validate.php:
|
2118 |
msgid "%s must have a value that's part of its options."
|
2119 |
msgstr "%s musí mať hodnotu, ktorá je súčasťou výberu."
|
2120 |
|
2121 |
-
#: src/Tribe/Validate.php:
|
2122 |
msgid "%s must be a valid absolute URL."
|
2123 |
msgstr "%s musí byť platná absolútna adresa URL."
|
2124 |
|
2125 |
-
#: src/Tribe/Validate.php:
|
2126 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2127 |
msgstr "%s musí byť platnou URL značkou (číslice, písmená, pomĺčky a podčiarkovníky)."
|
2128 |
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
+
#: src/Tribe/Ajax/Dropdown.php:243
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
+
#: src/Tribe/Ajax/Dropdown.php:193
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
+
#: src/Tribe/Ajax/Dropdown.php:180
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
2073 |
msgid "Select a Country:"
|
2074 |
msgstr "Vybrať krajinu:"
|
2075 |
|
2076 |
+
#: src/Tribe/Validate.php:503
|
2077 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2078 |
msgstr "Zoznam krajín musí byť formátovaný ako jedna krajina na riadok vo formáte: <br>US, Spojené štáty americke <br> UK, Spojené kráľovstvo."
|
2079 |
|
2080 |
+
#: src/Tribe/Validate.php:487
|
2081 |
msgid "%s must be a phone number."
|
2082 |
msgstr "%s musí byť telefónne číslo."
|
2083 |
|
2084 |
+
#: src/Tribe/Validate.php:473
|
2085 |
msgid "%s must consist of 5 numbers."
|
2086 |
msgstr "%s musí obsahovať 5 číslic."
|
2087 |
|
2088 |
+
#: src/Tribe/Validate.php:459
|
2089 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2090 |
msgstr "%s musí obsahovať len písmená, medzery, apostrofy a pomĺčky."
|
2091 |
|
2092 |
+
#: src/Tribe/Validate.php:443
|
2093 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2094 |
msgstr "%s musí obsahovať len písmená, číslice, pomĺčky, apostrofy a medzery."
|
2095 |
|
2096 |
+
#: src/Tribe/Validate.php:427
|
2097 |
msgid "%s must be a number between 0 and 21."
|
2098 |
msgstr "%s musí byť číslo medzi 0 a 21."
|
2099 |
|
2100 |
+
#: src/Tribe/Validate.php:373
|
2101 |
msgid "%s must be a number or percentage."
|
2102 |
msgstr "%s musí byť číslo alebo percento."
|
2103 |
|
2104 |
+
#: src/Tribe/Validate.php:357
|
2105 |
msgid "%s cannot be a duplicate"
|
2106 |
msgstr "%s nemôže byť duplicitné"
|
2107 |
|
2108 |
+
#: src/Tribe/Validate.php:355
|
2109 |
msgid "%s cannot be the same as %s."
|
2110 |
msgstr "%s nemôže byť také isté ako %s"
|
2111 |
|
2112 |
+
#: src/Tribe/Validate.php:348
|
2113 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2114 |
msgstr "Validácia zlyhala, pretože nebola vložená žiadna porovnávaná hodnota do poľa %s"
|
2115 |
|
2116 |
+
#: src/Tribe/Validate.php:295 src/Tribe/Validate.php:312
|
2117 |
+
#: src/Tribe/Validate.php:334
|
2118 |
msgid "%s must have a value that's part of its options."
|
2119 |
msgstr "%s musí mať hodnotu, ktorá je súčasťou výberu."
|
2120 |
|
2121 |
+
#: src/Tribe/Validate.php:279
|
2122 |
msgid "%s must be a valid absolute URL."
|
2123 |
msgstr "%s musí byť platná absolútna adresa URL."
|
2124 |
|
2125 |
+
#: src/Tribe/Validate.php:264
|
2126 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2127 |
msgstr "%s musí byť platnou URL značkou (číslice, písmená, pomĺčky a podčiarkovníky)."
|
2128 |
|
common/lang/tribe-common-sl_SI.po
CHANGED
@@ -75,15 +75,15 @@ msgstr ""
|
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
@@ -2076,56 +2076,56 @@ msgstr "Afganistan"
|
|
2076 |
msgid "Select a Country:"
|
2077 |
msgstr "Izberite državo:"
|
2078 |
|
2079 |
-
#: src/Tribe/Validate.php:
|
2080 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2081 |
msgstr "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2082 |
|
2083 |
-
#: src/Tribe/Validate.php:
|
2084 |
msgid "%s must be a phone number."
|
2085 |
msgstr "%s mora biti telefonska številka."
|
2086 |
|
2087 |
-
#: src/Tribe/Validate.php:
|
2088 |
msgid "%s must consist of 5 numbers."
|
2089 |
msgstr "%s mora biti sestavljeno iz 5 številk."
|
2090 |
|
2091 |
-
#: src/Tribe/Validate.php:
|
2092 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2093 |
msgstr "%s mora biti sestavljeno iz črk, presledkov, apostrofov in vezajev. "
|
2094 |
|
2095 |
-
#: src/Tribe/Validate.php:
|
2096 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2097 |
msgstr "%s lahko vseguje zgolj črke, številke, vezaje, apostrofe in presledke. "
|
2098 |
|
2099 |
-
#: src/Tribe/Validate.php:
|
2100 |
msgid "%s must be a number between 0 and 21."
|
2101 |
msgstr "%s mora biti število med 0 in 21."
|
2102 |
|
2103 |
-
#: src/Tribe/Validate.php:
|
2104 |
msgid "%s must be a number or percentage."
|
2105 |
msgstr "%s mora biti število ali procent."
|
2106 |
|
2107 |
-
#: src/Tribe/Validate.php:
|
2108 |
msgid "%s cannot be a duplicate"
|
2109 |
msgstr "%s ne more biti duplikat"
|
2110 |
|
2111 |
-
#: src/Tribe/Validate.php:
|
2112 |
msgid "%s cannot be the same as %s."
|
2113 |
msgstr "%s ne more biti enak kot %s. "
|
2114 |
|
2115 |
-
#: src/Tribe/Validate.php:
|
2116 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2117 |
msgstr "Primerjalno preverjanje ni uspelo, ker ni bilo podanih vrednosti za primerjavo, za polje %s"
|
2118 |
|
2119 |
-
#: src/Tribe/Validate.php:
|
2120 |
-
#: src/Tribe/Validate.php:
|
2121 |
msgid "%s must have a value that's part of its options."
|
2122 |
msgstr "%s mora imeti vrednost, ki je del možnosti."
|
2123 |
|
2124 |
-
#: src/Tribe/Validate.php:
|
2125 |
msgid "%s must be a valid absolute URL."
|
2126 |
msgstr "%s mora biti veljaven absolutni URL"
|
2127 |
|
2128 |
-
#: src/Tribe/Validate.php:
|
2129 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2130 |
msgstr "%s mora biti veljavni ključ (številke, črke, vezaji in podčrtaji)."
|
2131 |
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
+
#: src/Tribe/Ajax/Dropdown.php:243
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
+
#: src/Tribe/Ajax/Dropdown.php:193
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
+
#: src/Tribe/Ajax/Dropdown.php:180
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
2076 |
msgid "Select a Country:"
|
2077 |
msgstr "Izberite državo:"
|
2078 |
|
2079 |
+
#: src/Tribe/Validate.php:503
|
2080 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2081 |
msgstr "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2082 |
|
2083 |
+
#: src/Tribe/Validate.php:487
|
2084 |
msgid "%s must be a phone number."
|
2085 |
msgstr "%s mora biti telefonska številka."
|
2086 |
|
2087 |
+
#: src/Tribe/Validate.php:473
|
2088 |
msgid "%s must consist of 5 numbers."
|
2089 |
msgstr "%s mora biti sestavljeno iz 5 številk."
|
2090 |
|
2091 |
+
#: src/Tribe/Validate.php:459
|
2092 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2093 |
msgstr "%s mora biti sestavljeno iz črk, presledkov, apostrofov in vezajev. "
|
2094 |
|
2095 |
+
#: src/Tribe/Validate.php:443
|
2096 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2097 |
msgstr "%s lahko vseguje zgolj črke, številke, vezaje, apostrofe in presledke. "
|
2098 |
|
2099 |
+
#: src/Tribe/Validate.php:427
|
2100 |
msgid "%s must be a number between 0 and 21."
|
2101 |
msgstr "%s mora biti število med 0 in 21."
|
2102 |
|
2103 |
+
#: src/Tribe/Validate.php:373
|
2104 |
msgid "%s must be a number or percentage."
|
2105 |
msgstr "%s mora biti število ali procent."
|
2106 |
|
2107 |
+
#: src/Tribe/Validate.php:357
|
2108 |
msgid "%s cannot be a duplicate"
|
2109 |
msgstr "%s ne more biti duplikat"
|
2110 |
|
2111 |
+
#: src/Tribe/Validate.php:355
|
2112 |
msgid "%s cannot be the same as %s."
|
2113 |
msgstr "%s ne more biti enak kot %s. "
|
2114 |
|
2115 |
+
#: src/Tribe/Validate.php:348
|
2116 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2117 |
msgstr "Primerjalno preverjanje ni uspelo, ker ni bilo podanih vrednosti za primerjavo, za polje %s"
|
2118 |
|
2119 |
+
#: src/Tribe/Validate.php:295 src/Tribe/Validate.php:312
|
2120 |
+
#: src/Tribe/Validate.php:334
|
2121 |
msgid "%s must have a value that's part of its options."
|
2122 |
msgstr "%s mora imeti vrednost, ki je del možnosti."
|
2123 |
|
2124 |
+
#: src/Tribe/Validate.php:279
|
2125 |
msgid "%s must be a valid absolute URL."
|
2126 |
msgstr "%s mora biti veljaven absolutni URL"
|
2127 |
|
2128 |
+
#: src/Tribe/Validate.php:264
|
2129 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2130 |
msgstr "%s mora biti veljavni ključ (številke, črke, vezaji in podčrtaji)."
|
2131 |
|
common/lang/tribe-common-sr_RS.po
CHANGED
@@ -75,15 +75,15 @@ msgstr ""
|
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
@@ -2073,56 +2073,56 @@ msgstr "Afganistan"
|
|
2073 |
msgid "Select a Country:"
|
2074 |
msgstr "Odaberite zemlju:"
|
2075 |
|
2076 |
-
#: src/Tribe/Validate.php:
|
2077 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2078 |
msgstr "Popis zemalja mora biti formatiran kao jedna zemlja po redu u sljedećem formatu: <br>SAD, Sjedinjene Američke Države <br> UK, Ujedinjeno Kraljevstvo."
|
2079 |
|
2080 |
-
#: src/Tribe/Validate.php:
|
2081 |
msgid "%s must be a phone number."
|
2082 |
msgstr "%s mora biti telefonski broj."
|
2083 |
|
2084 |
-
#: src/Tribe/Validate.php:
|
2085 |
msgid "%s must consist of 5 numbers."
|
2086 |
msgstr "%s mora da se sastoji od 5 brojeva."
|
2087 |
|
2088 |
-
#: src/Tribe/Validate.php:
|
2089 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2090 |
msgstr "%s mora da se sastoji samo od slova, razmaka, apostrofa i crtica."
|
2091 |
|
2092 |
-
#: src/Tribe/Validate.php:
|
2093 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2094 |
msgstr "%s mora da se sastoji samo od slova, brojeva, crtica, apostrofa i razmaka."
|
2095 |
|
2096 |
-
#: src/Tribe/Validate.php:
|
2097 |
msgid "%s must be a number between 0 and 21."
|
2098 |
msgstr "%s mora biti broj između 0 i 21."
|
2099 |
|
2100 |
-
#: src/Tribe/Validate.php:
|
2101 |
msgid "%s must be a number or percentage."
|
2102 |
msgstr "%s mora biti broj ili procenat."
|
2103 |
|
2104 |
-
#: src/Tribe/Validate.php:
|
2105 |
msgid "%s cannot be a duplicate"
|
2106 |
msgstr "%s ne može biti duplikat"
|
2107 |
|
2108 |
-
#: src/Tribe/Validate.php:
|
2109 |
msgid "%s cannot be the same as %s."
|
2110 |
msgstr "%s ne može biti isto kao %s."
|
2111 |
|
2112 |
-
#: src/Tribe/Validate.php:
|
2113 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2114 |
msgstr "Validacija poređenja nije uspela jer podaci za poređenje nisu dati za polje %s"
|
2115 |
|
2116 |
-
#: src/Tribe/Validate.php:
|
2117 |
-
#: src/Tribe/Validate.php:
|
2118 |
msgid "%s must have a value that's part of its options."
|
2119 |
msgstr "%s mora imati vrijednost koja je dio opcije"
|
2120 |
|
2121 |
-
#: src/Tribe/Validate.php:
|
2122 |
msgid "%s must be a valid absolute URL."
|
2123 |
msgstr "%s mora biti validan apsolutni URL"
|
2124 |
|
2125 |
-
#: src/Tribe/Validate.php:
|
2126 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2127 |
msgstr "%s mora biti validan naziv (brojevi, slova, donje crte)"
|
2128 |
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
+
#: src/Tribe/Ajax/Dropdown.php:243
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
+
#: src/Tribe/Ajax/Dropdown.php:193
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
+
#: src/Tribe/Ajax/Dropdown.php:180
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
2073 |
msgid "Select a Country:"
|
2074 |
msgstr "Odaberite zemlju:"
|
2075 |
|
2076 |
+
#: src/Tribe/Validate.php:503
|
2077 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2078 |
msgstr "Popis zemalja mora biti formatiran kao jedna zemlja po redu u sljedećem formatu: <br>SAD, Sjedinjene Američke Države <br> UK, Ujedinjeno Kraljevstvo."
|
2079 |
|
2080 |
+
#: src/Tribe/Validate.php:487
|
2081 |
msgid "%s must be a phone number."
|
2082 |
msgstr "%s mora biti telefonski broj."
|
2083 |
|
2084 |
+
#: src/Tribe/Validate.php:473
|
2085 |
msgid "%s must consist of 5 numbers."
|
2086 |
msgstr "%s mora da se sastoji od 5 brojeva."
|
2087 |
|
2088 |
+
#: src/Tribe/Validate.php:459
|
2089 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2090 |
msgstr "%s mora da se sastoji samo od slova, razmaka, apostrofa i crtica."
|
2091 |
|
2092 |
+
#: src/Tribe/Validate.php:443
|
2093 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2094 |
msgstr "%s mora da se sastoji samo od slova, brojeva, crtica, apostrofa i razmaka."
|
2095 |
|
2096 |
+
#: src/Tribe/Validate.php:427
|
2097 |
msgid "%s must be a number between 0 and 21."
|
2098 |
msgstr "%s mora biti broj između 0 i 21."
|
2099 |
|
2100 |
+
#: src/Tribe/Validate.php:373
|
2101 |
msgid "%s must be a number or percentage."
|
2102 |
msgstr "%s mora biti broj ili procenat."
|
2103 |
|
2104 |
+
#: src/Tribe/Validate.php:357
|
2105 |
msgid "%s cannot be a duplicate"
|
2106 |
msgstr "%s ne može biti duplikat"
|
2107 |
|
2108 |
+
#: src/Tribe/Validate.php:355
|
2109 |
msgid "%s cannot be the same as %s."
|
2110 |
msgstr "%s ne može biti isto kao %s."
|
2111 |
|
2112 |
+
#: src/Tribe/Validate.php:348
|
2113 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2114 |
msgstr "Validacija poređenja nije uspela jer podaci za poređenje nisu dati za polje %s"
|
2115 |
|
2116 |
+
#: src/Tribe/Validate.php:295 src/Tribe/Validate.php:312
|
2117 |
+
#: src/Tribe/Validate.php:334
|
2118 |
msgid "%s must have a value that's part of its options."
|
2119 |
msgstr "%s mora imati vrijednost koja je dio opcije"
|
2120 |
|
2121 |
+
#: src/Tribe/Validate.php:279
|
2122 |
msgid "%s must be a valid absolute URL."
|
2123 |
msgstr "%s mora biti validan apsolutni URL"
|
2124 |
|
2125 |
+
#: src/Tribe/Validate.php:264
|
2126 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2127 |
msgstr "%s mora biti validan naziv (brojevi, slova, donje crte)"
|
2128 |
|
common/lang/tribe-common-sv_SE.po
CHANGED
@@ -75,15 +75,15 @@ msgstr ""
|
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
@@ -2070,56 +2070,56 @@ msgstr "Afghanistan"
|
|
2070 |
msgid "Select a Country:"
|
2071 |
msgstr "Välj ett land:"
|
2072 |
|
2073 |
-
#: src/Tribe/Validate.php:
|
2074 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2075 |
msgstr "Landslistan måste vara formaterad med ett land per rad på följande format: <br>SE, Sverige <br> US, United States <br> UK, United Kingdom."
|
2076 |
|
2077 |
-
#: src/Tribe/Validate.php:
|
2078 |
msgid "%s must be a phone number."
|
2079 |
msgstr "%s måste vara ett telefonnummer."
|
2080 |
|
2081 |
-
#: src/Tribe/Validate.php:
|
2082 |
msgid "%s must consist of 5 numbers."
|
2083 |
msgstr "%s måste bestå av 5 tal."
|
2084 |
|
2085 |
-
#: src/Tribe/Validate.php:
|
2086 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2087 |
msgstr "%s måste bestå av bokstäver, mellanslag, apostrofer och bindestreck."
|
2088 |
|
2089 |
-
#: src/Tribe/Validate.php:
|
2090 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2091 |
msgstr "%s får endast bestå av bokstäver, siffor, bindestreck, apostrofer och mellanslag."
|
2092 |
|
2093 |
-
#: src/Tribe/Validate.php:
|
2094 |
msgid "%s must be a number between 0 and 21."
|
2095 |
msgstr "%s måste vara ett tal mellan 0 och 21."
|
2096 |
|
2097 |
-
#: src/Tribe/Validate.php:
|
2098 |
msgid "%s must be a number or percentage."
|
2099 |
msgstr "%s måste vara ett tal eller en procentsats."
|
2100 |
|
2101 |
-
#: src/Tribe/Validate.php:
|
2102 |
msgid "%s cannot be a duplicate"
|
2103 |
msgstr "%s får ej vara en dublett"
|
2104 |
|
2105 |
-
#: src/Tribe/Validate.php:
|
2106 |
msgid "%s cannot be the same as %s."
|
2107 |
msgstr "%s kan ej vara samma som %s."
|
2108 |
|
2109 |
-
#: src/Tribe/Validate.php:
|
2110 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2111 |
msgstr "Jämförelsekontrollen misslyckades eftersom inget jämförelsevärde angavs för fält %s"
|
2112 |
|
2113 |
-
#: src/Tribe/Validate.php:
|
2114 |
-
#: src/Tribe/Validate.php:
|
2115 |
msgid "%s must have a value that's part of its options."
|
2116 |
msgstr "%s måste ha ett giltigt värde."
|
2117 |
|
2118 |
-
#: src/Tribe/Validate.php:
|
2119 |
msgid "%s must be a valid absolute URL."
|
2120 |
msgstr "%s måste vara en giltig absolut URL."
|
2121 |
|
2122 |
-
#: src/Tribe/Validate.php:
|
2123 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2124 |
msgstr "%s måste vara en giltig slug (siffror, bokstäver, bindestreck och understreck)."
|
2125 |
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
+
#: src/Tribe/Ajax/Dropdown.php:243
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
+
#: src/Tribe/Ajax/Dropdown.php:193
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
+
#: src/Tribe/Ajax/Dropdown.php:180
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
2070 |
msgid "Select a Country:"
|
2071 |
msgstr "Välj ett land:"
|
2072 |
|
2073 |
+
#: src/Tribe/Validate.php:503
|
2074 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2075 |
msgstr "Landslistan måste vara formaterad med ett land per rad på följande format: <br>SE, Sverige <br> US, United States <br> UK, United Kingdom."
|
2076 |
|
2077 |
+
#: src/Tribe/Validate.php:487
|
2078 |
msgid "%s must be a phone number."
|
2079 |
msgstr "%s måste vara ett telefonnummer."
|
2080 |
|
2081 |
+
#: src/Tribe/Validate.php:473
|
2082 |
msgid "%s must consist of 5 numbers."
|
2083 |
msgstr "%s måste bestå av 5 tal."
|
2084 |
|
2085 |
+
#: src/Tribe/Validate.php:459
|
2086 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2087 |
msgstr "%s måste bestå av bokstäver, mellanslag, apostrofer och bindestreck."
|
2088 |
|
2089 |
+
#: src/Tribe/Validate.php:443
|
2090 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2091 |
msgstr "%s får endast bestå av bokstäver, siffor, bindestreck, apostrofer och mellanslag."
|
2092 |
|
2093 |
+
#: src/Tribe/Validate.php:427
|
2094 |
msgid "%s must be a number between 0 and 21."
|
2095 |
msgstr "%s måste vara ett tal mellan 0 och 21."
|
2096 |
|
2097 |
+
#: src/Tribe/Validate.php:373
|
2098 |
msgid "%s must be a number or percentage."
|
2099 |
msgstr "%s måste vara ett tal eller en procentsats."
|
2100 |
|
2101 |
+
#: src/Tribe/Validate.php:357
|
2102 |
msgid "%s cannot be a duplicate"
|
2103 |
msgstr "%s får ej vara en dublett"
|
2104 |
|
2105 |
+
#: src/Tribe/Validate.php:355
|
2106 |
msgid "%s cannot be the same as %s."
|
2107 |
msgstr "%s kan ej vara samma som %s."
|
2108 |
|
2109 |
+
#: src/Tribe/Validate.php:348
|
2110 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2111 |
msgstr "Jämförelsekontrollen misslyckades eftersom inget jämförelsevärde angavs för fält %s"
|
2112 |
|
2113 |
+
#: src/Tribe/Validate.php:295 src/Tribe/Validate.php:312
|
2114 |
+
#: src/Tribe/Validate.php:334
|
2115 |
msgid "%s must have a value that's part of its options."
|
2116 |
msgstr "%s måste ha ett giltigt värde."
|
2117 |
|
2118 |
+
#: src/Tribe/Validate.php:279
|
2119 |
msgid "%s must be a valid absolute URL."
|
2120 |
msgstr "%s måste vara en giltig absolut URL."
|
2121 |
|
2122 |
+
#: src/Tribe/Validate.php:264
|
2123 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2124 |
msgstr "%s måste vara en giltig slug (siffror, bokstäver, bindestreck och understreck)."
|
2125 |
|
common/lang/tribe-common-tr_TR.po
CHANGED
@@ -75,15 +75,15 @@ msgstr ""
|
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
@@ -2070,56 +2070,56 @@ msgstr "Afghanistan"
|
|
2070 |
msgid "Select a Country:"
|
2071 |
msgstr "Ülke Seçiniz:"
|
2072 |
|
2073 |
-
#: src/Tribe/Validate.php:
|
2074 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2075 |
msgstr "Ülke listesi her satırda bir ülke olarak şu formatta sunulmalıdır: <br>ABD, Birleşik Devletler <br> İngiltere, Birleşik Krallık."
|
2076 |
|
2077 |
-
#: src/Tribe/Validate.php:
|
2078 |
msgid "%s must be a phone number."
|
2079 |
msgstr "%s bir telefon numarası olmalı."
|
2080 |
|
2081 |
-
#: src/Tribe/Validate.php:
|
2082 |
msgid "%s must consist of 5 numbers."
|
2083 |
msgstr "%s 5 rakamdan oluşmalı."
|
2084 |
|
2085 |
-
#: src/Tribe/Validate.php:
|
2086 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2087 |
msgstr "%s harf, boşluk, kesme işareti ve tire içerebilir."
|
2088 |
|
2089 |
-
#: src/Tribe/Validate.php:
|
2090 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2091 |
msgstr "%s harf, rakam, boşluk, kesme işareti ve tire içerebilir"
|
2092 |
|
2093 |
-
#: src/Tribe/Validate.php:
|
2094 |
msgid "%s must be a number between 0 and 21."
|
2095 |
msgstr "%s 0 ile 21 arasında bir rakam olmalı."
|
2096 |
|
2097 |
-
#: src/Tribe/Validate.php:
|
2098 |
msgid "%s must be a number or percentage."
|
2099 |
msgstr "%s rakam ya da yüzde olmalı."
|
2100 |
|
2101 |
-
#: src/Tribe/Validate.php:
|
2102 |
msgid "%s cannot be a duplicate"
|
2103 |
msgstr "%s çakışamaz"
|
2104 |
|
2105 |
-
#: src/Tribe/Validate.php:
|
2106 |
msgid "%s cannot be the same as %s."
|
2107 |
msgstr "%s ile %s aynı olamaz."
|
2108 |
|
2109 |
-
#: src/Tribe/Validate.php:
|
2110 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2111 |
msgstr "Comparison validation failed because no comparison value was provided, for field %s"
|
2112 |
|
2113 |
-
#: src/Tribe/Validate.php:
|
2114 |
-
#: src/Tribe/Validate.php:
|
2115 |
msgid "%s must have a value that's part of its options."
|
2116 |
msgstr "%s seçeneklerinden bir değere sahip olmalı"
|
2117 |
|
2118 |
-
#: src/Tribe/Validate.php:
|
2119 |
msgid "%s must be a valid absolute URL."
|
2120 |
msgstr "%s kesin bir URL olmalı"
|
2121 |
|
2122 |
-
#: src/Tribe/Validate.php:
|
2123 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2124 |
msgstr "%s düzgün bir isim olmalı (rakam, harf, tire ve alttan çizgi)"
|
2125 |
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
+
#: src/Tribe/Ajax/Dropdown.php:243
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
+
#: src/Tribe/Ajax/Dropdown.php:193
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
+
#: src/Tribe/Ajax/Dropdown.php:180
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
2070 |
msgid "Select a Country:"
|
2071 |
msgstr "Ülke Seçiniz:"
|
2072 |
|
2073 |
+
#: src/Tribe/Validate.php:503
|
2074 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2075 |
msgstr "Ülke listesi her satırda bir ülke olarak şu formatta sunulmalıdır: <br>ABD, Birleşik Devletler <br> İngiltere, Birleşik Krallık."
|
2076 |
|
2077 |
+
#: src/Tribe/Validate.php:487
|
2078 |
msgid "%s must be a phone number."
|
2079 |
msgstr "%s bir telefon numarası olmalı."
|
2080 |
|
2081 |
+
#: src/Tribe/Validate.php:473
|
2082 |
msgid "%s must consist of 5 numbers."
|
2083 |
msgstr "%s 5 rakamdan oluşmalı."
|
2084 |
|
2085 |
+
#: src/Tribe/Validate.php:459
|
2086 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2087 |
msgstr "%s harf, boşluk, kesme işareti ve tire içerebilir."
|
2088 |
|
2089 |
+
#: src/Tribe/Validate.php:443
|
2090 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2091 |
msgstr "%s harf, rakam, boşluk, kesme işareti ve tire içerebilir"
|
2092 |
|
2093 |
+
#: src/Tribe/Validate.php:427
|
2094 |
msgid "%s must be a number between 0 and 21."
|
2095 |
msgstr "%s 0 ile 21 arasında bir rakam olmalı."
|
2096 |
|
2097 |
+
#: src/Tribe/Validate.php:373
|
2098 |
msgid "%s must be a number or percentage."
|
2099 |
msgstr "%s rakam ya da yüzde olmalı."
|
2100 |
|
2101 |
+
#: src/Tribe/Validate.php:357
|
2102 |
msgid "%s cannot be a duplicate"
|
2103 |
msgstr "%s çakışamaz"
|
2104 |
|
2105 |
+
#: src/Tribe/Validate.php:355
|
2106 |
msgid "%s cannot be the same as %s."
|
2107 |
msgstr "%s ile %s aynı olamaz."
|
2108 |
|
2109 |
+
#: src/Tribe/Validate.php:348
|
2110 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2111 |
msgstr "Comparison validation failed because no comparison value was provided, for field %s"
|
2112 |
|
2113 |
+
#: src/Tribe/Validate.php:295 src/Tribe/Validate.php:312
|
2114 |
+
#: src/Tribe/Validate.php:334
|
2115 |
msgid "%s must have a value that's part of its options."
|
2116 |
msgstr "%s seçeneklerinden bir değere sahip olmalı"
|
2117 |
|
2118 |
+
#: src/Tribe/Validate.php:279
|
2119 |
msgid "%s must be a valid absolute URL."
|
2120 |
msgstr "%s kesin bir URL olmalı"
|
2121 |
|
2122 |
+
#: src/Tribe/Validate.php:264
|
2123 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2124 |
msgstr "%s düzgün bir isim olmalı (rakam, harf, tire ve alttan çizgi)"
|
2125 |
|
common/lang/tribe-common-zh_CN.po
CHANGED
@@ -75,15 +75,15 @@ msgstr ""
|
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
@@ -2067,56 +2067,56 @@ msgstr "阿富汗"
|
|
2067 |
msgid "Select a Country:"
|
2068 |
msgstr "请选择国家"
|
2069 |
|
2070 |
-
#: src/Tribe/Validate.php:
|
2071 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2072 |
msgstr "国家列表必须以每行一个国家的格式表列于以下的格式中:<br>US, United States <br> UK, United Kingdom."
|
2073 |
|
2074 |
-
#: src/Tribe/Validate.php:
|
2075 |
msgid "%s must be a phone number."
|
2076 |
msgstr "%s 必须是电话号码数字。"
|
2077 |
|
2078 |
-
#: src/Tribe/Validate.php:
|
2079 |
msgid "%s must consist of 5 numbers."
|
2080 |
msgstr "%s 必须由 5 个数字所组成。"
|
2081 |
|
2082 |
-
#: src/Tribe/Validate.php:
|
2083 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2084 |
msgstr "%s 必须由字元、数字、空格、撇号及点所组成。"
|
2085 |
|
2086 |
-
#: src/Tribe/Validate.php:
|
2087 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2088 |
msgstr "%s 必须只由字元、数字、点、撇号及空格所组成。"
|
2089 |
|
2090 |
-
#: src/Tribe/Validate.php:
|
2091 |
msgid "%s must be a number between 0 and 21."
|
2092 |
msgstr "%s 必须是介于 0 到 21之间的数字。"
|
2093 |
|
2094 |
-
#: src/Tribe/Validate.php:
|
2095 |
msgid "%s must be a number or percentage."
|
2096 |
msgstr "%s 必须是数字或百分比符号。"
|
2097 |
|
2098 |
-
#: src/Tribe/Validate.php:
|
2099 |
msgid "%s cannot be a duplicate"
|
2100 |
msgstr "%s 不能是複製的"
|
2101 |
|
2102 |
-
#: src/Tribe/Validate.php:
|
2103 |
msgid "%s cannot be the same as %s."
|
2104 |
msgstr "%s 不能和 %s 完全一样。"
|
2105 |
|
2106 |
-
#: src/Tribe/Validate.php:
|
2107 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2108 |
msgstr "比较确认失败的原因是由于没有提供比较数值给栏位 %s。"
|
2109 |
|
2110 |
-
#: src/Tribe/Validate.php:
|
2111 |
-
#: src/Tribe/Validate.php:
|
2112 |
msgid "%s must have a value that's part of its options."
|
2113 |
msgstr "%s 必须有一个数值是选项中的一部份。"
|
2114 |
|
2115 |
-
#: src/Tribe/Validate.php:
|
2116 |
msgid "%s must be a valid absolute URL."
|
2117 |
msgstr "%s 必须是有效完整的网址。"
|
2118 |
|
2119 |
-
#: src/Tribe/Validate.php:
|
2120 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2121 |
msgstr "%s 必须是有效的代称 (数字、字元、破折号及底线)。"
|
2122 |
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
+
#: src/Tribe/Ajax/Dropdown.php:243
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
+
#: src/Tribe/Ajax/Dropdown.php:193
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
+
#: src/Tribe/Ajax/Dropdown.php:180
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
2067 |
msgid "Select a Country:"
|
2068 |
msgstr "请选择国家"
|
2069 |
|
2070 |
+
#: src/Tribe/Validate.php:503
|
2071 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2072 |
msgstr "国家列表必须以每行一个国家的格式表列于以下的格式中:<br>US, United States <br> UK, United Kingdom."
|
2073 |
|
2074 |
+
#: src/Tribe/Validate.php:487
|
2075 |
msgid "%s must be a phone number."
|
2076 |
msgstr "%s 必须是电话号码数字。"
|
2077 |
|
2078 |
+
#: src/Tribe/Validate.php:473
|
2079 |
msgid "%s must consist of 5 numbers."
|
2080 |
msgstr "%s 必须由 5 个数字所组成。"
|
2081 |
|
2082 |
+
#: src/Tribe/Validate.php:459
|
2083 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2084 |
msgstr "%s 必须由字元、数字、空格、撇号及点所组成。"
|
2085 |
|
2086 |
+
#: src/Tribe/Validate.php:443
|
2087 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2088 |
msgstr "%s 必须只由字元、数字、点、撇号及空格所组成。"
|
2089 |
|
2090 |
+
#: src/Tribe/Validate.php:427
|
2091 |
msgid "%s must be a number between 0 and 21."
|
2092 |
msgstr "%s 必须是介于 0 到 21之间的数字。"
|
2093 |
|
2094 |
+
#: src/Tribe/Validate.php:373
|
2095 |
msgid "%s must be a number or percentage."
|
2096 |
msgstr "%s 必须是数字或百分比符号。"
|
2097 |
|
2098 |
+
#: src/Tribe/Validate.php:357
|
2099 |
msgid "%s cannot be a duplicate"
|
2100 |
msgstr "%s 不能是複製的"
|
2101 |
|
2102 |
+
#: src/Tribe/Validate.php:355
|
2103 |
msgid "%s cannot be the same as %s."
|
2104 |
msgstr "%s 不能和 %s 完全一样。"
|
2105 |
|
2106 |
+
#: src/Tribe/Validate.php:348
|
2107 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2108 |
msgstr "比较确认失败的原因是由于没有提供比较数值给栏位 %s。"
|
2109 |
|
2110 |
+
#: src/Tribe/Validate.php:295 src/Tribe/Validate.php:312
|
2111 |
+
#: src/Tribe/Validate.php:334
|
2112 |
msgid "%s must have a value that's part of its options."
|
2113 |
msgstr "%s 必须有一个数值是选项中的一部份。"
|
2114 |
|
2115 |
+
#: src/Tribe/Validate.php:279
|
2116 |
msgid "%s must be a valid absolute URL."
|
2117 |
msgstr "%s 必须是有效完整的网址。"
|
2118 |
|
2119 |
+
#: src/Tribe/Validate.php:264
|
2120 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2121 |
msgstr "%s 必须是有效的代称 (数字、字元、破折号及底线)。"
|
2122 |
|
common/lang/tribe-common-zh_TW.po
CHANGED
@@ -75,15 +75,15 @@ msgstr ""
|
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
@@ -2067,56 +2067,56 @@ msgstr "阿富汗"
|
|
2067 |
msgid "Select a Country:"
|
2068 |
msgstr "請選擇國家"
|
2069 |
|
2070 |
-
#: src/Tribe/Validate.php:
|
2071 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2072 |
msgstr "國家列表必須以每行一個國家的格式表列於以下的格式中:<br>US, United States <br> UK, United Kingdom."
|
2073 |
|
2074 |
-
#: src/Tribe/Validate.php:
|
2075 |
msgid "%s must be a phone number."
|
2076 |
msgstr "%s 必須是電話號碼數字。"
|
2077 |
|
2078 |
-
#: src/Tribe/Validate.php:
|
2079 |
msgid "%s must consist of 5 numbers."
|
2080 |
msgstr "%s 必須由 5 個數字所組成。"
|
2081 |
|
2082 |
-
#: src/Tribe/Validate.php:
|
2083 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2084 |
msgstr "%s 必須由字元、數字、空格、撇號及點所組成。"
|
2085 |
|
2086 |
-
#: src/Tribe/Validate.php:
|
2087 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2088 |
msgstr "%s 必須只由字元、數字、點、撇號及空格所組成。"
|
2089 |
|
2090 |
-
#: src/Tribe/Validate.php:
|
2091 |
msgid "%s must be a number between 0 and 21."
|
2092 |
msgstr "%s 必須是介於 0 到 21之間的數字。"
|
2093 |
|
2094 |
-
#: src/Tribe/Validate.php:
|
2095 |
msgid "%s must be a number or percentage."
|
2096 |
msgstr "%s 必須是數字或百分比符號。"
|
2097 |
|
2098 |
-
#: src/Tribe/Validate.php:
|
2099 |
msgid "%s cannot be a duplicate"
|
2100 |
msgstr "%s 不能是複製的"
|
2101 |
|
2102 |
-
#: src/Tribe/Validate.php:
|
2103 |
msgid "%s cannot be the same as %s."
|
2104 |
msgstr "%s 不能和 %s 完全一樣。"
|
2105 |
|
2106 |
-
#: src/Tribe/Validate.php:
|
2107 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2108 |
msgstr "比較確認失敗的原因是由於沒有提供比較數值給欄位 %s。"
|
2109 |
|
2110 |
-
#: src/Tribe/Validate.php:
|
2111 |
-
#: src/Tribe/Validate.php:
|
2112 |
msgid "%s must have a value that's part of its options."
|
2113 |
msgstr "%s 必須有一個數值是選項中的一部份。"
|
2114 |
|
2115 |
-
#: src/Tribe/Validate.php:
|
2116 |
msgid "%s must be a valid absolute URL."
|
2117 |
msgstr "%s 必須是有效完整的網址。"
|
2118 |
|
2119 |
-
#: src/Tribe/Validate.php:
|
2120 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2121 |
msgstr "%s 必須是有效的代稱 (數字、字元、破折號及底線)。"
|
2122 |
|
75 |
msgid "Import events from across the web! Event Aggregator makes it easy to run scheduled or manual imports from Facebook, Meetup, Google Calendar, and iCalendar, along with uploads from CSV and ICS files. You can also import directly from other sites running The Events Calendar thanks to our built-in REST API support."
|
76 |
msgstr ""
|
77 |
|
78 |
+
#: src/Tribe/Ajax/Dropdown.php:243
|
79 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
80 |
msgstr ""
|
81 |
|
82 |
+
#: src/Tribe/Ajax/Dropdown.php:193
|
83 |
msgid "Empty data set for this dropdown"
|
84 |
msgstr ""
|
85 |
|
86 |
+
#: src/Tribe/Ajax/Dropdown.php:180
|
87 |
msgid "Missing data source for this dropdown"
|
88 |
msgstr ""
|
89 |
|
2067 |
msgid "Select a Country:"
|
2068 |
msgstr "請選擇國家"
|
2069 |
|
2070 |
+
#: src/Tribe/Validate.php:503
|
2071 |
msgid "Country List must be formatted as one country per line in the following format: <br>US, United States <br> UK, United Kingdom."
|
2072 |
msgstr "國家列表必須以每行一個國家的格式表列於以下的格式中:<br>US, United States <br> UK, United Kingdom."
|
2073 |
|
2074 |
+
#: src/Tribe/Validate.php:487
|
2075 |
msgid "%s must be a phone number."
|
2076 |
msgstr "%s 必須是電話號碼數字。"
|
2077 |
|
2078 |
+
#: src/Tribe/Validate.php:473
|
2079 |
msgid "%s must consist of 5 numbers."
|
2080 |
msgstr "%s 必須由 5 個數字所組成。"
|
2081 |
|
2082 |
+
#: src/Tribe/Validate.php:459
|
2083 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2084 |
msgstr "%s 必須由字元、數字、空格、撇號及點所組成。"
|
2085 |
|
2086 |
+
#: src/Tribe/Validate.php:443
|
2087 |
msgid "%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2088 |
msgstr "%s 必須只由字元、數字、點、撇號及空格所組成。"
|
2089 |
|
2090 |
+
#: src/Tribe/Validate.php:427
|
2091 |
msgid "%s must be a number between 0 and 21."
|
2092 |
msgstr "%s 必須是介於 0 到 21之間的數字。"
|
2093 |
|
2094 |
+
#: src/Tribe/Validate.php:373
|
2095 |
msgid "%s must be a number or percentage."
|
2096 |
msgstr "%s 必須是數字或百分比符號。"
|
2097 |
|
2098 |
+
#: src/Tribe/Validate.php:357
|
2099 |
msgid "%s cannot be a duplicate"
|
2100 |
msgstr "%s 不能是複製的"
|
2101 |
|
2102 |
+
#: src/Tribe/Validate.php:355
|
2103 |
msgid "%s cannot be the same as %s."
|
2104 |
msgstr "%s 不能和 %s 完全一樣。"
|
2105 |
|
2106 |
+
#: src/Tribe/Validate.php:348
|
2107 |
msgid "Comparison validation failed because no comparison value was provided, for field %s"
|
2108 |
msgstr "比較確認失敗的原因是由於沒有提供比較數值給欄位 %s。"
|
2109 |
|
2110 |
+
#: src/Tribe/Validate.php:295 src/Tribe/Validate.php:312
|
2111 |
+
#: src/Tribe/Validate.php:334
|
2112 |
msgid "%s must have a value that's part of its options."
|
2113 |
msgstr "%s 必須有一個數值是選項中的一部份。"
|
2114 |
|
2115 |
+
#: src/Tribe/Validate.php:279
|
2116 |
msgid "%s must be a valid absolute URL."
|
2117 |
msgstr "%s 必須是有效完整的網址。"
|
2118 |
|
2119 |
+
#: src/Tribe/Validate.php:264
|
2120 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2121 |
msgstr "%s 必須是有效的代稱 (數字、字元、破折號及底線)。"
|
2122 |
|
common/lang/tribe-common.pot
CHANGED
@@ -2,13 +2,13 @@
|
|
2 |
# This file is distributed under the same license as the Tribe Common package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: Tribe Common 4.
|
6 |
"Report-Msgid-Bugs-To: http://m.tri.be/191x\n"
|
7 |
-
"POT-Creation-Date: 2017-11-
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
-
"PO-Revision-Date: 2017-11-
|
12 |
"Last-Translator: \n"
|
13 |
"Language-Team: \n"
|
14 |
|
@@ -179,15 +179,15 @@ msgstr ""
|
|
179 |
msgid "Cannot look for Terms without a taxonomy"
|
180 |
msgstr ""
|
181 |
|
182 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
183 |
msgid "Missing data source for this dropdown"
|
184 |
msgstr ""
|
185 |
|
186 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
187 |
msgid "Empty data set for this dropdown"
|
188 |
msgstr ""
|
189 |
|
190 |
-
#: src/Tribe/Ajax/Dropdown.php:
|
191 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
192 |
msgstr ""
|
193 |
|
@@ -2098,59 +2098,59 @@ msgstr ""
|
|
2098 |
msgid "%s must be a whole number."
|
2099 |
msgstr ""
|
2100 |
|
2101 |
-
#: src/Tribe/Validate.php:
|
2102 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2103 |
msgstr ""
|
2104 |
|
2105 |
-
#: src/Tribe/Validate.php:
|
2106 |
msgid "%s must be a valid absolute URL."
|
2107 |
msgstr ""
|
2108 |
|
2109 |
-
#: src/Tribe/Validate.php:
|
2110 |
-
#: src/Tribe/Validate.php:
|
2111 |
msgid "%s must have a value that's part of its options."
|
2112 |
msgstr ""
|
2113 |
|
2114 |
-
#: src/Tribe/Validate.php:
|
2115 |
msgid ""
|
2116 |
"Comparison validation failed because no comparison value was provided, for "
|
2117 |
"field %s"
|
2118 |
msgstr ""
|
2119 |
|
2120 |
-
#: src/Tribe/Validate.php:
|
2121 |
msgid "%s cannot be the same as %s."
|
2122 |
msgstr ""
|
2123 |
|
2124 |
-
#: src/Tribe/Validate.php:
|
2125 |
msgid "%s cannot be a duplicate"
|
2126 |
msgstr ""
|
2127 |
|
2128 |
-
#: src/Tribe/Validate.php:
|
2129 |
msgid "%s must be a number or percentage."
|
2130 |
msgstr ""
|
2131 |
|
2132 |
-
#: src/Tribe/Validate.php:
|
2133 |
msgid "%s must be a number between 0 and 21."
|
2134 |
msgstr ""
|
2135 |
|
2136 |
-
#: src/Tribe/Validate.php:
|
2137 |
msgid ""
|
2138 |
"%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2139 |
msgstr ""
|
2140 |
|
2141 |
-
#: src/Tribe/Validate.php:
|
2142 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2143 |
msgstr ""
|
2144 |
|
2145 |
-
#: src/Tribe/Validate.php:
|
2146 |
msgid "%s must consist of 5 numbers."
|
2147 |
msgstr ""
|
2148 |
|
2149 |
-
#: src/Tribe/Validate.php:
|
2150 |
msgid "%s must be a phone number."
|
2151 |
msgstr ""
|
2152 |
|
2153 |
-
#: src/Tribe/Validate.php:
|
2154 |
msgid ""
|
2155 |
"Country List must be formatted as one country per line in the following "
|
2156 |
"format: <br>US, United States <br> UK, United Kingdom."
|
2 |
# This file is distributed under the same license as the Tribe Common package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: Tribe Common 4.7.1\n"
|
6 |
"Report-Msgid-Bugs-To: http://m.tri.be/191x\n"
|
7 |
+
"POT-Creation-Date: 2017-11-14 22:13:59+00:00\n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
+
"PO-Revision-Date: 2017-11-14 22:13\n"
|
12 |
"Last-Translator: \n"
|
13 |
"Language-Team: \n"
|
14 |
|
179 |
msgid "Cannot look for Terms without a taxonomy"
|
180 |
msgstr ""
|
181 |
|
182 |
+
#: src/Tribe/Ajax/Dropdown.php:180
|
183 |
msgid "Missing data source for this dropdown"
|
184 |
msgstr ""
|
185 |
|
186 |
+
#: src/Tribe/Ajax/Dropdown.php:193
|
187 |
msgid "Empty data set for this dropdown"
|
188 |
msgstr ""
|
189 |
|
190 |
+
#: src/Tribe/Ajax/Dropdown.php:243
|
191 |
msgid "The \"%s\" source is invalid and cannot be reached on \"%s\" instance."
|
192 |
msgstr ""
|
193 |
|
2098 |
msgid "%s must be a whole number."
|
2099 |
msgstr ""
|
2100 |
|
2101 |
+
#: src/Tribe/Validate.php:264
|
2102 |
msgid "%s must be a valid slug (numbers, letters, dashes, and underscores)."
|
2103 |
msgstr ""
|
2104 |
|
2105 |
+
#: src/Tribe/Validate.php:279
|
2106 |
msgid "%s must be a valid absolute URL."
|
2107 |
msgstr ""
|
2108 |
|
2109 |
+
#: src/Tribe/Validate.php:295 src/Tribe/Validate.php:312
|
2110 |
+
#: src/Tribe/Validate.php:334
|
2111 |
msgid "%s must have a value that's part of its options."
|
2112 |
msgstr ""
|
2113 |
|
2114 |
+
#: src/Tribe/Validate.php:348
|
2115 |
msgid ""
|
2116 |
"Comparison validation failed because no comparison value was provided, for "
|
2117 |
"field %s"
|
2118 |
msgstr ""
|
2119 |
|
2120 |
+
#: src/Tribe/Validate.php:355
|
2121 |
msgid "%s cannot be the same as %s."
|
2122 |
msgstr ""
|
2123 |
|
2124 |
+
#: src/Tribe/Validate.php:357
|
2125 |
msgid "%s cannot be a duplicate"
|
2126 |
msgstr ""
|
2127 |
|
2128 |
+
#: src/Tribe/Validate.php:373
|
2129 |
msgid "%s must be a number or percentage."
|
2130 |
msgstr ""
|
2131 |
|
2132 |
+
#: src/Tribe/Validate.php:427
|
2133 |
msgid "%s must be a number between 0 and 21."
|
2134 |
msgstr ""
|
2135 |
|
2136 |
+
#: src/Tribe/Validate.php:443
|
2137 |
msgid ""
|
2138 |
"%s must consist of letters, numbers, dashes, apostrophes, and spaces only."
|
2139 |
msgstr ""
|
2140 |
|
2141 |
+
#: src/Tribe/Validate.php:459
|
2142 |
msgid "%s must consist of letters, spaces, apostrophes, and dashes."
|
2143 |
msgstr ""
|
2144 |
|
2145 |
+
#: src/Tribe/Validate.php:473
|
2146 |
msgid "%s must consist of 5 numbers."
|
2147 |
msgstr ""
|
2148 |
|
2149 |
+
#: src/Tribe/Validate.php:487
|
2150 |
msgid "%s must be a phone number."
|
2151 |
msgstr ""
|
2152 |
|
2153 |
+
#: src/Tribe/Validate.php:503
|
2154 |
msgid ""
|
2155 |
"Country List must be formatted as one country per line in the following "
|
2156 |
"format: <br>US, United States <br> UK, United Kingdom."
|
common/readme.txt
CHANGED
@@ -2,6 +2,23 @@
|
|
2 |
|
3 |
== Changelog ==
|
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
= [4.7] 2017-11-09 =
|
6 |
|
7 |
* Feature - Included a new Validation.js for Forms and Fields
|
@@ -109,3 +126,4 @@
|
|
109 |
|
110 |
* Fix - Resolved issue where the Meta Chunker attempted to inappropriately chunk meta for post post_types [80857]
|
111 |
* Language - 0 new strings added, 0 updated, 1 fuzzied, and 0 obsoleted [tribe-common]
|
|
2 |
|
3 |
== Changelog ==
|
4 |
|
5 |
+
= [4.7.2] 2017-11-21 =
|
6 |
+
|
7 |
+
* Feature - Added Template class which adds a few layers of filtering to any template file included
|
8 |
+
* Tweak - Included `tribe_callback_return` for static returns for Hooks
|
9 |
+
* Language - 0 new strings added, 0 updated, 1 fuzzied, and 0 obsoleted
|
10 |
+
|
11 |
+
= [4.7.1] 2017-11-16 =
|
12 |
+
|
13 |
+
* Fix - Added support for translatable placeholder text when dropdown selectors are waiting on results being returned via ajax [84926]
|
14 |
+
* Fix - Implemented an additional file permissions check within default error logger (our thanks to Oscar for highlighting this) [73551]
|
15 |
+
* Tweak - Added new `tribe_is_site_using_24_hour_time()` function to easily check if the site is using a 24-hour time format [78621]
|
16 |
+
* Tweak - Ensure the "Debug Mode" helper text in the Events Settings screen displays all of the time (it previously would vanish with certain permalinks settings) [92315]
|
17 |
+
* Tweak - Allow for non-Latin characters to be used as the Events URL slug and the Single Event URL slug (thanks @daviddweb for originally reporting this) [61880]
|
18 |
+
* Tweak - Removed restrictions imposed on taxonomy queries by Tribe__Ajax__Dropdown (our thanks to Ian in the forums for flagging this issue) [91762]
|
19 |
+
* Tweak - Fixed the definition of Tribe__Rewrite::get_bases() to address some PHP strict notices its previous definition triggered [91828]
|
20 |
+
* Language - 0 new strings added, 16 updated, 1 fuzzied, and 0 obsoleted
|
21 |
+
|
22 |
= [4.7] 2017-11-09 =
|
23 |
|
24 |
* Feature - Included a new Validation.js for Forms and Fields
|
126 |
|
127 |
* Fix - Resolved issue where the Meta Chunker attempted to inappropriately chunk meta for post post_types [80857]
|
128 |
* Language - 0 new strings added, 0 updated, 1 fuzzied, and 0 obsoleted [tribe-common]
|
129 |
+
|
common/src/Tribe/Ajax/Dropdown.php
CHANGED
@@ -37,9 +37,10 @@ class Tribe__Ajax__Dropdown {
|
|
37 |
if ( empty( $args['taxonomy'] ) ) {
|
38 |
$this->error( esc_attr__( 'Cannot look for Terms without a taxonomy', 'tribe-common' ) );
|
39 |
}
|
|
|
40 |
// We always want all the fields so we overwrite it
|
41 |
-
$args['fields'] = 'all';
|
42 |
-
$args['
|
43 |
|
44 |
if ( ! empty( $search ) ) {
|
45 |
$args['search'] = $search;
|
@@ -54,8 +55,12 @@ class Tribe__Ajax__Dropdown {
|
|
54 |
|
55 |
$results = array();
|
56 |
|
|
|
|
|
|
|
|
|
57 |
if ( empty( $args['search'] ) ) {
|
58 |
-
$this->sort_terms_hierarchically( $terms, $results );
|
59 |
$results = $this->convert_children_to_array( $results );
|
60 |
} else {
|
61 |
foreach ( $terms as $term ) {
|
37 |
if ( empty( $args['taxonomy'] ) ) {
|
38 |
$this->error( esc_attr__( 'Cannot look for Terms without a taxonomy', 'tribe-common' ) );
|
39 |
}
|
40 |
+
|
41 |
// We always want all the fields so we overwrite it
|
42 |
+
$args['fields'] = isset( $args['fields'] ) ? $args['fields'] : 'all';
|
43 |
+
$args['hide_empty'] = isset( $args['hide_empty'] ) ? $args['hide_empty'] : false;
|
44 |
|
45 |
if ( ! empty( $search ) ) {
|
46 |
$args['search'] = $search;
|
55 |
|
56 |
$results = array();
|
57 |
|
58 |
+
// Respect the parent/child_of argument if set
|
59 |
+
$parent = ! empty( $args['child_of'] ) ? (int) $args['child_of'] : 0;
|
60 |
+
$parent = ! empty( $args['parent'] ) ? (int) $args['parent'] : $parent;
|
61 |
+
|
62 |
if ( empty( $args['search'] ) ) {
|
63 |
+
$this->sort_terms_hierarchically( $terms, $results, $parent );
|
64 |
$results = $this->convert_children_to_array( $results );
|
65 |
} else {
|
66 |
foreach ( $terms as $term ) {
|
common/src/Tribe/Container.php
CHANGED
@@ -247,16 +247,48 @@ if ( ! function_exists( 'tribe_register_provider' ) ) {
|
|
247 |
* Returns a lambda function suitable to use as a callback; when called the function will build the implementation
|
248 |
* bound to `$classOrInterface` and return the value of a call to `$method` method with the call arguments.
|
249 |
*
|
250 |
-
* @
|
251 |
-
* @
|
252 |
-
* specified array arguments.
|
253 |
*
|
254 |
-
* @
|
|
|
|
|
|
|
|
|
|
|
255 |
*/
|
256 |
function tribe_callback( $slug, $method ) {
|
257 |
$container = Tribe__Container::init();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
258 |
|
259 |
-
return $
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
260 |
}
|
261 |
}
|
262 |
}
|
247 |
* Returns a lambda function suitable to use as a callback; when called the function will build the implementation
|
248 |
* bound to `$classOrInterface` and return the value of a call to `$method` method with the call arguments.
|
249 |
*
|
250 |
+
* @since 4.7
|
251 |
+
* @since TBD Included the $argsN params
|
|
|
252 |
*
|
253 |
+
* @param string $slug A class or interface fully qualified name or a string slug.
|
254 |
+
* @param string $method The method that should be called on the resolved implementation with the
|
255 |
+
* specified array arguments.
|
256 |
+
* @param mixed [$argsN] (optional) Any number of arguments that will be passed down to the Callback
|
257 |
+
*
|
258 |
+
* @return callable A PHP Callable based on the Slug and Methods passed
|
259 |
*/
|
260 |
function tribe_callback( $slug, $method ) {
|
261 |
$container = Tribe__Container::init();
|
262 |
+
$arguments = func_get_args();
|
263 |
+
$is_empty = 2 === count( $arguments );
|
264 |
+
|
265 |
+
if ( $is_empty ) {
|
266 |
+
$callable = $container->callback( $slug, $method );
|
267 |
+
} else {
|
268 |
+
$callback = $container->callback( 'callback', 'get' );
|
269 |
+
$callable = call_user_func_array( $callback, $arguments );
|
270 |
+
}
|
271 |
|
272 |
+
return $callable;
|
273 |
+
}
|
274 |
+
}
|
275 |
+
|
276 |
+
if ( ! function_exists( 'tribe_callback_return' ) ) {
|
277 |
+
/**
|
278 |
+
* Returns a tribe_callback for a very simple Return value method
|
279 |
+
*
|
280 |
+
* Example of Usage:
|
281 |
+
*
|
282 |
+
* add_filter( 'admin_title', tribe_callback_return( __( 'Ready to work.' ) ) );
|
283 |
+
*
|
284 |
+
* @since TBD
|
285 |
+
*
|
286 |
+
* @param mixed $value The value to be returned
|
287 |
+
*
|
288 |
+
* @return callable A PHP Callable based on the Slug and Methods passed
|
289 |
+
*/
|
290 |
+
function tribe_callback_return( $value ) {
|
291 |
+
return tribe_callback( 'callback', 'return_value', $value );
|
292 |
}
|
293 |
}
|
294 |
}
|
common/src/Tribe/Log/File_Logger.php
CHANGED
@@ -60,7 +60,7 @@ class Tribe__Log__File_Logger implements Tribe__Log__Logger {
|
|
60 |
protected function obtain_handle() {
|
61 |
$this->close_handle();
|
62 |
|
63 |
-
if ( ! file_exists( $this->log_file ) ) {
|
64 |
touch( $this->log_file );
|
65 |
}
|
66 |
|
60 |
protected function obtain_handle() {
|
61 |
$this->close_handle();
|
62 |
|
63 |
+
if ( ! file_exists( $this->log_file ) && $this->is_available() ) {
|
64 |
touch( $this->log_file );
|
65 |
}
|
66 |
|
common/src/Tribe/Main.php
CHANGED
@@ -17,7 +17,7 @@ class Tribe__Main {
|
|
17 |
const OPTIONNAME = 'tribe_events_calendar_options';
|
18 |
const OPTIONNAMENETWORK = 'tribe_events_calendar_network_options';
|
19 |
|
20 |
-
const VERSION = '4.7';
|
21 |
|
22 |
const FEED_URL = 'https://theeventscalendar.com/feed/';
|
23 |
|
@@ -223,7 +223,7 @@ class Tribe__Main {
|
|
223 |
array( 'tribe-common-admin', 'tribe-common-admin.css', array( 'tribe-dependency-style', 'tribe-bumpdown-css', 'tribe-buttonset-style', 'tribe-select2-css' ) ),
|
224 |
array( 'tribe-validation', 'validation.js', array( 'jquery', 'underscore', 'tribe-common', 'tribe-utils-camelcase' ) ),
|
225 |
array( 'tribe-validation-style', 'validation.css', array() ),
|
226 |
-
array( 'tribe-dependency', 'dependency.js', array( 'jquery', 'underscore', 'tribe-
|
227 |
array( 'tribe-dependency-style', 'dependency.css', array( 'tribe-select2-css' ) ),
|
228 |
array( 'tribe-pue-notices', 'pue-notices.js', array( 'jquery' ) ),
|
229 |
array( 'tribe-datepicker', 'datepicker.css' ),
|
@@ -560,5 +560,7 @@ class Tribe__Main {
|
|
560 |
tribe_singleton( 'cost-utils', array( 'Tribe__Cost_Utils', 'instance' ) );
|
561 |
tribe_singleton( 'post-duplicate.strategy-factory', 'Tribe__Duplicate__Strategy_Factory' );
|
562 |
tribe_singleton( 'post-duplicate', 'Tribe__Duplicate__Post' );
|
|
|
|
|
563 |
}
|
564 |
}
|
17 |
const OPTIONNAME = 'tribe_events_calendar_options';
|
18 |
const OPTIONNAMENETWORK = 'tribe_events_calendar_network_options';
|
19 |
|
20 |
+
const VERSION = '4.7.2';
|
21 |
|
22 |
const FEED_URL = 'https://theeventscalendar.com/feed/';
|
23 |
|
223 |
array( 'tribe-common-admin', 'tribe-common-admin.css', array( 'tribe-dependency-style', 'tribe-bumpdown-css', 'tribe-buttonset-style', 'tribe-select2-css' ) ),
|
224 |
array( 'tribe-validation', 'validation.js', array( 'jquery', 'underscore', 'tribe-common', 'tribe-utils-camelcase' ) ),
|
225 |
array( 'tribe-validation-style', 'validation.css', array() ),
|
226 |
+
array( 'tribe-dependency', 'dependency.js', array( 'jquery', 'underscore', 'tribe-common' ) ),
|
227 |
array( 'tribe-dependency-style', 'dependency.css', array( 'tribe-select2-css' ) ),
|
228 |
array( 'tribe-pue-notices', 'pue-notices.js', array( 'jquery' ) ),
|
229 |
array( 'tribe-datepicker', 'datepicker.css' ),
|
560 |
tribe_singleton( 'cost-utils', array( 'Tribe__Cost_Utils', 'instance' ) );
|
561 |
tribe_singleton( 'post-duplicate.strategy-factory', 'Tribe__Duplicate__Strategy_Factory' );
|
562 |
tribe_singleton( 'post-duplicate', 'Tribe__Duplicate__Post' );
|
563 |
+
|
564 |
+
tribe_singleton( 'callback', 'Tribe__Utils__Callback' );
|
565 |
}
|
566 |
}
|
common/src/Tribe/Meta/Chunker.php
CHANGED
@@ -323,6 +323,10 @@ class Tribe__Meta__Chunker {
|
|
323 |
* @return bool
|
324 |
*/
|
325 |
protected function is_chunker_logic_meta_key( $meta_key ) {
|
|
|
|
|
|
|
|
|
326 |
return 0 === strpos( $meta_key, $this->meta_key_prefix );
|
327 |
}
|
328 |
|
323 |
* @return bool
|
324 |
*/
|
325 |
protected function is_chunker_logic_meta_key( $meta_key ) {
|
326 |
+
if ( ! is_string( $meta_key ) ) {
|
327 |
+
return false;
|
328 |
+
}
|
329 |
+
|
330 |
return 0 === strpos( $meta_key, $this->meta_key_prefix );
|
331 |
}
|
332 |
|
common/src/Tribe/Rewrite.php
CHANGED
@@ -168,7 +168,7 @@ class Tribe__Rewrite {
|
|
168 |
*
|
169 |
* @return object Return Base Slugs with l10n variations
|
170 |
*/
|
171 |
-
public function get_bases( $
|
172 |
return new stdClass();
|
173 |
}
|
174 |
|
168 |
*
|
169 |
* @return object Return Base Slugs with l10n variations
|
170 |
*/
|
171 |
+
public function get_bases( $method = 'regex' ) {
|
172 |
return new stdClass();
|
173 |
}
|
174 |
|
common/src/Tribe/Template.php
ADDED
@@ -0,0 +1,383 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
class Tribe__Template {
|
3 |
+
/**
|
4 |
+
* The folders into we will look for the template
|
5 |
+
*
|
6 |
+
* @since TBD
|
7 |
+
*
|
8 |
+
* @var array
|
9 |
+
*/
|
10 |
+
protected $folder = array();
|
11 |
+
|
12 |
+
/**
|
13 |
+
* The origin class for the plugin where the template lives
|
14 |
+
*
|
15 |
+
* @since TBD
|
16 |
+
*
|
17 |
+
* @var object
|
18 |
+
*/
|
19 |
+
public $origin;
|
20 |
+
|
21 |
+
/**
|
22 |
+
* The local context for templates, muteable on every self::template() call
|
23 |
+
*
|
24 |
+
* @since TBD
|
25 |
+
*
|
26 |
+
* @var array
|
27 |
+
*/
|
28 |
+
protected $context;
|
29 |
+
|
30 |
+
/**
|
31 |
+
* The global context for this instance of templates
|
32 |
+
*
|
33 |
+
* @since TBD
|
34 |
+
*
|
35 |
+
* @var array
|
36 |
+
*/
|
37 |
+
protected $global = array();
|
38 |
+
|
39 |
+
/**
|
40 |
+
* Allow chaing if class will extract data from the local context
|
41 |
+
*
|
42 |
+
* @since TBD
|
43 |
+
*
|
44 |
+
* @var boolean
|
45 |
+
*/
|
46 |
+
protected $template_context_extract = false;
|
47 |
+
|
48 |
+
/**
|
49 |
+
* Base template for where to look for template
|
50 |
+
*
|
51 |
+
* @since TBD
|
52 |
+
*
|
53 |
+
* @var array
|
54 |
+
*/
|
55 |
+
protected $template_base_path;
|
56 |
+
|
57 |
+
/**
|
58 |
+
* Configures the class origin plugin path
|
59 |
+
*
|
60 |
+
* @since TBD
|
61 |
+
*
|
62 |
+
* @param object|string $origin The base origin for the templates
|
63 |
+
*
|
64 |
+
* @return self
|
65 |
+
*/
|
66 |
+
public function set_template_origin( $origin = null ) {
|
67 |
+
if ( empty( $origin ) ) {
|
68 |
+
$origin = $this->origin;
|
69 |
+
}
|
70 |
+
|
71 |
+
if ( is_string( $origin ) ) {
|
72 |
+
// Origin needs to be a class with a `instance` method
|
73 |
+
if ( class_exists( $origin ) && method_exists( $origin, 'instance' ) ) {
|
74 |
+
$origin = call_user_func( array( $origin, 'instance' ) );
|
75 |
+
}
|
76 |
+
}
|
77 |
+
|
78 |
+
if ( empty( $origin->plugin_path ) && empty( $origin->pluginPath ) && ! is_dir( $origin ) ) {
|
79 |
+
throw new InvalidArgumentException( 'Invalid Origin Class for Template Instance' );
|
80 |
+
}
|
81 |
+
|
82 |
+
if ( ! is_string( $origin ) ) {
|
83 |
+
$this->origin = $origin;
|
84 |
+
$this->template_base_path = untrailingslashit( ! empty( $this->origin->plugin_path ) ? $this->origin->plugin_path : $this->origin->pluginPath );
|
85 |
+
} else {
|
86 |
+
$this->template_base_path = untrailingslashit( (array) explode( '/', $origin ) );
|
87 |
+
}
|
88 |
+
|
89 |
+
return $this;
|
90 |
+
}
|
91 |
+
|
92 |
+
/**
|
93 |
+
* Configures the class with the base folder in relation to the Origin
|
94 |
+
*
|
95 |
+
* @since TBD
|
96 |
+
*
|
97 |
+
* @param array|string $folder Which folder we are going to look for templates
|
98 |
+
*
|
99 |
+
* @return self
|
100 |
+
*/
|
101 |
+
public function set_template_folder( $folder = null ) {
|
102 |
+
// Allows configuring a already set class
|
103 |
+
if ( ! isset( $folder ) ) {
|
104 |
+
$folder = $this->folder;
|
105 |
+
}
|
106 |
+
|
107 |
+
// If Folder is String make it an Array
|
108 |
+
if ( is_string( $folder ) ) {
|
109 |
+
$folder = (array) explode( '/', $folder );
|
110 |
+
}
|
111 |
+
|
112 |
+
// Cast as Array and save
|
113 |
+
$this->folder = (array) $folder;
|
114 |
+
|
115 |
+
return $this;
|
116 |
+
}
|
117 |
+
|
118 |
+
/**
|
119 |
+
* Configures the class global context
|
120 |
+
*
|
121 |
+
* @since TBD
|
122 |
+
*
|
123 |
+
* @param array $context Default global Context
|
124 |
+
*
|
125 |
+
* @return self
|
126 |
+
*/
|
127 |
+
public function add_template_globals( $context = array() ) {
|
128 |
+
// Cast as Array merge and save
|
129 |
+
$this->global = wp_parse_args( (array) $context, $this->global );
|
130 |
+
|
131 |
+
return $this;
|
132 |
+
}
|
133 |
+
|
134 |
+
/**
|
135 |
+
* Configures if the class will extract context for template
|
136 |
+
*
|
137 |
+
* @since TBD
|
138 |
+
*
|
139 |
+
* @param bool $value Should we extract context for templates
|
140 |
+
*
|
141 |
+
* @return self
|
142 |
+
*/
|
143 |
+
public function set_template_context_extract( $value = false ) {
|
144 |
+
// Cast as bool and save
|
145 |
+
$this->template_context_extract = (bool) $value;
|
146 |
+
|
147 |
+
return $this;
|
148 |
+
}
|
149 |
+
|
150 |
+
/**
|
151 |
+
* Gets the base path for this Instance of Templates
|
152 |
+
*
|
153 |
+
* @since TBD
|
154 |
+
*
|
155 |
+
* @return string
|
156 |
+
*/
|
157 |
+
public function get_base_path() {
|
158 |
+
// Craft the Base Path
|
159 |
+
$path = array_merge( (array) $this->template_base_path, $this->folder );
|
160 |
+
|
161 |
+
// Implode to avoid Window Problems
|
162 |
+
$path = implode( DIRECTORY_SEPARATOR, $path );
|
163 |
+
|
164 |
+
/**
|
165 |
+
* Allows filtering of the base path for templates
|
166 |
+
*
|
167 |
+
* @param string $path Complete path to include the base folder
|
168 |
+
* @param self $template Current instance of the Tribe__Template
|
169 |
+
*/
|
170 |
+
return apply_filters( 'tribe_template_base_path', $path, $this );
|
171 |
+
}
|
172 |
+
|
173 |
+
/**
|
174 |
+
* Sets a Index inside of the global or local context
|
175 |
+
* Final to prevent extending the class when the `get` already exists on the child class
|
176 |
+
*
|
177 |
+
* @since TBD
|
178 |
+
*
|
179 |
+
* @see Tribe__Utils__Array::set
|
180 |
+
*
|
181 |
+
* @param array $index Specify each nested index in order.
|
182 |
+
* Example: array( 'lvl1', 'lvl2' );
|
183 |
+
* @param mixed $default Default value if the search finds nothing.
|
184 |
+
* @param boolean $is_local Use the Local or Global context
|
185 |
+
*
|
186 |
+
* @return mixed The value of the specified index or the default if not found.
|
187 |
+
*/
|
188 |
+
final public function get( $index, $default = null, $is_local = true ) {
|
189 |
+
$context = $this->global;
|
190 |
+
|
191 |
+
if ( true === $is_local ) {
|
192 |
+
$context = $this->context;
|
193 |
+
}
|
194 |
+
|
195 |
+
/**
|
196 |
+
* Allows filtering the the getting of Context variables, also short circuiting
|
197 |
+
* Following the same strucuture as WP Core
|
198 |
+
*
|
199 |
+
* @since TBD
|
200 |
+
*
|
201 |
+
* @param mixed $value The value that will be filtered
|
202 |
+
* @param array $index Specify each nested index in order.
|
203 |
+
* Example: array( 'lvl1', 'lvl2' );
|
204 |
+
* @param mixed $default Default value if the search finds nothing.
|
205 |
+
* @param boolean $is_local Use the Local or Global context
|
206 |
+
* @param self $template Current instance of the Tribe__Template
|
207 |
+
*/
|
208 |
+
$value = apply_filters( 'tribe_template_context_get', null, $index, $default, $is_local, $this );
|
209 |
+
if ( null !== $value ) {
|
210 |
+
return $value;
|
211 |
+
}
|
212 |
+
|
213 |
+
return Tribe__Utils__Array::get( $context, $index, $default );
|
214 |
+
}
|
215 |
+
|
216 |
+
/**
|
217 |
+
* Sets a Index inside of the global or local context
|
218 |
+
* Final to prevent extending the class when the `set` already exists on the child class
|
219 |
+
*
|
220 |
+
* @since TBD
|
221 |
+
*
|
222 |
+
* @see Tribe__Utils__Array::set
|
223 |
+
*
|
224 |
+
* @param string|array $index To set a key nested multiple levels deep pass an array
|
225 |
+
* specifying each key in order as a value.
|
226 |
+
* Example: array( 'lvl1', 'lvl2', 'lvl3' );
|
227 |
+
* @param mixed $value The value.
|
228 |
+
* @param boolean $is_local Use the Local or Global context
|
229 |
+
*
|
230 |
+
* @return array Full array with the key set to the specified value.
|
231 |
+
*/
|
232 |
+
final public function set( $index, $value = null, $is_local = true ) {
|
233 |
+
if ( true === $is_local ) {
|
234 |
+
return Tribe__Utils__Array::set( $this->context, $index, $value );
|
235 |
+
} else {
|
236 |
+
return Tribe__Utils__Array::set( $this->global, $index, $value );
|
237 |
+
}
|
238 |
+
}
|
239 |
+
|
240 |
+
/**
|
241 |
+
* Merges local and global context, and saves it locally
|
242 |
+
*
|
243 |
+
* @since TBD
|
244 |
+
*
|
245 |
+
* @param array $context Local Context array of data
|
246 |
+
* @param string $file Complete path to include the PHP File
|
247 |
+
* @param array $name Template name
|
248 |
+
*
|
249 |
+
* @return array
|
250 |
+
*/
|
251 |
+
public function merge_context( $context = array(), $file = null, $name = null ) {
|
252 |
+
// Allow for simple null usage as well as array() for nothing
|
253 |
+
if ( is_null( $context ) ) {
|
254 |
+
$context = array();
|
255 |
+
}
|
256 |
+
|
257 |
+
// Applies local context on top of Global one
|
258 |
+
$context = wp_parse_args( (array) $context, $this->global );
|
259 |
+
|
260 |
+
/**
|
261 |
+
* Allows filtering the Local context
|
262 |
+
*
|
263 |
+
* @since TBD
|
264 |
+
*
|
265 |
+
* @param array $context Local Context array of data
|
266 |
+
* @param string $file Complete path to include the PHP File
|
267 |
+
* @param array $name Template name
|
268 |
+
* @param self $template Current instance of the Tribe__Template
|
269 |
+
*/
|
270 |
+
$this->context = apply_filters( 'tribe_template_context', $context, $file, $name, $this );
|
271 |
+
|
272 |
+
return $this->context;
|
273 |
+
}
|
274 |
+
|
275 |
+
/**
|
276 |
+
* A very simple method to include a Aggregator Template, allowing filtering and additions using hooks.
|
277 |
+
*
|
278 |
+
* @since TBD
|
279 |
+
*
|
280 |
+
* @param string $name Which file we are talking about including
|
281 |
+
* @param array $context Any context data you need to expose to this file
|
282 |
+
* @param boolean $echo If we should also print the Template
|
283 |
+
*
|
284 |
+
* @return string Final Content HTML
|
285 |
+
*/
|
286 |
+
public function template( $name, $context = array(), $echo = true ) {
|
287 |
+
// If name is String make it an Array
|
288 |
+
if ( is_string( $name ) ) {
|
289 |
+
$name = (array) explode( '/', $name );
|
290 |
+
}
|
291 |
+
|
292 |
+
// Clean this Variable
|
293 |
+
$name = array_map( 'sanitize_title_with_dashes', $name );
|
294 |
+
|
295 |
+
// Apply the .php to the last item on the name
|
296 |
+
$name[ count( $name ) - 1 ] .= '.php';
|
297 |
+
|
298 |
+
// Build the File Path
|
299 |
+
$file = implode( DIRECTORY_SEPARATOR, array_merge( (array) $this->get_base_path(), $name ) );
|
300 |
+
|
301 |
+
/**
|
302 |
+
* A more Specific Filter that will include the template name
|
303 |
+
*
|
304 |
+
* @since TBD
|
305 |
+
*
|
306 |
+
* @param string $file Complete path to include the PHP File
|
307 |
+
* @param array $name Template name
|
308 |
+
* @param self $template Current instance of the Tribe__Template
|
309 |
+
*/
|
310 |
+
$file = apply_filters( 'tribe_template_file', $file, $name, $this );
|
311 |
+
|
312 |
+
// Before we load the file we check if it exists
|
313 |
+
if ( ! file_exists( $file ) ) {
|
314 |
+
return false;
|
315 |
+
}
|
316 |
+
|
317 |
+
ob_start();
|
318 |
+
|
319 |
+
// Merges the local data passed to template to the global scope
|
320 |
+
$this->merge_context( $context, $file, $name );
|
321 |
+
|
322 |
+
/**
|
323 |
+
* Fires an Action before including the template file
|
324 |
+
*
|
325 |
+
* @since TBD
|
326 |
+
*
|
327 |
+
* @param string $file Complete path to include the PHP File
|
328 |
+
* @param array $name Template name
|
329 |
+
* @param self $template Current instance of the Tribe__Template
|
330 |
+
*/
|
331 |
+
do_action( 'tribe_template_before_include', $file, $name, $this );
|
332 |
+
|
333 |
+
// Only do this if really needed (by default it wont)
|
334 |
+
if ( true === $this->template_context_extract && ! empty( $this->context ) ) {
|
335 |
+
// We don't allow Extrating of a variable called $name
|
336 |
+
if ( isset( $this->context['name'] ) ) {
|
337 |
+
unset( $this->context['name'] );
|
338 |
+
}
|
339 |
+
|
340 |
+
// We don't allow Extrating of a variable called $file
|
341 |
+
if ( isset( $this->context['file'] ) ) {
|
342 |
+
unset( $this->context['file'] );
|
343 |
+
}
|
344 |
+
|
345 |
+
// Make any provided variables available in the template variable scope
|
346 |
+
extract( $this->context ); // @codingStandardsIgnoreLine
|
347 |
+
}
|
348 |
+
|
349 |
+
include $file;
|
350 |
+
|
351 |
+
/**
|
352 |
+
* Fires an Action After including the template file
|
353 |
+
*
|
354 |
+
* @since TBD
|
355 |
+
*
|
356 |
+
* @param string $file Complete path to include the PHP File
|
357 |
+
* @param array $name Template name
|
358 |
+
* @param self $template Current instance of the Tribe__Template
|
359 |
+
*/
|
360 |
+
do_action( 'tribe_template_after_include', $file, $name, $this );
|
361 |
+
|
362 |
+
// Only fetch the contents after the action
|
363 |
+
$html = ob_get_clean();
|
364 |
+
|
365 |
+
/**
|
366 |
+
* Allow users to filter the final HTML
|
367 |
+
*
|
368 |
+
* @since TBD
|
369 |
+
*
|
370 |
+
* @param string $html The final HTML
|
371 |
+
* @param string $file Complete path to include the PHP File
|
372 |
+
* @param array $name Template name
|
373 |
+
* @param self $template Current instance of the Tribe__Template
|
374 |
+
*/
|
375 |
+
$html = apply_filters( 'tribe_template_html', $html, $file, $name, $this );
|
376 |
+
|
377 |
+
if ( $echo ) {
|
378 |
+
echo $html;
|
379 |
+
}
|
380 |
+
|
381 |
+
return $html;
|
382 |
+
}
|
383 |
+
}
|
common/src/Tribe/Utils/Callback.php
ADDED
@@ -0,0 +1,109 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class Tribe__Utils__Callback {
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Where we store all the Callbacks to allow removing of hooks
|
7 |
+
*
|
8 |
+
* @since TBD
|
9 |
+
*
|
10 |
+
* @var array
|
11 |
+
*/
|
12 |
+
public $items = array();
|
13 |
+
|
14 |
+
/**
|
15 |
+
* The Prefix we use for the Overloading replacement
|
16 |
+
*
|
17 |
+
* @since TBD
|
18 |
+
*
|
19 |
+
* @var string
|
20 |
+
*/
|
21 |
+
protected $prefix = 'callback_';
|
22 |
+
|
23 |
+
/**
|
24 |
+
* Returns a callable for on this class that doesn't exist, but passes in the Key for Di52 Slug and it's method
|
25 |
+
* and arguments. It will relayed via overloading __call() on this same class.
|
26 |
+
*
|
27 |
+
* The lambda function suitable to use as a callback; when called the function will build the implementation
|
28 |
+
* bound to `$classOrInterface` and return the value of a call to `$method` method with the call arguments.
|
29 |
+
*
|
30 |
+
* @since TBD
|
31 |
+
*
|
32 |
+
* @param string $slug A class or interface fully qualified name or a string slug.
|
33 |
+
* @param string $method The method that should be called on the resolved implementation with the
|
34 |
+
* specified array arguments.
|
35 |
+
*
|
36 |
+
* @return array The callable
|
37 |
+
*/
|
38 |
+
public function get( $slug, $method ) {
|
39 |
+
$container = Tribe__Container::init();
|
40 |
+
$arguments = func_get_args();
|
41 |
+
$is_empty = 2 === count( $arguments );
|
42 |
+
|
43 |
+
// Remove Slug and Method
|
44 |
+
array_shift( $arguments );
|
45 |
+
array_shift( $arguments );
|
46 |
+
|
47 |
+
$item = (object) array(
|
48 |
+
'slug' => $slug,
|
49 |
+
'method' => $method,
|
50 |
+
'arguments' => $arguments,
|
51 |
+
'is_empty' => $is_empty,
|
52 |
+
);
|
53 |
+
|
54 |
+
$key = md5( json_encode( $item ) );
|
55 |
+
|
56 |
+
// Prevent this from been reset
|
57 |
+
if ( isset( $this->items[ $key ] ) ) {
|
58 |
+
return $this->items[ $key ];
|
59 |
+
}
|
60 |
+
|
61 |
+
$item->callback = $container->callback( $item->slug, $item->method );
|
62 |
+
|
63 |
+
$this->items[ $key ] = $item;
|
64 |
+
|
65 |
+
return array( $this, $this->prefix . $key );
|
66 |
+
}
|
67 |
+
|
68 |
+
/**
|
69 |
+
* Returns the Value passed as a simple Routing method for tribe_callback_return
|
70 |
+
*
|
71 |
+
* @since TBD
|
72 |
+
*
|
73 |
+
* @param mixed $value Value to be Routed
|
74 |
+
*
|
75 |
+
* @return mixed
|
76 |
+
*/
|
77 |
+
public function return_value( $value ) {
|
78 |
+
return $value;
|
79 |
+
}
|
80 |
+
|
81 |
+
/**
|
82 |
+
* Calls the Lambda function provided by Di52 to allow passing of Params without having to create more
|
83 |
+
* methods into classes for simple callbacks that will only have a pre-determined value.
|
84 |
+
*
|
85 |
+
* @since TBD
|
86 |
+
*
|
87 |
+
* @param string $slug A class or interface fully qualified name or a string slug.
|
88 |
+
* @param string $method The method that should be called on the resolved implementation with the
|
89 |
+
* specified array arguments.
|
90 |
+
*
|
91 |
+
* @return mixed The Return value used
|
92 |
+
*/
|
93 |
+
public function __call( $method, $args ) {
|
94 |
+
$key = str_replace( $this->prefix, '', $method );
|
95 |
+
|
96 |
+
if ( ! isset( $this->items[ $key ] ) ) {
|
97 |
+
return false;
|
98 |
+
}
|
99 |
+
|
100 |
+
$item = $this->items[ $key ];
|
101 |
+
|
102 |
+
// Allow for previous compatibility with tribe_callback
|
103 |
+
if ( ! $item->is_empty ) {
|
104 |
+
$args = $item->arguments;
|
105 |
+
}
|
106 |
+
|
107 |
+
return call_user_func_array( $item->callback, $args );
|
108 |
+
}
|
109 |
+
}
|
common/src/Tribe/Validate.php
CHANGED
@@ -252,7 +252,11 @@ if ( ! class_exists( 'Tribe__Validate' ) ) {
|
|
252 |
* @return stdClass validation result object
|
253 |
*/
|
254 |
public function slug() {
|
255 |
-
|
|
|
|
|
|
|
|
|
256 |
$this->result->valid = true;
|
257 |
$this->value = sanitize_title( $this->value );
|
258 |
} else {
|
@@ -517,4 +521,4 @@ if ( ! class_exists( 'Tribe__Validate' ) ) {
|
|
517 |
}
|
518 |
|
519 |
} // end class
|
520 |
-
} // endif class_exists
|
252 |
* @return stdClass validation result object
|
253 |
*/
|
254 |
public function slug() {
|
255 |
+
$maybe_valid_value = esc_url_raw( $this->value );
|
256 |
+
|
257 |
+
// esc_url_raw does the work of validating chars, but returns the checked string with a
|
258 |
+
// prepended URL protocol; so let's use strpos to match the values.
|
259 |
+
if ( false !== strpos( $maybe_valid_value, $this->value ) ) {
|
260 |
$this->result->valid = true;
|
261 |
$this->value = sanitize_title( $this->value );
|
262 |
} else {
|
521 |
}
|
522 |
|
523 |
} // end class
|
524 |
+
} // endif class_exists
|
common/src/admin-views/tribe-options-general.php
CHANGED
@@ -62,7 +62,6 @@ if ( is_super_admin() ) {
|
|
62 |
$generalTabFields['debugEventsHelper'] = array(
|
63 |
'type' => 'html',
|
64 |
'html' => '<p class="tribe-field-indent tribe-field-description description" style="max-width:400px;">' . sprintf( esc_html__( 'Enable this option to log debug information. By default this will log to your server PHP error log. If you\'d like to see the log messages in your browser, then we recommend that you install the %s and look for the "Tribe" tab in the debug output.', 'tribe-common' ), '<a href="https://wordpress.org/extend/plugins/debug-bar/" target="_blank">' . esc_html__( 'Debug Bar Plugin', 'tribe-common' ) . '</a>' ) . '</p>',
|
65 |
-
'conditional' => ( '' != get_option( 'permalink_structure' ) ),
|
66 |
);
|
67 |
}
|
68 |
|
62 |
$generalTabFields['debugEventsHelper'] = array(
|
63 |
'type' => 'html',
|
64 |
'html' => '<p class="tribe-field-indent tribe-field-description description" style="max-width:400px;">' . sprintf( esc_html__( 'Enable this option to log debug information. By default this will log to your server PHP error log. If you\'d like to see the log messages in your browser, then we recommend that you install the %s and look for the "Tribe" tab in the debug output.', 'tribe-common' ), '<a href="https://wordpress.org/extend/plugins/debug-bar/" target="_blank">' . esc_html__( 'Debug Bar Plugin', 'tribe-common' ) . '</a>' ) . '</p>',
|
|
|
65 |
);
|
66 |
}
|
67 |
|
common/src/functions/template-tags/date.php
CHANGED
@@ -407,3 +407,17 @@ if ( ! function_exists( 'tribe_wp_locale_month' ) ) {
|
|
407 |
return Tribe__Date_Utils::wp_locale_month( $month, $format );
|
408 |
}
|
409 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
407 |
return Tribe__Date_Utils::wp_locale_month( $month, $format );
|
408 |
}
|
409 |
}
|
410 |
+
|
411 |
+
if ( ! function_exists( 'tribe_is_site_using_24_hour_time' ) ) {
|
412 |
+
/**
|
413 |
+
* Handy function for easily detecting if this site's using the 24-hour time format.
|
414 |
+
*
|
415 |
+
* @since 4.7.1
|
416 |
+
*
|
417 |
+
* @return boolean
|
418 |
+
*/
|
419 |
+
function tribe_is_site_using_24_hour_time() {
|
420 |
+
$time_format = get_option( 'time_format' );
|
421 |
+
return strpos( $time_format, 'H' ) !== false;
|
422 |
+
}
|
423 |
+
}
|
common/src/resources/js/dependency.js
CHANGED
@@ -162,9 +162,11 @@
|
|
162 |
}
|
163 |
}
|
164 |
|
165 |
-
$dependent
|
166 |
-
|
167 |
-
|
|
|
|
|
168 |
} else {
|
169 |
$dependent.removeClass( active_class );
|
170 |
|
@@ -173,9 +175,11 @@
|
|
173 |
$dependent.hide();
|
174 |
}
|
175 |
|
176 |
-
$dependent
|
177 |
-
|
178 |
-
|
|
|
|
|
179 |
|
180 |
if ( $dependent.data( 'select2' ) ) {
|
181 |
$dependent.data( 'select2' ).container.removeClass( active_class );
|
162 |
}
|
163 |
}
|
164 |
|
165 |
+
$dependent.find( selectors.fields ).prop( 'disabled', false );
|
166 |
+
|
167 |
+
if ( 'undefined' !== typeof $().select2 ) {
|
168 |
+
$dependent.find( '.select2-container' ).select2( 'enable', true );
|
169 |
+
}
|
170 |
} else {
|
171 |
$dependent.removeClass( active_class );
|
172 |
|
175 |
$dependent.hide();
|
176 |
}
|
177 |
|
178 |
+
$dependent.find( selectors.fields ).prop( 'disabled', true );
|
179 |
+
|
180 |
+
if ( 'undefined' !== typeof $().select2 ) {
|
181 |
+
$dependent.find( '.select2-container' ).select2( 'enable', false );
|
182 |
+
}
|
183 |
|
184 |
if ( $dependent.data( 'select2' ) ) {
|
185 |
$dependent.data( 'select2' ).container.removeClass( active_class );
|
common/src/resources/js/dependency.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
!function(e,n,i){"use strict";var d=e(document),t=e(window),c={dependent:".tribe-dependent",active:".tribe-active",dependency:".tribe-dependency",dependencyVerified:".tribe-dependency-verified",fields:"input, select, textarea",advanced_fields:".select2-container",linked:".tribe-dependent-linked"};e.fn.dependency=function(){return this.each(function(){var n=e(this).data("depends");e(n).addClass(c.dependency.replace(".","")).data("dependent",e(this))})},d.off("change.dependency verify.dependency",c.dependency).on({"verify.dependency":function(i){var t,a=e(this),o="#"+a.attr("id"),r=a.val();if(o){if(a.is(":radio")){var s=e("[name='"+a.attr("name")+"']");s.not(c.linked).on("change",function(){s.trigger("verify.dependency")}).addClass(c.linked.replace(".",""))}var p=d.find('[data-depends="'+o+'"]').not(".select2-container");t={condition:function(e,i){return n.isArray(i)?-1!==i.indexOf(e):e==i},not_condition:function(e,i){return n.isArray(i)?-1===i.indexOf(e):e!=i},is_not_empty:function(e){return""!=e},is_empty:function(e){return""===e},is_numeric:function(n){return e.isNumeric(n)},is_not_numeric:function(n){return!e.isNumeric(n)},is_checked:function(e,n,i){return!(!i.is(":checkbox")&&!i.is(":radio"))&&i.is(":checked")},is_not_checked:function(e,n,i){return!(!i.is(":checkbox")&&!i.is(":radio"))&&!i.is(":checked")}},p.each(function(i,d){var o=e(d),s=o.is("[data-dependent-parent]");if(s){var p=o.data("dependentParent"),u=o.closest(p);if(0===u.length)return void console.warn("Dependency: `data-dependent-parent` has bad selector",o);o=u.find(d)}var l
|
1 |
+
!function(e,n,i){"use strict";var d=e(document),t=e(window),c={dependent:".tribe-dependent",active:".tribe-active",dependency:".tribe-dependency",dependencyVerified:".tribe-dependency-verified",fields:"input, select, textarea",advanced_fields:".select2-container",linked:".tribe-dependent-linked"};e.fn.dependency=function(){return this.each(function(){var n=e(this).data("depends");e(n).addClass(c.dependency.replace(".","")).data("dependent",e(this))})},d.off("change.dependency verify.dependency",c.dependency).on({"verify.dependency":function(i){var t,a=e(this),o="#"+a.attr("id"),r=a.val();if(o){if(a.is(":radio")){var s=e("[name='"+a.attr("name")+"']");s.not(c.linked).on("change",function(){s.trigger("verify.dependency")}).addClass(c.linked.replace(".",""))}var p=d.find('[data-depends="'+o+'"]').not(".select2-container");t={condition:function(e,i){return n.isArray(i)?-1!==i.indexOf(e):e==i},not_condition:function(e,i){return n.isArray(i)?-1===i.indexOf(e):e!=i},is_not_empty:function(e){return""!=e},is_empty:function(e){return""===e},is_numeric:function(n){return e.isNumeric(n)},is_not_numeric:function(n){return!e.isNumeric(n)},is_checked:function(e,n,i){return!(!i.is(":checkbox")&&!i.is(":radio"))&&i.is(":checked")},is_not_checked:function(e,n,i){return!(!i.is(":checkbox")&&!i.is(":radio"))&&!i.is(":checked")}},p.each(function(i,d){var o=e(d),s=o.is("[data-dependent-parent]");if(s){var p=o.data("dependentParent"),u=o.closest(p);if(0===u.length)return void console.warn("Dependency: `data-dependent-parent` has bad selector",o);o=u.find(d)}var f,l={condition:!!o.is("[data-condition]")&&o.data("condition"),not_condition:!!o.is("[data-condition-not]")&&o.data("conditionNot"),is_not_empty:o.data("conditionIsNotEmpty")||o.is("[data-condition-is-not-empty]")||o.data("conditionNotEmpty")||o.is("[data-condition-not-empty]"),is_empty:o.data("conditionIsEmpty")||o.is("[data-condition-is-empty]")||o.data("conditionEmpty")||o.is("[data-condition-empty]"),is_numeric:o.data("conditionIsNumeric")||o.is("[data-condition-is-numeric]")||o.data("conditionNumeric")||o.is("[data-condition-numeric]"),is_not_numeric:o.data("conditionIsNotNumeric")||o.is("[data-condition-is-not-numeric]"),is_checked:o.data("conditionIsChecked")||o.is("[data-condition-is-checked]")||o.data("conditionChecked")||o.is("[data-condition-checked]"),is_not_checked:o.data("conditionIsNotChecked")||o.is("[data-condition-is-not-checked]")||o.data("conditionNotChecked")||o.is("[data-condition-not-checked]")},y=c.active.replace(".",""),h=o.data("dependencyCheckDisabled")||o.is("[data-dependency-check-disabled]"),m=!h&&a.is(":disabled"),v=o.data("condition-relation")||"or";l=n.pick(l,function(e){return!1!==e}),f="or"===v?n.reduce(l,function(e,n,i){return e||t[i](r,n,a)},!1):n.reduce(l,function(e,n,i){return e&&t[i](r,n,a)},!0),f&&!m?(o.data("select2")?(o.data("select2").container.addClass(y),o.data("select2").container.is(":hidden")&&o.data("select2").container.show()):(o.addClass(y),o.is(":hidden")&&o.show()),o.find(c.fields).prop("disabled",!1),"undefined"!=typeof e().select2&&o.find(".select2-container").select2("enable",!0)):(o.removeClass(y),o.is(":visible")&&o.hide(),o.find(c.fields).prop("disabled",!0),"undefined"!=typeof e().select2&&o.find(".select2-container").select2("enable",!1),o.data("select2")&&o.data("select2").container.removeClass(y)),o.find(c.dependency).trigger("change")}),a.addClass(c.dependencyVerified.className())}},"change.dependency":function(n){e(this).trigger("verify.dependency")}},c.dependency),i.run=function(n){var i=e(c.dependent);i.length&&i.dependency();var d=e(c.dependency);d.not(c.dependencyVerified).length&&d.trigger("verify.dependency")},d.ready(i.run),t.on("load",i.run)}(jQuery,_,{});
|
common/src/resources/js/dropdowns.js
CHANGED
@@ -216,6 +216,11 @@ var tribe_dropdowns = tribe_dropdowns || {};
|
|
216 |
args.allowClear = false;
|
217 |
}
|
218 |
|
|
|
|
|
|
|
|
|
|
|
219 |
// If we are dealing with a Input Hidden we need to set the Data for it to work
|
220 |
if ( $select.is( '[data-options]' ) ) {
|
221 |
args.data = $select.data( 'options' );
|
216 |
args.allowClear = false;
|
217 |
}
|
218 |
|
219 |
+
// Pass the "Searching..." placeholder if specified
|
220 |
+
if ( $select.is( '[data-searching-placeholder]' ) ) {
|
221 |
+
args.formatSearching = $select.data( 'searching-placeholder' );
|
222 |
+
}
|
223 |
+
|
224 |
// If we are dealing with a Input Hidden we need to set the Data for it to work
|
225 |
if ( $select.is( '[data-options]' ) ) {
|
226 |
args.data = $select.data( 'options' );
|
common/src/resources/js/dropdowns.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
var tribe_dropdowns=tribe_dropdowns||{};!function(e,t){"use strict";function a(t,r){if(!e.isArray(r))return!1;for(var o in r){var i=r[o];if(i.hasOwnProperty("id")&&i.id==t.id)return i;if(i.hasOwnProperty("text")&&i.text==t.text)return i;if(i.hasOwnProperty("children")&&e.isArray(i.children)){var n=a(t,i.children);if(n)return n}}return!1}t.selector={dropdown:".tribe-dropdown"},e.fn.tribe_dropdowns=function(){return t.dropdown(this),this},t.freefrom_create_search_choice=function(e,t){var a=this.opts,r=a.$select;if(e.match(a.regexToken)&&(!r.is("[data-int]")||r.is("[data-int]")&&e.match(/\d+/))){var o={id:e,text:e,"new":!0};return r.is("[data-create-choice-template]")&&(o.text=_.template(r.data("createChoiceTemplate"))({term:e})),o}},t.allow_html_markup=function(e){return e},t.search_id=function(e){var t=void 0;return"undefined"!=typeof e.id?t=e.id:"undefined"!=typeof e.ID?t=e.ID:"undefined"!=typeof e.value&&(t=e.value),void 0===e?void 0:t},t.matcher=function(e,a){var r=this.element,o=r.data("dropdown"),i=a.toUpperCase().indexOf(e.toUpperCase())!==-1;if(!i&&"undefined"!=typeof o.tags){var n=_.where(o.tags,{text:a});if(o.tags.length>0&&_.isObject(n)){var s=t.search_id(n[0]);i=s.toUpperCase().indexOf(e.toUpperCase())!==-1}}return i},t.init_selection=function(t,r){var o=t.is("[multiple]"),i=t.data("dropdown"),n=t.val().split(i.regexSplit),s=[];e(n).each(function(){var e={id:this,text:this},r=i.ajax?t.data("options"):i.data,o=a(e,r);o&&s.push(o)}),s.length&&o?r(s):s.length&&r(s[0])},t.element=function(a){var r,o=e(this),i={},n=["depends","condition","conditionNot","condition-not","conditionNotEmpty","condition-not-empty","conditionEmpty","condition-empty","conditionIsNumeric","condition-is-numeric","conditionIsNotNumeric","condition-is-not-numeric","conditionChecked","condition-is-checked"];if(i.$select=o,i.dropdownAutoWidth=!0,i.containerCss={},o.is(":visible")&&(i.containerCss.display="inline-block"),i.dropdownCss={},i.dropdownCss.width="auto",o.is("[data-dropdown-css-width]")&&(i.dropdownCss.width=o.data("dropdown-css-width"),i.dropdownCss.width||delete i.dropdownCss.width),i.matcher=t.matcher,o.is("select")||(i.id=t.search_id),i.allowClear=!0,o.is("[data-prevent-clear]")&&(i.allowClear=!1),o.is("[data-options]")&&(i.data=o.data("options"),o.is("select")||(i.initSelection=t.init_selection)),o.is("[data-allow-html]")&&(i.escapeMarkup=t.allow_html_markup),o.is("[data-hide-search]")&&(i.minimumResultsForSearch=1/0),o.is("[data-freeform]")&&(i.createSearchChoice=t.freefrom_create_search_choice),"tribe-ea-field-origin"===o.attr("id")&&(i.formatResult=i.upsellFormatter,i.formatSelection=i.upsellFormatter,i.escapeMarkup=t.allow_html_markup),o.is("[multiple]")&&(i.multiple=!0,o.is("data-separator")||o.data("separator",","),_.isArray(o.data("separator"))?i.tokenSeparators=o.data("separator"):i.tokenSeparators=[o.data("separator")],i.separator=o.data("separator"),i.regexSeparatorElements=["^("],i.regexSplitElements=["(?:"],e.each(i.tokenSeparators,function(e,t){i.regexSeparatorElements.push("[^"+t+"]+"),i.regexSplitElements.push("["+t+"]")}),i.regexSeparatorElements.push(")$"),i.regexSplitElements.push(")"),i.regexSeparatorString=i.regexSeparatorElements.join(""),i.regexSplitString=i.regexSplitElements.join(""),i.regexToken=new RegExp(i.regexSeparatorString,"ig"),i.regexSplit=new RegExp(i.regexSplitString,"ig")),o.is("[data-tags]")&&(i.tags=o.data("tags"),i.initSelection=t.init_selection,i.createSearchChoice=function(e,t){if(e.match(i.regexToken))return{id:e,text:e}},0===i.tags.length&&(i.formatNoMatches=function(){return o.attr("placeholder")})),o.is("[data-source]")){var s=o.data("source");i.data={results:[]},i.escapeMarkup=t.allow_html_markup,i.formatResult=function(t,a,r){return"undefined"!=typeof t.breadcrumbs?e.merge(t.breadcrumbs,[t.text]).join(" » "):t.text},i.ajax={dataType:"json",type:"POST",url:t.ajaxurl(),results:function(t,a,r){return e.isPlainObject(t)&&"undefined"!=typeof t.success?e.isPlainObject(t.data)&&"undefined"!=typeof t.data.results?t.success?t.data:("string"===e.type(t.data.message)?console.error(t.data.message):console.error("The Select2 search failed in some way... Verify the source."),{results:[]}):(console.error("We received a malformed results array, could not complete the Select2 Search."),{results:[]}):(console.error("We received a malformed Object, could not complete the Select2 Search."),{results:[]})}},i.ajax.data=function(e,t){return{action:"tribe_dropdown",source:s,search:e,page:t,args:o.data("source-args")}}}o.data("dropdown",i),r=o.select2(i).select2("container"),n.length>0&&n.map(function(e){var t="data-"+e,a=o.attr(t);a&&this.attr(t,a)},r)},t.action_change=function(t){var a=e(this),r=e(this).data("value");a.is("[multiple]")&&a.is("[data-source]")&&(t.added?_.isArray(r)?r.push(t.added):r=[t.added]:r=_.isArray(r)?_.without(r,t.removed):[],a.data("value",r).attr("data-value",JSON.stringify(r)))},t.ajaxurl=function(){return"undefined"!=typeof window.ajaxurl?window.ajaxurl:"undefined"!=typeof TEC&&"undefined"!=typeof TEC.ajaxurl?TEC.ajaxurl:void console.error("Dropdowns framework cannot properly do an AJAX request without the WordPress `ajaxurl` variable setup.")},t.action_select2_removed=function(t){var a=e(this);a.is("[data-sticky-search]")&&a.is("[data-last-search]")&&a.removeAttr("data-last-search").removeData("lastSearch")},t.action_bugfix_group_select=function(a){var r=e(this),o=r.select2("data"),i=e(".select2-drop:visible");i.find(".select2-selected").each(function(){var a=e(this),r=a.data("select2-data"),i=!0;"undefined"!=typeof r.children&&(e.each(o,function(e,a){t.search_id(r)==t.search_id(a)&&(i=!1)}),i&&a.removeClass("select2-selected"))})},t.action_select2_close=function(t){var a=e(this),r=e(".select2-drop .select2-input.select2-focused");a.is("[data-sticky-search]")&&r.off("keyup-change.tribe")},t.action_select2_open=function(t){var a=e(this),r=e(".select2-drop .select2-input:visible");a.is("[data-search-placeholder]")&&r.attr("placeholder",a.data("searchPlaceholder")),a.is("[data-sticky-search]")&&(r.on("keyup-change.tribe",function(){a.data("lastSearch",e(this).val()).attr("data-last-search",e(this).val())}),a.is("[data-last-search]")&&r.val(a.data("lastSearch")).trigger("keyup-change"))},t.dropdown=function(e){var a=e.not(".select2-offscreen, .select2-container");return a.each(t.element).on("select2-open",t.action_select2_open).on("select2-close",t.action_select2_close).on("select2-removed",t.action_select2_removed).on("select2-loaded",t.action_bugfix_group_select).on("change",t.action_change),a},e(function(){e(t.selector.dropdown).tribe_dropdowns()}),e(window).on("unload",function(){e(t.selector.dropdown).tribe_dropdowns()})}(jQuery,tribe_dropdowns);
|
1 |
+
var tribe_dropdowns=tribe_dropdowns||{};!function(e,t){"use strict";function a(t,r){if(!e.isArray(r))return!1;for(var o in r){var i=r[o];if(i.hasOwnProperty("id")&&i.id==t.id)return i;if(i.hasOwnProperty("text")&&i.text==t.text)return i;if(i.hasOwnProperty("children")&&e.isArray(i.children)){var n=a(t,i.children);if(n)return n}}return!1}t.selector={dropdown:".tribe-dropdown"},e.fn.tribe_dropdowns=function(){return t.dropdown(this),this},t.freefrom_create_search_choice=function(e,t){var a=this.opts,r=a.$select;if(e.match(a.regexToken)&&(!r.is("[data-int]")||r.is("[data-int]")&&e.match(/\d+/))){var o={id:e,text:e,"new":!0};return r.is("[data-create-choice-template]")&&(o.text=_.template(r.data("createChoiceTemplate"))({term:e})),o}},t.allow_html_markup=function(e){return e},t.search_id=function(e){var t=void 0;return"undefined"!=typeof e.id?t=e.id:"undefined"!=typeof e.ID?t=e.ID:"undefined"!=typeof e.value&&(t=e.value),void 0===e?void 0:t},t.matcher=function(e,a){var r=this.element,o=r.data("dropdown"),i=a.toUpperCase().indexOf(e.toUpperCase())!==-1;if(!i&&"undefined"!=typeof o.tags){var n=_.where(o.tags,{text:a});if(o.tags.length>0&&_.isObject(n)){var s=t.search_id(n[0]);i=s.toUpperCase().indexOf(e.toUpperCase())!==-1}}return i},t.init_selection=function(t,r){var o=t.is("[multiple]"),i=t.data("dropdown"),n=t.val().split(i.regexSplit),s=[];e(n).each(function(){var e={id:this,text:this},r=i.ajax?t.data("options"):i.data,o=a(e,r);o&&s.push(o)}),s.length&&o?r(s):s.length&&r(s[0])},t.element=function(a){var r,o=e(this),i={},n=["depends","condition","conditionNot","condition-not","conditionNotEmpty","condition-not-empty","conditionEmpty","condition-empty","conditionIsNumeric","condition-is-numeric","conditionIsNotNumeric","condition-is-not-numeric","conditionChecked","condition-is-checked"];if(i.$select=o,i.dropdownAutoWidth=!0,i.containerCss={},o.is(":visible")&&(i.containerCss.display="inline-block"),i.dropdownCss={},i.dropdownCss.width="auto",o.is("[data-dropdown-css-width]")&&(i.dropdownCss.width=o.data("dropdown-css-width"),i.dropdownCss.width||delete i.dropdownCss.width),i.matcher=t.matcher,o.is("select")||(i.id=t.search_id),i.allowClear=!0,o.is("[data-prevent-clear]")&&(i.allowClear=!1),o.is("[data-searching-placeholder]")&&(i.formatSearching=o.data("searching-placeholder")),o.is("[data-options]")&&(i.data=o.data("options"),o.is("select")||(i.initSelection=t.init_selection)),o.is("[data-allow-html]")&&(i.escapeMarkup=t.allow_html_markup),o.is("[data-hide-search]")&&(i.minimumResultsForSearch=1/0),o.is("[data-freeform]")&&(i.createSearchChoice=t.freefrom_create_search_choice),"tribe-ea-field-origin"===o.attr("id")&&(i.formatResult=i.upsellFormatter,i.formatSelection=i.upsellFormatter,i.escapeMarkup=t.allow_html_markup),o.is("[multiple]")&&(i.multiple=!0,o.is("data-separator")||o.data("separator",","),_.isArray(o.data("separator"))?i.tokenSeparators=o.data("separator"):i.tokenSeparators=[o.data("separator")],i.separator=o.data("separator"),i.regexSeparatorElements=["^("],i.regexSplitElements=["(?:"],e.each(i.tokenSeparators,function(e,t){i.regexSeparatorElements.push("[^"+t+"]+"),i.regexSplitElements.push("["+t+"]")}),i.regexSeparatorElements.push(")$"),i.regexSplitElements.push(")"),i.regexSeparatorString=i.regexSeparatorElements.join(""),i.regexSplitString=i.regexSplitElements.join(""),i.regexToken=new RegExp(i.regexSeparatorString,"ig"),i.regexSplit=new RegExp(i.regexSplitString,"ig")),o.is("[data-tags]")&&(i.tags=o.data("tags"),i.initSelection=t.init_selection,i.createSearchChoice=function(e,t){if(e.match(i.regexToken))return{id:e,text:e}},0===i.tags.length&&(i.formatNoMatches=function(){return o.attr("placeholder")})),o.is("[data-source]")){var s=o.data("source");i.data={results:[]},i.escapeMarkup=t.allow_html_markup,i.formatResult=function(t,a,r){return"undefined"!=typeof t.breadcrumbs?e.merge(t.breadcrumbs,[t.text]).join(" » "):t.text},i.ajax={dataType:"json",type:"POST",url:t.ajaxurl(),results:function(t,a,r){return e.isPlainObject(t)&&"undefined"!=typeof t.success?e.isPlainObject(t.data)&&"undefined"!=typeof t.data.results?t.success?t.data:("string"===e.type(t.data.message)?console.error(t.data.message):console.error("The Select2 search failed in some way... Verify the source."),{results:[]}):(console.error("We received a malformed results array, could not complete the Select2 Search."),{results:[]}):(console.error("We received a malformed Object, could not complete the Select2 Search."),{results:[]})}},i.ajax.data=function(e,t){return{action:"tribe_dropdown",source:s,search:e,page:t,args:o.data("source-args")}}}o.data("dropdown",i),r=o.select2(i).select2("container"),n.length>0&&n.map(function(e){var t="data-"+e,a=o.attr(t);a&&this.attr(t,a)},r)},t.action_change=function(t){var a=e(this),r=e(this).data("value");a.is("[multiple]")&&a.is("[data-source]")&&(t.added?_.isArray(r)?r.push(t.added):r=[t.added]:r=_.isArray(r)?_.without(r,t.removed):[],a.data("value",r).attr("data-value",JSON.stringify(r)))},t.ajaxurl=function(){return"undefined"!=typeof window.ajaxurl?window.ajaxurl:"undefined"!=typeof TEC&&"undefined"!=typeof TEC.ajaxurl?TEC.ajaxurl:void console.error("Dropdowns framework cannot properly do an AJAX request without the WordPress `ajaxurl` variable setup.")},t.action_select2_removed=function(t){var a=e(this);a.is("[data-sticky-search]")&&a.is("[data-last-search]")&&a.removeAttr("data-last-search").removeData("lastSearch")},t.action_bugfix_group_select=function(a){var r=e(this),o=r.select2("data"),i=e(".select2-drop:visible");i.find(".select2-selected").each(function(){var a=e(this),r=a.data("select2-data"),i=!0;"undefined"!=typeof r.children&&(e.each(o,function(e,a){t.search_id(r)==t.search_id(a)&&(i=!1)}),i&&a.removeClass("select2-selected"))})},t.action_select2_close=function(t){var a=e(this),r=e(".select2-drop .select2-input.select2-focused");a.is("[data-sticky-search]")&&r.off("keyup-change.tribe")},t.action_select2_open=function(t){var a=e(this),r=e(".select2-drop .select2-input:visible");a.is("[data-search-placeholder]")&&r.attr("placeholder",a.data("searchPlaceholder")),a.is("[data-sticky-search]")&&(r.on("keyup-change.tribe",function(){a.data("lastSearch",e(this).val()).attr("data-last-search",e(this).val())}),a.is("[data-last-search]")&&r.val(a.data("lastSearch")).trigger("keyup-change"))},t.dropdown=function(e){var a=e.not(".select2-offscreen, .select2-container");return a.each(t.element).on("select2-open",t.action_select2_open).on("select2-close",t.action_select2_close).on("select2-removed",t.action_select2_removed).on("select2-loaded",t.action_bugfix_group_select).on("change",t.action_change),a},e(function(){e(t.selector.dropdown).tribe_dropdowns()}),e(window).on("unload",function(){e(t.selector.dropdown).tribe_dropdowns()})}(jQuery,tribe_dropdowns);
|
common/tribe-common.php
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
/*
|
3 |
Description: An event settings framework for managing shared options
|
4 |
-
Version: 4.7
|
5 |
Author: Modern Tribe, Inc.
|
6 |
Author URI: http://m.tri.be/1x
|
7 |
Text Domain: tribe-common
|
1 |
<?php
|
2 |
/*
|
3 |
Description: An event settings framework for managing shared options
|
4 |
+
Version: 4.7.2
|
5 |
Author: Modern Tribe, Inc.
|
6 |
Author URI: http://m.tri.be/1x
|
7 |
Text Domain: tribe-common
|
event-tickets.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/*
|
3 |
Plugin Name: Event Tickets
|
4 |
Description: Event Tickets allows your guests to RSVP from any post, page, or event.
|
5 |
-
Version: 4.6
|
6 |
Author: Modern Tribe, Inc.
|
7 |
Author URI: http://m.tri.be/28
|
8 |
License: GPLv2 or later
|
2 |
/*
|
3 |
Plugin Name: Event Tickets
|
4 |
Description: Event Tickets allows your guests to RSVP from any post, page, or event.
|
5 |
+
Version: 4.6.1
|
6 |
Author: Modern Tribe, Inc.
|
7 |
Author URI: http://m.tri.be/28
|
8 |
License: GPLv2 or later
|
lang/event-tickets-cs_CZ.mo
CHANGED
Binary file
|
lang/event-tickets-cs_CZ.po
CHANGED
@@ -11,7 +11,49 @@ msgstr ""
|
|
11 |
"Language: cs_CZ\n"
|
12 |
"Project-Id-Version: Event Tickets\n"
|
13 |
|
14 |
-
#: src/admin-views/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15 |
msgid "You have unsaved changes to your tickets. Discard those changes?"
|
16 |
msgstr ""
|
17 |
|
@@ -44,66 +86,66 @@ msgctxt "ticket shared capacity message (remaining stock)"
|
|
44 |
msgid "%1$d Remaining of shared capacity"
|
45 |
msgstr ""
|
46 |
|
47 |
-
#: src/admin-views/
|
48 |
msgid "Ti"
|
49 |
msgstr ""
|
50 |
|
51 |
-
#: src/admin-views/
|
52 |
msgid "History"
|
53 |
msgstr ""
|
54 |
|
55 |
-
#: src/admin-views/
|
56 |
msgid "If you do not set an end sale date, tickets sales will never end."
|
57 |
msgstr ""
|
58 |
|
59 |
-
#: src/admin-views/
|
60 |
msgid "If you do not set an end sale date, tickets will be available until the event begins."
|
61 |
msgstr ""
|
62 |
|
63 |
-
#: src/admin-views/
|
64 |
msgid "If you do not set a start sale date, tickets will be available immediately."
|
65 |
msgstr ""
|
66 |
|
67 |
-
#: src/admin-views/
|
68 |
-
#: src/admin-views/
|
69 |
msgid "HH:MM"
|
70 |
msgstr ""
|
71 |
|
72 |
-
#: src/admin-views/
|
73 |
-
#: src/admin-views/
|
74 |
msgid "at"
|
75 |
msgstr ""
|
76 |
|
77 |
-
#: src/admin-views/
|
78 |
-
#: src/admin-views/
|
79 |
msgid "YYYY-MM-DD"
|
80 |
msgstr ""
|
81 |
|
82 |
-
#: src/admin-views/
|
83 |
msgid "Show description on front end ticket form."
|
84 |
msgstr ""
|
85 |
|
86 |
-
#: src/admin-views/
|
87 |
msgid "Description:"
|
88 |
msgstr ""
|
89 |
|
90 |
-
#: src/admin-views/
|
91 |
msgid "Advanced Settings"
|
92 |
msgstr ""
|
93 |
|
94 |
-
#: src/admin-views/
|
95 |
msgid "Advanced"
|
96 |
msgstr ""
|
97 |
|
98 |
-
#: src/admin-views/
|
99 |
msgid "Save settings"
|
100 |
msgstr ""
|
101 |
|
102 |
-
#: src/admin-views/
|
103 |
msgid "Select an image from your Media Library to display on emailed tickets. For best results, use a .jpg, .png, or .gif at least 1160px wide."
|
104 |
msgstr ""
|
105 |
|
106 |
-
#: src/admin-views/
|
107 |
msgid "Ticket header image:"
|
108 |
msgstr ""
|
109 |
|
@@ -111,132 +153,108 @@ msgstr ""
|
|
111 |
msgid "Leave blank for unlimited"
|
112 |
msgstr ""
|
113 |
|
114 |
-
#: src/admin-views/list.php:
|
115 |
msgid "Available"
|
116 |
msgstr ""
|
117 |
|
118 |
-
#: src/admin-views/list.php:
|
119 |
msgid "Capacity"
|
120 |
msgstr ""
|
121 |
|
122 |
-
#: src/admin-views/
|
123 |
msgid "Save RSVP"
|
124 |
msgstr ""
|
125 |
|
126 |
-
#: src/admin-views/
|
127 |
msgid "Save ticket"
|
128 |
msgstr ""
|
129 |
|
130 |
-
#: src/admin-views/
|
131 |
msgid "Ticket type name shows on the front end and emailed tickets"
|
132 |
msgstr ""
|
133 |
|
134 |
-
#: src/admin-views/
|
135 |
msgid "Ticket Type is a required field."
|
136 |
msgstr ""
|
137 |
|
138 |
-
#: src/admin-views/
|
139 |
msgid "Type:"
|
140 |
msgstr ""
|
141 |
|
142 |
-
#: src/admin-views/
|
143 |
msgid "Edit RSVP"
|
144 |
msgstr ""
|
145 |
|
146 |
-
#: src/admin-views/
|
147 |
msgid "Add new RSVP"
|
148 |
msgstr ""
|
149 |
|
150 |
-
#: src/admin-views/
|
151 |
msgid "Start sale date cannot be greater than End Sale date"
|
152 |
msgstr ""
|
153 |
|
154 |
-
#: src/admin-views/
|
155 |
msgid "Start sale date cannot be empty."
|
156 |
msgstr ""
|
157 |
|
158 |
-
#: src/admin-views/
|
159 |
msgid "New RSVP"
|
160 |
msgstr ""
|
161 |
|
162 |
-
#: src/admin-views/
|
163 |
msgid "Add a new RSVP"
|
164 |
msgstr ""
|
165 |
|
166 |
-
#: src/admin-views/
|
167 |
msgid "View Attendees"
|
168 |
msgstr ""
|
169 |
|
170 |
-
#: src/
|
171 |
msgid "( Ticket ID: %d )"
|
172 |
msgstr ""
|
173 |
|
174 |
-
#: src/
|
175 |
msgid "The number of Complete ticket sales does not match the number of attendees. Please check the Attendees list and adjust ticket stock in WooCommerce as needed."
|
176 |
msgstr ""
|
177 |
|
178 |
-
#: src/
|
179 |
msgid "Available:"
|
180 |
msgstr ""
|
181 |
|
182 |
-
#: src/
|
183 |
#: src/admin-views/rsvp-metabox-capacity.php:10
|
184 |
msgid "Capacity:"
|
185 |
msgstr ""
|
186 |
|
187 |
-
#: src/Tribe/Tickets_Handler.php:
|
188 |
msgid "Unlimited"
|
189 |
msgstr ""
|
190 |
|
191 |
-
#: src/Tribe/Tickets.php:
|
192 |
-
msgid "Global capacity updated. New level set to %n"
|
193 |
-
msgstr ""
|
194 |
-
|
195 |
-
#: src/Tribe/Tickets.php:1452
|
196 |
-
msgid "Bad capacity data."
|
197 |
-
msgstr ""
|
198 |
-
|
199 |
-
#: src/Tribe/Tickets.php:1447
|
200 |
-
msgid "Missing required capacity."
|
201 |
-
msgstr ""
|
202 |
-
|
203 |
-
#: src/Tribe/Tickets.php:1443
|
204 |
-
msgid "Missing required post ID."
|
205 |
-
msgstr ""
|
206 |
-
|
207 |
-
#: src/Tribe/Tickets.php:1409
|
208 |
msgid "Set capacity for this ticket only"
|
209 |
msgstr ""
|
210 |
|
211 |
-
#: src/Tribe/Tickets.php:
|
212 |
msgid "Shared capacity with other tickets"
|
213 |
msgstr ""
|
214 |
|
215 |
-
#: src/Tribe/
|
216 |
msgid "Failed to Add the Ticket"
|
217 |
msgstr ""
|
218 |
|
219 |
-
#: src/Tribe/Tickets.php:
|
220 |
-
msgid "No Post ID was provided."
|
221 |
-
msgstr ""
|
222 |
-
|
223 |
-
#: src/Tribe/Tickets.php:755
|
224 |
-
msgid "Your settings have been saved."
|
225 |
-
msgstr ""
|
226 |
-
|
227 |
-
#: src/Tribe/Tickets.php:386
|
228 |
msgid "Move Ticket"
|
229 |
msgstr ""
|
230 |
|
231 |
-
#: src/Tribe/Tickets.php:
|
232 |
msgid "Move RSVP"
|
233 |
msgstr ""
|
234 |
|
235 |
-
#: src/Tribe/Tickets.php:
|
236 |
msgid "Delete Ticket"
|
237 |
msgstr ""
|
238 |
|
239 |
-
#: src/Tribe/Tickets.php:
|
240 |
msgid "Delete RSVP"
|
241 |
msgstr ""
|
242 |
|
@@ -324,22 +342,22 @@ msgstr ""
|
|
324 |
msgid "Below the event details [default]"
|
325 |
msgstr ""
|
326 |
|
327 |
-
#: src/admin-views/attendees.php:
|
328 |
msgctxt "attendee screen summary"
|
329 |
msgid "Attendees By Ticket"
|
330 |
msgstr ""
|
331 |
|
332 |
-
#: src/admin-views/attendees.php:
|
333 |
msgctxt "attendee screen summary"
|
334 |
msgid "Event Details"
|
335 |
msgstr ""
|
336 |
|
337 |
-
#: src/Tribe/
|
338 |
msgctxt "attendee event actions"
|
339 |
msgid "View Event"
|
340 |
msgstr ""
|
341 |
|
342 |
-
#: src/Tribe/
|
343 |
msgctxt "attendee event actions"
|
344 |
msgid "Edit Event"
|
345 |
msgstr ""
|
@@ -557,45 +575,45 @@ msgstr ""
|
|
557 |
msgid "You are running Version %s and deserve a hug :-)"
|
558 |
msgstr "Používáte verzi %s a zasloužíte si obejmout :-)"
|
559 |
|
560 |
-
#: src/Tribe/
|
561 |
msgctxt "attendee export"
|
562 |
msgid "Customer Email Address"
|
563 |
msgstr ""
|
564 |
|
565 |
-
#: src/Tribe/
|
566 |
msgctxt "attendee export"
|
567 |
msgid "Customer Name"
|
568 |
msgstr ""
|
569 |
|
570 |
-
#: src/Tribe/
|
571 |
msgctxt "attendee export"
|
572 |
msgid "Ticket #"
|
573 |
msgstr ""
|
574 |
|
575 |
-
#: src/Tribe/
|
576 |
msgctxt "attendee export"
|
577 |
msgid "Order Status"
|
578 |
msgstr ""
|
579 |
|
580 |
-
#: src/Tribe/
|
581 |
msgctxt "attendee export"
|
582 |
msgid "Order ID"
|
583 |
msgstr ""
|
584 |
|
585 |
-
#: src/Tribe/
|
586 |
msgid "You must first select one or more tickets before you can move them!"
|
587 |
msgstr ""
|
588 |
|
589 |
-
#: src/Tribe/
|
590 |
msgid "Post type"
|
591 |
msgstr ""
|
592 |
|
593 |
-
#: src/Tribe/
|
594 |
msgctxt "attendee event actions"
|
595 |
msgid "View"
|
596 |
msgstr ""
|
597 |
|
598 |
-
#: src/Tribe/
|
599 |
msgctxt "attendee event actions"
|
600 |
msgid "Edit"
|
601 |
msgstr ""
|
@@ -628,16 +646,16 @@ msgctxt "attendee summary"
|
|
628 |
msgid "Total RSVPs:"
|
629 |
msgstr ""
|
630 |
|
631 |
-
#: src/Tribe/Assets.php:
|
632 |
msgid "Are you sure you want to delete this ticket? This cannot be undone."
|
633 |
msgstr ""
|
634 |
|
635 |
-
#: src/Tribe/Main.php:
|
636 |
msgctxt "button text"
|
637 |
msgid "RSVP"
|
638 |
msgstr ""
|
639 |
|
640 |
-
#: src/Tribe/Main.php:
|
641 |
msgid "Welcome to Event Tickets"
|
642 |
msgstr ""
|
643 |
|
@@ -686,7 +704,7 @@ msgctxt "attendee summary"
|
|
686 |
msgid "Deleted Attendees:"
|
687 |
msgstr ""
|
688 |
|
689 |
-
#: src/Tribe/
|
690 |
msgctxt "attendee summary"
|
691 |
msgid "Checked in:"
|
692 |
msgstr ""
|
@@ -845,22 +863,22 @@ msgstr ""
|
|
845 |
msgid "My RSVPs for This %s"
|
846 |
msgstr ""
|
847 |
|
848 |
-
#: src/views/tickets/orders-link.php:
|
849 |
msgid "View your %s"
|
850 |
msgstr ""
|
851 |
|
852 |
-
#: src/views/tickets/orders-link.php:
|
853 |
msgid "You have %s for this %s."
|
854 |
msgstr ""
|
855 |
|
856 |
-
#: src/views/tickets/orders-link.php:
|
857 |
msgid "%d Ticket"
|
858 |
msgid_plural "%d Tickets"
|
859 |
msgstr[0] ""
|
860 |
msgstr[1] ""
|
861 |
msgstr[2] ""
|
862 |
|
863 |
-
#: src/views/tickets/orders-link.php:
|
864 |
msgid "%d RSVP"
|
865 |
msgid_plural "%d RSVPs"
|
866 |
msgstr[0] ""
|
@@ -912,35 +930,35 @@ msgstr ""
|
|
912 |
msgid "Going"
|
913 |
msgstr ""
|
914 |
|
915 |
-
#: src/Tribe/Tickets.php:
|
916 |
msgid "There are no tickets available at this time."
|
917 |
msgstr ""
|
918 |
|
919 |
-
#: src/Tribe/Tickets.php:
|
920 |
msgid "Tickets are no longer available."
|
921 |
msgstr ""
|
922 |
|
923 |
-
#: src/Tribe/Tickets.php:
|
924 |
msgid "Tickets are not yet available."
|
925 |
msgstr ""
|
926 |
|
927 |
-
#: src/Tribe/Tickets.php:
|
928 |
msgid "Tickets are not available as this %s has passed."
|
929 |
msgstr ""
|
930 |
|
931 |
-
#: src/Tribe/RSVP.php:
|
932 |
msgid "You confirmed you will not be attending %s"
|
933 |
msgstr ""
|
934 |
|
935 |
-
#: src/Tribe/Assets.php:
|
936 |
msgid "Please enter in without thousand separators and currency symbols."
|
937 |
msgstr ""
|
938 |
|
939 |
-
#: src/Tribe/Assets.php:
|
940 |
msgid "It looks like you have modified your shared capacity setting but have not saved or updated the post."
|
941 |
msgstr ""
|
942 |
|
943 |
-
#: src/Tribe/Main.php:
|
944 |
msgid "Buy"
|
945 |
msgstr ""
|
946 |
|
@@ -992,8 +1010,8 @@ msgstr "Název, ID nebo Název v URL akce"
|
|
992 |
msgid "View order"
|
993 |
msgstr ""
|
994 |
|
995 |
-
#: src/admin-views/
|
996 |
-
#: src/admin-views/
|
997 |
msgid "Cancel"
|
998 |
msgstr "Zrušit"
|
999 |
|
@@ -1001,123 +1019,119 @@ msgstr "Zrušit"
|
|
1001 |
msgid "Send Email"
|
1002 |
msgstr "Poslat email"
|
1003 |
|
1004 |
-
#: src/Tribe/
|
1005 |
msgid "Email sent successfully!"
|
1006 |
msgstr "Email byl úspěšně odeslán!"
|
1007 |
|
1008 |
-
#: src/Tribe/
|
1009 |
msgid "Error when sending the email"
|
1010 |
msgstr "Došlo k chybě při odesílání emailu"
|
1011 |
|
1012 |
-
#: src/Tribe/
|
1013 |
msgid "Invalid User ID"
|
1014 |
msgstr "Neplatné ID uživatele"
|
1015 |
|
1016 |
-
#: src/Tribe/
|
1017 |
msgid "Invalid Email"
|
1018 |
msgstr "Neplatná emailová adresa"
|
1019 |
|
1020 |
-
#: src/Tribe/
|
1021 |
msgid "Empty user and email"
|
1022 |
msgstr "Nebylo zadáno uživatelské jméno a emailová adresa"
|
1023 |
|
1024 |
-
#: src/Tribe/
|
1025 |
msgid "Invalid Event ID"
|
1026 |
msgstr "Neplatné ID akce"
|
1027 |
|
1028 |
-
#: src/Tribe/
|
1029 |
msgid "Cheatin Huh?"
|
1030 |
msgstr "Co zkúšáš, jak zkúšáš?"
|
1031 |
|
1032 |
-
#: src/Tribe/
|
1033 |
-
msgid "Editing the ticket price is currently disallowed."
|
1034 |
-
msgstr "Upravovaní ceny vstupenky není aktuálně povoleno."
|
1035 |
-
|
1036 |
-
#: src/Tribe/RSVP.php:1780
|
1037 |
msgid "Post draft updated."
|
1038 |
msgstr "Koncept příspěvku byl uložen."
|
1039 |
|
1040 |
-
#: src/Tribe/RSVP.php:
|
1041 |
msgid "Post scheduled."
|
1042 |
msgstr "Příspěvek bude automaticky publikován."
|
1043 |
|
1044 |
-
#: src/Tribe/RSVP.php:
|
1045 |
msgid "Post submitted."
|
1046 |
msgstr "Příspěvek byl odeslán ke schválení."
|
1047 |
|
1048 |
-
#: src/Tribe/RSVP.php:
|
1049 |
msgid "Post published. %1$s"
|
1050 |
msgstr "Příspěvek byl publikován. %1$s"
|
1051 |
|
1052 |
-
#: src/Tribe/RSVP.php:
|
1053 |
msgid "Post updated. %1$s"
|
1054 |
msgstr "Příspěvek byl aktualizován. %1$s"
|
1055 |
|
1056 |
-
#: src/Tribe/RSVP.php:
|
1057 |
msgid "Return to the %1$sAttendees Report%2$s."
|
1058 |
msgstr "Zpět na %1$spřehled účastníků%2$s."
|
1059 |
|
1060 |
-
#: src/Tribe/RSVP.php:
|
1061 |
msgid "You can't RSVP more than the total remaining tickets."
|
1062 |
msgstr "Nemůžete potvrdit účast pro více než kolik je k dispozici zbývajících vstupenek."
|
1063 |
|
1064 |
-
#: src/Tribe/Main.php:
|
1065 |
msgid "If you have a valid license for one of our paid plugins, you can %s in our premium support forums. Our support team monitors the forums and will respond to your thread within 24-48 hours (during the week)."
|
1066 |
msgstr ""
|
1067 |
|
1068 |
-
#: src/Tribe/Main.php:
|
1069 |
msgid "Already have Events Tickets Plus? You can %s in our premium support forums. Our support team monitors the forums and will respond to your thread within 24-48 hours (during the week)."
|
1070 |
msgstr ""
|
1071 |
|
1072 |
-
#: src/Tribe/Main.php:
|
1073 |
msgid "post a thread"
|
1074 |
msgstr ""
|
1075 |
|
1076 |
-
#: src/Tribe/Main.php:
|
1077 |
msgid "Looking for more immediate support? We offer %1$s with the purchase of any of our premium plugins (like %2$s). Pick up a license and you can post there directly and expect a response within 24-48 hours during weekdays."
|
1078 |
msgstr ""
|
1079 |
|
1080 |
-
#: src/Tribe/Main.php:
|
1081 |
msgid "Events Tickets Plus"
|
1082 |
msgstr "Events Tickets Plus"
|
1083 |
|
1084 |
-
#: src/Tribe/Main.php:
|
1085 |
msgid "premium support on our website"
|
1086 |
msgstr ""
|
1087 |
|
1088 |
-
#: src/Tribe/Main.php:
|
1089 |
msgid "If you have tried the above steps and are still having trouble, you can post a new thread to our %s. Our support staff monitors these forums once a week and would be happy to assist you there."
|
1090 |
msgstr ""
|
1091 |
|
1092 |
-
#: src/Tribe/Main.php:
|
1093 |
msgid "open-source forum on WordPress.org"
|
1094 |
msgstr ""
|
1095 |
|
1096 |
-
#: src/Tribe/Main.php:
|
1097 |
msgid "We are committed to helping you sell tickets for your event. Check out our handy %s to get started."
|
1098 |
msgstr ""
|
1099 |
|
1100 |
-
#: src/Tribe/Main.php:
|
1101 |
msgid "New User Primer"
|
1102 |
msgstr ""
|
1103 |
|
1104 |
-
#: src/Tribe/Main.php:
|
1105 |
msgid "Customizing Event Tickets"
|
1106 |
msgstr ""
|
1107 |
|
1108 |
-
#: src/Tribe/Main.php:
|
1109 |
msgid "Troubleshooting common problems"
|
1110 |
msgstr ""
|
1111 |
|
1112 |
-
#: src/Tribe/Main.php:
|
1113 |
msgid "Features overview"
|
1114 |
msgstr "Přehled funkcí"
|
1115 |
|
1116 |
-
#: src/Tribe/Main.php:
|
1117 |
msgid "Settings overview"
|
1118 |
msgstr "Přehled nastavení"
|
1119 |
|
1120 |
-
#: src/Tribe/Main.php:
|
1121 |
msgid "Support for Event Tickets"
|
1122 |
msgstr ""
|
1123 |
|
@@ -1125,7 +1139,7 @@ msgstr ""
|
|
1125 |
msgid "When The Events Calendar and Event Tickets are both activated, The Events Calendar must be running version %1$s or greater. Please %2$supdate now.%3$s"
|
1126 |
msgstr ""
|
1127 |
|
1128 |
-
#: src/Tribe/Tickets_View.php:673 src/views/tickets/orders-link.php:
|
1129 |
msgid " and "
|
1130 |
msgstr " a "
|
1131 |
|
@@ -1137,9 +1151,9 @@ msgstr "http://m.tri.be/28"
|
|
1137 |
msgid "Modern Tribe, Inc."
|
1138 |
msgstr "Modern Tribe, Inc."
|
1139 |
|
1140 |
-
#. #-#-#-#-# event-tickets.pot (Event Tickets 4.6) #-#-#-#-#
|
1141 |
#. Plugin Name of the plugin/theme
|
1142 |
-
#: src/Tribe/Main.php:
|
1143 |
msgid "Event Tickets"
|
1144 |
msgstr "Event Tickets"
|
1145 |
|
@@ -1163,17 +1177,17 @@ msgstr "%1$s z celkem %2$s k dispozici"
|
|
1163 |
msgid "RSVP"
|
1164 |
msgstr "Potvrzení účasti"
|
1165 |
|
1166 |
-
#: src/views/tickets/email.php:
|
1167 |
msgid "Purchaser"
|
1168 |
msgstr "Kupující"
|
1169 |
|
1170 |
-
#: src/views/tickets/email.php:
|
1171 |
msgid "Ticket Type"
|
1172 |
msgstr "Typ vstupenky"
|
1173 |
|
1174 |
#: src/views/tickets/email-non-attendance.php:24
|
1175 |
#: src/views/tickets/email-ticket-type-moved.php:25
|
1176 |
-
#: src/views/tickets/email-tickets-moved.php:26 src/views/tickets/email.php:
|
1177 |
msgid "Your tickets"
|
1178 |
msgstr "Vaše vstupenky"
|
1179 |
|
@@ -1185,16 +1199,16 @@ msgstr "Seznam účastníků"
|
|
1185 |
msgid "Post types that can have tickets"
|
1186 |
msgstr "Typy příspěvků, které mohou mít vstupenky"
|
1187 |
|
1188 |
-
#: src/admin-views/
|
1189 |
#: src/admin-views/tribe-options-tickets.php:47
|
1190 |
msgid "Ticket Settings"
|
1191 |
msgstr "Nastavení pro vstupenky"
|
1192 |
|
1193 |
-
#: src/admin-views/
|
1194 |
msgid "End sale:"
|
1195 |
msgstr "Konec prodeje:"
|
1196 |
|
1197 |
-
#: src/admin-views/
|
1198 |
msgid "Start sale:"
|
1199 |
msgstr "Začátek prodeje:"
|
1200 |
|
@@ -1214,23 +1228,23 @@ msgstr "(pro vstupné zdarma ponechte prázdné nebo zadejte 0)"
|
|
1214 |
msgid "Price:"
|
1215 |
msgstr "Cena:"
|
1216 |
|
1217 |
-
#: src/admin-views/
|
1218 |
msgid "Sell using:"
|
1219 |
msgstr "Prodej pomocí:"
|
1220 |
|
1221 |
-
#: src/admin-views/
|
1222 |
msgid "Edit ticket"
|
1223 |
msgstr "Upravit vstupenku"
|
1224 |
|
1225 |
-
#: src/admin-views/
|
1226 |
msgid "Add new ticket"
|
1227 |
msgstr "Přidat novou vstupenku"
|
1228 |
|
1229 |
-
#: src/admin-views/
|
1230 |
msgid "Remove"
|
1231 |
msgstr "Odstranit"
|
1232 |
|
1233 |
-
#: src/admin-views/
|
1234 |
msgid "Select an Image"
|
1235 |
msgstr "Zvolit obrázek"
|
1236 |
|
@@ -1254,65 +1268,57 @@ msgstr "Vybrat uživatele:"
|
|
1254 |
msgid "Send the attendee list by email"
|
1255 |
msgstr "Poslat seznam účastníků emailem"
|
1256 |
|
1257 |
-
#: src/Tribe/
|
1258 |
msgid "Attendee List for: %s"
|
1259 |
msgstr "Seznam účastníků na: %s"
|
1260 |
|
1261 |
-
#: src/Tribe/
|
1262 |
msgid "attendees"
|
1263 |
msgstr "ucastnici"
|
1264 |
|
1265 |
-
#: src/Tribe/
|
1266 |
msgid "Yes"
|
1267 |
msgstr "Ano"
|
1268 |
|
1269 |
-
#: src/Tribe/
|
1270 |
msgid "You can use Screen Options to select which columns you want to see. The selection works in the table below, in the email, for print and for the CSV export."
|
1271 |
msgstr "Pomocí záložky „Nastavení zobrazených informací“ si můžete vybrat, které sloupce chcete zobrazit. Tento výběr se projeví při výpisu, při odesílání emailem, při tisku a při exportu do CSV souboru."
|
1272 |
|
1273 |
-
#: src/Tribe/
|
1274 |
msgid "Columns"
|
1275 |
msgstr "Sloupce"
|
1276 |
|
1277 |
-
#: src/Tribe/
|
1278 |
msgid "Sending..."
|
1279 |
msgstr "Odesílání..."
|
1280 |
|
1281 |
-
#: src/Tribe/
|
1282 |
msgid "You need to select a user or type a valid email address"
|
1283 |
msgstr "Je třeba vybrat uživatele nebo zadat platnou emailovou adresu"
|
1284 |
|
1285 |
-
#: src/Tribe/Admin/Columns/Tickets.php:57
|
1286 |
#: src/Tribe/Tabbed_View/Attendee_Report_Tab.php:22
|
1287 |
-
#: src/
|
1288 |
msgid "Attendees"
|
1289 |
msgstr "Účastníci"
|
1290 |
|
1291 |
-
#: src/Tribe/
|
1292 |
msgid "See who purchased tickets to this event"
|
1293 |
msgstr "Kdo si koupil vstupenky na tuto akci"
|
1294 |
|
1295 |
-
#: src/Tribe/
|
1296 |
-
msgid "Your ticket has been deleted."
|
1297 |
-
msgstr "Vaše vstupenka byla smazána."
|
1298 |
-
|
1299 |
-
#: src/Tribe/Tickets.php:758
|
1300 |
-
msgid "Your ticket has been saved."
|
1301 |
-
msgstr "Vaše vstupenka byla uložena."
|
1302 |
-
|
1303 |
-
#: src/Tribe/RSVP.php:1469
|
1304 |
msgid "(deleted)"
|
1305 |
msgstr "(smazáno)"
|
1306 |
|
1307 |
-
#: src/Tribe/RSVP.php:
|
1308 |
msgid "In order to RSVP, you must enter your name and a valid email address."
|
1309 |
msgstr "Pro potvrzení účasti musíte zadat své jméno a platnou emailovou adresu."
|
1310 |
|
1311 |
-
#: src/Tribe/RSVP.php:
|
1312 |
msgid "Your RSVP has been received! Check your email for your RSVP confirmation."
|
1313 |
msgstr "Vaše potvrzení účasti bylo přijato. Zkontrolujte prosím emailovou schránku, kam byl odeslán kontrolní email."
|
1314 |
|
1315 |
-
#: src/Tribe/RSVP.php:
|
1316 |
msgid "Your tickets from %s"
|
1317 |
msgstr "Vaše vstupenky z webu %s"
|
1318 |
|
@@ -1358,20 +1364,20 @@ msgstr "Zrušit registraci"
|
|
1358 |
msgid "Check in"
|
1359 |
msgstr "Zaregistrovat"
|
1360 |
|
1361 |
-
#: src/views/tickets/email.php:
|
1362 |
msgid "Security Code"
|
1363 |
msgstr "Kontrolní kód"
|
1364 |
|
1365 |
-
#: src/views/tickets/email.php:
|
1366 |
msgid "Ticket #"
|
1367 |
msgstr "Vstupenka č."
|
1368 |
|
1369 |
-
#: src/
|
1370 |
msgid "Ticket Type:"
|
1371 |
msgstr ""
|
1372 |
|
1373 |
-
#: src/Tribe/Admin/Ticket_Settings.php:22 src/Tribe/Metabox.php:
|
1374 |
-
#: src/Tribe/Tickets_View.php:665 src/admin-views/list.php:
|
1375 |
msgid "Tickets"
|
1376 |
msgstr "Vstupenky"
|
1377 |
|
@@ -1379,6 +1385,6 @@ msgstr "Vstupenky"
|
|
1379 |
msgid "Getting Started"
|
1380 |
msgstr "Začínáme"
|
1381 |
|
1382 |
-
#: src/admin-views/
|
1383 |
msgid "Settings"
|
1384 |
msgstr "Nastavení"
|
11 |
"Language: cs_CZ\n"
|
12 |
"Project-Id-Version: Event Tickets\n"
|
13 |
|
14 |
+
#: src/admin-views/editor/fieldset/advanced.php:124
|
15 |
+
msgid "Ticket end date"
|
16 |
+
msgstr ""
|
17 |
+
|
18 |
+
#: src/admin-views/editor/fieldset/advanced.php:95
|
19 |
+
msgid "Ticket start date"
|
20 |
+
msgstr ""
|
21 |
+
|
22 |
+
#: src/Tribe/Metabox.php:308
|
23 |
+
msgid "Failed to Delete the Ticket, Refresh the Page to try again."
|
24 |
+
msgstr ""
|
25 |
+
|
26 |
+
#: src/Tribe/Metabox.php:268 src/Tribe/Metabox.php:314
|
27 |
+
#: src/Tribe/Metabox.php:352 src/Tribe/Metabox.php:388
|
28 |
+
msgid "Commerce Module invalid"
|
29 |
+
msgstr ""
|
30 |
+
|
31 |
+
#: src/Tribe/Metabox.php:262
|
32 |
+
msgid "Failed to Edit the Ticket, Refresh the Page to try again."
|
33 |
+
msgstr ""
|
34 |
+
|
35 |
+
#: src/Tribe/Metabox.php:252 src/Tribe/Metabox.php:304
|
36 |
+
msgid "Invalid Ticket"
|
37 |
+
msgstr ""
|
38 |
+
|
39 |
+
#: src/Tribe/Metabox.php:199
|
40 |
+
msgid "Commerce Provider invalid"
|
41 |
+
msgstr ""
|
42 |
+
|
43 |
+
#: src/Tribe/Metabox.php:195
|
44 |
+
msgid "Failed to Add the Ticket, Refresh the Page to try again."
|
45 |
+
msgstr ""
|
46 |
+
|
47 |
+
#: src/Tribe/Metabox.php:185 src/Tribe/Metabox.php:246
|
48 |
+
#: src/Tribe/Metabox.php:298
|
49 |
+
msgid "Invalid parent Post"
|
50 |
+
msgstr ""
|
51 |
+
|
52 |
+
#: src/Tribe/Metabox.php:106
|
53 |
+
msgid "Invalid Post ID"
|
54 |
+
msgstr ""
|
55 |
+
|
56 |
+
#: src/admin-views/editor/panel/list.php:11
|
57 |
msgid "You have unsaved changes to your tickets. Discard those changes?"
|
58 |
msgstr ""
|
59 |
|
86 |
msgid "%1$d Remaining of shared capacity"
|
87 |
msgstr ""
|
88 |
|
89 |
+
#: src/admin-views/editor/fieldset/history.php:30
|
90 |
msgid "Ti"
|
91 |
msgstr ""
|
92 |
|
93 |
+
#: src/admin-views/editor/fieldset/history.php:27
|
94 |
msgid "History"
|
95 |
msgstr ""
|
96 |
|
97 |
+
#: src/admin-views/editor/fieldset/advanced.php:132
|
98 |
msgid "If you do not set an end sale date, tickets sales will never end."
|
99 |
msgstr ""
|
100 |
|
101 |
+
#: src/admin-views/editor/fieldset/advanced.php:130
|
102 |
msgid "If you do not set an end sale date, tickets will be available until the event begins."
|
103 |
msgstr ""
|
104 |
|
105 |
+
#: src/admin-views/editor/fieldset/advanced.php:98
|
106 |
msgid "If you do not set a start sale date, tickets will be available immediately."
|
107 |
msgstr ""
|
108 |
|
109 |
+
#: src/admin-views/editor/fieldset/advanced.php:97
|
110 |
+
#: src/admin-views/editor/fieldset/advanced.php:126
|
111 |
msgid "HH:MM"
|
112 |
msgstr ""
|
113 |
|
114 |
+
#: src/admin-views/editor/fieldset/advanced.php:84
|
115 |
+
#: src/admin-views/editor/fieldset/advanced.php:113
|
116 |
msgid "at"
|
117 |
msgstr ""
|
118 |
|
119 |
+
#: src/admin-views/editor/fieldset/advanced.php:83
|
120 |
+
#: src/admin-views/editor/fieldset/advanced.php:112
|
121 |
msgid "YYYY-MM-DD"
|
122 |
msgstr ""
|
123 |
|
124 |
+
#: src/admin-views/editor/fieldset/advanced.php:65
|
125 |
msgid "Show description on front end ticket form."
|
126 |
msgstr ""
|
127 |
|
128 |
+
#: src/admin-views/editor/fieldset/advanced.php:47
|
129 |
msgid "Description:"
|
130 |
msgstr ""
|
131 |
|
132 |
+
#: src/admin-views/editor/fieldset/advanced.php:45
|
133 |
msgid "Advanced Settings"
|
134 |
msgstr ""
|
135 |
|
136 |
+
#: src/admin-views/editor/fieldset/advanced.php:42
|
137 |
msgid "Advanced"
|
138 |
msgstr ""
|
139 |
|
140 |
+
#: src/admin-views/editor/panel/settings.php:69
|
141 |
msgid "Save settings"
|
142 |
msgstr ""
|
143 |
|
144 |
+
#: src/admin-views/editor/panel/settings.php:32
|
145 |
msgid "Select an image from your Media Library to display on emailed tickets. For best results, use a .jpg, .png, or .gif at least 1160px wide."
|
146 |
msgstr ""
|
147 |
|
148 |
+
#: src/admin-views/editor/panel/settings.php:30
|
149 |
msgid "Ticket header image:"
|
150 |
msgstr ""
|
151 |
|
153 |
msgid "Leave blank for unlimited"
|
154 |
msgstr ""
|
155 |
|
156 |
+
#: src/admin-views/editor/list-table.php:40
|
157 |
msgid "Available"
|
158 |
msgstr ""
|
159 |
|
160 |
+
#: src/admin-views/editor/list-table.php:39
|
161 |
msgid "Capacity"
|
162 |
msgstr ""
|
163 |
|
164 |
+
#: src/admin-views/editor/panel/ticket.php:183
|
165 |
msgid "Save RSVP"
|
166 |
msgstr ""
|
167 |
|
168 |
+
#: src/admin-views/editor/panel/ticket.php:174
|
169 |
msgid "Save ticket"
|
170 |
msgstr ""
|
171 |
|
172 |
+
#: src/admin-views/editor/panel/ticket.php:92
|
173 |
msgid "Ticket type name shows on the front end and emailed tickets"
|
174 |
msgstr ""
|
175 |
|
176 |
+
#: src/admin-views/editor/panel/ticket.php:90
|
177 |
msgid "Ticket Type is a required field."
|
178 |
msgstr ""
|
179 |
|
180 |
+
#: src/admin-views/editor/panel/ticket.php:81
|
181 |
msgid "Type:"
|
182 |
msgstr ""
|
183 |
|
184 |
+
#: src/admin-views/editor/panel/ticket.php:76
|
185 |
msgid "Edit RSVP"
|
186 |
msgstr ""
|
187 |
|
188 |
+
#: src/admin-views/editor/panel/ticket.php:68
|
189 |
msgid "Add new RSVP"
|
190 |
msgstr ""
|
191 |
|
192 |
+
#: src/admin-views/editor/fieldset/advanced.php:38
|
193 |
msgid "Start sale date cannot be greater than End Sale date"
|
194 |
msgstr ""
|
195 |
|
196 |
+
#: src/admin-views/editor/fieldset/advanced.php:37
|
197 |
msgid "Start sale date cannot be empty."
|
198 |
msgstr ""
|
199 |
|
200 |
+
#: src/admin-views/editor/panel/list.php:61
|
201 |
msgid "New RSVP"
|
202 |
msgstr ""
|
203 |
|
204 |
+
#: src/admin-views/editor/panel/list.php:59
|
205 |
msgid "Add a new RSVP"
|
206 |
msgstr ""
|
207 |
|
208 |
+
#: src/admin-views/editor/panel/list.php:39
|
209 |
msgid "View Attendees"
|
210 |
msgstr ""
|
211 |
|
212 |
+
#: src/admin-views/editor/list-row.php:77
|
213 |
msgid "( Ticket ID: %d )"
|
214 |
msgstr ""
|
215 |
|
216 |
+
#: src/admin-views/editor/list-row.php:65
|
217 |
msgid "The number of Complete ticket sales does not match the number of attendees. Please check the Attendees list and adjust ticket stock in WooCommerce as needed."
|
218 |
msgstr ""
|
219 |
|
220 |
+
#: src/admin-views/editor/list-row.php:63
|
221 |
msgid "Available:"
|
222 |
msgstr ""
|
223 |
|
224 |
+
#: src/admin-views/editor/list-row.php:58
|
225 |
#: src/admin-views/rsvp-metabox-capacity.php:10
|
226 |
msgid "Capacity:"
|
227 |
msgstr ""
|
228 |
|
229 |
+
#: src/Tribe/Tickets_Handler.php:84
|
230 |
msgid "Unlimited"
|
231 |
msgstr ""
|
232 |
|
233 |
+
#: src/Tribe/Tickets.php:904
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
234 |
msgid "Set capacity for this ticket only"
|
235 |
msgstr ""
|
236 |
|
237 |
+
#: src/Tribe/Tickets.php:903
|
238 |
msgid "Shared capacity with other tickets"
|
239 |
msgstr ""
|
240 |
|
241 |
+
#: src/Tribe/Metabox.php:217
|
242 |
msgid "Failed to Add the Ticket"
|
243 |
msgstr ""
|
244 |
|
245 |
+
#: src/Tribe/Tickets.php:385
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
246 |
msgid "Move Ticket"
|
247 |
msgstr ""
|
248 |
|
249 |
+
#: src/Tribe/Tickets.php:385
|
250 |
msgid "Move RSVP"
|
251 |
msgstr ""
|
252 |
|
253 |
+
#: src/Tribe/Tickets.php:310
|
254 |
msgid "Delete Ticket"
|
255 |
msgstr ""
|
256 |
|
257 |
+
#: src/Tribe/Tickets.php:310
|
258 |
msgid "Delete RSVP"
|
259 |
msgstr ""
|
260 |
|
342 |
msgid "Below the event details [default]"
|
343 |
msgstr ""
|
344 |
|
345 |
+
#: src/admin-views/attendees.php:76
|
346 |
msgctxt "attendee screen summary"
|
347 |
msgid "Attendees By Ticket"
|
348 |
msgstr ""
|
349 |
|
350 |
+
#: src/admin-views/attendees.php:38
|
351 |
msgctxt "attendee screen summary"
|
352 |
msgid "Event Details"
|
353 |
msgstr ""
|
354 |
|
355 |
+
#: src/Tribe/Attendees.php:95
|
356 |
msgctxt "attendee event actions"
|
357 |
msgid "View Event"
|
358 |
msgstr ""
|
359 |
|
360 |
+
#: src/Tribe/Attendees.php:94
|
361 |
msgctxt "attendee event actions"
|
362 |
msgid "Edit Event"
|
363 |
msgstr ""
|
575 |
msgid "You are running Version %s and deserve a hug :-)"
|
576 |
msgstr "Používáte verzi %s a zasloužíte si obejmout :-)"
|
577 |
|
578 |
+
#: src/Tribe/Attendees.php:477
|
579 |
msgctxt "attendee export"
|
580 |
msgid "Customer Email Address"
|
581 |
msgstr ""
|
582 |
|
583 |
+
#: src/Tribe/Attendees.php:476
|
584 |
msgctxt "attendee export"
|
585 |
msgid "Customer Name"
|
586 |
msgstr ""
|
587 |
|
588 |
+
#: src/Tribe/Attendees.php:475
|
589 |
msgctxt "attendee export"
|
590 |
msgid "Ticket #"
|
591 |
msgstr ""
|
592 |
|
593 |
+
#: src/Tribe/Attendees.php:474
|
594 |
msgctxt "attendee export"
|
595 |
msgid "Order Status"
|
596 |
msgstr ""
|
597 |
|
598 |
+
#: src/Tribe/Attendees.php:473
|
599 |
msgctxt "attendee export"
|
600 |
msgid "Order ID"
|
601 |
msgstr ""
|
602 |
|
603 |
+
#: src/Tribe/Attendees.php:262
|
604 |
msgid "You must first select one or more tickets before you can move them!"
|
605 |
msgstr ""
|
606 |
|
607 |
+
#: src/Tribe/Attendees.php:79
|
608 |
msgid "Post type"
|
609 |
msgstr ""
|
610 |
|
611 |
+
#: src/Tribe/Attendees.php:95
|
612 |
msgctxt "attendee event actions"
|
613 |
msgid "View"
|
614 |
msgstr ""
|
615 |
|
616 |
+
#: src/Tribe/Attendees.php:94
|
617 |
msgctxt "attendee event actions"
|
618 |
msgid "Edit"
|
619 |
msgstr ""
|
646 |
msgid "Total RSVPs:"
|
647 |
msgstr ""
|
648 |
|
649 |
+
#: src/Tribe/Assets.php:89
|
650 |
msgid "Are you sure you want to delete this ticket? This cannot be undone."
|
651 |
msgstr ""
|
652 |
|
653 |
+
#: src/Tribe/Main.php:692
|
654 |
msgctxt "button text"
|
655 |
msgid "RSVP"
|
656 |
msgstr ""
|
657 |
|
658 |
+
#: src/Tribe/Main.php:557
|
659 |
msgid "Welcome to Event Tickets"
|
660 |
msgstr ""
|
661 |
|
704 |
msgid "Deleted Attendees:"
|
705 |
msgstr ""
|
706 |
|
707 |
+
#: src/Tribe/Attendees.php:122
|
708 |
msgctxt "attendee summary"
|
709 |
msgid "Checked in:"
|
710 |
msgstr ""
|
863 |
msgid "My RSVPs for This %s"
|
864 |
msgstr ""
|
865 |
|
866 |
+
#: src/views/tickets/orders-link.php:54
|
867 |
msgid "View your %s"
|
868 |
msgstr ""
|
869 |
|
870 |
+
#: src/views/tickets/orders-link.php:53
|
871 |
msgid "You have %s for this %s."
|
872 |
msgstr ""
|
873 |
|
874 |
+
#: src/views/tickets/orders-link.php:34
|
875 |
msgid "%d Ticket"
|
876 |
msgid_plural "%d Tickets"
|
877 |
msgstr[0] ""
|
878 |
msgstr[1] ""
|
879 |
msgstr[2] ""
|
880 |
|
881 |
+
#: src/views/tickets/orders-link.php:30
|
882 |
msgid "%d RSVP"
|
883 |
msgid_plural "%d RSVPs"
|
884 |
msgstr[0] ""
|
930 |
msgid "Going"
|
931 |
msgstr ""
|
932 |
|
933 |
+
#: src/Tribe/Tickets.php:1464
|
934 |
msgid "There are no tickets available at this time."
|
935 |
msgstr ""
|
936 |
|
937 |
+
#: src/Tribe/Tickets.php:1462
|
938 |
msgid "Tickets are no longer available."
|
939 |
msgstr ""
|
940 |
|
941 |
+
#: src/Tribe/Tickets.php:1460
|
942 |
msgid "Tickets are not yet available."
|
943 |
msgstr ""
|
944 |
|
945 |
+
#: src/Tribe/Tickets.php:1458
|
946 |
msgid "Tickets are not available as this %s has passed."
|
947 |
msgstr ""
|
948 |
|
949 |
+
#: src/Tribe/RSVP.php:843
|
950 |
msgid "You confirmed you will not be attending %s"
|
951 |
msgstr ""
|
952 |
|
953 |
+
#: src/Tribe/Assets.php:102 src/Tribe/Metabox.php:548
|
954 |
msgid "Please enter in without thousand separators and currency symbols."
|
955 |
msgstr ""
|
956 |
|
957 |
+
#: src/Tribe/Assets.php:95
|
958 |
msgid "It looks like you have modified your shared capacity setting but have not saved or updated the post."
|
959 |
msgstr ""
|
960 |
|
961 |
+
#: src/Tribe/Main.php:692
|
962 |
msgid "Buy"
|
963 |
msgstr ""
|
964 |
|
1010 |
msgid "View order"
|
1011 |
msgstr ""
|
1012 |
|
1013 |
+
#: src/admin-views/editor/panel/settings.php:70
|
1014 |
+
#: src/admin-views/editor/panel/ticket.php:192
|
1015 |
msgid "Cancel"
|
1016 |
msgstr "Zrušit"
|
1017 |
|
1019 |
msgid "Send Email"
|
1020 |
msgstr "Poslat email"
|
1021 |
|
1022 |
+
#: src/Tribe/Attendees.php:672
|
1023 |
msgid "Email sent successfully!"
|
1024 |
msgstr "Email byl úspěšně odeslán!"
|
1025 |
|
1026 |
+
#: src/Tribe/Attendees.php:665
|
1027 |
msgid "Error when sending the email"
|
1028 |
msgstr "Došlo k chybě při odesílání emailu"
|
1029 |
|
1030 |
+
#: src/Tribe/Attendees.php:627 src/Tribe/Attendees.php:643
|
1031 |
msgid "Invalid User ID"
|
1032 |
msgstr "Neplatné ID uživatele"
|
1033 |
|
1034 |
+
#: src/Tribe/Attendees.php:621
|
1035 |
msgid "Invalid Email"
|
1036 |
msgstr "Neplatná emailová adresa"
|
1037 |
|
1038 |
+
#: src/Tribe/Attendees.php:609
|
1039 |
msgid "Empty user and email"
|
1040 |
msgstr "Nebylo zadáno uživatelské jméno a emailová adresa"
|
1041 |
|
1042 |
+
#: src/Tribe/Attendees.php:586
|
1043 |
msgid "Invalid Event ID"
|
1044 |
msgstr "Neplatné ID akce"
|
1045 |
|
1046 |
+
#: src/Tribe/Attendees.php:603
|
1047 |
msgid "Cheatin Huh?"
|
1048 |
msgstr "Co zkúšáš, jak zkúšáš?"
|
1049 |
|
1050 |
+
#: src/Tribe/RSVP.php:1779
|
|
|
|
|
|
|
|
|
1051 |
msgid "Post draft updated."
|
1052 |
msgstr "Koncept příspěvku byl uložen."
|
1053 |
|
1054 |
+
#: src/Tribe/RSVP.php:1778
|
1055 |
msgid "Post scheduled."
|
1056 |
msgstr "Příspěvek bude automaticky publikován."
|
1057 |
|
1058 |
+
#: src/Tribe/RSVP.php:1777
|
1059 |
msgid "Post submitted."
|
1060 |
msgstr "Příspěvek byl odeslán ke schválení."
|
1061 |
|
1062 |
+
#: src/Tribe/RSVP.php:1774
|
1063 |
msgid "Post published. %1$s"
|
1064 |
msgstr "Příspěvek byl publikován. %1$s"
|
1065 |
|
1066 |
+
#: src/Tribe/RSVP.php:1770
|
1067 |
msgid "Post updated. %1$s"
|
1068 |
msgstr "Příspěvek byl aktualizován. %1$s"
|
1069 |
|
1070 |
+
#: src/Tribe/RSVP.php:1763
|
1071 |
msgid "Return to the %1$sAttendees Report%2$s."
|
1072 |
msgstr "Zpět na %1$spřehled účastníků%2$s."
|
1073 |
|
1074 |
+
#: src/Tribe/RSVP.php:1158
|
1075 |
msgid "You can't RSVP more than the total remaining tickets."
|
1076 |
msgstr "Nemůžete potvrdit účast pro více než kolik je k dispozici zbývajících vstupenek."
|
1077 |
|
1078 |
+
#: src/Tribe/Main.php:456
|
1079 |
msgid "If you have a valid license for one of our paid plugins, you can %s in our premium support forums. Our support team monitors the forums and will respond to your thread within 24-48 hours (during the week)."
|
1080 |
msgstr ""
|
1081 |
|
1082 |
+
#: src/Tribe/Main.php:451
|
1083 |
msgid "Already have Events Tickets Plus? You can %s in our premium support forums. Our support team monitors the forums and will respond to your thread within 24-48 hours (during the week)."
|
1084 |
msgstr ""
|
1085 |
|
1086 |
+
#: src/Tribe/Main.php:450 src/Tribe/Main.php:455
|
1087 |
msgid "post a thread"
|
1088 |
msgstr ""
|
1089 |
|
1090 |
+
#: src/Tribe/Main.php:448
|
1091 |
msgid "Looking for more immediate support? We offer %1$s with the purchase of any of our premium plugins (like %2$s). Pick up a license and you can post there directly and expect a response within 24-48 hours during weekdays."
|
1092 |
msgstr ""
|
1093 |
|
1094 |
+
#: src/Tribe/Main.php:447
|
1095 |
msgid "Events Tickets Plus"
|
1096 |
msgstr "Events Tickets Plus"
|
1097 |
|
1098 |
+
#: src/Tribe/Main.php:446
|
1099 |
msgid "premium support on our website"
|
1100 |
msgstr ""
|
1101 |
|
1102 |
+
#: src/Tribe/Main.php:444
|
1103 |
msgid "If you have tried the above steps and are still having trouble, you can post a new thread to our %s. Our support staff monitors these forums once a week and would be happy to assist you there."
|
1104 |
msgstr ""
|
1105 |
|
1106 |
+
#: src/Tribe/Main.php:443
|
1107 |
msgid "open-source forum on WordPress.org"
|
1108 |
msgstr ""
|
1109 |
|
1110 |
+
#: src/Tribe/Main.php:426
|
1111 |
msgid "We are committed to helping you sell tickets for your event. Check out our handy %s to get started."
|
1112 |
msgstr ""
|
1113 |
|
1114 |
+
#: src/Tribe/Main.php:424 src/admin-views/admin-welcome-message.php:23
|
1115 |
msgid "New User Primer"
|
1116 |
msgstr ""
|
1117 |
|
1118 |
+
#: src/Tribe/Main.php:407
|
1119 |
msgid "Customizing Event Tickets"
|
1120 |
msgstr ""
|
1121 |
|
1122 |
+
#: src/Tribe/Main.php:406
|
1123 |
msgid "Troubleshooting common problems"
|
1124 |
msgstr ""
|
1125 |
|
1126 |
+
#: src/Tribe/Main.php:405
|
1127 |
msgid "Features overview"
|
1128 |
msgstr "Přehled funkcí"
|
1129 |
|
1130 |
+
#: src/Tribe/Main.php:404
|
1131 |
msgid "Settings overview"
|
1132 |
msgstr "Přehled nastavení"
|
1133 |
|
1134 |
+
#: src/Tribe/Main.php:402
|
1135 |
msgid "Support for Event Tickets"
|
1136 |
msgstr ""
|
1137 |
|
1139 |
msgid "When The Events Calendar and Event Tickets are both activated, The Events Calendar must be running version %1$s or greater. Please %2$supdate now.%3$s"
|
1140 |
msgstr ""
|
1141 |
|
1142 |
+
#: src/Tribe/Tickets_View.php:673 src/views/tickets/orders-link.php:53
|
1143 |
msgid " and "
|
1144 |
msgstr " a "
|
1145 |
|
1151 |
msgid "Modern Tribe, Inc."
|
1152 |
msgstr "Modern Tribe, Inc."
|
1153 |
|
1154 |
+
#. #-#-#-#-# event-tickets.pot (Event Tickets 4.6.1) #-#-#-#-#
|
1155 |
#. Plugin Name of the plugin/theme
|
1156 |
+
#: src/Tribe/Main.php:470
|
1157 |
msgid "Event Tickets"
|
1158 |
msgstr "Event Tickets"
|
1159 |
|
1177 |
msgid "RSVP"
|
1178 |
msgstr "Potvrzení účasti"
|
1179 |
|
1180 |
+
#: src/views/tickets/email.php:378
|
1181 |
msgid "Purchaser"
|
1182 |
msgstr "Kupující"
|
1183 |
|
1184 |
+
#: src/views/tickets/email.php:374
|
1185 |
msgid "Ticket Type"
|
1186 |
msgstr "Typ vstupenky"
|
1187 |
|
1188 |
#: src/views/tickets/email-non-attendance.php:24
|
1189 |
#: src/views/tickets/email-ticket-type-moved.php:25
|
1190 |
+
#: src/views/tickets/email-tickets-moved.php:26 src/views/tickets/email.php:26
|
1191 |
msgid "Your tickets"
|
1192 |
msgstr "Vaše vstupenky"
|
1193 |
|
1199 |
msgid "Post types that can have tickets"
|
1200 |
msgstr "Typy příspěvků, které mohou mít vstupenky"
|
1201 |
|
1202 |
+
#: src/admin-views/editor/panel/settings.php:14
|
1203 |
#: src/admin-views/tribe-options-tickets.php:47
|
1204 |
msgid "Ticket Settings"
|
1205 |
msgstr "Nastavení pro vstupenky"
|
1206 |
|
1207 |
+
#: src/admin-views/editor/fieldset/advanced.php:102
|
1208 |
msgid "End sale:"
|
1209 |
msgstr "Konec prodeje:"
|
1210 |
|
1211 |
+
#: src/admin-views/editor/fieldset/advanced.php:70
|
1212 |
msgid "Start sale:"
|
1213 |
msgstr "Začátek prodeje:"
|
1214 |
|
1228 |
msgid "Price:"
|
1229 |
msgstr "Cena:"
|
1230 |
|
1231 |
+
#: src/admin-views/editor/panel/ticket.php:95
|
1232 |
msgid "Sell using:"
|
1233 |
msgstr "Prodej pomocí:"
|
1234 |
|
1235 |
+
#: src/admin-views/editor/panel/ticket.php:54
|
1236 |
msgid "Edit ticket"
|
1237 |
msgstr "Upravit vstupenku"
|
1238 |
|
1239 |
+
#: src/admin-views/editor/panel/ticket.php:46
|
1240 |
msgid "Add new ticket"
|
1241 |
msgstr "Přidat novou vstupenku"
|
1242 |
|
1243 |
+
#: src/admin-views/editor/panel/settings.php:56
|
1244 |
msgid "Remove"
|
1245 |
msgstr "Odstranit"
|
1246 |
|
1247 |
+
#: src/admin-views/editor/panel/settings.php:40
|
1248 |
msgid "Select an Image"
|
1249 |
msgstr "Zvolit obrázek"
|
1250 |
|
1268 |
msgid "Send the attendee list by email"
|
1269 |
msgstr "Poslat seznam účastníků emailem"
|
1270 |
|
1271 |
+
#: src/Tribe/Attendees.php:664
|
1272 |
msgid "Attendee List for: %s"
|
1273 |
msgstr "Seznam účastníků na: %s"
|
1274 |
|
1275 |
+
#: src/Tribe/Attendees.php:557
|
1276 |
msgid "attendees"
|
1277 |
msgstr "ucastnici"
|
1278 |
|
1279 |
+
#: src/Tribe/Attendees.php:506
|
1280 |
msgid "Yes"
|
1281 |
msgstr "Ano"
|
1282 |
|
1283 |
+
#: src/Tribe/Attendees.php:293
|
1284 |
msgid "You can use Screen Options to select which columns you want to see. The selection works in the table below, in the email, for print and for the CSV export."
|
1285 |
msgstr "Pomocí záložky „Nastavení zobrazených informací“ si můžete vybrat, které sloupce chcete zobrazit. Tento výběr se projeví při výpisu, při odesílání emailem, při tisku a při exportu do CSV souboru."
|
1286 |
|
1287 |
+
#: src/Tribe/Attendees.php:293
|
1288 |
msgid "Columns"
|
1289 |
msgstr "Sloupce"
|
1290 |
|
1291 |
+
#: src/Tribe/Attendees.php:259
|
1292 |
msgid "Sending..."
|
1293 |
msgstr "Odesílání..."
|
1294 |
|
1295 |
+
#: src/Tribe/Attendees.php:258
|
1296 |
msgid "You need to select a user or type a valid email address"
|
1297 |
msgstr "Je třeba vybrat uživatele nebo zadat platnou emailovou adresu"
|
1298 |
|
1299 |
+
#: src/Tribe/Admin/Columns/Tickets.php:57 src/Tribe/Attendees.php:184
|
1300 |
#: src/Tribe/Tabbed_View/Attendee_Report_Tab.php:22
|
1301 |
+
#: src/admin-views/attendees.php:21
|
1302 |
msgid "Attendees"
|
1303 |
msgstr "Účastníci"
|
1304 |
|
1305 |
+
#: src/Tribe/Attendees.php:182
|
1306 |
msgid "See who purchased tickets to this event"
|
1307 |
msgstr "Kdo si koupil vstupenky na tuto akci"
|
1308 |
|
1309 |
+
#: src/Tribe/RSVP.php:1468
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1310 |
msgid "(deleted)"
|
1311 |
msgstr "(smazáno)"
|
1312 |
|
1313 |
+
#: src/Tribe/RSVP.php:1163
|
1314 |
msgid "In order to RSVP, you must enter your name and a valid email address."
|
1315 |
msgstr "Pro potvrzení účasti musíte zadat své jméno a platnou emailovou adresu."
|
1316 |
|
1317 |
+
#: src/Tribe/RSVP.php:1152
|
1318 |
msgid "Your RSVP has been received! Check your email for your RSVP confirmation."
|
1319 |
msgstr "Vaše potvrzení účasti bylo přijato. Zkontrolujte prosím emailovou schránku, kam byl odeslán kontrolní email."
|
1320 |
|
1321 |
+
#: src/Tribe/RSVP.php:755
|
1322 |
msgid "Your tickets from %s"
|
1323 |
msgstr "Vaše vstupenky z webu %s"
|
1324 |
|
1364 |
msgid "Check in"
|
1365 |
msgstr "Zaregistrovat"
|
1366 |
|
1367 |
+
#: src/views/tickets/email.php:382
|
1368 |
msgid "Security Code"
|
1369 |
msgstr "Kontrolní kód"
|
1370 |
|
1371 |
+
#: src/views/tickets/email.php:370
|
1372 |
msgid "Ticket #"
|
1373 |
msgstr "Vstupenka č."
|
1374 |
|
1375 |
+
#: src/admin-views/editor/list-row.php:33
|
1376 |
msgid "Ticket Type:"
|
1377 |
msgstr ""
|
1378 |
|
1379 |
+
#: src/Tribe/Admin/Ticket_Settings.php:22 src/Tribe/Metabox.php:53
|
1380 |
+
#: src/Tribe/Tickets_View.php:665 src/admin-views/editor/list-table.php:30
|
1381 |
msgid "Tickets"
|
1382 |
msgstr "Vstupenky"
|
1383 |
|
1385 |
msgid "Getting Started"
|
1386 |
msgstr "Začínáme"
|
1387 |
|
1388 |
+
#: src/admin-views/editor/panel/list.php:66
|
1389 |
msgid "Settings"
|
1390 |
msgstr "Nastavení"
|
lang/event-tickets.pot
CHANGED
@@ -2,19 +2,19 @@
|
|
2 |
# This file is distributed under the same license as the Event Tickets package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: Event Tickets 4.6\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/event-tickets\n"
|
7 |
-
"POT-Creation-Date: 2017-11-
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
-
"PO-Revision-Date: 2017-11-
|
12 |
"Last-Translator: \n"
|
13 |
"Language-Team: \n"
|
14 |
|
15 |
-
#: src/Tribe/Admin/Columns/Tickets.php:57
|
16 |
#: src/Tribe/Tabbed_View/Attendee_Report_Tab.php:22
|
17 |
-
#: src/
|
18 |
msgid "Attendees"
|
19 |
msgstr ""
|
20 |
|
@@ -143,8 +143,8 @@ msgstr ""
|
|
143 |
msgid "No history available"
|
144 |
msgstr ""
|
145 |
|
146 |
-
#: src/Tribe/Admin/Ticket_Settings.php:22 src/Tribe/Metabox.php:
|
147 |
-
#: src/Tribe/Tickets_View.php:665 src/admin-views/list.php:
|
148 |
msgid "Tickets"
|
149 |
msgstr ""
|
150 |
|
@@ -164,17 +164,17 @@ msgstr ""
|
|
164 |
msgid "Set as ticket header"
|
165 |
msgstr ""
|
166 |
|
167 |
-
#: src/Tribe/Assets.php:
|
168 |
msgid "Are you sure you want to delete this ticket? This cannot be undone."
|
169 |
msgstr ""
|
170 |
|
171 |
-
#: src/Tribe/Assets.php:
|
172 |
msgid ""
|
173 |
"It looks like you have modified your shared capacity setting but have not "
|
174 |
"saved or updated the post."
|
175 |
msgstr ""
|
176 |
|
177 |
-
#: src/Tribe/Assets.php:
|
178 |
msgid "Please enter in without thousand separators and currency symbols."
|
179 |
msgstr ""
|
180 |
|
@@ -183,6 +183,127 @@ msgctxt "attendee summary"
|
|
183 |
msgid "Deleted Attendees:"
|
184 |
msgstr ""
|
185 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
186 |
#: src/Tribe/Attendees_Table.php:52
|
187 |
msgctxt "attendee table"
|
188 |
msgid "Ticket"
|
@@ -330,99 +451,137 @@ msgid ""
|
|
330 |
"Calendar must be running version %1$s or greater. Please %2$supdate now.%3$s"
|
331 |
msgstr ""
|
332 |
|
333 |
-
#: src/Tribe/Main.php:
|
334 |
msgid "Support for Event Tickets"
|
335 |
msgstr ""
|
336 |
|
337 |
-
#: src/Tribe/Main.php:
|
338 |
msgid "Settings overview"
|
339 |
msgstr ""
|
340 |
|
341 |
-
#: src/Tribe/Main.php:
|
342 |
msgid "Features overview"
|
343 |
msgstr ""
|
344 |
|
345 |
-
#: src/Tribe/Main.php:
|
346 |
msgid "Troubleshooting common problems"
|
347 |
msgstr ""
|
348 |
|
349 |
-
#: src/Tribe/Main.php:
|
350 |
msgid "Customizing Event Tickets"
|
351 |
msgstr ""
|
352 |
|
353 |
-
#: src/Tribe/Main.php:
|
354 |
msgid "New User Primer"
|
355 |
msgstr ""
|
356 |
|
357 |
-
#: src/Tribe/Main.php:
|
358 |
msgid ""
|
359 |
"We are committed to helping you sell tickets for your event. Check out our "
|
360 |
"handy %s to get started."
|
361 |
msgstr ""
|
362 |
|
363 |
-
#: src/Tribe/Main.php:
|
364 |
msgid "open-source forum on WordPress.org"
|
365 |
msgstr ""
|
366 |
|
367 |
-
#: src/Tribe/Main.php:
|
368 |
msgid ""
|
369 |
"If you have tried the above steps and are still having trouble, you can post "
|
370 |
"a new thread to our %s. Our support staff monitors these forums once a week "
|
371 |
"and would be happy to assist you there."
|
372 |
msgstr ""
|
373 |
|
374 |
-
#: src/Tribe/Main.php:
|
375 |
msgid "premium support on our website"
|
376 |
msgstr ""
|
377 |
|
378 |
-
#: src/Tribe/Main.php:
|
379 |
msgid "Events Tickets Plus"
|
380 |
msgstr ""
|
381 |
|
382 |
-
#: src/Tribe/Main.php:
|
383 |
msgid ""
|
384 |
"Looking for more immediate support? We offer %1$s with the purchase of any "
|
385 |
"of our premium plugins (like %2$s). Pick up a license and you can post there "
|
386 |
"directly and expect a response within 24-48 hours during weekdays."
|
387 |
msgstr ""
|
388 |
|
389 |
-
#: src/Tribe/Main.php:
|
390 |
msgid "post a thread"
|
391 |
msgstr ""
|
392 |
|
393 |
-
#: src/Tribe/Main.php:
|
394 |
msgid ""
|
395 |
"Already have Events Tickets Plus? You can %s in our premium support forums. "
|
396 |
"Our support team monitors the forums and will respond to your thread within "
|
397 |
"24-48 hours (during the week)."
|
398 |
msgstr ""
|
399 |
|
400 |
-
#: src/Tribe/Main.php:
|
401 |
msgid ""
|
402 |
"If you have a valid license for one of our paid plugins, you can %s in our "
|
403 |
"premium support forums. Our support team monitors the forums and will "
|
404 |
"respond to your thread within 24-48 hours (during the week)."
|
405 |
msgstr ""
|
406 |
|
407 |
-
#. #-#-#-#-# event-tickets.pot (Event Tickets 4.6) #-#-#-#-#
|
408 |
#. Plugin Name of the plugin/theme
|
409 |
-
#: src/Tribe/Main.php:
|
410 |
msgid "Event Tickets"
|
411 |
msgstr ""
|
412 |
|
413 |
-
#: src/Tribe/Main.php:
|
414 |
msgid "Welcome to Event Tickets"
|
415 |
msgstr ""
|
416 |
|
417 |
-
#: src/Tribe/Main.php:
|
418 |
msgid "Buy"
|
419 |
msgstr ""
|
420 |
|
421 |
-
#: src/Tribe/Main.php:
|
422 |
msgctxt "button text"
|
423 |
msgid "RSVP"
|
424 |
msgstr ""
|
425 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
426 |
#: src/Tribe/RSVP/Attendance_Totals.php:37
|
427 |
msgctxt "attendee summary"
|
428 |
msgid "Total RSVPs:"
|
@@ -456,284 +615,99 @@ msgstr ""
|
|
456 |
msgid "RSVP Ticket"
|
457 |
msgstr ""
|
458 |
|
459 |
-
#: src/Tribe/RSVP.php:
|
460 |
msgid "Your tickets from %s"
|
461 |
msgstr ""
|
462 |
|
463 |
-
#: src/Tribe/RSVP.php:
|
464 |
msgid "You confirmed you will not be attending %s"
|
465 |
msgstr ""
|
466 |
|
467 |
-
#: src/Tribe/RSVP.php:
|
468 |
msgid ""
|
469 |
"Your RSVP has been received! Check your email for your RSVP confirmation."
|
470 |
msgstr ""
|
471 |
|
472 |
-
#: src/Tribe/RSVP.php:
|
473 |
msgid "You can't RSVP more than the total remaining tickets."
|
474 |
msgstr ""
|
475 |
|
476 |
-
#: src/Tribe/RSVP.php:
|
477 |
msgid "In order to RSVP, you must enter your name and a valid email address."
|
478 |
msgstr ""
|
479 |
|
480 |
-
#: src/Tribe/RSVP.php:
|
481 |
msgid "(deleted)"
|
482 |
msgstr ""
|
483 |
|
484 |
-
#: src/Tribe/RSVP.php:
|
485 |
msgid "Return to the %1$sAttendees Report%2$s."
|
486 |
msgstr ""
|
487 |
|
488 |
-
#: src/Tribe/RSVP.php:
|
489 |
msgid "Post updated. %1$s"
|
490 |
msgstr ""
|
491 |
|
492 |
-
#: src/Tribe/RSVP.php:
|
493 |
msgid "Post published. %1$s"
|
494 |
msgstr ""
|
495 |
|
496 |
-
#: src/Tribe/RSVP.php:
|
497 |
msgid "Post submitted."
|
498 |
msgstr ""
|
499 |
|
500 |
-
#: src/Tribe/RSVP.php:
|
501 |
msgid "Post scheduled."
|
502 |
msgstr ""
|
503 |
|
504 |
-
#: src/Tribe/RSVP.php:
|
505 |
msgid "Post draft updated."
|
506 |
msgstr ""
|
507 |
|
508 |
-
#: src/Tribe/Tickets.php:
|
509 |
msgid "Delete RSVP"
|
510 |
msgstr ""
|
511 |
|
512 |
-
#: src/Tribe/Tickets.php:
|
513 |
msgid "Delete Ticket"
|
514 |
msgstr ""
|
515 |
|
516 |
-
#: src/Tribe/Tickets.php:
|
517 |
msgid "Move RSVP"
|
518 |
msgstr ""
|
519 |
|
520 |
-
#: src/Tribe/Tickets.php:
|
521 |
msgid "Move Ticket"
|
522 |
msgstr ""
|
523 |
|
524 |
-
#: src/Tribe/Tickets.php:
|
525 |
-
msgid "Your settings have been saved."
|
526 |
-
msgstr ""
|
527 |
-
|
528 |
-
#: src/Tribe/Tickets.php:758
|
529 |
-
msgid "Your ticket has been saved."
|
530 |
-
msgstr ""
|
531 |
-
|
532 |
-
#: src/Tribe/Tickets.php:761 src/Tribe/Tickets.php:1057
|
533 |
-
msgid "Your ticket has been deleted."
|
534 |
-
msgstr ""
|
535 |
-
|
536 |
-
#: src/Tribe/Tickets.php:796
|
537 |
-
msgid "No Post ID was provided."
|
538 |
-
msgstr ""
|
539 |
-
|
540 |
-
#: src/Tribe/Tickets.php:851
|
541 |
-
msgid "Failed to Add the Ticket"
|
542 |
-
msgstr ""
|
543 |
-
|
544 |
-
#: src/Tribe/Tickets.php:1114
|
545 |
-
msgid "Editing the ticket price is currently disallowed."
|
546 |
-
msgstr ""
|
547 |
-
|
548 |
-
#: src/Tribe/Tickets.php:1408
|
549 |
msgid "Shared capacity with other tickets"
|
550 |
msgstr ""
|
551 |
|
552 |
-
#: src/Tribe/Tickets.php:
|
553 |
msgid "Set capacity for this ticket only"
|
554 |
msgstr ""
|
555 |
|
556 |
-
#: src/Tribe/Tickets.php:
|
557 |
-
msgid "Missing required post ID."
|
558 |
-
msgstr ""
|
559 |
-
|
560 |
-
#: src/Tribe/Tickets.php:1447
|
561 |
-
msgid "Missing required capacity."
|
562 |
-
msgstr ""
|
563 |
-
|
564 |
-
#: src/Tribe/Tickets.php:1452
|
565 |
-
msgid "Bad capacity data."
|
566 |
-
msgstr ""
|
567 |
-
|
568 |
-
#: src/Tribe/Tickets.php:1487
|
569 |
-
msgid "Global capacity updated. New level set to %n"
|
570 |
-
msgstr ""
|
571 |
-
|
572 |
-
#: src/Tribe/Tickets.php:2088
|
573 |
msgid "Tickets are not available as this %s has passed."
|
574 |
msgstr ""
|
575 |
|
576 |
-
#: src/Tribe/Tickets.php:
|
577 |
msgid "Tickets are not yet available."
|
578 |
msgstr ""
|
579 |
|
580 |
-
#: src/Tribe/Tickets.php:
|
581 |
msgid "Tickets are no longer available."
|
582 |
msgstr ""
|
583 |
|
584 |
-
#: src/Tribe/Tickets.php:
|
585 |
msgid "There are no tickets available at this time."
|
586 |
msgstr ""
|
587 |
|
588 |
-
#: src/Tribe/Tickets_Handler.php:
|
589 |
msgid "Unlimited"
|
590 |
msgstr ""
|
591 |
|
592 |
-
#: src/Tribe/Tickets_Handler.php:883
|
593 |
-
msgid "Post type"
|
594 |
-
msgstr ""
|
595 |
-
|
596 |
-
#: src/Tribe/Tickets_Handler.php:896
|
597 |
-
msgctxt "attendee event actions"
|
598 |
-
msgid "Edit"
|
599 |
-
msgstr ""
|
600 |
-
|
601 |
-
#: src/Tribe/Tickets_Handler.php:896
|
602 |
-
msgctxt "attendee event actions"
|
603 |
-
msgid "Edit Event"
|
604 |
-
msgstr ""
|
605 |
-
|
606 |
-
#: src/Tribe/Tickets_Handler.php:897
|
607 |
-
msgctxt "attendee event actions"
|
608 |
-
msgid "View"
|
609 |
-
msgstr ""
|
610 |
-
|
611 |
-
#: src/Tribe/Tickets_Handler.php:897
|
612 |
-
msgctxt "attendee event actions"
|
613 |
-
msgid "View Event"
|
614 |
-
msgstr ""
|
615 |
-
|
616 |
-
#: src/Tribe/Tickets_Handler.php:921
|
617 |
-
msgctxt "attendee summary"
|
618 |
-
msgid "Checked in:"
|
619 |
-
msgstr ""
|
620 |
-
|
621 |
-
#: src/Tribe/Tickets_Handler.php:950
|
622 |
-
msgid "See who purchased tickets to this event"
|
623 |
-
msgstr ""
|
624 |
-
|
625 |
-
#: src/Tribe/Tickets_Handler.php:1015
|
626 |
-
msgid "You need to select a user or type a valid email address"
|
627 |
-
msgstr ""
|
628 |
-
|
629 |
-
#: src/Tribe/Tickets_Handler.php:1016
|
630 |
-
msgid "Sending..."
|
631 |
-
msgstr ""
|
632 |
-
|
633 |
-
#: src/Tribe/Tickets_Handler.php:1019
|
634 |
-
msgid "You must first select one or more tickets before you can move them!"
|
635 |
-
msgstr ""
|
636 |
-
|
637 |
-
#: src/Tribe/Tickets_Handler.php:1048
|
638 |
-
msgid "Columns"
|
639 |
-
msgstr ""
|
640 |
-
|
641 |
-
#: src/Tribe/Tickets_Handler.php:1048
|
642 |
-
msgid ""
|
643 |
-
"You can use Screen Options to select which columns you want to see. The "
|
644 |
-
"selection works in the table below, in the email, for print and for the CSV "
|
645 |
-
"export."
|
646 |
-
msgstr ""
|
647 |
-
|
648 |
-
#: src/Tribe/Tickets_Handler.php:1206
|
649 |
-
msgctxt "attendee export"
|
650 |
-
msgid "Order ID"
|
651 |
-
msgstr ""
|
652 |
-
|
653 |
-
#: src/Tribe/Tickets_Handler.php:1207
|
654 |
-
msgctxt "attendee export"
|
655 |
-
msgid "Order Status"
|
656 |
-
msgstr ""
|
657 |
-
|
658 |
-
#: src/Tribe/Tickets_Handler.php:1208
|
659 |
-
msgctxt "attendee export"
|
660 |
-
msgid "Ticket #"
|
661 |
-
msgstr ""
|
662 |
-
|
663 |
-
#: src/Tribe/Tickets_Handler.php:1209
|
664 |
-
msgctxt "attendee export"
|
665 |
-
msgid "Customer Name"
|
666 |
-
msgstr ""
|
667 |
-
|
668 |
-
#: src/Tribe/Tickets_Handler.php:1210
|
669 |
-
msgctxt "attendee export"
|
670 |
-
msgid "Customer Email Address"
|
671 |
-
msgstr ""
|
672 |
-
|
673 |
-
#: src/Tribe/Tickets_Handler.php:1239
|
674 |
-
msgid "Yes"
|
675 |
-
msgstr ""
|
676 |
-
|
677 |
-
#: src/Tribe/Tickets_Handler.php:1287
|
678 |
-
msgid "attendees"
|
679 |
-
msgstr ""
|
680 |
-
|
681 |
-
#: src/Tribe/Tickets_Handler.php:1313
|
682 |
-
msgid "Invalid Event ID"
|
683 |
-
msgstr ""
|
684 |
-
|
685 |
-
#: src/Tribe/Tickets_Handler.php:1330
|
686 |
-
msgid "Cheatin Huh?"
|
687 |
-
msgstr ""
|
688 |
-
|
689 |
-
#: src/Tribe/Tickets_Handler.php:1336
|
690 |
-
msgid "Empty user and email"
|
691 |
-
msgstr ""
|
692 |
-
|
693 |
-
#: src/Tribe/Tickets_Handler.php:1348
|
694 |
-
msgid "Invalid Email"
|
695 |
-
msgstr ""
|
696 |
-
|
697 |
-
#: src/Tribe/Tickets_Handler.php:1354 src/Tribe/Tickets_Handler.php:1370
|
698 |
-
msgid "Invalid User ID"
|
699 |
-
msgstr ""
|
700 |
-
|
701 |
-
#: src/Tribe/Tickets_Handler.php:1391
|
702 |
-
msgid "Attendee List for: %s"
|
703 |
-
msgstr ""
|
704 |
-
|
705 |
-
#: src/Tribe/Tickets_Handler.php:1392
|
706 |
-
msgid "Error when sending the email"
|
707 |
-
msgstr ""
|
708 |
-
|
709 |
-
#: src/Tribe/Tickets_Handler.php:1399
|
710 |
-
msgid "Email sent successfully!"
|
711 |
-
msgstr ""
|
712 |
-
|
713 |
-
#: src/Tribe/Tickets_Handler.php:1503
|
714 |
-
msgid "Ticket Type:"
|
715 |
-
msgstr ""
|
716 |
-
|
717 |
-
#: src/Tribe/Tickets_Handler.php:1528
|
718 |
-
#: src/admin-views/rsvp-metabox-capacity.php:10
|
719 |
-
msgid "Capacity:"
|
720 |
-
msgstr ""
|
721 |
-
|
722 |
-
#: src/Tribe/Tickets_Handler.php:1533
|
723 |
-
msgid "Available:"
|
724 |
-
msgstr ""
|
725 |
-
|
726 |
-
#: src/Tribe/Tickets_Handler.php:1535
|
727 |
-
msgid ""
|
728 |
-
"The number of Complete ticket sales does not match the number of attendees. "
|
729 |
-
"Please check the Attendees list and adjust ticket stock in WooCommerce as "
|
730 |
-
"needed."
|
731 |
-
msgstr ""
|
732 |
-
|
733 |
-
#: src/Tribe/Tickets_Handler.php:1547
|
734 |
-
msgid "( Ticket ID: %d )"
|
735 |
-
msgstr ""
|
736 |
-
|
737 |
#: src/Tribe/Tickets_View.php:552
|
738 |
msgid "Going"
|
739 |
msgstr ""
|
@@ -754,7 +728,7 @@ msgstr ""
|
|
754 |
msgid "Ticket"
|
755 |
msgstr ""
|
756 |
|
757 |
-
#: src/Tribe/Tickets_View.php:673 src/views/tickets/orders-link.php:
|
758 |
msgid " and "
|
759 |
msgstr ""
|
760 |
|
@@ -895,89 +869,218 @@ msgstr ""
|
|
895 |
msgid "Send Email"
|
896 |
msgstr ""
|
897 |
|
898 |
-
#: src/admin-views/attendees.php:
|
899 |
msgctxt "attendee screen summary"
|
900 |
msgid "Event Details"
|
901 |
msgstr ""
|
902 |
|
903 |
-
#: src/admin-views/attendees.php:
|
904 |
msgctxt "attendee screen summary"
|
905 |
msgid "Attendees By Ticket"
|
906 |
msgstr ""
|
907 |
|
908 |
-
#: src/admin-views/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
909 |
msgid "You have unsaved changes to your tickets. Discard those changes?"
|
910 |
msgstr ""
|
911 |
|
912 |
-
#: src/admin-views/
|
913 |
msgid "View Attendees"
|
914 |
msgstr ""
|
915 |
|
916 |
-
#: src/admin-views/
|
917 |
msgid "Add a new RSVP"
|
918 |
msgstr ""
|
919 |
|
920 |
-
#: src/admin-views/
|
921 |
msgid "New RSVP"
|
922 |
msgstr ""
|
923 |
|
924 |
-
#: src/admin-views/
|
925 |
msgid "Settings"
|
926 |
msgstr ""
|
927 |
|
928 |
-
#: src/admin-views/
|
929 |
-
|
|
|
930 |
msgstr ""
|
931 |
|
932 |
-
#: src/admin-views/
|
933 |
-
msgid "
|
|
|
|
|
|
|
|
|
|
|
|
|
934 |
msgstr ""
|
935 |
|
936 |
-
#: src/admin-views/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
937 |
msgid "Add new ticket"
|
938 |
msgstr ""
|
939 |
|
940 |
-
#: src/admin-views/
|
941 |
msgid "Edit ticket"
|
942 |
msgstr ""
|
943 |
|
944 |
-
#: src/admin-views/
|
945 |
msgid "Add new RSVP"
|
946 |
msgstr ""
|
947 |
|
948 |
-
#: src/admin-views/
|
949 |
msgid "Edit RSVP"
|
950 |
msgstr ""
|
951 |
|
952 |
-
#: src/admin-views/
|
953 |
msgid "Type:"
|
954 |
msgstr ""
|
955 |
|
956 |
-
#: src/admin-views/
|
957 |
msgid "Ticket Type is a required field."
|
958 |
msgstr ""
|
959 |
|
960 |
-
#: src/admin-views/
|
961 |
msgid "Ticket type name shows on the front end and emailed tickets"
|
962 |
msgstr ""
|
963 |
|
964 |
-
#: src/admin-views/
|
965 |
msgid "Sell using:"
|
966 |
msgstr ""
|
967 |
|
968 |
-
#: src/admin-views/
|
969 |
msgid "Save ticket"
|
970 |
msgstr ""
|
971 |
|
972 |
-
#: src/admin-views/
|
973 |
msgid "Save RSVP"
|
974 |
msgstr ""
|
975 |
|
976 |
-
#: src/admin-views/edit_admin_panel.php:171
|
977 |
-
#: src/admin-views/settings_admin_panel.php:50
|
978 |
-
msgid "Cancel"
|
979 |
-
msgstr ""
|
980 |
-
|
981 |
#: src/admin-views/legacy-ticket-fields.php:15
|
982 |
msgid "Price:"
|
983 |
msgstr ""
|
@@ -994,14 +1097,6 @@ msgstr ""
|
|
994 |
msgid "(Current sale price - this can be managed via the product editor)"
|
995 |
msgstr ""
|
996 |
|
997 |
-
#: src/admin-views/list.php:37
|
998 |
-
msgid "Capacity"
|
999 |
-
msgstr ""
|
1000 |
-
|
1001 |
-
#: src/admin-views/list.php:38
|
1002 |
-
msgid "Available"
|
1003 |
-
msgstr ""
|
1004 |
-
|
1005 |
#: src/admin-views/move-tickets.php:19
|
1006 |
msgid "No attendees specified! Please try again."
|
1007 |
msgstr ""
|
@@ -1071,33 +1166,6 @@ msgstr ""
|
|
1071 |
msgid "Leave blank for unlimited"
|
1072 |
msgstr ""
|
1073 |
|
1074 |
-
#: src/admin-views/settings_admin_panel.php:14
|
1075 |
-
#: src/admin-views/tribe-options-tickets.php:47
|
1076 |
-
msgid "Ticket Settings"
|
1077 |
-
msgstr ""
|
1078 |
-
|
1079 |
-
#: src/admin-views/settings_admin_panel.php:30
|
1080 |
-
msgid "Ticket header image:"
|
1081 |
-
msgstr ""
|
1082 |
-
|
1083 |
-
#: src/admin-views/settings_admin_panel.php:31
|
1084 |
-
msgid ""
|
1085 |
-
"Select an image from your Media Library to display on emailed tickets. For "
|
1086 |
-
"best results, use a .jpg, .png, or .gif at least 1160px wide."
|
1087 |
-
msgstr ""
|
1088 |
-
|
1089 |
-
#: src/admin-views/settings_admin_panel.php:33
|
1090 |
-
msgid "Select an Image"
|
1091 |
-
msgstr ""
|
1092 |
-
|
1093 |
-
#: src/admin-views/settings_admin_panel.php:43
|
1094 |
-
msgid "Remove"
|
1095 |
-
msgstr ""
|
1096 |
-
|
1097 |
-
#: src/admin-views/settings_admin_panel.php:49
|
1098 |
-
msgid "Save settings"
|
1099 |
-
msgstr ""
|
1100 |
-
|
1101 |
#: src/admin-views/ticket-type-history.php:10
|
1102 |
msgid "Ticket history:"
|
1103 |
msgstr ""
|
@@ -1110,68 +1178,6 @@ msgstr ""
|
|
1110 |
msgid "Click to hide history"
|
1111 |
msgstr ""
|
1112 |
|
1113 |
-
#: src/admin-views/tickets-advanced.php:2
|
1114 |
-
msgid "Advanced"
|
1115 |
-
msgstr ""
|
1116 |
-
|
1117 |
-
#: src/admin-views/tickets-advanced.php:5
|
1118 |
-
msgid "Advanced Settings"
|
1119 |
-
msgstr ""
|
1120 |
-
|
1121 |
-
#: src/admin-views/tickets-advanced.php:7
|
1122 |
-
msgid "Description:"
|
1123 |
-
msgstr ""
|
1124 |
-
|
1125 |
-
#: src/admin-views/tickets-advanced.php:25
|
1126 |
-
msgid "Show description on front end ticket form."
|
1127 |
-
msgstr ""
|
1128 |
-
|
1129 |
-
#: src/admin-views/tickets-advanced.php:30
|
1130 |
-
msgid "Start sale:"
|
1131 |
-
msgstr ""
|
1132 |
-
|
1133 |
-
#: src/admin-views/tickets-advanced.php:43
|
1134 |
-
#: src/admin-views/tickets-advanced.php:71
|
1135 |
-
msgid "YYYY-MM-DD"
|
1136 |
-
msgstr ""
|
1137 |
-
|
1138 |
-
#: src/admin-views/tickets-advanced.php:44
|
1139 |
-
#: src/admin-views/tickets-advanced.php:72
|
1140 |
-
msgid "at"
|
1141 |
-
msgstr ""
|
1142 |
-
|
1143 |
-
#: src/admin-views/tickets-advanced.php:56
|
1144 |
-
#: src/admin-views/tickets-advanced.php:84
|
1145 |
-
msgid "HH:MM"
|
1146 |
-
msgstr ""
|
1147 |
-
|
1148 |
-
#: src/admin-views/tickets-advanced.php:57
|
1149 |
-
msgid ""
|
1150 |
-
"If you do not set a start sale date, tickets will be available immediately."
|
1151 |
-
msgstr ""
|
1152 |
-
|
1153 |
-
#: src/admin-views/tickets-advanced.php:61
|
1154 |
-
msgid "End sale:"
|
1155 |
-
msgstr ""
|
1156 |
-
|
1157 |
-
#: src/admin-views/tickets-advanced.php:88
|
1158 |
-
msgid ""
|
1159 |
-
"If you do not set an end sale date, tickets will be available until the "
|
1160 |
-
"event begins."
|
1161 |
-
msgstr ""
|
1162 |
-
|
1163 |
-
#: src/admin-views/tickets-advanced.php:90
|
1164 |
-
msgid "If you do not set an end sale date, tickets sales will never end."
|
1165 |
-
msgstr ""
|
1166 |
-
|
1167 |
-
#: src/admin-views/tickets-history.php:19
|
1168 |
-
msgid "History"
|
1169 |
-
msgstr ""
|
1170 |
-
|
1171 |
-
#: src/admin-views/tickets-history.php:22
|
1172 |
-
msgid "Ti"
|
1173 |
-
msgstr ""
|
1174 |
-
|
1175 |
#: src/admin-views/tribe-options-tickets.php:37
|
1176 |
msgid "Require users to log in before they RSVP"
|
1177 |
msgstr ""
|
@@ -1289,7 +1295,7 @@ msgstr ""
|
|
1289 |
|
1290 |
#: src/views/tickets/email-non-attendance.php:24
|
1291 |
#: src/views/tickets/email-ticket-type-moved.php:25
|
1292 |
-
#: src/views/tickets/email-tickets-moved.php:26 src/views/tickets/email.php:
|
1293 |
msgid "Your tickets"
|
1294 |
msgstr ""
|
1295 |
|
@@ -1332,39 +1338,39 @@ msgid_plural ""
|
|
1332 |
msgstr[0] ""
|
1333 |
msgstr[1] ""
|
1334 |
|
1335 |
-
#: src/views/tickets/email.php:
|
1336 |
msgid "Ticket #"
|
1337 |
msgstr ""
|
1338 |
|
1339 |
-
#: src/views/tickets/email.php:
|
1340 |
msgid "Ticket Type"
|
1341 |
msgstr ""
|
1342 |
|
1343 |
-
#: src/views/tickets/email.php:
|
1344 |
msgid "Purchaser"
|
1345 |
msgstr ""
|
1346 |
|
1347 |
-
#: src/views/tickets/email.php:
|
1348 |
msgid "Security Code"
|
1349 |
msgstr ""
|
1350 |
|
1351 |
-
#: src/views/tickets/orders-link.php:
|
1352 |
msgid "%d RSVP"
|
1353 |
msgid_plural "%d RSVPs"
|
1354 |
msgstr[0] ""
|
1355 |
msgstr[1] ""
|
1356 |
|
1357 |
-
#: src/views/tickets/orders-link.php:
|
1358 |
msgid "%d Ticket"
|
1359 |
msgid_plural "%d Tickets"
|
1360 |
msgstr[0] ""
|
1361 |
msgstr[1] ""
|
1362 |
|
1363 |
-
#: src/views/tickets/orders-link.php:
|
1364 |
msgid "You have %s for this %s."
|
1365 |
msgstr ""
|
1366 |
|
1367 |
-
#: src/views/tickets/orders-link.php:
|
1368 |
msgid "View your %s"
|
1369 |
msgstr ""
|
1370 |
|
2 |
# This file is distributed under the same license as the Event Tickets package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: Event Tickets 4.6.1\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/event-tickets\n"
|
7 |
+
"POT-Creation-Date: 2017-11-21 16:23:55+00:00\n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
11 |
+
"PO-Revision-Date: 2017-11-21 16:23\n"
|
12 |
"Last-Translator: \n"
|
13 |
"Language-Team: \n"
|
14 |
|
15 |
+
#: src/Tribe/Admin/Columns/Tickets.php:57 src/Tribe/Attendees.php:184
|
16 |
#: src/Tribe/Tabbed_View/Attendee_Report_Tab.php:22
|
17 |
+
#: src/admin-views/attendees.php:21
|
18 |
msgid "Attendees"
|
19 |
msgstr ""
|
20 |
|
143 |
msgid "No history available"
|
144 |
msgstr ""
|
145 |
|
146 |
+
#: src/Tribe/Admin/Ticket_Settings.php:22 src/Tribe/Metabox.php:53
|
147 |
+
#: src/Tribe/Tickets_View.php:665 src/admin-views/editor/list-table.php:30
|
148 |
msgid "Tickets"
|
149 |
msgstr ""
|
150 |
|
164 |
msgid "Set as ticket header"
|
165 |
msgstr ""
|
166 |
|
167 |
+
#: src/Tribe/Assets.php:89
|
168 |
msgid "Are you sure you want to delete this ticket? This cannot be undone."
|
169 |
msgstr ""
|
170 |
|
171 |
+
#: src/Tribe/Assets.php:95
|
172 |
msgid ""
|
173 |
"It looks like you have modified your shared capacity setting but have not "
|
174 |
"saved or updated the post."
|
175 |
msgstr ""
|
176 |
|
177 |
+
#: src/Tribe/Assets.php:102 src/Tribe/Metabox.php:548
|
178 |
msgid "Please enter in without thousand separators and currency symbols."
|
179 |
msgstr ""
|
180 |
|
183 |
msgid "Deleted Attendees:"
|
184 |
msgstr ""
|
185 |
|
186 |
+
#: src/Tribe/Attendees.php:79
|
187 |
+
msgid "Post type"
|
188 |
+
msgstr ""
|
189 |
+
|
190 |
+
#: src/Tribe/Attendees.php:94
|
191 |
+
msgctxt "attendee event actions"
|
192 |
+
msgid "Edit"
|
193 |
+
msgstr ""
|
194 |
+
|
195 |
+
#: src/Tribe/Attendees.php:94
|
196 |
+
msgctxt "attendee event actions"
|
197 |
+
msgid "Edit Event"
|
198 |
+
msgstr ""
|
199 |
+
|
200 |
+
#: src/Tribe/Attendees.php:95
|
201 |
+
msgctxt "attendee event actions"
|
202 |
+
msgid "View"
|
203 |
+
msgstr ""
|
204 |
+
|
205 |
+
#: src/Tribe/Attendees.php:95
|
206 |
+
msgctxt "attendee event actions"
|
207 |
+
msgid "View Event"
|
208 |
+
msgstr ""
|
209 |
+
|
210 |
+
#: src/Tribe/Attendees.php:122
|
211 |
+
msgctxt "attendee summary"
|
212 |
+
msgid "Checked in:"
|
213 |
+
msgstr ""
|
214 |
+
|
215 |
+
#: src/Tribe/Attendees.php:182
|
216 |
+
msgid "See who purchased tickets to this event"
|
217 |
+
msgstr ""
|
218 |
+
|
219 |
+
#: src/Tribe/Attendees.php:258
|
220 |
+
msgid "You need to select a user or type a valid email address"
|
221 |
+
msgstr ""
|
222 |
+
|
223 |
+
#: src/Tribe/Attendees.php:259
|
224 |
+
msgid "Sending..."
|
225 |
+
msgstr ""
|
226 |
+
|
227 |
+
#: src/Tribe/Attendees.php:262
|
228 |
+
msgid "You must first select one or more tickets before you can move them!"
|
229 |
+
msgstr ""
|
230 |
+
|
231 |
+
#: src/Tribe/Attendees.php:293
|
232 |
+
msgid "Columns"
|
233 |
+
msgstr ""
|
234 |
+
|
235 |
+
#: src/Tribe/Attendees.php:293
|
236 |
+
msgid ""
|
237 |
+
"You can use Screen Options to select which columns you want to see. The "
|
238 |
+
"selection works in the table below, in the email, for print and for the CSV "
|
239 |
+
"export."
|
240 |
+
msgstr ""
|
241 |
+
|
242 |
+
#: src/Tribe/Attendees.php:473
|
243 |
+
msgctxt "attendee export"
|
244 |
+
msgid "Order ID"
|
245 |
+
msgstr ""
|
246 |
+
|
247 |
+
#: src/Tribe/Attendees.php:474
|
248 |
+
msgctxt "attendee export"
|
249 |
+
msgid "Order Status"
|
250 |
+
msgstr ""
|
251 |
+
|
252 |
+
#: src/Tribe/Attendees.php:475
|
253 |
+
msgctxt "attendee export"
|
254 |
+
msgid "Ticket #"
|
255 |
+
msgstr ""
|
256 |
+
|
257 |
+
#: src/Tribe/Attendees.php:476
|
258 |
+
msgctxt "attendee export"
|
259 |
+
msgid "Customer Name"
|
260 |
+
msgstr ""
|
261 |
+
|
262 |
+
#: src/Tribe/Attendees.php:477
|
263 |
+
msgctxt "attendee export"
|
264 |
+
msgid "Customer Email Address"
|
265 |
+
msgstr ""
|
266 |
+
|
267 |
+
#: src/Tribe/Attendees.php:506
|
268 |
+
msgid "Yes"
|
269 |
+
msgstr ""
|
270 |
+
|
271 |
+
#: src/Tribe/Attendees.php:557
|
272 |
+
msgid "attendees"
|
273 |
+
msgstr ""
|
274 |
+
|
275 |
+
#: src/Tribe/Attendees.php:586
|
276 |
+
msgid "Invalid Event ID"
|
277 |
+
msgstr ""
|
278 |
+
|
279 |
+
#: src/Tribe/Attendees.php:603
|
280 |
+
msgid "Cheatin Huh?"
|
281 |
+
msgstr ""
|
282 |
+
|
283 |
+
#: src/Tribe/Attendees.php:609
|
284 |
+
msgid "Empty user and email"
|
285 |
+
msgstr ""
|
286 |
+
|
287 |
+
#: src/Tribe/Attendees.php:621
|
288 |
+
msgid "Invalid Email"
|
289 |
+
msgstr ""
|
290 |
+
|
291 |
+
#: src/Tribe/Attendees.php:627 src/Tribe/Attendees.php:643
|
292 |
+
msgid "Invalid User ID"
|
293 |
+
msgstr ""
|
294 |
+
|
295 |
+
#: src/Tribe/Attendees.php:664
|
296 |
+
msgid "Attendee List for: %s"
|
297 |
+
msgstr ""
|
298 |
+
|
299 |
+
#: src/Tribe/Attendees.php:665
|
300 |
+
msgid "Error when sending the email"
|
301 |
+
msgstr ""
|
302 |
+
|
303 |
+
#: src/Tribe/Attendees.php:672
|
304 |
+
msgid "Email sent successfully!"
|
305 |
+
msgstr ""
|
306 |
+
|
307 |
#: src/Tribe/Attendees_Table.php:52
|
308 |
msgctxt "attendee table"
|
309 |
msgid "Ticket"
|
451 |
"Calendar must be running version %1$s or greater. Please %2$supdate now.%3$s"
|
452 |
msgstr ""
|
453 |
|
454 |
+
#: src/Tribe/Main.php:402
|
455 |
msgid "Support for Event Tickets"
|
456 |
msgstr ""
|
457 |
|
458 |
+
#: src/Tribe/Main.php:404
|
459 |
msgid "Settings overview"
|
460 |
msgstr ""
|
461 |
|
462 |
+
#: src/Tribe/Main.php:405
|
463 |
msgid "Features overview"
|
464 |
msgstr ""
|
465 |
|
466 |
+
#: src/Tribe/Main.php:406
|
467 |
msgid "Troubleshooting common problems"
|
468 |
msgstr ""
|
469 |
|
470 |
+
#: src/Tribe/Main.php:407
|
471 |
msgid "Customizing Event Tickets"
|
472 |
msgstr ""
|
473 |
|
474 |
+
#: src/Tribe/Main.php:424 src/admin-views/admin-welcome-message.php:23
|
475 |
msgid "New User Primer"
|
476 |
msgstr ""
|
477 |
|
478 |
+
#: src/Tribe/Main.php:426
|
479 |
msgid ""
|
480 |
"We are committed to helping you sell tickets for your event. Check out our "
|
481 |
"handy %s to get started."
|
482 |
msgstr ""
|
483 |
|
484 |
+
#: src/Tribe/Main.php:443
|
485 |
msgid "open-source forum on WordPress.org"
|
486 |
msgstr ""
|
487 |
|
488 |
+
#: src/Tribe/Main.php:444
|
489 |
msgid ""
|
490 |
"If you have tried the above steps and are still having trouble, you can post "
|
491 |
"a new thread to our %s. Our support staff monitors these forums once a week "
|
492 |
"and would be happy to assist you there."
|
493 |
msgstr ""
|
494 |
|
495 |
+
#: src/Tribe/Main.php:446
|
496 |
msgid "premium support on our website"
|
497 |
msgstr ""
|
498 |
|
499 |
+
#: src/Tribe/Main.php:447
|
500 |
msgid "Events Tickets Plus"
|
501 |
msgstr ""
|
502 |
|
503 |
+
#: src/Tribe/Main.php:448
|
504 |
msgid ""
|
505 |
"Looking for more immediate support? We offer %1$s with the purchase of any "
|
506 |
"of our premium plugins (like %2$s). Pick up a license and you can post there "
|
507 |
"directly and expect a response within 24-48 hours during weekdays."
|
508 |
msgstr ""
|
509 |
|
510 |
+
#: src/Tribe/Main.php:450 src/Tribe/Main.php:455
|
511 |
msgid "post a thread"
|
512 |
msgstr ""
|
513 |
|
514 |
+
#: src/Tribe/Main.php:451
|
515 |
msgid ""
|
516 |
"Already have Events Tickets Plus? You can %s in our premium support forums. "
|
517 |
"Our support team monitors the forums and will respond to your thread within "
|
518 |
"24-48 hours (during the week)."
|
519 |
msgstr ""
|
520 |
|
521 |
+
#: src/Tribe/Main.php:456
|
522 |
msgid ""
|
523 |
"If you have a valid license for one of our paid plugins, you can %s in our "
|
524 |
"premium support forums. Our support team monitors the forums and will "
|
525 |
"respond to your thread within 24-48 hours (during the week)."
|
526 |
msgstr ""
|
527 |
|
528 |
+
#. #-#-#-#-# event-tickets.pot (Event Tickets 4.6.1) #-#-#-#-#
|
529 |
#. Plugin Name of the plugin/theme
|
530 |
+
#: src/Tribe/Main.php:470
|
531 |
msgid "Event Tickets"
|
532 |
msgstr ""
|
533 |
|
534 |
+
#: src/Tribe/Main.php:557
|
535 |
msgid "Welcome to Event Tickets"
|
536 |
msgstr ""
|
537 |
|
538 |
+
#: src/Tribe/Main.php:692
|
539 |
msgid "Buy"
|
540 |
msgstr ""
|
541 |
|
542 |
+
#: src/Tribe/Main.php:692
|
543 |
msgctxt "button text"
|
544 |
msgid "RSVP"
|
545 |
msgstr ""
|
546 |
|
547 |
+
#: src/Tribe/Metabox.php:106
|
548 |
+
msgid "Invalid Post ID"
|
549 |
+
msgstr ""
|
550 |
+
|
551 |
+
#: src/Tribe/Metabox.php:185 src/Tribe/Metabox.php:246
|
552 |
+
#: src/Tribe/Metabox.php:298
|
553 |
+
msgid "Invalid parent Post"
|
554 |
+
msgstr ""
|
555 |
+
|
556 |
+
#: src/Tribe/Metabox.php:195
|
557 |
+
msgid "Failed to Add the Ticket, Refresh the Page to try again."
|
558 |
+
msgstr ""
|
559 |
+
|
560 |
+
#: src/Tribe/Metabox.php:199
|
561 |
+
msgid "Commerce Provider invalid"
|
562 |
+
msgstr ""
|
563 |
+
|
564 |
+
#: src/Tribe/Metabox.php:217
|
565 |
+
msgid "Failed to Add the Ticket"
|
566 |
+
msgstr ""
|
567 |
+
|
568 |
+
#: src/Tribe/Metabox.php:252 src/Tribe/Metabox.php:304
|
569 |
+
msgid "Invalid Ticket"
|
570 |
+
msgstr ""
|
571 |
+
|
572 |
+
#: src/Tribe/Metabox.php:262
|
573 |
+
msgid "Failed to Edit the Ticket, Refresh the Page to try again."
|
574 |
+
msgstr ""
|
575 |
+
|
576 |
+
#: src/Tribe/Metabox.php:268 src/Tribe/Metabox.php:314
|
577 |
+
#: src/Tribe/Metabox.php:352 src/Tribe/Metabox.php:388
|
578 |
+
msgid "Commerce Module invalid"
|
579 |
+
msgstr ""
|
580 |
+
|
581 |
+
#: src/Tribe/Metabox.php:308
|
582 |
+
msgid "Failed to Delete the Ticket, Refresh the Page to try again."
|
583 |
+
msgstr ""
|
584 |
+
|
585 |
#: src/Tribe/RSVP/Attendance_Totals.php:37
|
586 |
msgctxt "attendee summary"
|
587 |
msgid "Total RSVPs:"
|
615 |
msgid "RSVP Ticket"
|
616 |
msgstr ""
|
617 |
|
618 |
+
#: src/Tribe/RSVP.php:755
|
619 |
msgid "Your tickets from %s"
|
620 |
msgstr ""
|
621 |
|
622 |
+
#: src/Tribe/RSVP.php:843
|
623 |
msgid "You confirmed you will not be attending %s"
|
624 |
msgstr ""
|
625 |
|
626 |
+
#: src/Tribe/RSVP.php:1152
|
627 |
msgid ""
|
628 |
"Your RSVP has been received! Check your email for your RSVP confirmation."
|
629 |
msgstr ""
|
630 |
|
631 |
+
#: src/Tribe/RSVP.php:1158
|
632 |
msgid "You can't RSVP more than the total remaining tickets."
|
633 |
msgstr ""
|
634 |
|
635 |
+
#: src/Tribe/RSVP.php:1163
|
636 |
msgid "In order to RSVP, you must enter your name and a valid email address."
|
637 |
msgstr ""
|
638 |
|
639 |
+
#: src/Tribe/RSVP.php:1468
|
640 |
msgid "(deleted)"
|
641 |
msgstr ""
|
642 |
|
643 |
+
#: src/Tribe/RSVP.php:1763
|
644 |
msgid "Return to the %1$sAttendees Report%2$s."
|
645 |
msgstr ""
|
646 |
|
647 |
+
#: src/Tribe/RSVP.php:1770
|
648 |
msgid "Post updated. %1$s"
|
649 |
msgstr ""
|
650 |
|
651 |
+
#: src/Tribe/RSVP.php:1774
|
652 |
msgid "Post published. %1$s"
|
653 |
msgstr ""
|
654 |
|
655 |
+
#: src/Tribe/RSVP.php:1777
|
656 |
msgid "Post submitted."
|
657 |
msgstr ""
|
658 |
|
659 |
+
#: src/Tribe/RSVP.php:1778
|
660 |
msgid "Post scheduled."
|
661 |
msgstr ""
|
662 |
|
663 |
+
#: src/Tribe/RSVP.php:1779
|
664 |
msgid "Post draft updated."
|
665 |
msgstr ""
|
666 |
|
667 |
+
#: src/Tribe/Tickets.php:310
|
668 |
msgid "Delete RSVP"
|
669 |
msgstr ""
|
670 |
|
671 |
+
#: src/Tribe/Tickets.php:310
|
672 |
msgid "Delete Ticket"
|
673 |
msgstr ""
|
674 |
|
675 |
+
#: src/Tribe/Tickets.php:385
|
676 |
msgid "Move RSVP"
|
677 |
msgstr ""
|
678 |
|
679 |
+
#: src/Tribe/Tickets.php:385
|
680 |
msgid "Move Ticket"
|
681 |
msgstr ""
|
682 |
|
683 |
+
#: src/Tribe/Tickets.php:903
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
684 |
msgid "Shared capacity with other tickets"
|
685 |
msgstr ""
|
686 |
|
687 |
+
#: src/Tribe/Tickets.php:904
|
688 |
msgid "Set capacity for this ticket only"
|
689 |
msgstr ""
|
690 |
|
691 |
+
#: src/Tribe/Tickets.php:1458
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
692 |
msgid "Tickets are not available as this %s has passed."
|
693 |
msgstr ""
|
694 |
|
695 |
+
#: src/Tribe/Tickets.php:1460
|
696 |
msgid "Tickets are not yet available."
|
697 |
msgstr ""
|
698 |
|
699 |
+
#: src/Tribe/Tickets.php:1462
|
700 |
msgid "Tickets are no longer available."
|
701 |
msgstr ""
|
702 |
|
703 |
+
#: src/Tribe/Tickets.php:1464
|
704 |
msgid "There are no tickets available at this time."
|
705 |
msgstr ""
|
706 |
|
707 |
+
#: src/Tribe/Tickets_Handler.php:84
|
708 |
msgid "Unlimited"
|
709 |
msgstr ""
|
710 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
711 |
#: src/Tribe/Tickets_View.php:552
|
712 |
msgid "Going"
|
713 |
msgstr ""
|
728 |
msgid "Ticket"
|
729 |
msgstr ""
|
730 |
|
731 |
+
#: src/Tribe/Tickets_View.php:673 src/views/tickets/orders-link.php:53
|
732 |
msgid " and "
|
733 |
msgstr ""
|
734 |
|
869 |
msgid "Send Email"
|
870 |
msgstr ""
|
871 |
|
872 |
+
#: src/admin-views/attendees.php:38
|
873 |
msgctxt "attendee screen summary"
|
874 |
msgid "Event Details"
|
875 |
msgstr ""
|
876 |
|
877 |
+
#: src/admin-views/attendees.php:76
|
878 |
msgctxt "attendee screen summary"
|
879 |
msgid "Attendees By Ticket"
|
880 |
msgstr ""
|
881 |
|
882 |
+
#: src/admin-views/editor/fieldset/advanced.php:37
|
883 |
+
msgid "Start sale date cannot be empty."
|
884 |
+
msgstr ""
|
885 |
+
|
886 |
+
#: src/admin-views/editor/fieldset/advanced.php:38
|
887 |
+
msgid "Start sale date cannot be greater than End Sale date"
|
888 |
+
msgstr ""
|
889 |
+
|
890 |
+
#: src/admin-views/editor/fieldset/advanced.php:42
|
891 |
+
msgid "Advanced"
|
892 |
+
msgstr ""
|
893 |
+
|
894 |
+
#: src/admin-views/editor/fieldset/advanced.php:45
|
895 |
+
msgid "Advanced Settings"
|
896 |
+
msgstr ""
|
897 |
+
|
898 |
+
#: src/admin-views/editor/fieldset/advanced.php:47
|
899 |
+
msgid "Description:"
|
900 |
+
msgstr ""
|
901 |
+
|
902 |
+
#: src/admin-views/editor/fieldset/advanced.php:65
|
903 |
+
msgid "Show description on front end ticket form."
|
904 |
+
msgstr ""
|
905 |
+
|
906 |
+
#: src/admin-views/editor/fieldset/advanced.php:70
|
907 |
+
msgid "Start sale:"
|
908 |
+
msgstr ""
|
909 |
+
|
910 |
+
#: src/admin-views/editor/fieldset/advanced.php:83
|
911 |
+
#: src/admin-views/editor/fieldset/advanced.php:112
|
912 |
+
msgid "YYYY-MM-DD"
|
913 |
+
msgstr ""
|
914 |
+
|
915 |
+
#: src/admin-views/editor/fieldset/advanced.php:84
|
916 |
+
#: src/admin-views/editor/fieldset/advanced.php:113
|
917 |
+
msgid "at"
|
918 |
+
msgstr ""
|
919 |
+
|
920 |
+
#: src/admin-views/editor/fieldset/advanced.php:95
|
921 |
+
msgid "Ticket start date"
|
922 |
+
msgstr ""
|
923 |
+
|
924 |
+
#: src/admin-views/editor/fieldset/advanced.php:97
|
925 |
+
#: src/admin-views/editor/fieldset/advanced.php:126
|
926 |
+
msgid "HH:MM"
|
927 |
+
msgstr ""
|
928 |
+
|
929 |
+
#: src/admin-views/editor/fieldset/advanced.php:98
|
930 |
+
msgid ""
|
931 |
+
"If you do not set a start sale date, tickets will be available immediately."
|
932 |
+
msgstr ""
|
933 |
+
|
934 |
+
#: src/admin-views/editor/fieldset/advanced.php:102
|
935 |
+
msgid "End sale:"
|
936 |
+
msgstr ""
|
937 |
+
|
938 |
+
#: src/admin-views/editor/fieldset/advanced.php:124
|
939 |
+
msgid "Ticket end date"
|
940 |
+
msgstr ""
|
941 |
+
|
942 |
+
#: src/admin-views/editor/fieldset/advanced.php:130
|
943 |
+
msgid ""
|
944 |
+
"If you do not set an end sale date, tickets will be available until the "
|
945 |
+
"event begins."
|
946 |
+
msgstr ""
|
947 |
+
|
948 |
+
#: src/admin-views/editor/fieldset/advanced.php:132
|
949 |
+
msgid "If you do not set an end sale date, tickets sales will never end."
|
950 |
+
msgstr ""
|
951 |
+
|
952 |
+
#: src/admin-views/editor/fieldset/history.php:27
|
953 |
+
msgid "History"
|
954 |
+
msgstr ""
|
955 |
+
|
956 |
+
#: src/admin-views/editor/fieldset/history.php:30
|
957 |
+
msgid "Ti"
|
958 |
+
msgstr ""
|
959 |
+
|
960 |
+
#: src/admin-views/editor/list-row.php:33
|
961 |
+
msgid "Ticket Type:"
|
962 |
+
msgstr ""
|
963 |
+
|
964 |
+
#: src/admin-views/editor/list-row.php:58
|
965 |
+
#: src/admin-views/rsvp-metabox-capacity.php:10
|
966 |
+
msgid "Capacity:"
|
967 |
+
msgstr ""
|
968 |
+
|
969 |
+
#: src/admin-views/editor/list-row.php:63
|
970 |
+
msgid "Available:"
|
971 |
+
msgstr ""
|
972 |
+
|
973 |
+
#: src/admin-views/editor/list-row.php:65
|
974 |
+
msgid ""
|
975 |
+
"The number of Complete ticket sales does not match the number of attendees. "
|
976 |
+
"Please check the Attendees list and adjust ticket stock in WooCommerce as "
|
977 |
+
"needed."
|
978 |
+
msgstr ""
|
979 |
+
|
980 |
+
#: src/admin-views/editor/list-row.php:77
|
981 |
+
msgid "( Ticket ID: %d )"
|
982 |
+
msgstr ""
|
983 |
+
|
984 |
+
#: src/admin-views/editor/list-table.php:39
|
985 |
+
msgid "Capacity"
|
986 |
+
msgstr ""
|
987 |
+
|
988 |
+
#: src/admin-views/editor/list-table.php:40
|
989 |
+
msgid "Available"
|
990 |
+
msgstr ""
|
991 |
+
|
992 |
+
#: src/admin-views/editor/panel/list.php:11
|
993 |
msgid "You have unsaved changes to your tickets. Discard those changes?"
|
994 |
msgstr ""
|
995 |
|
996 |
+
#: src/admin-views/editor/panel/list.php:39
|
997 |
msgid "View Attendees"
|
998 |
msgstr ""
|
999 |
|
1000 |
+
#: src/admin-views/editor/panel/list.php:59
|
1001 |
msgid "Add a new RSVP"
|
1002 |
msgstr ""
|
1003 |
|
1004 |
+
#: src/admin-views/editor/panel/list.php:61
|
1005 |
msgid "New RSVP"
|
1006 |
msgstr ""
|
1007 |
|
1008 |
+
#: src/admin-views/editor/panel/list.php:66
|
1009 |
msgid "Settings"
|
1010 |
msgstr ""
|
1011 |
|
1012 |
+
#: src/admin-views/editor/panel/settings.php:14
|
1013 |
+
#: src/admin-views/tribe-options-tickets.php:47
|
1014 |
+
msgid "Ticket Settings"
|
1015 |
msgstr ""
|
1016 |
|
1017 |
+
#: src/admin-views/editor/panel/settings.php:30
|
1018 |
+
msgid "Ticket header image:"
|
1019 |
+
msgstr ""
|
1020 |
+
|
1021 |
+
#: src/admin-views/editor/panel/settings.php:32
|
1022 |
+
msgid ""
|
1023 |
+
"Select an image from your Media Library to display on emailed tickets. For "
|
1024 |
+
"best results, use a .jpg, .png, or .gif at least 1160px wide."
|
1025 |
msgstr ""
|
1026 |
|
1027 |
+
#: src/admin-views/editor/panel/settings.php:40
|
1028 |
+
msgid "Select an Image"
|
1029 |
+
msgstr ""
|
1030 |
+
|
1031 |
+
#: src/admin-views/editor/panel/settings.php:56
|
1032 |
+
msgid "Remove"
|
1033 |
+
msgstr ""
|
1034 |
+
|
1035 |
+
#: src/admin-views/editor/panel/settings.php:69
|
1036 |
+
msgid "Save settings"
|
1037 |
+
msgstr ""
|
1038 |
+
|
1039 |
+
#: src/admin-views/editor/panel/settings.php:70
|
1040 |
+
#: src/admin-views/editor/panel/ticket.php:192
|
1041 |
+
msgid "Cancel"
|
1042 |
+
msgstr ""
|
1043 |
+
|
1044 |
+
#: src/admin-views/editor/panel/ticket.php:46
|
1045 |
msgid "Add new ticket"
|
1046 |
msgstr ""
|
1047 |
|
1048 |
+
#: src/admin-views/editor/panel/ticket.php:54
|
1049 |
msgid "Edit ticket"
|
1050 |
msgstr ""
|
1051 |
|
1052 |
+
#: src/admin-views/editor/panel/ticket.php:68
|
1053 |
msgid "Add new RSVP"
|
1054 |
msgstr ""
|
1055 |
|
1056 |
+
#: src/admin-views/editor/panel/ticket.php:76
|
1057 |
msgid "Edit RSVP"
|
1058 |
msgstr ""
|
1059 |
|
1060 |
+
#: src/admin-views/editor/panel/ticket.php:81
|
1061 |
msgid "Type:"
|
1062 |
msgstr ""
|
1063 |
|
1064 |
+
#: src/admin-views/editor/panel/ticket.php:90
|
1065 |
msgid "Ticket Type is a required field."
|
1066 |
msgstr ""
|
1067 |
|
1068 |
+
#: src/admin-views/editor/panel/ticket.php:92
|
1069 |
msgid "Ticket type name shows on the front end and emailed tickets"
|
1070 |
msgstr ""
|
1071 |
|
1072 |
+
#: src/admin-views/editor/panel/ticket.php:95
|
1073 |
msgid "Sell using:"
|
1074 |
msgstr ""
|
1075 |
|
1076 |
+
#: src/admin-views/editor/panel/ticket.php:174
|
1077 |
msgid "Save ticket"
|
1078 |
msgstr ""
|
1079 |
|
1080 |
+
#: src/admin-views/editor/panel/ticket.php:183
|
1081 |
msgid "Save RSVP"
|
1082 |
msgstr ""
|
1083 |
|
|
|
|
|
|
|
|
|
|
|
1084 |
#: src/admin-views/legacy-ticket-fields.php:15
|
1085 |
msgid "Price:"
|
1086 |
msgstr ""
|
1097 |
msgid "(Current sale price - this can be managed via the product editor)"
|
1098 |
msgstr ""
|
1099 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1100 |
#: src/admin-views/move-tickets.php:19
|
1101 |
msgid "No attendees specified! Please try again."
|
1102 |
msgstr ""
|
1166 |
msgid "Leave blank for unlimited"
|
1167 |
msgstr ""
|
1168 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1169 |
#: src/admin-views/ticket-type-history.php:10
|
1170 |
msgid "Ticket history:"
|
1171 |
msgstr ""
|
1178 |
msgid "Click to hide history"
|
1179 |
msgstr ""
|
1180 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1181 |
#: src/admin-views/tribe-options-tickets.php:37
|
1182 |
msgid "Require users to log in before they RSVP"
|
1183 |
msgstr ""
|
1295 |
|
1296 |
#: src/views/tickets/email-non-attendance.php:24
|
1297 |
#: src/views/tickets/email-ticket-type-moved.php:25
|
1298 |
+
#: src/views/tickets/email-tickets-moved.php:26 src/views/tickets/email.php:26
|
1299 |
msgid "Your tickets"
|
1300 |
msgstr ""
|
1301 |
|
1338 |
msgstr[0] ""
|
1339 |
msgstr[1] ""
|
1340 |
|
1341 |
+
#: src/views/tickets/email.php:370
|
1342 |
msgid "Ticket #"
|
1343 |
msgstr ""
|
1344 |
|
1345 |
+
#: src/views/tickets/email.php:374
|
1346 |
msgid "Ticket Type"
|
1347 |
msgstr ""
|
1348 |
|
1349 |
+
#: src/views/tickets/email.php:378
|
1350 |
msgid "Purchaser"
|
1351 |
msgstr ""
|
1352 |
|
1353 |
+
#: src/views/tickets/email.php:382
|
1354 |
msgid "Security Code"
|
1355 |
msgstr ""
|
1356 |
|
1357 |
+
#: src/views/tickets/orders-link.php:30
|
1358 |
msgid "%d RSVP"
|
1359 |
msgid_plural "%d RSVPs"
|
1360 |
msgstr[0] ""
|
1361 |
msgstr[1] ""
|
1362 |
|
1363 |
+
#: src/views/tickets/orders-link.php:34
|
1364 |
msgid "%d Ticket"
|
1365 |
msgid_plural "%d Tickets"
|
1366 |
msgstr[0] ""
|
1367 |
msgstr[1] ""
|
1368 |
|
1369 |
+
#: src/views/tickets/orders-link.php:53
|
1370 |
msgid "You have %s for this %s."
|
1371 |
msgstr ""
|
1372 |
|
1373 |
+
#: src/views/tickets/orders-link.php:54
|
1374 |
msgid "View your %s"
|
1375 |
msgstr ""
|
1376 |
|
readme.txt
CHANGED
@@ -3,8 +3,8 @@
|
|
3 |
Contributors: ModernTribe, borkweb, aguseo, barry.hughes, bordoni, brianjessee, cliffpaulick, courane01, faction23, GeoffBel, geoffgraham, ggwicz, jbrinley, jentheo, leahkoerper, lucatume, mastromktg, MZAWeb, neillmcshea, nicosantos, patriciahillebrandt, peterchester, reid.peifer, roblagatta, ryancurban, shane.pearlman, tribecari, vicskf, zbtirrell
|
4 |
Tags: RSVP, events, tickets, event management, calendar, ticket sales, community, registration, api, dates, date, posts, workshop, conference, meeting, seminar, concert, summit, ticket integration, event ticketing
|
5 |
Requires at least: 4.5
|
6 |
-
Tested up to: 4.
|
7 |
-
Stable tag: 4.6
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
@@ -233,6 +233,24 @@ The plugin is produced by [Modern Tribe Inc](http://m.tri.be/18uc).
|
|
233 |
|
234 |
== Changelog ==
|
235 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
236 |
= [4.6] 2017-11-09 =
|
237 |
|
238 |
* New - Fully redesigned ticket editor interface
|
3 |
Contributors: ModernTribe, borkweb, aguseo, barry.hughes, bordoni, brianjessee, cliffpaulick, courane01, faction23, GeoffBel, geoffgraham, ggwicz, jbrinley, jentheo, leahkoerper, lucatume, mastromktg, MZAWeb, neillmcshea, nicosantos, patriciahillebrandt, peterchester, reid.peifer, roblagatta, ryancurban, shane.pearlman, tribecari, vicskf, zbtirrell
|
4 |
Tags: RSVP, events, tickets, event management, calendar, ticket sales, community, registration, api, dates, date, posts, workshop, conference, meeting, seminar, concert, summit, ticket integration, event ticketing
|
5 |
Requires at least: 4.5
|
6 |
+
Tested up to: 4.9
|
7 |
+
Stable tag: 4.6.1
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
233 |
|
234 |
== Changelog ==
|
235 |
|
236 |
+
= [4.6.1] 2017-11-21 =
|
237 |
+
|
238 |
+
* Tweak - Prevents unnecessary AJAX requests when using tickets editor [88642]
|
239 |
+
* Tweak - Removes weird clearing of fields when canceling or saving Tickets [88642]
|
240 |
+
* Tweak - Allow saving of Ticket Editor contents when Updating the Event [91760]
|
241 |
+
* Tweak - Included more hooks via the new Template class for the Ticket Editor: `tribe_template_file`, `tribe_template_before_include`, `tribe_template_after_include` and `tribe_template_html` [91760]
|
242 |
+
* Tweak - Only display admin links in Community Tickets if user is able to access the admin [79565]
|
243 |
+
* Tweak - spacing of message to logged in users to view attendees [92550]
|
244 |
+
* Fix - RSVP and Tickets migration from pre-4.6 updates capacity corretly for all cases now (props to Uwe Matern) [93231]
|
245 |
+
* Fix - Attendees column for events display correctly the percentages now [92287]
|
246 |
+
* Fix - Tickets Editor now has more support for Accessibility [80651]
|
247 |
+
* Tweak - Added filters: `tribe_ticket_filter_attendee_report_link`, `tribe_tickets_attendees_show_title`
|
248 |
+
* Tweak - Removed filters: `tribe_tickets_default_end_date`, `tribe_tickets_ajax_refresh_settings`, `tribe_tickets_can_update_ticket_price`, `tribe_tickets_disallow_update_ticket_price_message`, `tribe_events_tickets_metabox_edit_attendee`
|
249 |
+
* Tweak - Added actions: `tribe_tickets_save_post`
|
250 |
+
* Tweak - Removed actions: `tribe_events_tickets_pre_ticket_list`, `tribe_events_tickets_post_ticket_list`
|
251 |
+
* Tweak - Changed views: `tickets/email`, `tickets/orders-link`
|
252 |
+
* Language - 10 new strings added, 132 updated, 0 fuzzied, and 9 obsoleted
|
253 |
+
|
254 |
= [4.6] 2017-11-09 =
|
255 |
|
256 |
* New - Fully redesigned ticket editor interface
|
src/Tribe/Admin/Columns/Tickets.php
CHANGED
@@ -89,83 +89,47 @@ class Tribe__Tickets__Admin__Columns__Tickets {
|
|
89 |
* @return string The column HTML.
|
90 |
*/
|
91 |
protected function render_tickets_entry( $post_id ) {
|
92 |
-
$
|
|
|
93 |
|
94 |
-
|
95 |
-
if (
|
96 |
-
return '
|
97 |
}
|
98 |
|
99 |
-
$content = sprintf( '<div>%s</div>%s', $
|
100 |
-
$attendees_link = tribe( 'tickets.
|
101 |
|
102 |
-
return sprintf( '<a href="%s" target="_blank">%s</a>', $attendees_link, $content );
|
103 |
}
|
104 |
|
105 |
/**
|
106 |
-
*
|
107 |
-
*
|
108 |
-
* @param Tribe__Tickets__Ticket_Object[] $tickets
|
109 |
*
|
110 |
-
* @
|
111 |
-
*/
|
112 |
-
protected function get_sold( $tickets ) {
|
113 |
-
$sold = 0;
|
114 |
-
|
115 |
-
/** @var Tribe__Tickets__Ticket_Object $ticket */
|
116 |
-
foreach ( $tickets as $ticket ) {
|
117 |
-
$sold += $ticket->qty_sold();
|
118 |
-
}
|
119 |
-
|
120 |
-
return $sold;
|
121 |
-
}
|
122 |
-
|
123 |
-
/**
|
124 |
-
* Iterates over an array of tickets to render the percentage HTML.
|
125 |
*
|
126 |
-
* @param int
|
127 |
-
* @param
|
128 |
*
|
129 |
* @return string The percentage HTML or an empty string if one of the
|
130 |
* post tickets has unlimited stock.
|
131 |
*/
|
132 |
-
protected function get_percentage_string( $post_id,
|
133 |
-
$
|
134 |
-
$stock = 0;
|
135 |
-
|
136 |
-
$global_stock_enabled = get_post_meta( $post_id, Tribe__Tickets__Global_Stock::GLOBAL_STOCK_ENABLED, true ) == true;
|
137 |
-
$global_stock = $global_stock_enabled ?
|
138 |
-
get_post_meta( $post_id, Tribe__Tickets__Global_Stock::GLOBAL_STOCK_LEVEL, true )
|
139 |
-
: false;
|
140 |
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
// not tracking stock
|
146 |
-
if ( false === $remaining ) {
|
147 |
-
// if event just one is not tracking stock bail
|
148 |
-
return '';
|
149 |
-
}
|
150 |
-
|
151 |
-
$this_sold = $ticket->qty_sold();
|
152 |
-
$this_stock = $global_stock !== false
|
153 |
-
? $global_stock
|
154 |
-
: $ticket->stock() + $this_sold;
|
155 |
-
|
156 |
-
// sanity check
|
157 |
-
if ( $this_sold > $this_stock ) {
|
158 |
-
$this_sold = $this_stock;
|
159 |
-
}
|
160 |
-
|
161 |
-
$sold += $this_sold;
|
162 |
-
$stock += $this_stock;
|
163 |
}
|
164 |
|
165 |
-
$
|
|
|
|
|
|
|
|
|
166 |
|
167 |
// If there have been zero sales we need not do any further arithmetic
|
168 |
-
if ( 0 === $sold ) {
|
169 |
$percentage = 0;
|
170 |
}
|
171 |
// If $stock is zero (and items *have* been sold per the above conditional) we can assume 100%
|
@@ -174,9 +138,39 @@ class Tribe__Tickets__Admin__Columns__Tickets {
|
|
174 |
}
|
175 |
// In all other cases, calculate the actual percentage
|
176 |
else {
|
177 |
-
$percentage = round(
|
178 |
}
|
179 |
|
180 |
return ' <div><small>(' . $percentage . '%)</small></div>';
|
181 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
182 |
}
|
89 |
* @return string The column HTML.
|
90 |
*/
|
91 |
protected function render_tickets_entry( $post_id ) {
|
92 |
+
$post = get_post( $post_id );
|
93 |
+
$totals = tribe( 'tickets.handler' )->get_post_totals( $post );
|
94 |
|
95 |
+
// Bail with —
|
96 |
+
if ( 0 === $totals['tickets'] ) {
|
97 |
+
return '—';
|
98 |
}
|
99 |
|
100 |
+
$content = sprintf( '<div>%s</div>%s', $totals['sold'], $this->get_percentage_string( $post->ID ) );
|
101 |
+
$attendees_link = tribe( 'tickets.attendees' )->get_report_link( $post );
|
102 |
|
103 |
+
return sprintf( '<a href="%s" target="_blank" class="tribe-tickets-column-attendees-link">%s</a>', $attendees_link, $content );
|
104 |
}
|
105 |
|
106 |
/**
|
107 |
+
* Gets the HTML for the percentage string for Attendees Column
|
|
|
|
|
108 |
*
|
109 |
+
* @since TBD Deprecated the Second Param
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
110 |
*
|
111 |
+
* @param int $post_id The current post ID.
|
112 |
+
* @param null $deprecated
|
113 |
*
|
114 |
* @return string The percentage HTML or an empty string if one of the
|
115 |
* post tickets has unlimited stock.
|
116 |
*/
|
117 |
+
protected function get_percentage_string( $post_id, $deprecated = null ) {
|
118 |
+
$totals = tribe( 'tickets.handler' )->get_post_totals( $post_id );
|
|
|
|
|
|
|
|
|
|
|
|
|
119 |
|
120 |
+
// Bail early for unlimited
|
121 |
+
if ( $totals['has_unlimited'] ) {
|
122 |
+
return tribe_tickets_get_readable_amount( -1 );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
123 |
}
|
124 |
|
125 |
+
$shared_capacity_obj = new Tribe__Tickets__Global_Stock( $post_id );
|
126 |
+
$global_stock_enabled = $shared_capacity_obj->is_enabled();
|
127 |
+
$global_stock = $shared_capacity_obj->get_stock_level();
|
128 |
+
|
129 |
+
$stock = $global_stock_enabled ? $global_stock : $totals['stock'];
|
130 |
|
131 |
// If there have been zero sales we need not do any further arithmetic
|
132 |
+
if ( 0 === $totals['sold'] || 0 === $totals['capacity'] ) {
|
133 |
$percentage = 0;
|
134 |
}
|
135 |
// If $stock is zero (and items *have* been sold per the above conditional) we can assume 100%
|
138 |
}
|
139 |
// In all other cases, calculate the actual percentage
|
140 |
else {
|
141 |
+
$percentage = round( ( 100 / $totals['capacity'] ) * $totals['sold'], 0 );
|
142 |
}
|
143 |
|
144 |
return ' <div><small>(' . $percentage . '%)</small></div>';
|
145 |
}
|
146 |
+
|
147 |
+
/************************
|
148 |
+
* *
|
149 |
+
* Deprecated Methods *
|
150 |
+
* *
|
151 |
+
************************/
|
152 |
+
// @codingStandardsIgnoreStart
|
153 |
+
|
154 |
+
/**
|
155 |
+
* Iterates over an array of tickets to fetch the sale total.
|
156 |
+
*
|
157 |
+
* @deprecated TBD
|
158 |
+
*
|
159 |
+
* @param Tribe__Tickets__Ticket_Object[] $tickets
|
160 |
+
*
|
161 |
+
* @return int The sale total.
|
162 |
+
*/
|
163 |
+
protected function get_sold( $tickets ) {
|
164 |
+
_deprecated_function( __METHOD__, 'TBD', 'tribe( "tickets.handler" )->get_ticket_totals()' );
|
165 |
+
$sold = 0;
|
166 |
+
|
167 |
+
/** @var Tribe__Tickets__Ticket_Object $ticket */
|
168 |
+
foreach ( $tickets as $ticket ) {
|
169 |
+
$sold += $ticket->qty_sold();
|
170 |
+
}
|
171 |
+
|
172 |
+
return $sold;
|
173 |
+
}
|
174 |
+
// @codingStandardsIgnoreEnd
|
175 |
+
|
176 |
}
|
src/Tribe/Admin/Views.php
CHANGED
@@ -1,6 +1,4 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
-
|
4 |
/**
|
5 |
* Class Tribe__Tickets__Admin__Views
|
6 |
*
|
@@ -12,12 +10,31 @@
|
|
12 |
*
|
13 |
* @link https://make.wordpress.org/docs/plugin-developer-handbook/10-plugin-components/custom-list-table-columns/#views
|
14 |
*/
|
15 |
-
class Tribe__Tickets__Admin__Views {
|
16 |
|
17 |
/**
|
18 |
-
*
|
|
|
|
|
19 |
*/
|
20 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
21 |
|
22 |
/**
|
23 |
* Adds the view links on supported post types admin lists.
|
@@ -36,8 +53,4 @@ class Tribe__Tickets__Admin__Views {
|
|
36 |
|
37 |
return true;
|
38 |
}
|
39 |
-
|
40 |
-
public function hook() {
|
41 |
-
$this->add_view_links( (array) tribe_get_option( 'ticket-enabled-post-types', array() ) );
|
42 |
-
}
|
43 |
}
|
1 |
<?php
|
|
|
|
|
2 |
/**
|
3 |
* Class Tribe__Tickets__Admin__Views
|
4 |
*
|
10 |
*
|
11 |
* @link https://make.wordpress.org/docs/plugin-developer-handbook/10-plugin-components/custom-list-table-columns/#views
|
12 |
*/
|
13 |
+
class Tribe__Tickets__Admin__Views extends Tribe__Template {
|
14 |
|
15 |
/**
|
16 |
+
* Building of the Class template configuration
|
17 |
+
*
|
18 |
+
* @since TBD
|
19 |
*/
|
20 |
+
public function __construct() {
|
21 |
+
$this->set_template_origin( Tribe__Tickets__Main::instance() );
|
22 |
+
$this->set_template_folder( 'src/admin-views' );
|
23 |
+
|
24 |
+
// Configures this templating class extract variables
|
25 |
+
$this->set_template_context_extract( true );
|
26 |
+
}
|
27 |
+
|
28 |
+
/**
|
29 |
+
* Hook the necessary Filters and Actions
|
30 |
+
*
|
31 |
+
* @since 4.6
|
32 |
+
*
|
33 |
+
* @return void
|
34 |
+
*/
|
35 |
+
public function hook() {
|
36 |
+
$this->add_view_links( (array) tribe_get_option( 'ticket-enabled-post-types', array() ) );
|
37 |
+
}
|
38 |
|
39 |
/**
|
40 |
* Adds the view links on supported post types admin lists.
|
53 |
|
54 |
return true;
|
55 |
}
|
|
|
|
|
|
|
|
|
56 |
}
|
src/Tribe/Assets.php
CHANGED
@@ -50,17 +50,7 @@ class Tribe__Tickets__Assets {
|
|
50 |
*/
|
51 |
$decimal = apply_filters( 'tribe_event_ticket_decimal_point', $decimal );
|
52 |
|
53 |
-
|
54 |
-
* Filter Default Ticket Capacity Type
|
55 |
-
*
|
56 |
-
* @since 4.6
|
57 |
-
*
|
58 |
-
* @param string 'global'
|
59 |
-
*
|
60 |
-
* @return string (global,own,unlimited)
|
61 |
-
*
|
62 |
-
*/
|
63 |
-
$global_stock_mode = apply_filters( 'tribe_tickets_default_ticket_capacity_type', 'global' );
|
64 |
|
65 |
tribe_assets(
|
66 |
Tribe__Tickets__Main::instance(),
|
@@ -68,7 +58,7 @@ class Tribe__Tickets__Assets {
|
|
68 |
array( 'event-tickets-admin-css', 'tickets.css', array( 'tribe-validation-style', 'tribe-jquery-timepicker-css' ) ),
|
69 |
array( 'event-tickets-admin-refresh-css', 'tickets-refresh.css', array( 'event-tickets-admin-css', 'common' ) ),
|
70 |
array( 'event-tickets-admin-tables-css', 'tickets-tables.css', array( 'event-tickets-admin-css' ) ),
|
71 |
-
array( 'event-tickets-admin-tables-js', 'tickets-tables.js', array( 'underscore' ) ),
|
72 |
array( 'event-tickets-attendees-list-js', 'attendees-list.js', array( 'jquery' ) ),
|
73 |
array( 'event-tickets-admin-accordion-js', 'accordion.js', array() ),
|
74 |
array( 'event-tickets-admin-accordion-css', 'accordion.css', array() ),
|
50 |
*/
|
51 |
$decimal = apply_filters( 'tribe_event_ticket_decimal_point', $decimal );
|
52 |
|
53 |
+
$global_stock_mode = tribe( 'tickets.handler' )->get_default_capacity_mode();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
54 |
|
55 |
tribe_assets(
|
56 |
Tribe__Tickets__Main::instance(),
|
58 |
array( 'event-tickets-admin-css', 'tickets.css', array( 'tribe-validation-style', 'tribe-jquery-timepicker-css' ) ),
|
59 |
array( 'event-tickets-admin-refresh-css', 'tickets-refresh.css', array( 'event-tickets-admin-css', 'common' ) ),
|
60 |
array( 'event-tickets-admin-tables-css', 'tickets-tables.css', array( 'event-tickets-admin-css' ) ),
|
61 |
+
array( 'event-tickets-admin-tables-js', 'tickets-tables.js', array( 'underscore', 'jquery', 'tribe-common' ) ),
|
62 |
array( 'event-tickets-attendees-list-js', 'attendees-list.js', array( 'jquery' ) ),
|
63 |
array( 'event-tickets-admin-accordion-js', 'accordion.js', array() ),
|
64 |
array( 'event-tickets-admin-accordion-css', 'accordion.css', array() ),
|
src/Tribe/Attendees.php
ADDED
@@ -0,0 +1,720 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Handles most actions related to an Attendeees or Multiple ones
|
4 |
+
*/
|
5 |
+
class Tribe__Tickets__Attendees {
|
6 |
+
/**
|
7 |
+
* Hook of the admin page for attendees
|
8 |
+
*
|
9 |
+
* @since TBD
|
10 |
+
*
|
11 |
+
* @var string
|
12 |
+
*/
|
13 |
+
public $page_id;
|
14 |
+
|
15 |
+
/**
|
16 |
+
* WP_Post_List children for Attendees
|
17 |
+
*
|
18 |
+
* @since TBD
|
19 |
+
*
|
20 |
+
* @var Tribe__Tickets__Attendees_Table
|
21 |
+
*/
|
22 |
+
public $attendees_table;
|
23 |
+
|
24 |
+
/**
|
25 |
+
* Hooks all the required actions and filters in WordPress
|
26 |
+
*
|
27 |
+
* @since TBD
|
28 |
+
*
|
29 |
+
* @return void
|
30 |
+
*/
|
31 |
+
public function hook() {
|
32 |
+
add_action( 'admin_menu', array( $this, 'register_page' ) );
|
33 |
+
|
34 |
+
add_action( 'tribe_events_tickets_attendees_totals_top', array( $this, 'print_checkedin_totals' ), 0 );
|
35 |
+
add_action( 'tribe_tickets_attendees_event_details_list_top', array( $this, 'event_details_top' ), 20 );
|
36 |
+
add_action( 'tribe_tickets_plus_report_event_details_list_top', array( $this, 'event_details_top' ), 20 );
|
37 |
+
|
38 |
+
add_action( 'tribe_tickets_attendees_event_details_list_top', array( $this, 'event_action_links' ), 25 );
|
39 |
+
add_action( 'tribe_tickets_plus_report_event_details_list_top', array( $this, 'event_action_links' ), 25 );
|
40 |
+
|
41 |
+
add_filter( 'post_row_actions', array( $this, 'filter_admin_row_actions' ) );
|
42 |
+
add_filter( 'page_row_actions', array( $this, 'filter_admin_row_actions' ) );
|
43 |
+
}
|
44 |
+
|
45 |
+
/**
|
46 |
+
* Returns the Attendees Post Type Slug (mostly used for RSVP)
|
47 |
+
*
|
48 |
+
* @since TBD
|
49 |
+
*
|
50 |
+
* @return string
|
51 |
+
*/
|
52 |
+
public function slug() {
|
53 |
+
return 'tickets-attendees';
|
54 |
+
}
|
55 |
+
|
56 |
+
/**
|
57 |
+
* Returns the current post being handled.
|
58 |
+
*
|
59 |
+
* @since TBD
|
60 |
+
*
|
61 |
+
* @return array|bool|null|WP_Post
|
62 |
+
*/
|
63 |
+
public function get_post() {
|
64 |
+
return $this->attendees_table->event;
|
65 |
+
}
|
66 |
+
|
67 |
+
/**
|
68 |
+
* Injects event post type
|
69 |
+
*
|
70 |
+
* @since TBD
|
71 |
+
*
|
72 |
+
* @param int $event_id
|
73 |
+
*/
|
74 |
+
public function event_details_top( $event_id ) {
|
75 |
+
$pto = get_post_type_object( get_post_type( $event_id ) );
|
76 |
+
|
77 |
+
echo '
|
78 |
+
<li class="post-type">
|
79 |
+
<strong>' . esc_html__( 'Post type', 'event-tickets' ) . ': </strong>
|
80 |
+
' . esc_html( $pto->label ) . '
|
81 |
+
</li>
|
82 |
+
';
|
83 |
+
}
|
84 |
+
|
85 |
+
/**
|
86 |
+
* Injects action links into the attendee screen.
|
87 |
+
*
|
88 |
+
* @since TBD
|
89 |
+
*
|
90 |
+
* @param $event_id
|
91 |
+
*/
|
92 |
+
public function event_action_links( $event_id ) {
|
93 |
+
$action_links = array(
|
94 |
+
'<a href="' . esc_url( get_edit_post_link( $event_id ) ) . '" title="' . esc_attr_x( 'Edit', 'attendee event actions', 'event-tickets' ) . '">' . esc_html_x( 'Edit Event', 'attendee event actions', 'event-tickets' ) . '</a>',
|
95 |
+
'<a href="' . esc_url( get_permalink( $event_id ) ) . '" title="' . esc_attr_x( 'View', 'attendee event actions', 'event-tickets' ) . '">' . esc_html_x( 'View Event', 'attendee event actions', 'event-tickets' ) . '</a>',
|
96 |
+
);
|
97 |
+
|
98 |
+
/**
|
99 |
+
* Provides an opportunity to add and remove action links from the
|
100 |
+
* attendee screen summary box.
|
101 |
+
*
|
102 |
+
* @param array $action_links
|
103 |
+
*/
|
104 |
+
$action_links = (array) apply_filters( 'tribe_tickets_attendees_event_action_links', $action_links );
|
105 |
+
|
106 |
+
if ( empty( $action_links ) ) {
|
107 |
+
return;
|
108 |
+
}
|
109 |
+
|
110 |
+
echo wp_kses_post( '<li class="event-actions">' . join( ' | ', $action_links ) . '</li>' );
|
111 |
+
}
|
112 |
+
|
113 |
+
|
114 |
+
/**
|
115 |
+
* Print Check In Totals at top of Column
|
116 |
+
*
|
117 |
+
* @since TBD
|
118 |
+
*/
|
119 |
+
public function print_checkedin_totals() {
|
120 |
+
$total_checked_in = Tribe__Tickets__Main::instance()->attendance_totals()->get_total_checked_in();
|
121 |
+
|
122 |
+
echo '<div class="totals-header"><h3>' . esc_html_x( 'Checked in:', 'attendee summary', 'event-tickets' ) . '</h3> ' . absint( $total_checked_in ) . '</div>';
|
123 |
+
}
|
124 |
+
|
125 |
+
/**
|
126 |
+
* Returns the full URL to the attendees report page.
|
127 |
+
*
|
128 |
+
* @since TBD
|
129 |
+
*
|
130 |
+
* @param WP_Post $post
|
131 |
+
*
|
132 |
+
* @return string
|
133 |
+
*/
|
134 |
+
public function get_report_link( $post ) {
|
135 |
+
$args = array(
|
136 |
+
'post_type' => $post->post_type,
|
137 |
+
'page' => $this->slug(),
|
138 |
+
'event_id' => $post->ID,
|
139 |
+
);
|
140 |
+
|
141 |
+
$url = add_query_arg( $args, admin_url( 'edit.php' ) );
|
142 |
+
|
143 |
+
/**
|
144 |
+
* Filter the Attendee Report Url
|
145 |
+
*
|
146 |
+
* @since TDB
|
147 |
+
*
|
148 |
+
* @param string $url a url to attendee report
|
149 |
+
* @param int $post ->ID post id
|
150 |
+
*/
|
151 |
+
$url = apply_filters( 'tribe_ticket_filter_attendee_report_link', $url, $post->ID );
|
152 |
+
|
153 |
+
return $url;
|
154 |
+
}
|
155 |
+
|
156 |
+
/**
|
157 |
+
* Adds the "attendees" link in the admin list row actions for each event.
|
158 |
+
*
|
159 |
+
* @param $actions
|
160 |
+
*
|
161 |
+
* @return array
|
162 |
+
*/
|
163 |
+
public function filter_admin_row_actions( $actions ) {
|
164 |
+
global $post;
|
165 |
+
|
166 |
+
// Only proceed if we're viewing a tickets-enabled post type.
|
167 |
+
if ( ! in_array( $post->post_type, Tribe__Tickets__Main::instance()->post_types() ) ) {
|
168 |
+
return $actions;
|
169 |
+
}
|
170 |
+
|
171 |
+
$tickets = Tribe__Tickets__Tickets::get_event_tickets( $post->ID );
|
172 |
+
|
173 |
+
// Only proceed if there are tickets.
|
174 |
+
if ( empty( $tickets ) ) {
|
175 |
+
return $actions;
|
176 |
+
}
|
177 |
+
|
178 |
+
$url = $this->get_report_link( $post );
|
179 |
+
|
180 |
+
$actions['tickets_attendees'] = sprintf(
|
181 |
+
'<a title="%s" href="%s">%s</a>',
|
182 |
+
esc_html__( 'See who purchased tickets to this event', 'event-tickets' ),
|
183 |
+
esc_url( $url ),
|
184 |
+
esc_html__( 'Attendees', 'event-tickets' )
|
185 |
+
);
|
186 |
+
|
187 |
+
return $actions;
|
188 |
+
}
|
189 |
+
|
190 |
+
/**
|
191 |
+
* Registers the Attendees admin page
|
192 |
+
*
|
193 |
+
* @since TBD
|
194 |
+
*/
|
195 |
+
public function register_page() {
|
196 |
+
$cap = 'edit_posts';
|
197 |
+
$event_id = absint( ! empty( $_GET['event_id'] ) && is_numeric( $_GET['event_id'] ) ? $_GET['event_id'] : 0 );
|
198 |
+
|
199 |
+
if ( ! current_user_can( 'edit_posts' ) && $event_id ) {
|
200 |
+
$event = get_post( $event_id );
|
201 |
+
|
202 |
+
if ( $event instanceof WP_Post && get_current_user_id() === (int) $event->post_author ) {
|
203 |
+
$cap = 'read';
|
204 |
+
}
|
205 |
+
}
|
206 |
+
|
207 |
+
$this->page_id = add_submenu_page(
|
208 |
+
null,
|
209 |
+
'Attendee list',
|
210 |
+
'Attendee list',
|
211 |
+
$cap,
|
212 |
+
$this->slug(),
|
213 |
+
array( $this, 'render' )
|
214 |
+
);
|
215 |
+
|
216 |
+
add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_assets' ) );
|
217 |
+
add_action( 'admin_enqueue_scripts', array( $this, 'load_pointers' ) );
|
218 |
+
add_action( "load-{$this->page_id}", array( $this, 'screen_setup' ) );
|
219 |
+
|
220 |
+
/**
|
221 |
+
* This is a workaround to fix the problem
|
222 |
+
*
|
223 |
+
* @see https://central.tri.be/issues/46198
|
224 |
+
* @todo we need to remove this
|
225 |
+
*/
|
226 |
+
add_action( 'admin_init', array( $this, 'screen_setup' ), 1 );
|
227 |
+
}
|
228 |
+
|
229 |
+
/**
|
230 |
+
* Enqueues the JS and CSS for the attendees page in the admin
|
231 |
+
*
|
232 |
+
* @since TBD
|
233 |
+
*
|
234 |
+
* @todo this needs to use tribe_assets()
|
235 |
+
*
|
236 |
+
* @param $hook
|
237 |
+
*/
|
238 |
+
public function enqueue_assets( $hook ) {
|
239 |
+
/**
|
240 |
+
* Filter the Page Slugs the Attendees Page CSS and JS Loads
|
241 |
+
*
|
242 |
+
* @param array array( $this->page_id ) an array of admin slugs
|
243 |
+
*/
|
244 |
+
if ( ! in_array( $hook, apply_filters( 'tribe_filter_attendee_page_slug', array( $this->page_id ) ) ) ) {
|
245 |
+
return;
|
246 |
+
}
|
247 |
+
|
248 |
+
$resources_url = plugins_url( 'src/resources', dirname( dirname( __FILE__ ) ) );
|
249 |
+
|
250 |
+
wp_enqueue_style( $this->slug(), $resources_url . '/css/tickets-attendees.css', array(), Tribe__Tickets__Main::instance()->css_version() );
|
251 |
+
wp_enqueue_style( $this->slug() . '-print', $resources_url . '/css/tickets-attendees-print.css', array(), Tribe__Tickets__Main::instance()->css_version(), 'print' );
|
252 |
+
wp_enqueue_script( $this->slug(), $resources_url . '/js/tickets-attendees.js', array( 'jquery' ), Tribe__Tickets__Main::instance()->js_version() );
|
253 |
+
|
254 |
+
add_thickbox();
|
255 |
+
|
256 |
+
$mail_data = array(
|
257 |
+
'nonce' => wp_create_nonce( 'email-attendee-list' ),
|
258 |
+
'required' => esc_html__( 'You need to select a user or type a valid email address', 'event-tickets' ),
|
259 |
+
'sending' => esc_html__( 'Sending...', 'event-tickets' ),
|
260 |
+
'checkin_nonce' => wp_create_nonce( 'checkin' ),
|
261 |
+
'uncheckin_nonce' => wp_create_nonce( 'uncheckin' ),
|
262 |
+
'cannot_move' => esc_html__( 'You must first select one or more tickets before you can move them!', 'event-tickets' ),
|
263 |
+
'move_url' => add_query_arg( array(
|
264 |
+
'dialog' => Tribe__Tickets__Main::instance()->move_tickets()->dialog_name(),
|
265 |
+
'check' => wp_create_nonce( 'move_tickets' ),
|
266 |
+
'TB_iframe' => 'true',
|
267 |
+
) ),
|
268 |
+
);
|
269 |
+
|
270 |
+
wp_localize_script( $this->slug(), 'Attendees', $mail_data );
|
271 |
+
}
|
272 |
+
|
273 |
+
/**
|
274 |
+
* Loads the WP-Pointer for the Attendees screen
|
275 |
+
*
|
276 |
+
* @since TBD
|
277 |
+
*
|
278 |
+
* @param $hook
|
279 |
+
*/
|
280 |
+
public function load_pointers( $hook ) {
|
281 |
+
if ( $hook != $this->page_id ) {
|
282 |
+
return;
|
283 |
+
}
|
284 |
+
|
285 |
+
$dismissed = explode( ',', (string) get_user_meta( get_current_user_id(), 'dismissed_wp_pointers', true ) );
|
286 |
+
$pointer = null;
|
287 |
+
|
288 |
+
if ( version_compare( get_bloginfo( 'version' ), '3.3', '>' ) && ! in_array( 'attendees_filters', $dismissed ) ) {
|
289 |
+
$pointer = array(
|
290 |
+
'pointer_id' => 'attendees_filters',
|
291 |
+
'target' => '#screen-options-link-wrap',
|
292 |
+
'options' => array(
|
293 |
+
'content' => sprintf( '<h3> %s </h3> <p> %s </p>', esc_html__( 'Columns', 'event-tickets' ), esc_html__( 'You can use Screen Options to select which columns you want to see. The selection works in the table below, in the email, for print and for the CSV export.', 'event-tickets' ) ),
|
294 |
+
'position' => array( 'edge' => 'top', 'align' => 'right' ),
|
295 |
+
),
|
296 |
+
);
|
297 |
+
wp_enqueue_script( 'wp-pointer' );
|
298 |
+
wp_enqueue_style( 'wp-pointer' );
|
299 |
+
}
|
300 |
+
|
301 |
+
wp_localize_script( $this->slug(), 'AttendeesPointer', $pointer );
|
302 |
+
}
|
303 |
+
|
304 |
+
/**
|
305 |
+
* Sets up the Attendees screen data.
|
306 |
+
*
|
307 |
+
* @since TBD
|
308 |
+
*/
|
309 |
+
public function screen_setup() {
|
310 |
+
/* There's no reason for attendee screen setup to happen twice, but because
|
311 |
+
* of a fix for bug #46198 it can indeed be called twice in the same request.
|
312 |
+
* This flag variable is used to workaround that.
|
313 |
+
*
|
314 |
+
* @see Tribe__Tickets__Tickets_Handler::attendees_page_register() (and related @todo inside that method)
|
315 |
+
* @see https://central.tri.be/issues/46198
|
316 |
+
*
|
317 |
+
* @todo remove the has_run check once the above workaround is dispensed with
|
318 |
+
*/
|
319 |
+
static $has_run = false;
|
320 |
+
|
321 |
+
$page = tribe_get_request_var( 'page', false );
|
322 |
+
$action = tribe_get_request_var( 'action', false );
|
323 |
+
|
324 |
+
/// Prevents from running twice
|
325 |
+
if ( $has_run ) {
|
326 |
+
return;
|
327 |
+
}
|
328 |
+
|
329 |
+
// When on the admin and not on the correct page bail
|
330 |
+
if ( is_admin() && $this->slug() !== $page ) {
|
331 |
+
return;
|
332 |
+
}
|
333 |
+
|
334 |
+
$has_run = true;
|
335 |
+
|
336 |
+
/**
|
337 |
+
* This is a workaround to fix the problem
|
338 |
+
*
|
339 |
+
* @see https://central.tri.be/issues/46198
|
340 |
+
* @todo remove this
|
341 |
+
*/
|
342 |
+
if ( current_filter() === 'admin_init' ) {
|
343 |
+
$this->enqueue_assets( $this->page_id );
|
344 |
+
|
345 |
+
$GLOBALS['current_screen'] = WP_Screen::get( $this->page_id );
|
346 |
+
}
|
347 |
+
|
348 |
+
|
349 |
+
if ( 'email' === $action ) {
|
350 |
+
define( 'IFRAME_REQUEST', true );
|
351 |
+
|
352 |
+
// Use iFrame Header -- WP Method
|
353 |
+
iframe_header();
|
354 |
+
|
355 |
+
// Check if we need to send an Email!
|
356 |
+
if ( isset( $_POST['tribe-send-email'] ) && $_POST['tribe-send-email'] ) {
|
357 |
+
$status = $this->send_mail_list();
|
358 |
+
} else {
|
359 |
+
$status = false;
|
360 |
+
}
|
361 |
+
|
362 |
+
tribe( 'tickets.admin.views' )->template( 'attendees-email' );
|
363 |
+
|
364 |
+
// Use iFrame Footer -- WP Method
|
365 |
+
iframe_footer();
|
366 |
+
|
367 |
+
// We need nothing else here
|
368 |
+
exit;
|
369 |
+
} else {
|
370 |
+
$this->attendees_table = new Tribe__Tickets__Attendees_Table();
|
371 |
+
|
372 |
+
$this->maybe_generate_csv();
|
373 |
+
|
374 |
+
add_filter( 'admin_title', array( $this, 'filter_admin_title' ), 10, 2 );
|
375 |
+
add_filter( 'admin_body_class', array( $this, 'filter_admin_body_class' ) );
|
376 |
+
}
|
377 |
+
}
|
378 |
+
|
379 |
+
/**
|
380 |
+
* Add admin body class
|
381 |
+
*
|
382 |
+
* @since TBD
|
383 |
+
*/
|
384 |
+
public function filter_admin_body_class( $body_classes ) {
|
385 |
+
return $body_classes . ' plugins-php';
|
386 |
+
}
|
387 |
+
|
388 |
+
/**
|
389 |
+
* Sets the browser title for the Attendees admin page.
|
390 |
+
* Uses the event title.
|
391 |
+
*
|
392 |
+
* @since TBD
|
393 |
+
*
|
394 |
+
* @param $admin_title
|
395 |
+
* @param $unused_title
|
396 |
+
*
|
397 |
+
* @return string
|
398 |
+
*/
|
399 |
+
public function filter_admin_title( $admin_title, $unused_title ) {
|
400 |
+
if ( ! empty( $_GET['event_id'] ) ) {
|
401 |
+
$event = get_post( $_GET['event_id'] );
|
402 |
+
$admin_title = sprintf( '%s - Attendee list', $event->post_title );
|
403 |
+
}
|
404 |
+
|
405 |
+
return $admin_title;
|
406 |
+
}
|
407 |
+
|
408 |
+
/**
|
409 |
+
* Renders the Attendees page
|
410 |
+
*
|
411 |
+
* @since TBD
|
412 |
+
*/
|
413 |
+
public function render() {
|
414 |
+
/**
|
415 |
+
* Fires immediately before the content of the attendees screen
|
416 |
+
* is rendered.
|
417 |
+
*
|
418 |
+
* @param $this Tribe__Tickets__Tickets_Handler The current ticket handler instance.
|
419 |
+
*/
|
420 |
+
do_action( 'tribe_tickets_attendees_page_inside', $this );
|
421 |
+
|
422 |
+
tribe( 'tickets.admin.views' )->template( 'attendees' );
|
423 |
+
}
|
424 |
+
|
425 |
+
/**
|
426 |
+
* Generates a list of attendees taking into account the Screen Options.
|
427 |
+
* It's used both for the Email functionality, as for the CSV export.
|
428 |
+
*
|
429 |
+
* @since TBD
|
430 |
+
*
|
431 |
+
* @param $event_id
|
432 |
+
*
|
433 |
+
* @return array
|
434 |
+
*/
|
435 |
+
private function generate_filtered_list( $event_id ) {
|
436 |
+
/**
|
437 |
+
* Fire immediately prior to the generation of a filtered (exportable) attendee list.
|
438 |
+
*
|
439 |
+
* @param int $event_id
|
440 |
+
*/
|
441 |
+
do_action( 'tribe_events_tickets_generate_filtered_attendees_list', $event_id );
|
442 |
+
|
443 |
+
if ( empty( $this->page_id ) ) {
|
444 |
+
$this->page_id = 'tribe_events_page_tickets-attendees';
|
445 |
+
}
|
446 |
+
|
447 |
+
//Add in Columns or get_column_headers() returns nothing
|
448 |
+
$filter_name = "manage_{$this->page_id}_columns";
|
449 |
+
add_filter( $filter_name, array( $this->page_id, 'get_columns' ), 15 );
|
450 |
+
|
451 |
+
$items = Tribe__Tickets__Tickets::get_event_attendees( $event_id );
|
452 |
+
|
453 |
+
//Add Handler for Community Tickets to Prevent Notices in Exports
|
454 |
+
if ( ! is_admin() ) {
|
455 |
+
$columns = apply_filters( $filter_name, array() );
|
456 |
+
} else {
|
457 |
+
$columns = array_map( 'wp_strip_all_tags', get_column_headers( get_current_screen() ) );
|
458 |
+
}
|
459 |
+
|
460 |
+
// We dont want HTML inputs, private data or other columns that are superfluous in a CSV export
|
461 |
+
$hidden = array_merge( get_hidden_columns( $this->page_id ), array(
|
462 |
+
'cb',
|
463 |
+
'meta_details',
|
464 |
+
'provider',
|
465 |
+
'purchaser',
|
466 |
+
'status',
|
467 |
+
) );
|
468 |
+
|
469 |
+
$hidden = array_flip( $hidden );
|
470 |
+
$export_columns = array_diff_key( $columns, $hidden );
|
471 |
+
|
472 |
+
// Add additional expected columns
|
473 |
+
$export_columns['order_id'] = esc_html_x( 'Order ID', 'attendee export', 'event-tickets' );
|
474 |
+
$export_columns['order_status_label'] = esc_html_x( 'Order Status', 'attendee export', 'event-tickets' );
|
475 |
+
$export_columns['attendee_id'] = esc_html_x( 'Ticket #', 'attendee export', 'event-tickets' );
|
476 |
+
$export_columns['purchaser_name'] = esc_html_x( 'Customer Name', 'attendee export', 'event-tickets' );
|
477 |
+
$export_columns['purchaser_email'] = esc_html_x( 'Customer Email Address', 'attendee export', 'event-tickets' );
|
478 |
+
|
479 |
+
/**
|
480 |
+
* Used to modify what columns should be shown on the CSV export
|
481 |
+
* The column name should be the Array Index and the Header is the array Value
|
482 |
+
*
|
483 |
+
* @param array Columns, associative array
|
484 |
+
* @param array Items to be exported
|
485 |
+
* @param int Event ID
|
486 |
+
*/
|
487 |
+
$export_columns = apply_filters( 'tribe_events_tickets_attendees_csv_export_columns', $export_columns, $items, $event_id );
|
488 |
+
|
489 |
+
// Add the export column headers as the first row
|
490 |
+
$rows = array(
|
491 |
+
array_values( $export_columns ),
|
492 |
+
);
|
493 |
+
|
494 |
+
foreach ( $items as $single_item ) {
|
495 |
+
// Fresh row!
|
496 |
+
$row = array();
|
497 |
+
|
498 |
+
foreach ( $export_columns as $column_id => $column_name ) {
|
499 |
+
// If additional columns have been added to the attendee list table we can obtain the
|
500 |
+
// values by calling the table object's column_default() method - any other values
|
501 |
+
// should simply be passed back unmodified
|
502 |
+
$row[ $column_id ] = $this->attendees_table->column_default( $single_item, $column_id );
|
503 |
+
|
504 |
+
// Special handling for the check_in column
|
505 |
+
if ( 'check_in' === $column_id && 1 == $single_item[ $column_id ] ) {
|
506 |
+
$row[ $column_id ] = esc_html__( 'Yes', 'event-tickets' );
|
507 |
+
}
|
508 |
+
|
509 |
+
// Special handling for new human readable id
|
510 |
+
if ( 'attendee_id' === $column_id ) {
|
511 |
+
if ( isset( $single_item[ $column_id ] ) ) {
|
512 |
+
$ticket_unique_id = get_post_meta( $single_item[ $column_id ], '_unique_id', true );
|
513 |
+
$ticket_unique_id = $ticket_unique_id === '' ? $single_item[ $column_id ] : $ticket_unique_id;
|
514 |
+
$row[ $column_id ] = esc_html( $ticket_unique_id );
|
515 |
+
}
|
516 |
+
}
|
517 |
+
|
518 |
+
// Handle custom columns that might have names containing HTML tags
|
519 |
+
$row[ $column_id ] = wp_strip_all_tags( $row[ $column_id ] );
|
520 |
+
// Remove line breaks (e.g. from multi-line text field) for valid CSV format. Double quotes necessary here.
|
521 |
+
$row[ $column_id ] = str_replace( array( "\r", "\n" ), ' ', $row[ $column_id ] );
|
522 |
+
}
|
523 |
+
|
524 |
+
$rows[] = array_values( $row );
|
525 |
+
}
|
526 |
+
|
527 |
+
return array_filter( $rows );
|
528 |
+
}
|
529 |
+
|
530 |
+
/**
|
531 |
+
* Checks if the user requested a CSV export from the attendees list.
|
532 |
+
* If so, generates the download and finishes the execution.
|
533 |
+
*
|
534 |
+
* @since TBD
|
535 |
+
*
|
536 |
+
*/
|
537 |
+
public function maybe_generate_csv() {
|
538 |
+
if ( empty( $_GET['attendees_csv'] ) || empty( $_GET['attendees_csv_nonce'] ) || empty( $_GET['event_id'] ) ) {
|
539 |
+
return;
|
540 |
+
}
|
541 |
+
|
542 |
+
if ( ! wp_verify_nonce( $_GET['attendees_csv_nonce'], 'attendees_csv_nonce' ) || ! $this->user_can( 'edit_posts', $_GET['event_id'] ) ) {
|
543 |
+
return;
|
544 |
+
}
|
545 |
+
|
546 |
+
/**
|
547 |
+
* Allow for filtering and modifying the list of attendees that will be exported via CSV for a given event.
|
548 |
+
*
|
549 |
+
* @param array $items The array of attendees that will be exported in this CSV file.
|
550 |
+
* @param int $event_id The ID of the event these attendees are associated with.
|
551 |
+
*/
|
552 |
+
$items = apply_filters( 'tribe_events_tickets_attendees_csv_items', $this->generate_filtered_list( $_GET['event_id'] ), $_GET['event_id'] );
|
553 |
+
$event = get_post( $_GET['event_id'] );
|
554 |
+
|
555 |
+
if ( ! empty( $items ) ) {
|
556 |
+
$charset = get_option( 'blog_charset' );
|
557 |
+
$filename = sanitize_file_name( $event->post_title . '-' . __( 'attendees', 'event-tickets' ) );
|
558 |
+
|
559 |
+
// output headers so that the file is downloaded rather than displayed
|
560 |
+
header( "Content-Type: text/csv; charset=$charset" );
|
561 |
+
header( "Content-Disposition: attachment; filename=$filename.csv" );
|
562 |
+
|
563 |
+
// create a file pointer connected to the output stream
|
564 |
+
$output = fopen( 'php://output', 'w' );
|
565 |
+
|
566 |
+
//And echo the data
|
567 |
+
foreach ( $items as $item ) {
|
568 |
+
fputcsv( $output, $item );
|
569 |
+
}
|
570 |
+
|
571 |
+
fclose( $output );
|
572 |
+
exit;
|
573 |
+
}
|
574 |
+
}
|
575 |
+
|
576 |
+
/**
|
577 |
+
* Handles the "send to email" action for the attendees list.
|
578 |
+
*
|
579 |
+
* @since TBD
|
580 |
+
*
|
581 |
+
*/
|
582 |
+
public function send_mail_list() {
|
583 |
+
$error = new WP_Error();
|
584 |
+
|
585 |
+
if ( empty( $_GET['event_id'] ) ) {
|
586 |
+
$error->add( 'no-event-id', esc_html__( 'Invalid Event ID', 'event-tickets' ), array( 'type' => 'general' ) );
|
587 |
+
|
588 |
+
return $error;
|
589 |
+
}
|
590 |
+
|
591 |
+
$cap = 'edit_posts';
|
592 |
+
$event_id = absint( ! empty( $_GET['event_id'] ) && is_numeric( $_GET['event_id'] ) ? $_GET['event_id'] : 0 );
|
593 |
+
|
594 |
+
if ( ! current_user_can( 'edit_posts' ) && $event_id ) {
|
595 |
+
$event = get_post( $event_id );
|
596 |
+
|
597 |
+
if ( $event instanceof WP_Post && get_current_user_id() === (int) $event->post_author ) {
|
598 |
+
$cap = 'read';
|
599 |
+
}
|
600 |
+
}
|
601 |
+
|
602 |
+
if ( empty( $_POST['_wpnonce'] ) || ! wp_verify_nonce( $_POST['_wpnonce'], 'email-attendees-list' ) || ! $this->user_can( $cap, $_GET['event_id'] ) ) {
|
603 |
+
$error->add( 'nonce-fail', esc_html__( 'Cheatin Huh?', 'event-tickets' ), array( 'type' => 'general' ) );
|
604 |
+
|
605 |
+
return $error;
|
606 |
+
}
|
607 |
+
|
608 |
+
if ( empty( $_POST['email_to_address'] ) && ( empty( $_POST['email_to_user'] ) || 0 >= (int) $_POST['email_to_user'] ) ) {
|
609 |
+
$error->add( 'empty-fields', esc_html__( 'Empty user and email', 'event-tickets' ), array( 'type' => 'general' ) );
|
610 |
+
|
611 |
+
return $error;
|
612 |
+
}
|
613 |
+
|
614 |
+
if ( ! empty( $_POST['email_to_address'] ) ) {
|
615 |
+
$type = 'email';
|
616 |
+
} else {
|
617 |
+
$type = 'user';
|
618 |
+
}
|
619 |
+
|
620 |
+
if ( 'email' === $type && ! is_email( $_POST['email_to_address'] ) ) {
|
621 |
+
$error->add( 'invalid-email', esc_html__( 'Invalid Email', 'event-tickets' ), array( 'type' => $type ) );
|
622 |
+
|
623 |
+
return $error;
|
624 |
+
}
|
625 |
+
|
626 |
+
if ( 'user' === $type && ! is_numeric( $_POST['email_to_user'] ) ) {
|
627 |
+
$error->add( 'invalid-user', esc_html__( 'Invalid User ID', 'event-tickets' ), array( 'type' => $type ) );
|
628 |
+
|
629 |
+
return $error;
|
630 |
+
}
|
631 |
+
|
632 |
+
/**
|
633 |
+
* Now we know we have valid data
|
634 |
+
*/
|
635 |
+
|
636 |
+
if ( 'email' === $type ) {
|
637 |
+
// We already check this variable so, no harm here
|
638 |
+
$email = $_POST['email_to_address'];
|
639 |
+
} else {
|
640 |
+
$user = get_user_by( 'id', $_POST['email_to_user'] );
|
641 |
+
|
642 |
+
if ( ! is_object( $user ) ) {
|
643 |
+
$error->add( 'invalid-user', esc_html__( 'Invalid User ID', 'event-tickets' ), array( 'type' => $type ) );
|
644 |
+
|
645 |
+
return $error;
|
646 |
+
}
|
647 |
+
|
648 |
+
$email = $user->data->user_email;
|
649 |
+
}
|
650 |
+
|
651 |
+
$this->attendees_table = new Tribe__Tickets__Attendees_Table();
|
652 |
+
|
653 |
+
$items = $this->generate_filtered_list( $_GET['event_id'] );
|
654 |
+
|
655 |
+
$event = get_post( $_GET['event_id'] );
|
656 |
+
|
657 |
+
ob_start();
|
658 |
+
$attendee_tpl = Tribe__Tickets__Templates::get_template_hierarchy( 'tickets/attendees-email.php', array( 'disable_view_check' => true ) );
|
659 |
+
include $attendee_tpl;
|
660 |
+
$content = ob_get_clean();
|
661 |
+
|
662 |
+
add_filter( 'wp_mail_content_type', array( $this, 'set_contenttype' ) );
|
663 |
+
|
664 |
+
if ( ! wp_mail( $email, sprintf( esc_html__( 'Attendee List for: %s', 'event-tickets' ), $event->post_title ), $content ) ) {
|
665 |
+
$error->add( 'email-error', esc_html__( 'Error when sending the email', 'event-tickets' ), array( 'type' => 'general' ) );
|
666 |
+
|
667 |
+
return $error;
|
668 |
+
}
|
669 |
+
|
670 |
+
remove_filter( 'wp_mail_content_type', array( $this, 'set_contenttype' ) );
|
671 |
+
|
672 |
+
return esc_html__( 'Email sent successfully!', 'event-tickets' );
|
673 |
+
}
|
674 |
+
|
675 |
+
/**
|
676 |
+
* Sets the content type for the attendees to email functionality.
|
677 |
+
* Allows for sending an HTML email.
|
678 |
+
*
|
679 |
+
* @since TBD
|
680 |
+
*
|
681 |
+
* @param $content_type
|
682 |
+
*
|
683 |
+
* @return string
|
684 |
+
*/
|
685 |
+
public function set_contenttype( $content_type ) {
|
686 |
+
return 'text/html';
|
687 |
+
}
|
688 |
+
|
689 |
+
/**
|
690 |
+
* Tests if the user has the specified capability in relation to whatever post type
|
691 |
+
* the ticket relates to.
|
692 |
+
*
|
693 |
+
* For example, if tickets are created for the banana post type, the generic capability
|
694 |
+
* "edit_posts" will be mapped to "edit_bananas" or whatever is appropriate.
|
695 |
+
*
|
696 |
+
* @since TBD
|
697 |
+
*
|
698 |
+
* @internal for internal plugin use only (in spite of having public visibility)
|
699 |
+
*
|
700 |
+
* @param string $generic_cap
|
701 |
+
* @param int $event_id
|
702 |
+
* @return boolean
|
703 |
+
*/
|
704 |
+
public function user_can( $generic_cap, $event_id ) {
|
705 |
+
$type = get_post_type( $event_id );
|
706 |
+
|
707 |
+
// It's possible we'll get null back
|
708 |
+
if ( null === $type ) {
|
709 |
+
return false;
|
710 |
+
}
|
711 |
+
|
712 |
+
$type_config = get_post_type_object( $type );
|
713 |
+
|
714 |
+
if ( ! empty( $type_config->cap->{$generic_cap} ) ) {
|
715 |
+
return current_user_can( $type_config->cap->{$generic_cap} );
|
716 |
+
}
|
717 |
+
|
718 |
+
return false;
|
719 |
+
}
|
720 |
+
}
|
src/Tribe/Main.php
CHANGED
@@ -4,7 +4,7 @@ class Tribe__Tickets__Main {
|
|
4 |
/**
|
5 |
* Current version of this plugin
|
6 |
*/
|
7 |
-
const VERSION = '4.6';
|
8 |
|
9 |
/**
|
10 |
* Min required The Events Calendar version
|
@@ -14,7 +14,7 @@ class Tribe__Tickets__Main {
|
|
14 |
/**
|
15 |
* Min required version of Tribe Common
|
16 |
*/
|
17 |
-
const MIN_COMMON_VERSION = '4.7';
|
18 |
|
19 |
/**
|
20 |
* Name of the provider
|
@@ -322,7 +322,6 @@ class Tribe__Tickets__Main {
|
|
322 |
*/
|
323 |
public function hooks() {
|
324 |
add_action( 'init', array( $this, 'init' ) );
|
325 |
-
add_action( 'add_meta_boxes', array( 'Tribe__Tickets__Metabox', 'maybe_add_meta_box' ) );
|
326 |
add_filter( 'tribe_post_types', array( $this, 'inject_post_types' ) );
|
327 |
|
328 |
// Setup Help Tab texting
|
4 |
/**
|
5 |
* Current version of this plugin
|
6 |
*/
|
7 |
+
const VERSION = '4.6.1';
|
8 |
|
9 |
/**
|
10 |
* Min required The Events Calendar version
|
14 |
/**
|
15 |
* Min required version of Tribe Common
|
16 |
*/
|
17 |
+
const MIN_COMMON_VERSION = '4.7.2';
|
18 |
|
19 |
/**
|
20 |
* Name of the provider
|
322 |
*/
|
323 |
public function hooks() {
|
324 |
add_action( 'init', array( $this, 'init' ) );
|
|
|
325 |
add_filter( 'tribe_post_types', array( $this, 'inject_post_types' ) );
|
326 |
|
327 |
// Setup Help Tab texting
|
src/Tribe/Metabox.php
CHANGED
@@ -10,13 +10,35 @@
|
|
10 |
class Tribe__Tickets__Metabox {
|
11 |
|
12 |
/**
|
13 |
-
*
|
14 |
-
* one Tribe Tickets module (provider) enabled
|
15 |
-
* @static
|
16 |
*
|
17 |
-
* @
|
18 |
*/
|
19 |
-
public
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
$modules = Tribe__Tickets__Tickets::modules();
|
21 |
if ( empty( $modules ) ) {
|
22 |
return;
|
@@ -29,45 +51,489 @@ class Tribe__Tickets__Metabox {
|
|
29 |
add_meta_box(
|
30 |
'tribetickets',
|
31 |
esc_html__( 'Tickets', 'event-tickets' ),
|
32 |
-
array(
|
33 |
-
'Tribe__Tickets__Metabox',
|
34 |
-
'do_modules_metaboxes',
|
35 |
-
),
|
36 |
$post_type,
|
37 |
'normal',
|
38 |
'high'
|
39 |
);
|
|
|
|
|
|
|
40 |
}
|
41 |
|
42 |
/**
|
43 |
-
*
|
44 |
-
* least one Tribe Tickets module (provider) enabled
|
45 |
-
* @static
|
46 |
*
|
47 |
-
* @
|
|
|
|
|
|
|
|
|
48 |
*/
|
49 |
-
public
|
50 |
$modules = Tribe__Tickets__Tickets::modules();
|
51 |
if ( empty( $modules ) ) {
|
52 |
-
return;
|
53 |
}
|
54 |
|
55 |
-
|
56 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
57 |
}
|
58 |
|
59 |
/**
|
60 |
-
*
|
61 |
*
|
62 |
-
* @
|
63 |
*
|
64 |
-
* @
|
65 |
*/
|
66 |
-
public
|
67 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
68 |
}
|
69 |
|
70 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
71 |
public static function localize_decimal_character() {
|
72 |
$locale = localeconv();
|
73 |
$decimal = isset( $locale['decimal_point'] ) ? $locale['decimal_point'] : '.';
|
@@ -82,4 +548,70 @@ class Tribe__Tickets__Metabox {
|
|
82 |
'decimal_error' => __( 'Please enter in without thousand separators and currency symbols.', 'event-tickets' ),
|
83 |
) );
|
84 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
85 |
}
|
10 |
class Tribe__Tickets__Metabox {
|
11 |
|
12 |
/**
|
13 |
+
* Configure all action and filters user by this Class
|
|
|
|
|
14 |
*
|
15 |
+
* @return void
|
16 |
*/
|
17 |
+
public function hook() {
|
18 |
+
add_action( 'add_meta_boxes', array( $this, 'configure' ) );
|
19 |
+
|
20 |
+
add_action( 'tribe_events_tickets_bottom_right', array( $this, 'get_ticket_controls' ), 10, 2 );
|
21 |
+
|
22 |
+
add_action( 'wp_ajax_tribe-ticket-panels', array( $this, 'ajax_panels' ) );
|
23 |
+
|
24 |
+
add_action( 'wp_ajax_tribe-ticket-add', array( $this, 'ajax_ticket_add' ) );
|
25 |
+
add_action( 'wp_ajax_tribe-ticket-edit', array( $this, 'ajax_ticket_edit' ) );
|
26 |
+
add_action( 'wp_ajax_tribe-ticket-delete', array( $this, 'ajax_ticket_delete' ) );
|
27 |
+
|
28 |
+
add_action( 'wp_ajax_tribe-ticket-checkin', array( $this, 'ajax_attendee_checkin' ) );
|
29 |
+
add_action( 'wp_ajax_tribe-ticket-uncheckin', array( $this, 'ajax_attendee_uncheckin' ) );
|
30 |
+
}
|
31 |
+
|
32 |
+
/**
|
33 |
+
* Configures the Tickets Editor into a Post Type
|
34 |
+
*
|
35 |
+
* @since TBD
|
36 |
+
*
|
37 |
+
* @param string $post_type Which post type we are trying to configure
|
38 |
+
*
|
39 |
+
* @return void
|
40 |
+
*/
|
41 |
+
public function configure( $post_type = null ) {
|
42 |
$modules = Tribe__Tickets__Tickets::modules();
|
43 |
if ( empty( $modules ) ) {
|
44 |
return;
|
51 |
add_meta_box(
|
52 |
'tribetickets',
|
53 |
esc_html__( 'Tickets', 'event-tickets' ),
|
54 |
+
array( $this, 'render' ),
|
|
|
|
|
|
|
55 |
$post_type,
|
56 |
'normal',
|
57 |
'high'
|
58 |
);
|
59 |
+
|
60 |
+
// If we get here means that we will need Thickbox
|
61 |
+
add_thickbox();
|
62 |
}
|
63 |
|
64 |
/**
|
65 |
+
* Render the actual Metabox
|
|
|
|
|
66 |
*
|
67 |
+
* @since TBD
|
68 |
+
*
|
69 |
+
* @param int $post_id Which post we are dealing with
|
70 |
+
*
|
71 |
+
* @return string|bool
|
72 |
*/
|
73 |
+
public function render( $post_id ) {
|
74 |
$modules = Tribe__Tickets__Tickets::modules();
|
75 |
if ( empty( $modules ) ) {
|
76 |
+
return false;
|
77 |
}
|
78 |
|
79 |
+
$post = get_post( $post_id );
|
80 |
+
|
81 |
+
// Prepare all the variables required
|
82 |
+
$start_date = date( 'Y-m-d H:00:00' );
|
83 |
+
$end_date = date( 'Y-m-d H:00:00' );
|
84 |
+
$start_time = Tribe__Date_Utils::time_only( $start_date, false );
|
85 |
+
$end_time = Tribe__Date_Utils::time_only( $start_date, false );
|
86 |
+
|
87 |
+
$show_global_stock = Tribe__Tickets__Tickets::global_stock_available();
|
88 |
+
$tickets = Tribe__Tickets__Tickets::get_event_tickets( $post->ID );
|
89 |
+
$global_stock = new Tribe__Tickets__Global_Stock( $post->ID );
|
90 |
+
|
91 |
+
return tribe( 'tickets.admin.views' )->template( array( 'editor', 'metabox' ), get_defined_vars() );
|
92 |
}
|
93 |
|
94 |
/**
|
95 |
+
* Refreshes panels after ajax calls that change data
|
96 |
*
|
97 |
+
* @since TBD
|
98 |
*
|
99 |
+
* @return string html content of the panels
|
100 |
*/
|
101 |
+
public function ajax_panels() {
|
102 |
+
$post_id = absint( tribe_get_request_var( 'post_id', 0 ) );
|
103 |
+
|
104 |
+
// Didn't get a post id to work with - bail
|
105 |
+
if ( ! $post_id ) {
|
106 |
+
wp_send_json_error( esc_html__( 'Invalid Post ID', 'event-tickets' ) );
|
107 |
+
}
|
108 |
+
|
109 |
+
// Overwrites for a few templates that use get_the_ID() and get_post()
|
110 |
+
global $post;
|
111 |
+
|
112 |
+
$post = get_post( $post_id );
|
113 |
+
$data = wp_parse_args( tribe_get_request_var( array( 'data' ), array() ), array() );
|
114 |
+
$notice = tribe_get_request_var( 'tribe-notice', false );
|
115 |
+
|
116 |
+
$data = Tribe__Utils__Array::get( $data, array( 'tribe-tickets' ), null );
|
117 |
+
|
118 |
+
// Save if the info was passed
|
119 |
+
if ( ! empty( $data ) ) {
|
120 |
+
tribe( 'tickets.handler' )->save_order( $post->ID, isset( $data['list'] ) ? $data['list'] : null );
|
121 |
+
tribe( 'tickets.handler' )->save_form_settings( $post->ID, isset( $data['settings'] ) ? $data['settings'] : null );
|
122 |
+
}
|
123 |
+
|
124 |
+
$return = $this->get_panels( $post );
|
125 |
+
$return['notice'] = $this->notice( $notice );
|
126 |
+
|
127 |
+
/**
|
128 |
+
* Allows filtering the data by other plugins/ecommerce solutions©
|
129 |
+
*
|
130 |
+
* @since 4.6
|
131 |
+
*
|
132 |
+
* @param array the return data
|
133 |
+
* @param int the post/event id
|
134 |
+
*/
|
135 |
+
$return = apply_filters( 'tribe_tickets_ajax_refresh_tables', $return, $post->ID );
|
136 |
+
|
137 |
+
wp_send_json_success( $return );
|
138 |
+
}
|
139 |
+
|
140 |
+
/**
|
141 |
+
* Get the Panels for a given
|
142 |
+
*
|
143 |
+
* @since TBD
|
144 |
+
*
|
145 |
+
* @param int|WP_Post $post
|
146 |
+
* @param int $ticket_id
|
147 |
+
*
|
148 |
+
* @return array
|
149 |
+
*/
|
150 |
+
public function get_panels( $post, $ticket_id = null ) {
|
151 |
+
if ( ! $post instanceof WP_Post ) {
|
152 |
+
$post = get_post( $post );
|
153 |
+
}
|
154 |
+
|
155 |
+
// Bail on Invalid post
|
156 |
+
if ( ! $post instanceof WP_Post ) {
|
157 |
+
return array();
|
158 |
+
}
|
159 |
+
|
160 |
+
// Overwrites for a few templates that use get_the_ID() and get_post()
|
161 |
+
$GLOBALS['post'] = $post;
|
162 |
+
|
163 |
+
// Let's create tickets list markup to return
|
164 |
+
$tickets = Tribe__Tickets__Tickets::get_event_tickets( $post->ID );
|
165 |
+
|
166 |
+
$panels = array(
|
167 |
+
'list' => tribe( 'tickets.admin.views' )->template( 'editor/panel/list', array( 'post_id' => $post->ID, 'tickets' => $tickets ), false ),
|
168 |
+
'settings' => tribe( 'tickets.admin.views' )->template( 'editor/panel/settings', array( 'post_id' => $post->ID ), false ),
|
169 |
+
'ticket' => tribe( 'tickets.admin.views' )->template( 'editor/panel/ticket', array( 'post_id' => $post->ID, 'ticket_id' => $ticket_id ), false ),
|
170 |
+
);
|
171 |
+
|
172 |
+
return $panels;
|
173 |
+
}
|
174 |
+
|
175 |
+
/**
|
176 |
+
* Sanitizes the data for the new/edit ticket ajax call,
|
177 |
+
* and calls the child save_ticket function.
|
178 |
+
*
|
179 |
+
* @since TBD
|
180 |
+
*/
|
181 |
+
public function ajax_ticket_add() {
|
182 |
+
$post_id = absint( tribe_get_request_var( 'post_id', 0 ) );
|
183 |
+
|
184 |
+
if ( ! $post_id ) {
|
185 |
+
wp_send_json_error( esc_html__( 'Invalid parent Post', 'event-tickets' ) );
|
186 |
+
}
|
187 |
+
|
188 |
+
/**
|
189 |
+
* This is needed because a provider can implement a dynamic set of fields.
|
190 |
+
* Each provider is responsible for sanitizing these values.
|
191 |
+
*/
|
192 |
+
$data = wp_parse_args( tribe_get_request_var( array( 'data' ), array() ), array() );
|
193 |
+
|
194 |
+
if ( ! $this->has_permission( $post_id, $_POST, 'add_ticket_nonce' ) ) {
|
195 |
+
wp_send_json_error( esc_html__( 'Failed to Add the Ticket, Refresh the Page to try again.', 'event-tickets' ) );
|
196 |
+
}
|
197 |
+
|
198 |
+
if ( ! isset( $data['ticket_provider'] ) || ! $this->module_is_valid( $data['ticket_provider'] ) ) {
|
199 |
+
wp_send_json_error( esc_html__( 'Commerce Provider invalid', 'event-tickets' ) );
|
200 |
+
}
|
201 |
+
|
202 |
+
// Get the Provider
|
203 |
+
$module = call_user_func( array( $data['ticket_provider'], 'get_instance' ) );
|
204 |
+
|
205 |
+
// Do the actual adding
|
206 |
+
$ticket_id = $module->ticket_add( $post_id, $data );
|
207 |
+
|
208 |
+
// Successful?
|
209 |
+
if ( $ticket_id ) {
|
210 |
+
/**
|
211 |
+
* Fire action when a ticket has been added
|
212 |
+
*
|
213 |
+
* @param int $post_id ID of parent "event" post
|
214 |
+
*/
|
215 |
+
do_action( 'tribe_tickets_ticket_added', $post_id );
|
216 |
+
} else {
|
217 |
+
wp_send_json_error( esc_html__( 'Failed to Add the Ticket', 'event-tickets' ) );
|
218 |
+
}
|
219 |
+
|
220 |
+
$return = $this->get_panels( $post_id );
|
221 |
+
$return['notice'] = $this->notice( 'ticket-add' );
|
222 |
+
|
223 |
+
/**
|
224 |
+
* Filters the return data for ticket add
|
225 |
+
*
|
226 |
+
* @param array $return Array of data to return to the ajax call
|
227 |
+
* @param int $post_id ID of parent "event" post
|
228 |
+
*/
|
229 |
+
$return = apply_filters( 'event_tickets_ajax_ticket_add_data', $return, $post_id );
|
230 |
+
|
231 |
+
wp_send_json_success( $return );
|
232 |
+
}
|
233 |
+
|
234 |
+
/**
|
235 |
+
* Returns the data from a single ticket to populate
|
236 |
+
* the edit form.
|
237 |
+
*
|
238 |
+
* @since TBD
|
239 |
+
*
|
240 |
+
* @return array $return array of ticket data
|
241 |
+
*/
|
242 |
+
public function ajax_ticket_edit() {
|
243 |
+
$post_id = absint( tribe_get_request_var( 'post_id', 0 ) );
|
244 |
+
|
245 |
+
if ( ! $post_id ) {
|
246 |
+
wp_send_json_error( esc_html__( 'Invalid parent Post', 'event-tickets' ) );
|
247 |
+
}
|
248 |
+
|
249 |
+
$ticket_id = absint( tribe_get_request_var( 'ticket_id', 0 ) );
|
250 |
+
|
251 |
+
if ( ! $ticket_id ) {
|
252 |
+
wp_send_json_error( esc_html__( 'Invalid Ticket', 'event-tickets' ) );
|
253 |
+
}
|
254 |
+
|
255 |
+
/**
|
256 |
+
* This is needed because a provider can implement a dynamic set of fields.
|
257 |
+
* Each provider is responsible for sanitizing these values.
|
258 |
+
*/
|
259 |
+
$data = wp_parse_args( tribe_get_request_var( array( 'data' ), array() ), array() );
|
260 |
+
|
261 |
+
if ( ! $this->has_permission( $post_id, $_POST, 'edit_ticket_nonce' ) ) {
|
262 |
+
wp_send_json_error( esc_html__( 'Failed to Edit the Ticket, Refresh the Page to try again.', 'event-tickets' ) );
|
263 |
+
}
|
264 |
+
|
265 |
+
$provider = tribe_tickets_get_ticket_provider( $ticket_id );
|
266 |
+
|
267 |
+
if ( ! $provider ) {
|
268 |
+
wp_send_json_error( esc_html__( 'Commerce Module invalid', 'event-tickets' ) );
|
269 |
+
}
|
270 |
+
|
271 |
+
// Get the Ticket Object
|
272 |
+
$ticket = $provider->get_ticket( $post_id, $ticket_id );
|
273 |
+
$return = $this->get_panels( $post_id, $ticket_id );
|
274 |
+
|
275 |
+
/**
|
276 |
+
* Provides an opportunity for final adjustments to the data used to populate
|
277 |
+
* the edit-ticket form.
|
278 |
+
*
|
279 |
+
* @param array $return Data for the JSON response
|
280 |
+
* @param int $post_id Post ID
|
281 |
+
* @param int $ticket_id Ticket ID
|
282 |
+
*/
|
283 |
+
$return = (array) apply_filters( 'tribe_events_tickets_ajax_ticket_edit', $return, $post_id, $ticket_id );
|
284 |
+
|
285 |
+
wp_send_json_success( $return );
|
286 |
+
}
|
287 |
+
|
288 |
+
/**
|
289 |
+
* Sanitizes the data for the delete ticket ajax call, and calls the child delete_ticket
|
290 |
+
* function.
|
291 |
+
*
|
292 |
+
* @since TBD
|
293 |
+
*/
|
294 |
+
public function ajax_ticket_delete() {
|
295 |
+
$post_id = absint( tribe_get_request_var( 'post_id', 0 ) );
|
296 |
+
|
297 |
+
if ( ! $post_id ) {
|
298 |
+
wp_send_json_error( esc_html__( 'Invalid parent Post', 'event-tickets' ) );
|
299 |
+
}
|
300 |
+
|
301 |
+
$ticket_id = absint( tribe_get_request_var( 'ticket_id', 0 ) );
|
302 |
+
|
303 |
+
if ( ! $ticket_id ) {
|
304 |
+
wp_send_json_error( esc_html__( 'Invalid Ticket', 'event-tickets' ) );
|
305 |
+
}
|
306 |
+
|
307 |
+
if ( ! $this->has_permission( $post_id, $_POST, 'remove_ticket_nonce' ) ) {
|
308 |
+
wp_send_json_error( esc_html__( 'Failed to Delete the Ticket, Refresh the Page to try again.', 'event-tickets' ) );
|
309 |
+
}
|
310 |
+
|
311 |
+
$provider = tribe_tickets_get_ticket_provider( $ticket_id );
|
312 |
+
|
313 |
+
if ( ! $provider ) {
|
314 |
+
wp_send_json_error( esc_html__( 'Commerce Module invalid', 'event-tickets' ) );
|
315 |
+
}
|
316 |
+
|
317 |
+
// Pass the control to the child object
|
318 |
+
$return = $provider->delete_ticket( $post_id, $ticket_id );
|
319 |
+
|
320 |
+
// Successfully deleted?
|
321 |
+
if ( $return ) {
|
322 |
+
$return = $this->get_panels( $post_id );
|
323 |
+
$return['notice'] = $this->notice( 'ticket-delete' );
|
324 |
+
|
325 |
+
/**
|
326 |
+
* Fire action when a ticket has been deleted
|
327 |
+
*
|
328 |
+
* @param int $post_id ID of parent "event" post
|
329 |
+
*/
|
330 |
+
do_action( 'tribe_tickets_ticket_deleted', $post_id );
|
331 |
+
}
|
332 |
+
|
333 |
+
wp_send_json_success( $return );
|
334 |
+
}
|
335 |
+
/**
|
336 |
+
* Handles the check-in ajax call, and calls the checkin method.
|
337 |
+
*
|
338 |
+
* @since TBD
|
339 |
+
*
|
340 |
+
* @todo use of 'order_id' in this method is misleading (we're working with the attendee id)
|
341 |
+
* we should consider revising in a back-compat minded way
|
342 |
+
*/
|
343 |
+
public function ajax_attendee_checkin() {
|
344 |
+
|
345 |
+
if ( ! isset( $_POST['order_ID'] ) || intval( $_POST['order_ID'] ) == 0 ) {
|
346 |
+
wp_send_json_error( 'Bad post' );
|
347 |
+
}
|
348 |
+
|
349 |
+
$provider = $_POST['provider'];
|
350 |
+
|
351 |
+
if ( ! $this->module_is_valid( $provider ) ) {
|
352 |
+
wp_send_json_error( esc_html__( 'Commerce Module invalid', 'event-tickets' ) );
|
353 |
+
}
|
354 |
+
|
355 |
+
$provider = call_user_func( array( $provider, 'get_instance' ) );
|
356 |
+
|
357 |
+
if ( empty( $_POST['nonce'] ) || ! wp_verify_nonce( $_POST['nonce'], 'checkin' ) || ! $this->user_can( 'edit_posts', $_POST['order_ID'] ) ) {
|
358 |
+
wp_send_json_error( "Cheatin' huh?" );
|
359 |
+
}
|
360 |
+
|
361 |
+
$order_id = $_POST['order_ID'];
|
362 |
+
|
363 |
+
// Pass the control to the child object
|
364 |
+
$did_checkin = $provider->checkin( $order_id );
|
365 |
+
|
366 |
+
$provider->clear_attendees_cache( $did_checkin );
|
367 |
+
|
368 |
+
wp_send_json_success( $did_checkin );
|
369 |
+
}
|
370 |
+
|
371 |
+
/**
|
372 |
+
* Handles the check-in ajax call, and calls the uncheckin method.
|
373 |
+
*
|
374 |
+
* @since TBD
|
375 |
+
*
|
376 |
+
* @todo use of 'order_id' in this method is misleading (we're working with the attendee id)
|
377 |
+
* we should consider revising in a back-compat minded way
|
378 |
+
*/
|
379 |
+
public function ajax_attendee_uncheckin() {
|
380 |
+
|
381 |
+
if ( ! isset( $_POST['order_ID'] ) || intval( $_POST['order_ID'] ) == 0 ) {
|
382 |
+
wp_send_json_error( 'Bad post' );
|
383 |
+
}
|
384 |
+
|
385 |
+
$provider = $_POST['provider'];
|
386 |
+
|
387 |
+
if ( ! $this->module_is_valid( $provider ) ) {
|
388 |
+
wp_send_json_error( esc_html__( 'Commerce Module invalid', 'event-tickets' ) );
|
389 |
+
}
|
390 |
+
|
391 |
+
$provider = call_user_func( array( $provider, 'get_instance' ) );
|
392 |
+
|
393 |
+
if ( empty( $_POST['nonce'] ) || ! wp_verify_nonce( $_POST['nonce'], 'uncheckin' ) || ! $this->user_can( 'edit_posts', $_POST['order_ID'] ) ) {
|
394 |
+
wp_send_json_error( "Cheatin' huh?" );
|
395 |
+
}
|
396 |
+
|
397 |
+
$order_id = $_POST['order_ID'];
|
398 |
+
|
399 |
+
// Pass the control to the child object
|
400 |
+
$did_uncheckin = $provider->uncheckin( $order_id );
|
401 |
+
|
402 |
+
$provider->clear_attendees_cache( $did_uncheckin );
|
403 |
+
|
404 |
+
wp_send_json_success( $did_uncheckin );
|
405 |
+
}
|
406 |
+
|
407 |
+
/**
|
408 |
+
* Get the controls (move, delete) as a string
|
409 |
+
*
|
410 |
+
* @since TBD
|
411 |
+
*
|
412 |
+
* @param array $post_id
|
413 |
+
* @param array $ticket_id
|
414 |
+
* @param boolean $echo
|
415 |
+
*
|
416 |
+
* @return string
|
417 |
+
*/
|
418 |
+
public function get_ticket_controls( $post_id, $ticket_id = null, $echo = true ) {
|
419 |
+
$provider = tribe_tickets_get_ticket_provider( $ticket_id );
|
420 |
+
|
421 |
+
if ( ! $provider ) {
|
422 |
+
return false;
|
423 |
+
}
|
424 |
+
|
425 |
+
if ( ! $ticket_id ) {
|
426 |
+
return false;
|
427 |
+
}
|
428 |
+
|
429 |
+
$ticket = $provider->get_ticket( $post_id, $ticket_id );
|
430 |
+
|
431 |
+
if ( empty( $ticket ) ) {
|
432 |
+
return false;
|
433 |
+
}
|
434 |
+
|
435 |
+
$controls = array();
|
436 |
+
|
437 |
+
if ( tribe_is_truthy( tribe_get_request_var( 'is_admin', true ) ) ) {
|
438 |
+
$controls[] = $provider->get_ticket_move_link( $post_id, $ticket );
|
439 |
+
}
|
440 |
+
$controls[] = $provider->get_ticket_delete_link( $ticket );
|
441 |
+
|
442 |
+
$html = join( ' | ', $controls );
|
443 |
+
|
444 |
+
if ( $echo ) {
|
445 |
+
echo $html;
|
446 |
+
}
|
447 |
+
|
448 |
+
return $html;
|
449 |
+
}
|
450 |
+
|
451 |
+
/**
|
452 |
+
* test if the nonce is correct and the current user has the correct permissions
|
453 |
+
*
|
454 |
+
* @since TBD
|
455 |
+
*
|
456 |
+
* @param WP_Post $post
|
457 |
+
* @param array $data
|
458 |
+
* @param string $nonce_action
|
459 |
+
*
|
460 |
+
* @return boolean
|
461 |
+
*/
|
462 |
+
public function has_permission( $post, $data, $nonce_action ) {
|
463 |
+
if ( ! $post instanceof WP_Post ) {
|
464 |
+
if ( ! is_numeric( $post ) ) {
|
465 |
+
return false;
|
466 |
+
}
|
467 |
+
|
468 |
+
$post = get_post( $post );
|
469 |
+
}
|
470 |
+
|
471 |
+
return ! empty( $data['nonce'] ) && wp_verify_nonce( $data['nonce'], $nonce_action ) && current_user_can( get_post_type_object( $post->post_type )->cap->edit_posts );
|
472 |
+
}
|
473 |
+
|
474 |
+
/**
|
475 |
+
* Tests if the user has the specified capability in relation to whatever post type
|
476 |
+
* the attendee object relates to.
|
477 |
+
*
|
478 |
+
* For example, if the attendee was generated for a ticket set up in relation to a
|
479 |
+
* post of the `banana` type, the generic capability "edit_posts" will be mapped to
|
480 |
+
* "edit_bananas" or whatever is appropriate.
|
481 |
+
*
|
482 |
+
* @internal for internal plugin use only (in spite of having public visibility)
|
483 |
+
*
|
484 |
+
* @since TBD
|
485 |
+
*
|
486 |
+
* @see tribe( 'tickets.attendees' )->user_can
|
487 |
+
*
|
488 |
+
* @param string $generic_cap
|
489 |
+
* @param int $attendee_id
|
490 |
+
*
|
491 |
+
* @return boolean
|
492 |
+
*/
|
493 |
+
public function user_can( $generic_cap, $attendee_id ) {
|
494 |
+
$connections = tribe( 'tickets.handler' )->get_object_connections( $attendee_id );
|
495 |
+
|
496 |
+
if ( ! $connections->event ) {
|
497 |
+
return false;
|
498 |
+
}
|
499 |
+
|
500 |
+
return tribe( 'tickets.attendees' )->user_can( $generic_cap, $connections->event );
|
501 |
+
}
|
502 |
+
|
503 |
+
|
504 |
+
/**
|
505 |
+
* Returns whether a class name is a valid active module/provider.
|
506 |
+
*
|
507 |
+
* @since TBD
|
508 |
+
*
|
509 |
+
* @param string $module class name of module
|
510 |
+
*
|
511 |
+
* @return bool
|
512 |
+
*/
|
513 |
+
public function module_is_valid( $module ) {
|
514 |
+
return array_key_exists( $module, Tribe__Tickets__Tickets::modules() );
|
515 |
+
}
|
516 |
+
|
517 |
+
/**
|
518 |
+
* Returns the markup for a notice in the admin
|
519 |
+
*
|
520 |
+
* @since TBD
|
521 |
+
*
|
522 |
+
* @param string $msg Text for the notice
|
523 |
+
*
|
524 |
+
* @return string Notice with markup
|
525 |
+
*/
|
526 |
+
protected function notice( $msg ) {
|
527 |
+
return sprintf( '<div class="wrap"><div class="updated"><p>%s</p></div></div>', $msg );
|
528 |
}
|
529 |
|
530 |
+
/**
|
531 |
+
* Decimal Character Asset Localization (used on Community Tickets)
|
532 |
+
*
|
533 |
+
* @todo We need to deprecate this
|
534 |
+
*
|
535 |
+
* @return void
|
536 |
+
*/
|
537 |
public static function localize_decimal_character() {
|
538 |
$locale = localeconv();
|
539 |
$decimal = isset( $locale['decimal_point'] ) ? $locale['decimal_point'] : '.';
|
548 |
'decimal_error' => __( 'Please enter in without thousand separators and currency symbols.', 'event-tickets' ),
|
549 |
) );
|
550 |
}
|
551 |
+
|
552 |
+
|
553 |
+
/************************
|
554 |
+
* *
|
555 |
+
* Deprecated Methods *
|
556 |
+
* *
|
557 |
+
************************/
|
558 |
+
// @codingStandardsIgnoreStart
|
559 |
+
|
560 |
+
/**
|
561 |
+
* Refreshes panel settings after canceling saving
|
562 |
+
*
|
563 |
+
* @deprecated TBD
|
564 |
+
* @since 4.6
|
565 |
+
*
|
566 |
+
* @return string html content of the panel settings
|
567 |
+
*/
|
568 |
+
public function ajax_refresh_settings() {
|
569 |
+
|
570 |
+
}
|
571 |
+
|
572 |
+
/**
|
573 |
+
* @deprecated TBD
|
574 |
+
*
|
575 |
+
* @return void
|
576 |
+
*/
|
577 |
+
public function ajax_handler_save_settings() {
|
578 |
+
|
579 |
+
}
|
580 |
+
|
581 |
+
/**
|
582 |
+
* Registers the tickets metabox if there's at least
|
583 |
+
* one Tribe Tickets module (provider) enabled
|
584 |
+
*
|
585 |
+
* @deprecated TBD
|
586 |
+
*
|
587 |
+
* @param $post_type
|
588 |
+
*/
|
589 |
+
public static function maybe_add_meta_box( $post_type ) {
|
590 |
+
tribe( 'tickets.metabox' )->configure( $post_type );
|
591 |
+
}
|
592 |
+
|
593 |
+
/**
|
594 |
+
* Loads the content of the tickets metabox if there's at
|
595 |
+
* least one Tribe Tickets module (provider) enabled
|
596 |
+
*
|
597 |
+
* @deprecated TBD
|
598 |
+
*
|
599 |
+
* @param $post_id
|
600 |
+
*/
|
601 |
+
public static function do_modules_metaboxes( $post_id ) {
|
602 |
+
tribe( 'tickets.metabox' )->render( $post_id );
|
603 |
+
}
|
604 |
+
|
605 |
+
/**
|
606 |
+
* Enqueue the tickets metabox JS and CSS
|
607 |
+
*
|
608 |
+
* @deprecated 4.6
|
609 |
+
*
|
610 |
+
* @param $unused_hook
|
611 |
+
*/
|
612 |
+
public static function add_admin_scripts( $unused_hook ) {
|
613 |
+
_deprecated_function( __METHOD__, '4.6', 'Tribe__Tickets__Assets::admin_enqueue_scripts' );
|
614 |
+
}
|
615 |
+
|
616 |
+
// @codingStandardsIgnoreEnd
|
617 |
}
|
src/Tribe/RSVP.php
CHANGED
@@ -598,7 +598,6 @@ class Tribe__Tickets__RSVP extends Tribe__Tickets__Tickets {
|
|
598 |
*/
|
599 |
do_action( 'event_tickets_rsvp_tickets_generated_for_product', $product_id, $order_id, $qty );
|
600 |
|
601 |
-
|
602 |
// After Adding the Values we Update the Transient
|
603 |
Tribe__Post_Transient::instance()->delete( $post_id, Tribe__Tickets__Tickets::ATTENDEES_CACHE );
|
604 |
}
|
@@ -664,8 +663,6 @@ class Tribe__Tickets__RSVP extends Tribe__Tickets__Tickets {
|
|
664 |
* @param int $event_id
|
665 |
*/
|
666 |
public function send_tickets_email( $order_id, $event_id = null ) {
|
667 |
-
|
668 |
-
|
669 |
$all_attendees = $this->get_attendees_by_id( $order_id );
|
670 |
|
671 |
$to_send = array();
|
@@ -975,7 +972,7 @@ class Tribe__Tickets__RSVP extends Tribe__Tickets__Tickets {
|
|
975 |
delete_post_meta( $ticket->ID, Tribe__Tickets__Global_Stock::TICKET_STOCK_CAP );
|
976 |
}
|
977 |
|
978 |
-
|
979 |
|
980 |
if ( ! empty( $raw_data['ticket_start_date'] ) ) {
|
981 |
$start_date = Tribe__Date_Utils::maybe_format_from_datepicker( $raw_data['ticket_start_date'] );
|
@@ -1080,10 +1077,11 @@ class Tribe__Tickets__RSVP extends Tribe__Tickets__Tickets {
|
|
1080 |
$post_to_delete = get_post( $ticket_id );
|
1081 |
|
1082 |
foreach ( (array) $attendees as $attendee ) {
|
1083 |
-
if ( $attendee['product_id']
|
1084 |
-
|
1085 |
-
esc_html( $post_to_delete->post_title ) );
|
1086 |
}
|
|
|
|
|
1087 |
}
|
1088 |
|
1089 |
// Try to kill the actual ticket/attendee post
|
@@ -1222,17 +1220,18 @@ class Tribe__Tickets__RSVP extends Tribe__Tickets__Tickets {
|
|
1222 |
$return->show_description = $return->show_description();
|
1223 |
|
1224 |
$start_date = get_post_meta( $ticket_id, '_ticket_start_date', true );
|
1225 |
-
$
|
|
|
1226 |
if ( ! empty( $start_date ) ) {
|
1227 |
-
$
|
1228 |
-
$return->
|
|
|
1229 |
}
|
1230 |
|
1231 |
-
$end_date = get_post_meta( $ticket_id, '_ticket_end_date', true );
|
1232 |
-
$end_date_unix = strtotime( $end_date );
|
1233 |
if ( ! empty( $end_date ) ) {
|
1234 |
-
$
|
1235 |
-
$return->
|
|
|
1236 |
}
|
1237 |
|
1238 |
$return->manage_stock( 'yes' === get_post_meta( $ticket_id, '_manage_stock', true ) );
|
@@ -1720,7 +1719,7 @@ class Tribe__Tickets__RSVP extends Tribe__Tickets__Tickets {
|
|
1720 |
|
1721 |
$args = array(
|
1722 |
'post_type' => 'tribe_events',
|
1723 |
-
'page' =>
|
1724 |
'event_id' => get_post_meta( $post_id, '_tribe_rsvp_event', true ),
|
1725 |
);
|
1726 |
|
@@ -1754,7 +1753,7 @@ class Tribe__Tickets__RSVP extends Tribe__Tickets__Tickets {
|
|
1754 |
$attendees_report_url = add_query_arg(
|
1755 |
array(
|
1756 |
'post_type' => $event->post_type,
|
1757 |
-
'page' =>
|
1758 |
'event_id' => $event->ID,
|
1759 |
),
|
1760 |
admin_url( 'edit.php' )
|
598 |
*/
|
599 |
do_action( 'event_tickets_rsvp_tickets_generated_for_product', $product_id, $order_id, $qty );
|
600 |
|
|
|
601 |
// After Adding the Values we Update the Transient
|
602 |
Tribe__Post_Transient::instance()->delete( $post_id, Tribe__Tickets__Tickets::ATTENDEES_CACHE );
|
603 |
}
|
663 |
* @param int $event_id
|
664 |
*/
|
665 |
public function send_tickets_email( $order_id, $event_id = null ) {
|
|
|
|
|
666 |
$all_attendees = $this->get_attendees_by_id( $order_id );
|
667 |
|
668 |
$to_send = array();
|
972 |
delete_post_meta( $ticket->ID, Tribe__Tickets__Global_Stock::TICKET_STOCK_CAP );
|
973 |
}
|
974 |
|
975 |
+
tribe_tickets_update_capacity( $ticket, $data['capacity'] );
|
976 |
|
977 |
if ( ! empty( $raw_data['ticket_start_date'] ) ) {
|
978 |
$start_date = Tribe__Date_Utils::maybe_format_from_datepicker( $raw_data['ticket_start_date'] );
|
1077 |
$post_to_delete = get_post( $ticket_id );
|
1078 |
|
1079 |
foreach ( (array) $attendees as $attendee ) {
|
1080 |
+
if ( (int) $attendee['product_id'] !== (int) $ticket_id ) {
|
1081 |
+
continue;
|
|
|
1082 |
}
|
1083 |
+
|
1084 |
+
update_post_meta( $attendee['attendee_id'], $this->deleted_product, esc_html( $post_to_delete->post_title ) );
|
1085 |
}
|
1086 |
|
1087 |
// Try to kill the actual ticket/attendee post
|
1220 |
$return->show_description = $return->show_description();
|
1221 |
|
1222 |
$start_date = get_post_meta( $ticket_id, '_ticket_start_date', true );
|
1223 |
+
$end_date = get_post_meta( $ticket_id, '_ticket_end_date', true );
|
1224 |
+
|
1225 |
if ( ! empty( $start_date ) ) {
|
1226 |
+
$start_date_unix = strtotime( $start_date );
|
1227 |
+
$return->start_date = Tribe__Date_Utils::date_only( $start_date_unix, true );
|
1228 |
+
$return->start_time = Tribe__Date_Utils::time_only( $start_date_unix );
|
1229 |
}
|
1230 |
|
|
|
|
|
1231 |
if ( ! empty( $end_date ) ) {
|
1232 |
+
$end_date_unix = strtotime( $end_date );
|
1233 |
+
$return->end_date = Tribe__Date_Utils::date_only( $end_date_unix, true );
|
1234 |
+
$return->end_time = Tribe__Date_Utils::time_only( $end_date_unix );
|
1235 |
}
|
1236 |
|
1237 |
$return->manage_stock( 'yes' === get_post_meta( $ticket_id, '_manage_stock', true ) );
|
1719 |
|
1720 |
$args = array(
|
1721 |
'post_type' => 'tribe_events',
|
1722 |
+
'page' => tribe( 'tickets.attendees' )->slug(),
|
1723 |
'event_id' => get_post_meta( $post_id, '_tribe_rsvp_event', true ),
|
1724 |
);
|
1725 |
|
1753 |
$attendees_report_url = add_query_arg(
|
1754 |
array(
|
1755 |
'post_type' => $event->post_type,
|
1756 |
+
'page' => tribe( 'tickets.attendees' )->slug(),
|
1757 |
'event_id' => $event->ID,
|
1758 |
),
|
1759 |
admin_url( 'edit.php' )
|
src/Tribe/Service_Provider.php
CHANGED
@@ -18,7 +18,9 @@ class Tribe__Tickets__Service_Provider extends tad_DI52_ServiceProvider {
|
|
18 |
public function register() {
|
19 |
$this->container->singleton( 'tickets.assets', new Tribe__Tickets__Assets() );
|
20 |
$this->container->singleton( 'tickets.handler', 'Tribe__Tickets__Tickets_Handler' );
|
|
|
21 |
$this->container->singleton( 'tickets.version', 'Tribe__Tickets__Version', array( 'hook' ) );
|
|
|
22 |
|
23 |
// Caching
|
24 |
$this->container->singleton( 'tickets.cache-central', 'Tribe__Tickets__Cache__Central', array( 'hook' ) );
|
@@ -48,7 +50,9 @@ class Tribe__Tickets__Service_Provider extends tad_DI52_ServiceProvider {
|
|
48 |
protected function load() {
|
49 |
tribe( 'tickets.query' );
|
50 |
tribe( 'tickets.handler' );
|
|
|
51 |
tribe( 'tickets.version' );
|
|
|
52 |
|
53 |
if ( is_admin() ) {
|
54 |
tribe( 'tickets.admin.views' );
|
18 |
public function register() {
|
19 |
$this->container->singleton( 'tickets.assets', new Tribe__Tickets__Assets() );
|
20 |
$this->container->singleton( 'tickets.handler', 'Tribe__Tickets__Tickets_Handler' );
|
21 |
+
$this->container->singleton( 'tickets.attendees', 'Tribe__Tickets__Attendees', array( 'hook' ) );
|
22 |
$this->container->singleton( 'tickets.version', 'Tribe__Tickets__Version', array( 'hook' ) );
|
23 |
+
$this->container->singleton( 'tickets.metabox', 'Tribe__Tickets__Metabox', array( 'hook' ) );
|
24 |
|
25 |
// Caching
|
26 |
$this->container->singleton( 'tickets.cache-central', 'Tribe__Tickets__Cache__Central', array( 'hook' ) );
|
50 |
protected function load() {
|
51 |
tribe( 'tickets.query' );
|
52 |
tribe( 'tickets.handler' );
|
53 |
+
tribe( 'tickets.attendees' );
|
54 |
tribe( 'tickets.version' );
|
55 |
+
tribe( 'tickets.metabox' );
|
56 |
|
57 |
if ( is_admin() ) {
|
58 |
tribe( 'tickets.admin.views' );
|
src/Tribe/Ticket_Object.php
CHANGED
@@ -237,17 +237,6 @@ if ( ! class_exists( 'Tribe__Tickets__Ticket_Object' ) ) {
|
|
237 |
$end_date = null;
|
238 |
if ( ! empty( $this->end_date ) ) {
|
239 |
$end_date = strtotime( $this->end_date );
|
240 |
-
} else {
|
241 |
-
$post_id = get_the_ID();
|
242 |
-
|
243 |
-
/**
|
244 |
-
* Set a default end date for tickets if the end date wasn't specified in the registration form
|
245 |
-
*
|
246 |
-
* @param $date End date for the tickets (defaults to tomorrow ... which means registrations will not end)
|
247 |
-
* @param $post_id Post id for the post that tickets are attached to
|
248 |
-
*/
|
249 |
-
$end_date = apply_filters( 'tribe_tickets_default_end_date', date( 'Y-m-d G:i', strtotime( '+1 day' ) ), $post_id );
|
250 |
-
$end_date = strtotime( $end_date );
|
251 |
}
|
252 |
|
253 |
return $end_date;
|
237 |
$end_date = null;
|
238 |
if ( ! empty( $this->end_date ) ) {
|
239 |
$end_date = strtotime( $this->end_date );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
240 |
}
|
241 |
|
242 |
return $end_date;
|
src/Tribe/Tickets.php
CHANGED
@@ -294,7 +294,6 @@ if ( ! class_exists( 'Tribe__Tickets__Tickets' ) ) {
|
|
294 |
return $query->posts;
|
295 |
}
|
296 |
|
297 |
-
|
298 |
/**
|
299 |
* Returns the html for the delete ticket link
|
300 |
*
|
@@ -399,6 +398,7 @@ if ( ! class_exists( 'Tribe__Tickets__Tickets' ) ) {
|
|
399 |
/**
|
400 |
* Get the controls (move, delete) as a string and add to our ajax return
|
401 |
*
|
|
|
402 |
* @since 4.6
|
403 |
*
|
404 |
* @param array $return the ajax return data
|
@@ -669,26 +669,6 @@ if ( ! class_exists( 'Tribe__Tickets__Tickets' ) ) {
|
|
669 |
* @since 4.6
|
670 |
*/
|
671 |
add_action( 'tribe_events_tickets_metabox_edit_main', array( $this, 'do_metabox_capacity_options' ), 11, 2 );
|
672 |
-
add_filter( 'tribe_events_tickets_ajax_ticket_edit', array( $this, 'ajax_ticket_edit_controls' ) );
|
673 |
-
add_filter( 'wp_ajax_tribe-events-edit-global-capacity', array( $this, 'edit_global_capacity_level' ) );
|
674 |
-
add_action( 'wp_ajax_tribe-ticket-refresh-panels', array( $this, 'ajax_refresh_panels' ) );
|
675 |
-
add_action( 'wp_ajax_tribe-ticket-refresh-settings', array( $this, 'ajax_refresh_settings' ) );
|
676 |
-
|
677 |
-
/**
|
678 |
-
* @deprecated 4.5.7 `tribe_events_tickets_modules` should no longer be used and direct
|
679 |
-
* calls to Tribe__Tickets__Tickets::modules() are now preferred
|
680 |
-
*
|
681 |
-
* @todo remove in 4.6. This only exists because version =<4.5.10 of TEC runs apply_filter()
|
682 |
-
* instead of calling this method directly.
|
683 |
-
*/
|
684 |
-
add_filter( 'tribe_events_tickets_modules', array( $this, 'modules' ) );
|
685 |
-
|
686 |
-
// Admin AJAX actions for each provider
|
687 |
-
add_action( 'wp_ajax_tribe-ticket-add-' . $this->class_name, array( $this, 'ajax_handler_ticket_add' ) );
|
688 |
-
add_action( 'wp_ajax_tribe-ticket-delete-' . $this->class_name, array( $this, 'ajax_handler_ticket_delete' ) );
|
689 |
-
add_action( 'wp_ajax_tribe-ticket-edit-' . $this->class_name, array( $this, 'ajax_handler_ticket_edit' ) );
|
690 |
-
add_action( 'wp_ajax_tribe-ticket-checkin-' . $this->class_name, array( $this, 'ajax_handler_attendee_checkin' ) );
|
691 |
-
add_action( 'wp_ajax_tribe-ticket-uncheckin-' . $this->class_name, array( $this, 'ajax_handler_attendee_uncheckin' ) );
|
692 |
|
693 |
// Front end
|
694 |
$ticket_form_hook = $this->get_ticket_form_hook();
|
@@ -705,481 +685,6 @@ if ( ! class_exists( 'Tribe__Tickets__Tickets' ) ) {
|
|
705 |
add_filter( 'tribe_events_event_costs', array( $this, 'get_ticket_prices' ), 10, 2 );
|
706 |
}
|
707 |
|
708 |
-
|
709 |
-
/**
|
710 |
-
* test if the nonce is correct and the current user has the correct permissions
|
711 |
-
* @param WP_Post $post
|
712 |
-
* @param array $data
|
713 |
-
* @param string $nonce_action
|
714 |
-
* @return boolean
|
715 |
-
*/
|
716 |
-
public function has_permission( $post, $data, $nonce_action ) {
|
717 |
-
if ( ! $post instanceof WP_Post ) {
|
718 |
-
if ( ! is_numeric( $post ) ) {
|
719 |
-
return false;
|
720 |
-
}
|
721 |
-
|
722 |
-
$post = get_post( $post );
|
723 |
-
}
|
724 |
-
|
725 |
-
return ! empty( $data['nonce'] ) && wp_verify_nonce( $data['nonce'], $nonce_action ) && current_user_can( get_post_type_object( $post->post_type )->cap->edit_posts );
|
726 |
-
}
|
727 |
-
|
728 |
-
/* AJAX Handlers */
|
729 |
-
|
730 |
-
/**
|
731 |
-
* Refreshes panels after ajax calls that change data
|
732 |
-
*
|
733 |
-
* @since 4.6
|
734 |
-
*
|
735 |
-
* @return string html content of the panels
|
736 |
-
*/
|
737 |
-
public function ajax_refresh_panels() {
|
738 |
-
// Didn't get a post id to work with - bail
|
739 |
-
if ( empty( $_POST['post_ID'] ) ) {
|
740 |
-
return;
|
741 |
-
}
|
742 |
-
$post_id = $_POST['post_ID'];
|
743 |
-
|
744 |
-
// Saves the new order
|
745 |
-
tribe( 'tickets.handler' )->save_order( $post_id, Tribe__Utils__Array::get( $_POST, array( 'tribe-tickets' ), null ) );
|
746 |
-
|
747 |
-
// Let's create tickets list markup to return
|
748 |
-
$tickets = $this->get_event_tickets( $post_id );
|
749 |
-
|
750 |
-
$notice_type = ! empty( $_POST['notice'] ) ? $_POST['notice'] : '';
|
751 |
-
$ticket_table = '';
|
752 |
-
|
753 |
-
switch ( $notice_type ) {
|
754 |
-
case 'settings' :
|
755 |
-
$ticket_table .= $this->notice( esc_html__( 'Your settings have been saved.', 'event-tickets' ) );
|
756 |
-
break;
|
757 |
-
case 'ticket':
|
758 |
-
$ticket_table .= $this->notice( esc_html__( 'Your ticket has been saved.', 'event-tickets' ) );
|
759 |
-
break;
|
760 |
-
case 'delete':
|
761 |
-
$ticket_table .= $this->notice( esc_html__( 'Your ticket has been deleted.', 'event-tickets' ) );
|
762 |
-
break;
|
763 |
-
default:
|
764 |
-
// Don't add a notice if we didn't get a notice type
|
765 |
-
}
|
766 |
-
|
767 |
-
$ticket_table .= tribe( 'tickets.handler' )->get_ticket_list_markup( $tickets );
|
768 |
-
|
769 |
-
$return['ticket_table'] = $ticket_table;
|
770 |
-
|
771 |
-
/**
|
772 |
-
* Allows filtering the data by other plugins/ecommerce solutions©
|
773 |
-
*
|
774 |
-
* @since 4.6
|
775 |
-
*
|
776 |
-
* @param array the return data
|
777 |
-
* @param int the post/event id
|
778 |
-
*/
|
779 |
-
$return = apply_filters( 'tribe_tickets_ajax_refresh_tables', $return, $post_id );
|
780 |
-
|
781 |
-
$this->ajax_ok( $return );
|
782 |
-
}
|
783 |
-
|
784 |
-
/**
|
785 |
-
* Refreshes panel settings after canceling saving
|
786 |
-
*
|
787 |
-
* @since 4.6
|
788 |
-
*
|
789 |
-
* @return string html content of the panel settings
|
790 |
-
*/
|
791 |
-
public function ajax_refresh_settings() {
|
792 |
-
$return = array();
|
793 |
-
|
794 |
-
// Didn't get a post id to work with - bail
|
795 |
-
if ( empty( $_POST['post_ID'] ) ) {
|
796 |
-
$this->ajax_error( __( 'No Post ID was provided.', 'event-tickets' ) );
|
797 |
-
}
|
798 |
-
$post_id = absint( $_POST['post_ID'] );
|
799 |
-
|
800 |
-
$html = tribe( 'tickets.handler' )->get_settings_panel( $post_id );
|
801 |
-
|
802 |
-
/**
|
803 |
-
* Allows filtering the data by other plugins/ecommerce solutions
|
804 |
-
*
|
805 |
-
* @since 4.6
|
806 |
-
*
|
807 |
-
* @param array the return data
|
808 |
-
* @param int the post/event id
|
809 |
-
*/
|
810 |
-
$return['settings_panel'] = apply_filters( 'tribe_tickets_ajax_refresh_settings', $html, $post_id );
|
811 |
-
|
812 |
-
$this->ajax_ok( $return );
|
813 |
-
}
|
814 |
-
|
815 |
-
/**
|
816 |
-
* Sanitizes the data for the new/edit ticket ajax call,
|
817 |
-
* and calls the child save_ticket function.
|
818 |
-
*/
|
819 |
-
final public function ajax_handler_ticket_add() {
|
820 |
-
if ( ! isset( $_POST['formdata'] ) || ! isset( $_POST['post_ID'] ) ) {
|
821 |
-
$this->ajax_error( 'Bad post' );
|
822 |
-
}
|
823 |
-
|
824 |
-
/**
|
825 |
-
* This is needed because a provider can implement a dynamic set of fields.
|
826 |
-
* Each provider is responsible for sanitizing these values.
|
827 |
-
*/
|
828 |
-
$data = wp_parse_args( $_POST['formdata'] );
|
829 |
-
|
830 |
-
$post_id = $_POST['post_ID'];
|
831 |
-
|
832 |
-
if ( ! $this->has_permission( $post_id, $_POST, 'add_ticket_nonce' ) ) {
|
833 |
-
$this->ajax_error( "Cheatin' huh?" );
|
834 |
-
}
|
835 |
-
|
836 |
-
if ( ! isset( $data['ticket_provider'] ) || ! $this->module_is_valid( $data['ticket_provider'] ) ) {
|
837 |
-
$this->ajax_error( 'Bad module' );
|
838 |
-
}
|
839 |
-
|
840 |
-
$ticket_id = $this->ticket_add( $post_id, $data );
|
841 |
-
|
842 |
-
// Successful?
|
843 |
-
if ( $ticket_id ) {
|
844 |
-
/**
|
845 |
-
* Fire action when a ticket has been added
|
846 |
-
*
|
847 |
-
* @param int $post_id ID of parent "event" post
|
848 |
-
*/
|
849 |
-
do_action( 'tribe_tickets_ticket_added', $post_id );
|
850 |
-
} else {
|
851 |
-
$this->ajax_error( __( 'Failed to Add the Ticket', 'event-tickets' ) );
|
852 |
-
}
|
853 |
-
|
854 |
-
$ticket = $this->get_ticket( $post_id, $ticket_id );
|
855 |
-
|
856 |
-
$data['ticket_stock'] = $ticket->stock();
|
857 |
-
$data['ticket_capacity'] = $ticket->capacity();
|
858 |
-
|
859 |
-
$return = array(
|
860 |
-
'data' => json_encode( (object) $data ),
|
861 |
-
);
|
862 |
-
|
863 |
-
/**
|
864 |
-
* Filters the return data for ticket add
|
865 |
-
*
|
866 |
-
* @param array $return Array of data to return to the ajax call
|
867 |
-
* @param int $post_id ID of parent "event" post
|
868 |
-
*/
|
869 |
-
$return = apply_filters( 'event_tickets_ajax_ticket_add_data', $return, $post_id );
|
870 |
-
|
871 |
-
$this->ajax_ok( $return );
|
872 |
-
}
|
873 |
-
|
874 |
-
/**
|
875 |
-
* Creates a ticket object and calls the child save_ticket function
|
876 |
-
*
|
877 |
-
* @param int $post_id ID of parent "event" post
|
878 |
-
* @param array $data Raw post data
|
879 |
-
* @return boolean
|
880 |
-
*/
|
881 |
-
final public function ticket_add( $post_id, $data ) {
|
882 |
-
$ticket = new Tribe__Tickets__Ticket_Object();
|
883 |
-
$ticket->ID = isset( $data['ticket_id'] ) ? absint( $data['ticket_id'] ) : null;
|
884 |
-
$ticket->name = isset( $data['ticket_name'] ) ? esc_html( $data['ticket_name'] ) : null;
|
885 |
-
$ticket->description = isset( $data['ticket_description'] ) ? esc_html( $data['ticket_description'] ) : null;
|
886 |
-
$ticket->price = ! empty( $data['ticket_price'] ) ? filter_var( trim( $data['ticket_price'] ), FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION | FILTER_FLAG_ALLOW_THOUSAND ) : 0;
|
887 |
-
$ticket->purchase_limit = isset( $data['ticket_purchase_limit'] ) ? absint( $data['ticket_purchase_limit'] ) : apply_filters( 'tribe_tickets_default_purchase_limit', 0, $ticket->ID );
|
888 |
-
$ticket->show_description = isset( $data['ticket_show_description'] ) ? 'yes' : 'no';
|
889 |
-
$ticket->provider_class = $this->class_name;
|
890 |
-
$ticket->start_date = null;
|
891 |
-
$ticket->end_date = null;
|
892 |
-
|
893 |
-
tribe( 'tickets.handler' )->toggle_manual_update_flag( true );
|
894 |
-
|
895 |
-
if ( ! empty( $ticket->price ) ) {
|
896 |
-
// remove non-money characters
|
897 |
-
$ticket->price = preg_replace( '/[^0-9\.\,]/Uis', '', $ticket->price );
|
898 |
-
}
|
899 |
-
|
900 |
-
if ( ! empty( $data['ticket_start_date'] ) ) {
|
901 |
-
$start_datetime = Tribe__Date_Utils::maybe_format_from_datepicker( $data['ticket_start_date'] );
|
902 |
-
|
903 |
-
if ( ! empty( $data['ticket_start_time'] ) ) {
|
904 |
-
$start_datetime .= ' ' . $data['ticket_start_time'];
|
905 |
-
}
|
906 |
-
|
907 |
-
$ticket->start_date = date( Tribe__Date_Utils::DBDATETIMEFORMAT, strtotime( $start_datetime ) );
|
908 |
-
}
|
909 |
-
|
910 |
-
if ( ! empty( $data['ticket_end_date'] ) ) {
|
911 |
-
$end_datetime = Tribe__Date_Utils::maybe_format_from_datepicker( $data['ticket_end_date'] );
|
912 |
-
|
913 |
-
if ( ! empty( $data['ticket_end_time'] ) ) {
|
914 |
-
$end_datetime .= ' ' . $data['ticket_end_time'];
|
915 |
-
}
|
916 |
-
|
917 |
-
$ticket->end_date = date( Tribe__Date_Utils::DBDATETIMEFORMAT, strtotime( $end_datetime ) );
|
918 |
-
}
|
919 |
-
|
920 |
-
/**
|
921 |
-
* Fired once a ticket has been created and added to a post
|
922 |
-
*
|
923 |
-
* @param int $post_id ID of parent "event" post
|
924 |
-
* @param Tribe__Tickets__Ticket_Object $ticket Ticket object
|
925 |
-
* @param array $data Submitted post data
|
926 |
-
*/
|
927 |
-
do_action( 'tribe_tickets_ticket_add', $post_id, $ticket, $data );
|
928 |
-
|
929 |
-
// Pass the control to the child object
|
930 |
-
$save_ticket = $this->save_ticket( $post_id, $ticket, $data );
|
931 |
-
|
932 |
-
tribe( 'tickets.handler' )->toggle_manual_update_flag( false );
|
933 |
-
|
934 |
-
$post = get_post( $post_id );
|
935 |
-
if ( empty( $data['ticket_start_date'] ) ) {
|
936 |
-
// 30 min
|
937 |
-
$round = 30;
|
938 |
-
if ( class_exists( 'Tribe__Events__Main' ) ) {
|
939 |
-
$round = (int) tribe( 'tec.admin.event-meta-box' )->get_timepicker_step( 'start' );
|
940 |
-
}
|
941 |
-
// Convert to seconds
|
942 |
-
$round *= MINUTE_IN_SECONDS;
|
943 |
-
|
944 |
-
$date = strtotime( $post->post_date );
|
945 |
-
$date = round( $date / $round ) * $round;
|
946 |
-
$date = date( Tribe__Date_Utils::DBDATETIMEFORMAT, $date );
|
947 |
-
|
948 |
-
update_post_meta( $ticket->ID, tribe( 'tickets.handler' )->key_start_date, $date );
|
949 |
-
}
|
950 |
-
|
951 |
-
if ( empty( $data['ticket_end_date'] ) && 'tribe_events' === $post->post_type ) {
|
952 |
-
$event_end = get_post_meta( $post_id, '_EventEndDate', true );
|
953 |
-
update_post_meta( $ticket->ID, tribe( 'tickets.handler' )->key_end_date, $event_end );
|
954 |
-
}
|
955 |
-
|
956 |
-
tribe( 'tickets.version' )->update( $ticket->ID );
|
957 |
-
|
958 |
-
return $save_ticket;
|
959 |
-
}
|
960 |
-
|
961 |
-
/**
|
962 |
-
* Handles the check-in ajax call, and calls the checkin method.
|
963 |
-
*
|
964 |
-
* @todo use of 'order_id' in this method is misleading (we're working with the attendee id)
|
965 |
-
* we should consider revising in a back-compat minded way
|
966 |
-
*/
|
967 |
-
final public function ajax_handler_attendee_checkin() {
|
968 |
-
|
969 |
-
if ( ! isset( $_POST['order_ID'] ) || intval( $_POST['order_ID'] ) == 0 ) {
|
970 |
-
$this->ajax_error( 'Bad post' );
|
971 |
-
}
|
972 |
-
|
973 |
-
if ( ! isset( $_POST['provider'] ) || ! $this->module_is_valid( $_POST['provider'] ) ) {
|
974 |
-
$this->ajax_error( 'Bad module' );
|
975 |
-
}
|
976 |
-
|
977 |
-
if ( empty( $_POST['nonce'] ) || ! wp_verify_nonce( $_POST['nonce'], 'checkin' ) || ! $this->user_can( 'edit_posts', $_POST['order_ID'] ) ) {
|
978 |
-
$this->ajax_error( "Cheatin' huh?" );
|
979 |
-
}
|
980 |
-
|
981 |
-
$order_id = $_POST['order_ID'];
|
982 |
-
|
983 |
-
// Pass the control to the child object
|
984 |
-
$did_checkin = $this->checkin( $order_id );
|
985 |
-
|
986 |
-
$this->maybe_update_attendees_cache( $did_checkin );
|
987 |
-
|
988 |
-
$this->ajax_ok( $did_checkin );
|
989 |
-
}
|
990 |
-
|
991 |
-
/**
|
992 |
-
* Handles the check-in ajax call, and calls the uncheckin method.
|
993 |
-
*
|
994 |
-
* @TODO use of 'order_id' in this method is misleading (we're working with the attendee id)
|
995 |
-
* we should consider revising in a back-compat minded way
|
996 |
-
*/
|
997 |
-
final public function ajax_handler_attendee_uncheckin() {
|
998 |
-
|
999 |
-
if ( ! isset( $_POST['order_ID'] ) || intval( $_POST['order_ID'] ) == 0 ) {
|
1000 |
-
$this->ajax_error( 'Bad post' );
|
1001 |
-
}
|
1002 |
-
|
1003 |
-
if ( ! isset( $_POST['provider'] ) || ! $this->module_is_valid( $_POST['provider'] ) ) {
|
1004 |
-
$this->ajax_error( 'Bad module' );
|
1005 |
-
}
|
1006 |
-
|
1007 |
-
if ( empty( $_POST['nonce'] ) || ! wp_verify_nonce( $_POST['nonce'], 'uncheckin' ) || ! $this->user_can( 'edit_posts', $_POST['order_ID'] ) ) {
|
1008 |
-
$this->ajax_error( "Cheatin' huh?" );
|
1009 |
-
}
|
1010 |
-
|
1011 |
-
$order_id = $_POST['order_ID'];
|
1012 |
-
|
1013 |
-
// Pass the control to the child object
|
1014 |
-
$did_uncheckin = $this->uncheckin( $order_id );
|
1015 |
-
|
1016 |
-
if ( class_exists( 'Tribe__Events__Main' ) ) {
|
1017 |
-
$this->maybe_update_attendees_cache( $did_uncheckin );
|
1018 |
-
}
|
1019 |
-
|
1020 |
-
$this->ajax_ok( $did_uncheckin );
|
1021 |
-
}
|
1022 |
-
|
1023 |
-
/**
|
1024 |
-
* Sanitizes the data for the delete ticket ajax call, and calls the child delete_ticket
|
1025 |
-
* function.
|
1026 |
-
*
|
1027 |
-
* @TODO use of 'order_id' in this method is misleading (we're working with the attendee id)
|
1028 |
-
* we should consider revising in a back-compat minded way
|
1029 |
-
*/
|
1030 |
-
final public function ajax_handler_ticket_delete() {
|
1031 |
-
|
1032 |
-
if ( ! isset( $_POST['post_ID'] ) ) {
|
1033 |
-
$this->ajax_error( 'Bad post' );
|
1034 |
-
}
|
1035 |
-
|
1036 |
-
if ( ! isset( $_POST['ticket_id'] ) ) {
|
1037 |
-
$this->ajax_error( 'Bad post' );
|
1038 |
-
}
|
1039 |
-
|
1040 |
-
$post_id = $_POST['post_ID'];
|
1041 |
-
|
1042 |
-
if ( ! $this->has_permission( $post_id, $_POST, 'remove_ticket_nonce' ) ) {
|
1043 |
-
$this->ajax_error( "Cheatin' huh?" );
|
1044 |
-
}
|
1045 |
-
|
1046 |
-
$ticket_id = $_POST['ticket_id'];
|
1047 |
-
|
1048 |
-
// Pass the control to the child object
|
1049 |
-
$return = $this->delete_ticket( $post_id, $ticket_id );
|
1050 |
-
|
1051 |
-
// Successfully deleted?
|
1052 |
-
if ( $return ) {
|
1053 |
-
// Let's create a tickets list markup to return
|
1054 |
-
$tickets = $this->get_event_tickets( $post_id );
|
1055 |
-
$return = tribe( 'tickets.handler' )->get_ticket_list_markup( $tickets );
|
1056 |
-
|
1057 |
-
$return = $this->notice( esc_html__( 'Your ticket has been deleted.', 'event-tickets' ) ) . $return;
|
1058 |
-
|
1059 |
-
/**
|
1060 |
-
* Fire action when a ticket has been deleted
|
1061 |
-
*
|
1062 |
-
* @param int $post_id ID of parent "event" post
|
1063 |
-
*/
|
1064 |
-
do_action( 'tribe_tickets_ticket_deleted', $post_id );
|
1065 |
-
}
|
1066 |
-
|
1067 |
-
$this->ajax_ok( $return );
|
1068 |
-
}
|
1069 |
-
|
1070 |
-
/**
|
1071 |
-
* Returns the data from a single ticket to populate
|
1072 |
-
* the edit form.
|
1073 |
-
*
|
1074 |
-
* @return array $return array of ticket data
|
1075 |
-
*/
|
1076 |
-
final public function ajax_handler_ticket_edit() {
|
1077 |
-
|
1078 |
-
if ( ! isset( $_POST['post_ID'] ) ) {
|
1079 |
-
$this->ajax_error( 'Bad post' );
|
1080 |
-
}
|
1081 |
-
|
1082 |
-
if ( ! isset( $_POST['ticket_id'] ) ) {
|
1083 |
-
$this->ajax_error( 'Bad post' );
|
1084 |
-
}
|
1085 |
-
|
1086 |
-
$post_id = $_POST['post_ID'];
|
1087 |
-
|
1088 |
-
if ( ! $this->has_permission( $post_id, $_POST, 'edit_ticket_nonce' ) ) {
|
1089 |
-
$this->ajax_error( "Cheatin' huh?" );
|
1090 |
-
}
|
1091 |
-
|
1092 |
-
$ticket_id = $_POST['ticket_id'];
|
1093 |
-
$ticket = $this->get_ticket( $post_id, $ticket_id );
|
1094 |
-
|
1095 |
-
$return = get_object_vars( $ticket );
|
1096 |
-
$return['post_id'] = $post_id;
|
1097 |
-
/**
|
1098 |
-
* Allow for the prevention of updating ticket price on update.
|
1099 |
-
*
|
1100 |
-
* @param boolean
|
1101 |
-
* @param WP_Post
|
1102 |
-
*/
|
1103 |
-
$can_update_price = apply_filters( 'tribe_tickets_can_update_ticket_price', true, $ticket );
|
1104 |
-
|
1105 |
-
$return['can_update_price'] = $can_update_price;
|
1106 |
-
|
1107 |
-
if ( ! $can_update_price ) {
|
1108 |
-
/**
|
1109 |
-
* Filter the no-update message that is displayed when updating the price is disallowed
|
1110 |
-
*
|
1111 |
-
* @param string
|
1112 |
-
* @param WP_Post
|
1113 |
-
*/
|
1114 |
-
$return['disallow_update_price_message'] = apply_filters( 'tribe_tickets_disallow_update_ticket_price_message', esc_html__( 'Editing the ticket price is currently disallowed.', 'event-tickets' ), $ticket );
|
1115 |
-
}
|
1116 |
-
|
1117 |
-
// Prevent HTML elements from being escaped
|
1118 |
-
$return['name'] = html_entity_decode( $return['name'], ENT_QUOTES );
|
1119 |
-
$return['name'] = htmlspecialchars_decode( $return['name'] );
|
1120 |
-
$return['description'] = html_entity_decode( $return['description'], ENT_QUOTES );
|
1121 |
-
$return['description'] = htmlspecialchars_decode( $return['description'] );
|
1122 |
-
|
1123 |
-
ob_start();
|
1124 |
-
/**
|
1125 |
-
* Fired to allow for the insertion of extra form data in the ticket int admin form
|
1126 |
-
*
|
1127 |
-
* @param int $post_id ID of parent "event" post
|
1128 |
-
* @param int $ticket_id ID of ticket post
|
1129 |
-
*/
|
1130 |
-
do_action( 'tribe_events_tickets_metabox_edit_advanced', $post_id, $ticket_id );
|
1131 |
-
|
1132 |
-
$extra = ob_get_contents();
|
1133 |
-
ob_end_clean();
|
1134 |
-
|
1135 |
-
$return['advanced_fields'] = $extra;
|
1136 |
-
|
1137 |
-
$return['history'] = tribe( 'tickets.handler' )->get_history_content( $post_id, $ticket->ID );
|
1138 |
-
|
1139 |
-
/**
|
1140 |
-
* Allows for the insertion of the attendee meta fields into the ticket admin form
|
1141 |
-
*
|
1142 |
-
* @since 4.6
|
1143 |
-
*
|
1144 |
-
* @param int $post_id ID of parent "event" post
|
1145 |
-
* @param int $ticket_id ID of ticket post
|
1146 |
-
*/
|
1147 |
-
$return['attendee_fields'] = apply_filters( 'tribe_events_tickets_metabox_edit_attendee', $post_id, $ticket_id );
|
1148 |
-
|
1149 |
-
$return['stock'] = $ticket->stock;
|
1150 |
-
$return['capacity'] = $ticket->capacity;
|
1151 |
-
$global_stock_mode = ( isset( $ticket ) ) ? $ticket->global_stock_mode() : '';
|
1152 |
-
$return['global_stock_mode'] = $global_stock_mode;
|
1153 |
-
$return['show_description'] = $ticket->show_description();
|
1154 |
-
|
1155 |
-
if ( Tribe__Tickets__Global_Stock::GLOBAL_STOCK_MODE === $global_stock_mode || Tribe__Tickets__Global_Stock::CAPPED_STOCK_MODE === $global_stock_mode ) {
|
1156 |
-
$return['event_capacity'] = tribe_tickets_get_capacity( $post_id );
|
1157 |
-
}
|
1158 |
-
|
1159 |
-
/**
|
1160 |
-
* Provides an opportunity for final adjustments to the data used to populate
|
1161 |
-
* the edit-ticket form.
|
1162 |
-
*
|
1163 |
-
* @param array $return data returned to the client
|
1164 |
-
* @param Tribe__Events__Tickets $ticket_object
|
1165 |
-
*/
|
1166 |
-
$return = (array) apply_filters( 'tribe_events_tickets_ajax_ticket_edit', $return, $this );
|
1167 |
-
$this->ajax_ok( $return );
|
1168 |
-
}
|
1169 |
-
|
1170 |
-
/**
|
1171 |
-
* Returns the markup for a notice in the admin
|
1172 |
-
*
|
1173 |
-
* @param string $msg Text for the notice
|
1174 |
-
* @return string Notice with markup
|
1175 |
-
*/
|
1176 |
-
protected function notice( $msg ) {
|
1177 |
-
return sprintf( '<div class="wrap"><div class="updated"><p>%s</p></div></div>', $msg );
|
1178 |
-
}
|
1179 |
-
|
1180 |
-
|
1181 |
-
// end AJAX Handlers
|
1182 |
-
|
1183 |
// start Attendees
|
1184 |
|
1185 |
/**
|
@@ -1355,16 +860,6 @@ if ( ! class_exists( 'Tribe__Tickets__Tickets' ) ) {
|
|
1355 |
return false;
|
1356 |
}
|
1357 |
|
1358 |
-
/**
|
1359 |
-
* Returns whether a class name is a valid active module/provider.
|
1360 |
-
*
|
1361 |
-
* @param string $module class name of module
|
1362 |
-
* @return bool
|
1363 |
-
*/
|
1364 |
-
private function module_is_valid( $module ) {
|
1365 |
-
return array_key_exists( $module, self::modules() );
|
1366 |
-
}
|
1367 |
-
|
1368 |
/**
|
1369 |
* Echos the class for the <tr> in the tickets list admin
|
1370 |
*/
|
@@ -1430,63 +925,6 @@ if ( ! class_exists( 'Tribe__Tickets__Tickets' ) ) {
|
|
1430 |
self::$frontend_ticket_data += $tickets;
|
1431 |
}
|
1432 |
|
1433 |
-
/**
|
1434 |
-
* Check and set global capacity options for the "event" post
|
1435 |
-
*
|
1436 |
-
* @return object ajax success object
|
1437 |
-
*/
|
1438 |
-
public function edit_global_capacity_level() {
|
1439 |
-
$capacity = tribe_get_request_var( 'capacity' );
|
1440 |
-
$post_id = tribe_get_request_var( 'post_ID' );
|
1441 |
-
|
1442 |
-
if ( empty( $post_id ) ) {
|
1443 |
-
return $this->ajax_error( __( 'Missing required post ID.', 'event-tickets' ) );
|
1444 |
-
}
|
1445 |
-
|
1446 |
-
if ( empty( $capacity ) ) {
|
1447 |
-
return $this->ajax_error( __( 'Missing required capacity.', 'event-tickets' ) );
|
1448 |
-
}
|
1449 |
-
|
1450 |
-
if ( ! is_numeric( $capacity ) ) {
|
1451 |
-
if ( 'unlimited' !== strtolower( trim( $capacity ) ) ) {
|
1452 |
-
return $this->ajax_error( __( 'Bad capacity data.', 'event-tickets' ) );
|
1453 |
-
}
|
1454 |
-
|
1455 |
-
$capacity = -1;
|
1456 |
-
}
|
1457 |
-
|
1458 |
-
$event_global_stock = new Tribe__Tickets__Global_Stock( $post_id );
|
1459 |
-
|
1460 |
-
$event_global_stock->enable();
|
1461 |
-
$event_global_stock->set_stock_level( $capacity );
|
1462 |
-
|
1463 |
-
// Only update the Global Capacity of the Event in here or when the first Global Capacity happens
|
1464 |
-
update_post_meta( $post_id, tribe( 'tickets.handler' )->key_capacity, $capacity );
|
1465 |
-
|
1466 |
-
$tickets = self::get_all_event_tickets( $post_id );
|
1467 |
-
foreach ( $tickets as $ticket ) {
|
1468 |
-
// When Global Capacity is higher than local ticket one's we bail
|
1469 |
-
if ( $capacity >= $ticket->capacity ) {
|
1470 |
-
continue;
|
1471 |
-
}
|
1472 |
-
|
1473 |
-
$mode = get_post_meta( $ticket->ID, Tribe__Tickets__Global_Stock::TICKET_STOCK_MODE, true );
|
1474 |
-
|
1475 |
-
// Skip any more that is not event managed
|
1476 |
-
if (
|
1477 |
-
Tribe__Tickets__Global_Stock::GLOBAL_STOCK_MODE !== $mode
|
1478 |
-
&& Tribe__Tickets__Global_Stock::CAPPED_STOCK_MODE !== $mode
|
1479 |
-
) {
|
1480 |
-
continue;
|
1481 |
-
}
|
1482 |
-
|
1483 |
-
// Otherwise we update tickets required
|
1484 |
-
update_post_meta( $ticket->ID, tribe( 'tickets.handler' )->key_capacity, $capacity );
|
1485 |
-
}
|
1486 |
-
|
1487 |
-
return $this->ajax_ok( sprintf( __( 'Global capacity updated. New level set to %n', 'event-tickets' ), $capacity ) );
|
1488 |
-
}
|
1489 |
-
|
1490 |
/**
|
1491 |
* Returns Ticket and RSVP Count for an Event
|
1492 |
*
|
@@ -1676,48 +1114,6 @@ if ( ! class_exists( 'Tribe__Tickets__Tickets' ) ) {
|
|
1676 |
return $tickets;
|
1677 |
}
|
1678 |
|
1679 |
-
/**
|
1680 |
-
* Sets an AJAX error, returns a JSON array and ends the execution.
|
1681 |
-
*
|
1682 |
-
* @param string $message
|
1683 |
-
*/
|
1684 |
-
final protected function ajax_error( $message = '' ) {
|
1685 |
-
header( 'Content-type: application/json' );
|
1686 |
-
|
1687 |
-
echo json_encode(
|
1688 |
-
array(
|
1689 |
-
'success' => false,
|
1690 |
-
'message' => $message,
|
1691 |
-
)
|
1692 |
-
);
|
1693 |
-
exit;
|
1694 |
-
}
|
1695 |
-
|
1696 |
-
/**
|
1697 |
-
* Sets an AJAX response, returns a JSON array and ends the execution.
|
1698 |
-
*
|
1699 |
-
* @param mixed $data
|
1700 |
-
*/
|
1701 |
-
final protected function ajax_ok( $data ) {
|
1702 |
-
$return = array();
|
1703 |
-
if ( is_object( $data ) ) {
|
1704 |
-
$return = get_object_vars( $data );
|
1705 |
-
} elseif ( is_array( $data ) || is_string( $data ) ) {
|
1706 |
-
$return = $data;
|
1707 |
-
} elseif ( is_bool( $data ) && ! $data ) {
|
1708 |
-
$this->ajax_error( 'Something went wrong' );
|
1709 |
-
}
|
1710 |
-
|
1711 |
-
header( 'Content-type: application/json' );
|
1712 |
-
echo json_encode(
|
1713 |
-
array(
|
1714 |
-
'success' => true,
|
1715 |
-
'data' => $return,
|
1716 |
-
)
|
1717 |
-
);
|
1718 |
-
exit;
|
1719 |
-
}
|
1720 |
-
|
1721 |
/**
|
1722 |
* Generates and returns the email template for a group of attendees.
|
1723 |
*
|
@@ -1775,32 +1171,6 @@ if ( ! class_exists( 'Tribe__Tickets__Tickets' ) ) {
|
|
1775 |
return $prices;
|
1776 |
}
|
1777 |
|
1778 |
-
/**
|
1779 |
-
* Tests if the user has the specified capability in relation to whatever post type
|
1780 |
-
* the attendee object relates to.
|
1781 |
-
*
|
1782 |
-
* For example, if the attendee was generated for a ticket set up in relation to a
|
1783 |
-
* post of the banana type, the generic capability "edit_posts" will be mapped to
|
1784 |
-
* "edit_bananas" or whatever is appropriate.
|
1785 |
-
*
|
1786 |
-
* @internal for internal plugin use only (in spite of having public visibility)
|
1787 |
-
*
|
1788 |
-
* @see Tribe__Tickets__Tickets_Handler::user_can()
|
1789 |
-
*
|
1790 |
-
* @param string $generic_cap
|
1791 |
-
* @param int $attendee_id
|
1792 |
-
* @return boolean
|
1793 |
-
*/
|
1794 |
-
public function user_can( $generic_cap, $attendee_id ) {
|
1795 |
-
$post_id = $this->get_event_id_from_attendee_id( $attendee_id );
|
1796 |
-
|
1797 |
-
if ( empty( $post_id ) ) {
|
1798 |
-
return false;
|
1799 |
-
}
|
1800 |
-
|
1801 |
-
return tribe( 'tickets.handler' )->user_can( $generic_cap, $post_id );
|
1802 |
-
}
|
1803 |
-
|
1804 |
/**
|
1805 |
* Given a valid attendee ID, returns the event ID it relates to or else boolean false
|
1806 |
* if it cannot be determined.
|
@@ -2374,5 +1744,164 @@ if ( ! class_exists( 'Tribe__Tickets__Tickets' ) ) {
|
|
2374 |
|
2375 |
return $ticket_form_hook;
|
2376 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2377 |
}
|
2378 |
}
|
294 |
return $query->posts;
|
295 |
}
|
296 |
|
|
|
297 |
/**
|
298 |
* Returns the html for the delete ticket link
|
299 |
*
|
398 |
/**
|
399 |
* Get the controls (move, delete) as a string and add to our ajax return
|
400 |
*
|
401 |
+
* @deprecated TBD
|
402 |
* @since 4.6
|
403 |
*
|
404 |
* @param array $return the ajax return data
|
669 |
* @since 4.6
|
670 |
*/
|
671 |
add_action( 'tribe_events_tickets_metabox_edit_main', array( $this, 'do_metabox_capacity_options' ), 11, 2 );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
672 |
|
673 |
// Front end
|
674 |
$ticket_form_hook = $this->get_ticket_form_hook();
|
685 |
add_filter( 'tribe_events_event_costs', array( $this, 'get_ticket_prices' ), 10, 2 );
|
686 |
}
|
687 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
688 |
// start Attendees
|
689 |
|
690 |
/**
|
860 |
return false;
|
861 |
}
|
862 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
863 |
/**
|
864 |
* Echos the class for the <tr> in the tickets list admin
|
865 |
*/
|
925 |
self::$frontend_ticket_data += $tickets;
|
926 |
}
|
927 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
928 |
/**
|
929 |
* Returns Ticket and RSVP Count for an Event
|
930 |
*
|
1114 |
return $tickets;
|
1115 |
}
|
1116 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1117 |
/**
|
1118 |
* Generates and returns the email template for a group of attendees.
|
1119 |
*
|
1171 |
return $prices;
|
1172 |
}
|
1173 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1174 |
/**
|
1175 |
* Given a valid attendee ID, returns the event ID it relates to or else boolean false
|
1176 |
* if it cannot be determined.
|
1744 |
|
1745 |
return $ticket_form_hook;
|
1746 |
}
|
1747 |
+
|
1748 |
+
/**
|
1749 |
+
* Creates a ticket object and calls the child save_ticket function
|
1750 |
+
*
|
1751 |
+
* @param int $post_id ID of parent "event" post
|
1752 |
+
* @param array $data Raw post data
|
1753 |
+
*
|
1754 |
+
* @return boolean
|
1755 |
+
*/
|
1756 |
+
public function ticket_add( $post_id, $data ) {
|
1757 |
+
$ticket = new Tribe__Tickets__Ticket_Object();
|
1758 |
+
$ticket->ID = isset( $data['ticket_id'] ) ? absint( $data['ticket_id'] ) : null;
|
1759 |
+
$ticket->name = isset( $data['ticket_name'] ) ? esc_html( $data['ticket_name'] ) : null;
|
1760 |
+
$ticket->description = isset( $data['ticket_description'] ) ? esc_html( $data['ticket_description'] ) : null;
|
1761 |
+
$ticket->price = ! empty( $data['ticket_price'] ) ? filter_var( trim( $data['ticket_price'] ), FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION | FILTER_FLAG_ALLOW_THOUSAND ) : 0;
|
1762 |
+
$ticket->purchase_limit = isset( $data['ticket_purchase_limit'] ) ? absint( $data['ticket_purchase_limit'] ) : apply_filters( 'tribe_tickets_default_purchase_limit', 0, $ticket->ID );
|
1763 |
+
$ticket->show_description = isset( $data['ticket_show_description'] ) ? 'yes' : 'no';
|
1764 |
+
$ticket->provider_class = $this->class_name;
|
1765 |
+
$ticket->start_date = null;
|
1766 |
+
$ticket->end_date = null;
|
1767 |
+
|
1768 |
+
tribe( 'tickets.handler' )->toggle_manual_update_flag( true );
|
1769 |
+
|
1770 |
+
if ( ! empty( $ticket->price ) ) {
|
1771 |
+
// remove non-money characters
|
1772 |
+
$ticket->price = preg_replace( '/[^0-9\.\,]/Uis', '', $ticket->price );
|
1773 |
+
}
|
1774 |
+
|
1775 |
+
if ( ! empty( $data['ticket_start_date'] ) ) {
|
1776 |
+
$start_datetime = Tribe__Date_Utils::maybe_format_from_datepicker( $data['ticket_start_date'] );
|
1777 |
+
|
1778 |
+
if ( ! empty( $data['ticket_start_time'] ) ) {
|
1779 |
+
$start_datetime .= ' ' . $data['ticket_start_time'];
|
1780 |
+
}
|
1781 |
+
|
1782 |
+
$ticket->start_date = date( Tribe__Date_Utils::DBDATETIMEFORMAT, strtotime( $start_datetime ) );
|
1783 |
+
}
|
1784 |
+
|
1785 |
+
if ( ! empty( $data['ticket_end_date'] ) ) {
|
1786 |
+
$end_datetime = Tribe__Date_Utils::maybe_format_from_datepicker( $data['ticket_end_date'] );
|
1787 |
+
|
1788 |
+
if ( ! empty( $data['ticket_end_time'] ) ) {
|
1789 |
+
$end_datetime .= ' ' . $data['ticket_end_time'];
|
1790 |
+
}
|
1791 |
+
|
1792 |
+
$ticket->end_date = date( Tribe__Date_Utils::DBDATETIMEFORMAT, strtotime( $end_datetime ) );
|
1793 |
+
}
|
1794 |
+
|
1795 |
+
/**
|
1796 |
+
* Fired once a ticket has been created and added to a post
|
1797 |
+
*
|
1798 |
+
* @param int $post_id ID of parent "event" post
|
1799 |
+
* @param Tribe__Tickets__Ticket_Object $ticket Ticket object
|
1800 |
+
* @param array $data Submitted post data
|
1801 |
+
*/
|
1802 |
+
do_action( 'tribe_tickets_ticket_add', $post_id, $ticket, $data );
|
1803 |
+
|
1804 |
+
// Pass the control to the child object
|
1805 |
+
$save_ticket = $this->save_ticket( $post_id, $ticket, $data );
|
1806 |
+
|
1807 |
+
tribe( 'tickets.handler' )->toggle_manual_update_flag( false );
|
1808 |
+
|
1809 |
+
$post = get_post( $post_id );
|
1810 |
+
if ( empty( $data['ticket_start_date'] ) ) {
|
1811 |
+
// 30 min
|
1812 |
+
$round = 30;
|
1813 |
+
if ( class_exists( 'Tribe__Events__Main' ) ) {
|
1814 |
+
$round = (int) tribe( 'tec.admin.event-meta-box' )->get_timepicker_step( 'start' );
|
1815 |
+
}
|
1816 |
+
// Convert to seconds
|
1817 |
+
$round *= MINUTE_IN_SECONDS;
|
1818 |
+
|
1819 |
+
$date = strtotime( $post->post_date );
|
1820 |
+
$date = round( $date / $round ) * $round;
|
1821 |
+
$date = date( Tribe__Date_Utils::DBDATETIMEFORMAT, $date );
|
1822 |
+
|
1823 |
+
update_post_meta( $ticket->ID, tribe( 'tickets.handler' )->key_start_date, $date );
|
1824 |
+
}
|
1825 |
+
|
1826 |
+
if ( empty( $data['ticket_end_date'] ) && 'tribe_events' === $post->post_type ) {
|
1827 |
+
$event_end = get_post_meta( $post_id, '_EventEndDate', true );
|
1828 |
+
update_post_meta( $ticket->ID, tribe( 'tickets.handler' )->key_end_date, $event_end );
|
1829 |
+
}
|
1830 |
+
|
1831 |
+
tribe( 'tickets.version' )->update( $ticket->ID );
|
1832 |
+
|
1833 |
+
return $save_ticket;
|
1834 |
+
}
|
1835 |
+
|
1836 |
+
|
1837 |
+
/************************
|
1838 |
+
* *
|
1839 |
+
* Deprecated Methods *
|
1840 |
+
* *
|
1841 |
+
************************/
|
1842 |
+
// @codingStandardsIgnoreStart
|
1843 |
+
|
1844 |
+
/**
|
1845 |
+
* Tests if the user has the specified capability in relation to whatever post type
|
1846 |
+
* the attendee object relates to.
|
1847 |
+
*
|
1848 |
+
* For example, if the attendee was generated for a ticket set up in relation to a
|
1849 |
+
* post of the banana type, the generic capability "edit_posts" will be mapped to
|
1850 |
+
* "edit_bananas" or whatever is appropriate.
|
1851 |
+
*
|
1852 |
+
* @internal for internal plugin use only (in spite of having public visibility)
|
1853 |
+
*
|
1854 |
+
* @deprecated TBD
|
1855 |
+
*
|
1856 |
+
* @see tribe( 'tickets.attendees' )->user_can
|
1857 |
+
*
|
1858 |
+
* @param string $generic_cap
|
1859 |
+
* @param int $attendee_id
|
1860 |
+
*
|
1861 |
+
* @return boolean
|
1862 |
+
*/
|
1863 |
+
public function user_can( $generic_cap, $attendee_id ) {
|
1864 |
+
_deprecated_function( __METHOD__, 'TBD', 'tribe( "tickets.metabox" )->user_can( $generic_cap, $attendee_id )' );
|
1865 |
+
return tribe( 'tickets.metabox' )->user_can( $generic_cap, $attendee_id );
|
1866 |
+
}
|
1867 |
+
|
1868 |
+
/**
|
1869 |
+
* Check and set global capacity options for the "event" post
|
1870 |
+
*
|
1871 |
+
* @deprecated TBD
|
1872 |
+
* @since 4.6
|
1873 |
+
*
|
1874 |
+
* @return object ajax success object
|
1875 |
+
*/
|
1876 |
+
public function edit_global_capacity_level() {
|
1877 |
+
_deprecated_function( __METHOD__, 'TBD', 'tribe_tickets_update_capacity' );
|
1878 |
+
}
|
1879 |
+
|
1880 |
+
/**
|
1881 |
+
* Sets an AJAX error, returns a JSON array and ends the execution.
|
1882 |
+
*
|
1883 |
+
* @deprecated TBD
|
1884 |
+
*
|
1885 |
+
* @param string $message
|
1886 |
+
*/
|
1887 |
+
final protected function ajax_error( $message = '' ) {
|
1888 |
+
_deprecated_function( __METHOD__, 'TBD', 'wp_send_json_error()' );
|
1889 |
+
wp_send_json_error( $message );
|
1890 |
+
}
|
1891 |
+
|
1892 |
+
/**
|
1893 |
+
* Sets an AJAX response, returns a JSON array and ends the execution.
|
1894 |
+
*
|
1895 |
+
* @deprecated TBD
|
1896 |
+
*
|
1897 |
+
* @param mixed $data
|
1898 |
+
*/
|
1899 |
+
final protected function ajax_ok( $data ) {
|
1900 |
+
_deprecated_function( __METHOD__, 'TBD', 'wp_send_json_success()' );
|
1901 |
+
wp_send_json_success( $data );
|
1902 |
+
}
|
1903 |
+
|
1904 |
+
// @codingStandardsIgnoreEnd
|
1905 |
+
|
1906 |
}
|
1907 |
}
|
src/Tribe/Tickets_Handler.php
CHANGED
@@ -1,37 +1,16 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
/**
|
4 |
* Handles most actions related to a Ticket or Multiple ones
|
5 |
*/
|
6 |
class Tribe__Tickets__Tickets_Handler {
|
7 |
-
/**
|
8 |
-
* Singleton instance of this class
|
9 |
-
*
|
10 |
-
* @var Tribe__Tickets__Tickets_Handler
|
11 |
-
* @static
|
12 |
-
*/
|
13 |
-
protected static $instance;
|
14 |
-
|
15 |
-
/**
|
16 |
-
* Path to this plugin
|
17 |
-
* @var string
|
18 |
-
*/
|
19 |
-
protected $path;
|
20 |
-
|
21 |
/**
|
22 |
* Post Meta key for the ticket header
|
23 |
-
* @var string
|
24 |
-
*/
|
25 |
-
protected $image_header_field = '_tribe_ticket_header';
|
26 |
-
|
27 |
-
/**
|
28 |
-
* Post Meta key for the ticket order
|
29 |
*
|
30 |
* @since 4.6
|
31 |
*
|
32 |
* @var string
|
33 |
*/
|
34 |
-
|
35 |
|
36 |
/**
|
37 |
* Post Meta key for event ecommerce provider
|
@@ -87,29 +66,6 @@ class Tribe__Tickets__Tickets_Handler {
|
|
87 |
*/
|
88 |
public $key_show_description = '_tribe_ticket_show_description';
|
89 |
|
90 |
-
/**
|
91 |
-
* Slug of the admin page for attendees
|
92 |
-
* @var string
|
93 |
-
*/
|
94 |
-
public static $attendees_slug = 'tickets-attendees';
|
95 |
-
|
96 |
-
/**
|
97 |
-
* @var bool
|
98 |
-
*/
|
99 |
-
protected $should_render_title = true;
|
100 |
-
|
101 |
-
/**
|
102 |
-
* Hook of the admin page for attendees
|
103 |
-
* @var
|
104 |
-
*/
|
105 |
-
private $attendees_page;
|
106 |
-
|
107 |
-
/**
|
108 |
-
* WP_Post_List children for Attendees
|
109 |
-
* @var Tribe__Tickets__Attendees_Table
|
110 |
-
*/
|
111 |
-
private $attendees_table;
|
112 |
-
|
113 |
/**
|
114 |
* String to represent unlimited tickets
|
115 |
* translated in the constructor
|
@@ -128,28 +84,14 @@ class Tribe__Tickets__Tickets_Handler {
|
|
128 |
$this->unlimited_term = __( 'Unlimited', 'event-tickets' );
|
129 |
|
130 |
foreach ( $main->post_types() as $post_type ) {
|
131 |
-
add_action( 'save_post_' . $post_type, array( $this, '
|
132 |
-
add_action( 'save_post_' . $post_type, array( $this, 'save_order' ) );
|
133 |
}
|
134 |
|
135 |
-
add_action( 'admin_menu', array( $this, 'attendees_page_register' ) );
|
136 |
-
add_action( 'tribe_tickets_attendees_event_details_list_top', array( $this, 'event_details_top' ), 20 );
|
137 |
-
add_action( 'tribe_tickets_plus_report_event_details_list_top', array( $this, 'event_details_top' ), 20 );
|
138 |
-
add_action( 'tribe_tickets_attendees_event_details_list_top', array( $this, 'event_action_links' ), 25 );
|
139 |
-
add_action( 'tribe_tickets_plus_report_event_details_list_top', array( $this, 'event_action_links' ), 25 );
|
140 |
-
add_action( 'tribe_events_tickets_attendees_totals_top', array( $this, 'print_checkedin_totals' ), 0 );
|
141 |
-
add_action( 'wp_ajax_tribe-ticket-save-settings', array( $this, 'ajax_handler_save_settings' ) );
|
142 |
-
|
143 |
-
add_filter( 'post_row_actions', array( $this, 'attendees_row_action' ) );
|
144 |
-
add_filter( 'page_row_actions', array( $this, 'attendees_row_action' ) );
|
145 |
-
|
146 |
add_filter( 'get_post_metadata', array( $this, 'filter_capacity_support' ), 15, 3 );
|
147 |
add_filter( 'updated_postmeta', array( $this, 'update_shared_tickets_capacity' ), 15, 4 );
|
148 |
|
149 |
add_filter( 'updated_postmeta', array( $this, 'update_meta_date' ), 15, 4 );
|
150 |
add_action( 'wp_insert_post', array( $this, 'update_start_date' ), 15, 3 );
|
151 |
-
|
152 |
-
$this->path = trailingslashit( dirname( dirname( dirname( __FILE__ ) ) ) );
|
153 |
}
|
154 |
|
155 |
/**
|
@@ -329,6 +271,139 @@ class Tribe__Tickets__Tickets_Handler {
|
|
329 |
return true;
|
330 |
}
|
331 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
332 |
/**
|
333 |
* Gets the Tickets from a Post
|
334 |
*
|
@@ -365,7 +440,10 @@ class Tribe__Tickets__Tickets_Handler {
|
|
365 |
}
|
366 |
|
367 |
/**
|
368 |
-
* On
|
|
|
|
|
|
|
369 |
*
|
370 |
* @since 4.6
|
371 |
*
|
@@ -374,7 +452,7 @@ class Tribe__Tickets__Tickets_Handler {
|
|
374 |
* @param string $meta_key Which meta key we are fetching
|
375 |
* @param int $event_capacity To which value the event Capacity was update to
|
376 |
*
|
377 |
-
* @return
|
378 |
*/
|
379 |
public function update_shared_tickets_capacity( $meta_id, $object_id, $meta_key, $event_capacity ) {
|
380 |
// Bail on non-capacity
|
@@ -389,27 +467,65 @@ class Tribe__Tickets__Tickets_Handler {
|
|
389 |
return false;
|
390 |
}
|
391 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
392 |
$completes = array();
|
|
|
|
|
393 |
$tickets = $this->get_tickets_ids( $object_id );
|
394 |
|
395 |
foreach ( $tickets as $ticket ) {
|
396 |
$mode = get_post_meta( $ticket, Tribe__Tickets__Global_Stock::TICKET_STOCK_MODE, true );
|
397 |
|
398 |
-
|
|
|
|
|
|
|
|
|
399 |
continue;
|
400 |
}
|
401 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
402 |
$totals = $this->get_ticket_totals( $ticket );
|
403 |
$completes[] = $complete = $totals['pending'] + $totals['sold'];
|
404 |
|
405 |
$stock = $event_capacity - $complete;
|
406 |
update_post_meta( $ticket, '_stock', $stock );
|
|
|
|
|
|
|
|
|
|
|
407 |
}
|
408 |
|
409 |
-
//
|
410 |
-
$
|
411 |
-
$
|
412 |
-
|
|
|
413 |
}
|
414 |
|
415 |
/**
|
@@ -502,15 +618,29 @@ class Tribe__Tickets__Tickets_Handler {
|
|
502 |
// In here we deal with Tickets migration from legacy
|
503 |
$mode = get_post_meta( $object->ID, Tribe__Tickets__Global_Stock::TICKET_STOCK_MODE, true );
|
504 |
$totals = $this->get_ticket_totals( $object->ID );
|
|
|
|
|
|
|
|
|
|
|
|
|
505 |
|
506 |
if ( Tribe__Tickets__Global_Stock::CAPPED_STOCK_MODE === $mode ) {
|
507 |
$capacity = (int) trim( get_post_meta( $object->ID, Tribe__Tickets__Global_Stock::TICKET_STOCK_CAP, true ) );
|
508 |
$capacity += $totals['sold'] + $totals['pending'];
|
509 |
-
} elseif ( Tribe__Tickets__Global_Stock::GLOBAL_STOCK_MODE === $mode
|
510 |
// When using Global we don't set a ticket cap
|
511 |
$capacity = null;
|
512 |
-
} elseif ( Tribe__Tickets__Global_Stock::OWN_STOCK_MODE === $mode
|
513 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
514 |
} else {
|
515 |
$capacity = -1;
|
516 |
}
|
@@ -586,6 +716,50 @@ class Tribe__Tickets__Tickets_Handler {
|
|
586 |
return $totals;
|
587 |
}
|
588 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
589 |
/**
|
590 |
* Returns whether a ticket has unlimited capacity
|
591 |
*
|
@@ -651,6 +825,40 @@ class Tribe__Tickets__Tickets_Handler {
|
|
651 |
return Tribe__Tickets__Global_Stock::CAPPED_STOCK_MODE === $mode || Tribe__Tickets__Global_Stock::GLOBAL_STOCK_MODE === $mode;
|
652 |
}
|
653 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
654 |
/**
|
655 |
* Checks if there are any unlimited tickets, optionally by stock mode or ticket type
|
656 |
*
|
@@ -866,942 +1074,611 @@ class Tribe__Tickets__Tickets_Handler {
|
|
866 |
$ticket_list[] = $ticket;
|
867 |
}
|
868 |
|
869 |
-
|
870 |
return $ticket_list;
|
871 |
}
|
872 |
|
873 |
/**
|
874 |
-
*
|
875 |
*
|
876 |
-
* @
|
877 |
-
*/
|
878 |
-
public function event_details_top( $event_id ) {
|
879 |
-
$pto = get_post_type_object( get_post_type( $event_id ) );
|
880 |
-
|
881 |
-
echo '
|
882 |
-
<li class="post-type">
|
883 |
-
<strong>' . esc_html__( 'Post type', 'event-tickets' ) . ': </strong>
|
884 |
-
' . esc_html( $pto->label ) . '
|
885 |
-
</li>
|
886 |
-
';
|
887 |
-
}
|
888 |
-
|
889 |
-
/**
|
890 |
-
* Injects action links into the attendee screen.
|
891 |
*
|
892 |
-
* @
|
893 |
*/
|
894 |
-
public function
|
895 |
-
$action_links = array(
|
896 |
-
'<a href="' . esc_url( get_edit_post_link( $event_id ) ) . '" title="' . esc_attr_x( 'Edit', 'attendee event actions', 'event-tickets' ) . '">' . esc_html_x( 'Edit Event', 'attendee event actions', 'event-tickets' ) . '</a>',
|
897 |
-
'<a href="' . esc_url( get_permalink( $event_id ) ) . '" title="' . esc_attr_x( 'View', 'attendee event actions', 'event-tickets' ) . '">' . esc_html_x( 'View Event', 'attendee event actions', 'event-tickets' ) . '</a>',
|
898 |
-
);
|
899 |
-
|
900 |
/**
|
901 |
-
*
|
902 |
-
*
|
|
|
|
|
|
|
|
|
|
|
903 |
*
|
904 |
-
* @param array $action_links
|
905 |
*/
|
906 |
-
|
907 |
-
|
908 |
-
if ( empty( $action_links ) ) {
|
909 |
-
return;
|
910 |
-
}
|
911 |
-
|
912 |
-
echo wp_kses_post( '<li class="event-actions">' . join( ' | ', $action_links ) . '</li>' );
|
913 |
-
}
|
914 |
-
|
915 |
-
/**
|
916 |
-
* Print Check In Totals at top of Column
|
917 |
-
*/
|
918 |
-
public function print_checkedin_totals() {
|
919 |
-
$total_checked_in = Tribe__Tickets__Main::instance()->attendance_totals()->get_total_checked_in();
|
920 |
-
|
921 |
-
echo '<div class="totals-header"><h3>' . esc_html_x( 'Checked in:', 'attendee summary', 'event-tickets' ) . '</h3> ' . absint( $total_checked_in ) . '</div>';
|
922 |
}
|
923 |
|
924 |
/**
|
925 |
-
*
|
926 |
*
|
927 |
-
*
|
|
|
928 |
*
|
929 |
-
* @
|
|
|
|
|
|
|
|
|
930 |
*/
|
931 |
-
public function
|
932 |
-
|
933 |
|
934 |
-
//
|
935 |
-
if (
|
936 |
-
return
|
937 |
}
|
938 |
|
939 |
-
|
940 |
-
|
941 |
-
// Only proceed if there are tickets.
|
942 |
-
if ( empty( $tickets ) ) {
|
943 |
-
return $actions;
|
944 |
}
|
945 |
|
946 |
-
|
947 |
-
|
948 |
-
|
949 |
-
|
950 |
-
esc_html__( 'See who purchased tickets to this event', 'event-tickets' ),
|
951 |
-
esc_url( $url ),
|
952 |
-
esc_html__( 'Attendees', 'event-tickets' )
|
953 |
-
);
|
954 |
-
|
955 |
-
return $actions;
|
956 |
-
}
|
957 |
|
958 |
-
|
959 |
-
* Registers the Attendees admin page
|
960 |
-
*/
|
961 |
-
public function attendees_page_register() {
|
962 |
-
$cap = 'edit_posts';
|
963 |
-
$event_id = absint( ! empty( $_GET['event_id'] ) && is_numeric( $_GET['event_id'] ) ? $_GET['event_id'] : 0 );
|
964 |
|
965 |
-
if (
|
966 |
-
|
|
|
967 |
|
968 |
-
|
969 |
-
|
970 |
-
}
|
971 |
}
|
972 |
|
973 |
-
$this->
|
974 |
-
|
975 |
-
add_action( 'admin_enqueue_scripts', array( $this, 'attendees_page_load_css_js' ) );
|
976 |
-
add_action( 'admin_enqueue_scripts', array( $this, 'attendees_page_load_pointers' ) );
|
977 |
-
add_action( 'load-' . $this->attendees_page, array( $this, 'attendees_page_screen_setup' ) );
|
978 |
|
979 |
/**
|
980 |
-
*
|
981 |
*
|
982 |
-
* @
|
983 |
-
*
|
|
|
984 |
*/
|
985 |
-
|
986 |
}
|
987 |
|
988 |
/**
|
989 |
-
*
|
990 |
*
|
991 |
-
* @
|
992 |
*
|
993 |
-
* @param
|
|
|
|
|
|
|
994 |
*/
|
995 |
-
public function
|
996 |
-
|
997 |
-
|
998 |
-
|
999 |
-
* @param array array( $this->attendees_page ) an array of admin slugs
|
1000 |
-
*/
|
1001 |
-
if ( ! in_array( $hook, apply_filters( 'tribe_filter_attendee_page_slug', array( $this->attendees_page ) ) ) ) {
|
1002 |
-
return;
|
1003 |
}
|
1004 |
|
1005 |
-
|
1006 |
-
|
1007 |
-
wp_enqueue_style( self::$attendees_slug, $resources_url . '/css/tickets-attendees.css', array(), Tribe__Tickets__Main::instance()->css_version() );
|
1008 |
-
wp_enqueue_style( self::$attendees_slug . '-print', $resources_url . '/css/tickets-attendees-print.css', array(), Tribe__Tickets__Main::instance()->css_version(), 'print' );
|
1009 |
-
wp_enqueue_script( self::$attendees_slug, $resources_url . '/js/tickets-attendees.js', array( 'jquery' ), Tribe__Tickets__Main::instance()->js_version() );
|
1010 |
-
|
1011 |
-
add_thickbox();
|
1012 |
-
|
1013 |
-
$mail_data = array(
|
1014 |
-
'nonce' => wp_create_nonce( 'email-attendee-list' ),
|
1015 |
-
'required' => esc_html__( 'You need to select a user or type a valid email address', 'event-tickets' ),
|
1016 |
-
'sending' => esc_html__( 'Sending...', 'event-tickets' ),
|
1017 |
-
'checkin_nonce' => wp_create_nonce( 'checkin' ),
|
1018 |
-
'uncheckin_nonce' => wp_create_nonce( 'uncheckin' ),
|
1019 |
-
'cannot_move' => esc_html__( 'You must first select one or more tickets before you can move them!', 'event-tickets' ),
|
1020 |
-
'move_url' => add_query_arg( array(
|
1021 |
-
'dialog' => Tribe__Tickets__Main::instance()->move_tickets()->dialog_name(),
|
1022 |
-
'check' => wp_create_nonce( 'move_tickets' ),
|
1023 |
-
'TB_iframe' => 'true',
|
1024 |
-
) ),
|
1025 |
-
);
|
1026 |
-
|
1027 |
-
wp_localize_script( self::$attendees_slug, 'Attendees', $mail_data );
|
1028 |
-
}
|
1029 |
-
|
1030 |
-
/**
|
1031 |
-
* Loads the WP-Pointer for the Attendees screen
|
1032 |
-
*
|
1033 |
-
* @param $hook
|
1034 |
-
*/
|
1035 |
-
public function attendees_page_load_pointers( $hook ) {
|
1036 |
-
if ( $hook != $this->attendees_page ) {
|
1037 |
-
return;
|
1038 |
}
|
1039 |
|
1040 |
-
|
1041 |
-
$
|
|
|
|
|
1042 |
|
1043 |
-
|
1044 |
-
|
1045 |
-
|
1046 |
-
'target' => '#screen-options-link-wrap',
|
1047 |
-
'options' => array(
|
1048 |
-
'content' => sprintf( '<h3> %s </h3> <p> %s </p>', esc_html__( 'Columns', 'event-tickets' ), esc_html__( 'You can use Screen Options to select which columns you want to see. The selection works in the table below, in the email, for print and for the CSV export.', 'event-tickets' ) ),
|
1049 |
-
'position' => array( 'edge' => 'top', 'align' => 'right' ),
|
1050 |
-
),
|
1051 |
-
);
|
1052 |
-
wp_enqueue_script( 'wp-pointer' );
|
1053 |
-
wp_enqueue_style( 'wp-pointer' );
|
1054 |
}
|
1055 |
|
1056 |
-
|
1057 |
-
|
|
|
1058 |
|
1059 |
-
|
1060 |
-
|
1061 |
-
*/
|
1062 |
-
public function attendees_page_screen_setup() {
|
1063 |
-
/* There's no reason for attendee screen setup to happen twice, but because
|
1064 |
-
* of a fix for bug #46198 it can indeed be called twice in the same request.
|
1065 |
-
* This flag variable is used to workaround that.
|
1066 |
*
|
1067 |
-
* @
|
1068 |
-
* @see https://central.tri.be/issues/46198
|
1069 |
*
|
1070 |
-
* @
|
1071 |
*/
|
1072 |
-
|
1073 |
|
1074 |
-
if (
|
1075 |
-
|
1076 |
}
|
1077 |
|
1078 |
-
$
|
1079 |
-
|
1080 |
-
|
1081 |
-
|
1082 |
-
*
|
1083 |
-
* @see https://central.tri.be/issues/46198
|
1084 |
-
* @todo remove this
|
1085 |
-
*/
|
1086 |
-
if ( current_filter() === 'admin_init' ) {
|
1087 |
-
$this->attendees_page_load_css_js( $this->attendees_page );
|
1088 |
-
|
1089 |
-
$GLOBALS['current_screen'] = WP_Screen::get( $this->attendees_page );
|
1090 |
}
|
1091 |
|
1092 |
-
|
1093 |
-
|
1094 |
-
|
1095 |
-
|
1096 |
-
iframe_header();
|
1097 |
-
|
1098 |
-
// Check if we need to send an Email!
|
1099 |
-
if ( isset( $_POST['tribe-send-email'] ) && $_POST['tribe-send-email'] ) {
|
1100 |
-
$status = $this->send_attendee_mail_list();
|
1101 |
-
} else {
|
1102 |
-
$status = false;
|
1103 |
-
}
|
1104 |
-
|
1105 |
-
$which_tmpl = sanitize_file_name( $_GET['action'] );
|
1106 |
-
include $this->path . 'src/admin-views/attendees-' . $which_tmpl . '.php';
|
1107 |
-
|
1108 |
-
// Use iFrame Footer -- WP Method
|
1109 |
-
iframe_footer();
|
1110 |
|
1111 |
-
|
1112 |
-
|
|
|
1113 |
} else {
|
1114 |
-
$this->
|
1115 |
-
|
1116 |
-
$this->maybe_generate_attendees_csv();
|
1117 |
-
|
1118 |
-
add_filter( 'admin_title', array( $this, 'attendees_admin_title' ), 10, 2 );
|
1119 |
-
add_filter( 'admin_body_class', array( $this, 'attendees_admin_body_class' ) );
|
1120 |
}
|
1121 |
}
|
1122 |
|
1123 |
-
public function attendees_admin_body_class( $body_classes ) {
|
1124 |
-
return $body_classes . ' plugins-php';
|
1125 |
-
}
|
1126 |
-
|
1127 |
/**
|
1128 |
-
*
|
1129 |
-
* Uses the event title.
|
1130 |
-
*
|
1131 |
-
* @param $admin_title
|
1132 |
-
* @param $unused_title
|
1133 |
*
|
1134 |
-
* @
|
1135 |
-
*/
|
1136 |
-
public function attendees_admin_title( $admin_title, $unused_title ) {
|
1137 |
-
if ( ! empty( $_GET['event_id'] ) ) {
|
1138 |
-
$event = get_post( $_GET['event_id'] );
|
1139 |
-
$admin_title = sprintf( '%s - Attendee list', $event->post_title );
|
1140 |
-
}
|
1141 |
-
|
1142 |
-
return $admin_title;
|
1143 |
-
}
|
1144 |
-
|
1145 |
-
/**
|
1146 |
-
* Renders the Attendees page
|
1147 |
-
*/
|
1148 |
-
public function attendees_page_inside() {
|
1149 |
-
/**
|
1150 |
-
* Fires immediately before the content of the attendees screen
|
1151 |
-
* is rendered.
|
1152 |
-
*
|
1153 |
-
* @param $this Tribe__Tickets__Tickets_Handler The current ticket handler instance.
|
1154 |
-
*/
|
1155 |
-
do_action( 'tribe_tickets_attendees_page_inside', $this );
|
1156 |
-
|
1157 |
-
include $this->path . 'src/admin-views/attendees.php';
|
1158 |
-
}
|
1159 |
-
|
1160 |
-
/**
|
1161 |
-
* Generates a list of attendees taking into account the Screen Options.
|
1162 |
-
* It's used both for the Email functionality, as for the CSV export.
|
1163 |
*
|
1164 |
-
* @param $
|
1165 |
*
|
1166 |
-
* @return array
|
1167 |
*/
|
1168 |
-
|
1169 |
-
|
1170 |
-
* Fire immediately prior to the generation of a filtered (exportable) attendee list.
|
1171 |
-
*
|
1172 |
-
* @param int $event_id
|
1173 |
-
*/
|
1174 |
-
do_action( 'tribe_events_tickets_generate_filtered_attendees_list', $event_id );
|
1175 |
|
1176 |
-
|
1177 |
-
|
|
|
1178 |
}
|
1179 |
|
1180 |
-
|
1181 |
-
|
1182 |
-
add_filter( $filter_name, array( $this->attendees_table, 'get_columns' ), 15 );
|
1183 |
-
|
1184 |
-
$items = Tribe__Tickets__Tickets::get_event_attendees( $event_id );
|
1185 |
-
|
1186 |
-
//Add Handler for Community Tickets to Prevent Notices in Exports
|
1187 |
-
if ( ! is_admin() ) {
|
1188 |
-
$columns = apply_filters( $filter_name, array() );
|
1189 |
-
} else {
|
1190 |
-
$columns = array_map( 'wp_strip_all_tags', get_column_headers( get_current_screen() ) );
|
1191 |
}
|
1192 |
|
1193 |
-
//
|
1194 |
-
|
1195 |
-
|
1196 |
-
|
1197 |
-
'provider',
|
1198 |
-
'purchaser',
|
1199 |
-
'status',
|
1200 |
-
) );
|
1201 |
-
|
1202 |
-
$hidden = array_flip( $hidden );
|
1203 |
-
$export_columns = array_diff_key( $columns, $hidden );
|
1204 |
-
|
1205 |
-
// Add additional expected columns
|
1206 |
-
$export_columns['order_id'] = esc_html_x( 'Order ID', 'attendee export', 'event-tickets' );
|
1207 |
-
$export_columns['order_status_label'] = esc_html_x( 'Order Status', 'attendee export', 'event-tickets' );
|
1208 |
-
$export_columns['attendee_id'] = esc_html_x( 'Ticket #', 'attendee export', 'event-tickets' );
|
1209 |
-
$export_columns['purchaser_name'] = esc_html_x( 'Customer Name', 'attendee export', 'event-tickets' );
|
1210 |
-
$export_columns['purchaser_email'] = esc_html_x( 'Customer Email Address', 'attendee export', 'event-tickets' );
|
1211 |
-
|
1212 |
-
/**
|
1213 |
-
* Used to modify what columns should be shown on the CSV export
|
1214 |
-
* The column name should be the Array Index and the Header is the array Value
|
1215 |
-
*
|
1216 |
-
* @param array Columns, associative array
|
1217 |
-
* @param array Items to be exported
|
1218 |
-
* @param int Event ID
|
1219 |
-
*/
|
1220 |
-
$export_columns = apply_filters( 'tribe_events_tickets_attendees_csv_export_columns', $export_columns, $items, $event_id );
|
1221 |
-
|
1222 |
-
// Add the export column headers as the first row
|
1223 |
-
$rows = array(
|
1224 |
-
array_values( $export_columns ),
|
1225 |
-
);
|
1226 |
-
|
1227 |
-
foreach ( $items as $single_item ) {
|
1228 |
-
// Fresh row!
|
1229 |
-
$row = array();
|
1230 |
-
|
1231 |
-
foreach ( $export_columns as $column_id => $column_name ) {
|
1232 |
-
// If additional columns have been added to the attendee list table we can obtain the
|
1233 |
-
// values by calling the table object's column_default() method - any other values
|
1234 |
-
// should simply be passed back unmodified
|
1235 |
-
$row[ $column_id ] = $this->attendees_table->column_default( $single_item, $column_id );
|
1236 |
|
1237 |
-
|
1238 |
-
|
1239 |
-
|
1240 |
-
|
1241 |
|
1242 |
-
|
1243 |
-
|
1244 |
-
|
1245 |
-
$ticket_unique_id = get_post_meta( $single_item[ $column_id ], '_unique_id', true );
|
1246 |
-
$ticket_unique_id = $ticket_unique_id === '' ? $single_item[ $column_id ] : $ticket_unique_id;
|
1247 |
-
$row[ $column_id ] = esc_html( $ticket_unique_id );
|
1248 |
-
}
|
1249 |
-
}
|
1250 |
|
1251 |
-
|
1252 |
-
|
1253 |
-
|
1254 |
-
$row[ $column_id ] = str_replace( array( "\r", "\n" ), ' ', $row[ $column_id ] );
|
1255 |
}
|
1256 |
|
1257 |
-
$
|
|
|
|
|
|
|
|
|
|
|
1258 |
}
|
1259 |
|
1260 |
-
|
|
|
1261 |
}
|
1262 |
|
1263 |
/**
|
1264 |
-
*
|
1265 |
-
*
|
|
|
|
|
|
|
|
|
|
|
|
|
1266 |
*/
|
1267 |
-
|
1268 |
-
|
1269 |
-
return;
|
1270 |
-
}
|
1271 |
-
|
1272 |
-
if ( ! wp_verify_nonce( $_GET['attendees_csv_nonce'], 'attendees_csv_nonce' ) || ! $this->user_can( 'edit_posts', $_GET['event_id'] ) ) {
|
1273 |
-
return;
|
1274 |
-
}
|
1275 |
-
|
1276 |
-
/**
|
1277 |
-
* Allow for filtering and modifying the list of attendees that will be exported via CSV for a given event.
|
1278 |
-
*
|
1279 |
-
* @param array $items The array of attendees that will be exported in this CSV file.
|
1280 |
-
* @param int $event_id The ID of the event these attendees are associated with.
|
1281 |
-
*/
|
1282 |
-
$items = apply_filters( 'tribe_events_tickets_attendees_csv_items', $this->generate_filtered_attendees_list( $_GET['event_id'] ), $_GET['event_id'] );
|
1283 |
-
$event = get_post( $_GET['event_id'] );
|
1284 |
-
|
1285 |
-
if ( ! empty( $items ) ) {
|
1286 |
-
$charset = get_option( 'blog_charset' );
|
1287 |
-
$filename = sanitize_file_name( $event->post_title . '-' . __( 'attendees', 'event-tickets' ) );
|
1288 |
-
|
1289 |
-
// output headers so that the file is downloaded rather than displayed
|
1290 |
-
header( "Content-Type: text/csv; charset=$charset" );
|
1291 |
-
header( "Content-Disposition: attachment; filename=$filename.csv" );
|
1292 |
-
|
1293 |
-
// create a file pointer connected to the output stream
|
1294 |
-
$output = fopen( 'php://output', 'w' );
|
1295 |
-
|
1296 |
-
//And echo the data
|
1297 |
-
foreach ( $items as $item ) {
|
1298 |
-
fputcsv( $output, $item );
|
1299 |
-
}
|
1300 |
-
|
1301 |
-
fclose( $output );
|
1302 |
-
exit;
|
1303 |
-
}
|
1304 |
}
|
1305 |
|
1306 |
/**
|
1307 |
-
*
|
|
|
|
|
|
|
|
|
|
|
|
|
1308 |
*/
|
1309 |
-
public function
|
1310 |
-
$
|
1311 |
-
|
1312 |
-
|
1313 |
-
$
|
1314 |
-
|
1315 |
-
return $error;
|
1316 |
-
}
|
1317 |
-
|
1318 |
-
$cap = 'edit_posts';
|
1319 |
-
$event_id = absint( ! empty( $_GET['event_id'] ) && is_numeric( $_GET['event_id'] ) ? $_GET['event_id'] : 0 );
|
1320 |
-
|
1321 |
-
if ( ! current_user_can( 'edit_posts' ) && $event_id ) {
|
1322 |
-
$event = get_post( $event_id );
|
1323 |
-
|
1324 |
-
if ( $event instanceof WP_Post && get_current_user_id() === (int) $event->post_author ) {
|
1325 |
-
$cap = 'read';
|
1326 |
-
}
|
1327 |
-
}
|
1328 |
-
|
1329 |
-
if ( empty( $_POST['_wpnonce'] ) || ! wp_verify_nonce( $_POST['_wpnonce'], 'email-attendees-list' ) || ! $this->user_can( $cap, $_GET['event_id'] ) ) {
|
1330 |
-
$error->add( 'nonce-fail', esc_html__( 'Cheatin Huh?', 'event-tickets' ), array( 'type' => 'general' ) );
|
1331 |
-
|
1332 |
-
return $error;
|
1333 |
-
}
|
1334 |
-
|
1335 |
-
if ( empty( $_POST['email_to_address'] ) && ( empty( $_POST['email_to_user'] ) || 0 >= (int) $_POST['email_to_user'] ) ) {
|
1336 |
-
$error->add( 'empty-fields', esc_html__( 'Empty user and email', 'event-tickets' ), array( 'type' => 'general' ) );
|
1337 |
-
|
1338 |
-
return $error;
|
1339 |
-
}
|
1340 |
-
|
1341 |
-
if ( ! empty( $_POST['email_to_address'] ) ) {
|
1342 |
-
$type = 'email';
|
1343 |
-
} else {
|
1344 |
-
$type = 'user';
|
1345 |
-
}
|
1346 |
-
|
1347 |
-
if ( 'email' === $type && ! is_email( $_POST['email_to_address'] ) ) {
|
1348 |
-
$error->add( 'invalid-email', esc_html__( 'Invalid Email', 'event-tickets' ), array( 'type' => $type ) );
|
1349 |
-
|
1350 |
-
return $error;
|
1351 |
-
}
|
1352 |
-
|
1353 |
-
if ( 'user' === $type && ! is_numeric( $_POST['email_to_user'] ) ) {
|
1354 |
-
$error->add( 'invalid-user', esc_html__( 'Invalid User ID', 'event-tickets' ), array( 'type' => $type ) );
|
1355 |
-
|
1356 |
-
return $error;
|
1357 |
-
}
|
1358 |
-
|
1359 |
-
/**
|
1360 |
-
* Now we know we have valid data
|
1361 |
-
*/
|
1362 |
-
|
1363 |
-
if ( 'email' === $type ) {
|
1364 |
-
// We already check this variable so, no harm here
|
1365 |
-
$email = $_POST['email_to_address'];
|
1366 |
-
} else {
|
1367 |
-
$user = get_user_by( 'id', $_POST['email_to_user'] );
|
1368 |
-
|
1369 |
-
if ( ! is_object( $user ) ) {
|
1370 |
-
$error->add( 'invalid-user', esc_html__( 'Invalid User ID', 'event-tickets' ), array( 'type' => $type ) );
|
1371 |
-
|
1372 |
-
return $error;
|
1373 |
-
}
|
1374 |
-
|
1375 |
-
$email = $user->data->user_email;
|
1376 |
}
|
1377 |
|
1378 |
-
$this
|
1379 |
-
|
1380 |
-
$items = $this->generate_filtered_attendees_list( $_GET['event_id'] );
|
1381 |
-
|
1382 |
-
$event = get_post( $_GET['event_id'] );
|
1383 |
-
|
1384 |
-
ob_start();
|
1385 |
-
$attendee_tpl = Tribe__Tickets__Templates::get_template_hierarchy( 'tickets/attendees-email.php', array( 'disable_view_check' => true ) );
|
1386 |
-
include $attendee_tpl;
|
1387 |
-
$content = ob_get_clean();
|
1388 |
-
|
1389 |
-
add_filter( 'wp_mail_content_type', array( $this, 'set_contenttype' ) );
|
1390 |
|
1391 |
-
|
1392 |
-
|
1393 |
|
1394 |
-
|
1395 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
1396 |
|
1397 |
-
|
|
|
|
|
|
|
|
|
|
|
1398 |
|
1399 |
-
|
1400 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
1401 |
|
1402 |
/**
|
1403 |
-
*
|
1404 |
-
* Allows for sending an HTML email.
|
1405 |
*
|
1406 |
-
* @
|
1407 |
*
|
1408 |
-
* @
|
1409 |
*/
|
1410 |
-
public function
|
1411 |
-
|
1412 |
}
|
1413 |
|
1414 |
/**
|
1415 |
-
*
|
1416 |
-
* the ticket relates to.
|
1417 |
*
|
1418 |
-
*
|
1419 |
-
* "edit_posts" will be mapped to "edit_bananas" or whatever is appropriate.
|
1420 |
*
|
1421 |
-
* @
|
1422 |
-
*
|
1423 |
-
* @param string $generic_cap
|
1424 |
-
* @param int $event_id
|
1425 |
-
* @return boolean
|
1426 |
*/
|
1427 |
-
public function
|
1428 |
-
|
1429 |
-
|
1430 |
-
// It's possible we'll get null back
|
1431 |
-
if ( null === $type ) {
|
1432 |
-
return false;
|
1433 |
-
}
|
1434 |
-
|
1435 |
-
$type_config = get_post_type_object( $type );
|
1436 |
-
|
1437 |
-
if ( ! empty( $type_config->cap->{$generic_cap} ) ) {
|
1438 |
-
return current_user_can( $type_config->cap->{$generic_cap} );
|
1439 |
-
}
|
1440 |
|
1441 |
-
return false;
|
1442 |
}
|
1443 |
|
1444 |
-
/* Tickets Metabox */
|
1445 |
-
|
1446 |
/**
|
1447 |
* Includes the tickets metabox inside the Event edit screen
|
1448 |
*
|
1449 |
-
* @
|
|
|
|
|
|
|
|
|
1450 |
*/
|
1451 |
public function do_meta_box( $post ) {
|
1452 |
-
|
1453 |
-
|
1454 |
-
|
1455 |
-
$end_time = Tribe__Date_Utils::time_only( $start_date, false );
|
1456 |
-
|
1457 |
-
$show_global_stock = Tribe__Tickets__Tickets::global_stock_available();
|
1458 |
-
$tickets = Tribe__Tickets__Tickets::get_event_tickets( $post->ID );
|
1459 |
-
$global_stock = new Tribe__Tickets__Global_Stock( $post->ID );
|
1460 |
|
1461 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1462 |
}
|
1463 |
|
1464 |
/**
|
1465 |
* Render the ticket row into the ticket table
|
1466 |
*
|
|
|
|
|
1467 |
* @since 4.6
|
1468 |
*
|
1469 |
* @param Tribe__Tickets__Ticket_Object $ticket
|
1470 |
*/
|
1471 |
public function render_ticket_row( $ticket ) {
|
1472 |
-
|
1473 |
-
|
1474 |
-
|
1475 |
-
$available = $ticket->available();
|
1476 |
-
$capacity = $ticket->capacity();
|
1477 |
-
$stock = $ticket->stock();
|
1478 |
-
$needs_warning = false;
|
1479 |
-
$mode = $ticket->global_stock_mode();
|
1480 |
-
$event = $ticket->get_event();
|
1481 |
-
|
1482 |
-
// If we don't have an event we should even continue
|
1483 |
-
if ( ! $event ) {
|
1484 |
-
return;
|
1485 |
-
}
|
1486 |
-
|
1487 |
-
if (
|
1488 |
-
'Tribe__Tickets_Plus__Commerce__WooCommerce__Main' === $ticket->provider_class
|
1489 |
-
&& -1 !== $capacity
|
1490 |
-
) {
|
1491 |
-
$product = wc_get_product( $ticket->ID );
|
1492 |
-
$shared_stock = new Tribe__Tickets__Global_Stock( $event->ID );
|
1493 |
-
$needs_warning = (int) $inventory !== (int) $stock;
|
1494 |
|
1495 |
-
|
1496 |
-
|
1497 |
-
|
1498 |
-
|
1499 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1500 |
|
1501 |
-
|
1502 |
-
|
1503 |
-
|
1504 |
-
|
1505 |
-
|
1506 |
-
|
1507 |
-
|
1508 |
-
|
1509 |
-
|
1510 |
-
|
1511 |
-
|
1512 |
-
|
1513 |
-
</td>
|
1514 |
-
|
1515 |
-
<?php
|
1516 |
-
/**
|
1517 |
-
* Allows for the insertion of additional content into the main ticket admin panel after the tickets listing
|
1518 |
-
*
|
1519 |
-
* @since 4.6
|
1520 |
-
*
|
1521 |
-
* @param Tribe__Tickets__Ticket_Object $ticket
|
1522 |
-
* @param obj ecommerce provider object
|
1523 |
-
*/
|
1524 |
-
do_action( 'tribe_events_tickets_ticket_table_add_tbody_column', $ticket, $provider_obj );
|
1525 |
-
?>
|
1526 |
-
|
1527 |
-
<td class="ticket_capacity">
|
1528 |
-
<span class='tribe-mobile-only'><?php esc_html_e( 'Capacity:', 'event-tickets' ); ?></span>
|
1529 |
-
<?php tribe_tickets_get_readable_amount( $capacity, $mode, true ); ?>
|
1530 |
-
</td>
|
1531 |
-
|
1532 |
-
<td class="ticket_available">
|
1533 |
-
<span class='tribe-mobile-only'><?php esc_html_e( 'Available:', 'event-tickets' ); ?></span>
|
1534 |
-
<?php if ( $needs_warning ) : ?>
|
1535 |
-
<span class="dashicons dashicons-warning required" title="<?php esc_attr_e( 'The number of Complete ticket sales does not match the number of attendees. Please check the Attendees list and adjust ticket stock in WooCommerce as needed.', 'event-tickets' ) ?>"></span>
|
1536 |
-
<?php endif; ?>
|
1537 |
-
|
1538 |
-
<?php tribe_tickets_get_readable_amount( $available, $mode, true ); ?>
|
1539 |
-
</td>
|
1540 |
-
|
1541 |
-
<td class="ticket_edit">
|
1542 |
-
<?php
|
1543 |
-
printf(
|
1544 |
-
"<button data-provider='%s' data-ticket-id='%s' title='%s' class='ticket_edit_button'><span class='ticket_edit_text'>%s</span></a>",
|
1545 |
-
esc_attr( $ticket->provider_class ),
|
1546 |
-
esc_attr( $ticket->ID ),
|
1547 |
-
esc_attr( sprintf( __( '( Ticket ID: %d )', 'tribe-tickets' ), $ticket->ID ) ),
|
1548 |
-
esc_html( $ticket->name )
|
1549 |
-
);
|
1550 |
-
?>
|
1551 |
-
</td>
|
1552 |
-
</tr>
|
1553 |
-
<?php
|
1554 |
}
|
1555 |
|
1556 |
/**
|
1557 |
* Echoes the markup for the tickets list in the tickets metabox
|
1558 |
*
|
1559 |
-
* @
|
|
|
|
|
1560 |
* @param array $tickets
|
1561 |
*/
|
1562 |
-
public function ticket_list_markup( $
|
1563 |
-
|
1564 |
-
|
1565 |
-
|
1566 |
}
|
1567 |
|
1568 |
/**
|
1569 |
* Returns the markup for the tickets list in the tickets metabox
|
1570 |
*
|
|
|
|
|
1571 |
* @param array $tickets
|
1572 |
*
|
1573 |
* @return string
|
1574 |
*/
|
1575 |
public function get_ticket_list_markup( $tickets = array() ) {
|
1576 |
-
|
1577 |
-
$this->ticket_list_markup( null, $tickets );
|
1578 |
-
$return = ob_get_clean();
|
1579 |
|
1580 |
-
return $
|
1581 |
}
|
1582 |
|
1583 |
/**
|
1584 |
-
*
|
1585 |
*
|
1586 |
-
* @
|
1587 |
*
|
1588 |
-
* @
|
1589 |
*/
|
1590 |
-
public function
|
1591 |
-
|
1592 |
-
|
1593 |
-
$return = ob_get_clean();
|
1594 |
-
|
1595 |
-
return $return;
|
1596 |
}
|
1597 |
|
1598 |
/**
|
1599 |
-
* Returns the
|
1600 |
*
|
1601 |
-
* @
|
1602 |
*
|
1603 |
-
* @return
|
1604 |
*/
|
1605 |
-
public function
|
1606 |
-
|
1607 |
-
|
1608 |
-
$return = ob_get_clean();
|
1609 |
-
|
1610 |
-
return $return;
|
1611 |
}
|
1612 |
|
1613 |
/**
|
1614 |
-
*
|
1615 |
*
|
1616 |
-
* @
|
1617 |
*
|
1618 |
-
* @return mixed
|
1619 |
*/
|
1620 |
-
public function
|
1621 |
-
|
|
|
1622 |
}
|
1623 |
|
1624 |
/**
|
1625 |
-
*
|
1626 |
*
|
1627 |
-
* @
|
|
|
|
|
|
|
|
|
1628 |
*/
|
1629 |
-
public function
|
1630 |
-
|
1631 |
-
|
1632 |
-
}
|
1633 |
-
|
1634 |
-
// don't do anything on autosave or auto-draft either or massupdates
|
1635 |
-
if ( wp_is_post_autosave( $post_id ) || wp_is_post_revision( $post_id ) ) {
|
1636 |
-
return;
|
1637 |
-
}
|
1638 |
-
|
1639 |
-
if ( empty( $_POST['tribe_ticket_header_image_id'] ) ) {
|
1640 |
-
delete_post_meta( $post_id, $this->image_header_field );
|
1641 |
-
} else {
|
1642 |
-
update_post_meta( $post_id, $this->image_header_field, $_POST['tribe_ticket_header_image_id'] );
|
1643 |
-
}
|
1644 |
-
|
1645 |
-
return;
|
1646 |
}
|
1647 |
|
1648 |
/**
|
1649 |
-
*
|
1650 |
*
|
1651 |
-
* @
|
1652 |
*
|
1653 |
-
* @param
|
1654 |
*
|
|
|
1655 |
*/
|
1656 |
-
public function
|
1657 |
-
|
1658 |
-
|
1659 |
-
|
1660 |
-
if ( wp_is_post_autosave( $post ) || wp_is_post_revision( $post ) ) {
|
1661 |
-
return false;
|
1662 |
-
}
|
1663 |
-
|
1664 |
-
if ( ! $post instanceof WP_Post ) {
|
1665 |
-
$post = get_post( $post );
|
1666 |
-
}
|
1667 |
-
|
1668 |
-
// Bail on Invalid post
|
1669 |
-
if ( ! $post instanceof WP_Post ) {
|
1670 |
-
return false;
|
1671 |
-
}
|
1672 |
|
1673 |
-
|
1674 |
-
|
1675 |
-
|
1676 |
-
|
|
|
|
|
|
|
1677 |
|
1678 |
-
|
1679 |
-
|
1680 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1681 |
|
1682 |
-
|
1683 |
-
|
1684 |
-
|
1685 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1686 |
|
1687 |
-
|
1688 |
-
|
1689 |
-
|
1690 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
1691 |
|
1692 |
-
|
1693 |
-
|
|
|
|
|
|
|
|
|
|
|
1694 |
|
1695 |
-
|
1696 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1697 |
}
|
1698 |
|
1699 |
-
|
1700 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
1701 |
}
|
1702 |
|
1703 |
/**
|
1704 |
-
*
|
|
|
1705 |
*
|
1706 |
-
* @
|
1707 |
*
|
1708 |
-
* @param
|
1709 |
*
|
1710 |
-
* @return array
|
1711 |
*/
|
1712 |
-
|
1713 |
-
|
1714 |
-
// make sure they are ordered correctly
|
1715 |
-
$orderpost = get_post( $ticket->ID );
|
1716 |
-
$ticket->menu_order = $orderpost->menu_order;
|
1717 |
-
}
|
1718 |
|
1719 |
-
|
|
|
1720 |
|
1721 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1722 |
}
|
1723 |
|
1724 |
/**
|
1725 |
-
*
|
1726 |
*
|
1727 |
-
* @
|
1728 |
*/
|
1729 |
-
public
|
1730 |
-
|
|
|
1731 |
}
|
1732 |
|
1733 |
/**
|
1734 |
-
*
|
1735 |
*
|
1736 |
-
* @
|
1737 |
*/
|
1738 |
-
public function
|
1739 |
-
|
|
|
1740 |
}
|
1741 |
|
1742 |
/**
|
1743 |
-
*
|
1744 |
*
|
1745 |
-
* @
|
1746 |
*/
|
1747 |
-
public function
|
1748 |
-
|
|
|
1749 |
}
|
1750 |
|
1751 |
/**
|
1752 |
-
*
|
|
|
1753 |
*
|
1754 |
-
* @
|
|
|
|
|
1755 |
*
|
1756 |
* @return string
|
1757 |
*/
|
1758 |
-
public function
|
1759 |
-
|
1760 |
-
'post_type' => $post->post_type,
|
1761 |
-
'page' => self::$attendees_slug,
|
1762 |
-
'event_id' => $post->ID,
|
1763 |
-
), admin_url( 'edit.php' ) );
|
1764 |
-
|
1765 |
-
return $url;
|
1766 |
}
|
1767 |
|
1768 |
/**
|
1769 |
-
*
|
|
|
1770 |
*
|
1771 |
-
*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1772 |
*/
|
1773 |
-
public function
|
1774 |
-
|
1775 |
-
$id = absint( $_POST['post_ID'] );
|
1776 |
-
$params = wp_parse_args( $_POST['formdata'], $params );
|
1777 |
-
|
1778 |
-
/**
|
1779 |
-
* Allow other plugins to hook into this to add settings
|
1780 |
-
*
|
1781 |
-
* @since 4.6
|
1782 |
-
*
|
1783 |
-
* @param array $params the array of parameters to filter
|
1784 |
-
*/
|
1785 |
-
do_action( 'tribe_events_save_tickets_settings', $params );
|
1786 |
-
|
1787 |
-
if ( ! empty( $params['tribe_ticket_header_image_id'] ) ) {
|
1788 |
-
update_post_meta( $id, $this->image_header_field, $params['tribe_ticket_header_image_id'] );
|
1789 |
-
} else {
|
1790 |
-
delete_post_meta( $id, $this->image_header_field );
|
1791 |
-
}
|
1792 |
-
|
1793 |
-
// We reversed this logic on the back end
|
1794 |
-
if ( class_exists( 'Tribe__Tickets_Plus__Attendees_List' ) ) {
|
1795 |
-
update_post_meta( $id, Tribe__Tickets_Plus__Attendees_List::HIDE_META_KEY, ! empty( $params['tribe_show_attendees'] ) );
|
1796 |
-
}
|
1797 |
-
|
1798 |
-
// Change the default ticket provider
|
1799 |
-
if ( ! empty( $params['default_ticket_provider'] ) ) {
|
1800 |
-
update_post_meta( $id, $this->key_provider_field, $params['default_ticket_provider'] );
|
1801 |
-
} else {
|
1802 |
-
delete_post_meta( $id, $this->key_provider_field );
|
1803 |
-
}
|
1804 |
-
|
1805 |
-
wp_send_json_success( $params );
|
1806 |
}
|
|
|
|
|
1807 |
}
|
1 |
<?php
|
|
|
2 |
/**
|
3 |
* Handles most actions related to a Ticket or Multiple ones
|
4 |
*/
|
5 |
class Tribe__Tickets__Tickets_Handler {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
/**
|
7 |
* Post Meta key for the ticket header
|
|
|
|
|
|
|
|
|
|
|
|
|
8 |
*
|
9 |
* @since 4.6
|
10 |
*
|
11 |
* @var string
|
12 |
*/
|
13 |
+
public $key_image_header = '_tribe_ticket_header';
|
14 |
|
15 |
/**
|
16 |
* Post Meta key for event ecommerce provider
|
66 |
*/
|
67 |
public $key_show_description = '_tribe_ticket_show_description';
|
68 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
69 |
/**
|
70 |
* String to represent unlimited tickets
|
71 |
* translated in the constructor
|
84 |
$this->unlimited_term = __( 'Unlimited', 'event-tickets' );
|
85 |
|
86 |
foreach ( $main->post_types() as $post_type ) {
|
87 |
+
add_action( 'save_post_' . $post_type, array( $this, 'save_post' ) );
|
|
|
88 |
}
|
89 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
90 |
add_filter( 'get_post_metadata', array( $this, 'filter_capacity_support' ), 15, 3 );
|
91 |
add_filter( 'updated_postmeta', array( $this, 'update_shared_tickets_capacity' ), 15, 4 );
|
92 |
|
93 |
add_filter( 'updated_postmeta', array( $this, 'update_meta_date' ), 15, 4 );
|
94 |
add_action( 'wp_insert_post', array( $this, 'update_start_date' ), 15, 3 );
|
|
|
|
|
95 |
}
|
96 |
|
97 |
/**
|
271 |
return true;
|
272 |
}
|
273 |
|
274 |
+
/**
|
275 |
+
* Returns which possible connections an Object might have
|
276 |
+
*
|
277 |
+
* @since TBD
|
278 |
+
*
|
279 |
+
* @return object
|
280 |
+
* {
|
281 |
+
* 'provider' => (mixed|null)
|
282 |
+
* 'event' => (int|null)
|
283 |
+
* 'product' => (int|null)
|
284 |
+
* 'order' => (int|string|null)
|
285 |
+
* 'order_item' => (int|null)
|
286 |
+
* }
|
287 |
+
*/
|
288 |
+
public function get_connections_template() {
|
289 |
+
// If you add any new Items here, update the Docblock
|
290 |
+
$connections = (object) array(
|
291 |
+
'provider' => null,
|
292 |
+
'event' => null,
|
293 |
+
'product' => null,
|
294 |
+
'order' => null,
|
295 |
+
'order_item' => null,
|
296 |
+
);
|
297 |
+
|
298 |
+
return $connections;
|
299 |
+
}
|
300 |
+
|
301 |
+
/**
|
302 |
+
* The simplest way to grab all the relationships from Any Ticket related objects
|
303 |
+
*
|
304 |
+
* On RSVPs Attendees and Orders are the same Post
|
305 |
+
*
|
306 |
+
* @since TBD
|
307 |
+
*
|
308 |
+
* @see self::get_connections_template
|
309 |
+
*
|
310 |
+
* @param int|WP_Post $object Which object you are trying to figure out
|
311 |
+
*
|
312 |
+
* @return object
|
313 |
+
*/
|
314 |
+
public function get_object_connections( $object ) {
|
315 |
+
$connections = $this->get_connections_template();
|
316 |
+
|
317 |
+
if ( ! $object instanceof WP_Post ) {
|
318 |
+
$object = get_post( $object );
|
319 |
+
}
|
320 |
+
|
321 |
+
if ( ! $object instanceof WP_Post ) {
|
322 |
+
return $connections;
|
323 |
+
}
|
324 |
+
|
325 |
+
$provider_index = array(
|
326 |
+
'rsvp' => 'Tribe__Tickets__RSVP',
|
327 |
+
'woo' => 'Tribe__Tickets_Plus__Commerce__WooCommerce__Main',
|
328 |
+
'edd' => 'Tribe__Tickets_Plus__Commerce__EDD__Main',
|
329 |
+
);
|
330 |
+
|
331 |
+
$relationships = array(
|
332 |
+
'event' => array(
|
333 |
+
// RSVP
|
334 |
+
'_tribe_rsvp_event' => 'rsvp',
|
335 |
+
'_tribe_rsvp_for_event' => 'rsvp',
|
336 |
+
|
337 |
+
// EDD
|
338 |
+
'_tribe_eddticket_event' => 'edd',
|
339 |
+
'_tribe_eddticket_for_event' => 'edd',
|
340 |
+
|
341 |
+
// Woo
|
342 |
+
'_tribe_wooticket_event' => 'woo',
|
343 |
+
'_tribe_wooticket_for_event' => 'woo',
|
344 |
+
),
|
345 |
+
'product' => array(
|
346 |
+
// RSVP
|
347 |
+
'_tribe_rsvp_product' => 'rsvp',
|
348 |
+
|
349 |
+
// EDD
|
350 |
+
'_tribe_eddticket_product' => 'edd',
|
351 |
+
|
352 |
+
// Woo
|
353 |
+
'_tribe_wooticket_product' => 'woo',
|
354 |
+
),
|
355 |
+
'order' => array(
|
356 |
+
// RSVP
|
357 |
+
'_tribe_rsvp_order' => 'rsvp',
|
358 |
+
|
359 |
+
// EDD
|
360 |
+
'_tribe_eddticket_order' => 'edd',
|
361 |
+
|
362 |
+
// Woo
|
363 |
+
'_tribe_wooticket_order' => 'woo',
|
364 |
+
|
365 |
+
),
|
366 |
+
'order_item' => array(
|
367 |
+
// Woo
|
368 |
+
'_tribe_wooticket_order_item' => 'woo',
|
369 |
+
),
|
370 |
+
);
|
371 |
+
|
372 |
+
foreach ( $relationships as $what => $keys ) {
|
373 |
+
foreach ( $keys as $key => $provider ) {
|
374 |
+
// Skip any key that doens't exist
|
375 |
+
if ( ! metadata_exists( 'post', $object->ID, $key ) ) {
|
376 |
+
continue;
|
377 |
+
}
|
378 |
+
|
379 |
+
// When we don't have a provider yet we test and fetch it
|
380 |
+
if ( ! $connections->provider && isset( $provider_index[ $provider ] ) ) {
|
381 |
+
$connections->provider = $provider_index[ $provider ];
|
382 |
+
}
|
383 |
+
|
384 |
+
// Fetch it
|
385 |
+
$meta = get_post_meta( $object->ID, $key, true );
|
386 |
+
|
387 |
+
// Makes sure we have clean data
|
388 |
+
if ( empty( $meta ) ) {
|
389 |
+
$meta = null;
|
390 |
+
} elseif ( is_numeric( $meta ) ) {
|
391 |
+
$meta = (int) $meta;
|
392 |
+
}
|
393 |
+
|
394 |
+
// The meta value as a connection
|
395 |
+
$connections->{$what} = $meta;
|
396 |
+
}
|
397 |
+
}
|
398 |
+
|
399 |
+
// If we have a valid provider get it
|
400 |
+
if ( $connections->provider && class_exists( $connections->provider ) ) {
|
401 |
+
$connections->provider = call_user_func( array( $connections->provider, 'get_instance' ) );
|
402 |
+
}
|
403 |
+
|
404 |
+
return $connections;
|
405 |
+
}
|
406 |
+
|
407 |
/**
|
408 |
* Gets the Tickets from a Post
|
409 |
*
|
440 |
}
|
441 |
|
442 |
/**
|
443 |
+
* On the Update of a Object (Event, Page, Post...) we need to do some other actions:
|
444 |
+
* - Object needs to have Shared Stock Enabled
|
445 |
+
* - Object needs a Shared Stock level to be set
|
446 |
+
* - Shared tickets have their capacity and stock updated
|
447 |
*
|
448 |
* @since 4.6
|
449 |
*
|
452 |
* @param string $meta_key Which meta key we are fetching
|
453 |
* @param int $event_capacity To which value the event Capacity was update to
|
454 |
*
|
455 |
+
* @return boolean
|
456 |
*/
|
457 |
public function update_shared_tickets_capacity( $meta_id, $object_id, $meta_key, $event_capacity ) {
|
458 |
// Bail on non-capacity
|
467 |
return false;
|
468 |
}
|
469 |
|
470 |
+
// We don't accept any non-numeric values here
|
471 |
+
if ( ! is_numeric( $event_capacity ) ) {
|
472 |
+
return false;
|
473 |
+
}
|
474 |
+
|
475 |
+
// Make sure we are updating the Shared Stock when we update it's capacity
|
476 |
+
$object_stock = new Tribe__Tickets__Global_Stock( $object_id );
|
477 |
+
|
478 |
+
// Make sure that we have stock enabled (backwards compatibility)
|
479 |
+
$object_stock->enable();
|
480 |
+
|
481 |
$completes = array();
|
482 |
+
|
483 |
+
// Get all Tickets
|
484 |
$tickets = $this->get_tickets_ids( $object_id );
|
485 |
|
486 |
foreach ( $tickets as $ticket ) {
|
487 |
$mode = get_post_meta( $ticket, Tribe__Tickets__Global_Stock::TICKET_STOCK_MODE, true );
|
488 |
|
489 |
+
// Skip any tickets that are not Shared
|
490 |
+
if (
|
491 |
+
Tribe__Tickets__Global_Stock::GLOBAL_STOCK_MODE !== $mode
|
492 |
+
&& Tribe__Tickets__Global_Stock::CAPPED_STOCK_MODE !== $mode
|
493 |
+
) {
|
494 |
continue;
|
495 |
}
|
496 |
|
497 |
+
$capacity = tribe_tickets_get_capacity( $ticket );
|
498 |
+
|
499 |
+
// When Global Capacity is higher than local ticket one's we bail
|
500 |
+
if (
|
501 |
+
Tribe__Tickets__Global_Stock::CAPPED_STOCK_MODE === $mode
|
502 |
+
) {
|
503 |
+
$capped_capacity = $capacity;
|
504 |
+
if ( $event_capacity < $capacity ) {
|
505 |
+
$capped_capacity = $event_capacity;
|
506 |
+
}
|
507 |
+
|
508 |
+
// Otherwise we update tickets required
|
509 |
+
tribe_tickets_update_capacity( $ticket, $capped_capacity );
|
510 |
+
}
|
511 |
+
|
512 |
$totals = $this->get_ticket_totals( $ticket );
|
513 |
$completes[] = $complete = $totals['pending'] + $totals['sold'];
|
514 |
|
515 |
$stock = $event_capacity - $complete;
|
516 |
update_post_meta( $ticket, '_stock', $stock );
|
517 |
+
|
518 |
+
// Makes sure we mark it as in Stock for the status
|
519 |
+
if ( 0 !== $stock ) {
|
520 |
+
update_post_meta( $ticket, '_stock_status', 'instock' );
|
521 |
+
}
|
522 |
}
|
523 |
|
524 |
+
// Setup the Stock level
|
525 |
+
$new_object_stock = $event_capacity - array_sum( $completes );
|
526 |
+
$object_stock->set_stock_level( $new_object_stock );
|
527 |
+
|
528 |
+
return true;
|
529 |
}
|
530 |
|
531 |
/**
|
618 |
// In here we deal with Tickets migration from legacy
|
619 |
$mode = get_post_meta( $object->ID, Tribe__Tickets__Global_Stock::TICKET_STOCK_MODE, true );
|
620 |
$totals = $this->get_ticket_totals( $object->ID );
|
621 |
+
$connections = $this->get_object_connections( $object );
|
622 |
+
|
623 |
+
// When migrating we might get Tickets/RSVP without a mode so we set it to Indy Ticket
|
624 |
+
if ( ! metadata_exists( 'post', $object->ID, Tribe__Tickets__Global_Stock::TICKET_STOCK_MODE ) ) {
|
625 |
+
$mode = 'own';
|
626 |
+
}
|
627 |
|
628 |
if ( Tribe__Tickets__Global_Stock::CAPPED_STOCK_MODE === $mode ) {
|
629 |
$capacity = (int) trim( get_post_meta( $object->ID, Tribe__Tickets__Global_Stock::TICKET_STOCK_CAP, true ) );
|
630 |
$capacity += $totals['sold'] + $totals['pending'];
|
631 |
+
} elseif ( Tribe__Tickets__Global_Stock::GLOBAL_STOCK_MODE === $mode ) {
|
632 |
// When using Global we don't set a ticket cap
|
633 |
$capacity = null;
|
634 |
+
} elseif ( Tribe__Tickets__Global_Stock::OWN_STOCK_MODE === $mode ) {
|
635 |
+
/**
|
636 |
+
* Due to a bug in version 4.5.6 of our code RSVP doesnt lower the Stock
|
637 |
+
* so when setting up the capacity we need to avoid counting solds
|
638 |
+
*/
|
639 |
+
if ( 'Tribe__Tickets__RSVP' === get_class( $connections->provider ) ) {
|
640 |
+
$capacity = $totals['stock'];
|
641 |
+
} else {
|
642 |
+
$capacity = array_sum( $totals );
|
643 |
+
}
|
644 |
} else {
|
645 |
$capacity = -1;
|
646 |
}
|
716 |
return $totals;
|
717 |
}
|
718 |
|
719 |
+
/**
|
720 |
+
* Gets the Total of Stock, Sold and Pending for a given Post
|
721 |
+
* And if there is any Unlimited
|
722 |
+
*
|
723 |
+
* @since TBD
|
724 |
+
*
|
725 |
+
* @param int|WP_Post $post Which ticket
|
726 |
+
*
|
727 |
+
* @return array
|
728 |
+
*/
|
729 |
+
public function get_post_totals( $post ) {
|
730 |
+
if ( ! $post instanceof WP_Post ) {
|
731 |
+
$post = get_post( $post );
|
732 |
+
}
|
733 |
+
|
734 |
+
if ( ! $post instanceof WP_Post ) {
|
735 |
+
return false;
|
736 |
+
}
|
737 |
+
|
738 |
+
$tickets = Tribe__Tickets__Tickets::get_all_event_tickets( $post->ID );
|
739 |
+
$totals = array(
|
740 |
+
'has_unlimited' => false,
|
741 |
+
'tickets' => count( $tickets ),
|
742 |
+
'capacity' => $this->get_total_event_capacity( $post ),
|
743 |
+
'sold' => 0,
|
744 |
+
'pending' => 0,
|
745 |
+
'stock' => 0,
|
746 |
+
);
|
747 |
+
|
748 |
+
foreach ( $tickets as $ticket ) {
|
749 |
+
$ticket_totals = $this->get_ticket_totals( $ticket->ID );
|
750 |
+
$totals['sold'] += $ticket_totals['sold'];
|
751 |
+
$totals['pending'] += $ticket_totals['pending'];
|
752 |
+
$totals['stock'] += $ticket_totals['stock'];
|
753 |
+
|
754 |
+
// check if we have any unlimited tickets
|
755 |
+
if ( ! $totals['has_unlimited'] ) {
|
756 |
+
$totals['has_unlimited'] = -1 === tribe_tickets_get_capacity( $ticket->ID );
|
757 |
+
}
|
758 |
+
}
|
759 |
+
|
760 |
+
return $totals;
|
761 |
+
}
|
762 |
+
|
763 |
/**
|
764 |
* Returns whether a ticket has unlimited capacity
|
765 |
*
|
825 |
return Tribe__Tickets__Global_Stock::CAPPED_STOCK_MODE === $mode || Tribe__Tickets__Global_Stock::GLOBAL_STOCK_MODE === $mode;
|
826 |
}
|
827 |
|
828 |
+
/**
|
829 |
+
* Returns whether a given object has the correct Provider for a Post or Ticket
|
830 |
+
*
|
831 |
+
* @since TBD
|
832 |
+
*
|
833 |
+
* @param int|WP_Post $ticket
|
834 |
+
* @param mixed $provider
|
835 |
+
*
|
836 |
+
* @return bool
|
837 |
+
*/
|
838 |
+
public function is_correct_provider( $post, $provider ) {
|
839 |
+
if ( ! $post instanceof WP_Post ) {
|
840 |
+
$post = get_post( $post );
|
841 |
+
}
|
842 |
+
|
843 |
+
if ( ! $post instanceof WP_Post ) {
|
844 |
+
return false;
|
845 |
+
}
|
846 |
+
|
847 |
+
$provider_class = get_class( $provider );
|
848 |
+
|
849 |
+
if ( tribe_tickets_post_type_enabled( $post->post_type ) ) {
|
850 |
+
$default_provider = Tribe__Tickets_Plus__Tickets::get_event_ticket_provider( $post->ID );
|
851 |
+
} else {
|
852 |
+
$default_provider = tribe_tickets_get_ticket_provider( $post->ID );
|
853 |
+
}
|
854 |
+
|
855 |
+
if ( ! is_string( $default_provider ) ) {
|
856 |
+
$default_provider = get_class( $default_provider );
|
857 |
+
}
|
858 |
+
|
859 |
+
return $default_provider === $provider_class;
|
860 |
+
}
|
861 |
+
|
862 |
/**
|
863 |
* Checks if there are any unlimited tickets, optionally by stock mode or ticket type
|
864 |
*
|
1074 |
$ticket_list[] = $ticket;
|
1075 |
}
|
1076 |
|
|
|
1077 |
return $ticket_list;
|
1078 |
}
|
1079 |
|
1080 |
/**
|
1081 |
+
* Gets the Default mode in which tickets will be generated
|
1082 |
*
|
1083 |
+
* @since TBD
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1084 |
*
|
1085 |
+
* @return string
|
1086 |
*/
|
1087 |
+
public function get_default_capacity_mode() {
|
|
|
|
|
|
|
|
|
|
|
1088 |
/**
|
1089 |
+
* Filter Default Ticket Capacity Type
|
1090 |
+
*
|
1091 |
+
* @since 4.6
|
1092 |
+
*
|
1093 |
+
* @param string 'global'
|
1094 |
+
*
|
1095 |
+
* @return string ('global','capped','own','')
|
1096 |
*
|
|
|
1097 |
*/
|
1098 |
+
return apply_filters( 'tribe_tickets_default_ticket_capacity_type', 'global' );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1099 |
}
|
1100 |
|
1101 |
/**
|
1102 |
+
* Saves the Ticket Editor related tickets on Save of the Parent Post
|
1103 |
*
|
1104 |
+
* Due to how we can have multiple Post Types where we can attach tickets we have one place where
|
1105 |
+
* all panels will save, because `save_post_$post_type` requires a loop
|
1106 |
*
|
1107 |
+
* @since TBD
|
1108 |
+
*
|
1109 |
+
* @param int $post Post that will be saved
|
1110 |
+
*
|
1111 |
+
* @return string
|
1112 |
*/
|
1113 |
+
public function save_post( $post ) {
|
1114 |
+
// We're calling this during post save, so the save nonce has already been checked.
|
1115 |
|
1116 |
+
// don't do anything on autosave, auto-draft, or massupdates
|
1117 |
+
if ( wp_is_post_autosave( $post ) || wp_is_post_revision( $post ) ) {
|
1118 |
+
return false;
|
1119 |
}
|
1120 |
|
1121 |
+
if ( ! $post instanceof WP_Post ) {
|
1122 |
+
$post = get_post( $post );
|
|
|
|
|
|
|
1123 |
}
|
1124 |
|
1125 |
+
// Bail on Invalid post
|
1126 |
+
if ( ! $post instanceof WP_Post ) {
|
1127 |
+
return false;
|
1128 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1129 |
|
1130 |
+
$provider = tribe_get_request_var( 'ticket_provider', false );
|
|
|
|
|
|
|
|
|
|
|
1131 |
|
1132 |
+
if ( $provider && tribe( 'tickets.metabox' )->module_is_valid( $provider ) ) {
|
1133 |
+
// Get the Provider
|
1134 |
+
$provider = call_user_func( array( $provider, 'get_instance' ) );
|
1135 |
|
1136 |
+
// Sve the actual ticket
|
1137 |
+
$ticket_id = $provider->ticket_add( $post->ID, $_POST );
|
|
|
1138 |
}
|
1139 |
|
1140 |
+
$this->save_form_settings( $post );
|
1141 |
+
$this->save_order( $post );
|
|
|
|
|
|
|
1142 |
|
1143 |
/**
|
1144 |
+
* Allows us to Run any actions related to a Post that has Tickets
|
1145 |
*
|
1146 |
+
* @since TBD
|
1147 |
+
*
|
1148 |
+
* @param WP_Post $post Which post we are saving
|
1149 |
*/
|
1150 |
+
do_action( 'tribe_tickets_save_post', $post );
|
1151 |
}
|
1152 |
|
1153 |
/**
|
1154 |
+
* Saves the Ticket Editor settings form
|
1155 |
*
|
1156 |
+
* @since TBD
|
1157 |
*
|
1158 |
+
* @param int $post Post that will be saved
|
1159 |
+
* @param array $data Params that will be used to save
|
1160 |
+
*
|
1161 |
+
* @return string
|
1162 |
*/
|
1163 |
+
public function save_form_settings( $post, $data = null ) {
|
1164 |
+
// don't do anything on autosave, auto-draft, or massupdates
|
1165 |
+
if ( wp_is_post_autosave( $post ) || wp_is_post_revision( $post ) ) {
|
1166 |
+
return false;
|
|
|
|
|
|
|
|
|
1167 |
}
|
1168 |
|
1169 |
+
if ( ! $post instanceof WP_Post ) {
|
1170 |
+
$post = get_post( $post );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1171 |
}
|
1172 |
|
1173 |
+
// Bail on Invalid post
|
1174 |
+
if ( ! $post instanceof WP_Post ) {
|
1175 |
+
return false;
|
1176 |
+
}
|
1177 |
|
1178 |
+
// If we didn't get any Ticket data we fetch from the $_POST
|
1179 |
+
if ( is_null( $data ) ) {
|
1180 |
+
$data = tribe_get_request_var( array( 'tribe-tickets', 'settings' ), null );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1181 |
}
|
1182 |
|
1183 |
+
if ( empty( $data ) ) {
|
1184 |
+
return false;
|
1185 |
+
}
|
1186 |
|
1187 |
+
/**
|
1188 |
+
* Allow other plugins to hook into this to add settings
|
|
|
|
|
|
|
|
|
|
|
1189 |
*
|
1190 |
+
* @since 4.6
|
|
|
1191 |
*
|
1192 |
+
* @param array $data the array of parameters to filter
|
1193 |
*/
|
1194 |
+
do_action( 'tribe_events_save_tickets_settings', $data );
|
1195 |
|
1196 |
+
if ( isset( $data['event_capacity'] ) && is_numeric( $data['event_capacity'] ) ) {
|
1197 |
+
tribe_tickets_update_capacity( $post, $data['event_capacity'] );
|
1198 |
}
|
1199 |
|
1200 |
+
if ( ! empty( $data['header_image_id'] ) ) {
|
1201 |
+
update_post_meta( $post->ID, $this->key_image_header, $data['header_image_id'] );
|
1202 |
+
} else {
|
1203 |
+
delete_post_meta( $post->ID, $this->key_image_header );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1204 |
}
|
1205 |
|
1206 |
+
// We reversed this logic on the back end
|
1207 |
+
if ( class_exists( 'Tribe__Tickets_Plus__Attendees_List' ) ) {
|
1208 |
+
update_post_meta( $post->ID, Tribe__Tickets_Plus__Attendees_List::HIDE_META_KEY, ! empty( $data['show_attendees'] ) );
|
1209 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1210 |
|
1211 |
+
// Change the default ticket provider
|
1212 |
+
if ( ! empty( $data['default_provider'] ) ) {
|
1213 |
+
update_post_meta( $post->ID, $this->key_provider_field, $data['default_provider'] );
|
1214 |
} else {
|
1215 |
+
delete_post_meta( $post->ID, $this->key_provider_field );
|
|
|
|
|
|
|
|
|
|
|
1216 |
}
|
1217 |
}
|
1218 |
|
|
|
|
|
|
|
|
|
1219 |
/**
|
1220 |
+
* Save the the drag-n-drop ticket order
|
|
|
|
|
|
|
|
|
1221 |
*
|
1222 |
+
* @since 4.6
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1223 |
*
|
1224 |
+
* @param int $post
|
1225 |
*
|
|
|
1226 |
*/
|
1227 |
+
public function save_order( $post, $tickets = null ) {
|
1228 |
+
// We're calling this during post save, so the save nonce has already been checked.
|
|
|
|
|
|
|
|
|
|
|
1229 |
|
1230 |
+
// don't do anything on autosave, auto-draft, or massupdates
|
1231 |
+
if ( wp_is_post_autosave( $post ) || wp_is_post_revision( $post ) ) {
|
1232 |
+
return false;
|
1233 |
}
|
1234 |
|
1235 |
+
if ( ! $post instanceof WP_Post ) {
|
1236 |
+
$post = get_post( $post );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1237 |
}
|
1238 |
|
1239 |
+
// Bail on Invalid post
|
1240 |
+
if ( ! $post instanceof WP_Post ) {
|
1241 |
+
return false;
|
1242 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1243 |
|
1244 |
+
// If we didn't get any Ticket data we fetch from the $_POST
|
1245 |
+
if ( is_null( $tickets ) ) {
|
1246 |
+
$tickets = tribe_get_request_var( array( 'tribe-tickets', 'list' ), null );
|
1247 |
+
}
|
1248 |
|
1249 |
+
if ( empty( $tickets ) ) {
|
1250 |
+
return false;
|
1251 |
+
}
|
|
|
|
|
|
|
|
|
|
|
1252 |
|
1253 |
+
foreach ( $tickets as $id => $ticket ) {
|
1254 |
+
if ( ! isset( $ticket['order'] ) ) {
|
1255 |
+
continue;
|
|
|
1256 |
}
|
1257 |
|
1258 |
+
$args = array(
|
1259 |
+
'ID' => absint( $id ),
|
1260 |
+
'menu_order' => (int) $ticket['order'],
|
1261 |
+
);
|
1262 |
+
|
1263 |
+
$updated[] = wp_update_post( $args );
|
1264 |
}
|
1265 |
|
1266 |
+
// Verify if any failed
|
1267 |
+
return ! in_array( 0, $updated );
|
1268 |
}
|
1269 |
|
1270 |
/**
|
1271 |
+
* Sorts tickets according to stored menu_order
|
1272 |
+
*
|
1273 |
+
* @since 4.6
|
1274 |
+
*
|
1275 |
+
* @param object $a First Compare item
|
1276 |
+
* @param object $b Second Compare item
|
1277 |
+
*
|
1278 |
+
* @return array
|
1279 |
*/
|
1280 |
+
protected function sort_by_menu_order( $a, $b ) {
|
1281 |
+
return $a->menu_order - $b->menu_order;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1282 |
}
|
1283 |
|
1284 |
/**
|
1285 |
+
* Sorts tickets according to stored menu_order
|
1286 |
+
*
|
1287 |
+
* @since 4.6
|
1288 |
+
*
|
1289 |
+
* @param array $tickets array of ticket objects
|
1290 |
+
*
|
1291 |
+
* @return array - sorted array of ticket objects
|
1292 |
*/
|
1293 |
+
public function sort_tickets_by_menu_order( $tickets ) {
|
1294 |
+
foreach ( $tickets as $key => $ticket ) {
|
1295 |
+
// make sure they are ordered correctly
|
1296 |
+
$orderpost = get_post( $ticket->ID );
|
1297 |
+
$ticket->menu_order = $orderpost->menu_order;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1298 |
}
|
1299 |
|
1300 |
+
usort( $tickets, array( $this, 'sort_by_menu_order' ) );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1301 |
|
1302 |
+
return $tickets;
|
1303 |
+
}
|
1304 |
|
1305 |
+
/**
|
1306 |
+
* Static Singleton Factory Method
|
1307 |
+
*
|
1308 |
+
* @return Tribe__Tickets__Tickets_Handler
|
1309 |
+
*/
|
1310 |
+
public static function instance() {
|
1311 |
+
return tribe( 'tickets.handler' );
|
1312 |
+
}
|
1313 |
|
1314 |
+
/************************
|
1315 |
+
* *
|
1316 |
+
* Deprecated Methods *
|
1317 |
+
* *
|
1318 |
+
************************/
|
1319 |
+
// @codingStandardsIgnoreStart
|
1320 |
|
1321 |
+
/**
|
1322 |
+
* Slug of the admin page for attendees
|
1323 |
+
*
|
1324 |
+
* @deprecated TBD
|
1325 |
+
*
|
1326 |
+
* @var string
|
1327 |
+
*/
|
1328 |
+
public static $attendees_slug = 'tickets-attendees';
|
1329 |
|
1330 |
/**
|
1331 |
+
* Save or delete the image header for tickets on an event
|
|
|
1332 |
*
|
1333 |
+
* @deprecated TBD
|
1334 |
*
|
1335 |
+
* @param int $post_id
|
1336 |
*/
|
1337 |
+
public function save_image_header( $post_id ) {
|
1338 |
+
_deprecated_function( __METHOD__, 'TBD', "tribe( 'tickets.handler' )->save_settings()" );
|
1339 |
}
|
1340 |
|
1341 |
/**
|
1342 |
+
* Saves the event ticket settings via ajax
|
|
|
1343 |
*
|
1344 |
+
* @deprecated TBD
|
|
|
1345 |
*
|
1346 |
+
* @since 4.6
|
|
|
|
|
|
|
|
|
1347 |
*/
|
1348 |
+
public function ajax_handler_save_settings() {
|
1349 |
+
_deprecated_function( __METHOD__, 'TBD', "tribe( 'tickets.metabox' )->ajax_settings()" );
|
1350 |
+
return tribe( 'tickets.metabox' )->ajax_settings();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1351 |
|
|
|
1352 |
}
|
1353 |
|
|
|
|
|
1354 |
/**
|
1355 |
* Includes the tickets metabox inside the Event edit screen
|
1356 |
*
|
1357 |
+
* @deprecated TBD
|
1358 |
+
*
|
1359 |
+
* @param WP_Post $post
|
1360 |
+
*
|
1361 |
+
* @return string
|
1362 |
*/
|
1363 |
public function do_meta_box( $post ) {
|
1364 |
+
_deprecated_function( __METHOD__, 'TBD', "tribe( 'tickets.metabox' )->render( \$post )" );
|
1365 |
+
return tribe( 'tickets.metabox' )->render( $post );
|
1366 |
+
}
|
|
|
|
|
|
|
|
|
|
|
1367 |
|
1368 |
+
/**
|
1369 |
+
* Returns the attachment ID for the header image for a event.
|
1370 |
+
*
|
1371 |
+
* @deprecated TBD
|
1372 |
+
*
|
1373 |
+
* @param $event_id
|
1374 |
+
*
|
1375 |
+
* @return mixed
|
1376 |
+
*/
|
1377 |
+
public function get_header_image_id( $event_id ) {
|
1378 |
+
_deprecated_function( __METHOD__, 'TBD', "get_post_meta( \$event_id, tribe( 'tickets.handler' )->key_image_header, true );" );
|
1379 |
+
return get_post_meta( $event_id, tribe( 'tickets.handler' )->key_image_header, true );
|
1380 |
}
|
1381 |
|
1382 |
/**
|
1383 |
* Render the ticket row into the ticket table
|
1384 |
*
|
1385 |
+
* @deprecated TBD
|
1386 |
+
*
|
1387 |
* @since 4.6
|
1388 |
*
|
1389 |
* @param Tribe__Tickets__Ticket_Object $ticket
|
1390 |
*/
|
1391 |
public function render_ticket_row( $ticket ) {
|
1392 |
+
_deprecated_function( __METHOD__, 'TBD', "tribe( 'tickets.admin.views' )->template( array( 'editor', 'ticket-row' ) )" );
|
1393 |
+
tribe( 'tickets.admin.views' )->template( array( 'editor', 'list-row' ), array( 'ticket' => $ticket ) );
|
1394 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1395 |
|
1396 |
+
/**
|
1397 |
+
* Returns the markup for the History for a Given Ticket
|
1398 |
+
*
|
1399 |
+
* @deprecated TBD
|
1400 |
+
*
|
1401 |
+
* @param int $ticket_id
|
1402 |
+
*
|
1403 |
+
* @return string
|
1404 |
+
*/
|
1405 |
+
public function get_history_content( $post_id, $ticket ) {
|
1406 |
+
_deprecated_function( __METHOD__, 'TBD', "tribe( 'tickets.admin.views' )->template( 'settings_admin_panel' )" );
|
1407 |
+
return tribe( 'tickets.admin.views' )->template( 'tickets-history', array( 'post_id' => $post_id, 'ticket' => $ticket ), false );
|
1408 |
+
}
|
1409 |
|
1410 |
+
/**
|
1411 |
+
* Returns the markup for the Settings Panel for Tickets
|
1412 |
+
*
|
1413 |
+
* @deprecated TBD
|
1414 |
+
*
|
1415 |
+
* @param int $post_id
|
1416 |
+
*
|
1417 |
+
* @return string
|
1418 |
+
*/
|
1419 |
+
public function get_settings_panel( $post_id ) {
|
1420 |
+
_deprecated_function( __METHOD__, 'TBD', "tribe( 'tickets.admin.views' )->template( 'settings_admin_panel' )" );
|
1421 |
+
return tribe( 'tickets.admin.views' )->template( 'settings_admin_panel', array( 'post_id' => $post_id ), false );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1422 |
}
|
1423 |
|
1424 |
/**
|
1425 |
* Echoes the markup for the tickets list in the tickets metabox
|
1426 |
*
|
1427 |
+
* @deprecated TBD
|
1428 |
+
*
|
1429 |
+
* @param int $deprecated event ID
|
1430 |
* @param array $tickets
|
1431 |
*/
|
1432 |
+
public function ticket_list_markup( $deprecated, $tickets = array() ) {
|
1433 |
+
_deprecated_function( __METHOD__, 'TBD', "tribe( 'tickets.admin.views' )->template( 'list' )" );
|
1434 |
+
|
1435 |
+
tribe( 'tickets.admin.views' )->template( 'list', array( 'tickets' => $tickets ) );
|
1436 |
}
|
1437 |
|
1438 |
/**
|
1439 |
* Returns the markup for the tickets list in the tickets metabox
|
1440 |
*
|
1441 |
+
* @deprecated TBD
|
1442 |
+
*
|
1443 |
* @param array $tickets
|
1444 |
*
|
1445 |
* @return string
|
1446 |
*/
|
1447 |
public function get_ticket_list_markup( $tickets = array() ) {
|
1448 |
+
_deprecated_function( __METHOD__, 'TBD', "tribe( 'tickets.admin.views' )->template( 'list' )" );
|
|
|
|
|
1449 |
|
1450 |
+
return tribe( 'tickets.admin.views' )->template( 'list', array( 'tickets' => $tickets ), false );
|
1451 |
}
|
1452 |
|
1453 |
/**
|
1454 |
+
* Whether the ticket handler should render the title in the attendees report.
|
1455 |
*
|
1456 |
+
* @deprecated TBD
|
1457 |
*
|
1458 |
+
* @param bool $should_render_title
|
1459 |
*/
|
1460 |
+
public function should_render_title( $deprecated ) {
|
1461 |
+
_deprecated_function( __METHOD__, 'TBD', 'add_filter( \'tribe_tickets_attendees_show_title\', \'_return_false\' );' );
|
1462 |
+
return true;
|
|
|
|
|
|
|
1463 |
}
|
1464 |
|
1465 |
/**
|
1466 |
+
* Returns the current post being handled.
|
1467 |
*
|
1468 |
+
* @deprecated TBD
|
1469 |
*
|
1470 |
+
* @return array|bool|null|WP_Post
|
1471 |
*/
|
1472 |
+
public function get_post() {
|
1473 |
+
_deprecated_function( __METHOD__, 'TBD', 'Tribe__Tickets__Attendees::get_post' );
|
1474 |
+
return tribe( 'tickets.attendees' )->get_post();
|
|
|
|
|
|
|
1475 |
}
|
1476 |
|
1477 |
/**
|
1478 |
+
* Print Check In Totals at top of Column
|
1479 |
*
|
1480 |
+
* @deprecated TBD
|
1481 |
*
|
|
|
1482 |
*/
|
1483 |
+
public function print_checkedin_totals() {
|
1484 |
+
_deprecated_function( __METHOD__, 'TBD', 'Tribe__Tickets__Attendees::print_checkedin_totals' );
|
1485 |
+
tribe( 'tickets.attendees' )->print_checkedin_totals();
|
1486 |
}
|
1487 |
|
1488 |
/**
|
1489 |
+
* Returns the full URL to the attendees report page.
|
1490 |
*
|
1491 |
+
* @deprecated TBD
|
1492 |
+
*
|
1493 |
+
* @param WP_Post $post
|
1494 |
+
*
|
1495 |
+
* @return string
|
1496 |
*/
|
1497 |
+
public function get_attendee_report_link( $post ) {
|
1498 |
+
_deprecated_function( __METHOD__, 'TBD', 'Tribe__Tickets__Attendees::get_report_link' );
|
1499 |
+
return tribe( 'tickets.attendees' )->get_report_link( $post );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1500 |
}
|
1501 |
|
1502 |
/**
|
1503 |
+
* Adds the "attendees" link in the admin list row actions for each event.
|
1504 |
*
|
1505 |
+
* @deprecated TBD
|
1506 |
*
|
1507 |
+
* @param $actions
|
1508 |
*
|
1509 |
+
* @return array
|
1510 |
*/
|
1511 |
+
public function attendees_row_action( $actions ) {
|
1512 |
+
_deprecated_function( __METHOD__, 'TBD', 'Tribe__Tickets__Attendees::filter_admin_row_actions' );
|
1513 |
+
return tribe( 'tickets.attendees' )->filter_admin_row_actions( $actions );
|
1514 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1515 |
|
1516 |
+
/**
|
1517 |
+
* Registers the Attendees admin page
|
1518 |
+
*/
|
1519 |
+
public function attendees_page_register() {
|
1520 |
+
_deprecated_function( __METHOD__, 'TBD', 'Tribe__Tickets__Attendees::register_page' );
|
1521 |
+
tribe( 'tickets.attendees' )->register_page();
|
1522 |
+
}
|
1523 |
|
1524 |
+
/**
|
1525 |
+
* Enqueues the JS and CSS for the attendees page in the admin
|
1526 |
+
*
|
1527 |
+
* @deprecated TBD
|
1528 |
+
*
|
1529 |
+
* @param $hook
|
1530 |
+
*/
|
1531 |
+
public function attendees_page_load_css_js( $hook ) {
|
1532 |
+
_deprecated_function( __METHOD__, 'TBD', 'Tribe__Tickets__Attendees::enqueue_assets' );
|
1533 |
+
tribe( 'tickets.attendees' )->enqueue_assets( $hook );
|
1534 |
+
}
|
1535 |
|
1536 |
+
/**
|
1537 |
+
* Loads the WP-Pointer for the Attendees screen
|
1538 |
+
*
|
1539 |
+
* @deprecated TBD
|
1540 |
+
*
|
1541 |
+
* @param $hook
|
1542 |
+
*/
|
1543 |
+
public function attendees_page_load_pointers( $hook ) {
|
1544 |
+
_deprecated_function( __METHOD__, 'TBD', 'Tribe__Tickets__Attendees::load_pointers' );
|
1545 |
+
tribe( 'tickets.attendees' )->load_pointers( $hook );
|
1546 |
+
}
|
1547 |
|
1548 |
+
/**
|
1549 |
+
* Sets up the Attendees screen data.
|
1550 |
+
*
|
1551 |
+
* @deprecated TBD
|
1552 |
+
*
|
1553 |
+
*/
|
1554 |
+
public function attendees_page_screen_setup() {
|
1555 |
+
_deprecated_function( __METHOD__, 'TBD', 'Tribe__Tickets__Attendees::screen_setup' );
|
1556 |
+
tribe( 'tickets.attendees' )->screen_setup();
|
1557 |
+
}
|
1558 |
|
1559 |
+
/**
|
1560 |
+
* @deprecated TBD
|
1561 |
+
*/
|
1562 |
+
public function attendees_admin_body_class( $body_classes ) {
|
1563 |
+
_deprecated_function( __METHOD__, 'TBD', 'Tribe__Tickets__Attendees::filter_admin_body_class' );
|
1564 |
+
tribe( 'tickets.attendees' )->filter_admin_body_class( $body_classes );
|
1565 |
+
}
|
1566 |
|
1567 |
+
/**
|
1568 |
+
* Sets the browser title for the Attendees admin page.
|
1569 |
+
* Uses the event title.
|
1570 |
+
*
|
1571 |
+
* @deprecated TBD
|
1572 |
+
*
|
1573 |
+
* @param $admin_title
|
1574 |
+
* @param $unused_title
|
1575 |
+
*
|
1576 |
+
* @return string
|
1577 |
+
*/
|
1578 |
+
public function attendees_admin_title( $admin_title, $unused_title ) {
|
1579 |
+
_deprecated_function( __METHOD__, 'TBD', 'Tribe__Tickets__Attendees::filter_admin_title' );
|
1580 |
+
tribe( 'tickets.attendees' )->filter_admin_title( $admin_title, $unused_title );
|
1581 |
}
|
1582 |
|
1583 |
+
/**
|
1584 |
+
* Renders the Attendees page
|
1585 |
+
*
|
1586 |
+
* @deprecated TBD
|
1587 |
+
*/
|
1588 |
+
public function attendees_page_inside() {
|
1589 |
+
_deprecated_function( __METHOD__, 'TBD', 'Tribe__Tickets__Attendees::render' );
|
1590 |
+
tribe( 'tickets.attendees' )->render();
|
1591 |
}
|
1592 |
|
1593 |
/**
|
1594 |
+
* Generates a list of attendees taking into account the Screen Options.
|
1595 |
+
* It's used both for the Email functionality, as for the CSV export.
|
1596 |
*
|
1597 |
+
* @deprecated TBD
|
1598 |
*
|
1599 |
+
* @param $event_id
|
1600 |
*
|
1601 |
+
* @return array
|
1602 |
*/
|
1603 |
+
private function generate_filtered_attendees_list( $event_id ) {
|
1604 |
+
_deprecated_function( __METHOD__, 'TBD', 'Tribe__Tickets__Attendees::generate_filtered_list' );
|
|
|
|
|
|
|
|
|
1605 |
|
1606 |
+
tribe( 'tickets.attendees' )->generate_filtered_list( $event_id );
|
1607 |
+
}
|
1608 |
|
1609 |
+
/**
|
1610 |
+
* Checks if the user requested a CSV export from the attendees list.
|
1611 |
+
* If so, generates the download and finishes the execution.
|
1612 |
+
*
|
1613 |
+
* @deprecated TBD
|
1614 |
+
*/
|
1615 |
+
public function maybe_generate_attendees_csv() {
|
1616 |
+
_deprecated_function( __METHOD__, 'TBD', 'Tribe__Tickets__Attendees::maybe_generate_csv' );
|
1617 |
+
tribe( 'tickets.attendees' )->maybe_generate_csv();
|
1618 |
}
|
1619 |
|
1620 |
/**
|
1621 |
+
* Handles the "send to email" action for the attendees list.
|
1622 |
*
|
1623 |
+
* @deprecated TBD
|
1624 |
*/
|
1625 |
+
public function send_attendee_mail_list() {
|
1626 |
+
_deprecated_function( __METHOD__, 'TBD', 'Tribe__Tickets__Attendees::send_mail_list' );
|
1627 |
+
tribe( 'tickets.attendees' )->send_mail_list();
|
1628 |
}
|
1629 |
|
1630 |
/**
|
1631 |
+
* Injects event post type
|
1632 |
*
|
1633 |
+
* @deprecated TBD
|
1634 |
*/
|
1635 |
+
public function event_details_top() {
|
1636 |
+
_deprecated_function( __METHOD__, 'TBD', 'Tribe__Tickets__Attendees::event_details_top' );
|
1637 |
+
tribe( 'tickets.attendees' )->event_details_top();
|
1638 |
}
|
1639 |
|
1640 |
/**
|
1641 |
+
* Injects action links into the attendee screen.
|
1642 |
*
|
1643 |
+
* @deprecated TBD
|
1644 |
*/
|
1645 |
+
public function event_action_links() {
|
1646 |
+
_deprecated_function( __METHOD__, 'TBD', 'Tribe__Tickets__Attendees::event_action_links' );
|
1647 |
+
tribe( 'tickets.attendees' )->event_action_links();
|
1648 |
}
|
1649 |
|
1650 |
/**
|
1651 |
+
* Sets the content type for the attendees to email functionality.
|
1652 |
+
* Allows for sending an HTML email.
|
1653 |
*
|
1654 |
+
* @deprecated TBD
|
1655 |
+
*
|
1656 |
+
* @param $content_type
|
1657 |
*
|
1658 |
* @return string
|
1659 |
*/
|
1660 |
+
public function set_contenttype( $content_type ) {
|
1661 |
+
_deprecated_function( __METHOD__, 'TBD', 'Tribe__Tickets__Attendees::set_contenttype' );
|
|
|
|
|
|
|
|
|
|
|
|
|
1662 |
}
|
1663 |
|
1664 |
/**
|
1665 |
+
* Tests if the user has the specified capability in relation to whatever post type
|
1666 |
+
* the ticket relates to.
|
1667 |
*
|
1668 |
+
* For example, if tickets are created for the banana post type, the generic capability
|
1669 |
+
* "edit_posts" will be mapped to "edit_bananas" or whatever is appropriate.
|
1670 |
+
*
|
1671 |
+
* @deprecated TBD
|
1672 |
+
*
|
1673 |
+
* @internal for internal plugin use only (in spite of having public visibility)
|
1674 |
+
*
|
1675 |
+
* @param string $generic_cap
|
1676 |
+
* @param int $event_id
|
1677 |
+
* @return boolean
|
1678 |
*/
|
1679 |
+
public function user_can( $generic_cap, $event_id ) {
|
1680 |
+
_deprecated_function( __METHOD__, 'TBD', 'Tribe__Tickets__Attendees::user_can' );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1681 |
}
|
1682 |
+
|
1683 |
+
// @codingStandardsIgnoreEnd
|
1684 |
}
|
src/admin-views/attendees.php
CHANGED
@@ -1,13 +1,23 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
|
4 |
-
$event_id =
|
5 |
-
$event =
|
6 |
$tickets = Tribe__Tickets__Tickets::get_event_tickets( $event_id );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
?>
|
8 |
|
9 |
<div class="wrap tribe-attendees-page">
|
10 |
-
<?php if ( $
|
11 |
<h1><?php esc_html_e( 'Attendees', 'event-tickets' ); ?></h1>
|
12 |
<?php endif; ?>
|
13 |
<div id="tribe-attendees-summary" class="welcome-panel">
|
@@ -110,6 +120,6 @@ $tickets = Tribe__Tickets__Tickets::get_event_tickets( $event_id );
|
|
110 |
<input type="hidden" name="<?php echo esc_attr( is_admin() ? 'page' : 'tribe[page]' ); ?>" value="<?php echo esc_attr( isset( $_GET['page'] ) ? $_GET['page'] : '' ); ?>" />
|
111 |
<input type="hidden" name="<?php echo esc_attr( is_admin() ? 'event_id' : 'tribe[event_id]' ); ?>" id="event_id" value="<?php echo esc_attr( $event_id ); ?>" />
|
112 |
<input type="hidden" name="<?php echo esc_attr( is_admin() ? 'post_type' : 'tribe[post_type]' ); ?>" value="<?php echo esc_attr( $event->post_type ); ?>" />
|
113 |
-
<?php
|
114 |
</form>
|
115 |
</div>
|
1 |
<?php
|
2 |
+
tribe( 'tickets.attendees' )->attendees_table->prepare_items();
|
3 |
|
4 |
+
$event_id = tribe( 'tickets.attendees' )->attendees_table->event->ID;
|
5 |
+
$event = tribe( 'tickets.attendees' )->attendees_table->event;
|
6 |
$tickets = Tribe__Tickets__Tickets::get_event_tickets( $event_id );
|
7 |
+
|
8 |
+
/**
|
9 |
+
* Wether or not we should display attendees title
|
10 |
+
*
|
11 |
+
* @since TBD
|
12 |
+
*
|
13 |
+
* @param boolean $show_title
|
14 |
+
* @param Tribe__Tickets__Tickets_Handler $handler
|
15 |
+
*/
|
16 |
+
$show_title = apply_filters( 'tribe_tickets_attendees_show_title', true, tribe( 'tickets.attendees' ) );
|
17 |
?>
|
18 |
|
19 |
<div class="wrap tribe-attendees-page">
|
20 |
+
<?php if ( $show_title ) : ?>
|
21 |
<h1><?php esc_html_e( 'Attendees', 'event-tickets' ); ?></h1>
|
22 |
<?php endif; ?>
|
23 |
<div id="tribe-attendees-summary" class="welcome-panel">
|
120 |
<input type="hidden" name="<?php echo esc_attr( is_admin() ? 'page' : 'tribe[page]' ); ?>" value="<?php echo esc_attr( isset( $_GET['page'] ) ? $_GET['page'] : '' ); ?>" />
|
121 |
<input type="hidden" name="<?php echo esc_attr( is_admin() ? 'event_id' : 'tribe[event_id]' ); ?>" id="event_id" value="<?php echo esc_attr( $event_id ); ?>" />
|
122 |
<input type="hidden" name="<?php echo esc_attr( is_admin() ? 'post_type' : 'tribe[post_type]' ); ?>" value="<?php echo esc_attr( $event->post_type ); ?>" />
|
123 |
+
<?php tribe( 'tickets.attendees' )->attendees_table->display(); ?>
|
124 |
</form>
|
125 |
</div>
|
src/admin-views/{tickets-advanced.php → editor/fieldset/advanced.php}
RENAMED
@@ -1,3 +1,43 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
<button class="accordion-header tribe_advanced_meta">
|
2 |
<?php esc_html_e( 'Advanced', 'event-tickets' ); ?>
|
3 |
</button>
|
@@ -11,7 +51,7 @@
|
|
11 |
name="ticket_description"
|
12 |
class="ticket_field ticket_form_right"
|
13 |
id="ticket_description"
|
14 |
-
|
15 |
<div class="input_block">
|
16 |
<label class="tribe_soft_note">
|
17 |
<input
|
@@ -20,7 +60,7 @@
|
|
20 |
name="ticket_show_description"
|
21 |
value="1"
|
22 |
class="ticket_field ticket_form_left"
|
23 |
-
checked
|
24 |
>
|
25 |
<?php esc_html_e( 'Show description on front end ticket form.', 'event-tickets' ); ?>
|
26 |
</label>
|
@@ -35,7 +75,7 @@
|
|
35 |
class="tribe-datepicker tribe-field-start_date ticket_field"
|
36 |
name="ticket_start_date"
|
37 |
id="ticket_start_date"
|
38 |
-
value=""
|
39 |
data-validation-type="datepicker"
|
40 |
data-validation-is-less-or-equal-to="#ticket_end_date"
|
41 |
data-validation-error="<?php echo esc_attr( json_encode( $start_date_errors ) ) ?>"
|
@@ -51,7 +91,8 @@
|
|
51 |
<?php echo Tribe__View_Helpers::is_24hr_format() ? 'data-format="H:i"' : '' ?>
|
52 |
data-step="<?php echo esc_attr( $timepicker_step ); ?>"
|
53 |
data-round="<?php echo esc_attr( $timepicker_round ); ?>"
|
54 |
-
value=""
|
|
|
55 |
/>
|
56 |
<span class="helper-text hide-if-js"><?php esc_html_e( 'HH:MM', 'event-tickets' ) ?></span>
|
57 |
<span class="dashicons dashicons-editor-help" title="<?php esc_attr_e( 'If you do not set a start sale date, tickets will be available immediately.', 'event-tickets' ); ?>"></span>
|
@@ -66,7 +107,7 @@
|
|
66 |
class="tribe-datepicker tribe-field-end_date ticket_field"
|
67 |
name="ticket_end_date"
|
68 |
id="ticket_end_date"
|
69 |
-
value=""
|
70 |
/>
|
71 |
<span class="helper-text hide-if-js"><?php esc_html_e( 'YYYY-MM-DD', 'event-tickets' ) ?></span>
|
72 |
<span class="datetime_seperator"> <?php esc_html_e( 'at', 'event-tickets' ); ?> </span>
|
@@ -79,7 +120,8 @@
|
|
79 |
<?php echo Tribe__View_Helpers::is_24hr_format() ? 'data-format="H:i"' : '' ?>
|
80 |
data-step="<?php echo esc_attr( $timepicker_step ); ?>"
|
81 |
data-round="<?php echo esc_attr( $timepicker_round ); ?>"
|
82 |
-
value=""
|
|
|
83 |
/>
|
84 |
<span class="helper-text hide-if-js"><?php esc_html_e( 'HH:MM', 'event-tickets' ) ?></span>
|
85 |
<span
|
@@ -99,10 +141,10 @@
|
|
99 |
*
|
100 |
* @since 4.6
|
101 |
*
|
102 |
-
* @param int
|
103 |
-
* @param null Ticket ID
|
104 |
*/
|
105 |
-
do_action( 'tribe_events_tickets_metabox_edit_advanced', $post_id,
|
106 |
?>
|
107 |
</div>
|
108 |
</section><!-- #ticket_form_advanced -->
|
1 |
+
<?php
|
2 |
+
$datepicker_format = Tribe__Date_Utils::datepicker_formats( tribe_get_option( 'datepickerFormat' ) );
|
3 |
+
|
4 |
+
if ( ! isset( $post_id ) ) {
|
5 |
+
$post_id = get_the_ID();
|
6 |
+
}
|
7 |
+
|
8 |
+
if ( ! isset( $ticket_id ) ) {
|
9 |
+
$provider = null;
|
10 |
+
$ticket_id = null;
|
11 |
+
$ticket = null;
|
12 |
+
} else {
|
13 |
+
$provider = tribe_tickets_get_ticket_provider( $ticket_id );
|
14 |
+
$ticket = $provider->get_ticket( $post_id, $ticket_id );
|
15 |
+
|
16 |
+
if ( $ticket->start_date ) {
|
17 |
+
$start_date = Tribe__Date_Utils::date_only( $ticket->start_date, false, $datepicker_format );
|
18 |
+
} else {
|
19 |
+
$start_date = null;
|
20 |
+
}
|
21 |
+
|
22 |
+
if ( $ticket->end_date ) {
|
23 |
+
$end_date = Tribe__Date_Utils::date_only( $ticket->end_date, false, $datepicker_format );
|
24 |
+
} else {
|
25 |
+
$end_date = null;
|
26 |
+
}
|
27 |
+
}
|
28 |
+
|
29 |
+
$timepicker_step = 30;
|
30 |
+
if ( class_exists( 'Tribe__Events__Main' ) ) {
|
31 |
+
$timepicker_step = (int) tribe( 'tec.admin.event-meta-box' )->get_timepicker_step( 'start' );
|
32 |
+
}
|
33 |
+
|
34 |
+
$timepicker_round = '00:00:00';
|
35 |
+
|
36 |
+
$start_date_errors = array(
|
37 |
+
'is-required' => __( 'Start sale date cannot be empty.', 'event-tickets' ),
|
38 |
+
'is-less-or-equal-to' => __( 'Start sale date cannot be greater than End Sale date', 'event-tickets' ),
|
39 |
+
);
|
40 |
+
?>
|
41 |
<button class="accordion-header tribe_advanced_meta">
|
42 |
<?php esc_html_e( 'Advanced', 'event-tickets' ); ?>
|
43 |
</button>
|
51 |
name="ticket_description"
|
52 |
class="ticket_field ticket_form_right"
|
53 |
id="ticket_description"
|
54 |
+
><?php echo esc_textarea( $ticket ? $ticket->description : null ) ?></textarea>
|
55 |
<div class="input_block">
|
56 |
<label class="tribe_soft_note">
|
57 |
<input
|
60 |
name="ticket_show_description"
|
61 |
value="1"
|
62 |
class="ticket_field ticket_form_left"
|
63 |
+
<?php checked( true, $ticket ? $ticket->show_description : true ); ?>
|
64 |
>
|
65 |
<?php esc_html_e( 'Show description on front end ticket form.', 'event-tickets' ); ?>
|
66 |
</label>
|
75 |
class="tribe-datepicker tribe-field-start_date ticket_field"
|
76 |
name="ticket_start_date"
|
77 |
id="ticket_start_date"
|
78 |
+
value="<?php echo esc_attr( $ticket ? $start_date : null ); ?>"
|
79 |
data-validation-type="datepicker"
|
80 |
data-validation-is-less-or-equal-to="#ticket_end_date"
|
81 |
data-validation-error="<?php echo esc_attr( json_encode( $start_date_errors ) ) ?>"
|
91 |
<?php echo Tribe__View_Helpers::is_24hr_format() ? 'data-format="H:i"' : '' ?>
|
92 |
data-step="<?php echo esc_attr( $timepicker_step ); ?>"
|
93 |
data-round="<?php echo esc_attr( $timepicker_round ); ?>"
|
94 |
+
value="<?php echo esc_attr( $ticket ? $ticket->start_time : null ); ?>"
|
95 |
+
aria-label="<?php esc_html_e( 'Ticket start date', 'event-tickets' ); ?>"
|
96 |
/>
|
97 |
<span class="helper-text hide-if-js"><?php esc_html_e( 'HH:MM', 'event-tickets' ) ?></span>
|
98 |
<span class="dashicons dashicons-editor-help" title="<?php esc_attr_e( 'If you do not set a start sale date, tickets will be available immediately.', 'event-tickets' ); ?>"></span>
|
107 |
class="tribe-datepicker tribe-field-end_date ticket_field"
|
108 |
name="ticket_end_date"
|
109 |
id="ticket_end_date"
|
110 |
+
value="<?php echo esc_attr( $ticket ? $end_date : null ); ?>"
|
111 |
/>
|
112 |
<span class="helper-text hide-if-js"><?php esc_html_e( 'YYYY-MM-DD', 'event-tickets' ) ?></span>
|
113 |
<span class="datetime_seperator"> <?php esc_html_e( 'at', 'event-tickets' ); ?> </span>
|
120 |
<?php echo Tribe__View_Helpers::is_24hr_format() ? 'data-format="H:i"' : '' ?>
|
121 |
data-step="<?php echo esc_attr( $timepicker_step ); ?>"
|
122 |
data-round="<?php echo esc_attr( $timepicker_round ); ?>"
|
123 |
+
value="<?php echo esc_attr( $ticket ? $ticket->end_time : null ); ?>"
|
124 |
+
aria-label="<?php esc_html_e( 'Ticket end date', 'event-tickets' ); ?>"
|
125 |
/>
|
126 |
<span class="helper-text hide-if-js"><?php esc_html_e( 'HH:MM', 'event-tickets' ) ?></span>
|
127 |
<span
|
141 |
*
|
142 |
* @since 4.6
|
143 |
*
|
144 |
+
* @param int $post_id Post ID
|
145 |
+
* @param int|null $ticket_id Ticket ID
|
146 |
*/
|
147 |
+
do_action( 'tribe_events_tickets_metabox_edit_advanced', $post_id, $ticket_id );
|
148 |
?>
|
149 |
</div>
|
150 |
</section><!-- #ticket_form_advanced -->
|
src/admin-views/{tickets-history.php → editor/fieldset/history.php}
RENAMED
@@ -1,7 +1,15 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
-
|
4 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
}
|
6 |
|
7 |
$history = Tribe__Post_History::load( $ticket );
|
1 |
<?php
|
2 |
+
if ( ! isset( $post_id ) ) {
|
3 |
+
$post_id = get_the_ID();
|
4 |
+
}
|
5 |
+
|
6 |
+
if ( ! isset( $ticket_id ) ) {
|
7 |
+
$provider = null;
|
8 |
+
$ticket_id = null;
|
9 |
+
$ticket = null;
|
10 |
+
} else {
|
11 |
+
$provider = tribe_tickets_get_ticket_provider( $ticket_id );
|
12 |
+
$ticket = $provider->get_ticket( $post_id, $ticket_id );
|
13 |
}
|
14 |
|
15 |
$history = Tribe__Post_History::load( $ticket );
|
src/admin-views/editor/list-row.php
ADDED
@@ -0,0 +1,82 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
$provider = $ticket->provider_class;
|
3 |
+
$provider_obj = call_user_func( array( $provider, 'get_instance' ) );
|
4 |
+
$inventory = $ticket->inventory();
|
5 |
+
$available = $ticket->available();
|
6 |
+
$capacity = $ticket->capacity();
|
7 |
+
$stock = $ticket->stock();
|
8 |
+
$needs_warning = false;
|
9 |
+
$mode = $ticket->global_stock_mode();
|
10 |
+
$event = $ticket->get_event();
|
11 |
+
|
12 |
+
// If we don't have an event we should't even continue
|
13 |
+
if ( ! $event ) {
|
14 |
+
return;
|
15 |
+
}
|
16 |
+
|
17 |
+
if (
|
18 |
+
'Tribe__Tickets_Plus__Commerce__WooCommerce__Main' === $ticket->provider_class
|
19 |
+
&& -1 !== $capacity
|
20 |
+
) {
|
21 |
+
$product = wc_get_product( $ticket->ID );
|
22 |
+
$shared_stock = new Tribe__Tickets__Global_Stock( $event->ID );
|
23 |
+
$needs_warning = (int) $inventory !== (int) $stock;
|
24 |
+
|
25 |
+
// We remove the warning flag when shared stock is used
|
26 |
+
if ( $shared_stock->is_enabled() && (int) $stock >= (int) $shared_stock->get_stock_level() ) {
|
27 |
+
$needs_warning = false;
|
28 |
+
}
|
29 |
+
}
|
30 |
+
|
31 |
+
?>
|
32 |
+
<tr class="<?php echo esc_attr( $provider ); ?> is-expanded" data-ticket-order-id="order_<?php echo esc_attr( $ticket->ID ); ?>" data-ticket-type-id="<?php echo esc_attr( $ticket->ID ); ?>">
|
33 |
+
<td class="column-primary ticket_name <?php echo esc_attr( $provider ); ?>" data-label="<?php esc_html_e( 'Ticket Type:', 'event-tickets' ); ?>">
|
34 |
+
<span class="dashicons dashicons-screenoptions tribe-handle"></span>
|
35 |
+
<input
|
36 |
+
type="hidden"
|
37 |
+
class="tribe-ticket-field-order"
|
38 |
+
name="tribe-tickets[list][<?php echo esc_attr( $ticket->ID ); ?>][order]"
|
39 |
+
value="<?php echo esc_attr( $ticket->menu_order ); ?>"
|
40 |
+
<?php echo 'Tribe__Tickets__RSVP' === $ticket->provider_class ? 'disabled' : ''; ?>
|
41 |
+
>
|
42 |
+
<?php echo esc_html( $ticket->name ); ?>
|
43 |
+
</td>
|
44 |
+
|
45 |
+
<?php
|
46 |
+
/**
|
47 |
+
* Allows for the insertion of additional content into the main ticket admin panel after the tickets listing
|
48 |
+
*
|
49 |
+
* @since 4.6
|
50 |
+
*
|
51 |
+
* @param Tribe__Tickets__Ticket_Object $ticket
|
52 |
+
* @param obj ecommerce provider object
|
53 |
+
*/
|
54 |
+
do_action( 'tribe_events_tickets_ticket_table_add_tbody_column', $ticket, $provider_obj );
|
55 |
+
?>
|
56 |
+
|
57 |
+
<td class="ticket_capacity">
|
58 |
+
<span class='tribe-mobile-only'><?php esc_html_e( 'Capacity:', 'event-tickets' ); ?></span>
|
59 |
+
<?php tribe_tickets_get_readable_amount( $capacity, $mode, true ); ?>
|
60 |
+
</td>
|
61 |
+
|
62 |
+
<td class="ticket_available">
|
63 |
+
<span class='tribe-mobile-only'><?php esc_html_e( 'Available:', 'event-tickets' ); ?></span>
|
64 |
+
<?php if ( $needs_warning ) : ?>
|
65 |
+
<span class="dashicons dashicons-warning required" title="<?php esc_attr_e( 'The number of Complete ticket sales does not match the number of attendees. Please check the Attendees list and adjust ticket stock in WooCommerce as needed.', 'event-tickets' ) ?>"></span>
|
66 |
+
<?php endif; ?>
|
67 |
+
|
68 |
+
<?php tribe_tickets_get_readable_amount( $available, $mode, true ); ?>
|
69 |
+
</td>
|
70 |
+
|
71 |
+
<td class="ticket_edit">
|
72 |
+
<?php
|
73 |
+
printf(
|
74 |
+
"<button data-provider='%s' data-ticket-id='%s' title='%s' class='ticket_edit_button'><span class='ticket_edit_text'>%s</span></a>",
|
75 |
+
esc_attr( $ticket->provider_class ),
|
76 |
+
esc_attr( $ticket->ID ),
|
77 |
+
esc_attr( sprintf( __( '( Ticket ID: %d )', 'tribe-tickets' ), $ticket->ID ) ),
|
78 |
+
esc_html( $ticket->name )
|
79 |
+
);
|
80 |
+
?>
|
81 |
+
</td>
|
82 |
+
</tr>
|
src/admin-views/{list.php → editor/list-table.php}
RENAMED
@@ -1,28 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
<?php if ( ! defined( 'DOING_AJAX' ) || ! DOING_AJAX ) : ?>
|
2 |
<div id="ticket_list_wrapper">
|
3 |
<?php endif; ?>
|
4 |
|
5 |
<table id="tribe_ticket_list_table" class="tribe-tickets-editor-table eventtable ticket_list eventForm widefat fixed">
|
6 |
-
<?php
|
7 |
-
global $post;
|
8 |
-
$provider = null;
|
9 |
-
$post_type = 'post';
|
10 |
-
|
11 |
-
if ( $post ) {
|
12 |
-
$post_id = get_the_ID();
|
13 |
-
$post_type = $post->post_type;
|
14 |
-
} else {
|
15 |
-
$post_id = $_POST['post_ID'];
|
16 |
-
|
17 |
-
if ( ! empty( $_POST['post_type'] ) ) {
|
18 |
-
$post_type = $_POST['post_type'];
|
19 |
-
} elseif ( ! empty( $_GET['post_type'] ) ) {
|
20 |
-
$post_type = $_GET['post_type'];
|
21 |
-
}
|
22 |
-
}
|
23 |
-
|
24 |
-
$modules = Tribe__Tickets__Tickets::modules();
|
25 |
-
?>
|
26 |
<thead>
|
27 |
<tr class="table-header">
|
28 |
<th class="ticket_name column-primary"><?php esc_html_e( 'Tickets', 'event-tickets' ); ?></th>
|
@@ -56,7 +58,7 @@
|
|
56 |
<?php
|
57 |
if ( ! empty( $tickets ) ) {
|
58 |
foreach ( $tickets as $ticket ) {
|
59 |
-
tribe( 'tickets.
|
60 |
}
|
61 |
}
|
62 |
?>
|
@@ -66,7 +68,7 @@
|
|
66 |
<?php
|
67 |
if ( ! empty( $rsvp ) ) {
|
68 |
foreach ( $rsvp as $ticket ) {
|
69 |
-
tribe( 'tickets.
|
70 |
}
|
71 |
}
|
72 |
?>
|
@@ -76,4 +78,4 @@
|
|
76 |
|
77 |
<?php if ( ! defined( 'DOING_AJAX' ) || ! DOING_AJAX ) : ?>
|
78 |
</div>
|
79 |
-
<?php endif;
|
1 |
+
<?php
|
2 |
+
if ( ! isset( $post_id ) ) {
|
3 |
+
$post_id = get_the_ID();
|
4 |
+
}
|
5 |
+
|
6 |
+
if ( ! $post_id ) {
|
7 |
+
$post_id = tribe_get_request_var( 'post_id', 0 );
|
8 |
+
}
|
9 |
+
|
10 |
+
// Makes sure we are dealing an int
|
11 |
+
$post_id = (int) $post_id;
|
12 |
+
|
13 |
+
if ( 0 === $post_id ) {
|
14 |
+
$post_type = tribe_get_request_var( 'post_type', 'post' );
|
15 |
+
} else {
|
16 |
+
$post_type = get_post_type( $post_id );
|
17 |
+
}
|
18 |
+
|
19 |
+
$modules = Tribe__Tickets__Tickets::modules();
|
20 |
+
?>
|
21 |
+
|
22 |
+
|
23 |
<?php if ( ! defined( 'DOING_AJAX' ) || ! DOING_AJAX ) : ?>
|
24 |
<div id="ticket_list_wrapper">
|
25 |
<?php endif; ?>
|
26 |
|
27 |
<table id="tribe_ticket_list_table" class="tribe-tickets-editor-table eventtable ticket_list eventForm widefat fixed">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
28 |
<thead>
|
29 |
<tr class="table-header">
|
30 |
<th class="ticket_name column-primary"><?php esc_html_e( 'Tickets', 'event-tickets' ); ?></th>
|
58 |
<?php
|
59 |
if ( ! empty( $tickets ) ) {
|
60 |
foreach ( $tickets as $ticket ) {
|
61 |
+
tribe( 'tickets.admin.views' )->template( array( 'editor', 'list-row' ), array( 'ticket' => $ticket ) );
|
62 |
}
|
63 |
}
|
64 |
?>
|
68 |
<?php
|
69 |
if ( ! empty( $rsvp ) ) {
|
70 |
foreach ( $rsvp as $ticket ) {
|
71 |
+
tribe( 'tickets.admin.views' )->template( array( 'editor', 'list-row' ), array( 'ticket' => $ticket ) );
|
72 |
}
|
73 |
}
|
74 |
?>
|
78 |
|
79 |
<?php if ( ! defined( 'DOING_AJAX' ) || ! DOING_AJAX ) : ?>
|
80 |
</div>
|
81 |
+
<?php endif;
|
src/admin-views/editor/metabox.php
ADDED
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @var WP_Post $post
|
4 |
+
* @var bool $show_global_stock
|
5 |
+
* @var Tribe__Tickets__Global_Stock $global_stock
|
6 |
+
*/
|
7 |
+
|
8 |
+
// Don't load directly
|
9 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
10 |
+
die( '-1' );
|
11 |
+
}
|
12 |
+
$post_id = get_the_ID();
|
13 |
+
?>
|
14 |
+
|
15 |
+
<div class="tribe-tickets-editor-blocker">
|
16 |
+
<span class="spinner"></span>
|
17 |
+
</div>
|
18 |
+
|
19 |
+
<div id="event_tickets" class="eventtable" aria-live="polite">
|
20 |
+
<?php wp_nonce_field( 'tribe-tickets-meta-box', 'tribe-tickets-post-settings' ); ?>
|
21 |
+
|
22 |
+
<?php tribe( 'tickets.admin.views' )->template( array( 'editor', 'panel', 'list' ), get_defined_vars() ); ?>
|
23 |
+
|
24 |
+
<?php tribe( 'tickets.admin.views' )->template( array( 'editor', 'panel', 'ticket' ), get_defined_vars() ); ?>
|
25 |
+
|
26 |
+
<?php tribe( 'tickets.admin.views' )->template( array( 'editor', 'panel', 'settings' ), get_defined_vars() ); ?>
|
27 |
+
|
28 |
+
</div>
|
src/admin-views/{base_admin_panel.php → editor/panel/list.php}
RENAMED
@@ -1,11 +1,17 @@
|
|
1 |
<?php
|
|
|
2 |
$total_tickets = tribe( 'tickets.handler' )->get_total_event_capacity( $post_id );
|
3 |
$container_class = 'tribe_sectionheader ticket_list_container';
|
4 |
$container_class .= ( empty( $total_tickets ) ) ? ' tribe_no_capacity' : '' ;
|
5 |
?>
|
6 |
-
<div
|
|
|
|
|
|
|
|
|
|
|
7 |
<div class="<?php echo esc_attr( $container_class ); ?>">
|
8 |
-
<?php if ( ! empty( $
|
9 |
<div class="ticket_table_intro">
|
10 |
<?php
|
11 |
/**
|
@@ -33,28 +39,8 @@ $container_class .= ( empty( $total_tickets ) ) ? ' tribe_no_capacity' : '' ;
|
|
33 |
<?php esc_html_e( 'View Attendees', 'event-tickets' ); ?>
|
34 |
</a>
|
35 |
</div>
|
|
|
36 |
<?php endif; ?>
|
37 |
-
<?php
|
38 |
-
/**
|
39 |
-
* Allows for the insertion of additional content into the main ticket admin panel before the tickets listing
|
40 |
-
*
|
41 |
-
* @since 4.6
|
42 |
-
*
|
43 |
-
* @param int $post_id the id of the post
|
44 |
-
*/
|
45 |
-
do_action( 'tribe_events_tickets_pre_ticket_list', $post_id );
|
46 |
-
|
47 |
-
$this->ticket_list_markup( $post_id, $tickets );
|
48 |
-
|
49 |
-
/**
|
50 |
-
* Allows for the insertion of additional content into the main ticket admin panel after the tickets listing
|
51 |
-
*
|
52 |
-
* @since 4.6
|
53 |
-
*
|
54 |
-
* @param int $post_id the id of the post
|
55 |
-
*/
|
56 |
-
do_action( 'tribe_events_tickets_post_ticket_list', $post_id );
|
57 |
-
?>
|
58 |
</div>
|
59 |
<div>
|
60 |
<?php
|
@@ -103,4 +89,4 @@ $container_class .= ( empty( $total_tickets ) ) ? ' tribe_no_capacity' : '' ;
|
|
103 |
do_action( 'tribe_events_tickets_after_new_ticket_panel', $post_id );
|
104 |
?>
|
105 |
|
106 |
-
</div
|
1 |
<?php
|
2 |
+
$attendees_url = tribe( 'tickets.attendees' )->get_report_link( get_post( $post_id ) );
|
3 |
$total_tickets = tribe( 'tickets.handler' )->get_total_event_capacity( $post_id );
|
4 |
$container_class = 'tribe_sectionheader ticket_list_container';
|
5 |
$container_class .= ( empty( $total_tickets ) ) ? ' tribe_no_capacity' : '' ;
|
6 |
?>
|
7 |
+
<div
|
8 |
+
id="tribe_panel_base"
|
9 |
+
class="ticket_panel panel_base"
|
10 |
+
aria-hidden="false"
|
11 |
+
data-save-prompt="<?php echo esc_attr( __( 'You have unsaved changes to your tickets. Discard those changes?', 'event-tickets' ) ); ?>"
|
12 |
+
>
|
13 |
<div class="<?php echo esc_attr( $container_class ); ?>">
|
14 |
+
<?php if ( ! empty( $tickets ) ) : ?>
|
15 |
<div class="ticket_table_intro">
|
16 |
<?php
|
17 |
/**
|
39 |
<?php esc_html_e( 'View Attendees', 'event-tickets' ); ?>
|
40 |
</a>
|
41 |
</div>
|
42 |
+
<?php tribe( 'tickets.admin.views' )->template( 'editor/list-table', array( 'tickets' => $tickets ) ); ?>
|
43 |
<?php endif; ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
44 |
</div>
|
45 |
<div>
|
46 |
<?php
|
89 |
do_action( 'tribe_events_tickets_after_new_ticket_panel', $post_id );
|
90 |
?>
|
91 |
|
92 |
+
</div>
|
src/admin-views/{settings_admin_panel.php → editor/panel/settings.php}
RENAMED
@@ -1,5 +1,5 @@
|
|
1 |
<?php
|
2 |
-
$header_id = get_post_meta( $post_id,
|
3 |
$header_id = ! empty( $header_id ) ? $header_id : '';
|
4 |
$header_img = '';
|
5 |
$header_filename = '';
|
@@ -28,24 +28,44 @@ if ( ! empty( $header_id ) ) {
|
|
28 |
<div class="tribe-tickets-image-upload">
|
29 |
<div class="input_block">
|
30 |
<span class="ticket_form_label"><?php esc_html_e( 'Ticket header image:', 'event-tickets' ); ?></span>
|
31 |
-
<p class="description"
|
|
|
|
|
32 |
</div>
|
33 |
-
<input
|
34 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
</div>
|
36 |
<div class="tribe-tickets-image-preview">
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
|
|
|
|
44 |
|
45 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
46 |
</div>
|
47 |
</section>
|
48 |
|
49 |
<input type="button" id="tribe_settings_form_save" name="tribe_settings_form_save" value="<?php esc_attr_e( 'Save settings', 'event-tickets' ); ?>" class="button-primary" />
|
50 |
<input type="button" id="tribe_settings_form_cancel" name="tribe_settings_form_cancel" value="<?php esc_attr_e( 'Cancel', 'event-tickets' ); ?>" class="button-secondary" />
|
51 |
-
</div
|
1 |
<?php
|
2 |
+
$header_id = get_post_meta( $post_id, tribe( 'tickets.handler' )->key_image_header, true );
|
3 |
$header_id = ! empty( $header_id ) ? $header_id : '';
|
4 |
$header_img = '';
|
5 |
$header_filename = '';
|
28 |
<div class="tribe-tickets-image-upload">
|
29 |
<div class="input_block">
|
30 |
<span class="ticket_form_label"><?php esc_html_e( 'Ticket header image:', 'event-tickets' ); ?></span>
|
31 |
+
<p class="description">
|
32 |
+
<?php esc_html_e( 'Select an image from your Media Library to display on emailed tickets. For best results, use a .jpg, .png, or .gif at least 1160px wide.', 'event-tickets' ); ?>
|
33 |
+
</p>
|
34 |
</div>
|
35 |
+
<input
|
36 |
+
type="button"
|
37 |
+
class="button"
|
38 |
+
name="tribe-tickets[settings][header_image]"
|
39 |
+
id="tribe_ticket_header_image"
|
40 |
+
value="<?php esc_html_e( 'Select an Image', 'event-tickets' ); ?>"
|
41 |
+
/>
|
42 |
+
|
43 |
+
<span id="tribe_tickets_image_preview_filename" class="<?php echo ! empty( $header_filename )? esc_attr( '-active' ): ''; ?>">
|
44 |
+
<span class="dashicons dashicons-format-image"></span>
|
45 |
+
<span class="filename"><?php echo esc_html( $header_filename ); ?></span>
|
46 |
+
</span>
|
47 |
</div>
|
48 |
<div class="tribe-tickets-image-preview">
|
49 |
+
<a class="tribe_preview" id="tribe_ticket_header_preview">
|
50 |
+
<?php
|
51 |
+
// Can't escape - mixed html
|
52 |
+
echo $header_img;
|
53 |
+
?>
|
54 |
+
</a>
|
55 |
+
<p class="description">
|
56 |
+
<a href="#" id="tribe_ticket_header_remove"><?php esc_html_e( 'Remove', 'event-tickets' ); ?></a>
|
57 |
+
</p>
|
58 |
|
59 |
+
<input
|
60 |
+
type="hidden"
|
61 |
+
id="tribe_ticket_header_image_id"
|
62 |
+
class="settings_field"
|
63 |
+
name="tribe-tickets[settings][header_image_id]"
|
64 |
+
value="<?php echo esc_attr( $header_id ); ?>"
|
65 |
+
/>
|
66 |
</div>
|
67 |
</section>
|
68 |
|
69 |
<input type="button" id="tribe_settings_form_save" name="tribe_settings_form_save" value="<?php esc_attr_e( 'Save settings', 'event-tickets' ); ?>" class="button-primary" />
|
70 |
<input type="button" id="tribe_settings_form_cancel" name="tribe_settings_form_cancel" value="<?php esc_attr_e( 'Cancel', 'event-tickets' ); ?>" class="button-secondary" />
|
71 |
+
</div>
|
src/admin-views/{edit_admin_panel.php → editor/panel/ticket.php}
RENAMED
@@ -1,15 +1,20 @@
|
|
1 |
<?php
|
2 |
-
$
|
3 |
-
|
4 |
-
$timepicker_step = (int) tribe( 'tec.admin.event-meta-box' )->get_timepicker_step( 'start' );
|
5 |
}
|
6 |
|
7 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8 |
|
9 |
-
$
|
10 |
-
'is-required' => __( 'Start sale date cannot be empty.', 'event-tickets' ),
|
11 |
-
'is-greater-or-equal-to' => __( 'Start sale date cannot be greater than End Sale date', 'event-tickets' ),
|
12 |
-
);
|
13 |
?>
|
14 |
|
15 |
<div id="tribe_panel_edit" class="ticket_panel panel_edit tribe-validation" aria-hidden="true">
|
@@ -20,8 +25,9 @@ $start_date_errors = array(
|
|
20 |
* @since 4.6
|
21 |
*
|
22 |
* @param int Post ID
|
|
|
23 |
*/
|
24 |
-
do_action( 'tribe_events_tickets_pre_edit', $post_id );
|
25 |
?>
|
26 |
|
27 |
<div id="ticket_form" class="ticket_form tribe_sectionheader">
|
@@ -79,7 +85,7 @@ $start_date_errors = array(
|
|
79 |
name='ticket_name'
|
80 |
class="ticket_field ticket_form_right"
|
81 |
size='25'
|
82 |
-
value=
|
83 |
data-validation-is-required
|
84 |
data-validation-error="<?php esc_attr_e( 'Ticket Type is a required field.', 'event-tickets' ); ?>"
|
85 |
/>
|
@@ -95,6 +101,7 @@ $start_date_errors = array(
|
|
95 |
value="<?php echo esc_attr( $class ); ?>"
|
96 |
class="ticket_field ticket_provider"
|
97 |
tabindex="-1"
|
|
|
98 |
>
|
99 |
<span>
|
100 |
<?php
|
@@ -117,14 +124,16 @@ $start_date_errors = array(
|
|
117 |
* @since 4.6
|
118 |
*
|
119 |
* @param int Post ID
|
120 |
-
* @param
|
121 |
*/
|
122 |
-
do_action( 'tribe_events_tickets_metabox_edit_main', $post_id,
|
123 |
</section>
|
124 |
|
125 |
<div class="accordion">
|
126 |
-
<?php
|
127 |
-
|
|
|
|
|
128 |
<?php
|
129 |
/**
|
130 |
* Allows for the insertion of additional content sections into the ticket edit form accordion
|
@@ -132,9 +141,9 @@ $start_date_errors = array(
|
|
132 |
* @since 4.6
|
133 |
*
|
134 |
* @param int Post ID
|
135 |
-
* @param
|
136 |
*/
|
137 |
-
do_action( 'tribe_events_tickets_metabox_edit_accordion_content', $post_id,
|
138 |
?>
|
139 |
</div>
|
140 |
|
@@ -145,11 +154,18 @@ $start_date_errors = array(
|
|
145 |
* @since 4.6
|
146 |
*
|
147 |
* @param int Post ID
|
|
|
148 |
*/
|
149 |
-
do_action( 'tribe_events_tickets_post_accordion', $post_id );
|
150 |
?>
|
151 |
<div class="ticket_bottom">
|
152 |
-
<input
|
|
|
|
|
|
|
|
|
|
|
|
|
153 |
<input
|
154 |
type="button"
|
155 |
id="ticket_form_save"
|
@@ -168,7 +184,13 @@ $start_date_errors = array(
|
|
168 |
data-depends="#Tribe__Tickets__RSVP_radio"
|
169 |
data-condition-is-checked
|
170 |
/>
|
171 |
-
<input
|
|
|
|
|
|
|
|
|
|
|
|
|
172 |
|
173 |
<?php
|
174 |
/**
|
@@ -177,8 +199,9 @@ $start_date_errors = array(
|
|
177 |
* @since 4.6
|
178 |
*
|
179 |
* @param int Post ID
|
|
|
180 |
*/
|
181 |
-
do_action( 'tribe_events_tickets_bottom', $post_id );
|
182 |
?>
|
183 |
|
184 |
<div id="ticket_bottom_right">
|
@@ -189,12 +212,12 @@ $start_date_errors = array(
|
|
189 |
* @since 4.6
|
190 |
*
|
191 |
* @param int Post ID
|
|
|
192 |
*/
|
193 |
-
do_action( 'tribe_events_tickets_bottom_right', $post_id );
|
194 |
?>
|
195 |
</div>
|
196 |
</div>
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
</div><!-- #tribe_panel_edit -->
|
1 |
<?php
|
2 |
+
if ( ! isset( $post_id ) ) {
|
3 |
+
$post_id = get_the_ID();
|
|
|
4 |
}
|
5 |
|
6 |
+
if ( ! isset( $ticket_id ) ) {
|
7 |
+
$provider = null;
|
8 |
+
$provider_class = null;
|
9 |
+
$ticket_id = null;
|
10 |
+
$ticket = null;
|
11 |
+
} else {
|
12 |
+
$provider = tribe_tickets_get_ticket_provider( $ticket_id );
|
13 |
+
$provider_class = get_class( $provider );
|
14 |
+
$ticket = $provider->get_ticket( $post_id, $ticket_id );
|
15 |
+
}
|
16 |
|
17 |
+
$modules = Tribe__Tickets__Tickets::modules();
|
|
|
|
|
|
|
18 |
?>
|
19 |
|
20 |
<div id="tribe_panel_edit" class="ticket_panel panel_edit tribe-validation" aria-hidden="true">
|
25 |
* @since 4.6
|
26 |
*
|
27 |
* @param int Post ID
|
28 |
+
* @param int Ticket ID
|
29 |
*/
|
30 |
+
do_action( 'tribe_events_tickets_pre_edit', $post_id, $ticket_id );
|
31 |
?>
|
32 |
|
33 |
<div id="ticket_form" class="ticket_form tribe_sectionheader">
|
85 |
name='ticket_name'
|
86 |
class="ticket_field ticket_form_right"
|
87 |
size='25'
|
88 |
+
value="<?php echo esc_attr( $ticket ? $ticket->name : null ); ?>"
|
89 |
data-validation-is-required
|
90 |
data-validation-error="<?php esc_attr_e( 'Ticket Type is a required field.', 'event-tickets' ); ?>"
|
91 |
/>
|
101 |
value="<?php echo esc_attr( $class ); ?>"
|
102 |
class="ticket_field ticket_provider"
|
103 |
tabindex="-1"
|
104 |
+
<?php checked( true, $provider_class ? $provider_class === $class : false ); ?>
|
105 |
>
|
106 |
<span>
|
107 |
<?php
|
124 |
* @since 4.6
|
125 |
*
|
126 |
* @param int Post ID
|
127 |
+
* @param int Ticket ID
|
128 |
*/
|
129 |
+
do_action( 'tribe_events_tickets_metabox_edit_main', $post_id, $ticket_id ); ?>
|
130 |
</section>
|
131 |
|
132 |
<div class="accordion">
|
133 |
+
<?php tribe( 'tickets.admin.views' )->template( 'editor/fieldset/advanced', array( 'post_id' => $post_id, 'ticket_id' => $ticket_id ) ); ?>
|
134 |
+
|
135 |
+
<?php tribe( 'tickets.admin.views' )->template( 'editor/fieldset/history', array( 'post_id' => $post_id, 'ticket_id' => $ticket_id ) ); ?>
|
136 |
+
|
137 |
<?php
|
138 |
/**
|
139 |
* Allows for the insertion of additional content sections into the ticket edit form accordion
|
141 |
* @since 4.6
|
142 |
*
|
143 |
* @param int Post ID
|
144 |
+
* @param int Ticket ID
|
145 |
*/
|
146 |
+
do_action( 'tribe_events_tickets_metabox_edit_accordion_content', $post_id, $ticket_id );
|
147 |
?>
|
148 |
</div>
|
149 |
|
154 |
* @since 4.6
|
155 |
*
|
156 |
* @param int Post ID
|
157 |
+
* @param int Ticket ID
|
158 |
*/
|
159 |
+
do_action( 'tribe_events_tickets_post_accordion', $post_id, $ticket_id );
|
160 |
?>
|
161 |
<div class="ticket_bottom">
|
162 |
+
<input
|
163 |
+
type="hidden"
|
164 |
+
name="ticket_id"
|
165 |
+
id="ticket_id"
|
166 |
+
class="ticket_field"
|
167 |
+
value="<?php echo esc_attr( $ticket_id ); ?>"
|
168 |
+
/>
|
169 |
<input
|
170 |
type="button"
|
171 |
id="ticket_form_save"
|
184 |
data-depends="#Tribe__Tickets__RSVP_radio"
|
185 |
data-condition-is-checked
|
186 |
/>
|
187 |
+
<input
|
188 |
+
type="button"
|
189 |
+
id="ticket_form_cancel"
|
190 |
+
class="button-secondary"
|
191 |
+
name="ticket_form_cancel"
|
192 |
+
value="<?php esc_attr_e( 'Cancel', 'event-tickets' ); ?>"
|
193 |
+
/>
|
194 |
|
195 |
<?php
|
196 |
/**
|
199 |
* @since 4.6
|
200 |
*
|
201 |
* @param int Post ID
|
202 |
+
* @param int Ticket ID
|
203 |
*/
|
204 |
+
do_action( 'tribe_events_tickets_bottom', $post_id, $ticket_id );
|
205 |
?>
|
206 |
|
207 |
<div id="ticket_bottom_right">
|
212 |
* @since 4.6
|
213 |
*
|
214 |
* @param int Post ID
|
215 |
+
* @param int Ticket ID
|
216 |
*/
|
217 |
+
do_action( 'tribe_events_tickets_bottom_right', $post_id, $ticket_id );
|
218 |
?>
|
219 |
</div>
|
220 |
</div>
|
221 |
+
</div>
|
222 |
+
</div>
|
223 |
+
</div>
|
|
src/admin-views/meta-box.php
DELETED
@@ -1,36 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* @var WP_Post $post
|
4 |
-
* @var bool $show_global_stock
|
5 |
-
* @var Tribe__Tickets__Global_Stock $global_stock
|
6 |
-
*/
|
7 |
-
|
8 |
-
// Don't load directly
|
9 |
-
if ( ! defined( 'ABSPATH' ) ) {
|
10 |
-
die( '-1' );
|
11 |
-
}
|
12 |
-
$post_id = get_the_ID();
|
13 |
-
|
14 |
-
$modules = Tribe__Tickets__Tickets::modules();
|
15 |
-
|
16 |
-
$attendees_url = tribe( 'tickets.handler' )->get_attendee_report_link( get_post( $post_id ) );
|
17 |
-
?>
|
18 |
-
|
19 |
-
<div class="tribe-tickets-editor-blocker">
|
20 |
-
<span class="spinner"></span>
|
21 |
-
</div>
|
22 |
-
|
23 |
-
<div id="event_tickets" class="eventtable" aria-live="polite">
|
24 |
-
<?php
|
25 |
-
wp_nonce_field( 'tribe-tickets-meta-box', 'tribe-tickets-post-settings' );
|
26 |
-
|
27 |
-
// the main panel
|
28 |
-
require_once( 'base_admin_panel.php' );
|
29 |
-
|
30 |
-
// the add/edit panel
|
31 |
-
require_once( 'edit_admin_panel.php' );
|
32 |
-
|
33 |
-
// the settings panel
|
34 |
-
require_once( 'settings_admin_panel.php' );
|
35 |
-
?>
|
36 |
-
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/admin-views/rsvp-metabox-capacity.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
data-condition-is-checked
|
5 |
>
|
6 |
<label
|
7 |
-
for="
|
8 |
class="ticket_form_label ticket_form_left"
|
9 |
>
|
10 |
<?php esc_html_e( 'Capacity:', 'event-tickets' ); ?>
|
4 |
data-condition-is-checked
|
5 |
>
|
6 |
<label
|
7 |
+
for="Tribe__Tickets__RSVP_capacity"
|
8 |
class="ticket_form_label ticket_form_left"
|
9 |
>
|
10 |
<?php esc_html_e( 'Capacity:', 'event-tickets' ); ?>
|
src/resources/css/rsvp.css
CHANGED
@@ -197,6 +197,10 @@
|
|
197 |
font-size: 90%;
|
198 |
}
|
199 |
|
|
|
|
|
|
|
|
|
200 |
/* Tickets Table */
|
201 |
|
202 |
.tribe-events-tickets {
|
197 |
font-size: 90%;
|
198 |
}
|
199 |
|
200 |
+
.tribe-link-view-attendee {
|
201 |
+
margin: 15px 0;
|
202 |
+
}
|
203 |
+
|
204 |
/* Tickets Table */
|
205 |
|
206 |
.tribe-events-tickets {
|
src/resources/css/rsvp.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.tribe-rsvp{padding:20px 0}.tribe-tickets-meta-row{display:none}.tribe-tickets-has-rsvp .tribe-tickets-meta-row{display:table-row}.tribe-tickets-attendee{padding:10px}.tribe-events-style-full .tribe-events-tickets .tribe-tickets-attendee table,.tribe-events-style-full .tribe-events-tickets .tribe-tickets-attendee td,.tribe-events-style-full .tribe-events-tickets .tribe-tickets-attendee tr,.tribe-events-tickets .tribe-tickets-attendee table,.tribe-events-tickets .tribe-tickets-attendee td,.tribe-events-tickets .tribe-tickets-attendee tr{border:0}.tribe-rsvp-message-display .tribe-rsvp-messages{display:block}.tribe-rsvp-messages{display:none;padding:10px 10px 5px}.tribe-rsvp-message{border-radius:3px;border-style:solid;border-width:1px;font-size:12px;margin:0 0 5px;padding:0 .6em}.tribe-rsvp-message-success{background-color:#ffffe0;border-color:#e6db55}.tribe-rsvp-message-error{background-color:#ffebe8;border-color:#c00}.tribe-ticket-quantity{width:100%}.tickets-unavailable{font-style:italic}.tribe-rsvp-list{list-style:none;padding:0;margin:0}.tribe-rsvp-list>.tribe-item{min-height:105px;padding:20px;border:1px solid #ededed;border-bottom:0}.tribe-rsvp-list>.tribe-item:last-child{border-bottom:1px solid #ededed;margin-bottom:20px}.tribe-rsvp-list>.tribe-item.tribe-disabled{background-color:#efefef;border-color:#ddd;color:#717171}.tribe-rsvp-list>.tribe-item.tribe-disabled:last-child{border-bottom-color:#ddd}.tribe-rsvp-list>.tribe-item .tribe-answer{float:right;display:inline-block}.tribe-rsvp-list>.tribe-item table{border:0;margin:0}.tribe-rsvp-list>.tribe-item td{border:0}.list-attendee{color:#999;display:inline-block;letter-spacing:1px;text-transform:uppercase}.tribe-submit-tickets-form{margin-top:20px}.user-details{margin:0 0 1.5em}.user-details p{margin:0 0 .5em}.tribe-answer{line-height:2}.tribe-answer .type-label{margin-bottom:0;padding-right:.5em}.tribe-answer label{display:block}.tribe-answer select{background:#fff;border:1px solid #ddd;height:30px;line-height:1;margin-left:5px}.tribe-rsvp h2{margin-bottom:20px;line-height:1.2}.event-tickets-meta-label{font-weight:700;margin:0 1em 0 0}.tribe-theme-parent-twentysixteen .comment-content a,.tribe-theme-parent-twentysixteen .entry-content a,.tribe-theme-parent-twentysixteen .entry-footer a:hover,.tribe-theme-parent-twentysixteen .entry-summary a,.tribe-theme-parent-twentysixteen .logged-in-as a,.tribe-theme-parent-twentysixteen .pingback .comment-body>a,.tribe-theme-parent-twentysixteen .site-info a:hover,.tribe-theme-parent-twentysixteen .taxonomy-description a,.tribe-theme-parent-twentysixteen .textwidget a,.tribe-theme-twentysixteen .comment-content a,.tribe-theme-twentysixteen .entry-content a,.tribe-theme-twentysixteen .entry-footer a:hover,.tribe-theme-twentysixteen .entry-summary a,.tribe-theme-twentysixteen .logged-in-as a,.tribe-theme-twentysixteen .pingback .comment-body>a,.tribe-theme-twentysixteen .site-info a:hover,.tribe-theme-twentysixteen .taxonomy-description a,.tribe-theme-twentysixteen .textwidget a{box-shadow:none}.tribe-events-tickets-title.tribe--rsvp{margin:0}.tribe-events-style-full.tribe-events-style-theme h2.tribe-events-tickets-title{font-size:90%}.tribe-events-tickets{background:#f8f8f8;border:0;border-radius:3px;position:relative}.tribe-events-tickets .woocommerce.add-to-cart,.tribe-events-tickets table,.tribe-events-tickets td,.tribe-events-tickets th{border:0}.tribe-events-tickets td{padding:8px 10px}.tribe-events-tickets .woocommerce.add-to-cart{padding:16px}.tribe-events-tickets .tickets_description,.tribe-events-tickets .tickets_name,.tribe-events-tickets .tickets_price,.tribe-events-tickets .woocommerce{border-bottom:1px solid #dfdfdf}.tribe-events-tickets .woocommerce .quantity input{background-color:#fff;border-radius:3px;margin-bottom:5px;padding:5px 10px;text-align:left;width:4.375em}.tribe-events-tickets .tribe-link-tickets-message{background:hsla(0,0%,78%,.8);bottom:0;left:0;position:absolute;right:0;text-align:center;top:0}.tribe-events-tickets .tribe-link-tickets-message .no-javascript-msg{left:50%;position:absolute;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:90%}.tribe-events-tickets .tribe-tickets-remaining{color:#777;display:block;font-size:11px}.tribe-events-tickets .tribe-tickets-attendees-list-optout label{color:#777;font-size:13px}.tribe-events-tickets .tribe-tickets-attendees-list-optout input[type=checkbox]+label,.tribe-events-tickets .tribe-tickets-attendees-list-optout input[type=radio]+label{display:inline-block}.tribe-events-tickets .tickets_description,.tribe-events-tickets .tickets_name,.tribe-events-tickets .tickets_name p,.tribe-events-tickets .tickets_price{border-bottom:1px solid #dfdfdf;color:#464646;font-size:15px;padding:16px 10px}.tribe-events-tickets input[type=date],.tribe-events-tickets input[type=datetime-local],.tribe-events-tickets input[type=email],.tribe-events-tickets input[type=month],.tribe-events-tickets input[type=number],.tribe-events-tickets input[type=password],.tribe-events-tickets input[type=search],.tribe-events-tickets input[type=tel],.tribe-events-tickets input[type=text],.tribe-events-tickets input[type=time],.tribe-events-tickets input[type=url],.tribe-events-tickets input[type=week],.tribe-events-tickets select,.tribe-events-tickets textarea{background:#fff}.tribe-events-tickets header{height:auto}.tribe-events-tickets-rsvp .tribe-ticket.quantity{border-bottom:1px solid #dfdfdf;width:192px}.tribe-events-tickets-rsvp .tribe-ticket.quantity input{margin-bottom:5px;padding:5px 10px;width:4.375em}
|
1 |
+
.tribe-rsvp{padding:20px 0}.tribe-tickets-meta-row{display:none}.tribe-tickets-has-rsvp .tribe-tickets-meta-row{display:table-row}.tribe-tickets-attendee{padding:10px}.tribe-events-style-full .tribe-events-tickets .tribe-tickets-attendee table,.tribe-events-style-full .tribe-events-tickets .tribe-tickets-attendee td,.tribe-events-style-full .tribe-events-tickets .tribe-tickets-attendee tr,.tribe-events-tickets .tribe-tickets-attendee table,.tribe-events-tickets .tribe-tickets-attendee td,.tribe-events-tickets .tribe-tickets-attendee tr{border:0}.tribe-rsvp-message-display .tribe-rsvp-messages{display:block}.tribe-rsvp-messages{display:none;padding:10px 10px 5px}.tribe-rsvp-message{border-radius:3px;border-style:solid;border-width:1px;font-size:12px;margin:0 0 5px;padding:0 .6em}.tribe-rsvp-message-success{background-color:#ffffe0;border-color:#e6db55}.tribe-rsvp-message-error{background-color:#ffebe8;border-color:#c00}.tribe-ticket-quantity{width:100%}.tickets-unavailable{font-style:italic}.tribe-rsvp-list{list-style:none;padding:0;margin:0}.tribe-rsvp-list>.tribe-item{min-height:105px;padding:20px;border:1px solid #ededed;border-bottom:0}.tribe-rsvp-list>.tribe-item:last-child{border-bottom:1px solid #ededed;margin-bottom:20px}.tribe-rsvp-list>.tribe-item.tribe-disabled{background-color:#efefef;border-color:#ddd;color:#717171}.tribe-rsvp-list>.tribe-item.tribe-disabled:last-child{border-bottom-color:#ddd}.tribe-rsvp-list>.tribe-item .tribe-answer{float:right;display:inline-block}.tribe-rsvp-list>.tribe-item table{border:0;margin:0}.tribe-rsvp-list>.tribe-item td{border:0}.list-attendee{color:#999;display:inline-block;letter-spacing:1px;text-transform:uppercase}.tribe-submit-tickets-form{margin-top:20px}.user-details{margin:0 0 1.5em}.user-details p{margin:0 0 .5em}.tribe-answer{line-height:2}.tribe-answer .type-label{margin-bottom:0;padding-right:.5em}.tribe-answer label{display:block}.tribe-answer select{background:#fff;border:1px solid #ddd;height:30px;line-height:1;margin-left:5px}.tribe-rsvp h2{margin-bottom:20px;line-height:1.2}.event-tickets-meta-label{font-weight:700;margin:0 1em 0 0}.tribe-theme-parent-twentysixteen .comment-content a,.tribe-theme-parent-twentysixteen .entry-content a,.tribe-theme-parent-twentysixteen .entry-footer a:hover,.tribe-theme-parent-twentysixteen .entry-summary a,.tribe-theme-parent-twentysixteen .logged-in-as a,.tribe-theme-parent-twentysixteen .pingback .comment-body>a,.tribe-theme-parent-twentysixteen .site-info a:hover,.tribe-theme-parent-twentysixteen .taxonomy-description a,.tribe-theme-parent-twentysixteen .textwidget a,.tribe-theme-twentysixteen .comment-content a,.tribe-theme-twentysixteen .entry-content a,.tribe-theme-twentysixteen .entry-footer a:hover,.tribe-theme-twentysixteen .entry-summary a,.tribe-theme-twentysixteen .logged-in-as a,.tribe-theme-twentysixteen .pingback .comment-body>a,.tribe-theme-twentysixteen .site-info a:hover,.tribe-theme-twentysixteen .taxonomy-description a,.tribe-theme-twentysixteen .textwidget a{box-shadow:none}.tribe-events-tickets-title.tribe--rsvp{margin:0}.tribe-events-style-full.tribe-events-style-theme h2.tribe-events-tickets-title{font-size:90%}.tribe-link-view-attendee{margin:15px 0}.tribe-events-tickets{background:#f8f8f8;border:0;border-radius:3px;position:relative}.tribe-events-tickets .woocommerce.add-to-cart,.tribe-events-tickets table,.tribe-events-tickets td,.tribe-events-tickets th{border:0}.tribe-events-tickets td{padding:8px 10px}.tribe-events-tickets .woocommerce.add-to-cart{padding:16px}.tribe-events-tickets .tickets_description,.tribe-events-tickets .tickets_name,.tribe-events-tickets .tickets_price,.tribe-events-tickets .woocommerce{border-bottom:1px solid #dfdfdf}.tribe-events-tickets .woocommerce .quantity input{background-color:#fff;border-radius:3px;margin-bottom:5px;padding:5px 10px;text-align:left;width:4.375em}.tribe-events-tickets .tribe-link-tickets-message{background:hsla(0,0%,78%,.8);bottom:0;left:0;position:absolute;right:0;text-align:center;top:0}.tribe-events-tickets .tribe-link-tickets-message .no-javascript-msg{left:50%;position:absolute;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:90%}.tribe-events-tickets .tribe-tickets-remaining{color:#777;display:block;font-size:11px}.tribe-events-tickets .tribe-tickets-attendees-list-optout label{color:#777;font-size:13px}.tribe-events-tickets .tribe-tickets-attendees-list-optout input[type=checkbox]+label,.tribe-events-tickets .tribe-tickets-attendees-list-optout input[type=radio]+label{display:inline-block}.tribe-events-tickets .tickets_description,.tribe-events-tickets .tickets_name,.tribe-events-tickets .tickets_name p,.tribe-events-tickets .tickets_price{border-bottom:1px solid #dfdfdf;color:#464646;font-size:15px;padding:16px 10px}.tribe-events-tickets input[type=date],.tribe-events-tickets input[type=datetime-local],.tribe-events-tickets input[type=email],.tribe-events-tickets input[type=month],.tribe-events-tickets input[type=number],.tribe-events-tickets input[type=password],.tribe-events-tickets input[type=search],.tribe-events-tickets input[type=tel],.tribe-events-tickets input[type=text],.tribe-events-tickets input[type=time],.tribe-events-tickets input[type=url],.tribe-events-tickets input[type=week],.tribe-events-tickets select,.tribe-events-tickets textarea{background:#fff}.tribe-events-tickets header{height:auto}.tribe-events-tickets-rsvp .tribe-ticket.quantity{border-bottom:1px solid #dfdfdf;width:192px}.tribe-events-tickets-rsvp .tribe-ticket.quantity input{margin-bottom:5px;padding:5px 10px;width:4.375em}
|
src/resources/css/tickets-refresh.css
CHANGED
@@ -437,6 +437,7 @@ p.description {
|
|
437 |
#settings_global_capacity_edit {
|
438 |
background-color: #fff;
|
439 |
border: 1px solid #b4b9be;
|
|
|
440 |
font-size: inherit;
|
441 |
margin-left: -5px;
|
442 |
}
|
437 |
#settings_global_capacity_edit {
|
438 |
background-color: #fff;
|
439 |
border: 1px solid #b4b9be;
|
440 |
+
float: left;
|
441 |
font-size: inherit;
|
442 |
margin-left: -5px;
|
443 |
}
|
src/resources/css/tickets-refresh.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.screen_reader_text{clip:rect(0 0 0 0);clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}#poststuff .inside{margin-top:12px}.tribe-tickets-editor-blocker{background:hsla(0,0%,100%,.7);bottom:0;display:none;left:0;position:absolute;right:0;top:0;z-index:100000}.tribe-tickets-editor-blocker .spinner{left:50%;margin-left:-10px;margin-top:-10px;position:absolute;top:50%;z-index:100404}.tribe-tickets-editor-history-list{margin-left:20px}#event_tickets{position:relative}#event_tickets fieldset{border:0;padding:0;margin:0}#event_tickets .ticket_form_left{font-weight:700}#event_tickets label{font-weight:400}#event_tickets input[type=color].ticket_form_right,#event_tickets input[type=date].ticket_form_right,#event_tickets input[type=datetime-local].ticket_form_right,#event_tickets input[type=datetime].ticket_form_right,#event_tickets input[type=email].ticket_form_right,#event_tickets input[type=month].ticket_form_right,#event_tickets input[type=number].ticket_form_right,#event_tickets input[type=password].ticket_form_right,#event_tickets input[type=range].ticket_form_right,#event_tickets input[type=search].ticket_form_right,#event_tickets input[type=tel].ticket_form_right,#event_tickets input[type=text].ticket_form_right,#event_tickets input[type=time].ticket_form_right,#event_tickets input[type=url].ticket_form_right,#event_tickets input[type=week].ticket_form_right,#event_tickets label.ticket_form_right,#event_tickets textarea.ticket_form_right{display:block}#event_tickets .tribe-description-small{font-size:.95em;margin-top:5px;color:#888}.ticket_panel{border:1px solid #a3a3a3;border-radius:5px;box-sizing:border-box;opacity:1;position:relative;padding:8px;visibility:visible;width:100%;will-change:transform}.ticket_panel[aria-hidden=true]{opacity:0;position:absolute;visibility:hidden}.ticket_panel section{margin:2em 0}.ticket_panel #tribe-tickets-image{margin-top:.5em}.ticket_panel.panel_base{border:0;padding:.5em 0 0}.ticket_panel.panel_edit{border:0}.ticket_panel.panel_settings h4{margin:0}.ticket_panel.panel_settings .settings_main{margin-bottom:0;margin-top:0}.ticket_panel.panel_settings .settings_main p{font-size:inherit}.ticket_panel h4,.ticket_title{text-transform:uppercase}.ticket_title{margin-top:0}.ticket_list_container{margin-bottom:20px}.tribe_no_capacity{margin:0}.ticket_delete{color:#a00}.ticket_delete:hover{color:#dc3232}#settings_form_toggle{margin-top:1em}.global_capacity_edit_button{background:none;border:0;color:#ccc;cursor:pointer;padding:0}.tribe-button-icon:before{font-family:dashicons;font-size:1.25em;left:-.25em;position:relative;vertical-align:middle}.tribe-button-icon .tribe-hidden{display:none}.tribe-button-icon.tribe-button-icon-plus:before{content:"\f132"}.tribe-button-icon.tribe-button-icon-edit:before{content:"\f464"}.tribe-button-icon.tribe-button-icon-settings:before{content:"\f111";top:-2px}.tribe-tickets-image-preview{margin-top:2em;max-width:200px}#tribe_ticket_header_image{margin-right:2em;vertical-align:baseline}#tribe_tickets_image_preview_filename{display:none;font-weight:700}#tribe_tickets_image_preview_filename.-active{display:inline}#tribe_tickets_image_preview_filename .dashicons{vertical-align:text-bottom}#tribe_tickets_image_preview_filename .filename{margin-left:.5em}.ticket_table_intro .button-secondary{float:right;margin-bottom:15px;margin-left:5px}.ticket_table_intro #ticket_form_total_capacity{display:inline-block;line-height:28px;position:relative}.ticket_table_intro #ticket_form_total_capacity .tooltip{background-color:#efefef;border-radius:3px;border:1px solid #a3a3a3;display:none;margin-left:.5em;padding:.5em;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);z-index:1}.ticket_table_intro #ticket_form_total_capacity:hover .tooltip{display:block}.ticket_table_intro #ticket_form_total_capacity .tooltip{left:100%;top:53%;white-space:nowrap}.input_block{margin-bottom:1em;position:relative}.input_block .ticket_form_left{display:block;box-sizing:border-box;float:left;margin:0;padding-left:0;padding-right:1em}.input_block input,.input_block textarea{max-width:calc(100% - 132px)}.input_block .ticket_field.hasDatepicker{border-radius:3px;font-size:13px;margin-bottom:0}.input_block .input_block,.input_block .ticket_form_right{display:block;margin-top:0}.input_block .input_block:last-child,.input_block .ticket_form_right:last-child{margin-bottom:0}.input_block .input_block{margin-top:1em}.input_block legend+.input_block{margin-top:0}.input_block .tribe_stock_block{padding-left:calc(20px + .4em)}.input_block .tribe_stock_block.tribe-active{padding-top:1em}.input_block label.ticket_form_right{margin-bottom:1em}.input_block .tribe_block_label{display:block}.input_block .ticket_stock_total{color:#666;font-style:italic;margin-left:1em}#ticket_form .input_block .ticket_stock_total_value{margin-right:0}.input_block .tribe-timepicker{width:6em}#tribe_ticket_provider_wrapper{clip:rect(0 0 0 0);clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}#event_tickets{font-size:12px}h4.ticket_form_title{font-size:1.2em;margin-top:0}#ticket_form input[type=checkbox],#ticket_form input[type=radio]{margin-right:.4em}.tribe_soft_note,p.description{color:#a3a3a3;font-size:inherit;font-style:normal}#ticket_form .ticket_advanced.history._show span:first-child,#ticket_form .ticket_advanced.history .toggle-history span:nth-child(2),#ticket_form .ticket_advanced.history ul{display:none}#ticket_form .ticket_advanced.history._show span:nth-child(2){display:inline}#ticket_form .ticket_advanced.history._show ul{display:block}.ticket_bottom{margin-top:1em}.tribe_preview{cursor:pointer}#ticket_form .tooltip_container{position:relative;display:inline;vertical-align:middle}#ticket_form .tooltip_container .tooltip{background-color:#efefef;border-radius:3px;border:1px solid #a3a3a3;display:none;margin-left:.5em;padding:.5em;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);z-index:1}#ticket_form .tooltip_container:hover .tooltip{display:block}#ticket_form .tooltip_container .tooltip{background-color:#efefef;left:100%;margin:0;width:200px}#settings_global_capacity_edit{background-color:#fff;border:1px solid #b4b9be;font-size:inherit;margin-left:-5px}#settings_global_capacity_edit:disabled{background-color:transparent;border:0;box-shadow:none;color:#555}#ticket_form .original_stock_cap span{margin-right:0}@media (min-width:782px){.ticket_panel{padding:16px}.input_block .input_block,.input_block .ticket_form_right{margin-left:132px}#ticket_bottom_right{float:right}}@media (min-width:400px){#settings_form_toggle{float:right;margin-top:0}}@media screen and (max-width:520px){.ticket_table_intro #ticket_form_total_capacity{width:100%}}@media screen and (max-width:782px){.ticket_table_intro #ticket_form_total_capacity .tooltip{left:auto;margin-top:5px;position:relative;top:auto;-webkit-transform:none;transform:none;width:100%}.input_block .ticket_form_left{float:none;display:inline-block;padding:0 0 6px}.input_block .tribe_stock_block{padding-left:36px}.input_block .tribe_stock_block.tribe-active{padding-top:5px}#ticket_form .tooltip_container .tooltip{left:auto;margin-top:5px;position:relative;top:auto;-webkit-transform:none;transform:none;width:100%}}@media (max-width:782px){#ticket_bottom_right{margin-top:1em}}@media screen and (max-width:390px){#ticket_form .tooltip_container{display:none}}
|
1 |
+
.screen_reader_text{clip:rect(0 0 0 0);clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}#poststuff .inside{margin-top:12px}.tribe-tickets-editor-blocker{background:hsla(0,0%,100%,.7);bottom:0;display:none;left:0;position:absolute;right:0;top:0;z-index:100000}.tribe-tickets-editor-blocker .spinner{left:50%;margin-left:-10px;margin-top:-10px;position:absolute;top:50%;z-index:100404}.tribe-tickets-editor-history-list{margin-left:20px}#event_tickets{position:relative}#event_tickets fieldset{border:0;padding:0;margin:0}#event_tickets .ticket_form_left{font-weight:700}#event_tickets label{font-weight:400}#event_tickets input[type=color].ticket_form_right,#event_tickets input[type=date].ticket_form_right,#event_tickets input[type=datetime-local].ticket_form_right,#event_tickets input[type=datetime].ticket_form_right,#event_tickets input[type=email].ticket_form_right,#event_tickets input[type=month].ticket_form_right,#event_tickets input[type=number].ticket_form_right,#event_tickets input[type=password].ticket_form_right,#event_tickets input[type=range].ticket_form_right,#event_tickets input[type=search].ticket_form_right,#event_tickets input[type=tel].ticket_form_right,#event_tickets input[type=text].ticket_form_right,#event_tickets input[type=time].ticket_form_right,#event_tickets input[type=url].ticket_form_right,#event_tickets input[type=week].ticket_form_right,#event_tickets label.ticket_form_right,#event_tickets textarea.ticket_form_right{display:block}#event_tickets .tribe-description-small{font-size:.95em;margin-top:5px;color:#888}.ticket_panel{border:1px solid #a3a3a3;border-radius:5px;box-sizing:border-box;opacity:1;position:relative;padding:8px;visibility:visible;width:100%;will-change:transform}.ticket_panel[aria-hidden=true]{opacity:0;position:absolute;visibility:hidden}.ticket_panel section{margin:2em 0}.ticket_panel #tribe-tickets-image{margin-top:.5em}.ticket_panel.panel_base{border:0;padding:.5em 0 0}.ticket_panel.panel_edit{border:0}.ticket_panel.panel_settings h4{margin:0}.ticket_panel.panel_settings .settings_main{margin-bottom:0;margin-top:0}.ticket_panel.panel_settings .settings_main p{font-size:inherit}.ticket_panel h4,.ticket_title{text-transform:uppercase}.ticket_title{margin-top:0}.ticket_list_container{margin-bottom:20px}.tribe_no_capacity{margin:0}.ticket_delete{color:#a00}.ticket_delete:hover{color:#dc3232}#settings_form_toggle{margin-top:1em}.global_capacity_edit_button{background:none;border:0;color:#ccc;cursor:pointer;padding:0}.tribe-button-icon:before{font-family:dashicons;font-size:1.25em;left:-.25em;position:relative;vertical-align:middle}.tribe-button-icon .tribe-hidden{display:none}.tribe-button-icon.tribe-button-icon-plus:before{content:"\f132"}.tribe-button-icon.tribe-button-icon-edit:before{content:"\f464"}.tribe-button-icon.tribe-button-icon-settings:before{content:"\f111";top:-2px}.tribe-tickets-image-preview{margin-top:2em;max-width:200px}#tribe_ticket_header_image{margin-right:2em;vertical-align:baseline}#tribe_tickets_image_preview_filename{display:none;font-weight:700}#tribe_tickets_image_preview_filename.-active{display:inline}#tribe_tickets_image_preview_filename .dashicons{vertical-align:text-bottom}#tribe_tickets_image_preview_filename .filename{margin-left:.5em}.ticket_table_intro .button-secondary{float:right;margin-bottom:15px;margin-left:5px}.ticket_table_intro #ticket_form_total_capacity{display:inline-block;line-height:28px;position:relative}.ticket_table_intro #ticket_form_total_capacity .tooltip{background-color:#efefef;border-radius:3px;border:1px solid #a3a3a3;display:none;margin-left:.5em;padding:.5em;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);z-index:1}.ticket_table_intro #ticket_form_total_capacity:hover .tooltip{display:block}.ticket_table_intro #ticket_form_total_capacity .tooltip{left:100%;top:53%;white-space:nowrap}.input_block{margin-bottom:1em;position:relative}.input_block .ticket_form_left{display:block;box-sizing:border-box;float:left;margin:0;padding-left:0;padding-right:1em}.input_block input,.input_block textarea{max-width:calc(100% - 132px)}.input_block .ticket_field.hasDatepicker{border-radius:3px;font-size:13px;margin-bottom:0}.input_block .input_block,.input_block .ticket_form_right{display:block;margin-top:0}.input_block .input_block:last-child,.input_block .ticket_form_right:last-child{margin-bottom:0}.input_block .input_block{margin-top:1em}.input_block legend+.input_block{margin-top:0}.input_block .tribe_stock_block{padding-left:calc(20px + .4em)}.input_block .tribe_stock_block.tribe-active{padding-top:1em}.input_block label.ticket_form_right{margin-bottom:1em}.input_block .tribe_block_label{display:block}.input_block .ticket_stock_total{color:#666;font-style:italic;margin-left:1em}#ticket_form .input_block .ticket_stock_total_value{margin-right:0}.input_block .tribe-timepicker{width:6em}#tribe_ticket_provider_wrapper{clip:rect(0 0 0 0);clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}#event_tickets{font-size:12px}h4.ticket_form_title{font-size:1.2em;margin-top:0}#ticket_form input[type=checkbox],#ticket_form input[type=radio]{margin-right:.4em}.tribe_soft_note,p.description{color:#a3a3a3;font-size:inherit;font-style:normal}#ticket_form .ticket_advanced.history._show span:first-child,#ticket_form .ticket_advanced.history .toggle-history span:nth-child(2),#ticket_form .ticket_advanced.history ul{display:none}#ticket_form .ticket_advanced.history._show span:nth-child(2){display:inline}#ticket_form .ticket_advanced.history._show ul{display:block}.ticket_bottom{margin-top:1em}.tribe_preview{cursor:pointer}#ticket_form .tooltip_container{position:relative;display:inline;vertical-align:middle}#ticket_form .tooltip_container .tooltip{background-color:#efefef;border-radius:3px;border:1px solid #a3a3a3;display:none;margin-left:.5em;padding:.5em;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);z-index:1}#ticket_form .tooltip_container:hover .tooltip{display:block}#ticket_form .tooltip_container .tooltip{background-color:#efefef;left:100%;margin:0;width:200px}#settings_global_capacity_edit{background-color:#fff;border:1px solid #b4b9be;float:left;font-size:inherit;margin-left:-5px}#settings_global_capacity_edit:disabled{background-color:transparent;border:0;box-shadow:none;color:#555}#ticket_form .original_stock_cap span{margin-right:0}@media (min-width:782px){.ticket_panel{padding:16px}.input_block .input_block,.input_block .ticket_form_right{margin-left:132px}#ticket_bottom_right{float:right}}@media (min-width:400px){#settings_form_toggle{float:right;margin-top:0}}@media screen and (max-width:520px){.ticket_table_intro #ticket_form_total_capacity{width:100%}}@media screen and (max-width:782px){.ticket_table_intro #ticket_form_total_capacity .tooltip{left:auto;margin-top:5px;position:relative;top:auto;-webkit-transform:none;transform:none;width:100%}.input_block .ticket_form_left{float:none;display:inline-block;padding:0 0 6px}.input_block .tribe_stock_block{padding-left:36px}.input_block .tribe_stock_block.tribe-active{padding-top:5px}#ticket_form .tooltip_container .tooltip{left:auto;margin-top:5px;position:relative;top:auto;-webkit-transform:none;transform:none;width:100%}}@media (max-width:782px){#ticket_bottom_right{margin-top:1em}}@media screen and (max-width:390px){#ticket_form .tooltip_container{display:none}}
|
src/resources/css/tickets-tables.css
CHANGED
@@ -68,10 +68,11 @@
|
|
68 |
font-size: 1.8em;
|
69 |
margin-right: 10px;
|
70 |
position: relative;
|
|
|
71 |
}
|
72 |
|
73 |
-
.tribe-tickets-editor-table .
|
74 |
-
display:
|
75 |
}
|
76 |
|
77 |
.tribe-tickets-editor-table .tribe-mobile-only {
|
@@ -179,8 +180,8 @@
|
|
179 |
width: 100%;
|
180 |
}
|
181 |
|
182 |
-
.tribe-tickets-editor-table.
|
183 |
-
.tribe-tickets-editor-table.
|
184 |
width: 100%;
|
185 |
}
|
186 |
|
68 |
font-size: 1.8em;
|
69 |
margin-right: 10px;
|
70 |
position: relative;
|
71 |
+
display: none;
|
72 |
}
|
73 |
|
74 |
+
.tribe-tickets-editor-table .ui-sortable td.column-primary .tribe-handle {
|
75 |
+
display: block;
|
76 |
}
|
77 |
|
78 |
.tribe-tickets-editor-table .tribe-mobile-only {
|
180 |
width: 100%;
|
181 |
}
|
182 |
|
183 |
+
.tribe-tickets-editor-table.tribe-tickets-editor-capacity-table td:first-child,
|
184 |
+
.tribe-tickets-editor-table.tribe-tickets-editor-capacity-table td[colspan="2"] {
|
185 |
width: 100%;
|
186 |
}
|
187 |
|
src/resources/css/tickets-tables.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
.tribe-tickets-editor-table{border-radius:3px;border-spacing:0;border:1px solid #ccc;margin:20px 0}.tribe-tickets-editor-table thead{background-color:#f9f9f9;border-bottom:1px solid #ccc}.tribe-tickets-editor-table tbody.ui-sortable:after,.tribe-tickets-editor-table tbody.ui-sortable:before{content:"";display:table-row;height:2px;width:100%}.tribe-tickets-editor-table tr{background-color:#fff}.tribe-tickets-editor-table tr td{border-bottom:1px solid #ccc}.tribe-tickets-editor-table tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.tribe-tickets-editor-table tr:first-child td:first-child{border-top-left-radius:3px}.tribe-tickets-editor-table tr:first-child td:last-child{border-top-right-radius:3px}.tribe-tickets-editor-table tr:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.tribe-tickets-editor-table tr:last-child td:first-child{border-bottom-left-radius:3px}.tribe-tickets-editor-table tr:last-child td:last-child{border-bottom-right-radius:3px}.tribe-tickets-editor-table td.column-primary .tribe-handle{color:#ccc;cursor:pointer;font-size:1.8em;margin-right:10px;position:relative}.tribe-tickets-editor-table .
|
1 |
+
.tribe-tickets-editor-table{border-radius:3px;border-spacing:0;border:1px solid #ccc;margin:20px 0}.tribe-tickets-editor-table thead{background-color:#f9f9f9;border-bottom:1px solid #ccc}.tribe-tickets-editor-table tbody.ui-sortable:after,.tribe-tickets-editor-table tbody.ui-sortable:before{content:"";display:table-row;height:2px;width:100%}.tribe-tickets-editor-table tr{background-color:#fff}.tribe-tickets-editor-table tr td{border-bottom:1px solid #ccc}.tribe-tickets-editor-table tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.tribe-tickets-editor-table tr:first-child td:first-child{border-top-left-radius:3px}.tribe-tickets-editor-table tr:first-child td:last-child{border-top-right-radius:3px}.tribe-tickets-editor-table tr:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.tribe-tickets-editor-table tr:last-child td:first-child{border-bottom-left-radius:3px}.tribe-tickets-editor-table tr:last-child td:last-child{border-bottom-right-radius:3px}.tribe-tickets-editor-table td.column-primary .tribe-handle{color:#ccc;cursor:pointer;font-size:1.8em;margin-right:10px;position:relative;display:none}.tribe-tickets-editor-table .ui-sortable td.column-primary .tribe-handle{display:block}.tribe-tickets-editor-table .tribe-mobile-only{display:none}.tribe-tickets-editor-table .ticket_edit{width:100px}.tribe-tickets-editor-table .global_capacity_edit_button,.tribe-tickets-editor-table .ticket_edit_button{background:none;border:0;color:#ccc;cursor:pointer;padding:0}.tribe-tickets-editor-table .global_capacity_edit_button:hover,.tribe-tickets-editor-table .ticket_edit_button:hover{color:#00a0d2}.tribe-tickets-editor-table .global_capacity_edit_button .global_capacity_edit_text,.tribe-tickets-editor-table .global_capacity_edit_button .ticket_edit_text,.tribe-tickets-editor-table .ticket_edit_button .global_capacity_edit_text,.tribe-tickets-editor-table .ticket_edit_button .ticket_edit_text{font-size:0}.tribe-tickets-editor-table .global_capacity_edit_button .global_capacity_edit_text:before,.tribe-tickets-editor-table .global_capacity_edit_button .ticket_edit_text:before,.tribe-tickets-editor-table .ticket_edit_button .global_capacity_edit_text:before,.tribe-tickets-editor-table .ticket_edit_button .ticket_edit_text:before{content:"\f464";font-family:dashicons;font-size:x-large;vertical-align:top}.tribe-tickets-editor-table .global_capacity_edit_button{vertical-align:middle}#tribe_panel_settings .tribe-tickets-editor-table tbody tr{box-shadow:none}#tribe_panel_settings .tribe-tickets-editor-table tbody tr td{border-bottom:1px solid #ccc}#tribe_panel_settings .tribe-tickets-editor-table tbody tr:last-child td,#tribe_panel_settings .tribe-tickets-editor-table tbody tr:nth-last-child(2) td{border-bottom:0}#tribe_panel_settings .tribe-tickets-editor-table tbody tr:last-child td{border-top:1px dashed #ccc}.tribe-tickets-editor-table .tribe_capacity_table_ticket_list{color:#ccc}.tribe-tickets-editor-table .settings_total_global_stock{font-size:inherit;margin-left:-5px}.tribe-tickets-editor-table .settings_total_global_stock:disabled{background:none;border:0;box-shadow:none}@media screen and (max-width:782px){.tribe-tickets-editor-table .tribe-mobile-only{display:inline-block}.tribe-tickets-editor-table .tribe-mobile-hidden{display:none}.tribe-tickets-editor-table td.ticket_edit{position:absolute;right:0;top:0;width:37px}.tribe-tickets-editor-table tr{position:relative;border-bottom:1px solid #ccc}.tribe-tickets-editor-table th:not(.column-primary){display:none}.tribe-tickets-editor-table.tribe-tickets-editor-capacity-table td:first-child,.tribe-tickets-editor-table.tribe-tickets-editor-capacity-table td[colspan="2"],.tribe-tickets-editor-table thead th.column-primary{width:100%}.tribe-tickets-editor-table tr td{border:0;box-sizing:border-box;display:block;float:left;min-height:36px;padding:6px;position:relative;width:50%}.tribe-tickets-editor-table .is-expanded{display:block;overflow:hidden}}
|
src/resources/css/tickets.css
CHANGED
@@ -8,8 +8,9 @@
|
|
8 |
* @see: http://moderntribe.github.io/products-engineering/css/
|
9 |
*/
|
10 |
|
11 |
-
|
12 |
-
|
|
|
13 |
|
14 |
#ticket_form input[type=radio] {
|
15 |
margin-right: 5px;
|
8 |
* @see: http://moderntribe.github.io/products-engineering/css/
|
9 |
*/
|
10 |
|
11 |
+
.tribe-tickets-column-attendees-link {
|
12 |
+
display: inline-block;
|
13 |
+
}
|
14 |
|
15 |
#ticket_form input[type=radio] {
|
16 |
margin-right: 5px;
|
src/resources/css/tickets.min.css
CHANGED
@@ -1 +1 @@
|
|
1 |
-
#ticket_form input[type=radio]{margin-right:5px}#ticket_form span.datetime_seperator{margin-left:10px}.ticket_list h4{border-bottom:1px solid #e5e5e5;padding-bottom:6px;text-transform:uppercase}.ticket_list h4 a{font-size:11px;font-weight:400;text-transform:none}.ticket_list tr:hover td div.ticket_controls{visibility:visible}.ticket_list tr td{padding:10px;vertical-align:middle}.ticket_list tr td div.ticket_controls{visibility:hidden}.ticket_name p:first-child{font-weight:700}#tribe_ticket_header_preview img{height:auto!important;max-width:95%!important}#tribe_ticket_header_remove,.ticket_time{display:none}.tribe-tickets-remaining{font-size:10px}.eventtable{margin:0;padding-top:0;width:100%}#event_tickets,.eventtable.ticket_list.eventForm{table-layout:fixed}.tribe-theme-twentyfifteen .tribe-events-tickets input[type=number]{padding:.375em;width:100%}
|
1 |
+
.tribe-tickets-column-attendees-link{display:inline-block}#ticket_form input[type=radio]{margin-right:5px}#ticket_form span.datetime_seperator{margin-left:10px}.ticket_list h4{border-bottom:1px solid #e5e5e5;padding-bottom:6px;text-transform:uppercase}.ticket_list h4 a{font-size:11px;font-weight:400;text-transform:none}.ticket_list tr:hover td div.ticket_controls{visibility:visible}.ticket_list tr td{padding:10px;vertical-align:middle}.ticket_list tr td div.ticket_controls{visibility:hidden}.ticket_name p:first-child{font-weight:700}#tribe_ticket_header_preview img{height:auto!important;max-width:95%!important}#tribe_ticket_header_remove,.ticket_time{display:none}.tribe-tickets-remaining{font-size:10px}.eventtable{margin:0;padding-top:0;width:100%}#event_tickets,.eventtable.ticket_list.eventForm{table-layout:fixed}.tribe-theme-twentyfifteen .tribe-events-tickets input[type=number]{padding:.375em;width:100%}
|
src/resources/js/accordion.js
CHANGED
@@ -21,6 +21,8 @@
|
|
21 |
callback.call( scope, i, array[i] ); // passes back stuff we need
|
22 |
}
|
23 |
};
|
|
|
|
|
24 |
|
25 |
var accordionContent = accordion.getElementsByClassName( 'accordion-content' );
|
26 |
var accordionHeader = accordion.getElementsByClassName( 'accordion-header' );
|
21 |
callback.call( scope, i, array[i] ); // passes back stuff we need
|
22 |
}
|
23 |
};
|
24 |
+
// set ARIA role
|
25 |
+
accordion.setAttribute( 'role', 'tablist' );
|
26 |
|
27 |
var accordionContent = accordion.getElementsByClassName( 'accordion-content' );
|
28 |
var accordionHeader = accordion.getElementsByClassName( 'accordion-header' );
|
src/resources/js/accordion.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
!function(){"use strict";var t=0;window.MTAccordion=function(e,a){if("undefined"==typeof e.target)return!1;var i=document.querySelector(e.target);if(i){var r=function(t,e,a){for(var i=0,r=t.length;i<r;i++)e.call(a,i,t[i])},n=i.getElementsByClassName("accordion-content"),s=i.getElementsByClassName("accordion-header");t++,r(s,function(e,a){function i(t){var e=a.nextElementSibling,i=e.getElementsByClassName("accordion-label")[0];a.classList.toggle("is-active"),e.classList.toggle("is-active"),i.setAttribute("tabindex",-1),i.focus(),e.classList.contains("is-active")?(r.setAttribute("aria-selected","true"),r.setAttribute("aria-expanded","true"),e.setAttribute("aria-hidden","false")):(r.setAttribute("aria-selected","false"),r.setAttribute("aria-expanded","false"),e.setAttribute("aria-hidden","true")),t.preventDefault()}var r=a;e++,"tab"!==r.getAttribute("role")&&(r.setAttribute("id","tab"+t+"-"+e),r.setAttribute("aria-selected","false"),r.setAttribute("aria-expanded","false"),r.setAttribute("aria-controls","panel"+t+"-"+e),r.setAttribute("role","tab"),r.addEventListener("click",i))}),r(n,function(e,a){var i=a;e++,"tabpanel"!==i.getAttribute("role")&&(i.setAttribute("id","panel"+t+"-"+e),i.setAttribute("aria-hidden","true"),i.setAttribute("aria-labelledby","tab"+t+"-"+e),i.setAttribute("role","tabpanel"))}),"function"==typeof a&&a.call()}},document.onreadystatechange=function(){"interactive"===document.readyState&&window.MTAccordion({target:".accordion"})}}();
|
1 |
+
!function(){"use strict";var t=0;window.MTAccordion=function(e,a){if("undefined"==typeof e.target)return!1;var i=document.querySelector(e.target);if(i){var r=function(t,e,a){for(var i=0,r=t.length;i<r;i++)e.call(a,i,t[i])};i.setAttribute("role","tablist");var n=i.getElementsByClassName("accordion-content"),s=i.getElementsByClassName("accordion-header");t++,r(s,function(e,a){function i(t){var e=a.nextElementSibling,i=e.getElementsByClassName("accordion-label")[0];a.classList.toggle("is-active"),e.classList.toggle("is-active"),i.setAttribute("tabindex",-1),i.focus(),e.classList.contains("is-active")?(r.setAttribute("aria-selected","true"),r.setAttribute("aria-expanded","true"),e.setAttribute("aria-hidden","false")):(r.setAttribute("aria-selected","false"),r.setAttribute("aria-expanded","false"),e.setAttribute("aria-hidden","true")),t.preventDefault()}var r=a;e++,"tab"!==r.getAttribute("role")&&(r.setAttribute("id","tab"+t+"-"+e),r.setAttribute("aria-selected","false"),r.setAttribute("aria-expanded","false"),r.setAttribute("aria-controls","panel"+t+"-"+e),r.setAttribute("role","tab"),r.addEventListener("click",i))}),r(n,function(e,a){var i=a;e++,"tabpanel"!==i.getAttribute("role")&&(i.setAttribute("id","panel"+t+"-"+e),i.setAttribute("aria-hidden","true"),i.setAttribute("aria-labelledby","tab"+t+"-"+e),i.setAttribute("role","tabpanel"))}),"function"==typeof a&&a.call()}},document.onreadystatechange=function(){"interactive"===document.readyState&&window.MTAccordion({target:".accordion"})}}();
|
src/resources/js/tickets-attendees.js
CHANGED
@@ -124,7 +124,7 @@ var tribe_event_tickets_attendees = tribe_event_tickets_attendees || {};
|
|
124 |
var obj = jQuery( this );
|
125 |
|
126 |
var params = {
|
127 |
-
action : 'tribe-ticket-checkin
|
128 |
provider: obj.attr( 'data-provider' ),
|
129 |
order_ID: obj.attr( 'data-attendee-id' ),
|
130 |
nonce : Attendees.checkin_nonce
|
@@ -156,7 +156,7 @@ var tribe_event_tickets_attendees = tribe_event_tickets_attendees || {};
|
|
156 |
var obj = jQuery( this );
|
157 |
|
158 |
var params = {
|
159 |
-
action : 'tribe-ticket-uncheckin
|
160 |
provider: obj.attr( 'data-provider' ),
|
161 |
order_ID: obj.attr( 'data-attendee-id' ),
|
162 |
nonce : Attendees.uncheckin_nonce
|
124 |
var obj = jQuery( this );
|
125 |
|
126 |
var params = {
|
127 |
+
action : 'tribe-ticket-checkin',
|
128 |
provider: obj.attr( 'data-provider' ),
|
129 |
order_ID: obj.attr( 'data-attendee-id' ),
|
130 |
nonce : Attendees.checkin_nonce
|
156 |
var obj = jQuery( this );
|
157 |
|
158 |
var params = {
|
159 |
+
action : 'tribe-ticket-uncheckin',
|
160 |
provider: obj.attr( 'data-provider' ),
|
161 |
order_ID: obj.attr( 'data-attendee-id' ),
|
162 |
nonce : Attendees.uncheckin_nonce
|
src/resources/js/tickets-attendees.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
var tribe_event_tickets_attendees=tribe_event_tickets_attendees||{};!function(t,e){function n(){function n(e){t.isArray(e)||(e=[e]);var n=parseInt(.7*t(window).width());n=n>800?800:n;var i=parseInt(.9*t(window).height());i=i>800?800:i;var r="&ticket_ids="+e.join("|")+"&width="+n+"&height="+i,
|
1 |
+
var tribe_event_tickets_attendees=tribe_event_tickets_attendees||{};!function(t,e){function n(){function n(e){t.isArray(e)||(e=[e]);var n=parseInt(.7*t(window).width());n=n>800?800:n;var i=parseInt(.9*t(window).height());i=i>800?800:i;var r="&ticket_ids="+e.join("|")+"&width="+n+"&height="+i,o=Attendees.move_url.replace("&TB_",r+"&TB_");tb_show(null,o,!1)}if("undefined"!=typeof AttendeesPointer&&null!==AttendeesPointer){options=t.extend(AttendeesPointer.options,{close:function(){t.post(ajaxurl,{pointer:AttendeesPointer.pointer_id,action:"dismiss-wp-pointer"})},open:function(t,e){e.pointer.css({top:parseInt(e.pointer.css("top").replace("px",""),10)+5}).find(".wp-pointer-arrow").css({right:"50px",left:"auto"}),e.element.on({click:function(){e.element.pointer("close")}})}});t(AttendeesPointer.target).pointer(options).pointer("open").pointer("widget")}t("input.print").on("click",function(){t(window).trigger("attendees-report-before-print.tribe-tickets");var e=t("table.wp-list-table.attendees"),n=e.find("thead th:visible").length,i=e.find("th,td"),r=2;i.css({width:100/(n-r)+"%"}),window.print(),i.css({width:""}),t(window).trigger("attendees-report-after-print.tribe-tickets")});var i=t(document.getElementById("filter_attendee"));i.on("keydown",function(t){if(13===t.keyCode)return!1}),i.on("keyup paste",function(){var e=jQuery(this).val().toLowerCase();t("#the-list").find("tr").each(function(){var n=t(this),i=n.find("td.status");if(t(n).hasClass("event-tickets-meta-row"))return void t(n).removeClass("event-tickets-meta-toggle-open");if(t(n).hasClass("event-tickets-meta-toggle-open")&&t(n).removeClass("event-tickets-meta-toggle-open"),!i.length)return void n.hide();var r=n.children("td.status").text().toLowerCase().trim(),o=n.children("td.ticket").text().toLowerCase().trim(),a=n.children("td.security").text().toLowerCase().trim(),c=0===o.indexOf(e)||0===r.indexOf(e)||0===r.indexOf("#"+e)||0===a.indexOf(e),s=n.find(".purchaser_name").text().toLowerCase().trim(),d=0===s.indexOf(e)||s.indexOf(" "+e)>1;c||d?n.show():n.hide()})}),t(".tribe-attendees-email").on({submit:function(e){t(".tribe-attendees-email").hide(),t(document.getElementById("tribe-loading")).show()}}),t(".tickets_checkin").click(function(e){var n=jQuery(this),i={action:"tribe-ticket-checkin",provider:n.attr("data-provider"),order_ID:n.attr("data-attendee-id"),nonce:Attendees.checkin_nonce};n.attr("data-event-id")&&(i.event_ID=n.attr("data-event-id")),t.post(ajaxurl,i,function(e){e.success&&(n.closest("tr").addClass("tickets_checked"),t("#total_checkedin").text(parseInt(t("#total_checkedin").text())+1))},"json"),e.preventDefault()}),t(".tickets_uncheckin").click(function(e){var n=jQuery(this),i={action:"tribe-ticket-uncheckin",provider:n.attr("data-provider"),order_ID:n.attr("data-attendee-id"),nonce:Attendees.uncheckin_nonce};n.attr("data-event-id")&&(i.event_ID=n.attr("data-event-id")),t.post(ajaxurl,i,function(e){e.success&&(n.closest("tr").removeClass("tickets_checked"),t("#total_checkedin").text(parseInt(t("#total_checkedin").text())-1))},"json"),e.preventDefault()}),t("table.wp-list-table").on("click",".row-actions .move-ticket",function(e){var i=t(this).parents("tr").find('input[name="attendee[]"]').val().match(/^[0-9]+/);return i&&n(i),e.stopPropagation(),!1}),t("#doaction, #doaction2").click(function(e){var i;switch(t(e.currentTarget).attr("id")){case"doaction":i="action";break;case"doaction2":i="action2"}if("undefined"!=typeof i&&"move"===t('select[name="'+i+'"]').val()){var r=jQuery('input[name="attendee[]"]:checked');if(r.length){var o=[];r.each(function(){var e=t(this).val().match(/^[0-9]+/);e&&o.push(e.toString())}),n(o)}else alert(Attendees.cannot_move);return e.stopPropagation(),!1}}),function(){var n=t(".ticket-history"),i=t(".hide-ticket-history");i.hide(),n.click(function(n){function i(){var n={action:"get_ticket_history",check:c,ticket_id:a};t.post(ajaxurl,n,function(n){if("undefined"!=typeof n.data&&"string"==typeof n.data.html){var i=r.parents("tr"),c=e.count_columns(i),s=t('<tr id="ticket-history-'+a+'"> <td colspan="'+c+'">'+n.data.html+"</td></tr>");s.hide().insertAfter(i).slideDown(),r.hide(),o.show()}})}var r=t(this),o=r.siblings(".hide-ticket-history"),a=parseInt(r.data("ticket-id"),10),c=r.data("check");if(a&&c){var s=t(document.getElementById("ticket-history-"+a));return s.length?(s.show(),r.hide(),o.show()):i(),n.stopPropagation(),!1}}),i.click(function(e){var n=t(this),i=n.siblings(".ticket-history"),r=parseInt(i.data("ticket-id"),10);t(document.getElementById("ticket-history-"+r)).hide(),i.show(),n.hide()})}()}e.count_columns=function(e){var n=0,i=e.find("td, th");return i.length?(i.each(function(){var e=parseInt(t(this).attr("colspan"),10);e=e>1?e-1:0,n+=1+e}),n):0},e.remove_tickets=function(e){t("#the-list").find("tr").each(function(){var n=t(this),i=n.find(".check-column").find("input").val();if("string"==typeof i){var r=i.match(/^[0-9]+/);r.length&&-1!==e.indexOf(parseInt(r[0],10))&&n.remove()}})},t(document).ready(n)}(jQuery,tribe_event_tickets_attendees);
|
src/resources/js/tickets-tables.js
CHANGED
@@ -1,14 +1,17 @@
|
|
1 |
-
|
2 |
-
|
3 |
-
|
|
|
4 |
|
|
|
|
|
5 |
/**
|
6 |
* Implemnts jQuery drag-n-drop for the ticket table.
|
7 |
* Stores order in the #tickets_order field.
|
8 |
*
|
9 |
* @param jQuery object $element parent element to make sortable ( var $table above )
|
10 |
*/
|
11 |
-
function
|
12 |
// If we don't have at least 2 sortable items, don't sort.
|
13 |
if ( 2 > $element.find( 'tr:not(.Tribe__Tickets__RSVP)' ).length ) {
|
14 |
return;
|
@@ -33,6 +36,10 @@
|
|
33 |
handle: '.tribe-handle',
|
34 |
helper: fixHelper,
|
35 |
update: function( event, ui ) {
|
|
|
|
|
|
|
|
|
36 |
var $tbody = $( this );
|
37 |
var $items = $tbody.children( 'tr' );
|
38 |
|
@@ -40,39 +47,39 @@
|
|
40 |
var $item = $( item );
|
41 |
$item.find( '.tribe-ticket-field-order' ).val( k );
|
42 |
} );
|
|
|
|
|
|
|
|
|
43 |
}
|
44 |
} );
|
|
|
45 |
$element.disableSelection();
|
46 |
$element.find( '.table-header' ).disableSelection();
|
47 |
$element.sortable( 'option', 'disabled', false );
|
48 |
-
}
|
|
|
|
|
|
|
|
|
49 |
|
50 |
-
function tribe_toggle_sortable() {
|
51 |
if ( window.matchMedia( '( min-width: 786px )' ).matches ) {
|
52 |
if ( ! $table.hasClass( 'ui-sortable' ) ) {
|
53 |
-
make_sortable( $table );
|
54 |
} else {
|
55 |
$table.sortable( 'enable' );
|
56 |
}
|
57 |
-
} else {
|
58 |
-
|
59 |
-
$table.sortable( 'disable' );
|
60 |
-
}
|
61 |
}
|
62 |
-
}
|
63 |
|
64 |
$( document ).ready( function () {
|
65 |
// trigger once at start
|
66 |
-
|
67 |
|
68 |
// disable/init depending on screen size
|
69 |
-
var maybeSortable = _.debounce(
|
70 |
$( window ).resize( maybeSortable );
|
71 |
-
|
72 |
-
|
73 |
-
$table = $( document.getElementById( 'tribe_ticket_list_table' ) ).find( '.tribe-tickets-editor-table-tickets-body' );
|
74 |
-
// trigger on table refresh
|
75 |
-
tribe_toggle_sortable();
|
76 |
-
});
|
77 |
-
});
|
78 |
-
})( window, jQuery );
|
1 |
+
// For compatibility purposes we add this
|
2 |
+
if ( 'undefined' === typeof tribe.tickets ) {
|
3 |
+
tribe.tickets = {};
|
4 |
+
}
|
5 |
|
6 |
+
tribe.tickets.table = {};
|
7 |
+
( function( window, $, obj ) {
|
8 |
/**
|
9 |
* Implemnts jQuery drag-n-drop for the ticket table.
|
10 |
* Stores order in the #tickets_order field.
|
11 |
*
|
12 |
* @param jQuery object $element parent element to make sortable ( var $table above )
|
13 |
*/
|
14 |
+
obj.make_sortable = function( $element ) {
|
15 |
// If we don't have at least 2 sortable items, don't sort.
|
16 |
if ( 2 > $element.find( 'tr:not(.Tribe__Tickets__RSVP)' ).length ) {
|
17 |
return;
|
36 |
handle: '.tribe-handle',
|
37 |
helper: fixHelper,
|
38 |
update: function( event, ui ) {
|
39 |
+
if ( tribe.tickets.editor ) {
|
40 |
+
$( window ).off( 'beforeunload.tribe' );
|
41 |
+
}
|
42 |
+
|
43 |
var $tbody = $( this );
|
44 |
var $items = $tbody.children( 'tr' );
|
45 |
|
47 |
var $item = $( item );
|
48 |
$item.find( '.tribe-ticket-field-order' ).val( k );
|
49 |
} );
|
50 |
+
|
51 |
+
if ( tribe.tickets.editor ) {
|
52 |
+
$( window ).on( 'beforeunload.tribe', tribe.tickets.editor.beforeUnload );
|
53 |
+
}
|
54 |
}
|
55 |
} );
|
56 |
+
|
57 |
$element.disableSelection();
|
58 |
$element.find( '.table-header' ).disableSelection();
|
59 |
$element.sortable( 'option', 'disabled', false );
|
60 |
+
};
|
61 |
+
|
62 |
+
obj.toggle_sortable = function() {
|
63 |
+
var $table = $( document.getElementById( 'tribe_ticket_list_table' ) ).find( '.tribe-tickets-editor-table-tickets-body' );
|
64 |
+
var $tribe_tickets = $( document.getElementById( 'tribetickets' ) );
|
65 |
|
|
|
66 |
if ( window.matchMedia( '( min-width: 786px )' ).matches ) {
|
67 |
if ( ! $table.hasClass( 'ui-sortable' ) ) {
|
68 |
+
obj.make_sortable( $table );
|
69 |
} else {
|
70 |
$table.sortable( 'enable' );
|
71 |
}
|
72 |
+
} else if ( $table.hasClass( 'ui-sortable' ) ) {
|
73 |
+
$table.sortable( 'disable' );
|
|
|
|
|
74 |
}
|
75 |
+
};
|
76 |
|
77 |
$( document ).ready( function () {
|
78 |
// trigger once at start
|
79 |
+
obj.toggle_sortable();
|
80 |
|
81 |
// disable/init depending on screen size
|
82 |
+
var maybeSortable = _.debounce( obj.toggle_sortable, 300 );
|
83 |
$( window ).resize( maybeSortable );
|
84 |
+
} );
|
85 |
+
} )( window, jQuery, tribe.tickets.table );
|
|
|
|
|
|
|
|
|
|
|
|
src/resources/js/tickets-tables.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
|
1 |
+
"undefined"==typeof tribe.tickets&&(tribe.tickets={}),tribe.tickets.table={},function(e,t,i){i.make_sortable=function(i){if(!(2>i.find("tr:not(.Tribe__Tickets__RSVP)").length)){var r=function(e,i){return i.children().each(function(){t(this).width(t(this).outerWidth(!0))}),i};i.sortable({axis:"y",containment:"parent",opacity:.7,tolerance:"cursor",cursor:"move",items:"tr:not(.Tribe__Tickets__RSVP)",forcePlaceholderSize:!0,handle:".tribe-handle",helper:r,update:function(i,r){tribe.tickets.editor&&t(e).off("beforeunload.tribe");var o=t(this),a=o.children("tr");a.each(function(e,i){var r=t(i);r.find(".tribe-ticket-field-order").val(e)}),tribe.tickets.editor&&t(e).on("beforeunload.tribe",tribe.tickets.editor.beforeUnload)}}),i.disableSelection(),i.find(".table-header").disableSelection(),i.sortable("option","disabled",!1)}},i.toggle_sortable=function(){var r=t(document.getElementById("tribe_ticket_list_table")).find(".tribe-tickets-editor-table-tickets-body");t(document.getElementById("tribetickets"));e.matchMedia("( min-width: 786px )").matches?r.hasClass("ui-sortable")?r.sortable("enable"):i.make_sortable(r):r.hasClass("ui-sortable")&&r.sortable("disable")},t(document).ready(function(){i.toggle_sortable();var r=_.debounce(i.toggle_sortable,300);t(e).resize(r)})}(window,jQuery,tribe.tickets.table);
|
src/resources/js/tickets.js
CHANGED
@@ -1,40 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
var ticketHeaderImage = window.ticketHeaderImage || {};
|
2 |
|
3 |
-
(function( window, $,
|
4 |
'use strict';
|
5 |
|
6 |
// base elements
|
7 |
-
var $body
|
8 |
-
var $document
|
9 |
-
var $tribe_tickets
|
10 |
|
11 |
// Bail if we don't have what we need
|
12 |
if ( 0 === $tribe_tickets.length ) {
|
13 |
return;
|
14 |
}
|
15 |
|
16 |
-
var $tickets_container
|
17 |
-
var $post_id
|
18 |
-
var $publish
|
19 |
-
|
20 |
-
var $
|
21 |
-
var $spinner = $tribe_tickets.find( '.spinner' );
|
22 |
|
23 |
// panels
|
24 |
-
var $
|
25 |
-
var $
|
26 |
-
var $
|
27 |
-
var $settings_panel = $( document.getElementById( 'tribe_panel_settings' ) );
|
28 |
-
|
29 |
-
// date elements
|
30 |
-
var $event_pickers = $( document.getElementById( 'tribe-event-datepickers' ) );
|
31 |
-
var $ticket_start_date = $( document.getElementById( 'ticket_start_date' ) );
|
32 |
-
var $ticket_end_date = $( document.getElementById( 'ticket_end_date' ) );
|
33 |
-
var $ticket_start_time = $( document.getElementById( 'ticket_start_time' ) );
|
34 |
-
var $ticket_end_time = $( document.getElementById( 'ticket_end_time' ) );
|
35 |
-
var startofweek = 0;
|
36 |
-
// misc ticket elements
|
37 |
-
var $ticket_image_preview = $( document.getElementById( 'tribe_ticket_header_preview' ) );
|
38 |
|
39 |
// Datepicker and Timepicker variables
|
40 |
var datepickerFormats = [
|
@@ -52,7 +47,6 @@ var ticketHeaderImage = window.ticketHeaderImage || {};
|
|
52 |
'dd.mm.yy'
|
53 |
];
|
54 |
var dateFormat = datepickerFormats[0];
|
55 |
-
var time_format = 'HH:mmA';
|
56 |
|
57 |
var changeEventCapacity = function( event, eventCapacity ) {
|
58 |
if ( 'undefined' === typeof eventCapacity ) {
|
@@ -86,46 +80,6 @@ var ticketHeaderImage = window.ticketHeaderImage || {};
|
|
86 |
$capacityValue.text( eventCapacity );
|
87 |
};
|
88 |
|
89 |
-
function format_date( date, use_base_format ) {
|
90 |
-
if ( 'undefined' === typeof date ) {
|
91 |
-
// An empty string will give us now() below
|
92 |
-
date = '';
|
93 |
-
}
|
94 |
-
|
95 |
-
var localFormat = dateFormat;
|
96 |
-
if ( true === use_base_format ) {
|
97 |
-
localFormat = datepickerFormats[0];
|
98 |
-
}
|
99 |
-
|
100 |
-
localFormat = localFormat.toUpperCase().replace( 'YY', 'YYYY' );
|
101 |
-
|
102 |
-
return moment( date, localFormat ).format( dateFormat.toUpperCase().replace( 'YY', 'YYYY' ) );
|
103 |
-
}
|
104 |
-
|
105 |
-
function format_time( date ) {
|
106 |
-
if ( 'undefined' === typeof date ) {
|
107 |
-
// An empty string will give us now() below
|
108 |
-
date = '';
|
109 |
-
}
|
110 |
-
|
111 |
-
// Passing in the format allows us to only provide a time portion
|
112 |
-
// (no need fo a Date() object) but this does make it a bit brittle
|
113 |
-
return moment( date, time_format ).format( time_format );
|
114 |
-
}
|
115 |
-
|
116 |
-
/**
|
117 |
-
* Returns the currently selected default ticketing provider.
|
118 |
-
* Defaults to RSVP if something fails
|
119 |
-
*
|
120 |
-
* @since 4.6
|
121 |
-
*
|
122 |
-
* @return string
|
123 |
-
*/
|
124 |
-
function get_default_provider() {
|
125 |
-
var $checked_provider = $( 'input[name=default_ticket_provider]', '#tribe_panel_settings' ).filter( ':checked' );
|
126 |
-
return ( $checked_provider.length > 0 ) ? $checked_provider.val() : 'Tribe__Tickets__RSVP';
|
127 |
-
}
|
128 |
-
|
129 |
/**
|
130 |
* Sets the ticket edit form provider to the currently selected default ticketing provider.
|
131 |
* Defaults to RSVP if something fails
|
@@ -136,8 +90,10 @@ var ticketHeaderImage = window.ticketHeaderImage || {};
|
|
136 |
* @return void
|
137 |
*/
|
138 |
function set_default_provider_radio( force_rsvp ) {
|
139 |
-
|
140 |
-
|
|
|
|
|
141 |
var provider_id = 'Tribe__Tickets__RSVP_radio';
|
142 |
|
143 |
if ( ! force_rsvp && $checked_provider.length > 0 ) {
|
@@ -148,37 +104,68 @@ var ticketHeaderImage = window.ticketHeaderImage || {};
|
|
148 |
}
|
149 |
|
150 |
/**
|
151 |
-
*
|
152 |
-
*
|
153 |
*/
|
154 |
-
function
|
155 |
-
var
|
156 |
|
157 |
-
|
158 |
-
|
|
|
|
|
159 |
}
|
160 |
|
161 |
-
|
162 |
-
e.preventDefault();
|
163 |
-
if ( $history.hasClass( '_show' ) ) {
|
164 |
-
$history.removeClass( '_show' );
|
165 |
-
} else {
|
166 |
-
$history.addClass( '_show' );
|
167 |
-
}
|
168 |
-
} );
|
169 |
-
}
|
170 |
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
182 |
|
183 |
/**
|
184 |
* Switch from one panel to another
|
@@ -186,18 +173,19 @@ var ticketHeaderImage = window.ticketHeaderImage || {};
|
|
186 |
* @param object ($base_panel) $panel jQuery object containing the panel we want to switch to
|
187 |
* @return void
|
188 |
*/
|
189 |
-
function
|
190 |
-
|
191 |
-
e.preventDefault();
|
192 |
-
}
|
193 |
|
194 |
-
|
195 |
-
|
|
|
|
|
|
|
196 |
$panel = $base_panel;
|
197 |
}
|
198 |
|
199 |
// First, hide them all!
|
200 |
-
$
|
201 |
$( this ).attr( 'aria-hidden', true );
|
202 |
} );
|
203 |
|
@@ -205,162 +193,171 @@ var ticketHeaderImage = window.ticketHeaderImage || {};
|
|
205 |
$panel.attr( 'aria-hidden', false );
|
206 |
|
207 |
if ( ! $panel.is( $base_panel ) ) {
|
208 |
-
$( window ).on( 'beforeunload.tribe', beforeUnload );
|
209 |
} else {
|
210 |
$( window ).off( 'beforeunload.tribe' );
|
211 |
}
|
212 |
}
|
213 |
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
*
|
219 |
-
* @param string optional notice to prepend to the ticket table
|
220 |
-
* @param bool (true) flag for panel swap
|
221 |
-
* @return void
|
222 |
-
*/
|
223 |
-
function refresh_panels( notice, swap ) {
|
224 |
-
// make sure we have this for later (default to true)
|
225 |
-
swap = 'undefined' === typeof swap;
|
226 |
|
227 |
-
var $orders = $base_panel.find( '.tribe-ticket-field-order' );
|
228 |
var params = {
|
229 |
-
action : 'tribe-ticket-
|
230 |
-
notice :
|
231 |
-
|
232 |
-
|
233 |
-
|
|
|
234 |
};
|
235 |
|
236 |
-
if ( 'settings-cancel' === notice ) {
|
237 |
-
params.action = 'tribe-ticket-refresh-settings';
|
238 |
-
}
|
239 |
-
|
240 |
$.post(
|
241 |
ajaxurl,
|
242 |
params,
|
243 |
function( response ) {
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
$container.append( $ticket_table );
|
254 |
-
|
255 |
-
if ( $container.hasClass( 'tribe_no_capacity' ) ) {
|
256 |
-
$container.removeClass( 'tribe_no_capacity' );
|
257 |
-
}
|
258 |
-
}
|
259 |
|
260 |
-
|
|
|
|
|
|
|
|
|
261 |
|
262 |
-
|
263 |
-
|
264 |
-
|
|
|
265 |
|
266 |
-
|
267 |
-
|
268 |
-
}
|
269 |
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
|
|
|
|
|
|
|
|
274 |
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
|
|
|
|
|
|
279 |
|
280 |
-
|
281 |
-
|
282 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
283 |
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
if ( 0 < $current_cap_line.length ) {
|
288 |
-
$current_cap_line.replaceWith( response.data.total_capacity );
|
289 |
-
} else {
|
290 |
-
var $wrap = $( '<div class="ticket_table_intro">' );
|
291 |
-
$wrap.append( response.data.total_capacity );
|
292 |
-
$( '.ticket_list_container' ).removeClass( 'tribe_no_capacity' ).prepend( $wrap );
|
293 |
}
|
294 |
-
}
|
|
|
|
|
|
|
295 |
|
296 |
-
|
297 |
-
|
|
|
|
|
|
|
298 |
}
|
299 |
-
|
300 |
-
|
|
|
|
|
|
|
|
|
301 |
|
302 |
-
|
303 |
-
|
|
|
304 |
}
|
305 |
} );
|
306 |
-
}
|
307 |
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
var returnValue = false;
|
314 |
|
315 |
-
|
316 |
-
|
317 |
-
if ( 'true' === $base_panel.attr( 'aria-hidden' ) ) {
|
318 |
-
returnValue = tribe_global_stock_admin_ui.nav_away_msg;
|
319 |
-
}
|
320 |
|
321 |
-
|
|
|
322 |
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
button : { text: HeaderImageData.button }
|
336 |
-
} );
|
337 |
|
338 |
-
|
339 |
-
frame.on( 'close', function() {
|
340 |
-
var attachments = frame.state().get( 'selection' ).toJSON();
|
341 |
-
if ( attachments.length ) {
|
342 |
-
ticketHeaderImage.render( attachments[0] );
|
343 |
-
}
|
344 |
-
} );
|
345 |
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
// Output Image preview and populate widget form.
|
350 |
-
render : function( attachment ) {
|
351 |
-
$ticket_image_preview.html( ticketHeaderImage.imgHTML( attachment ) );
|
352 |
-
$( document.getElementById( 'tribe_ticket_header_image_id' ) ).val( attachment.id );
|
353 |
-
$( document.getElementById( 'tribe_ticket_header_remove' ) ).show();
|
354 |
-
$( document.getElementById( 'tribe_tickets_image_preview_filename' ) ).show().find( '.filename' ).text( attachment.filename );
|
355 |
-
},
|
356 |
-
// Render html for the image.
|
357 |
-
imgHTML : function( attachment ) {
|
358 |
-
var img_html = '<img src="' + attachment.url + '" ';
|
359 |
-
img_html += 'width="' + attachment.width + '" ';
|
360 |
-
img_html += 'height="' + attachment.height + '" ';
|
361 |
-
img_html += '/>';
|
362 |
-
return img_html;
|
363 |
-
}
|
364 |
};
|
365 |
|
366 |
$document.ajaxSend( function( event, jqxhr, settings ) {
|
@@ -410,173 +407,107 @@ var ticketHeaderImage = window.ticketHeaderImage || {};
|
|
410 |
$spinner.addClass( 'is-active' );
|
411 |
}
|
412 |
},
|
|
|
413 |
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
var $textFields = $edit_panel.find( 'input:not(:button):not(:radio):not(:checkbox):not([type="hidden"]), textarea' );
|
421 |
-
var $checkFields = $edit_panel.find( 'input:checkbox, input:radio' );
|
422 |
-
var $idField = $edit_panel.find( '#ticket_id' );
|
423 |
-
|
424 |
-
// some fields may have a default value we don't want to lose after clearing the form
|
425 |
-
$edit_panel.find( 'input[data-default-value]' ).each( function() {
|
426 |
-
var $current_field = $( this );
|
427 |
-
$current_field.val( $current_field.data( 'default-value' ) );
|
428 |
-
} );
|
429 |
-
|
430 |
-
// Reset the min/max datepicker settings so that they aren't inherited by the next ticket that is edited
|
431 |
-
$ticket_start_date.datepicker( 'option', 'maxDate', null )
|
432 |
-
$ticket_start_date.val( '' )
|
433 |
-
$ticket_start_date.trigger( 'change' );
|
434 |
|
435 |
-
|
436 |
-
|
|
|
|
|
437 |
|
438 |
-
|
439 |
-
|
440 |
-
$ticket_end_date.val( '' );
|
441 |
-
$ticket_end_date.trigger( 'change' );
|
442 |
|
443 |
-
|
444 |
-
|
|
|
445 |
|
446 |
-
|
447 |
-
|
448 |
-
|
|
|
|
|
|
|
449 |
|
450 |
-
|
|
|
451 |
|
452 |
-
|
|
|
|
|
453 |
|
454 |
-
|
|
|
|
|
|
|
455 |
|
456 |
-
|
|
|
457 |
|
458 |
-
|
459 |
-
|
460 |
-
$idField.val( '' ).trigger( 'change' );
|
461 |
-
$edit_panel.find( '.tribe-tickets-editor-history-container' ).remove();
|
462 |
-
},
|
463 |
|
464 |
-
|
465 |
-
|
466 |
-
* other UI features as needed.
|
467 |
-
*/
|
468 |
-
'edit-tickets-complete.tribe': function() {
|
469 |
-
show_hide_ticket_type_history();
|
470 |
-
}
|
471 |
} );
|
472 |
|
473 |
-
/* "
|
474 |
-
$document.on( 'click', '
|
475 |
-
|
476 |
-
|
|
|
|
|
|
|
|
|
|
|
477 |
|
478 |
-
|
479 |
-
|
480 |
-
|
|
|
|
|
|
|
|
|
481 |
} );
|
482 |
|
483 |
-
/* "
|
484 |
-
$document.on( 'click', '
|
485 |
-
|
|
|
486 |
|
487 |
-
//
|
488 |
-
var $
|
489 |
-
if ( false === $global_capacity_edit.prop( 'disabled' ) ) {
|
490 |
-
$global_capacity_edit.blur();
|
491 |
-
$global_capacity_edit.prop( 'disabled', true );
|
492 |
-
}
|
493 |
|
494 |
-
|
495 |
-
var params
|
496 |
-
action
|
497 |
-
|
498 |
-
|
499 |
-
nonce
|
|
|
500 |
};
|
501 |
|
502 |
$.post(
|
503 |
ajaxurl,
|
504 |
params,
|
505 |
function( response ) {
|
506 |
-
|
507 |
-
|
508 |
-
refresh_panels( 'settings' );
|
509 |
}
|
|
|
|
|
510 |
},
|
511 |
'json'
|
512 |
);
|
513 |
-
} );
|
514 |
-
|
515 |
-
/* "Add ticket" button action */
|
516 |
-
$document.on( 'click', '.ticket_form_toggle', function( e ) {
|
517 |
-
e.preventDefault();
|
518 |
-
var $default_provider = get_default_provider();
|
519 |
-
var global_cap = get_global_cap();
|
520 |
-
var start_date;
|
521 |
-
var start_time;
|
522 |
-
var end_date;
|
523 |
-
var end_time;
|
524 |
-
var $maxCapacity = $( '.tribe-ticket-capacity-max' );
|
525 |
-
var $capacityValue = $maxCapacity.find( '.tribe-ticket-capacity-value' );
|
526 |
-
|
527 |
-
$tribe_tickets.trigger( 'clear.tribe' );
|
528 |
-
|
529 |
-
if ( 'rsvp_form_toggle' === $( this ).closest( 'button' ).attr( 'id' ) ) {
|
530 |
-
set_default_provider_radio( true );
|
531 |
-
} else {
|
532 |
-
set_default_provider_radio();
|
533 |
-
// Only want to do this if we're setting up a ticket - as opposed to an RSVP
|
534 |
-
$( document.getElementById( $default_provider + '_' + tribe_ticket_vars.stock_mode ) ).prop( 'checked', true );
|
535 |
-
$( document.getElementById( $default_provider + '_global_capacity' ) ).val( global_cap );
|
536 |
-
|
537 |
-
if ( 0 !== global_cap && '' !== global_cap ) {
|
538 |
-
$( document.getElementById( $default_provider + '_global_stock_block') ).find( '.global_capacity-wrapper' ).addClass( 'screen-reader-text' );
|
539 |
-
} else {
|
540 |
-
$( document.getElementById( $default_provider + '_global_stock_block') ).find( '.global_capacity-wrapper' ).removeClass( 'screen-reader-text' );
|
541 |
-
}
|
542 |
-
|
543 |
-
changeEventCapacity( e, global_cap );
|
544 |
-
}
|
545 |
-
|
546 |
-
$edit_panel.find( '.tribe-dependency' ).trigger( 'verify.dependency' );
|
547 |
-
|
548 |
-
$( document.getElementById( 'tribe_tickets_show_description' ) ).prop( 'checked', true );
|
549 |
-
|
550 |
-
// Hide the sale price field - it doesn't apply for new tickets
|
551 |
-
$( document.getElementById( 'ticket_sale_price' ) ).closest( '.input_block' ).hide();
|
552 |
|
553 |
-
//
|
554 |
-
|
555 |
-
$( document.getElementById( $default_provider + '_global_capacity' ) ).prop( 'disabled', true );
|
556 |
-
}
|
557 |
-
|
558 |
-
$( '.tribe-tickets-attendee-saved-fields' ).show();
|
559 |
-
|
560 |
-
show_panel( e, $edit_panel );
|
561 |
-
} );
|
562 |
-
|
563 |
-
/* Ticket "Cancel" button action */
|
564 |
-
$document.on( 'click', '#ticket_form_cancel', function( e ) {
|
565 |
-
refresh_panels();
|
566 |
-
$tribe_tickets.trigger( 'clear.tribe' );
|
567 |
-
} );
|
568 |
-
|
569 |
-
/* Change global stock type if we've put a value in global_stock_cap */
|
570 |
-
$document.on( 'change', '.tribe-ticket-field-capacity', function( e ) {
|
571 |
-
var $this = $( this );
|
572 |
-
var $globalField = $this.parents( '.input_block' ).eq( 0 ).find( '.tribe-ticket-field-mode' );
|
573 |
-
|
574 |
-
// Bail if we have any value on Stock Cap
|
575 |
-
if ( ! $this.val() ) {
|
576 |
-
return;
|
577 |
-
}
|
578 |
-
|
579 |
-
$globalField.val( 'capped' );
|
580 |
} );
|
581 |
|
582 |
/* "Save Ticket" button action */
|
@@ -591,12 +522,13 @@ var ticketHeaderImage = window.ticketHeaderImage || {};
|
|
591 |
return;
|
592 |
}
|
593 |
|
594 |
-
$tribe_tickets.trigger( 'save-ticket.tribe', e );
|
|
|
595 |
var $orders = $base_panel.find( '.tribe-ticket-field-order' );
|
596 |
var params = {
|
597 |
-
action : 'tribe-ticket-add
|
598 |
-
|
599 |
-
|
600 |
nonce : TribeTickets.add_ticket_nonce,
|
601 |
menu_order: $orders.length,
|
602 |
is_admin : $( 'body' ).hasClass( 'wp-admin' )
|
@@ -606,292 +538,61 @@ var ticketHeaderImage = window.ticketHeaderImage || {};
|
|
606 |
ajaxurl,
|
607 |
params,
|
608 |
function( response ) {
|
609 |
-
|
610 |
-
|
611 |
-
if ( response.success ) {
|
612 |
-
refresh_panels( 'ticket' );
|
613 |
}
|
|
|
|
|
614 |
},
|
615 |
'json'
|
616 |
);
|
617 |
} );
|
618 |
|
619 |
/* "Delete Ticket" link action */
|
620 |
-
$document.on( 'click', '.ticket_delete', function(
|
621 |
if ( ! confirm( tribe_ticket_notices.confirm_alert ) ) {
|
622 |
return false;
|
623 |
}
|
624 |
|
625 |
-
|
626 |
|
627 |
-
$tribe_tickets.trigger( 'delete-ticket.tribe',
|
628 |
|
629 |
var deleted_ticket_id = $( this ).attr( 'attr-ticket-id' );
|
630 |
|
631 |
var params = {
|
632 |
-
action : 'tribe-ticket-delete
|
633 |
-
|
634 |
ticket_id: deleted_ticket_id,
|
635 |
-
nonce : TribeTickets.remove_ticket_nonce
|
|
|
636 |
};
|
637 |
|
638 |
$.post(
|
639 |
ajaxurl,
|
640 |
params,
|
641 |
function( response ) {
|
642 |
-
|
643 |
-
|
644 |
-
if ( response.success ) {
|
645 |
-
// remove deleted ticket from table
|
646 |
-
var $deleted_row = $( document.getElementById( 'tribe_ticket_list_table' ) ).find( '[data-ticket-order-id="order_' + deleted_ticket_id + '"]' );
|
647 |
-
$deleted_row.remove();
|
648 |
-
|
649 |
-
refresh_panels( 'delete' );
|
650 |
-
|
651 |
-
show_panel( e );
|
652 |
-
}
|
653 |
-
},
|
654 |
-
'json'
|
655 |
-
);
|
656 |
-
} );
|
657 |
-
|
658 |
-
/* "Edit Ticket" link action */
|
659 |
-
$document.on( 'click', '.ticket_edit_button', function( e ) {
|
660 |
-
e.preventDefault();
|
661 |
-
|
662 |
-
var ticket_id = this.getAttribute( 'data-ticket-id' );
|
663 |
-
|
664 |
-
var params = {
|
665 |
-
action : 'tribe-ticket-edit-' + this.getAttribute( 'data-provider' ),
|
666 |
-
post_ID : $post_id.val(),
|
667 |
-
ticket_id: ticket_id,
|
668 |
-
nonce : TribeTickets.edit_ticket_nonce,
|
669 |
-
is_admin : $( 'body' ).hasClass( 'wp-admin' )
|
670 |
-
};
|
671 |
-
|
672 |
-
$.post(
|
673 |
-
ajaxurl,
|
674 |
-
params,
|
675 |
-
function( response ) {
|
676 |
-
if ( ! response ) {
|
677 |
return;
|
678 |
}
|
679 |
|
680 |
-
|
681 |
-
var salePrice = regularPrice;
|
682 |
-
var onSale = false;
|
683 |
-
var provider_class = response.data.provider_class;
|
684 |
-
var start_date;
|
685 |
-
var start_time;
|
686 |
-
var end_date;
|
687 |
-
var end_time;
|
688 |
-
|
689 |
-
var $maxCapacity = $( '.tribe-ticket-capacity-max' );
|
690 |
-
var $capacityValue = $maxCapacity.find( '.tribe-ticket-capacity-value' );
|
691 |
-
|
692 |
-
// trigger a change event on the provider radio input so the advanced fields can be re-initialized
|
693 |
-
$( 'input:radio[name=ticket_provider]' ).filter( '[value=' + response.data.provider_class + ']' ).click();
|
694 |
-
$( 'input[name=ticket_provider]:radio' ).change();
|
695 |
-
|
696 |
-
// Capacity/Stock
|
697 |
-
if ( response.data.global_stock_mode ) {
|
698 |
-
switch ( response.data.global_stock_mode ) {
|
699 |
-
case 'global':
|
700 |
-
$( document.getElementById( provider_class + '_global' ) )
|
701 |
-
.prop( 'checked', true )
|
702 |
-
.val( 'global' );
|
703 |
-
|
704 |
-
$( document.getElementById( provider_class + '_global_capacity' ) )
|
705 |
-
.attr( 'placeholder', response.data.event_capacity )
|
706 |
-
.val( response.data.event_capacity )
|
707 |
-
.prop( 'disabled', true );
|
708 |
-
|
709 |
-
$( document.getElementById( provider_class + '_global_stock_cap' ) ).val( '' );
|
710 |
-
|
711 |
-
changeEventCapacity( e, response.data.event_capacity );
|
712 |
-
|
713 |
-
break;
|
714 |
-
case 'capped':
|
715 |
-
$( document.getElementById( provider_class + '_global' ) )
|
716 |
-
.prop( 'checked', true )
|
717 |
-
.val( 'capped' );
|
718 |
-
|
719 |
-
$( document.getElementById( provider_class + '_global_capacity' ) )
|
720 |
-
.attr( 'placeholder', response.data.event_capacity )
|
721 |
-
.val( response.data.event_capacity )
|
722 |
-
.prop( 'disabled', true );
|
723 |
-
|
724 |
-
$( document.getElementById( provider_class + '_global_stock_cap' ) ).val( response.data.capacity );
|
725 |
-
|
726 |
-
changeEventCapacity( e, response.data.event_capacity );
|
727 |
-
|
728 |
-
break;
|
729 |
-
case 'own':
|
730 |
-
$( document.getElementById( provider_class + '_own' ) ).prop( 'checked', true );
|
731 |
-
if ( -1 != response.data.capacity ) {
|
732 |
-
$( document.getElementById( provider_class + '_capacity' ) ).val( response.data.capacity );
|
733 |
-
}
|
734 |
-
break;
|
735 |
-
default:
|
736 |
-
// Just in case
|
737 |
-
$( document.getElementById( provider_class + '_unlimited' ) ).prop( 'checked', true );
|
738 |
-
$( document.getElementById( provider_class + '_global_stock_cap' ) ).val( '' );
|
739 |
-
}
|
740 |
-
|
741 |
-
|
742 |
-
} else {
|
743 |
-
$( document.getElementById( response.data.provider_class + '_unlimited' ) ).prop( 'checked', true );
|
744 |
-
$( document.querySelectorAll( '.ticket_stock' ) ).val( response.data.original_stock );
|
745 |
-
}
|
746 |
-
|
747 |
-
$( 'input[name=ticket_global_stock]:radio' ).change();
|
748 |
-
|
749 |
-
$( document.getElementById( 'ticket_id' ) ).val( response.data.ID );
|
750 |
-
$( document.getElementById( 'ticket_name' ) ).val( response.data.name );
|
751 |
-
$( document.getElementById( 'ticket_description' ) ).val( response.data.description );
|
752 |
-
|
753 |
-
// Compare against 0 for backwards compatibility.
|
754 |
-
if ( response.data.show_description || 1 === parseInt( response.data.show_description, 10 ) ) {
|
755 |
-
$( document.getElementById( 'tribe_tickets_show_description' ) ).prop( 'checked', true );
|
756 |
-
} else {
|
757 |
-
$( document.getElementById( 'tribe_tickets_show_description' ) ).removeAttr( 'checked' );
|
758 |
-
}
|
759 |
-
|
760 |
-
if ( response.data.start_date ) {
|
761 |
-
start_date = format_date( response.data.start_date, true );
|
762 |
-
} else if ( undefined !== $( document.getElementById( 'EventStartDate' ) ).val() ) {
|
763 |
-
start_date = format_date( $( document.getElementById( 'EventStartDate' ) ).val() );
|
764 |
-
}
|
765 |
-
|
766 |
-
if ( response.data.start_time ) {
|
767 |
-
start_time = format_time( response.data.start_time );
|
768 |
-
} else if ( undefined !== $( document.getElementById( 'EventStartTime' ) ).val() ) {
|
769 |
-
start_time = format_time( $( document.getElementById( 'EventStartTime' ) ).val() );
|
770 |
-
}
|
771 |
-
|
772 |
-
if ( start_date ) {
|
773 |
-
$ticket_start_date.val( start_date ).trigger( 'change' );
|
774 |
-
}
|
775 |
-
|
776 |
-
if ( start_time ) {
|
777 |
-
$ticket_start_time.val( start_time ).trigger( 'change' );
|
778 |
-
}
|
779 |
-
|
780 |
-
if ( response.data.end_date ) {
|
781 |
-
end_date = format_date( response.data.end_date, true );
|
782 |
-
} else if ( undefined !== $( document.getElementById( 'EventEndDate' ) ).val() ) {
|
783 |
-
end_date = format_date( $( document.getElementById( 'EventEndDate' ) ).val() );
|
784 |
-
}
|
785 |
-
|
786 |
-
if ( response.data.end_time ) {
|
787 |
-
end_time = format_time( response.data.end_time );
|
788 |
-
} else if ( undefined !== $( document.getElementById( 'EventEndTime' ) ).val() ) {
|
789 |
-
end_time = format_time( $( document.getElementById( 'EventEndTime' ) ).val() );
|
790 |
-
}
|
791 |
-
|
792 |
-
if ( end_date ) {
|
793 |
-
$ticket_end_date.val( end_date ).trigger( 'change' );
|
794 |
-
}
|
795 |
-
|
796 |
-
if ( end_time ) {
|
797 |
-
$ticket_end_time.val( end_time ).trigger( 'change' );
|
798 |
-
}
|
799 |
-
|
800 |
-
$( document.getElementById( 'advanced_fields' ) ).empty( '' ).append( response.data.advanced_fields );
|
801 |
-
|
802 |
-
// set the prices
|
803 |
-
if ( 'undefined' !== typeof response.data.on_sale && response.data.on_sale ) {
|
804 |
-
onSale = true;
|
805 |
-
regularPrice = response.data.regular_price;
|
806 |
-
}
|
807 |
-
|
808 |
-
var $ticket_price = $tribe_tickets.find( '#ticket_price' );
|
809 |
-
$ticket_price.val( regularPrice );
|
810 |
-
|
811 |
-
if ( 'undefined' !== typeof response.data.disallow_update_price_message ) {
|
812 |
-
$ticket_price.siblings( '.no-update-message' ).html( response.data.disallow_update_price_message );
|
813 |
-
} else {
|
814 |
-
$ticket_price.siblings( '.no-update-message' ).html( '' );
|
815 |
-
}
|
816 |
-
|
817 |
-
if ( 'undefined' !== typeof response.data.can_update_price && ! response.data.can_update_price ) {
|
818 |
-
$ticket_price.prop( 'disabled', 'disabled' );
|
819 |
-
$ticket_price.siblings( '.description' ).hide();
|
820 |
-
$ticket_price.siblings( '.no-update-message' ).show();
|
821 |
-
} else {
|
822 |
-
$ticket_price.removeProp( 'disabled' );
|
823 |
-
$ticket_price.siblings( '.description' ).show();
|
824 |
-
$ticket_price.siblings( '.no-update-message' ).hide();
|
825 |
-
}
|
826 |
-
|
827 |
-
// History Content
|
828 |
-
if ( 'undefined' !== typeof response.data.history ) {
|
829 |
-
var $historyContent = $( response.data.history );
|
830 |
-
|
831 |
-
$edit_panel.find( '.accordion' ).append( $historyContent );
|
832 |
-
window.MTAccordion( {
|
833 |
-
target: '.accordion', // ID (or class) of accordion container
|
834 |
-
} );
|
835 |
-
} else {
|
836 |
-
$edit_panel.find( '.tribe-tickets-editor-history-container' ).remove();
|
837 |
-
}
|
838 |
-
|
839 |
-
var $sale_field = $( document.getElementById( 'ticket_sale_price' ) );
|
840 |
-
var $sale_container = $sale_field.closest( '.input_block' )
|
841 |
-
|
842 |
-
if ( onSale ) {
|
843 |
-
$sale_field.prop( 'readonly', false ).val( salePrice ).prop( 'readonly', true );
|
844 |
-
$sale_container.show();
|
845 |
-
} else {
|
846 |
-
$sale_container.hide();
|
847 |
-
}
|
848 |
-
|
849 |
-
if ( 'undefined' !== typeof response.data.purchase_limit && response.data.purchase_limit ) {
|
850 |
-
$( document.getElementById( 'ticket_purchase_limit' ) ).val( response.data.purchase_limit );
|
851 |
-
}
|
852 |
-
|
853 |
-
if ( response.data.sku ) {
|
854 |
-
$( document.querySelectorAll( '.sku_input' ) ).val( response.data.sku );
|
855 |
-
}
|
856 |
-
|
857 |
-
$( document.getElementById( 'tribe-tickets-attendee-sortables' ) ).empty();
|
858 |
-
|
859 |
-
if ( 'undefined' !== typeof response.data.attendee_fields && response.data.attendee_fields ) {
|
860 |
-
$( document.getElementById( 'tribe-tickets-attendee-sortables' ) ).html( response.data.attendee_fields );
|
861 |
-
$( '.tribe-tickets-attendee-saved-fields' ).hide();
|
862 |
-
} else {
|
863 |
-
$( '.tribe-tickets-attendee-saved-fields' ).show();
|
864 |
-
}
|
865 |
-
|
866 |
-
if ( 'undefined' !== typeof response.data.controls && response.data.controls ) {
|
867 |
-
$( document.getElementById( 'ticket_bottom_right' ) ).html( response.data.controls );
|
868 |
-
}
|
869 |
-
|
870 |
-
$tribe_tickets.find( '.tribe-bumpdown-trigger' ).bumpdown();
|
871 |
-
|
872 |
-
$( 'a#ticket_form_toggle' ).hide();
|
873 |
-
|
874 |
-
$edit_panel.find( '.tribe-dependency' ).trigger( 'verify.dependency' );
|
875 |
},
|
876 |
'json'
|
877 |
-
)
|
878 |
-
|
879 |
-
|
880 |
-
// re-trigger all dependencies
|
881 |
-
$edit_panel.find( '.tribe-dependency' ).trigger( 'verify.dependency' );
|
882 |
|
883 |
-
|
884 |
-
|
885 |
-
|
|
|
886 |
|
887 |
-
|
888 |
-
|
889 |
-
|
|
|
890 |
|
891 |
-
|
892 |
-
$document.on( 'click', '#global_capacity_edit_button', function( e ) {
|
893 |
-
e.preventDefault();
|
894 |
-
$( document.getElementById( 'settings_global_capacity_edit' ) ).prop( 'disabled', false ).focus();
|
895 |
} );
|
896 |
|
897 |
$document.on( 'keyup', '#ticket_price', function ( e ) {
|
@@ -913,31 +614,49 @@ var ticketHeaderImage = window.ticketHeaderImage || {};
|
|
913 |
ticketHeaderImage.uploader( '', '' );
|
914 |
} );
|
915 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
916 |
/* Handle saving changes to capacity from Settings form */
|
917 |
-
$document.on( 'blur', '#settings_global_capacity_edit', function() {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
918 |
var $capacity = $( this );
|
919 |
-
var
|
|
|
|
|
920 |
|
921 |
-
|
|
|
922 |
$capacity.val( 0 );
|
923 |
capacity = 0;
|
924 |
}
|
925 |
|
926 |
-
var
|
927 |
-
action : 'tribe-events-edit-global-capacity',
|
928 |
-
post_ID : $post_id.val(),
|
929 |
-
capacity : capacity,
|
930 |
-
nonce : TribeTickets.edit_ticket_nonce
|
931 |
-
};
|
932 |
|
933 |
-
|
934 |
-
|
935 |
-
|
936 |
-
|
937 |
-
|
938 |
-
|
939 |
-
|
940 |
-
);
|
941 |
} );
|
942 |
|
943 |
/* Track changes to the global stock level on the ticket edit form. */
|
@@ -956,9 +675,6 @@ var ticketHeaderImage = window.ticketHeaderImage || {};
|
|
956 |
}
|
957 |
} );
|
958 |
|
959 |
-
/** Track changes to the global stock level on the Settings form. */
|
960 |
-
$document.on( 'change', '#tribe-tickets-global-stock-level', changeEventCapacity );
|
961 |
-
|
962 |
/* Remove header image action */
|
963 |
$document.on( 'click', '#tribe_ticket_header_remove', function( e ) {
|
964 |
e.preventDefault();
|
@@ -966,108 +682,10 @@ var ticketHeaderImage = window.ticketHeaderImage || {};
|
|
966 |
$( document.getElementById( 'tribe_ticket_header_remove' ) ).hide();
|
967 |
$( document.getElementById( 'tribe_tickets_image_preview_filename' ) ).hide().find( '.filename' ).text( '' );
|
968 |
$( document.getElementById( 'tribe_ticket_header_image_id' ) ).val( '' );
|
969 |
-
|
970 |
} );
|
971 |
|
972 |
$document.ready( function() {
|
973 |
-
|
974 |
-
startofweek = $event_pickers.data( 'startofweek' );
|
975 |
-
}
|
976 |
-
|
977 |
-
if ( 'undefined' !== typeof tribe_dynamic_help_text ) {
|
978 |
-
var indexDatepickerFormat = $.isNumeric( tribe_dynamic_help_text.datepicker_format_index ) ? tribe_dynamic_help_text.datepicker_format_index : 0;
|
979 |
-
dateFormat = datepickerFormats[ indexDatepickerFormat ];
|
980 |
-
}
|
981 |
-
|
982 |
-
var datepickerOpts = {
|
983 |
-
dateFormat : dateFormat,
|
984 |
-
showAnim : 'fadeIn',
|
985 |
-
changeMonth : true,
|
986 |
-
changeYear : true,
|
987 |
-
numberOfMonths : 3,
|
988 |
-
firstDay : startofweek,
|
989 |
-
showButtonPanel: false,
|
990 |
-
onChange : function() {
|
991 |
-
},
|
992 |
-
beforeShow : function( element, object ) {
|
993 |
-
object.input.data( 'prevDate', object.input.datepicker( 'getDate' ) );
|
994 |
-
|
995 |
-
// Capture the datepicker div here; it's dynamically generated so best to grab here instead of elsewhere.
|
996 |
-
var $dpDiv = $( object.dpDiv );
|
997 |
-
|
998 |
-
// "Namespace" our CSS a bit so that our custom jquery-ui-datepicker styles don't interfere with other plugins'/themes'.
|
999 |
-
$dpDiv.addClass( 'tribe-ui-datepicker' );
|
1000 |
-
|
1001 |
-
// @todo Look into making this also compatible with ACF
|
1002 |
-
// $event_details.trigger( 'tribe.ui-datepicker-div-beforeshow', [ object ] );
|
1003 |
-
|
1004 |
-
$dpDiv.attrchange({
|
1005 |
-
trackValues : true,
|
1006 |
-
callback : function( attr ) {
|
1007 |
-
// This is a non-ideal, but very reliable way to look for the closing of the ui-datepicker box,
|
1008 |
-
// since onClose method is often included by other plugins, including Events Calender PRO.
|
1009 |
-
if (
|
1010 |
-
attr.newValue.indexOf( 'display: none' ) >= 0 ||
|
1011 |
-
attr.newValue.indexOf( 'display:none' ) >= 0
|
1012 |
-
) {
|
1013 |
-
$dpDiv.removeClass( 'tribe-ui-datepicker' );
|
1014 |
-
|
1015 |
-
// @todo Look into making this also compatible with ACF
|
1016 |
-
// $event_details.trigger( 'tribe.ui-datepicker-div-closed', [ object ] );
|
1017 |
-
}
|
1018 |
-
}
|
1019 |
-
});
|
1020 |
-
},
|
1021 |
-
onSelect : function( dateText, inst ) {
|
1022 |
-
var the_date = $.datepicker.parseDate( dateFormat, dateText );
|
1023 |
-
|
1024 |
-
if ( inst.id === 'ticket_start_date' ) {
|
1025 |
-
$ticket_end_date.datepicker( 'option', 'minDate', the_date );
|
1026 |
-
} else {
|
1027 |
-
$ticket_start_date.datepicker( 'option', 'maxDate', the_date );
|
1028 |
-
}
|
1029 |
-
}
|
1030 |
-
};
|
1031 |
-
|
1032 |
-
$.extend( datepickerOpts, tribe_l10n_datatables.datepicker );
|
1033 |
-
|
1034 |
-
var $timepickers = $tribe_tickets.find( '.tribe-timepicker:not(.ui-timepicker-input)' );
|
1035 |
-
tribe_timepickers.setup_timepickers( $timepickers );
|
1036 |
-
|
1037 |
-
$ticket_start_date.datepicker( datepickerOpts ).datepicker( 'option', 'defaultDate', $( document.getElementById( 'EventStartDate' ) ).val() ).keyup( function( e ) {
|
1038 |
-
if ( e.keyCode === 8 || e.keyCode === 46 ) {
|
1039 |
-
$.datepicker._clearDate( this );
|
1040 |
-
}
|
1041 |
-
} );
|
1042 |
-
|
1043 |
-
$ticket_end_date.datepicker( datepickerOpts ).datepicker( 'option', 'defaultDate', $( document.getElementById( 'EventEndDate' ) ).val() ).keyup( function( e ) {
|
1044 |
-
if ( e.keyCode === 8 || e.keyCode === 46 ) {
|
1045 |
-
$.datepicker._clearDate( this );
|
1046 |
-
}
|
1047 |
-
} );
|
1048 |
-
|
1049 |
-
if ( $ticket_image_preview.find( 'img' ).length ) {
|
1050 |
-
$( document.getElementById( 'tribe_ticket_header_remove' ) ).show();
|
1051 |
-
|
1052 |
-
var $tiximg = $ticket_image_preview.find( 'img' );
|
1053 |
-
$tiximg.removeAttr( 'width' ).removeAttr( 'height' );
|
1054 |
-
|
1055 |
-
if ( $tribe_tickets.width() < $tiximg.width() ) {
|
1056 |
-
$tiximg.css( 'width', '95%' );
|
1057 |
-
}
|
1058 |
-
}
|
1059 |
-
|
1060 |
-
// prompt user to save changes in ticket meta box if ticket meta box is not showing the base panel
|
1061 |
-
$publish.on( 'click.tribe-ticket-editing-in-progress', function( e ) {
|
1062 |
-
if (
|
1063 |
-
'true' === $base_panel.attr( 'aria-hidden' )
|
1064 |
-
&& ! confirm( $base_panel.data( 'save-prompt' ) )
|
1065 |
-
) {
|
1066 |
-
return false;
|
1067 |
-
}
|
1068 |
-
|
1069 |
-
$( window ).off( 'beforeunload.tribe' );
|
1070 |
-
} );
|
1071 |
} );
|
1072 |
|
1073 |
-
} )( window, jQuery );
|
1 |
+
// For compatibility purposes we add this
|
2 |
+
if ( 'undefined' === typeof tribe.tickets ) {
|
3 |
+
tribe.tickets = {};
|
4 |
+
}
|
5 |
+
|
6 |
+
tribe.tickets.editor = {};
|
7 |
+
|
8 |
var ticketHeaderImage = window.ticketHeaderImage || {};
|
9 |
|
10 |
+
(function( window, $, obj ) {
|
11 |
'use strict';
|
12 |
|
13 |
// base elements
|
14 |
+
var $body = $( 'html, body' );
|
15 |
+
var $document = $( document );
|
16 |
+
var $tribe_tickets = $( document.getElementById( 'tribetickets' ) );
|
17 |
|
18 |
// Bail if we don't have what we need
|
19 |
if ( 0 === $tribe_tickets.length ) {
|
20 |
return;
|
21 |
}
|
22 |
|
23 |
+
var $tickets_container = $( document.getElementById( 'event_tickets' ) );
|
24 |
+
var $post_id = $( document.getElementById( 'post_ID' ) );
|
25 |
+
var $publish = $( document.getElementById( 'publish' ) );
|
26 |
+
var $metaboxBlocker = $tribe_tickets.find( '.tribe-tickets-editor-blocker' );
|
27 |
+
var $spinner = $tribe_tickets.find( '.spinner' );
|
|
|
28 |
|
29 |
// panels
|
30 |
+
var $base_panel = $( document.getElementById( 'tribe_panel_base' ) );
|
31 |
+
var $edit_panel = $( document.getElementById( 'tribe_panel_edit' ) );
|
32 |
+
var $settings_panel = $( document.getElementById( 'tribe_panel_settings' ) );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
33 |
|
34 |
// Datepicker and Timepicker variables
|
35 |
var datepickerFormats = [
|
47 |
'dd.mm.yy'
|
48 |
];
|
49 |
var dateFormat = datepickerFormats[0];
|
|
|
50 |
|
51 |
var changeEventCapacity = function( event, eventCapacity ) {
|
52 |
if ( 'undefined' === typeof eventCapacity ) {
|
80 |
$capacityValue.text( eventCapacity );
|
81 |
};
|
82 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
83 |
/**
|
84 |
* Sets the ticket edit form provider to the currently selected default ticketing provider.
|
85 |
* Defaults to RSVP if something fails
|
90 |
* @return void
|
91 |
*/
|
92 |
function set_default_provider_radio( force_rsvp ) {
|
93 |
+
if ( 'undefined' === typeof force_rsvp ) {
|
94 |
+
force_rsvp = true;
|
95 |
+
}
|
96 |
+
var $checked_provider = $tribe_tickets.find( '.tribe-ticket-editor-field-default_provider' ).filter( ':checked' );
|
97 |
var provider_id = 'Tribe__Tickets__RSVP_radio';
|
98 |
|
99 |
if ( ! force_rsvp && $checked_provider.length > 0 ) {
|
104 |
}
|
105 |
|
106 |
/**
|
107 |
+
* If the user attempts to nav away without saving global stock setting
|
108 |
+
* changes then try to bring this to their attention!
|
109 |
*/
|
110 |
+
obj.beforeUnload = function( event ) {
|
111 |
+
var returnValue = false;
|
112 |
|
113 |
+
// If we are not on the base panel we alert the user about leaving
|
114 |
+
// NOTE: This custom message will only work for Chrome < 51, Opera < 38, Firefox < 44, and Safari < 9.1
|
115 |
+
if ( 'true' === $base_panel.attr( 'aria-hidden' ) ) {
|
116 |
+
returnValue = tribe_global_stock_admin_ui.nav_away_msg;
|
117 |
}
|
118 |
|
119 |
+
event.returnValue = returnValue;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
120 |
|
121 |
+
// We can't trigger a confirm() dialog from within this action but returning
|
122 |
+
// a string should achieve effectively the same result
|
123 |
+
return returnValue;
|
124 |
+
};
|
125 |
+
|
126 |
+
ticketHeaderImage = {
|
127 |
+
// Call this from the upload button to initiate the upload frame.
|
128 |
+
uploader: function() {
|
129 |
+
var frame = wp.media( {
|
130 |
+
title : HeaderImageData.title,
|
131 |
+
multiple: false,
|
132 |
+
library : { type: 'image' },
|
133 |
+
button : { text: HeaderImageData.button }
|
134 |
+
} );
|
135 |
+
|
136 |
+
// Handle results from media manager.
|
137 |
+
frame.on( 'close', function() {
|
138 |
+
var attachments = frame.state().get( 'selection' ).toJSON();
|
139 |
+
if ( attachments.length ) {
|
140 |
+
ticketHeaderImage.render( attachments[0] );
|
141 |
+
}
|
142 |
+
} );
|
143 |
+
|
144 |
+
frame.open();
|
145 |
+
return false;
|
146 |
+
},
|
147 |
+
// Output Image preview and populate widget form.
|
148 |
+
render : function( attachment ) {
|
149 |
+
$( document.getElementById( 'tribe_ticket_header_preview' ) ).html( ticketHeaderImage.imgHTML( attachment ) );
|
150 |
+
$( document.getElementById( 'tribe_ticket_header_image_id' ) ).val( attachment.id );
|
151 |
+
$( document.getElementById( 'tribe_ticket_header_remove' ) ).show();
|
152 |
+
$( document.getElementById( 'tribe_tickets_image_preview_filename' ) ).show().find( '.filename' ).text( attachment.filename );
|
153 |
+
},
|
154 |
+
// Render html for the image.
|
155 |
+
imgHTML : function( attachment ) {
|
156 |
+
var img_html = '<img src="' + attachment.url + '" ';
|
157 |
+
img_html += 'width="' + attachment.width + '" ';
|
158 |
+
img_html += 'height="' + attachment.height + '" ';
|
159 |
+
img_html += '/>';
|
160 |
+
return img_html;
|
161 |
+
}
|
162 |
+
};
|
163 |
+
|
164 |
+
obj.panels = {
|
165 |
+
list: '#tribe_panel_base',
|
166 |
+
ticket: '#tribe_panel_edit',
|
167 |
+
settings: '#tribe_panel_settings',
|
168 |
+
};
|
169 |
|
170 |
/**
|
171 |
* Switch from one panel to another
|
173 |
* @param object ($base_panel) $panel jQuery object containing the panel we want to switch to
|
174 |
* @return void
|
175 |
*/
|
176 |
+
obj.swapPanel = function( panel ) {
|
177 |
+
var $panel;
|
|
|
|
|
178 |
|
179 |
+
if ( panel instanceof jQuery ) {
|
180 |
+
$panel = panel;
|
181 |
+
} else if ( 'undefined' !== typeof obj.panels[ panel ] ) {
|
182 |
+
$panel = $( obj.panels[ panel ] );
|
183 |
+
} else {
|
184 |
$panel = $base_panel;
|
185 |
}
|
186 |
|
187 |
// First, hide them all!
|
188 |
+
$tribe_tickets.find( '.ticket_panel' ).each( function() {
|
189 |
$( this ).attr( 'aria-hidden', true );
|
190 |
} );
|
191 |
|
193 |
$panel.attr( 'aria-hidden', false );
|
194 |
|
195 |
if ( ! $panel.is( $base_panel ) ) {
|
196 |
+
$( window ).on( 'beforeunload.tribe', obj.beforeUnload );
|
197 |
} else {
|
198 |
$( window ).off( 'beforeunload.tribe' );
|
199 |
}
|
200 |
}
|
201 |
|
202 |
+
obj.fetchPanels = function( data, swapTo ) {
|
203 |
+
if ( 'undefined' === typeof data ) {
|
204 |
+
data = [];
|
205 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
206 |
|
|
|
207 |
var params = {
|
208 |
+
action : 'tribe-ticket-panels',
|
209 |
+
notice : false,
|
210 |
+
post_id : $post_id.val(),
|
211 |
+
nonce : TribeTickets.add_ticket_nonce,
|
212 |
+
data : data,
|
213 |
+
is_admin: $( 'body' ).hasClass( 'wp-admin' )
|
214 |
};
|
215 |
|
|
|
|
|
|
|
|
|
216 |
$.post(
|
217 |
ajaxurl,
|
218 |
params,
|
219 |
function( response ) {
|
220 |
+
if ( ! response.success ) {
|
221 |
+
return;
|
222 |
+
}
|
223 |
+
|
224 |
+
obj.refreshPanels( response.data, swapTo );
|
225 |
+
},
|
226 |
+
'json'
|
227 |
+
);
|
228 |
+
};
|
|
|
|
|
|
|
|
|
|
|
|
|
229 |
|
230 |
+
obj.refreshPanels = function ( panels, swapTo ) {
|
231 |
+
// After this point is safe to assume we have a valid set of panels
|
232 |
+
$base_panel = $( panels.list );
|
233 |
+
$edit_panel = $( panels.ticket );
|
234 |
+
$settings_panel = $( panels.settings );
|
235 |
|
236 |
+
// Rplace the old ones
|
237 |
+
$tribe_tickets.find( obj.panels.list ).replaceWith( $base_panel );
|
238 |
+
$tribe_tickets.find( obj.panels.ticket ).replaceWith( $edit_panel );
|
239 |
+
$tribe_tickets.find( obj.panels.settings ).replaceWith( $settings_panel );
|
240 |
|
241 |
+
// Makes sure the Panels are Ready for interaction
|
242 |
+
obj.setupPanels();
|
|
|
243 |
|
244 |
+
// At the end always swap panels (deafults to base/list)
|
245 |
+
obj.swapPanel( swapTo );
|
246 |
+
};
|
247 |
+
|
248 |
+
obj.setupPanels = function() {
|
249 |
+
window.MTAccordion( {
|
250 |
+
target: '.accordion', // ID (or class) of accordion container
|
251 |
+
} );
|
252 |
|
253 |
+
// date elements
|
254 |
+
var $event_pickers = $( document.getElementById( 'tribe-event-datepickers' ) );
|
255 |
+
var $ticket_start_date = $( document.getElementById( 'ticket_start_date' ) );
|
256 |
+
var $ticket_end_date = $( document.getElementById( 'ticket_end_date' ) );
|
257 |
+
var $ticket_start_time = $( document.getElementById( 'ticket_start_time' ) );
|
258 |
+
var $ticket_end_time = $( document.getElementById( 'ticket_end_time' ) );
|
259 |
+
var startofweek = 0;
|
260 |
|
261 |
+
if ( $event_pickers.length ) {
|
262 |
+
startofweek = $event_pickers.data( 'startofweek' );
|
263 |
+
}
|
264 |
+
|
265 |
+
if ( 'undefined' !== typeof tribe_dynamic_help_text ) {
|
266 |
+
var indexDatepickerFormat = $.isNumeric( tribe_dynamic_help_text.datepicker_format_index ) ? tribe_dynamic_help_text.datepicker_format_index : 0;
|
267 |
+
dateFormat = datepickerFormats[ indexDatepickerFormat ];
|
268 |
+
}
|
269 |
+
|
270 |
+
var datepickerOpts = {
|
271 |
+
dateFormat : dateFormat,
|
272 |
+
showAnim : 'fadeIn',
|
273 |
+
changeMonth : true,
|
274 |
+
changeYear : true,
|
275 |
+
numberOfMonths : 3,
|
276 |
+
firstDay : startofweek,
|
277 |
+
showButtonPanel: false,
|
278 |
+
onChange : function() {
|
279 |
+
},
|
280 |
+
beforeShow : function( element, object ) {
|
281 |
+
object.input.data( 'prevDate', object.input.datepicker( 'getDate' ) );
|
282 |
+
|
283 |
+
// Capture the datepicker div here; it's dynamically generated so best to grab here instead of elsewhere.
|
284 |
+
var $dpDiv = $( object.dpDiv );
|
285 |
+
|
286 |
+
// "Namespace" our CSS a bit so that our custom jquery-ui-datepicker styles don't interfere with other plugins'/themes'.
|
287 |
+
$dpDiv.addClass( 'tribe-ui-datepicker' );
|
288 |
+
|
289 |
+
// @todo Look into making this also compatible with ACF
|
290 |
+
// $event_details.trigger( 'tribe.ui-datepicker-div-beforeshow', [ object ] );
|
291 |
+
|
292 |
+
$dpDiv.attrchange({
|
293 |
+
trackValues : true,
|
294 |
+
callback : function( attr ) {
|
295 |
+
// This is a non-ideal, but very reliable way to look for the closing of the ui-datepicker box,
|
296 |
+
// since onClose method is often included by other plugins, including Events Calender PRO.
|
297 |
+
if (
|
298 |
+
attr.newValue.indexOf( 'display: none' ) >= 0 ||
|
299 |
+
attr.newValue.indexOf( 'display:none' ) >= 0
|
300 |
+
) {
|
301 |
+
$dpDiv.removeClass( 'tribe-ui-datepicker' );
|
302 |
|
303 |
+
// @todo Look into making this also compatible with ACF
|
304 |
+
// $event_details.trigger( 'tribe.ui-datepicker-div-closed', [ object ] );
|
305 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
306 |
}
|
307 |
+
});
|
308 |
+
},
|
309 |
+
onSelect : function( dateText, inst ) {
|
310 |
+
var the_date = $.datepicker.parseDate( dateFormat, dateText );
|
311 |
|
312 |
+
if ( inst.id === 'ticket_start_date' ) {
|
313 |
+
$ticket_end_date.datepicker( 'option', 'minDate', the_date );
|
314 |
+
} else {
|
315 |
+
$ticket_start_date.datepicker( 'option', 'maxDate', the_date );
|
316 |
+
}
|
317 |
}
|
318 |
+
};
|
319 |
+
|
320 |
+
$.extend( datepickerOpts, tribe_l10n_datatables.datepicker );
|
321 |
+
|
322 |
+
var $timepickers = $tribe_tickets.find( '.tribe-timepicker:not(.ui-timepicker-input)' );
|
323 |
+
tribe_timepickers.setup_timepickers( $timepickers );
|
324 |
|
325 |
+
$ticket_start_date.datepicker( datepickerOpts ).datepicker( 'option', 'defaultDate', $( document.getElementById( 'EventStartDate' ) ).val() ).keyup( function( e ) {
|
326 |
+
if ( e.keyCode === 8 || e.keyCode === 46 ) {
|
327 |
+
$.datepicker._clearDate( this );
|
328 |
}
|
329 |
} );
|
|
|
330 |
|
331 |
+
$ticket_end_date.datepicker( datepickerOpts ).datepicker( 'option', 'defaultDate', $( document.getElementById( 'EventEndDate' ) ).val() ).keyup( function( e ) {
|
332 |
+
if ( e.keyCode === 8 || e.keyCode === 46 ) {
|
333 |
+
$.datepicker._clearDate( this );
|
334 |
+
}
|
335 |
+
} );
|
|
|
336 |
|
337 |
+
if ( $( document.getElementById( 'tribe_ticket_header_preview' ) ).find( 'img' ).length ) {
|
338 |
+
$( document.getElementById( 'tribe_ticket_header_remove' ) ).show();
|
|
|
|
|
|
|
339 |
|
340 |
+
var $tiximg = $( document.getElementById( 'tribe_ticket_header_preview' ) ).find( 'img' );
|
341 |
+
$tiximg.removeAttr( 'width' ).removeAttr( 'height' );
|
342 |
|
343 |
+
if ( $tribe_tickets.width() < $tiximg.width() ) {
|
344 |
+
$tiximg.css( 'width', '95%' );
|
345 |
+
}
|
346 |
+
}
|
347 |
|
348 |
+
// Setup Drag and Drop
|
349 |
+
if (
|
350 |
+
tribe.tickets.table
|
351 |
+
&& 0 !== $base_panel.find( 'tribe-tickets-editor-table-tickets-body tr' ).length
|
352 |
+
) {
|
353 |
+
tribe.tickets.table.toggle_sortable();
|
354 |
+
}
|
|
|
|
|
355 |
|
356 |
+
$tribe_tickets.find( tribe.validation.selectors.item ).validation();
|
|
|
|
|
|
|
|
|
|
|
|
|
357 |
|
358 |
+
// Make sure we display the correct Fields and things
|
359 |
+
$tribe_tickets.find( '.tribe-dependent' ).dependency();
|
360 |
+
$tribe_tickets.find( '.tribe-dependency' ).trigger( 'verify.dependency' );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
361 |
};
|
362 |
|
363 |
$document.ajaxSend( function( event, jqxhr, settings ) {
|
407 |
$spinner.addClass( 'is-active' );
|
408 |
}
|
409 |
},
|
410 |
+
} );
|
411 |
|
412 |
+
/**
|
413 |
+
* When Hitting the Publish button we remove our beforeunload
|
414 |
+
*/
|
415 |
+
$publish.on( 'click', function ( event ) {
|
416 |
+
$( window ).off( 'beforeunload.tribe' );
|
417 |
+
} );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
418 |
|
419 |
+
/* "Settings" button action */
|
420 |
+
$document.on( 'click', '#settings_form_toggle', function( event ) {
|
421 |
+
// Prevent Form Submit on button click
|
422 |
+
event.preventDefault();
|
423 |
|
424 |
+
// Fetches as fresh set of panels
|
425 |
+
obj.fetchPanels( null, 'settings' );
|
|
|
|
|
426 |
|
427 |
+
// Make it safe that it wont submit
|
428 |
+
return false;
|
429 |
+
} );
|
430 |
|
431 |
+
/**
|
432 |
+
* Cancel buttons, which refresh and swap to list
|
433 |
+
*/
|
434 |
+
$document.on( 'click', '#tribe_settings_form_cancel, #ticket_form_cancel', function( event ) {
|
435 |
+
// Prevent Form Submit on button click
|
436 |
+
event.preventDefault();
|
437 |
|
438 |
+
// Fetches as fresh set of panels
|
439 |
+
obj.fetchPanels( null, 'list' );
|
440 |
|
441 |
+
// Make it safe that it wont submit
|
442 |
+
return false;
|
443 |
+
} );
|
444 |
|
445 |
+
/* "Save Settings" button action */
|
446 |
+
$document.on( 'click', '#tribe_settings_form_save', function( event ) {
|
447 |
+
// Prevent Form Submit on button click
|
448 |
+
event.preventDefault();
|
449 |
|
450 |
+
// Fetches form data from this panel
|
451 |
+
var formData = $settings_panel.find( 'input,textarea' ).serialize();
|
452 |
|
453 |
+
// Save and Refresh the Panels
|
454 |
+
obj.fetchPanels( formData, 'list' );
|
|
|
|
|
|
|
455 |
|
456 |
+
// Make it safe that it wont submit
|
457 |
+
return false;
|
|
|
|
|
|
|
|
|
|
|
458 |
} );
|
459 |
|
460 |
+
/* "Add ticket" button action */
|
461 |
+
$document.on( 'click', '.ticket_form_toggle', function( event ) {
|
462 |
+
// Prevent Form Submit on button click
|
463 |
+
event.preventDefault();
|
464 |
+
|
465 |
+
// Where we clicked
|
466 |
+
var $button = $( this );
|
467 |
+
|
468 |
+
set_default_provider_radio( 'rsvp_form_toggle' === $button.attr( 'id' ) );
|
469 |
|
470 |
+
// Triggers Dependency
|
471 |
+
$edit_panel.find( '.tribe-dependency' ).trigger( 'verify.dependency' );
|
472 |
+
|
473 |
+
obj.swapPanel( 'ticket' );
|
474 |
+
|
475 |
+
// Make it safe that it wont submit
|
476 |
+
return false;
|
477 |
} );
|
478 |
|
479 |
+
/* "Edit Ticket" link action */
|
480 |
+
$document.on( 'click', '.ticket_edit_button', function( event ) {
|
481 |
+
// Prevent Form Submit on button click
|
482 |
+
event.preventDefault();
|
483 |
|
484 |
+
// Where we clicked
|
485 |
+
var $button = $( this );
|
|
|
|
|
|
|
|
|
486 |
|
487 |
+
// Prep the Params for the Request
|
488 |
+
var params = {
|
489 |
+
action : 'tribe-ticket-edit',
|
490 |
+
post_id : $post_id.val(),
|
491 |
+
ticket_id: $button.data( 'ticketId' ),
|
492 |
+
nonce : TribeTickets.edit_ticket_nonce,
|
493 |
+
is_admin : $( 'body' ).hasClass( 'wp-admin' )
|
494 |
};
|
495 |
|
496 |
$.post(
|
497 |
ajaxurl,
|
498 |
params,
|
499 |
function( response ) {
|
500 |
+
if ( ! response.success ) {
|
501 |
+
return;
|
|
|
502 |
}
|
503 |
+
|
504 |
+
obj.refreshPanels( response.data, 'ticket' );
|
505 |
},
|
506 |
'json'
|
507 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
508 |
|
509 |
+
// Make it safe that it wont submit
|
510 |
+
return false;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
511 |
} );
|
512 |
|
513 |
/* "Save Ticket" button action */
|
522 |
return;
|
523 |
}
|
524 |
|
525 |
+
$tribe_tickets.trigger( 'pre-save-ticket.tribe', e );
|
526 |
+
|
527 |
var $orders = $base_panel.find( '.tribe-ticket-field-order' );
|
528 |
var params = {
|
529 |
+
action : 'tribe-ticket-add',
|
530 |
+
data : $edit_panel.find( 'input,textarea' ).serialize(),
|
531 |
+
post_id : $post_id.val(),
|
532 |
nonce : TribeTickets.add_ticket_nonce,
|
533 |
menu_order: $orders.length,
|
534 |
is_admin : $( 'body' ).hasClass( 'wp-admin' )
|
538 |
ajaxurl,
|
539 |
params,
|
540 |
function( response ) {
|
541 |
+
if ( ! response.success ) {
|
542 |
+
return;
|
|
|
|
|
543 |
}
|
544 |
+
|
545 |
+
obj.refreshPanels( response.data );
|
546 |
},
|
547 |
'json'
|
548 |
);
|
549 |
} );
|
550 |
|
551 |
/* "Delete Ticket" link action */
|
552 |
+
$document.on( 'click', '.ticket_delete', function( event ) {
|
553 |
if ( ! confirm( tribe_ticket_notices.confirm_alert ) ) {
|
554 |
return false;
|
555 |
}
|
556 |
|
557 |
+
event.preventDefault();
|
558 |
|
559 |
+
$tribe_tickets.trigger( 'delete-ticket.tribe', event );
|
560 |
|
561 |
var deleted_ticket_id = $( this ).attr( 'attr-ticket-id' );
|
562 |
|
563 |
var params = {
|
564 |
+
action : 'tribe-ticket-delete',
|
565 |
+
post_id : $post_id.val(),
|
566 |
ticket_id: deleted_ticket_id,
|
567 |
+
nonce : TribeTickets.remove_ticket_nonce,
|
568 |
+
is_admin : $( 'body' ).hasClass( 'wp-admin' )
|
569 |
};
|
570 |
|
571 |
$.post(
|
572 |
ajaxurl,
|
573 |
params,
|
574 |
function( response ) {
|
575 |
+
if ( ! response.success ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
576 |
return;
|
577 |
}
|
578 |
|
579 |
+
obj.refreshPanels( response.data );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
580 |
},
|
581 |
'json'
|
582 |
+
);
|
583 |
+
} );
|
|
|
|
|
|
|
584 |
|
585 |
+
/* Change global stock type if we've put a value in global_stock_cap */
|
586 |
+
$document.on( 'change', '.tribe-ticket-field-capacity', function( e ) {
|
587 |
+
var $this = $( this );
|
588 |
+
var $globalField = $this.parents( '.input_block' ).eq( 0 ).find( '.tribe-ticket-field-mode' );
|
589 |
|
590 |
+
// Bail if we have any value on Stock Cap
|
591 |
+
if ( ! $this.val() ) {
|
592 |
+
return;
|
593 |
+
}
|
594 |
|
595 |
+
$globalField.val( 'capped' );
|
|
|
|
|
|
|
596 |
} );
|
597 |
|
598 |
$document.on( 'keyup', '#ticket_price', function ( e ) {
|
614 |
ticketHeaderImage.uploader( '', '' );
|
615 |
} );
|
616 |
|
617 |
+
$document.on( 'focus', '#settings_global_capacity_edit', function() {
|
618 |
+
var $capacity = $( this );
|
619 |
+
var nonSharedCapacity = 0;
|
620 |
+
var $capacities = $( '.tribe-tickets-editor-capacity-table' ).find( '[data-capacity]' );
|
621 |
+
|
622 |
+
$capacities.each( function() {
|
623 |
+
var $item = $( this );
|
624 |
+
nonSharedCapacity = nonSharedCapacity + parseInt( $item.data( 'capacity' ), 10 );
|
625 |
+
} );
|
626 |
+
|
627 |
+
$capacity.data( 'nonSharedCapacity', nonSharedCapacity );
|
628 |
+
} );
|
629 |
+
|
630 |
/* Handle saving changes to capacity from Settings form */
|
631 |
+
$document.on( 'blur change', '#settings_global_capacity_edit', function() {
|
632 |
+
var $totalRow = $( '.tribe-tickets-editor-table-row-capacity-total' );
|
633 |
+
var totalCapacity = parseInt( $totalRow.data( 'totalCapacity' ), 10 );
|
634 |
+
|
635 |
+
// We just bail if we are dealing with any unlimited
|
636 |
+
if ( -1 === totalCapacity ) {
|
637 |
+
return;
|
638 |
+
}
|
639 |
+
|
640 |
var $capacity = $( this );
|
641 |
+
var $total = $totalRow.find( '.tribe-tickets-editor-total-capacity' );
|
642 |
+
var capacity = parseInt( $capacity.val(), 10 );
|
643 |
+
var nonSharedCapacity = $capacity.data( 'nonSharedCapacity' );
|
644 |
|
645 |
+
// Prevent Fails with empty stuff
|
646 |
+
if ( '' === capacity || 0 > capacity ) {
|
647 |
$capacity.val( 0 );
|
648 |
capacity = 0;
|
649 |
}
|
650 |
|
651 |
+
var total = nonSharedCapacity + capacity;
|
|
|
|
|
|
|
|
|
|
|
652 |
|
653 |
+
$total.text( total );
|
654 |
+
} );
|
655 |
+
|
656 |
+
/* Handle editing global capacity from the settings panel */
|
657 |
+
$document.on( 'click', '#global_capacity_edit_button', function( e ) {
|
658 |
+
e.preventDefault();
|
659 |
+
$( document.getElementById( 'settings_global_capacity_edit' ) ).prop( 'disabled', false ).focus();
|
|
|
660 |
} );
|
661 |
|
662 |
/* Track changes to the global stock level on the ticket edit form. */
|
675 |
}
|
676 |
} );
|
677 |
|
|
|
|
|
|
|
678 |
/* Remove header image action */
|
679 |
$document.on( 'click', '#tribe_ticket_header_remove', function( e ) {
|
680 |
e.preventDefault();
|
682 |
$( document.getElementById( 'tribe_ticket_header_remove' ) ).hide();
|
683 |
$( document.getElementById( 'tribe_tickets_image_preview_filename' ) ).hide().find( '.filename' ).text( '' );
|
684 |
$( document.getElementById( 'tribe_ticket_header_image_id' ) ).val( '' );
|
|
|
685 |
} );
|
686 |
|
687 |
$document.ready( function() {
|
688 |
+
obj.setupPanels();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
689 |
} );
|
690 |
|
691 |
+
} )( window, jQuery, tribe.tickets.editor );
|
src/resources/js/tickets.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
var ticketHeaderImage=window.ticketHeaderImage||{};!function(e,t,a){"use strict";function i(e,t){"undefined"==typeof e&&(e="");var a=T;return!0===t&&(a=C[0]),a=a.toUpperCase().replace("YY","YYYY"),moment(e,a).format(T.toUpperCase().replace("YY","YYYY"))}function n(e){return"undefined"==typeof e&&(e=""),moment(e,j).format(j)}function d(){var e=t("input[name=default_ticket_provider]","#tribe_panel_settings").filter(":checked");return e.length>0?e.val():"Tribe__Tickets__RSVP"}function c(e){e="undefined"!=typeof e;var a=t('input[name="default_ticket_provider"]',"#tribe_panel_settings").filter(":checked"),i="Tribe__Tickets__RSVP_radio";!e&&a.length>0&&(i=a.val()+"_radio"),t(document.getElementById(i)).prop("checked",!0).trigger("change")}function r(){var e=_.find(".ticket_advanced.history");e.length&&e.on("click",".toggle-history",function(t){t.preventDefault(),e.hasClass("_show")?e.removeClass("_show"):e.addClass("_show")})}function o(){var e=t(document.getElementById("settings_global_capacity_edit"));return 0<e.length&&0<e.val()?e.val():0}function l(a,i){a&&a.preventDefault(),"undefined"==typeof i&&(i=v),k.each(function(){t(this).attr("aria-hidden",!0)}),i.attr("aria-hidden",!1),i.is(v)?t(e).off("beforeunload.tribe"):t(e).on("beforeunload.tribe",Y)}function s(e,a){a="undefined"==typeof a;var i=v.find(".tribe-ticket-field-order"),n={action:"tribe-ticket-refresh-panels",notice:e,post_ID:m.val(),data:i.serialize(),nonce:TribeTickets.add_ticket_nonce};"settings-cancel"===e&&(n.action="tribe-ticket-refresh-settings"),t.post(ajaxurl,n,function(e){if(e.data.ticket_table&&""!=e.data.ticket_table){var a=t(document.getElementById("ticket_list_wrapper"));if(0===a.length){var i=t(".tribe_sectionheader.ticket_list_container");a=t("<div>",{id:"ticket_list_wrapper"}),i.append(a),i.hasClass("tribe_no_capacity")&&i.removeClass("tribe_no_capacity")}a.empty();var n=t("<div>");n.html(e.data.ticket_table),a.append(n)}if("undefined"!=typeof e.data.capacity_table&&t(document.getElementById("tribe_expanded_capacity_table")).replaceWith(e.data.capacity_table),"undefined"!=typeof e.data.settings_panel){var d=t(e.data.settings_panel);b.replaceWith(d),b=d}if("undefined"!=typeof e.data.total_capacity){var r=t(document.getElementById("ticket_form_total_capacity"));if(0<r.length)r.replaceWith(e.data.total_capacity);else{var o=t('<div class="ticket_table_intro">');o.append(e.data.total_capacity),t(".ticket_list_container").removeClass("tribe_no_capacity").prepend(o)}}c()}).complete(function(e){_.trigger("tribe-tickets-refresh-tables",e.data),a&&l()})}var p=(t("html, body"),t(document)),_=t(document.getElementById("tribetickets"));if(0!==_.length){var m=(t(document.getElementById("event_tickets")),t(document.getElementById("post_ID"))),g=t(document.getElementById("publish")),u=_.find(".tribe-tickets-editor-blocker"),f=_.find(".spinner"),k=t(document.getElementById("event_tickets")).find(".ticket_panel"),v=t(document.getElementById("tribe_panel_base")),y=t(document.getElementById("tribe_panel_edit")),b=t(document.getElementById("tribe_panel_settings")),h=t(document.getElementById("tribe-event-datepickers")),I=t(document.getElementById("ticket_start_date")),E=t(document.getElementById("ticket_end_date")),B=t(document.getElementById("ticket_start_time")),w=t(document.getElementById("ticket_end_time")),D=0,x=t(document.getElementById("tribe_ticket_header_preview")),C=["yy-mm-dd","m/d/yy","mm/dd/yy","d/m/yy","dd/mm/yy","m-d-yy","mm-dd-yy","d-m-yy","dd-mm-yy","yy.mm.dd","mm.dd.yy","dd.mm.yy"],T=C[0],j="HH:mmA",S=function(e,i){if("undefined"==typeof i){var n=t(this);i=n.val()}if(a!==i){i||(i=0),i=parseInt(i,10);var d=t(".tribe-ticket-capacity-max"),c=d.find(".tribe-ticket-capacity-value"),r=t('.tribe-ticket-field-capacity[name="tribe-ticket[capacity]"]');r.attr("placeholder",i),i?r.attr("max",i):i=0,c.text(i)}},Y=function(e){var t=!1;return"true"===v.attr("aria-hidden")&&(t=tribe_global_stock_admin_ui.nav_away_msg),e.returnValue=t,t};ticketHeaderImage={uploader:function(){var e=wp.media({title:HeaderImageData.title,multiple:!1,library:{type:"image"},button:{text:HeaderImageData.button}});return e.on("close",function(){var t=e.state().get("selection").toJSON();t.length&&ticketHeaderImage.render(t[0])}),e.open(),!1},render:function(e){x.html(ticketHeaderImage.imgHTML(e)),t(document.getElementById("tribe_ticket_header_image_id")).val(e.id),t(document.getElementById("tribe_ticket_header_remove")).show(),t(document.getElementById("tribe_tickets_image_preview_filename")).show().find(".filename").text(e.filename)},imgHTML:function(e){var t='<img src="'+e.url+'" ';return t+='width="'+e.width+'" ',t+='height="'+e.height+'" ',t+="/>"}},p.ajaxSend(function(e,a,i){"string"===t.type(i.data)&&-1!==i.data.indexOf("action=tribe-ticket")&&_.trigger("spin.tribe","start")}),p.ajaxComplete(function(e,a,i){"string"===t.type(i.data)&&-1!==i.data.indexOf("action=tribe-ticket")&&_.trigger("spin.tribe","stop")}),p.on({"spin.tribe":function(e,a){("undefined"==typeof a||t.inArray(a,["start","stop"]))&&(a="stop"),"stop"===a?(u.hide(),f.removeClass("is-active")):(u.show(),f.addClass("is-active"))},"clear.tribe":function(){var e=y.find('input:not(:button):not(:radio):not(:checkbox):not([type="hidden"]), textarea'),a=y.find("input:checkbox, input:radio"),i=y.find("#ticket_id");y.find("input[data-default-value]").each(function(){var e=t(this);e.val(e.data("default-value"))}),I.datepicker("option","maxDate",null),I.val(""),I.trigger("change"),B.val(""),B.trigger("change"),E.datepicker("option","minDate",null),E.val(""),E.trigger("change"),w.val(""),w.trigger("change"),y.find("#ticket_price").removeProp("disabled").siblings(".no-update-message").html("").hide().end().siblings(".description").show(),t(document.getElementById("tribe-tickets-attendee-sortables")).empty(),t(".accordion-content.is-active").removeClass("is-active"),t(document.getElementById("ticket_bottom_right")).empty(),y.find(".accordion-header, .accordion-content").removeClass("is-active"),e.val("").trigger("change"),a.prop("checked",!1).trigger("change"),i.val("").trigger("change"),y.find(".tribe-tickets-editor-history-container").remove()},"edit-tickets-complete.tribe":function(){r()}}),p.on("click","#settings_form_toggle",function(e){l(e,b)}),p.on("click","#tribe_settings_form_cancel",function(e){s("settings-cancel")}),p.on("click","#tribe_settings_form_save",function(e){e.preventDefault();var a=t(document.getElementById("settings_global_capacity_edit"));!1===a.prop("disabled")&&(a.blur(),a.prop("disabled",!0));var i=b.find(".settings_field").serialize(),n={action:"tribe-ticket-save-settings",formdata:i,post_ID:m.val(),nonce:TribeTickets.add_ticket_nonce};t.post(ajaxurl,n,function(e){_.trigger("saved-image.tribe",e),e.success&&s("settings")},"json")}),p.on("click",".ticket_form_toggle",function(e){e.preventDefault();var a=d(),i=o(),n=t(".tribe-ticket-capacity-max");n.find(".tribe-ticket-capacity-value");_.trigger("clear.tribe"),"rsvp_form_toggle"===t(this).closest("button").attr("id")?c(!0):(c(),t(document.getElementById(a+"_"+tribe_ticket_vars.stock_mode)).prop("checked",!0),t(document.getElementById(a+"_global_capacity")).val(i),0!==i&&""!==i?t(document.getElementById(a+"_global_stock_block")).find(".global_capacity-wrapper").addClass("screen-reader-text"):t(document.getElementById(a+"_global_stock_block")).find(".global_capacity-wrapper").removeClass("screen-reader-text"),S(e,i)),y.find(".tribe-dependency").trigger("verify.dependency"),t(document.getElementById("tribe_tickets_show_description")).prop("checked",!0),t(document.getElementById("ticket_sale_price")).closest(".input_block").hide(),"ticket_form_toggle"===t(this).attr("id")&&0<i&&t(document.getElementById(a+"_global_capacity")).prop("disabled",!0),t(".tribe-tickets-attendee-saved-fields").show(),l(e,y)}),p.on("click","#ticket_form_cancel",function(e){s(),_.trigger("clear.tribe")}),p.on("change",".tribe-ticket-field-capacity",function(e){var a=t(this),i=a.parents(".input_block").eq(0).find(".tribe-ticket-field-mode");a.val()&&i.val("capped")}),p.on("click.tribe",'[name="ticket_form_save"]',function(e){var a=t(document.getElementById("ticket_form_table"));if(a.trigger("validation.tribe"),!tribe.validation.hasErrors(a)){_.trigger("save-ticket.tribe",e);var i=v.find(".tribe-ticket-field-order"),n={action:"tribe-ticket-add-"+t("input[name=ticket_provider]:checked").val(),formdata:a.find(".ticket_field").serialize(),post_ID:m.val(),nonce:TribeTickets.add_ticket_nonce,menu_order:i.length,is_admin:t("body").hasClass("wp-admin")};t.post(ajaxurl,n,function(e){_.trigger("saved-ticket.tribe",e),e.success&&s("ticket")},"json")}}),p.on("click",".ticket_delete",function(e){if(!confirm(tribe_ticket_notices.confirm_alert))return!1;e.preventDefault(),_.trigger("delete-ticket.tribe",e);var a=t(this).attr("attr-ticket-id"),i={action:"tribe-ticket-delete-"+t(this).attr("attr-provider"),post_ID:m.val(),ticket_id:a,nonce:TribeTickets.remove_ticket_nonce};t.post(ajaxurl,i,function(i){if(_.trigger("deleted-ticket.tribe",i),i.success){var n=t(document.getElementById("tribe_ticket_list_table")).find('[data-ticket-order-id="order_'+a+'"]');n.remove(),s("delete"),l(e)}},"json")}),p.on("click",".ticket_edit_button",function(d){d.preventDefault();var c=this.getAttribute("data-ticket-id"),r={action:"tribe-ticket-edit-"+this.getAttribute("data-provider"),post_ID:m.val(),ticket_id:c,nonce:TribeTickets.edit_ticket_nonce,is_admin:t("body").hasClass("wp-admin")};t.post(ajaxurl,r,function(c){if(c){var r,o,l,s,p=c.data.price,m=p,g=!1,u=c.data.provider_class,f=t(".tribe-ticket-capacity-max");f.find(".tribe-ticket-capacity-value");if(t("input:radio[name=ticket_provider]").filter("[value="+c.data.provider_class+"]").click(),t("input[name=ticket_provider]:radio").change(),c.data.global_stock_mode)switch(c.data.global_stock_mode){case"global":t(document.getElementById(u+"_global")).prop("checked",!0).val("global"),t(document.getElementById(u+"_global_capacity")).attr("placeholder",c.data.event_capacity).val(c.data.event_capacity).prop("disabled",!0),t(document.getElementById(u+"_global_stock_cap")).val(""),S(d,c.data.event_capacity);break;case"capped":t(document.getElementById(u+"_global")).prop("checked",!0).val("capped"),t(document.getElementById(u+"_global_capacity")).attr("placeholder",c.data.event_capacity).val(c.data.event_capacity).prop("disabled",!0),t(document.getElementById(u+"_global_stock_cap")).val(c.data.capacity),S(d,c.data.event_capacity);break;case"own":t(document.getElementById(u+"_own")).prop("checked",!0),-1!=c.data.capacity&&t(document.getElementById(u+"_capacity")).val(c.data.capacity);break;default:t(document.getElementById(u+"_unlimited")).prop("checked",!0),t(document.getElementById(u+"_global_stock_cap")).val("")}else t(document.getElementById(c.data.provider_class+"_unlimited")).prop("checked",!0),t(document.querySelectorAll(".ticket_stock")).val(c.data.original_stock);t("input[name=ticket_global_stock]:radio").change(),t(document.getElementById("ticket_id")).val(c.data.ID),t(document.getElementById("ticket_name")).val(c.data.name),t(document.getElementById("ticket_description")).val(c.data.description),c.data.show_description||1===parseInt(c.data.show_description,10)?t(document.getElementById("tribe_tickets_show_description")).prop("checked",!0):t(document.getElementById("tribe_tickets_show_description")).removeAttr("checked"),c.data.start_date?r=i(c.data.start_date,!0):a!==t(document.getElementById("EventStartDate")).val()&&(r=i(t(document.getElementById("EventStartDate")).val())),c.data.start_time?o=n(c.data.start_time):a!==t(document.getElementById("EventStartTime")).val()&&(o=n(t(document.getElementById("EventStartTime")).val())),r&&I.val(r).trigger("change"),o&&B.val(o).trigger("change"),c.data.end_date?l=i(c.data.end_date,!0):a!==t(document.getElementById("EventEndDate")).val()&&(l=i(t(document.getElementById("EventEndDate")).val())),c.data.end_time?s=n(c.data.end_time):a!==t(document.getElementById("EventEndTime")).val()&&(s=n(t(document.getElementById("EventEndTime")).val())),l&&E.val(l).trigger("change"),s&&w.val(s).trigger("change"),t(document.getElementById("advanced_fields")).empty("").append(c.data.advanced_fields),"undefined"!=typeof c.data.on_sale&&c.data.on_sale&&(g=!0,p=c.data.regular_price);var k=_.find("#ticket_price");if(k.val(p),"undefined"!=typeof c.data.disallow_update_price_message?k.siblings(".no-update-message").html(c.data.disallow_update_price_message):k.siblings(".no-update-message").html(""),"undefined"==typeof c.data.can_update_price||c.data.can_update_price?(k.removeProp("disabled"),k.siblings(".description").show(),k.siblings(".no-update-message").hide()):(k.prop("disabled","disabled"),k.siblings(".description").hide(),k.siblings(".no-update-message").show()),"undefined"!=typeof c.data.history){var v=t(c.data.history);y.find(".accordion").append(v),e.MTAccordion({target:".accordion"})}else y.find(".tribe-tickets-editor-history-container").remove();var b=t(document.getElementById("ticket_sale_price")),h=b.closest(".input_block");g?(b.prop("readonly",!1).val(m).prop("readonly",!0),h.show()):h.hide(),"undefined"!=typeof c.data.purchase_limit&&c.data.purchase_limit&&t(document.getElementById("ticket_purchase_limit")).val(c.data.purchase_limit),c.data.sku&&t(document.querySelectorAll(".sku_input")).val(c.data.sku),t(document.getElementById("tribe-tickets-attendee-sortables")).empty(),"undefined"!=typeof c.data.attendee_fields&&c.data.attendee_fields?(t(document.getElementById("tribe-tickets-attendee-sortables")).html(c.data.attendee_fields),t(".tribe-tickets-attendee-saved-fields").hide()):t(".tribe-tickets-attendee-saved-fields").show(),"undefined"!=typeof c.data.controls&&c.data.controls&&t(document.getElementById("ticket_bottom_right")).html(c.data.controls),_.find(".tribe-bumpdown-trigger").bumpdown(),t("a#ticket_form_toggle").hide(),y.find(".tribe-dependency").trigger("verify.dependency")}},"json").always(function(e){_.trigger("edit-tickets-complete.tribe"),y.find(".tribe-dependency").trigger("verify.dependency"),e.data.event_capacity&&t(document.getElementById(e.data.provider_class+"_global_capacity")).prop("disabled",!0),l(d,y)})}),p.on("click","#global_capacity_edit_button",function(e){e.preventDefault(),t(document.getElementById("settings_global_capacity_edit")).prop("disabled",!1).focus()}),p.on("keyup","#ticket_price",function(e){e.preventDefault();var a=price_format.decimal,i=new RegExp("[^-0-9%\\"+a+"]+","gi"),n=t(this).val(),d=n.replace(i,"");n!==d&&t(this).val(d)}),p.on("click","#tribe_ticket_header_image, #tribe_ticket_header_preview",function(e){e.preventDefault(),ticketHeaderImage.uploader("","")}),p.on("blur","#settings_global_capacity_edit",function(){var e=t(this),a=e.val();""===a&&(e.val(0),a=0);var i={action:"tribe-events-edit-global-capacity",post_ID:m.val(),capacity:a,nonce:TribeTickets.edit_ticket_nonce};t.post(ajaxurl,i,function(e){t(document.getElementById("settings_global_capacity_edit")).prop("disabled",!0),s(null,!1)})}),p.on("blur",'[name="tribe-ticket[event_capacity]"]',S),p.on("change",'[name="tribe-ticket[capacity]"]',function(e){var a=t(this),i=parseInt(a.attr("max"),10),n=parseInt(a.val(),10);i&&i<n&&a.val(i)}),p.on("change","#tribe-tickets-global-stock-level",S),p.on("click","#tribe_ticket_header_remove",function(e){e.preventDefault(),t(document.getElementById("tribe_ticket_header_preview")).html(""),t(document.getElementById("tribe_ticket_header_remove")).hide(),t(document.getElementById("tribe_tickets_image_preview_filename")).hide().find(".filename").text(""),t(document.getElementById("tribe_ticket_header_image_id")).val("")}),p.ready(function(){if(h.length&&(D=h.data("startofweek")),"undefined"!=typeof tribe_dynamic_help_text){var a=t.isNumeric(tribe_dynamic_help_text.datepicker_format_index)?tribe_dynamic_help_text.datepicker_format_index:0;T=C[a]}var i={dateFormat:T,showAnim:"fadeIn",changeMonth:!0,changeYear:!0,numberOfMonths:3,firstDay:D,showButtonPanel:!1,onChange:function(){},beforeShow:function(e,a){a.input.data("prevDate",a.input.datepicker("getDate"));var i=t(a.dpDiv);i.addClass("tribe-ui-datepicker"),i.attrchange({trackValues:!0,callback:function(e){(e.newValue.indexOf("display: none")>=0||e.newValue.indexOf("display:none")>=0)&&i.removeClass("tribe-ui-datepicker")}})},onSelect:function(e,a){var i=t.datepicker.parseDate(T,e);"ticket_start_date"===a.id?E.datepicker("option","minDate",i):I.datepicker("option","maxDate",i)}};t.extend(i,tribe_l10n_datatables.datepicker);var n=_.find(".tribe-timepicker:not(.ui-timepicker-input)");if(tribe_timepickers.setup_timepickers(n),I.datepicker(i).datepicker("option","defaultDate",t(document.getElementById("EventStartDate")).val()).keyup(function(e){8!==e.keyCode&&46!==e.keyCode||t.datepicker._clearDate(this)}),E.datepicker(i).datepicker("option","defaultDate",t(document.getElementById("EventEndDate")).val()).keyup(function(e){8!==e.keyCode&&46!==e.keyCode||t.datepicker._clearDate(this)}),x.find("img").length){t(document.getElementById("tribe_ticket_header_remove")).show();var d=x.find("img");d.removeAttr("width").removeAttr("height"),_.width()<d.width()&&d.css("width","95%")}g.on("click.tribe-ticket-editing-in-progress",function(a){return!("true"===v.attr("aria-hidden")&&!confirm(v.data("save-prompt")))&&void t(e).off("beforeunload.tribe")})})}}(window,jQuery);
|
1 |
+
"undefined"==typeof tribe.tickets&&(tribe.tickets={}),tribe.tickets.editor={};var ticketHeaderImage=window.ticketHeaderImage||{};!function(e,t,i){"use strict";function n(e){"undefined"==typeof e&&(e=!0);var i=r.find(".tribe-ticket-editor-field-default_provider").filter(":checked"),n="Tribe__Tickets__RSVP_radio";!e&&i.length>0&&(n=i.val()+"_radio"),t(document.getElementById(n)).prop("checked",!0).trigger("change")}var a=(t("html, body"),t(document)),r=t(document.getElementById("tribetickets"));if(0!==r.length){var d=(t(document.getElementById("event_tickets")),t(document.getElementById("post_ID"))),c=t(document.getElementById("publish")),o=r.find(".tribe-tickets-editor-blocker"),l=r.find(".spinner"),s=t(document.getElementById("tribe_panel_base")),p=t(document.getElementById("tribe_panel_edit")),m=t(document.getElementById("tribe_panel_settings")),_=["yy-mm-dd","m/d/yy","mm/dd/yy","d/m/yy","dd/mm/yy","m-d-yy","mm-dd-yy","d-m-yy","dd-mm-yy","yy.mm.dd","mm.dd.yy","dd.mm.yy"],f=_[0],u=function(e,i){if("undefined"==typeof i){var n=t(this);i=n.val()}if(void 0!==i){i||(i=0),i=parseInt(i,10);var a=t(".tribe-ticket-capacity-max"),r=a.find(".tribe-ticket-capacity-value"),d=t('.tribe-ticket-field-capacity[name="tribe-ticket[capacity]"]');d.attr("placeholder",i),i?d.attr("max",i):i=0,r.text(i)}};i.beforeUnload=function(e){var t=!1;return"true"===s.attr("aria-hidden")&&(t=tribe_global_stock_admin_ui.nav_away_msg),e.returnValue=t,t},ticketHeaderImage={uploader:function(){var e=wp.media({title:HeaderImageData.title,multiple:!1,library:{type:"image"},button:{text:HeaderImageData.button}});return e.on("close",function(){var t=e.state().get("selection").toJSON();t.length&&ticketHeaderImage.render(t[0])}),e.open(),!1},render:function(e){t(document.getElementById("tribe_ticket_header_preview")).html(ticketHeaderImage.imgHTML(e)),t(document.getElementById("tribe_ticket_header_image_id")).val(e.id),t(document.getElementById("tribe_ticket_header_remove")).show(),t(document.getElementById("tribe_tickets_image_preview_filename")).show().find(".filename").text(e.filename)},imgHTML:function(e){var t='<img src="'+e.url+'" ';return t+='width="'+e.width+'" ',t+='height="'+e.height+'" ',t+="/>"}},i.panels={list:"#tribe_panel_base",ticket:"#tribe_panel_edit",settings:"#tribe_panel_settings"},i.swapPanel=function(n){var a;a=n instanceof jQuery?n:"undefined"!=typeof i.panels[n]?t(i.panels[n]):s,r.find(".ticket_panel").each(function(){t(this).attr("aria-hidden",!0)}),a.attr("aria-hidden",!1),a.is(s)?t(e).off("beforeunload.tribe"):t(e).on("beforeunload.tribe",i.beforeUnload)},i.fetchPanels=function(e,n){"undefined"==typeof e&&(e=[]);var a={action:"tribe-ticket-panels",notice:!1,post_id:d.val(),nonce:TribeTickets.add_ticket_nonce,data:e,is_admin:t("body").hasClass("wp-admin")};t.post(ajaxurl,a,function(e){e.success&&i.refreshPanels(e.data,n)},"json")},i.refreshPanels=function(e,n){s=t(e.list),p=t(e.ticket),m=t(e.settings),r.find(i.panels.list).replaceWith(s),r.find(i.panels.ticket).replaceWith(p),r.find(i.panels.settings).replaceWith(m),i.setupPanels(),i.swapPanel(n)},i.setupPanels=function(){e.MTAccordion({target:".accordion"});var i=t(document.getElementById("tribe-event-datepickers")),n=t(document.getElementById("ticket_start_date")),a=t(document.getElementById("ticket_end_date")),d=(t(document.getElementById("ticket_start_time")),t(document.getElementById("ticket_end_time")),0);if(i.length&&(d=i.data("startofweek")),"undefined"!=typeof tribe_dynamic_help_text){var c=t.isNumeric(tribe_dynamic_help_text.datepicker_format_index)?tribe_dynamic_help_text.datepicker_format_index:0;f=_[c]}var o={dateFormat:f,showAnim:"fadeIn",changeMonth:!0,changeYear:!0,numberOfMonths:3,firstDay:d,showButtonPanel:!1,onChange:function(){},beforeShow:function(e,i){i.input.data("prevDate",i.input.datepicker("getDate"));var n=t(i.dpDiv);n.addClass("tribe-ui-datepicker"),n.attrchange({trackValues:!0,callback:function(e){(e.newValue.indexOf("display: none")>=0||e.newValue.indexOf("display:none")>=0)&&n.removeClass("tribe-ui-datepicker")}})},onSelect:function(e,i){var r=t.datepicker.parseDate(f,e);"ticket_start_date"===i.id?a.datepicker("option","minDate",r):n.datepicker("option","maxDate",r)}};t.extend(o,tribe_l10n_datatables.datepicker);var l=r.find(".tribe-timepicker:not(.ui-timepicker-input)");if(tribe_timepickers.setup_timepickers(l),n.datepicker(o).datepicker("option","defaultDate",t(document.getElementById("EventStartDate")).val()).keyup(function(e){8!==e.keyCode&&46!==e.keyCode||t.datepicker._clearDate(this)}),a.datepicker(o).datepicker("option","defaultDate",t(document.getElementById("EventEndDate")).val()).keyup(function(e){8!==e.keyCode&&46!==e.keyCode||t.datepicker._clearDate(this)}),t(document.getElementById("tribe_ticket_header_preview")).find("img").length){t(document.getElementById("tribe_ticket_header_remove")).show();var p=t(document.getElementById("tribe_ticket_header_preview")).find("img");p.removeAttr("width").removeAttr("height"),r.width()<p.width()&&p.css("width","95%")}tribe.tickets.table&&0!==s.find("tribe-tickets-editor-table-tickets-body tr").length&&tribe.tickets.table.toggle_sortable(),r.find(tribe.validation.selectors.item).validation(),r.find(".tribe-dependent").dependency(),r.find(".tribe-dependency").trigger("verify.dependency")},a.ajaxSend(function(e,i,n){"string"===t.type(n.data)&&-1!==n.data.indexOf("action=tribe-ticket")&&r.trigger("spin.tribe","start")}),a.ajaxComplete(function(e,i,n){"string"===t.type(n.data)&&-1!==n.data.indexOf("action=tribe-ticket")&&r.trigger("spin.tribe","stop")}),a.on({"spin.tribe":function(e,i){("undefined"==typeof i||t.inArray(i,["start","stop"]))&&(i="stop"),"stop"===i?(o.hide(),l.removeClass("is-active")):(o.show(),l.addClass("is-active"))}}),c.on("click",function(i){t(e).off("beforeunload.tribe")}),a.on("click","#settings_form_toggle",function(e){return e.preventDefault(),i.fetchPanels(null,"settings"),!1}),a.on("click","#tribe_settings_form_cancel, #ticket_form_cancel",function(e){return e.preventDefault(),i.fetchPanels(null,"list"),!1}),a.on("click","#tribe_settings_form_save",function(e){e.preventDefault();var t=m.find("input,textarea").serialize();return i.fetchPanels(t,"list"),!1}),a.on("click",".ticket_form_toggle",function(e){e.preventDefault();var a=t(this);return n("rsvp_form_toggle"===a.attr("id")),p.find(".tribe-dependency").trigger("verify.dependency"),i.swapPanel("ticket"),!1}),a.on("click",".ticket_edit_button",function(e){e.preventDefault();var n=t(this),a={action:"tribe-ticket-edit",post_id:d.val(),ticket_id:n.data("ticketId"),nonce:TribeTickets.edit_ticket_nonce,is_admin:t("body").hasClass("wp-admin")};return t.post(ajaxurl,a,function(e){e.success&&i.refreshPanels(e.data,"ticket")},"json"),!1}),a.on("click.tribe",'[name="ticket_form_save"]',function(e){var n=t(document.getElementById("ticket_form_table"));if(n.trigger("validation.tribe"),!tribe.validation.hasErrors(n)){r.trigger("pre-save-ticket.tribe",e);var a=s.find(".tribe-ticket-field-order"),c={action:"tribe-ticket-add",data:p.find("input,textarea").serialize(),post_id:d.val(),nonce:TribeTickets.add_ticket_nonce,menu_order:a.length,is_admin:t("body").hasClass("wp-admin")};t.post(ajaxurl,c,function(e){e.success&&i.refreshPanels(e.data)},"json")}}),a.on("click",".ticket_delete",function(e){if(!confirm(tribe_ticket_notices.confirm_alert))return!1;e.preventDefault(),r.trigger("delete-ticket.tribe",e);var n=t(this).attr("attr-ticket-id"),a={action:"tribe-ticket-delete",post_id:d.val(),ticket_id:n,nonce:TribeTickets.remove_ticket_nonce,is_admin:t("body").hasClass("wp-admin")};t.post(ajaxurl,a,function(e){e.success&&i.refreshPanels(e.data)},"json")}),a.on("change",".tribe-ticket-field-capacity",function(e){var i=t(this),n=i.parents(".input_block").eq(0).find(".tribe-ticket-field-mode");i.val()&&n.val("capped")}),a.on("keyup","#ticket_price",function(e){e.preventDefault();var i=price_format.decimal,n=new RegExp("[^-0-9%\\"+i+"]+","gi"),a=t(this).val(),r=a.replace(n,"");a!==r&&t(this).val(r)}),a.on("click","#tribe_ticket_header_image, #tribe_ticket_header_preview",function(e){e.preventDefault(),ticketHeaderImage.uploader("","")}),a.on("focus","#settings_global_capacity_edit",function(){var e=t(this),i=0,n=t(".tribe-tickets-editor-capacity-table").find("[data-capacity]");n.each(function(){var e=t(this);i+=parseInt(e.data("capacity"),10)}),e.data("nonSharedCapacity",i)}),a.on("blur change","#settings_global_capacity_edit",function(){var e=t(".tribe-tickets-editor-table-row-capacity-total"),i=parseInt(e.data("totalCapacity"),10);if(-1!==i){var n=t(this),a=e.find(".tribe-tickets-editor-total-capacity"),r=parseInt(n.val(),10),d=n.data("nonSharedCapacity");(""===r||0>r)&&(n.val(0),r=0);var c=d+r;a.text(c)}}),a.on("click","#global_capacity_edit_button",function(e){e.preventDefault(),t(document.getElementById("settings_global_capacity_edit")).prop("disabled",!1).focus()}),a.on("blur",'[name="tribe-ticket[event_capacity]"]',u),a.on("change",'[name="tribe-ticket[capacity]"]',function(e){var i=t(this),n=parseInt(i.attr("max"),10),a=parseInt(i.val(),10);n&&n<a&&i.val(n)}),a.on("click","#tribe_ticket_header_remove",function(e){e.preventDefault(),t(document.getElementById("tribe_ticket_header_preview")).html(""),t(document.getElementById("tribe_ticket_header_remove")).hide(),t(document.getElementById("tribe_tickets_image_preview_filename")).hide().find(".filename").text(""),t(document.getElementById("tribe_ticket_header_image_id")).val("")}),a.ready(function(){i.setupPanels()})}}(window,jQuery,tribe.tickets.editor);
|
src/resources/postcss/rsvp.pcss
CHANGED
@@ -194,6 +194,10 @@
|
|
194 |
}
|
195 |
}
|
196 |
|
|
|
|
|
|
|
|
|
197 |
/* Tickets Table */
|
198 |
.tribe-events-tickets {
|
199 |
background: var(--table-background-color);
|
194 |
}
|
195 |
}
|
196 |
|
197 |
+
.tribe-link-view-attendee {
|
198 |
+
margin: 15px 0;
|
199 |
+
}
|
200 |
+
|
201 |
/* Tickets Table */
|
202 |
.tribe-events-tickets {
|
203 |
background: var(--table-background-color);
|
src/resources/postcss/tickets-refresh.pcss
CHANGED
@@ -505,6 +505,7 @@ p.description {
|
|
505 |
#settings_global_capacity_edit {
|
506 |
background-color: #fff;
|
507 |
border: 1px solid #b4b9be;
|
|
|
508 |
font-size: inherit;
|
509 |
margin-left: -5px;
|
510 |
|
505 |
#settings_global_capacity_edit {
|
506 |
background-color: #fff;
|
507 |
border: 1px solid #b4b9be;
|
508 |
+
float: left;
|
509 |
font-size: inherit;
|
510 |
margin-left: -5px;
|
511 |
|
src/resources/postcss/tickets-tables.pcss
CHANGED
@@ -65,12 +65,15 @@
|
|
65 |
font-size: 1.8em;
|
66 |
margin-right: 10px;
|
67 |
position: relative;
|
|
|
68 |
}
|
69 |
}
|
70 |
|
71 |
-
.
|
72 |
-
.
|
73 |
-
|
|
|
|
|
74 |
}
|
75 |
}
|
76 |
|
@@ -176,7 +179,7 @@
|
|
176 |
width: 100%;
|
177 |
}
|
178 |
|
179 |
-
&.
|
180 |
td:first-child,
|
181 |
td[colspan="2"] {
|
182 |
width: 100%;
|
65 |
font-size: 1.8em;
|
66 |
margin-right: 10px;
|
67 |
position: relative;
|
68 |
+
display: none;
|
69 |
}
|
70 |
}
|
71 |
|
72 |
+
.ui-sortable {
|
73 |
+
td.column-primary {
|
74 |
+
.tribe-handle {
|
75 |
+
display: block;
|
76 |
+
}
|
77 |
}
|
78 |
}
|
79 |
|
179 |
width: 100%;
|
180 |
}
|
181 |
|
182 |
+
&.tribe-tickets-editor-capacity-table {
|
183 |
td:first-child,
|
184 |
td[colspan="2"] {
|
185 |
width: 100%;
|
src/resources/postcss/tickets.pcss
CHANGED
@@ -1,5 +1,6 @@
|
|
1 |
-
|
2 |
-
|
|
|
3 |
|
4 |
#ticket_form {
|
5 |
input[type=radio] {
|
1 |
+
.tribe-tickets-column-attendees-link {
|
2 |
+
display: inline-block;
|
3 |
+
}
|
4 |
|
5 |
#ticket_form {
|
6 |
input[type=radio] {
|
src/template-tags/tickets.php
CHANGED
@@ -407,9 +407,9 @@ if ( ! function_exists( 'tribe_tickets_get_ticket_stock_message' ) ) {
|
|
407 |
if ( -1 === $available ) {
|
408 |
$status_counts[] = sprintf( esc_html__( '%s %d', 'event-tickets' ), esc_html( $sold_label ), esc_html( $sold ) );
|
409 |
} elseif ( $is_global ) {
|
410 |
-
$status_counts[] = sprintf( _x( '%1$d Remaining of shared capacity', 'ticket shared capacity message (remaining stock)', 'event-tickets' ), $available );
|
411 |
} else {
|
412 |
-
$status_counts[] = sprintf( _x( '%1$d Remaining', 'ticket stock message (remaining stock)', 'event-tickets' ), $available );
|
413 |
}
|
414 |
}
|
415 |
|
@@ -706,6 +706,72 @@ if ( ! function_exists( 'tribe_tickets_has_meta_fields' ) ) {
|
|
706 |
}
|
707 |
}
|
708 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
709 |
/**
|
710 |
* Returns the capacity for a given Post
|
711 |
*
|
407 |
if ( -1 === $available ) {
|
408 |
$status_counts[] = sprintf( esc_html__( '%s %d', 'event-tickets' ), esc_html( $sold_label ), esc_html( $sold ) );
|
409 |
} elseif ( $is_global ) {
|
410 |
+
$status_counts[] = sprintf( _x( '%1$d Remaining of shared capacity', 'ticket shared capacity message (remaining stock)', 'event-tickets' ), tribe_tickets_get_readable_amount( $available ) );
|
411 |
} else {
|
412 |
+
$status_counts[] = sprintf( _x( '%1$d Remaining', 'ticket stock message (remaining stock)', 'event-tickets' ), tribe_tickets_get_readable_amount( $available ) );
|
413 |
}
|
414 |
}
|
415 |
|
706 |
}
|
707 |
}
|
708 |
|
709 |
+
/**
|
710 |
+
* Updates a given Object Capacity
|
711 |
+
*
|
712 |
+
* @since TBD
|
713 |
+
*
|
714 |
+
* @param int $object Post We are trying to save capacity
|
715 |
+
*
|
716 |
+
* @return int|false
|
717 |
+
*/
|
718 |
+
function tribe_tickets_delete_capacity( $object ) {
|
719 |
+
|
720 |
+
if ( ! $object instanceof WP_Post ) {
|
721 |
+
$object = get_post( $object );
|
722 |
+
}
|
723 |
+
|
724 |
+
if ( ! $object instanceof WP_Post ) {
|
725 |
+
return false;
|
726 |
+
}
|
727 |
+
|
728 |
+
$deleted = delete_post_meta( $object->ID, tribe( 'tickets.handler' )->key_capacity );
|
729 |
+
|
730 |
+
if ( ! $deleted ) {
|
731 |
+
return $deleted;
|
732 |
+
}
|
733 |
+
|
734 |
+
// We only apply these when we are talking about event-like posts
|
735 |
+
if ( tribe_tickets_post_type_enabled( $object->post_type ) ) {
|
736 |
+
$shared_cap_object = new Tribe__Tickets__Global_Stock( $object->ID );
|
737 |
+
$shared_cap_object->disable();
|
738 |
+
|
739 |
+
// This is mostly to make sure
|
740 |
+
delete_post_meta( $object->ID, Tribe__Tickets__Global_Stock::GLOBAL_STOCK_LEVEL );
|
741 |
+
delete_post_meta( $object->ID, Tribe__Tickets__Global_Stock::TICKET_STOCK_MODE );
|
742 |
+
delete_post_meta( $object->ID, Tribe__Tickets__Global_Stock::TICKET_STOCK_CAP );
|
743 |
+
}
|
744 |
+
|
745 |
+
return $deleted;
|
746 |
+
}
|
747 |
+
|
748 |
+
/**
|
749 |
+
* Updates a given Object Capacity
|
750 |
+
*
|
751 |
+
* @since TBD
|
752 |
+
*
|
753 |
+
* @param int $object Post We are trying to save capacity
|
754 |
+
* @param int $capacty How much we are trying to update the capacity to
|
755 |
+
*
|
756 |
+
* @return int|false
|
757 |
+
*/
|
758 |
+
function tribe_tickets_update_capacity( $object, $capacity ) {
|
759 |
+
if ( ! is_numeric( $capacity ) ) {
|
760 |
+
return false;
|
761 |
+
}
|
762 |
+
|
763 |
+
if ( ! $object instanceof WP_Post ) {
|
764 |
+
$object = get_post( $object );
|
765 |
+
}
|
766 |
+
|
767 |
+
if ( ! $object instanceof WP_Post ) {
|
768 |
+
return false;
|
769 |
+
}
|
770 |
+
|
771 |
+
// Do the actual Updating of the Meta value
|
772 |
+
return update_post_meta( $object->ID, tribe( 'tickets.handler' )->key_capacity, $capacity );
|
773 |
+
}
|
774 |
+
|
775 |
/**
|
776 |
* Returns the capacity for a given Post
|
777 |
*
|
src/views/tickets/email.php
CHANGED
@@ -15,8 +15,7 @@
|
|
15 |
* 'ticket_id'
|
16 |
* 'security_code')
|
17 |
*
|
18 |
-
* @
|
19 |
-
* @version 4.6
|
20 |
*
|
21 |
*/
|
22 |
?>
|
@@ -237,7 +236,7 @@
|
|
237 |
}
|
238 |
|
239 |
$event = get_post( $ticket['event_id'] );
|
240 |
-
$header_id = tribe( 'tickets.handler' )->
|
241 |
$header_img = false;
|
242 |
if ( ! empty( $header_id ) ) {
|
243 |
$header_img = wp_get_attachment_image_src( $header_id, 'full' );
|
15 |
* 'ticket_id'
|
16 |
* 'security_code')
|
17 |
*
|
18 |
+
* @version 4.6.1
|
|
|
19 |
*
|
20 |
*/
|
21 |
?>
|
236 |
}
|
237 |
|
238 |
$event = get_post( $ticket['event_id'] );
|
239 |
+
$header_id = get_post_meta( $ticket['event_id'], tribe( 'tickets.handler' )->key_image_header, true );
|
240 |
$header_img = false;
|
241 |
if ( ! empty( $header_id ) ) {
|
242 |
$header_img = wp_get_attachment_image_src( $header_id, 'full' );
|
src/views/tickets/orders-link.php
CHANGED
@@ -6,9 +6,7 @@
|
|
6 |
*
|
7 |
* Override this template in your own theme by creating a file at [your-theme]/tribe-events/tickets/orders-link.php
|
8 |
*
|
9 |
-
* @
|
10 |
-
* @version 4.5.5
|
11 |
-
*
|
12 |
*/
|
13 |
|
14 |
if ( ! defined( 'ABSPATH' ) ) {
|
@@ -56,6 +54,6 @@ $message = sprintf( esc_html__( 'You have %s for this %s.', 'event-tickets' ),
|
|
56 |
$message .= ' <a href="' . esc_url( $link ) . '">' . sprintf( esc_html__( 'View your %s', 'event-tickets' ), $this->get_description_rsvp_ticket( $event_id, $user_id, true ) ) . '</a>';
|
57 |
?>
|
58 |
|
59 |
-
<div class="tribe-link-
|
60 |
<?php echo $message; ?>
|
61 |
</div>
|
6 |
*
|
7 |
* Override this template in your own theme by creating a file at [your-theme]/tribe-events/tickets/orders-link.php
|
8 |
*
|
9 |
+
* @version 4.6.1
|
|
|
|
|
10 |
*/
|
11 |
|
12 |
if ( ! defined( 'ABSPATH' ) ) {
|
54 |
$message .= ' <a href="' . esc_url( $link ) . '">' . sprintf( esc_html__( 'View your %s', 'event-tickets' ), $this->get_description_rsvp_ticket( $event_id, $user_id, true ) ) . '</a>';
|
55 |
?>
|
56 |
|
57 |
+
<div class="tribe-link-view-attendee">
|
58 |
<?php echo $message; ?>
|
59 |
</div>
|