Event Tickets - Version 4.3.1

Version Description

Download this release

Release Info

Developer barry.hughes
Plugin Icon 128x128 Event Tickets
Version 4.3.1
Comparing to
See all releases

Code changes from version 4.3 to 4.3.1

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.3\n"
6
  "Report-Msgid-Bugs-To: http://m.tri.be/191x\n"
7
- "POT-Creation-Date: 2016-10-06 11:31:19+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: 2016-10-06 11:31\n"
12
  "Last-Translator: \n"
13
  "Language-Team: \n"
14
 
@@ -153,6 +153,20 @@ msgstr ""
153
  msgid "Visit the Add-on Page"
154
  msgstr ""
155
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
156
  #: src/Tribe/App_Shop.php:48 src/Tribe/App_Shop.php:49
157
  #: src/Tribe/App_Shop.php:72
158
  msgid "Event Add-Ons"
@@ -269,119 +283,119 @@ msgstr ""
269
  msgid "Full debug (all events)"
270
  msgstr ""
271
 
272
- #: src/Tribe/Main.php:168 src/admin-views/tribe-options-help.php:43
273
  msgid "Copy to clipboard"
274
  msgstr ""
275
 
276
- #: src/Tribe/Main.php:169
277
  msgid "System info copied"
278
  msgstr ""
279
 
280
- #: src/Tribe/Main.php:170
281
  msgid "Press \"Cmd + C\" to copy"
282
  msgstr ""
283
 
284
- #: src/Tribe/Main.php:187
285
  msgid ": activate to sort column ascending"
286
  msgstr ""
287
 
288
- #: src/Tribe/Main.php:188
289
  msgid ": activate to sort column descending"
290
  msgstr ""
291
 
292
- #: src/Tribe/Main.php:190
293
  msgid "Show _MENU_ entries"
294
  msgstr ""
295
 
296
- #: src/Tribe/Main.php:191
297
  msgid "No data available in table"
298
  msgstr ""
299
 
300
- #: src/Tribe/Main.php:192
301
  msgid "Showing _START_ to _END_ of _TOTAL_ entries"
302
  msgstr ""
303
 
304
- #: src/Tribe/Main.php:193
305
  msgid "Showing 0 to 0 of 0 entries"
306
  msgstr ""
307
 
308
- #: src/Tribe/Main.php:194
309
  msgid "(filtered from _MAX_ total entries)"
310
  msgstr ""
311
 
312
- #: src/Tribe/Main.php:195
313
  msgid "No matching records found"
314
  msgstr ""
315
 
316
- #: src/Tribe/Main.php:196
317
  msgid "Search:"
318
  msgstr ""
319
 
320
- #: src/Tribe/Main.php:198
321
  msgid "All"
322
  msgstr ""
323
 
324
- #: src/Tribe/Main.php:199
325
  msgid "Next"
326
  msgstr ""
327
 
328
- #: src/Tribe/Main.php:200
329
  msgid "Previous"
330
  msgstr ""
331
 
332
- #: src/Tribe/Main.php:205
333
  msgid ": Selected %d rows"
334
  msgstr ""
335
 
336
- #: src/Tribe/Main.php:206
337
  msgid ": Selected 1 row"
338
  msgstr ""
339
 
340
- #: src/Tribe/PUE/Checker.php:414
341
  msgid "License Key"
342
  msgstr ""
343
 
344
- #: src/Tribe/PUE/Checker.php:415
345
  msgid "A valid license key is required for support and updates"
346
  msgstr ""
347
 
348
- #: src/Tribe/PUE/Checker.php:497
349
  msgid "License key(s) updated."
350
  msgstr ""
351
 
352
- #: src/Tribe/PUE/Checker.php:506
353
  msgid "Hmmm... something's wrong with this validator. Please contact %ssupport%s."
354
  msgstr ""
355
 
356
- #: src/Tribe/PUE/Checker.php:541
357
  msgid "unknown date"
358
  msgstr ""
359
 
360
- #: src/Tribe/PUE/Checker.php:547
361
  msgid "Sorry, key validation server is not available."
362
  msgstr ""
363
 
364
- #: src/Tribe/PUE/Checker.php:560
365
  msgid "Valid Key! Expires on %s"
366
  msgstr ""
367
 
368
- #: src/Tribe/PUE/Checker.php:565
369
  msgid "Thanks for setting up a valid key. It will expire on %s"
370
  msgstr ""
371
 
372
- #: src/Tribe/PUE/Checker.php:586 src/Tribe/PUE/Notices.php:267
373
  msgid "Renew Your License Now"
374
  msgstr ""
375
 
376
- #: src/Tribe/PUE/Checker.php:588 src/Tribe/PUE/Notices.php:269
377
  msgid " (opens in a new window)"
378
  msgstr ""
379
 
380
- #: src/Tribe/PUE/Checker.php:614
381
  msgid "There is an update for %s. You'll need to %scheck your license%s to have access to updates, downloads, and support."
382
  msgstr ""
383
 
384
- #: src/Tribe/PUE/Checker.php:641
385
  msgid "There is an update for %s. %sRenew your license%s to get access to bug fixes, security updates, and new features."
386
  msgstr ""
387
 
@@ -412,10 +426,6 @@ msgctxt "formatted plugin list"
412
  msgid "%1$s and %2$s"
413
  msgstr ""
414
 
415
- #: src/Tribe/Plugin_Download_Notice.php:68
416
- msgid "To begin using %1$s, please install and activate the latest version(s) of %2$s."
417
- msgstr ""
418
-
419
  #: src/Tribe/Settings.php:148 src/Tribe/Settings.php:204
420
  #: src/Tribe/Settings.php:205
421
  msgid "Events"
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.3.1\n"
6
  "Report-Msgid-Bugs-To: http://m.tri.be/191x\n"
7
+ "POT-Creation-Date: 2016-10-20 15:14:10+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: 2016-10-20 15:14\n"
12
  "Last-Translator: \n"
13
  "Language-Team: \n"
14
 
153
  msgid "Visit the Add-on Page"
154
  msgstr ""
155
 
156
+ #: src/Tribe/Admin/Notice/Plugin_Download.php:75
157
+ msgid "To begin using %1$s, please install and activate the latest version of %2$s."
158
+ msgstr ""
159
+
160
+ #: src/Tribe/Admin/Notice/Plugin_Download.php:91
161
+ msgctxt "separator used in a list of items"
162
+ msgid ", "
163
+ msgstr ""
164
+
165
+ #: src/Tribe/Admin/Notice/Plugin_Download.php:92
166
+ msgctxt "the final separator in a list of two or more items"
167
+ msgid " and "
168
+ msgstr ""
169
+
170
  #: src/Tribe/App_Shop.php:48 src/Tribe/App_Shop.php:49
171
  #: src/Tribe/App_Shop.php:72
172
  msgid "Event Add-Ons"
283
  msgid "Full debug (all events)"
284
  msgstr ""
285
 
286
+ #: src/Tribe/Main.php:175 src/admin-views/tribe-options-help.php:43
287
  msgid "Copy to clipboard"
288
  msgstr ""
289
 
290
+ #: src/Tribe/Main.php:176
291
  msgid "System info copied"
292
  msgstr ""
293
 
294
+ #: src/Tribe/Main.php:177
295
  msgid "Press \"Cmd + C\" to copy"
296
  msgstr ""
297
 
298
+ #: src/Tribe/Main.php:194
299
  msgid ": activate to sort column ascending"
300
  msgstr ""
301
 
302
+ #: src/Tribe/Main.php:195
303
  msgid ": activate to sort column descending"
304
  msgstr ""
305
 
306
+ #: src/Tribe/Main.php:197
307
  msgid "Show _MENU_ entries"
308
  msgstr ""
309
 
310
+ #: src/Tribe/Main.php:198
311
  msgid "No data available in table"
312
  msgstr ""
313
 
314
+ #: src/Tribe/Main.php:199
315
  msgid "Showing _START_ to _END_ of _TOTAL_ entries"
316
  msgstr ""
317
 
318
+ #: src/Tribe/Main.php:200
319
  msgid "Showing 0 to 0 of 0 entries"
320
  msgstr ""
321
 
322
+ #: src/Tribe/Main.php:201
323
  msgid "(filtered from _MAX_ total entries)"
324
  msgstr ""
325
 
326
+ #: src/Tribe/Main.php:202
327
  msgid "No matching records found"
328
  msgstr ""
329
 
330
+ #: src/Tribe/Main.php:203
331
  msgid "Search:"
332
  msgstr ""
333
 
334
+ #: src/Tribe/Main.php:205
335
  msgid "All"
336
  msgstr ""
337
 
338
+ #: src/Tribe/Main.php:206
339
  msgid "Next"
340
  msgstr ""
341
 
342
+ #: src/Tribe/Main.php:207
343
  msgid "Previous"
344
  msgstr ""
345
 
346
+ #: src/Tribe/Main.php:212
347
  msgid ": Selected %d rows"
348
  msgstr ""
349
 
350
+ #: src/Tribe/Main.php:213
351
  msgid ": Selected 1 row"
352
  msgstr ""
353
 
354
+ #: src/Tribe/PUE/Checker.php:417
355
  msgid "License Key"
356
  msgstr ""
357
 
358
+ #: src/Tribe/PUE/Checker.php:418
359
  msgid "A valid license key is required for support and updates"
360
  msgstr ""
361
 
362
+ #: src/Tribe/PUE/Checker.php:500
363
  msgid "License key(s) updated."
364
  msgstr ""
365
 
366
+ #: src/Tribe/PUE/Checker.php:509
367
  msgid "Hmmm... something's wrong with this validator. Please contact %ssupport%s."
368
  msgstr ""
369
 
370
+ #: src/Tribe/PUE/Checker.php:544
371
  msgid "unknown date"
372
  msgstr ""
373
 
374
+ #: src/Tribe/PUE/Checker.php:550
375
  msgid "Sorry, key validation server is not available."
376
  msgstr ""
377
 
378
+ #: src/Tribe/PUE/Checker.php:563
379
  msgid "Valid Key! Expires on %s"
380
  msgstr ""
381
 
382
+ #: src/Tribe/PUE/Checker.php:568
383
  msgid "Thanks for setting up a valid key. It will expire on %s"
384
  msgstr ""
385
 
386
+ #: src/Tribe/PUE/Checker.php:593 src/Tribe/PUE/Notices.php:267
387
  msgid "Renew Your License Now"
388
  msgstr ""
389
 
390
+ #: src/Tribe/PUE/Checker.php:595 src/Tribe/PUE/Notices.php:269
391
  msgid " (opens in a new window)"
392
  msgstr ""
393
 
394
+ #: src/Tribe/PUE/Checker.php:621
395
  msgid "There is an update for %s. You'll need to %scheck your license%s to have access to updates, downloads, and support."
396
  msgstr ""
397
 
398
+ #: src/Tribe/PUE/Checker.php:648
399
  msgid "There is an update for %s. %sRenew your license%s to get access to bug fixes, security updates, and new features."
400
  msgstr ""
401
 
426
  msgid "%1$s and %2$s"
427
  msgstr ""
428
 
 
 
 
 
429
  #: src/Tribe/Settings.php:148 src/Tribe/Settings.php:204
430
  #: src/Tribe/Settings.php:205
431
  msgid "Events"
common/src/Tribe/Admin/Notice/Plugin_Download.php ADDED
@@ -0,0 +1,102 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ /**
4
+ * Shows an admin notice telling users which requisite plugins they need to download
5
+ */
6
+ class Tribe__Admin__Notice__Plugin_Download {
7
+
8
+ private $plugin_path;
9
+
10
+ private $plugins_required = array();
11
+
12
+ /**
13
+ * @param string $plugin_path Path to the plugin file we're showing a notice for
14
+ */
15
+ public function __construct( $plugin_path ) {
16
+ $this->plugin_path = $plugin_path;
17
+
18
+ tribe_notice(
19
+ plugin_basename( $plugin_path ),
20
+ array( $this, 'show_inactive_plugins_alert' )
21
+ );
22
+ }
23
+
24
+ /**
25
+ * Add a required plugin to the notice
26
+ *
27
+ * @param string $name Name of the required plugin
28
+ * @param null $thickbox_url Download or purchase URL for plugin from within /wp-admin/ thickbox
29
+ * @param bool $is_active Indicates if the plugin is installed and active or not
30
+ */
31
+ public function add_required_plugin( $name, $thickbox_url = null, $is_active = null ) {
32
+ $this->plugins_required[ $name ] = array(
33
+ 'name' => $name,
34
+ 'thickbox_url' => $thickbox_url,
35
+ 'is_active' => $is_active,
36
+ );
37
+ }
38
+
39
+ /**
40
+ * Echoes the admin notice, attach to admin_notices
41
+ */
42
+ public function show_inactive_plugins_alert() {
43
+ if ( ! current_user_can( 'activate_plugins' ) ) {
44
+ return;
45
+ }
46
+
47
+ $plugin_data = get_plugin_data( $this->plugin_path );
48
+
49
+ $req_plugins = array();
50
+
51
+ foreach ( $this->plugins_required as $req_plugin ) {
52
+
53
+ $item = esc_html( $req_plugin['name'] );
54
+
55
+ if ( ! empty( $req_plugin['thickbox_url'] ) ) {
56
+ $item = sprintf(
57
+ '<a href="%1$s" class="thickbox" title="%2$s">%3$s</a>',
58
+ esc_attr( $req_plugin['thickbox_url'] ),
59
+ esc_attr( $req_plugin['name'] ),
60
+ $item
61
+ );
62
+ }
63
+
64
+ if ( false === $req_plugin['is_active'] ) {
65
+ $item = sprintf(
66
+ '<strong class="tribe-inactive-plugin">%1$s</strong>',
67
+ $item
68
+ );
69
+ }
70
+
71
+ $req_plugins[] = $item;
72
+ }
73
+
74
+ printf(
75
+ '<div class="error"><p>' . esc_html__( 'To begin using %1$s, please install and activate the latest version of %2$s.', 'tribe-common' ) . '</p></div>',
76
+ $plugin_data['Name'],
77
+ $this->implode_with_grammar( $req_plugins )
78
+ );
79
+
80
+ }
81
+
82
+ /**
83
+ * Implodes a list items using 'and' as the final separator and a comma everywhere else
84
+ *
85
+ * @param array $items List of items to implode
86
+ *
87
+ * @return string String of items
88
+ */
89
+ public function implode_with_grammar( $items ) {
90
+
91
+ $separator = _x( ', ', 'separator used in a list of items', 'tribe-common' );
92
+ $conjunction = _x( ' and ', 'the final separator in a list of two or more items', 'tribe-common' );
93
+ $output = $last_item = array_pop( $items );
94
+
95
+ if ( $items ) {
96
+ $output = implode( $separator, $items ) . $conjunction . $last_item;
97
+ }
98
+
99
+ return $output;
100
+ }
101
+
102
+ }
common/src/Tribe/Dependency.php CHANGED
@@ -40,44 +40,6 @@ if ( ! class_exists( 'Tribe__Dependency' ) ) {
40
  }
41
 
42
 
43
- public function __construct() {
44
- $this->add_legacy_plugins();
45
- }
46
-
47
-
48
- /**
49
- * Registers older plugins that did not use this class
50
- *
51
- * @TODO Consider removing this in 5.0
52
- */
53
- private function add_legacy_plugins() {
54
- // Version 4.2 and under of the plugins do not register themselves here, so we'll register them
55
-
56
- $tribe_plugins = new Tribe__Plugins();
57
-
58
- foreach ( $tribe_plugins->get_list() as $plugin ) {
59
- if ( ! class_exists( $plugin['class'] ) ) {
60
- continue;
61
- }
62
-
63
- $ver_const = $plugin['class'] . '::VERSION';
64
- $version = defined( $ver_const ) ? constant( $ver_const ) : null;
65
-
66
- $this->add_active_plugin( $plugin['class'], $version );
67
- }
68
- }
69
-
70
-
71
- /**
72
- * Retrieves active plugin array
73
- *
74
- * @return array
75
- */
76
- public function get_active_plugins() {
77
- return $this->active_plugins;
78
- }
79
-
80
-
81
  /**
82
  * Adds a plugin to the active list
83
  *
@@ -97,6 +59,18 @@ if ( ! class_exists( 'Tribe__Dependency' ) ) {
97
  }
98
 
99
 
 
 
 
 
 
 
 
 
 
 
 
 
100
  /**
101
  * Searches the plugin list for key/value pair and return the full details for that plugin
102
  *
@@ -106,7 +80,7 @@ if ( ! class_exists( 'Tribe__Dependency' ) ) {
106
  * @return array|null
107
  */
108
  public function get_plugin_by_key( $search_key, $search_val ) {
109
- foreach ( $this->active_plugins as $plugin ) {
110
  if ( isset( $plugin[ $search_key ] ) && $plugin[ $search_key ] === $search_val ) {
111
  return $plugin;
112
  }
@@ -201,6 +175,29 @@ if ( ! class_exists( 'Tribe__Dependency' ) ) {
201
  return true;
202
  }
203
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
204
  }
205
 
206
  }
40
  }
41
 
42
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
43
  /**
44
  * Adds a plugin to the active list
45
  *
59
  }
60
 
61
 
62
+ /**
63
+ * Retrieves active plugin array
64
+ *
65
+ * @return array
66
+ */
67
+ public function get_active_plugins() {
68
+ $this->add_legacy_plugins();
69
+
70
+ return $this->active_plugins;
71
+ }
72
+
73
+
74
  /**
75
  * Searches the plugin list for key/value pair and return the full details for that plugin
76
  *
80
  * @return array|null
81
  */
82
  public function get_plugin_by_key( $search_key, $search_val ) {
83
+ foreach ( $this->get_active_plugins() as $plugin ) {
84
  if ( isset( $plugin[ $search_key ] ) && $plugin[ $search_key ] === $search_val ) {
85
  return $plugin;
86
  }
175
  return true;
176
  }
177
 
178
+
179
+ /**
180
+ * Registers older plugins that did not implement this class
181
+ *
182
+ * @TODO Consider removing this in 5.0
183
+ */
184
+ public function add_legacy_plugins() {
185
+
186
+ $tribe_plugins = new Tribe__Plugins();
187
+
188
+ foreach ( $tribe_plugins->get_list() as $plugin ) {
189
+ // Only add plugin if it's present and not already added
190
+ if ( ! class_exists( $plugin['class'] ) || array_key_exists( $plugin['class'], $this->active_plugins ) ) {
191
+ continue;
192
+ }
193
+
194
+ $ver_const = $plugin['class'] . '::VERSION';
195
+ $version = defined( $ver_const ) ? constant( $ver_const ) : null;
196
+
197
+ $this->add_active_plugin( $plugin['class'], $version );
198
+ }
199
+ }
200
+
201
  }
202
 
203
  }
common/src/Tribe/Languages/Map_Interface.php ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+
4
+ interface Tribe__Languages__Map_Interface {
5
+
6
+ /**
7
+ * Gets all the languages supported by this language map.
8
+ *
9
+ * @return array An associative array in the format
10
+ * [ <slug> => <name> ]
11
+ * e.g. [ 'pt-BR' => 'Portuguese (Brazil)' ]
12
+ */
13
+ public function get_supported_languages();
14
+
15
+ /**
16
+ * Checks whether a language code is supported by the language map or not.
17
+ *
18
+ * @param string $language_code
19
+ *
20
+ * @return bool Whether a language code is supported by the language map or not.
21
+ */
22
+ public function is_supported( $language_code );
23
+
24
+ /**
25
+ * Converts a language code from the format used by WP to the one used by the language map.
26
+ *
27
+ * @param string $language_code A language code in the format used by WP; e.g. `en_US`.
28
+ *
29
+ * @return string|false The converted language code or `false` if the language code is not supported.
30
+ */
31
+ public function convert_language_code( $language_code );
32
+ }
common/src/Tribe/Languages/Recaptcha_Map.php ADDED
@@ -0,0 +1,125 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+
4
+ /**
5
+ * Class Tribe__Languages__Recaptcha_Map
6
+ *
7
+ * Converts WordPress format language codes to language codes supported by Recaptcha.
8
+ */
9
+ class Tribe__Languages__Recaptcha_Map implements Tribe__Languages__Map_Interface {
10
+
11
+ /**
12
+ * Gets all the languages supported by this language map.
13
+ *
14
+ * @return array An associative array in the format
15
+ * [ <slug> => <name> ]
16
+ * e.g. [ 'pt-BR' => 'Portuguese (Brazil)' ]
17
+ */
18
+ public function get_supported_languages() {
19
+ return array(
20
+ 'ar' => 'Arabic',
21
+ 'af' => 'Afrikaans',
22
+ 'am' => 'Amharic',
23
+ 'hy' => 'Armenian',
24
+ 'az' => 'Azerbaijani',
25
+ 'eu' => 'Basque',
26
+ 'bn' => 'Bengali',
27
+ 'bg' => 'Bulgarian',
28
+ 'ca' => 'Catalan',
29
+ 'zh-HK' => 'Chinese (Hong Kong)',
30
+ 'zh-CN' => 'Chinese (Simplified)',
31
+ 'zh-TW' => 'Chinese (Traditional)',
32
+ 'hr' => 'Croatian',
33
+ 'cs' => 'Czech',
34
+ 'da' => 'Danish',
35
+ 'nl' => 'Dutch',
36
+ 'en-GB' => 'English (UK)',
37
+ 'en' => 'English (US)',
38
+ 'et' => 'Estonian',
39
+ 'fil' => 'Filipino',
40
+ 'fi' => 'Finnish',
41
+ 'fr' => 'French',
42
+ 'fr-CA' => 'French (Canadian)',
43
+ 'gl' => 'Galician',
44
+ 'ka' => 'Georgian',
45
+ 'de' => 'German',
46
+ 'de-AT' => 'German (Austria)',
47
+ 'de-CH' => 'German (Switzerland)',
48
+ 'el' => 'Greek',
49
+ 'gu' => 'Gujarati',
50
+ 'iw' => 'Hebrew',
51
+ 'hi' => 'Hindi',
52
+ 'hu' => 'Hungarain',
53
+ 'is' => 'Icelandic',
54
+ 'id' => 'Indonesian',
55
+ 'it' => 'Italian',
56
+ 'ja' => 'Japanese',
57
+ 'kn' => 'Kannada',
58
+ 'ko' => 'Korean',
59
+ 'lo' => 'Laothian',
60
+ 'lv' => 'Latvian',
61
+ 'lt' => 'Lithuanian',
62
+ 'ms' => 'Malay',
63
+ 'ml' => 'Malayalam',
64
+ 'mr' => 'Marathi',
65
+ 'mn' => 'Mongolian',
66
+ 'no' => 'Norwegian',
67
+ 'fa' => 'Persian',
68
+ 'pl' => 'Polish',
69
+ 'pt' => 'Portuguese',
70
+ 'pt-BR' => 'Portuguese (Brazil)',
71
+ 'pt-PT' => 'Portuguese (Portugal)',
72
+ 'ro' => 'Romanian',
73
+ 'ru' => 'Russian',
74
+ 'sr' => 'Serbian',
75
+ 'si' => 'Sinhalese',
76
+ 'sk' => 'Slovak',
77
+ 'sl' => 'Slovenian',
78
+ 'es' => 'Spanish',
79
+ 'es-419' => 'Spanish (Latin America)',
80
+ 'sw' => 'Swahili',
81
+ 'sv' => 'Swedish',
82
+ 'ta' => 'Tamil',
83
+ 'te' => 'Telugu',
84
+ 'th' => 'Thai',
85
+ 'tr' => 'Turkish',
86
+ 'uk' => 'Ukrainian',
87
+ 'ur' => 'Urdu',
88
+ 'vi' => 'Vietnamese',
89
+ 'zu' => 'Zulu',
90
+ );
91
+ }
92
+
93
+ /**
94
+ * Checks whether a language code is supported by the language map or not.
95
+ *
96
+ * @param string $language_code
97
+ *
98
+ * @return bool Whether a language code is supported by the language map or not.
99
+ */
100
+ public function is_supported( $language_code ) {
101
+ return (bool) $this->convert_language_code( $language_code );
102
+ }
103
+
104
+ /**
105
+ * Converts a language code from the format used by WP to the one used by the language map.
106
+ *
107
+ * @param string $language_code A language code in the format used by WP; e.g. `en_US`.
108
+ *
109
+ * @return string|false The converted language code or `false` if the language code is not supported.
110
+ */
111
+ public function convert_language_code( $language_code ) {
112
+ $converted_code = $language_code;
113
+ if ( strlen( $language_code ) > 2 ) {
114
+ // go from `en_US` to `en-US`
115
+ $converted_code = str_replace( '_', '-', $language_code );
116
+ $exists = array_key_exists( $converted_code, $this->get_supported_languages() );
117
+ // try with just the two first chars
118
+ $converted_code = $exists ? $converted_code : $this->convert_language_code( substr( $language_code, 0, 2 ) );
119
+ } else {
120
+ $converted_code = array_key_exists( $language_code, $this->get_supported_languages() ) ? $converted_code : false;
121
+ }
122
+
123
+ return $converted_code ? $converted_code : false;
124
+ }
125
+ }
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.3';
21
  const FEED_URL = 'https://theeventscalendar.com/feed/';
22
 
23
  protected $plugin_context;
@@ -69,6 +69,13 @@ class Tribe__Main {
69
  $this->add_hooks();
70
 
71
  $this->doing_ajax = defined( 'DOING_AJAX' ) && DOING_AJAX;
 
 
 
 
 
 
 
72
  }
73
 
74
  /**
@@ -218,6 +225,7 @@ class Tribe__Main {
218
  public function add_hooks() {
219
  add_action( 'plugins_loaded', array( 'Tribe__App_Shop', 'instance' ) );
220
  add_action( 'plugins_loaded', array( 'Tribe__Assets', 'instance' ), 1 );
 
221
 
222
  // Register for the assets to be available everywhere
223
  add_action( 'init', array( $this, 'load_assets' ), 1 );
@@ -397,4 +405,16 @@ class Tribe__Main {
397
  $notices = apply_filters( 'tribe_plugin_notices', array() );
398
  wp_localize_script( 'tribe-pue-notices', 'tribe_plugin_notices', $notices );
399
  }
 
 
 
 
 
 
 
 
 
 
 
 
400
  }
17
  const OPTIONNAME = 'tribe_events_calendar_options';
18
  const OPTIONNAMENETWORK = 'tribe_events_calendar_network_options';
19
 
20
+ const VERSION = '4.3.1';
21
  const FEED_URL = 'https://theeventscalendar.com/feed/';
22
 
23
  protected $plugin_context;
69
  $this->add_hooks();
70
 
71
  $this->doing_ajax = defined( 'DOING_AJAX' ) && DOING_AJAX;
72
+
73
+ /**
74
+ * Runs once all common libs are loaded and initial hooks are in place.
75
+ *
76
+ * @since 4.3
77
+ */
78
+ do_action( 'tribe_common_loaded' );
79
  }
80
 
81
  /**
225
  public function add_hooks() {
226
  add_action( 'plugins_loaded', array( 'Tribe__App_Shop', 'instance' ) );
227
  add_action( 'plugins_loaded', array( 'Tribe__Assets', 'instance' ), 1 );
228
+ add_action( 'plugins_loaded', array( $this, 'tribe_plugins_loaded' ), PHP_INT_MAX );
229
 
230
  // Register for the assets to be available everywhere
231
  add_action( 'init', array( $this, 'load_assets' ), 1 );
405
  $notices = apply_filters( 'tribe_plugin_notices', array() );
406
  wp_localize_script( 'tribe-pue-notices', 'tribe_plugin_notices', $notices );
407
  }
408
+
409
+ /**
410
+ * Runs tribe_plugins_loaded action, should be hooked to the end of plugins_loaded
411
+ */
412
+ public function tribe_plugins_loaded() {
413
+ /**
414
+ * Runs after all plugins including Tribe ones have loaded
415
+ *
416
+ * @since 4.3
417
+ */
418
+ do_action( 'tribe_plugins_loaded' );
419
+ }
420
  }
common/src/Tribe/PUE/Checker.php CHANGED
@@ -195,6 +195,9 @@ if ( ! class_exists( 'Tribe__PUE__Checker' ) ) {
195
  add_filter( 'tribe-pue-install-keys', array( $this, 'return_install_key' ) );
196
  add_action( 'admin_enqueue_scripts', array( $this, 'maybe_display_json_error_on_plugins_page' ), 1 );
197
  add_action( 'admin_init', array( $this, 'general_notifications' ) );
 
 
 
198
  }
199
 
200
  /********************** Getter / Setter Functions **********************/
@@ -576,6 +579,10 @@ if ( ! class_exists( 'Tribe__PUE__Checker' ) ) {
576
  $response['status'] = isset( $plugin_info->api_message ) ? 2 : 1;
577
  $response['message'] = isset( $plugin_info->api_message ) ? wp_kses( $plugin_info->api_message, 'data' ) : $default_success_msg;
578
  $response['expiration'] = $expiration;
 
 
 
 
579
  }
580
 
581
  return $response;
195
  add_filter( 'tribe-pue-install-keys', array( $this, 'return_install_key' ) );
196
  add_action( 'admin_enqueue_scripts', array( $this, 'maybe_display_json_error_on_plugins_page' ), 1 );
197
  add_action( 'admin_init', array( $this, 'general_notifications' ) );
198
+
199
+ // Package name
200
+ add_filter( 'upgrader_pre_download', array( Tribe__PUE__Package_Handler::instance(), 'filter_upgrader_pre_download' ), 5, 3 );
201
  }
202
 
203
  /********************** Getter / Setter Functions **********************/
579
  $response['status'] = isset( $plugin_info->api_message ) ? 2 : 1;
580
  $response['message'] = isset( $plugin_info->api_message ) ? wp_kses( $plugin_info->api_message, 'data' ) : $default_success_msg;
581
  $response['expiration'] = $expiration;
582
+
583
+ if ( isset( $plugin_info->daily_limit ) ) {
584
+ $response['daily_limit'] = intval( $plugin_info->daily_limit );
585
+ }
586
  }
587
 
588
  return $response;
common/src/Tribe/PUE/Package_Handler.php ADDED
@@ -0,0 +1,157 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+
4
+ /**
5
+ * Class Tribe__PUE__Package_Handler
6
+ *
7
+ * Middleman for plugin updates.
8
+ */
9
+ class Tribe__PUE__Package_Handler {
10
+
11
+ /**
12
+ * @var static
13
+ */
14
+ protected static $instance;
15
+ /**
16
+ * @var WP_Upgrader
17
+ */
18
+ protected $upgrader;
19
+ /**
20
+ * @var WP_Filesystem_Base
21
+ */
22
+ private $filesystem;
23
+
24
+ /**
25
+ * Tribe__PUE__Package_Handler constructor.
26
+ *
27
+ * @param WP_Filesystem_Base|null $wp_filesystem
28
+ */
29
+ public function __construct( WP_Filesystem_Base $wp_filesystem = null ) {
30
+ if ( null === $wp_filesystem ) {
31
+ global $wp_filesystem;
32
+ }
33
+ $this->filesystem = $wp_filesystem;
34
+ }
35
+
36
+ /**
37
+ * @return Tribe__PUE__Package_Handler
38
+ */
39
+ public static function instance() {
40
+ if ( empty( self::$instance ) ) {
41
+ self::$instance = new self();
42
+ }
43
+
44
+ return self::$instance;
45
+ }
46
+
47
+ /**
48
+ * Filters the package download step to store the downloaded file with a shorter file name.
49
+ *
50
+ * @param bool $reply Whether to bail without returning the package.
51
+ * Default false.
52
+ * @param string $package The package file name or URL.
53
+ * @param WP_Upgrader $upgrader The WP_Upgrader instance.
54
+ */
55
+ public function filter_upgrader_pre_download( $reply, $package, WP_Upgrader $upgrader ) {
56
+ if ( $this->is_mt_package( $package ) ) {
57
+ $this->upgrader = $upgrader;
58
+
59
+ return $this->download( $package );
60
+ }
61
+
62
+ return $reply;
63
+ }
64
+
65
+ /**
66
+ * Whether the current package is an MT plugin package or not.
67
+ *
68
+ * @param string $package The package file name or URL.
69
+ *
70
+ * @return bool
71
+ */
72
+ protected function is_mt_package( $package ) {
73
+ if ( empty( $package )
74
+ || ! preg_match( '!^(http|https|ftp)://!i', $package )
75
+ || file_exists( $package )
76
+ ) {
77
+ return false;
78
+ }
79
+
80
+ $query_vars = parse_url( $package, PHP_URL_QUERY );
81
+
82
+ if ( empty( $query_vars ) ) {
83
+ return false;
84
+ }
85
+
86
+ wp_parse_str( $query_vars, $parsed );
87
+
88
+ return isset( $parsed['pu_get_download'] ) && $parsed['pu_get_download'] == 1;
89
+ }
90
+
91
+ /**
92
+ * A mimic of the `WP_Upgrader::download_package` method that adds a step to store the temp file with a shorter
93
+ * file name.
94
+ *
95
+ * @see WP_Upgrader::download_package()
96
+ *
97
+ * @param string $package The URI of the package. If this is the full path to an
98
+ * existing local file, it will be returned untouched.
99
+ *
100
+ * @return string|WP_Error The full path to the downloaded package file, or a WP_Error object.
101
+ */
102
+ protected function download( $package ) {
103
+ if ( empty( $this->filesystem ) ) {
104
+ // try to connect
105
+ $this->upgrader->fs_connect( array( WP_CONTENT_DIR, WP_PLUGIN_DIR ) );
106
+
107
+ global $wp_filesystem;
108
+
109
+ // still empty?
110
+ if ( empty( $wp_filesystem ) ) {
111
+ // bail
112
+ return false;
113
+ }
114
+
115
+ $this->filesystem = $wp_filesystem;
116
+ }
117
+
118
+ $this->upgrader->skin->feedback( 'downloading_package', $package );
119
+
120
+ $download_file = download_url( $package );
121
+
122
+ if ( is_wp_error( $download_file ) ) {
123
+ return new WP_Error( 'download_failed', $this->upgrader->strings['download_failed'],
124
+ $download_file->get_error_message() );
125
+ }
126
+
127
+ $file = $this->get_short_filename( $download_file );
128
+
129
+ $moved = $this->filesystem->move( $download_file, $file );
130
+
131
+ if ( empty( $moved ) ) {
132
+ // we tried, we failed, we bail and let WP do its job
133
+ return false;
134
+ }
135
+
136
+ return $file;
137
+ }
138
+
139
+ /**
140
+ * Returns the absolute path to a shorter filename version of the original download temp file.
141
+ *
142
+ * The path will point to the same temp dir (WP handled) but shortening the filename to a
143
+ * 6 chars hash to cope with OSes limiting the max number of chars in a file path.
144
+ * The original filename would be a sanitized version of the URL including query args.
145
+ *
146
+ * @param string $download_file The absolute path to the original download file.
147
+ *
148
+ * @return string The absolute path to a shorter name version of the downloaded file.
149
+ */
150
+ protected function get_short_filename( $download_file ) {
151
+ $extension = pathinfo( $download_file, PATHINFO_EXTENSION );
152
+ $filename = substr( md5( $download_file ), 0, 5 );
153
+ $file = dirname( $download_file ) . '/' . $filename . '.' . $extension;
154
+
155
+ return $file;
156
+ }
157
+ }
common/src/Tribe/Plugin_Download_Notice.php DELETED
@@ -1,78 +0,0 @@
1
- <?php
2
- // Don't load directly
3
- defined( 'WPINC' ) or die;
4
-
5
- if ( ! class_exists( 'Tribe__Plugin_Download_Notice' ) ) {
6
-
7
- /**
8
- * Shows an admin notice telling users which requisite plugins they need to download
9
- *
10
- * @TODO This whole thing could be reworked in post 4.3 or possibly removed with the introduction of tribe_notice()
11
- */
12
- class Tribe__Plugin_Download_Notice {
13
-
14
- private $plugin_path;
15
-
16
- private $plugins_required = array();
17
-
18
- /**
19
- * @param string $plugin_path Path to the plugin file we're showing a notice for
20
- */
21
- public function __construct( $plugin_path ) {
22
- $this->plugin_path = $plugin_path;
23
- add_action( 'admin_notices', array( $this, 'show_inactive_plugins_alert' ) );
24
- }
25
-
26
- /**
27
- * Add a required plugin to the notice
28
- *
29
- * @param string $name Name of the required plugin
30
- * @param null $thickbox_url Download or purchase URL for plugin from within /wp-admin/ thickbox
31
- */
32
- public function add_required_plugin( $name, $thickbox_url = null ) {
33
- $this->plugins_required[ $name ] = array(
34
- 'name' => $name,
35
- 'thickbox_url' => $thickbox_url,
36
- );
37
- }
38
-
39
- /**
40
- * Echoes the admin notice, attach to admin_notices
41
- */
42
- public function show_inactive_plugins_alert() {
43
- if ( ! current_user_can( 'activate_plugins' ) ) {
44
- return;
45
- }
46
-
47
- $plugin_data = get_plugin_data( $this->plugin_path );
48
-
49
- $req_plugins = array();
50
-
51
- foreach ( $this->plugins_required as $req_plugin ) {
52
-
53
- $item = esc_html( $req_plugin['name'] );
54
-
55
- if ( ! empty( $req_plugin['thickbox_url'] ) ) {
56
- $item = sprintf(
57
- '<a href="%1$s" class="thickbox" title="%2$s">%3$s</a>',
58
- esc_attr( $req_plugin['thickbox_url'] ),
59
- esc_attr( $req_plugin['name'] ),
60
- $item
61
- );
62
- }
63
-
64
- $req_plugins[] = $item;
65
- }
66
-
67
- printf(
68
- '<div class="error"><p>' . esc_html__( 'To begin using %1$s, please install and activate the latest version(s) of %2$s.', 'tribe-common' ) . '</p></div>',
69
- $plugin_data['Name'],
70
- implode( ', ', $req_plugins )
71
- );
72
-
73
- }
74
-
75
-
76
- }
77
-
78
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
common/src/Tribe/Simple_Table.php ADDED
@@ -0,0 +1,166 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // Don't load directly
4
+ if ( ! defined( 'ABSPATH' ) ) {
5
+ die( '-1' );
6
+ }
7
+
8
+ /**
9
+ * A class for outputting a multidimensional array as a straightforward HTML table
10
+ *
11
+ * @TODO Remove this in version 5 if it does not see much usage
12
+ */
13
+ class Tribe__Simple_Table {
14
+
15
+ public $thead;
16
+ public $tbody;
17
+
18
+ /*
19
+ * Arrays containing HTML attributes for the table elements
20
+ *
21
+ * Example: $table_attributes = array( 'class' => 'tribe_table', 'border' => '0' );
22
+ */
23
+ public $table_attributes;
24
+ public $tr_attributes;
25
+ public $th_attributes;
26
+ public $td_attributes;
27
+
28
+ /**
29
+ * Will HTML escape all table cells
30
+ *
31
+ * @var bool
32
+ */
33
+ public $html_escape_td_values = true;
34
+
35
+ /**
36
+ * Tribe__Simple_Table constructor.
37
+ *
38
+ * @param array $tbody Multidimension array containing table rows/columns
39
+ * @param array $thead Single dimension array containing table headings
40
+ */
41
+ public function __construct( $tbody, $thead = array() ) {
42
+ $this->thead = $thead;
43
+ $this->tbody = $tbody;
44
+ }
45
+
46
+ /**
47
+ * @param bool $vertical Whether heading appears vertically (above) data or horizontally (to the side)
48
+ *
49
+ * @return string HTML table
50
+ */
51
+ public function output_table( $vertical = true ) {
52
+
53
+ if ( $vertical ) {
54
+ return $this->output_table_vertical();
55
+ } else {
56
+ return $this->output_table_horizontal();
57
+ }
58
+ }
59
+
60
+ /**
61
+ * Outputs table with heading above data
62
+ *
63
+ * @return string HTML table
64
+ */
65
+ private function output_table_vertical() {
66
+
67
+ $table_contents = '';
68
+
69
+ // Create thead
70
+ if ( ! empty( $this->thead ) ) {
71
+ foreach ( $this->thead as $th ) {
72
+ $table_contents .= $this->output_element( 'th', $th, $this->th_attributes );
73
+ }
74
+ $table_contents = $this->output_element( 'tr', $table_contents, $this->tr_attributes );
75
+ }
76
+
77
+ // Create tbody
78
+ foreach ( $this->tbody as $tr ) {
79
+ $tr_str = '';
80
+
81
+ foreach ( $tr as $td ) {
82
+ $tr_str .= $this->output_element( 'td', $td, $this->td_attributes );
83
+ }
84
+
85
+ $table_contents .= $this->output_element( 'tr', $tr_str, $this->tr_attributes );
86
+ }
87
+
88
+ // Wrap it all up in a table
89
+ $output = $this->output_element( 'table', $table_contents, $this->table_attributes );
90
+
91
+ return $output;
92
+ }
93
+
94
+ /**
95
+ * Outputs table with heading to the left of the data
96
+ *
97
+ * @return string HTML table
98
+ */
99
+ private function output_table_horizontal() {
100
+
101
+ $table_contents = '';
102
+
103
+ // Finds the table row with the most columns
104
+ $max_col = isset( $this->thead ) ? count( $this->thead ) : 1;
105
+ foreach ( $this->tbody as $table_item ) {
106
+ if ( $max_col < count( $table_item ) ) {
107
+ $max_col = count( $table_item );
108
+ }
109
+ }
110
+
111
+ // Create table rows
112
+ for ( $i = 0; $i < $max_col; $i++ ) {
113
+ $tr_contents = '';
114
+
115
+ // row heading
116
+ if ( isset( $this->thead[ $i ] ) ) {
117
+ $tr_contents .= $this->output_element( 'th', $this->thead[ $i ], $this->th_attributes );
118
+ }
119
+
120
+ // columns
121
+ foreach ( $this->tbody as $table_item ) {
122
+ if ( ! isset( $table_item[ $i ] ) ) {
123
+ continue;
124
+ }
125
+ $tr_contents .= $this->output_element( 'td', $table_item[ $i ], $this->td_attributes );
126
+ }
127
+
128
+ $table_contents .= $this->output_element( 'tr', $tr_contents, $this->tr_attributes );
129
+ }
130
+
131
+ // Wrap it all up in a table
132
+ $output = $this->output_element( 'table', $table_contents, $this->table_attributes );
133
+
134
+ return $output;
135
+ }
136
+
137
+ /**
138
+ * Outputs an HTML element, mostly useful for elements that have attributes
139
+ *
140
+ * @param string $html_tag HTML element name. Example: 'table'
141
+ * @param string $data Text/HTML contained inside of the element
142
+ * @param array $attributes HTML attributes for element
143
+ *
144
+ * @return string HTML element
145
+ */
146
+ private function output_element( $html_tag, $data = null, $attributes = array() ) {
147
+ $output = '<' . tag_escape( $html_tag );
148
+
149
+ if ( ! empty( $attributes ) ) {
150
+ foreach ( $attributes as $att => $val ) {
151
+ $output .= ' ' . $att . '="' . esc_attr( $val ) . '"';
152
+ }
153
+ }
154
+
155
+ if ( is_string( $data ) ) {
156
+ $output .= '>';
157
+ $output .= ( 'td' === $html_tag && $this->html_escape_td_values ) ? esc_html( $data ) : $data;
158
+ $output .= '</' . tag_escape( $html_tag ) . '>';
159
+ } else {
160
+ $output .= ' />';
161
+ }
162
+
163
+ return $output;
164
+ }
165
+
166
+ }
common/src/deprecated/Tribe__Plugin_Download_Notice.php ADDED
@@ -0,0 +1,4 @@
 
 
 
 
1
+ <?php
2
+ _deprecated_file( __FILE__, '4.3', 'Tribe__Admin__Notice__Plugin_Download.php' );
3
+
4
+ class Tribe__Plugin_Download_Notice extends Tribe__Admin__Notice__Plugin_Download {}
common/src/functions/utils.php CHANGED
@@ -38,23 +38,28 @@ if ( ! function_exists( 'tribe_register_plugin' ) ) {
38
  * @return bool Indicates if plugin should continue initialization
39
  */
40
  function tribe_register_plugin( $file_path, $main_class, $version, $classes_req = array() ) {
41
- $tribe_plugins = Tribe__Dependency::instance();
 
42
 
43
- if ( $tribe_plugins->has_requisite_plugins( $classes_req ) ) {
44
- $tribe_plugins->add_active_plugin( $main_class, $version, $file_path );
 
45
 
46
- return true;
47
- } elseif ( is_admin() ) {
48
  $tribe_plugins = new Tribe__Plugins();
49
- $admin_notice = new Tribe__Plugin_Download_Notice( $file_path );
50
 
51
  foreach ( $classes_req as $class => $version ) {
52
- $plugin = $tribe_plugins->get_plugin_by_class( $class );
53
- $admin_notice->add_required_plugin( $plugin['short_name'], $plugin['thickbox_url'] );
 
54
  }
55
  }
56
 
57
- return false;
 
 
 
 
58
  }
59
  }
60
 
38
  * @return bool Indicates if plugin should continue initialization
39
  */
40
  function tribe_register_plugin( $file_path, $main_class, $version, $classes_req = array() ) {
41
+ $tribe_dependency = Tribe__Dependency::instance();
42
+ $should_plugin_run = true;
43
 
44
+ // Checks to see if the plugins are active
45
+ if ( ! empty( $classes_req ) && ! $tribe_dependency->has_requisite_plugins( $classes_req ) ) {
46
+ $should_plugin_run = false;
47
 
 
 
48
  $tribe_plugins = new Tribe__Plugins();
49
+ $admin_notice = new Tribe__Admin__Notice__Plugin_Download( $file_path );
50
 
51
  foreach ( $classes_req as $class => $version ) {
52
+ $plugin = $tribe_plugins->get_plugin_by_class( $class );
53
+ $is_active = $tribe_dependency->is_plugin_version( $class, $version );
54
+ $admin_notice->add_required_plugin( $plugin['short_name'], $plugin['thickbox_url'], $is_active );
55
  }
56
  }
57
 
58
+ if ( $should_plugin_run ) {
59
+ $tribe_dependency->add_active_plugin( $main_class, $version, $file_path );
60
+ }
61
+
62
+ return $should_plugin_run;
63
  }
64
  }
65
 
common/src/resources/js/dependency.js CHANGED
@@ -55,7 +55,7 @@
55
  $dependent
56
  .addClass( active_class )
57
  .find( selectors.fields ).prop( 'disabled', false )
58
- .end().find( '.select2-container' ).select2( 'enable', false );
59
 
60
  if ( $( '#s2id_' + $dependent.attr( 'id' ) ).length ) {
61
  $( '#s2id_' + $dependent.attr( 'id' ) ).addClass( active_class );
@@ -64,7 +64,7 @@
64
  $dependent
65
  .removeClass( active_class )
66
  .find( selectors.fields ).prop( 'disabled', true )
67
- .end().find( '.select2-container' ).select2( 'enable', true );
68
 
69
  if ( $( '#s2id_' + $dependent.attr( 'id' ) ).length ) {
70
  $( '#s2id_' + $dependent.attr( 'id' ) ).removeClass( active_class );
55
  $dependent
56
  .addClass( active_class )
57
  .find( selectors.fields ).prop( 'disabled', false )
58
+ .end().find( '.select2-container' ).select2( 'enable', true );
59
 
60
  if ( $( '#s2id_' + $dependent.attr( 'id' ) ).length ) {
61
  $( '#s2id_' + $dependent.attr( 'id' ) ).addClass( active_class );
64
  $dependent
65
  .removeClass( active_class )
66
  .find( selectors.fields ).prop( 'disabled', true )
67
+ .end().find( '.select2-container' ).select2( 'enable', false );
68
 
69
  if ( $( '#s2id_' + $dependent.attr( 'id' ) ).length ) {
70
  $( '#s2id_' + $dependent.attr( 'id' ) ).removeClass( active_class );
common/src/resources/js/dependency.min.js CHANGED
@@ -1 +1 @@
1
- !function(e,d){"use strict";var n=e(document),t={dependent:".tribe-dependent",active:".tribe-active",dependency:".tribe-dependency",fields:"input, select, textarea",advanced_fields:".select2-container"};e.fn.dependency=function(){this.each(function(){var d=e(this).data("depends");e(d).addClass(t.dependency.replace(".","")).data("dependent",e(this))})},n.off("change.dependency verify.dependency",t.dependency).on({"verify.dependency":function(i){var a=e(this),c="#"+a.attr("id"),s=a.val();if(c){var r=n.find('[data-depends="'+c+'"]');r.each(function(n,i){var c=e(i),r=c.data("condition"),o=c.data("conditionNot"),p=c.data("conditionNotEmpty")||c.is("[data-condition-not-empty]"),f=c.data("conditionEmpty")||c.is("[data-condition-empty]"),y=a.is(":disabled"),l=t.active.replace(".","");(f&&""==s||p&&""!=s||d.isArray(r)&&-1!==d.findIndex(r,s)||"undefined"!=typeof r&&s==r||"undefined"!=typeof o&&s!=o)&&!y?(c.addClass(l).find(t.fields).prop("disabled",!1).end().find(".select2-container").select2("enable",!1),e("#s2id_"+c.attr("id")).length&&e("#s2id_"+c.attr("id")).addClass(l)):(c.removeClass(l).find(t.fields).prop("disabled",!0).end().find(".select2-container").select2("enable",!0),e("#s2id_"+c.attr("id")).length&&e("#s2id_"+c.attr("id")).removeClass(l)),c.find(t.dependency).trigger("change")})}},"change.dependency":function(d){e(this).trigger("verify.dependency")}},t.dependency),n.ready(function(){e(t.dependent).dependency(),e(t.dependency).trigger("verify.dependency")})}(jQuery,_);
1
+ !function(e,d){"use strict";var n=e(document),t={dependent:".tribe-dependent",active:".tribe-active",dependency:".tribe-dependency",fields:"input, select, textarea",advanced_fields:".select2-container"};e.fn.dependency=function(){this.each(function(){var d=e(this).data("depends");e(d).addClass(t.dependency.replace(".","")).data("dependent",e(this))})},n.off("change.dependency verify.dependency",t.dependency).on({"verify.dependency":function(i){var a=e(this),c="#"+a.attr("id"),s=a.val();if(c){var r=n.find('[data-depends="'+c+'"]');r.each(function(n,i){var c=e(i),r=c.data("condition"),o=c.data("conditionNot"),p=c.data("conditionNotEmpty")||c.is("[data-condition-not-empty]"),f=c.data("conditionEmpty")||c.is("[data-condition-empty]"),y=a.is(":disabled"),l=t.active.replace(".","");(f&&""==s||p&&""!=s||d.isArray(r)&&-1!==d.findIndex(r,s)||"undefined"!=typeof r&&s==r||"undefined"!=typeof o&&s!=o)&&!y?(c.addClass(l).find(t.fields).prop("disabled",!1).end().find(".select2-container").select2("enable",!0),e("#s2id_"+c.attr("id")).length&&e("#s2id_"+c.attr("id")).addClass(l)):(c.removeClass(l).find(t.fields).prop("disabled",!0).end().find(".select2-container").select2("enable",!1),e("#s2id_"+c.attr("id")).length&&e("#s2id_"+c.attr("id")).removeClass(l)),c.find(t.dependency).trigger("change")})}},"change.dependency":function(d){e(this).trigger("verify.dependency")}},t.dependency),n.ready(function(){e(t.dependent).dependency(),e(t.dependency).trigger("verify.dependency")})}(jQuery,_);
common/src/resources/js/notice-dismiss.min.js CHANGED
@@ -1 +1 @@
1
- !function(i){function s(i,s,t){var e=i.indexOf("#"),n=-1===e?"":i.substr(e);i=-1===e?i:i.substr(0,e);var a=new RegExp("([?&])"+s+"=.*?(&|$)","i"),r=-1!==i.indexOf("?")?"&":"?";return i=i.match(a)?i.replace(a,"$1"+s+"="+t+"$2"):i+r+s+"="+t,i+n}i(document).ready(function(){i(".tribe-dismiss-notice.is-dismissible").on("click",".notice-dismiss",function(){var t=s(ajaxurl,"tribe-dismiss-notice",i(this).parents(".tribe-dismiss-notice").data("ref"));i.ajax(t,{dataType:"json",method:"POST",data:{action:"tribe_notice_dismiss"}})})})}(jQuery);
1
+ !function(i){function s(i,s,t){var e=i.indexOf("#"),n=e===-1?"":i.substr(e);i=e===-1?i:i.substr(0,e);var a=new RegExp("([?&])"+s+"=.*?(&|$)","i"),r=i.indexOf("?")!==-1?"&":"?";return i=i.match(a)?i.replace(a,"$1"+s+"="+t+"$2"):i+r+s+"="+t,i+n}i(document).ready(function(){i(".tribe-dismiss-notice.is-dismissible").on("click",".notice-dismiss",function(){var t=s(ajaxurl,"tribe-dismiss-notice",i(this).parents(".tribe-dismiss-notice").data("ref"));i.ajax(t,{dataType:"json",method:"POST",data:{action:"tribe_notice_dismiss"}})})})}(jQuery);
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.3
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.3.1
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.3
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.3.1
6
  Author: Modern Tribe, Inc.
7
  Author URI: http://m.tri.be/28
8
  License: GPLv2 or later
lang/event-tickets-cs_CZ.po CHANGED
@@ -340,11 +340,11 @@ msgctxt "post type label"
340
  msgid "RSVPs"
341
  msgstr ""
342
 
343
- #: src/Tribe/Main.php:530
344
  msgid "Welcome to Event Tickets"
345
  msgstr ""
346
 
347
- #: src/Tribe/Main.php:665
348
  msgctxt "button text"
349
  msgid "RSVP"
350
  msgstr ""
@@ -552,7 +552,7 @@ msgstr ""
552
  msgid "Event Tickets allows your guests to RSVP from any post, page, or event."
553
  msgstr ""
554
 
555
- #: src/Tribe/Main.php:665
556
  msgid "Buy"
557
  msgstr ""
558
 
@@ -687,7 +687,7 @@ msgstr ""
687
  msgid "Free"
688
  msgstr "Zdarma"
689
 
690
- #: src/Tribe/Main.php:429
691
  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)."
692
  msgstr ""
693
 
@@ -771,63 +771,63 @@ msgstr "Pokud nenastavíte začátek a konec prodeje, budou vstupenky k dispozic
771
  msgid "Cancel"
772
  msgstr "Zrušit"
773
 
774
- #: src/Tribe/Main.php:197
775
  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"
776
  msgstr ""
777
 
778
- #: src/Tribe/Main.php:375
779
  msgid "Support for Event Tickets"
780
  msgstr ""
781
 
782
- #: src/Tribe/Main.php:377
783
  msgid "Settings overview"
784
  msgstr "Přehled nastavení"
785
 
786
- #: src/Tribe/Main.php:378
787
  msgid "Features overview"
788
  msgstr "Přehled funkcí"
789
 
790
- #: src/Tribe/Main.php:379
791
  msgid "Troubleshooting common problems"
792
  msgstr ""
793
 
794
- #: src/Tribe/Main.php:380
795
  msgid "Customizing Event Tickets"
796
  msgstr ""
797
 
798
- #: src/Tribe/Main.php:397
799
  msgid "New User Primer"
800
  msgstr ""
801
 
802
- #: src/Tribe/Main.php:399
803
  msgid "We are committed to helping you sell tickets for your event. Check out our handy %s to get started."
804
  msgstr ""
805
 
806
- #: src/Tribe/Main.php:416
807
  msgid "open-source forum on WordPress.org"
808
  msgstr ""
809
 
810
- #: src/Tribe/Main.php:417
811
  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."
812
  msgstr ""
813
 
814
- #: src/Tribe/Main.php:419
815
  msgid "premium support on our website"
816
  msgstr ""
817
 
818
- #: src/Tribe/Main.php:420
819
  msgid "Events Tickets Plus"
820
  msgstr "Events Tickets Plus"
821
 
822
- #: src/Tribe/Main.php:421
823
  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."
824
  msgstr ""
825
 
826
- #: src/Tribe/Main.php:423 src/Tribe/Main.php:428
827
  msgid "post a thread"
828
  msgstr ""
829
 
830
- #: src/Tribe/Main.php:424
831
  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)."
832
  msgstr ""
833
 
340
  msgid "RSVPs"
341
  msgstr ""
342
 
343
+ #: src/Tribe/Main.php:546
344
  msgid "Welcome to Event Tickets"
345
  msgstr ""
346
 
347
+ #: src/Tribe/Main.php:681
348
  msgctxt "button text"
349
  msgid "RSVP"
350
  msgstr ""
552
  msgid "Event Tickets allows your guests to RSVP from any post, page, or event."
553
  msgstr ""
554
 
555
+ #: src/Tribe/Main.php:681
556
  msgid "Buy"
557
  msgstr ""
558
 
687
  msgid "Free"
688
  msgstr "Zdarma"
689
 
690
+ #: src/Tribe/Main.php:445
691
  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)."
692
  msgstr ""
693
 
771
  msgid "Cancel"
772
  msgstr "Zrušit"
773
 
774
+ #: src/Tribe/Main.php:213
775
  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"
776
  msgstr ""
777
 
778
+ #: src/Tribe/Main.php:391
779
  msgid "Support for Event Tickets"
780
  msgstr ""
781
 
782
+ #: src/Tribe/Main.php:393
783
  msgid "Settings overview"
784
  msgstr "Přehled nastavení"
785
 
786
+ #: src/Tribe/Main.php:394
787
  msgid "Features overview"
788
  msgstr "Přehled funkcí"
789
 
790
+ #: src/Tribe/Main.php:395
791
  msgid "Troubleshooting common problems"
792
  msgstr ""
793
 
794
+ #: src/Tribe/Main.php:396
795
  msgid "Customizing Event Tickets"
796
  msgstr ""
797
 
798
+ #: src/Tribe/Main.php:413
799
  msgid "New User Primer"
800
  msgstr ""
801
 
802
+ #: src/Tribe/Main.php:415
803
  msgid "We are committed to helping you sell tickets for your event. Check out our handy %s to get started."
804
  msgstr ""
805
 
806
+ #: src/Tribe/Main.php:432
807
  msgid "open-source forum on WordPress.org"
808
  msgstr ""
809
 
810
+ #: src/Tribe/Main.php:433
811
  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."
812
  msgstr ""
813
 
814
+ #: src/Tribe/Main.php:435
815
  msgid "premium support on our website"
816
  msgstr ""
817
 
818
+ #: src/Tribe/Main.php:436
819
  msgid "Events Tickets Plus"
820
  msgstr "Events Tickets Plus"
821
 
822
+ #: src/Tribe/Main.php:437
823
  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."
824
  msgstr ""
825
 
826
+ #: src/Tribe/Main.php:439 src/Tribe/Main.php:444
827
  msgid "post a thread"
828
  msgstr ""
829
 
830
+ #: src/Tribe/Main.php:440
831
  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)."
832
  msgstr ""
833
 
lang/event-tickets-de_DE.po CHANGED
@@ -336,11 +336,11 @@ msgctxt "post type label"
336
  msgid "RSVPs"
337
  msgstr ""
338
 
339
- #: src/Tribe/Main.php:530
340
  msgid "Welcome to Event Tickets"
341
  msgstr ""
342
 
343
- #: src/Tribe/Main.php:665
344
  msgctxt "button text"
345
  msgid "RSVP"
346
  msgstr ""
@@ -546,7 +546,7 @@ msgstr ""
546
  msgid "Event Tickets allows your guests to RSVP from any post, page, or event."
547
  msgstr ""
548
 
549
- #: src/Tribe/Main.php:665
550
  msgid "Buy"
551
  msgstr ""
552
 
@@ -680,7 +680,7 @@ msgstr ""
680
  msgid "Free"
681
  msgstr "Kostenlos"
682
 
683
- #: src/Tribe/Main.php:429
684
  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)."
685
  msgstr ""
686
 
@@ -764,63 +764,63 @@ msgstr ""
764
  msgid "Cancel"
765
  msgstr "Abbrechen"
766
 
767
- #: src/Tribe/Main.php:197
768
  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"
769
  msgstr ""
770
 
771
- #: src/Tribe/Main.php:375
772
  msgid "Support for Event Tickets"
773
  msgstr ""
774
 
775
- #: src/Tribe/Main.php:377
776
  msgid "Settings overview"
777
  msgstr ""
778
 
779
- #: src/Tribe/Main.php:378
780
  msgid "Features overview"
781
  msgstr ""
782
 
783
- #: src/Tribe/Main.php:379
784
  msgid "Troubleshooting common problems"
785
  msgstr ""
786
 
787
- #: src/Tribe/Main.php:380
788
  msgid "Customizing Event Tickets"
789
  msgstr ""
790
 
791
- #: src/Tribe/Main.php:397
792
  msgid "New User Primer"
793
  msgstr ""
794
 
795
- #: src/Tribe/Main.php:399
796
  msgid "We are committed to helping you sell tickets for your event. Check out our handy %s to get started."
797
  msgstr ""
798
 
799
- #: src/Tribe/Main.php:416
800
  msgid "open-source forum on WordPress.org"
801
  msgstr ""
802
 
803
- #: src/Tribe/Main.php:417
804
  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."
805
  msgstr ""
806
 
807
- #: src/Tribe/Main.php:419
808
  msgid "premium support on our website"
809
  msgstr ""
810
 
811
- #: src/Tribe/Main.php:420
812
  msgid "Events Tickets Plus"
813
  msgstr ""
814
 
815
- #: src/Tribe/Main.php:421
816
  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."
817
  msgstr ""
818
 
819
- #: src/Tribe/Main.php:423 src/Tribe/Main.php:428
820
  msgid "post a thread"
821
  msgstr ""
822
 
823
- #: src/Tribe/Main.php:424
824
  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)."
825
  msgstr ""
826
 
336
  msgid "RSVPs"
337
  msgstr ""
338
 
339
+ #: src/Tribe/Main.php:546
340
  msgid "Welcome to Event Tickets"
341
  msgstr ""
342
 
343
+ #: src/Tribe/Main.php:681
344
  msgctxt "button text"
345
  msgid "RSVP"
346
  msgstr ""
546
  msgid "Event Tickets allows your guests to RSVP from any post, page, or event."
547
  msgstr ""
548
 
549
+ #: src/Tribe/Main.php:681
550
  msgid "Buy"
551
  msgstr ""
552
 
680
  msgid "Free"
681
  msgstr "Kostenlos"
682
 
683
+ #: src/Tribe/Main.php:445
684
  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)."
685
  msgstr ""
686
 
764
  msgid "Cancel"
765
  msgstr "Abbrechen"
766
 
767
+ #: src/Tribe/Main.php:213
768
  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"
769
  msgstr ""
770
 
771
+ #: src/Tribe/Main.php:391
772
  msgid "Support for Event Tickets"
773
  msgstr ""
774
 
775
+ #: src/Tribe/Main.php:393
776
  msgid "Settings overview"
777
  msgstr ""
778
 
779
+ #: src/Tribe/Main.php:394
780
  msgid "Features overview"
781
  msgstr ""
782
 
783
+ #: src/Tribe/Main.php:395
784
  msgid "Troubleshooting common problems"
785
  msgstr ""
786
 
787
+ #: src/Tribe/Main.php:396
788
  msgid "Customizing Event Tickets"
789
  msgstr ""
790
 
791
+ #: src/Tribe/Main.php:413
792
  msgid "New User Primer"
793
  msgstr ""
794
 
795
+ #: src/Tribe/Main.php:415
796
  msgid "We are committed to helping you sell tickets for your event. Check out our handy %s to get started."
797
  msgstr ""
798
 
799
+ #: src/Tribe/Main.php:432
800
  msgid "open-source forum on WordPress.org"
801
  msgstr ""
802
 
803
+ #: src/Tribe/Main.php:433
804
  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."
805
  msgstr ""
806
 
807
+ #: src/Tribe/Main.php:435
808
  msgid "premium support on our website"
809
  msgstr ""
810
 
811
+ #: src/Tribe/Main.php:436
812
  msgid "Events Tickets Plus"
813
  msgstr ""
814
 
815
+ #: src/Tribe/Main.php:437
816
  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."
817
  msgstr ""
818
 
819
+ #: src/Tribe/Main.php:439 src/Tribe/Main.php:444
820
  msgid "post a thread"
821
  msgstr ""
822
 
823
+ #: src/Tribe/Main.php:440
824
  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)."
825
  msgstr ""
826
 
lang/event-tickets-es_ES.po CHANGED
@@ -336,11 +336,11 @@ msgctxt "post type label"
336
  msgid "RSVPs"
337
  msgstr ""
338
 
339
- #: src/Tribe/Main.php:530
340
  msgid "Welcome to Event Tickets"
341
  msgstr ""
342
 
343
- #: src/Tribe/Main.php:665
344
  msgctxt "button text"
345
  msgid "RSVP"
346
  msgstr ""
@@ -546,7 +546,7 @@ msgstr ""
546
  msgid "Event Tickets allows your guests to RSVP from any post, page, or event."
547
  msgstr ""
548
 
549
- #: src/Tribe/Main.php:665
550
  msgid "Buy"
551
  msgstr ""
552
 
@@ -680,7 +680,7 @@ msgstr ""
680
  msgid "Free"
681
  msgstr "Gratis"
682
 
683
- #: src/Tribe/Main.php:429
684
  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)."
685
  msgstr ""
686
 
@@ -764,63 +764,63 @@ msgstr ""
764
  msgid "Cancel"
765
  msgstr "Cancelar"
766
 
767
- #: src/Tribe/Main.php:197
768
  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"
769
  msgstr ""
770
 
771
- #: src/Tribe/Main.php:375
772
  msgid "Support for Event Tickets"
773
  msgstr ""
774
 
775
- #: src/Tribe/Main.php:377
776
  msgid "Settings overview"
777
  msgstr ""
778
 
779
- #: src/Tribe/Main.php:378
780
  msgid "Features overview"
781
  msgstr ""
782
 
783
- #: src/Tribe/Main.php:379
784
  msgid "Troubleshooting common problems"
785
  msgstr ""
786
 
787
- #: src/Tribe/Main.php:380
788
  msgid "Customizing Event Tickets"
789
  msgstr ""
790
 
791
- #: src/Tribe/Main.php:397
792
  msgid "New User Primer"
793
  msgstr ""
794
 
795
- #: src/Tribe/Main.php:399
796
  msgid "We are committed to helping you sell tickets for your event. Check out our handy %s to get started."
797
  msgstr ""
798
 
799
- #: src/Tribe/Main.php:416
800
  msgid "open-source forum on WordPress.org"
801
  msgstr ""
802
 
803
- #: src/Tribe/Main.php:417
804
  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."
805
  msgstr ""
806
 
807
- #: src/Tribe/Main.php:419
808
  msgid "premium support on our website"
809
  msgstr ""
810
 
811
- #: src/Tribe/Main.php:420
812
  msgid "Events Tickets Plus"
813
  msgstr ""
814
 
815
- #: src/Tribe/Main.php:421
816
  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."
817
  msgstr ""
818
 
819
- #: src/Tribe/Main.php:423 src/Tribe/Main.php:428
820
  msgid "post a thread"
821
  msgstr ""
822
 
823
- #: src/Tribe/Main.php:424
824
  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)."
825
  msgstr ""
826
 
336
  msgid "RSVPs"
337
  msgstr ""
338
 
339
+ #: src/Tribe/Main.php:546
340
  msgid "Welcome to Event Tickets"
341
  msgstr ""
342
 
343
+ #: src/Tribe/Main.php:681
344
  msgctxt "button text"
345
  msgid "RSVP"
346
  msgstr ""
546
  msgid "Event Tickets allows your guests to RSVP from any post, page, or event."
547
  msgstr ""
548
 
549
+ #: src/Tribe/Main.php:681
550
  msgid "Buy"
551
  msgstr ""
552
 
680
  msgid "Free"
681
  msgstr "Gratis"
682
 
683
+ #: src/Tribe/Main.php:445
684
  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)."
685
  msgstr ""
686
 
764
  msgid "Cancel"
765
  msgstr "Cancelar"
766
 
767
+ #: src/Tribe/Main.php:213
768
  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"
769
  msgstr ""
770
 
771
+ #: src/Tribe/Main.php:391
772
  msgid "Support for Event Tickets"
773
  msgstr ""
774
 
775
+ #: src/Tribe/Main.php:393
776
  msgid "Settings overview"
777
  msgstr ""
778
 
779
+ #: src/Tribe/Main.php:394
780
  msgid "Features overview"
781
  msgstr ""
782
 
783
+ #: src/Tribe/Main.php:395
784
  msgid "Troubleshooting common problems"
785
  msgstr ""
786
 
787
+ #: src/Tribe/Main.php:396
788
  msgid "Customizing Event Tickets"
789
  msgstr ""
790
 
791
+ #: src/Tribe/Main.php:413
792
  msgid "New User Primer"
793
  msgstr ""
794
 
795
+ #: src/Tribe/Main.php:415
796
  msgid "We are committed to helping you sell tickets for your event. Check out our handy %s to get started."
797
  msgstr ""
798
 
799
+ #: src/Tribe/Main.php:432
800
  msgid "open-source forum on WordPress.org"
801
  msgstr ""
802
 
803
+ #: src/Tribe/Main.php:433
804
  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."
805
  msgstr ""
806
 
807
+ #: src/Tribe/Main.php:435
808
  msgid "premium support on our website"
809
  msgstr ""
810
 
811
+ #: src/Tribe/Main.php:436
812
  msgid "Events Tickets Plus"
813
  msgstr ""
814
 
815
+ #: src/Tribe/Main.php:437
816
  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."
817
  msgstr ""
818
 
819
+ #: src/Tribe/Main.php:439 src/Tribe/Main.php:444
820
  msgid "post a thread"
821
  msgstr ""
822
 
823
+ #: src/Tribe/Main.php:440
824
  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)."
825
  msgstr ""
826
 
lang/event-tickets-nl_NL.po CHANGED
@@ -336,11 +336,11 @@ msgctxt "post type label"
336
  msgid "RSVPs"
337
  msgstr ""
338
 
339
- #: src/Tribe/Main.php:530
340
  msgid "Welcome to Event Tickets"
341
  msgstr ""
342
 
343
- #: src/Tribe/Main.php:665
344
  msgctxt "button text"
345
  msgid "RSVP"
346
  msgstr ""
@@ -546,7 +546,7 @@ msgstr ""
546
  msgid "Event Tickets allows your guests to RSVP from any post, page, or event."
547
  msgstr ""
548
 
549
- #: src/Tribe/Main.php:665
550
  msgid "Buy"
551
  msgstr ""
552
 
@@ -680,7 +680,7 @@ msgstr ""
680
  msgid "Free"
681
  msgstr "Gratis"
682
 
683
- #: src/Tribe/Main.php:429
684
  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)."
685
  msgstr ""
686
 
@@ -764,63 +764,63 @@ msgstr ""
764
  msgid "Cancel"
765
  msgstr "Annuleren"
766
 
767
- #: src/Tribe/Main.php:197
768
  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"
769
  msgstr ""
770
 
771
- #: src/Tribe/Main.php:375
772
  msgid "Support for Event Tickets"
773
  msgstr ""
774
 
775
- #: src/Tribe/Main.php:377
776
  msgid "Settings overview"
777
  msgstr ""
778
 
779
- #: src/Tribe/Main.php:378
780
  msgid "Features overview"
781
  msgstr ""
782
 
783
- #: src/Tribe/Main.php:379
784
  msgid "Troubleshooting common problems"
785
  msgstr ""
786
 
787
- #: src/Tribe/Main.php:380
788
  msgid "Customizing Event Tickets"
789
  msgstr ""
790
 
791
- #: src/Tribe/Main.php:397
792
  msgid "New User Primer"
793
  msgstr ""
794
 
795
- #: src/Tribe/Main.php:399
796
  msgid "We are committed to helping you sell tickets for your event. Check out our handy %s to get started."
797
  msgstr ""
798
 
799
- #: src/Tribe/Main.php:416
800
  msgid "open-source forum on WordPress.org"
801
  msgstr ""
802
 
803
- #: src/Tribe/Main.php:417
804
  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."
805
  msgstr ""
806
 
807
- #: src/Tribe/Main.php:419
808
  msgid "premium support on our website"
809
  msgstr ""
810
 
811
- #: src/Tribe/Main.php:420
812
  msgid "Events Tickets Plus"
813
  msgstr "Events Tickets Plus"
814
 
815
- #: src/Tribe/Main.php:421
816
  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."
817
  msgstr ""
818
 
819
- #: src/Tribe/Main.php:423 src/Tribe/Main.php:428
820
  msgid "post a thread"
821
  msgstr ""
822
 
823
- #: src/Tribe/Main.php:424
824
  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)."
825
  msgstr ""
826
 
336
  msgid "RSVPs"
337
  msgstr ""
338
 
339
+ #: src/Tribe/Main.php:546
340
  msgid "Welcome to Event Tickets"
341
  msgstr ""
342
 
343
+ #: src/Tribe/Main.php:681
344
  msgctxt "button text"
345
  msgid "RSVP"
346
  msgstr ""
546
  msgid "Event Tickets allows your guests to RSVP from any post, page, or event."
547
  msgstr ""
548
 
549
+ #: src/Tribe/Main.php:681
550
  msgid "Buy"
551
  msgstr ""
552
 
680
  msgid "Free"
681
  msgstr "Gratis"
682
 
683
+ #: src/Tribe/Main.php:445
684
  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)."
685
  msgstr ""
686
 
764
  msgid "Cancel"
765
  msgstr "Annuleren"
766
 
767
+ #: src/Tribe/Main.php:213
768
  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"
769
  msgstr ""
770
 
771
+ #: src/Tribe/Main.php:391
772
  msgid "Support for Event Tickets"
773
  msgstr ""
774
 
775
+ #: src/Tribe/Main.php:393
776
  msgid "Settings overview"
777
  msgstr ""
778
 
779
+ #: src/Tribe/Main.php:394
780
  msgid "Features overview"
781
  msgstr ""
782
 
783
+ #: src/Tribe/Main.php:395
784
  msgid "Troubleshooting common problems"
785
  msgstr ""
786
 
787
+ #: src/Tribe/Main.php:396
788
  msgid "Customizing Event Tickets"
789
  msgstr ""
790
 
791
+ #: src/Tribe/Main.php:413
792
  msgid "New User Primer"
793
  msgstr ""
794
 
795
+ #: src/Tribe/Main.php:415
796
  msgid "We are committed to helping you sell tickets for your event. Check out our handy %s to get started."
797
  msgstr ""
798
 
799
+ #: src/Tribe/Main.php:432
800
  msgid "open-source forum on WordPress.org"
801
  msgstr ""
802
 
803
+ #: src/Tribe/Main.php:433
804
  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."
805
  msgstr ""
806
 
807
+ #: src/Tribe/Main.php:435
808
  msgid "premium support on our website"
809
  msgstr ""
810
 
811
+ #: src/Tribe/Main.php:436
812
  msgid "Events Tickets Plus"
813
  msgstr "Events Tickets Plus"
814
 
815
+ #: src/Tribe/Main.php:437
816
  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."
817
  msgstr ""
818
 
819
+ #: src/Tribe/Main.php:439 src/Tribe/Main.php:444
820
  msgid "post a thread"
821
  msgstr ""
822
 
823
+ #: src/Tribe/Main.php:440
824
  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)."
825
  msgstr ""
826
 
lang/event-tickets.pot CHANGED
@@ -2,15 +2,16 @@
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.3\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/event-tickets\n"
7
- "POT-Creation-Date: 2016-10-13 12:47:26+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: 2016-10-13 12:47\n"
12
  "Last-Translator: \n"
13
  "Language-Team: \n"
 
14
 
15
  #: src/Tribe/Admin/Move_Ticket_Types.php:28
16
  msgid "Move Ticket Types"
@@ -22,7 +23,9 @@ msgid "All supported types"
22
  msgstr ""
23
 
24
  #: src/Tribe/Admin/Move_Ticket_Types.php:102
25
- msgid "Ticket type could not be moved: the ticket type or destination post was invalid."
 
 
26
  msgstr ""
27
 
28
  #: src/Tribe/Admin/Move_Ticket_Types.php:108
@@ -30,11 +33,17 @@ msgid "Ticket type could not be moved: unexpected failure during reassignment."
30
  msgstr ""
31
 
32
  #: src/Tribe/Admin/Move_Ticket_Types.php:114
33
- msgid "Ticket type %1$s for %2$s was successfully moved to %3$s. All previously sold tickets of this type have been transferred to %3$s. Please adjust stock manually as needed. %1$s ticket holders have received an email notifying them of the change. You may now close this window!"
 
 
 
 
34
  msgstr ""
35
 
36
  #: src/Tribe/Admin/Move_Ticket_Types.php:170
37
- msgid "Ticket type was moved to <a href=\"%1$s\" target=\"_blank\">%2$s</a> from <a href=\"%3$s\" target=\"_blank\">%4$s</a>"
 
 
38
  msgstr ""
39
 
40
  #: src/Tribe/Admin/Move_Ticket_Types.php:267
@@ -47,7 +56,9 @@ msgid "Move Attendees"
47
  msgstr ""
48
 
49
  #: src/Tribe/Admin/Move_Tickets.php:105
50
- msgid "Woops! We could not complete the requested operation due to an unforeseen problem."
 
 
51
  msgstr ""
52
 
53
  #: src/Tribe/Admin/Move_Tickets.php:107
@@ -72,11 +83,15 @@ msgid "Move"
72
  msgstr ""
73
 
74
  #: src/Tribe/Admin/Move_Tickets.php:422
75
- msgid "Tickets could not be moved: valid ticket IDs or a destination ID were not provided."
 
 
76
  msgstr ""
77
 
78
  #: src/Tribe/Admin/Move_Tickets.php:430
79
- msgid "Tickets could not be moved: there was an unexpected failure during reassignment."
 
 
80
  msgstr ""
81
 
82
  #: src/Tribe/Admin/Move_Tickets.php:438
@@ -90,8 +105,13 @@ msgid "moved to %s and"
90
  msgstr ""
91
 
92
  #: src/Tribe/Admin/Move_Tickets.php:452
93
- msgid "%1$s attendee for %2$s was successfully %3$s. Please adjust stock manually as needed. This attendee will receive an email notifying them of the change."
94
- msgid_plural "%1$s attendees for %2$s were successfully moved to %3$s. Please adjust stock manually as needed. These attendees will receive an email notifying them of the change."
 
 
 
 
 
95
  msgstr[0] ""
96
  msgstr[1] ""
97
 
@@ -256,83 +276,100 @@ msgstr ""
256
  msgid "Free"
257
  msgstr ""
258
 
259
- #: src/Tribe/Main.php:197
260
- 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"
 
 
261
  msgstr ""
262
 
263
- #: src/Tribe/Main.php:375
264
  msgid "Support for Event Tickets"
265
  msgstr ""
266
 
267
- #: src/Tribe/Main.php:377
268
  msgid "Settings overview"
269
  msgstr ""
270
 
271
- #: src/Tribe/Main.php:378
272
  msgid "Features overview"
273
  msgstr ""
274
 
275
- #: src/Tribe/Main.php:379
276
  msgid "Troubleshooting common problems"
277
  msgstr ""
278
 
279
- #: src/Tribe/Main.php:380
280
  msgid "Customizing Event Tickets"
281
  msgstr ""
282
 
283
- #: src/Tribe/Main.php:397
284
  msgid "New User Primer"
285
  msgstr ""
286
 
287
- #: src/Tribe/Main.php:399
288
- msgid "We are committed to helping you sell tickets for your event. Check out our handy %s to get started."
 
 
289
  msgstr ""
290
 
291
- #: src/Tribe/Main.php:416
292
  msgid "open-source forum on WordPress.org"
293
  msgstr ""
294
 
295
- #: src/Tribe/Main.php:417
296
- 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."
 
 
 
297
  msgstr ""
298
 
299
- #: src/Tribe/Main.php:419
300
  msgid "premium support on our website"
301
  msgstr ""
302
 
303
- #: src/Tribe/Main.php:420
304
  msgid "Events Tickets Plus"
305
  msgstr ""
306
 
307
- #: src/Tribe/Main.php:421
308
- 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."
 
 
 
309
  msgstr ""
310
 
311
- #: src/Tribe/Main.php:423 src/Tribe/Main.php:428
312
  msgid "post a thread"
313
  msgstr ""
314
 
315
- #: src/Tribe/Main.php:424
316
- 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)."
 
 
 
317
  msgstr ""
318
 
319
- #: src/Tribe/Main.php:429
320
- 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)."
 
 
 
321
  msgstr ""
322
 
323
- #: src/Tribe/Main.php:443
 
324
  msgid "Event Tickets"
325
  msgstr ""
326
 
327
- #: src/Tribe/Main.php:530
328
  msgid "Welcome to Event Tickets"
329
  msgstr ""
330
 
331
- #: src/Tribe/Main.php:665
332
  msgid "Buy"
333
  msgstr ""
334
 
335
- #: src/Tribe/Main.php:665
336
  msgctxt "button text"
337
  msgid "RSVP"
338
  msgstr ""
@@ -350,7 +387,9 @@ msgid "Set as ticket header"
350
  msgstr ""
351
 
352
  #: src/Tribe/Metabox.php:92
353
- msgid "It looks like you have modified your global stock settings but have not saved or updated the post."
 
 
354
  msgstr ""
355
 
356
  #: src/Tribe/Metabox.php:119
@@ -399,7 +438,8 @@ msgid "You confirmed you will not be attending %s"
399
  msgstr ""
400
 
401
  #: src/Tribe/RSVP.php:961
402
- msgid "Your RSVP has been received! Check your email for your RSVP confirmation."
 
403
  msgstr ""
404
 
405
  #: src/Tribe/RSVP.php:967
@@ -518,7 +558,10 @@ msgid "Columns"
518
  msgstr ""
519
 
520
  #: src/Tribe/Tickets_Handler.php:210
521
- 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."
 
 
 
522
  msgstr ""
523
 
524
  #: src/Tribe/Tickets_Handler.php:365
@@ -623,7 +666,10 @@ msgid "We Need Your Help"
623
  msgstr ""
624
 
625
  #: src/admin-views/admin-welcome-message.php:19
626
- msgid "Your ratings help us bring The Events Calendar to more users. More happy users mean more support, more features, and more of everything you know and love about Event Tickets. We couldn't do this without your support."
 
 
 
627
  msgstr ""
628
 
629
  #: src/admin-views/admin-welcome-message.php:20
@@ -639,7 +685,9 @@ msgid "Newsletter Signup"
639
  msgstr ""
640
 
641
  #: src/admin-views/admin-welcome-message.php:25
642
- msgid "Stay in touch with Event Tickets Plus. We send out periodic updates, key developer notices, and even the occasional discount."
 
 
643
  msgstr ""
644
 
645
  #: src/admin-views/admin-welcome-message.php:29
@@ -760,7 +808,9 @@ msgid "Move"
760
  msgstr ""
761
 
762
  #: src/admin-views/meta-box.php:31
763
- msgid "This event was created using Community Events. Are you sure you want to sell tickets for it?"
 
 
764
  msgstr ""
765
 
766
  #: src/admin-views/meta-box.php:42
@@ -768,7 +818,10 @@ msgid "Upload image for the ticket header."
768
  msgstr ""
769
 
770
  #: src/admin-views/meta-box.php:43
771
- msgid "The maximum image size in the email will be 580px wide by any height, and then scaled for mobile. If you would like \"retina\" support use an image sized to 1160px wide."
 
 
 
772
  msgstr ""
773
 
774
  #: src/admin-views/meta-box.php:46
@@ -826,7 +879,9 @@ msgid "When will ticket sales occur?"
826
  msgstr ""
827
 
828
  #: src/admin-views/meta-box.php:212
829
- msgid "If you don't set a start/end date for sales, tickets will be available from now until the event ends."
 
 
830
  msgstr ""
831
 
832
  #: src/admin-views/meta-box.php:232
@@ -842,12 +897,18 @@ msgid "No attendees specified! Please try again."
842
  msgstr ""
843
 
844
  #: src/admin-views/move-tickets.php:25
845
- msgid "You have specified a range of attendees that are managed by different providers. It is not currently possible to move these together."
 
 
846
  msgstr ""
847
 
848
  #: src/admin-views/move-tickets.php:30
849
- msgid "You have selected %1$s ticket for %2$s. You can move it to a different ticket type within the same event, or to a different event."
850
- msgid_plural "You have selected %1$s tickets for %2$s. You can move them to a different ticket type within the same event, or to a different event."
 
 
 
 
851
  msgstr[0] ""
852
  msgstr[1] ""
853
 
@@ -864,7 +925,9 @@ msgid "You can optionally focus on a specific post type:"
864
  msgstr ""
865
 
866
  #: src/admin-views/move-tickets.php:59
867
- msgid "You can also enter keywords to help find the target event by title or description:"
 
 
868
  msgstr ""
869
 
870
  #: src/admin-views/move-tickets.php:64
@@ -899,15 +962,23 @@ msgid "Stock:"
899
  msgstr ""
900
 
901
  #: src/admin-views/rsvp-metabox-advanced.php:6
902
- msgid "(Total available # of this ticket type. Once they're gone, ticket type is sold out.)"
 
 
903
  msgstr ""
904
 
905
  #: src/admin-views/rsvp-metabox-advanced.php:13
906
- msgid "Currently, tickets will only show up on the frontend once per full event. For PRO users this means the same ticket will appear across all events in the series. Please configure your events accordingly."
 
 
 
907
  msgstr ""
908
 
909
  #: src/admin-views/rsvp-metabox-advanced.php:15
910
- msgid "If you are creating a recurring event, tickets will only show up once per Event Series, meaning that the same ticket will apper across all events. Please configure your events accordingly."
 
 
 
911
  msgstr ""
912
 
913
  #: src/admin-views/rsvp-metabox-advanced.php:22
@@ -943,7 +1014,10 @@ msgid "Login requirements"
943
  msgstr ""
944
 
945
  #: src/admin-views/tribe-options-tickets.php:69
946
- msgid "You can require that users log into your site before they are able to RSVP (or buy tickets). Please review your WordPress Membership option (via the General Settings admin screen) before adjusting this setting."
 
 
 
947
  msgstr ""
948
 
949
  #: src/template-tags/tickets.php:221
@@ -986,7 +1060,8 @@ msgid "Your tickets"
986
  msgstr ""
987
 
988
  #: src/views/tickets/email-non-attendance.php:248
989
- msgid "Thank you for confirming that you will not be attending the above event."
 
990
  msgstr ""
991
 
992
  #: src/views/tickets/email-ticket-type-moved.php:93
@@ -995,8 +1070,14 @@ msgid "Important changes to your tickets"
995
  msgstr ""
996
 
997
  #: src/views/tickets/email-ticket-type-moved.php:97
998
- msgid "We wanted to let you know that your ticket for %2$s has been transfered to %3$s%4$s. Your ticket remains valid and no further action is needed on your part."
999
- msgid_plural "We wanted to let you know that your %1$s tickets for %2$s have been transfered to %3$s%4$s. Your existing tickets remain valid and no further action is needed on your part."
 
 
 
 
 
 
1000
  msgstr[0] ""
1001
  msgstr[1] ""
1002
 
@@ -1006,8 +1087,14 @@ msgid " (taking place on %s)"
1006
  msgstr ""
1007
 
1008
  #: src/views/tickets/email-tickets-moved.php:99
1009
- msgid "We wanted to let you know that a ticket you purchased for %2$s has been transfered to %3$s%4$s. Your ticket remains valid and no further action is needed on your part:"
1010
- msgid_plural "We wanted to let you know that the following %1$s tickets for %2$s have been transfered to %3$s%4$s. Your existing tickets remain valid and no further action is needed on your part:"
 
 
 
 
 
 
1011
  msgstr[0] ""
1012
  msgstr[1] ""
1013
 
@@ -1117,9 +1204,6 @@ msgstr ""
1117
  #: src/views/tickets/rsvp.php:151
1118
  msgid "Confirm RSVP"
1119
  msgstr ""
1120
- #. Plugin Name of the plugin/theme
1121
- msgid "Event Tickets"
1122
- msgstr ""
1123
 
1124
  #. Description of the plugin/theme
1125
  msgid "Event Tickets allows your guests to RSVP from any post, page, or event."
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.3.1\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/event-tickets\n"
7
+ "POT-Creation-Date: 2016-10-20 07:27-0700\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: 2016-10-20 07:27-0700\n"
12
  "Last-Translator: \n"
13
  "Language-Team: \n"
14
+ "X-Generator: Poedit 1.8.7.1\n"
15
 
16
  #: src/Tribe/Admin/Move_Ticket_Types.php:28
17
  msgid "Move Ticket Types"
23
  msgstr ""
24
 
25
  #: src/Tribe/Admin/Move_Ticket_Types.php:102
26
+ msgid ""
27
+ "Ticket type could not be moved: the ticket type or destination post was "
28
+ "invalid."
29
  msgstr ""
30
 
31
  #: src/Tribe/Admin/Move_Ticket_Types.php:108
33
  msgstr ""
34
 
35
  #: src/Tribe/Admin/Move_Ticket_Types.php:114
36
+ msgid ""
37
+ "Ticket type %1$s for %2$s was successfully moved to %3$s. All previously "
38
+ "sold tickets of this type have been transferred to %3$s. Please adjust stock "
39
+ "manually as needed. %1$s ticket holders have received an email notifying "
40
+ "them of the change. You may now close this window!"
41
  msgstr ""
42
 
43
  #: src/Tribe/Admin/Move_Ticket_Types.php:170
44
+ msgid ""
45
+ "Ticket type was moved to <a href=\"%1$s\" target=\"_blank\">%2$s</a> from <a "
46
+ "href=\"%3$s\" target=\"_blank\">%4$s</a>"
47
  msgstr ""
48
 
49
  #: src/Tribe/Admin/Move_Ticket_Types.php:267
56
  msgstr ""
57
 
58
  #: src/Tribe/Admin/Move_Tickets.php:105
59
+ msgid ""
60
+ "Woops! We could not complete the requested operation due to an unforeseen "
61
+ "problem."
62
  msgstr ""
63
 
64
  #: src/Tribe/Admin/Move_Tickets.php:107
83
  msgstr ""
84
 
85
  #: src/Tribe/Admin/Move_Tickets.php:422
86
+ msgid ""
87
+ "Tickets could not be moved: valid ticket IDs or a destination ID were not "
88
+ "provided."
89
  msgstr ""
90
 
91
  #: src/Tribe/Admin/Move_Tickets.php:430
92
+ msgid ""
93
+ "Tickets could not be moved: there was an unexpected failure during "
94
+ "reassignment."
95
  msgstr ""
96
 
97
  #: src/Tribe/Admin/Move_Tickets.php:438
105
  msgstr ""
106
 
107
  #: src/Tribe/Admin/Move_Tickets.php:452
108
+ msgid ""
109
+ "%1$s attendee for %2$s was successfully %3$s. Please adjust stock manually "
110
+ "as needed. This attendee will receive an email notifying them of the change."
111
+ msgid_plural ""
112
+ "%1$s attendees for %2$s were successfully moved to %3$s. Please adjust stock "
113
+ "manually as needed. These attendees will receive an email notifying them of "
114
+ "the change."
115
  msgstr[0] ""
116
  msgstr[1] ""
117
 
276
  msgid "Free"
277
  msgstr ""
278
 
279
+ #: src/Tribe/Main.php:213
280
+ msgid ""
281
+ "When The Events Calendar and Event Tickets are both activated, The Events "
282
+ "Calendar must be running version %1$s or greater. Please %2$supdate now.%3$s"
283
  msgstr ""
284
 
285
+ #: src/Tribe/Main.php:391
286
  msgid "Support for Event Tickets"
287
  msgstr ""
288
 
289
+ #: src/Tribe/Main.php:393
290
  msgid "Settings overview"
291
  msgstr ""
292
 
293
+ #: src/Tribe/Main.php:394
294
  msgid "Features overview"
295
  msgstr ""
296
 
297
+ #: src/Tribe/Main.php:395
298
  msgid "Troubleshooting common problems"
299
  msgstr ""
300
 
301
+ #: src/Tribe/Main.php:396
302
  msgid "Customizing Event Tickets"
303
  msgstr ""
304
 
305
+ #: src/Tribe/Main.php:413
306
  msgid "New User Primer"
307
  msgstr ""
308
 
309
+ #: src/Tribe/Main.php:415
310
+ msgid ""
311
+ "We are committed to helping you sell tickets for your event. Check out our "
312
+ "handy %s to get started."
313
  msgstr ""
314
 
315
+ #: src/Tribe/Main.php:432
316
  msgid "open-source forum on WordPress.org"
317
  msgstr ""
318
 
319
+ #: src/Tribe/Main.php:433
320
+ msgid ""
321
+ "If you have tried the above steps and are still having trouble, you can post "
322
+ "a new thread to our %s. Our support staff monitors these forums once a week "
323
+ "and would be happy to assist you there."
324
  msgstr ""
325
 
326
+ #: src/Tribe/Main.php:435
327
  msgid "premium support on our website"
328
  msgstr ""
329
 
330
+ #: src/Tribe/Main.php:436
331
  msgid "Events Tickets Plus"
332
  msgstr ""
333
 
334
+ #: src/Tribe/Main.php:437
335
+ msgid ""
336
+ "Looking for more immediate support? We offer %1$s with the purchase of any "
337
+ "of our premium plugins (like %2$s). Pick up a license and you can post there "
338
+ "directly and expect a response within 24-48 hours during weekdays."
339
  msgstr ""
340
 
341
+ #: src/Tribe/Main.php:439 src/Tribe/Main.php:444
342
  msgid "post a thread"
343
  msgstr ""
344
 
345
+ #: src/Tribe/Main.php:440
346
+ msgid ""
347
+ "Already have Events Tickets Plus? You can %s in our premium support forums. "
348
+ "Our support team monitors the forums and will respond to your thread within "
349
+ "24-48 hours (during the week)."
350
  msgstr ""
351
 
352
+ #: src/Tribe/Main.php:445
353
+ msgid ""
354
+ "If you have a valid license for one of our paid plugins, you can %s in our "
355
+ "premium support forums. Our support team monitors the forums and will "
356
+ "respond to your thread within 24-48 hours (during the week)."
357
  msgstr ""
358
 
359
+ #. Plugin Name of the plugin/theme
360
+ #: src/Tribe/Main.php:459
361
  msgid "Event Tickets"
362
  msgstr ""
363
 
364
+ #: src/Tribe/Main.php:546
365
  msgid "Welcome to Event Tickets"
366
  msgstr ""
367
 
368
+ #: src/Tribe/Main.php:681
369
  msgid "Buy"
370
  msgstr ""
371
 
372
+ #: src/Tribe/Main.php:681
373
  msgctxt "button text"
374
  msgid "RSVP"
375
  msgstr ""
387
  msgstr ""
388
 
389
  #: src/Tribe/Metabox.php:92
390
+ msgid ""
391
+ "It looks like you have modified your global stock settings but have not "
392
+ "saved or updated the post."
393
  msgstr ""
394
 
395
  #: src/Tribe/Metabox.php:119
438
  msgstr ""
439
 
440
  #: src/Tribe/RSVP.php:961
441
+ msgid ""
442
+ "Your RSVP has been received! Check your email for your RSVP confirmation."
443
  msgstr ""
444
 
445
  #: src/Tribe/RSVP.php:967
558
  msgstr ""
559
 
560
  #: src/Tribe/Tickets_Handler.php:210
561
+ msgid ""
562
+ "You can use Screen Options to select which columns you want to see. The "
563
+ "selection works in the table below, in the email, for print and for the CSV "
564
+ "export."
565
  msgstr ""
566
 
567
  #: src/Tribe/Tickets_Handler.php:365
666
  msgstr ""
667
 
668
  #: src/admin-views/admin-welcome-message.php:19
669
+ msgid ""
670
+ "Your ratings help us bring The Events Calendar to more users. More happy "
671
+ "users mean more support, more features, and more of everything you know and "
672
+ "love about Event Tickets. We couldn't do this without your support."
673
  msgstr ""
674
 
675
  #: src/admin-views/admin-welcome-message.php:20
685
  msgstr ""
686
 
687
  #: src/admin-views/admin-welcome-message.php:25
688
+ msgid ""
689
+ "Stay in touch with Event Tickets Plus. We send out periodic updates, key "
690
+ "developer notices, and even the occasional discount."
691
  msgstr ""
692
 
693
  #: src/admin-views/admin-welcome-message.php:29
808
  msgstr ""
809
 
810
  #: src/admin-views/meta-box.php:31
811
+ msgid ""
812
+ "This event was created using Community Events. Are you sure you want to sell "
813
+ "tickets for it?"
814
  msgstr ""
815
 
816
  #: src/admin-views/meta-box.php:42
818
  msgstr ""
819
 
820
  #: src/admin-views/meta-box.php:43
821
+ msgid ""
822
+ "The maximum image size in the email will be 580px wide by any height, and "
823
+ "then scaled for mobile. If you would like \"retina\" support use an image "
824
+ "sized to 1160px wide."
825
  msgstr ""
826
 
827
  #: src/admin-views/meta-box.php:46
879
  msgstr ""
880
 
881
  #: src/admin-views/meta-box.php:212
882
+ msgid ""
883
+ "If you don't set a start/end date for sales, tickets will be available from "
884
+ "now until the event ends."
885
  msgstr ""
886
 
887
  #: src/admin-views/meta-box.php:232
897
  msgstr ""
898
 
899
  #: src/admin-views/move-tickets.php:25
900
+ msgid ""
901
+ "You have specified a range of attendees that are managed by different "
902
+ "providers. It is not currently possible to move these together."
903
  msgstr ""
904
 
905
  #: src/admin-views/move-tickets.php:30
906
+ msgid ""
907
+ "You have selected %1$s ticket for %2$s. You can move it to a different "
908
+ "ticket type within the same event, or to a different event."
909
+ msgid_plural ""
910
+ "You have selected %1$s tickets for %2$s. You can move them to a different "
911
+ "ticket type within the same event, or to a different event."
912
  msgstr[0] ""
913
  msgstr[1] ""
914
 
925
  msgstr ""
926
 
927
  #: src/admin-views/move-tickets.php:59
928
+ msgid ""
929
+ "You can also enter keywords to help find the target event by title or "
930
+ "description:"
931
  msgstr ""
932
 
933
  #: src/admin-views/move-tickets.php:64
962
  msgstr ""
963
 
964
  #: src/admin-views/rsvp-metabox-advanced.php:6
965
+ msgid ""
966
+ "(Total available # of this ticket type. Once they're gone, ticket type is "
967
+ "sold out.)"
968
  msgstr ""
969
 
970
  #: src/admin-views/rsvp-metabox-advanced.php:13
971
+ msgid ""
972
+ "Currently, tickets will only show up on the frontend once per full event. "
973
+ "For PRO users this means the same ticket will appear across all events in "
974
+ "the series. Please configure your events accordingly."
975
  msgstr ""
976
 
977
  #: src/admin-views/rsvp-metabox-advanced.php:15
978
+ msgid ""
979
+ "If you are creating a recurring event, tickets will only show up once per "
980
+ "Event Series, meaning that the same ticket will apper across all events. "
981
+ "Please configure your events accordingly."
982
  msgstr ""
983
 
984
  #: src/admin-views/rsvp-metabox-advanced.php:22
1014
  msgstr ""
1015
 
1016
  #: src/admin-views/tribe-options-tickets.php:69
1017
+ msgid ""
1018
+ "You can require that users log into your site before they are able to RSVP "
1019
+ "(or buy tickets). Please review your WordPress Membership option (via the "
1020
+ "General Settings admin screen) before adjusting this setting."
1021
  msgstr ""
1022
 
1023
  #: src/template-tags/tickets.php:221
1060
  msgstr ""
1061
 
1062
  #: src/views/tickets/email-non-attendance.php:248
1063
+ msgid ""
1064
+ "Thank you for confirming that you will not be attending the above event."
1065
  msgstr ""
1066
 
1067
  #: src/views/tickets/email-ticket-type-moved.php:93
1070
  msgstr ""
1071
 
1072
  #: src/views/tickets/email-ticket-type-moved.php:97
1073
+ msgid ""
1074
+ "We wanted to let you know that your ticket for %2$s has been transfered to "
1075
+ "%3$s%4$s. Your ticket remains valid and no further action is needed on your "
1076
+ "part."
1077
+ msgid_plural ""
1078
+ "We wanted to let you know that your %1$s tickets for %2$s have been "
1079
+ "transfered to %3$s%4$s. Your existing tickets remain valid and no further "
1080
+ "action is needed on your part."
1081
  msgstr[0] ""
1082
  msgstr[1] ""
1083
 
1087
  msgstr ""
1088
 
1089
  #: src/views/tickets/email-tickets-moved.php:99
1090
+ msgid ""
1091
+ "We wanted to let you know that a ticket you purchased for %2$s has been "
1092
+ "transfered to %3$s%4$s. Your ticket remains valid and no further action is "
1093
+ "needed on your part:"
1094
+ msgid_plural ""
1095
+ "We wanted to let you know that the following %1$s tickets for %2$s have been "
1096
+ "transfered to %3$s%4$s. Your existing tickets remain valid and no further "
1097
+ "action is needed on your part:"
1098
  msgstr[0] ""
1099
  msgstr[1] ""
1100
 
1204
  #: src/views/tickets/rsvp.php:151
1205
  msgid "Confirm RSVP"
1206
  msgstr ""
 
 
 
1207
 
1208
  #. Description of the plugin/theme
1209
  msgid "Event Tickets allows your guests to RSVP from any post, page, or event."
readme.txt CHANGED
@@ -4,7 +4,7 @@ Contributors: ModernTribe, borkweb, zbtirrell, barry.hughes, bordoni, brianjesse
4
  Tags: events, add-on, ticket sales, tickets, calendar, community, registration, api, dates, date, posts, workshop, conference, meeting, seminar, concert, summit, The Events Calendar, Events Calendar PRO, ticket integration, event ticketing, RSVP, Event Tickets, Event Tickets Plus
5
  Requires at least: 3.9
6
  Tested up to: 4.6.1
7
- Stable tag: 4.3
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -207,6 +207,12 @@ Our Premium Plugins:
207
 
208
  == Changelog ==
209
 
 
 
 
 
 
 
210
  = [4.3] 2016-10-13 =
211
 
212
  * Feature - Add ticket management facilities allowing reassignment to different posts [61724]
4
  Tags: events, add-on, ticket sales, tickets, calendar, community, registration, api, dates, date, posts, workshop, conference, meeting, seminar, concert, summit, The Events Calendar, Events Calendar PRO, ticket integration, event ticketing, RSVP, Event Tickets, Event Tickets Plus
5
  Requires at least: 3.9
6
  Tested up to: 4.6.1
7
+ Stable tag: 4.3.1
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
207
 
208
  == Changelog ==
209
 
210
+ = [4.3.1] 2016-10-20 =
211
+
212
+ * Tweak - Registered plugin as active with Tribe Common. [66657]
213
+ * Fix - When searching in the attendees list the ticket meta details can still be toggled after search [61783]
214
+ * Fix - Fixed an issue where long file names would break plugin updates on some Windows installations [62552]
215
+
216
  = [4.3] 2016-10-13 =
217
 
218
  * Feature - Add ticket management facilities allowing reassignment to different posts [61724]
src/Tribe/Main.php CHANGED
@@ -9,7 +9,7 @@ class Tribe__Tickets__Main {
9
  /**
10
  * Current version of this plugin
11
  */
12
- const VERSION = '4.3';
13
 
14
  /**
15
  * Min required The Events Calendar version
@@ -153,6 +153,8 @@ class Tribe__Tickets__Main {
153
 
154
  $this->hooks();
155
 
 
 
156
  $this->has_initialized = true;
157
 
158
  $this->rsvp();
@@ -169,6 +171,20 @@ class Tribe__Tickets__Main {
169
  do_action( 'tribe_tickets_plugin_loaded' );
170
  }
171
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
172
  /**
173
  * Hooked to admin_notices, this error is thrown when Event Tickets is run alongside a version of
174
  * TEC that is too old
9
  /**
10
  * Current version of this plugin
11
  */
12
+ const VERSION = '4.3.1';
13
 
14
  /**
15
  * Min required The Events Calendar version
153
 
154
  $this->hooks();
155
 
156
+ $this->register_active_plugin();
157
+
158
  $this->has_initialized = true;
159
 
160
  $this->rsvp();
171
  do_action( 'tribe_tickets_plugin_loaded' );
172
  }
173
 
174
+
175
+ /**
176
+ * Registers this plugin as being active for other tribe plugins and extensions
177
+ *
178
+ * @return bool Indicates if Tribe Common wants the plugin to run
179
+ */
180
+ public function register_active_plugin() {
181
+ if ( ! function_exists( 'tribe_register_plugin' ) ) {
182
+ return true;
183
+ }
184
+
185
+ return tribe_register_plugin( EVENT_TICKETS_MAIN_PLUGIN_FILE, __CLASS__, self::VERSION );
186
+ }
187
+
188
  /**
189
  * Hooked to admin_notices, this error is thrown when Event Tickets is run alongside a version of
190
  * TEC that is too old
src/resources/js/tickets-attendees.js CHANGED
@@ -53,6 +53,17 @@ var tribe_event_tickets_attendees = tribe_event_tickets_attendees || {};
53
  var $row = $( this );
54
  var $status_column = $row.find( 'td.status' );
55
 
 
 
 
 
 
 
 
 
 
 
 
56
  // No status column? It's probably a special hidden row (ie, used as a container
57
  // for ticket meta data or similar): hide it and move on
58
  if ( ! $status_column.length ) {
53
  var $row = $( this );
54
  var $status_column = $row.find( 'td.status' );
55
 
56
+ //if tickets meta row remove open class and do not use hide() on it
57
+ if ( $( $row ).hasClass( 'event-tickets-meta-row' ) ) {
58
+ $( $row ).removeClass( 'event-tickets-meta-toggle-open' );
59
+ return;
60
+ }
61
+
62
+ //if main ticket row remove tickets meta row open class to set back to closed state for view details
63
+ if ( $( $row ).hasClass( 'event-tickets-meta-toggle-open' ) ) {
64
+ $( $row ).removeClass( 'event-tickets-meta-toggle-open' );
65
+ }
66
+
67
  // No status column? It's probably a special hidden row (ie, used as a container
68
  // for ticket meta data or similar): hide it and move on
69
  if ( ! $status_column.length ) {
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,a=Attendees.move_url.replace("&TB_",r+"&TB_");tb_show(null,a,!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.print()});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(!i.length)return void n.hide();var r=n.children("td.status").text().toLowerCase().trim(),a=n.children("td.ticket").text().toLowerCase().trim(),o=n.children("td.security").text().toLowerCase().trim(),c=0===a.indexOf(e)||0===r.indexOf(e)||0===r.indexOf("#"+e)||0===o.indexOf(e),d=n.children("td.purchaser").text().toLowerCase().trim(),s=0===d.indexOf(e)||d.indexOf(" "+e)>1;c||s?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-"+n.attr("data-provider"),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.parent("td").parent("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-"+n.attr("data-provider"),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.parent("span").parent("td").parent("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 a=[];r.each(function(){var e=t(this).val().match(/^[0-9]+/);e&&a.push(e.toString())}),n(a)}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:o};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),d=t('<tr id="ticket-history-'+o+'"> <td colspan="'+c+'">'+n.data.html+"</td></tr>");d.hide().insertAfter(i).slideDown(),r.hide(),a.show()}})}var r=t(this),a=r.siblings(".hide-ticket-history"),o=parseInt(r.data("ticket-id"),10),c=r.data("check");if(o&&c){var d=t(document.getElementById("ticket-history-"+o));return d.length?(d.show(),r.hide(),a.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);
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 a="&ticket_ids="+e.join("|")+"&width="+n+"&height="+i,r=Attendees.move_url.replace("&TB_",a+"&TB_");tb_show(null,r,!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.print()});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 a=n.children("td.status").text().toLowerCase().trim(),r=n.children("td.ticket").text().toLowerCase().trim(),o=n.children("td.security").text().toLowerCase().trim(),c=0===r.indexOf(e)||0===a.indexOf(e)||0===a.indexOf("#"+e)||0===o.indexOf(e),s=n.children("td.purchaser").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-"+n.attr("data-provider"),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.parent("td").parent("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-"+n.attr("data-provider"),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.parent("span").parent("td").parent("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 a=jQuery('input[name="attendee[]"]:checked');if(a.length){var r=[];a.each(function(){var e=t(this).val().match(/^[0-9]+/);e&&r.push(e.toString())}),n(r)}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:o};t.post(ajaxurl,n,function(n){if("undefined"!=typeof n.data&&"string"==typeof n.data.html){var i=a.parents("tr"),c=e.count_columns(i),s=t('<tr id="ticket-history-'+o+'"> <td colspan="'+c+'">'+n.data.html+"</td></tr>");s.hide().insertAfter(i).slideDown(),a.hide(),r.show()}})}var a=t(this),r=a.siblings(".hide-ticket-history"),o=parseInt(a.data("ticket-id"),10),c=a.data("check");if(o&&c){var s=t(document.getElementById("ticket-history-"+o));return s.length?(s.show(),a.hide(),r.show()):i(),n.stopPropagation(),!1}}),i.click(function(e){var n=t(this),i=n.siblings(".ticket-history"),a=parseInt(i.data("ticket-id"),10);t(document.getElementById("ticket-history-"+a)).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 a=i.match(/^[0-9]+/);a.length&&-1!==e.indexOf(parseInt(a[0],10))&&n.remove()}})},t(document).ready(n)}(jQuery,tribe_event_tickets_attendees);