Event Tickets - Version 4.8.1

Version Description

Download this release

Release Info

Developer brianjessee
Plugin Icon 128x128 Event Tickets
Version 4.8.1
Comparing to
See all releases

Code changes from version 4.8 to 4.8.1

Files changed (106) hide show
  1. common/readme.txt +8 -1
  2. common/src/Tribe/Abstract_Deactivation.php +0 -0
  3. common/src/Tribe/App_Shop.php +0 -0
  4. common/src/Tribe/Autoloader.php +0 -0
  5. common/src/Tribe/Cache.php +0 -0
  6. common/src/Tribe/Cache_Listener.php +0 -0
  7. common/src/Tribe/Changelog_Reader.php +0 -0
  8. common/src/Tribe/Credits.php +0 -0
  9. common/src/Tribe/Date_Utils.php +0 -0
  10. common/src/Tribe/Field.php +0 -0
  11. common/src/Tribe/JSON_LD/Abstract.php +0 -0
  12. common/src/Tribe/Main.php +1 -1
  13. common/src/Tribe/PUE/Checker.php +0 -0
  14. common/src/Tribe/PUE/Plugin_Info.php +0 -0
  15. common/src/Tribe/PUE/Utility.php +0 -0
  16. common/src/Tribe/Settings.php +0 -0
  17. common/src/Tribe/Settings_Tab.php +0 -0
  18. common/src/Tribe/Support.php +0 -0
  19. common/src/Tribe/Template.php +269 -40
  20. common/src/Tribe/Template_Factory.php +0 -0
  21. common/src/Tribe/Template_Part_Cache.php +0 -0
  22. common/src/Tribe/Validate.php +0 -0
  23. common/src/Tribe/Validator/Base.php +45 -0
  24. common/src/Tribe/View_Helpers.php +4 -3
  25. common/src/admin-views/tribe-options-display.php +0 -0
  26. common/src/admin-views/tribe-options-general.php +0 -0
  27. common/src/admin-views/tribe-options-help.php +0 -0
  28. common/src/admin-views/tribe-options-licenses.php +0 -0
  29. common/src/admin-views/tribe-options-network.php +0 -0
  30. common/src/functions/template-tags/date.php +0 -0
  31. common/src/functions/template-tags/general.php +0 -0
  32. common/src/functions/utils.php +26 -0
  33. common/tribe-common.php +1 -1
  34. common/vendor/attrchange/js/attrchange.js +0 -0
  35. common/vendor/attrchange/js/attrchange_ext.js +0 -0
  36. common/vendor/autoload.php +0 -0
  37. common/vendor/jquery-tribe-timepicker/jquery.timepicker.css +0 -0
  38. common/vendor/jquery-tribe-timepicker/lib/bootstrap-datepicker.js +0 -0
  39. common/vendor/jquery-tribe-timepicker/lib/glyphicons-halflings.png +0 -0
  40. common/vendor/jquery-tribe-timepicker/lib/screenshot.png +0 -0
  41. common/vendor/jquery/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  42. common/vendor/jquery/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  43. common/vendor/jquery/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  44. common/vendor/jquery/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  45. common/vendor/jquery/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  46. common/vendor/jquery/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  47. common/vendor/jquery/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  48. common/vendor/jquery/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  49. common/vendor/jquery/images/ui-icons_222222_256x240.png +0 -0
  50. common/vendor/jquery/images/ui-icons_2e83ff_256x240.png +0 -0
  51. common/vendor/jquery/images/ui-icons_454545_256x240.png +0 -0
  52. common/vendor/jquery/images/ui-icons_888888_256x240.png +0 -0
  53. common/vendor/jquery/images/ui-icons_cd0a0a_256x240.png +0 -0
  54. common/vendor/jquery/ui.theme.css +0 -0
  55. event-tickets.php +1 -1
  56. lang/event-tickets-de_DE.mo +0 -0
  57. lang/event-tickets-de_DE.po +31 -31
  58. readme.txt +8 -1
  59. src/Tribe/Attendees_Table.php +0 -0
  60. src/Tribe/Commerce/PayPal/Attendance_Totals.php +3 -3
  61. src/Tribe/Commerce/PayPal/Frontend/Tickets_Form.php +6 -8
  62. src/Tribe/Main.php +2 -2
  63. src/Tribe/Metabox.php +0 -0
  64. src/Tribe/RSVP.php +3 -3
  65. src/Tribe/RSVP/Attendance_Totals.php +2 -2
  66. src/Tribe/Ticket_Object.php +0 -0
  67. src/Tribe/Tickets.php +7 -5
  68. src/Tribe/Tickets_Handler.php +30 -0
  69. src/admin-views/attendees.php +3 -3
  70. src/admin-views/editor/metabox.php +0 -0
  71. src/admin-views/list.php +1 -1
  72. src/admin-views/meta-box.php +0 -0
  73. src/admin-views/privacy.php +0 -0
  74. src/admin-views/rsvp-metabox-capacity.php +0 -0
  75. src/admin-views/tpp-metabox-capacity.php +0 -0
  76. src/deprecated/TribeEventsTicketObject.php +0 -0
  77. src/deprecated/TribeEventsTickets.php +0 -0
  78. src/deprecated/TribeEventsTicketsAttendeesTable.php +0 -0
  79. src/deprecated/TribeEventsTicketsMetabox.php +0 -0
  80. src/deprecated/TribeEventsTicketsPro.php +0 -0
  81. src/deprecated/Tribe__Events__Tickets__Attendees_Table.php +0 -0
  82. src/deprecated/Tribe__Events__Tickets__Metabox.php +0 -0
  83. src/deprecated/Tribe__Events__Tickets__Ticket_Object.php +0 -0
  84. src/deprecated/Tribe__Events__Tickets__Tickets.php +0 -0
  85. src/deprecated/Tribe__Events__Tickets__Tickets_Pro.php +0 -0
  86. src/resources/css/accordion.css +1 -2
  87. src/resources/css/accordion.min.css +1 -1
  88. src/resources/css/rsvp.css +67 -11
  89. src/resources/css/rsvp.min.css +1 -1
  90. src/resources/css/tickets-admin.css +90 -0
  91. src/resources/css/tickets-admin.min.css +1 -0
  92. src/resources/css/tickets-attendees-print.css +1 -1
  93. src/resources/css/tickets-attendees-print.min.css +1 -1
  94. src/resources/css/tickets-attendees.css +22 -34
  95. src/resources/css/tickets-attendees.min.css +1 -1
  96. src/resources/css/tickets-refresh.css +2 -6
  97. src/resources/css/tickets-refresh.min.css +1 -1
  98. src/resources/css/tpp.css +1 -12
  99. src/resources/css/tpp.min.css +1 -1
  100. src/resources/postcss/rsvp.pcss +56 -9
  101. src/resources/postcss/tickets-admin.pcss +87 -0
  102. src/resources/postcss/tickets-attendees-print.pcss +1 -1
  103. src/resources/postcss/tickets-attendees.pcss +12 -33
  104. src/resources/postcss/tpp.pcss +1 -23
  105. src/template-tags/tickets.php +2 -3
  106. src/views/tickets/rsvp.php +6 -5
common/readme.txt CHANGED
@@ -2,7 +2,14 @@
2
 
3
  == Changelog ==
4
 
5
- = [4.7.19] 2018-08-22 =
 
 
 
 
 
 
 
6
  * Fix - Add the following datepicker formats to the validation script: YYYY.MM.DD, MM.DD.YYYY, DD.MM.YYYY [102815]
7
  * Add - Added the `Tribe__Process__Queue::delete_all_queues` method [111856]
8
  * Tweak - updated some foundation code for the Tickets REST API [108021]
2
 
3
  == Changelog ==
4
 
5
+ = [4.7.20] 2018-09-11 =
6
+ * Add - Added is_string_or_empty, is_image_or_empty, is_url_or_empty variations for REST API validation of values that are allowed to be set as empty [108834]
7
+ * Add - Introduce folder lookup for `Tribe__Template` to allow usage on Themes [112478]
8
+ * Fix - Allow settings to restrict to only one country [106974]
9
+ * Tweak - Removed filters: `tribe_template_base_path`
10
+ * Tweak - Added new filters: `tribe_template_before_include:$hook_name`, `tribe_template_after_include:$hook_name`, `tribe_template_html:$hook_name`, `tribe_template_path_list`, `tribe_template_public_path`, `tribe_template_public_namespace`, `tribe_template_plugin_path`
11
+
12
+ = [4.7.19] 2018-08-22 =
13
  * Fix - Add the following datepicker formats to the validation script: YYYY.MM.DD, MM.DD.YYYY, DD.MM.YYYY [102815]
14
  * Add - Added the `Tribe__Process__Queue::delete_all_queues` method [111856]
15
  * Tweak - updated some foundation code for the Tickets REST API [108021]
common/src/Tribe/Abstract_Deactivation.php CHANGED
File without changes
common/src/Tribe/App_Shop.php CHANGED
File without changes
common/src/Tribe/Autoloader.php CHANGED
File without changes
common/src/Tribe/Cache.php CHANGED
File without changes
common/src/Tribe/Cache_Listener.php CHANGED
File without changes
common/src/Tribe/Changelog_Reader.php CHANGED
File without changes
common/src/Tribe/Credits.php CHANGED
File without changes
common/src/Tribe/Date_Utils.php CHANGED
File without changes
common/src/Tribe/Field.php CHANGED
File without changes
common/src/Tribe/JSON_LD/Abstract.php CHANGED
File without changes
common/src/Tribe/Main.php CHANGED
@@ -17,7 +17,7 @@ class Tribe__Main {
17
  const OPTIONNAME = 'tribe_events_calendar_options';
18
  const OPTIONNAMENETWORK = 'tribe_events_calendar_network_options';
19
 
20
- const VERSION = '4.7.19';
21
 
22
  const FEED_URL = 'https://theeventscalendar.com/feed/';
23
 
17
  const OPTIONNAME = 'tribe_events_calendar_options';
18
  const OPTIONNAMENETWORK = 'tribe_events_calendar_network_options';
19
 
20
+ const VERSION = '4.7.20';
21
 
22
  const FEED_URL = 'https://theeventscalendar.com/feed/';
23
 
common/src/Tribe/PUE/Checker.php CHANGED
File without changes
common/src/Tribe/PUE/Plugin_Info.php CHANGED
File without changes
common/src/Tribe/PUE/Utility.php CHANGED
File without changes
common/src/Tribe/Settings.php CHANGED
File without changes
common/src/Tribe/Settings_Tab.php CHANGED
File without changes
common/src/Tribe/Support.php CHANGED
File without changes
common/src/Tribe/Template.php CHANGED
@@ -54,6 +54,15 @@ class Tribe__Template {
54
  */
55
  protected $template_base_path;
56
 
 
 
 
 
 
 
 
 
 
57
  /**
58
  * Configures the class origin plugin path
59
  *
@@ -115,6 +124,21 @@ class Tribe__Template {
115
  return $this;
116
  }
117
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
118
  /**
119
  * Configures the class global context
120
  *
@@ -142,34 +166,11 @@ class Tribe__Template {
142
  */
143
  public function set_template_context_extract( $value = false ) {
144
  // Cast as bool and save
145
- $this->template_context_extract = (bool) $value;
146
 
147
  return $this;
148
  }
149
 
150
- /**
151
- * Gets the base path for this Instance of Templates
152
- *
153
- * @since 4.6.2
154
- *
155
- * @return string
156
- */
157
- public function get_base_path() {
158
- // Craft the Base Path
159
- $path = array_merge( (array) $this->template_base_path, $this->folder );
160
-
161
- // Implode to avoid Window Problems
162
- $path = implode( DIRECTORY_SEPARATOR, $path );
163
-
164
- /**
165
- * Allows filtering of the base path for templates
166
- *
167
- * @param string $path Complete path to include the base folder
168
- * @param self $template Current instance of the Tribe__Template
169
- */
170
- return apply_filters( 'tribe_template_base_path', $path, $this );
171
- }
172
-
173
  /**
174
  * Sets a Index inside of the global or local context
175
  * Final to prevent extending the class when the `get` already exists on the child class
@@ -273,7 +274,183 @@ class Tribe__Template {
273
  }
274
 
275
  /**
276
- * A very simple method to include a Aggregator Template, allowing filtering and additions using hooks.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
277
  *
278
  * @since 4.6.2
279
  *
@@ -292,22 +469,22 @@ class Tribe__Template {
292
  // Clean this Variable
293
  $name = array_map( 'sanitize_title_with_dashes', $name );
294
 
295
- // Apply the .php to the last item on the name
296
- $name[ count( $name ) - 1 ] .= '.php';
 
 
 
297
 
298
- // Build the File Path
299
- $file = implode( DIRECTORY_SEPARATOR, array_merge( (array) $this->get_base_path(), $name ) );
300
 
301
- /**
302
- * A more Specific Filter that will include the template name
303
- *
304
- * @since 4.6.2
305
- *
306
- * @param string $file Complete path to include the PHP File
307
- * @param array $name Template name
308
- * @param self $template Current instance of the Tribe__Template
309
- */
310
- $file = apply_filters( 'tribe_template_file', $file, $name, $this );
311
 
312
  // Before we load the file we check if it exists
313
  if ( ! file_exists( $file ) ) {
@@ -323,6 +500,7 @@ class Tribe__Template {
323
  * Fires an Action before including the template file
324
  *
325
  * @since 4.6.2
 
326
  *
327
  * @param string $file Complete path to include the PHP File
328
  * @param array $name Template name
@@ -330,6 +508,22 @@ class Tribe__Template {
330
  */
331
  do_action( 'tribe_template_before_include', $file, $name, $this );
332
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
333
  // Only do this if really needed (by default it wont)
334
  if ( true === $this->template_context_extract && ! empty( $this->context ) ) {
335
  // We don't allow Extrating of a variable called $name
@@ -349,9 +543,10 @@ class Tribe__Template {
349
  include $file;
350
 
351
  /**
352
- * Fires an Action After including the template file
353
  *
354
  * @since 4.6.2
 
355
  *
356
  * @param string $file Complete path to include the PHP File
357
  * @param array $name Template name
@@ -359,6 +554,22 @@ class Tribe__Template {
359
  */
360
  do_action( 'tribe_template_after_include', $file, $name, $this );
361
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
362
  // Only fetch the contents after the action
363
  $html = ob_get_clean();
364
 
@@ -366,6 +577,7 @@ class Tribe__Template {
366
  * Allow users to filter the final HTML
367
  *
368
  * @since 4.6.2
 
369
  *
370
  * @param string $html The final HTML
371
  * @param string $file Complete path to include the PHP File
@@ -374,6 +586,23 @@ class Tribe__Template {
374
  */
375
  $html = apply_filters( 'tribe_template_html', $html, $file, $name, $this );
376
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
377
  if ( $echo ) {
378
  echo $html;
379
  }
54
  */
55
  protected $template_base_path;
56
 
57
+ /**
58
+ * Should we use a lookup into the list of folders to try to find the file
59
+ *
60
+ * @since 4.7.20
61
+ *
62
+ * @var bool
63
+ */
64
+ protected $template_folder_lookup = false;
65
+
66
  /**
67
  * Configures the class origin plugin path
68
  *
124
  return $this;
125
  }
126
 
127
+ /**
128
+ * Configures the class with the base folder in relation to the Origin
129
+ *
130
+ * @since 4.7.20
131
+ *
132
+ * @param mixed $use Should we look for template files in the list of folders
133
+ *
134
+ * @return self
135
+ */
136
+ public function set_template_folder_lookup( $value = true ) {
137
+ $this->template_folder_lookup = tribe_is_truthy( $value );
138
+
139
+ return $this;
140
+ }
141
+
142
  /**
143
  * Configures the class global context
144
  *
166
  */
167
  public function set_template_context_extract( $value = false ) {
168
  // Cast as bool and save
169
+ $this->template_context_extract = tribe_is_truthy( $value );
170
 
171
  return $this;
172
  }
173
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
174
  /**
175
  * Sets a Index inside of the global or local context
176
  * Final to prevent extending the class when the `get` already exists on the child class
274
  }
275
 
276
  /**
277
+ * Fetches the path for locating files in the Plugin Folder
278
+ *
279
+ * @since 4.7.20
280
+ *
281
+ * @return string
282
+ */
283
+ protected function get_template_plugin_path() {
284
+ // Craft the plugin Path
285
+ $path = array_merge( (array) $this->template_base_path, $this->folder );
286
+
287
+ // Implode to avoid Window Problems
288
+ $path = implode( DIRECTORY_SEPARATOR, $path );
289
+
290
+ /**
291
+ * Allows filtering of the base path for templates
292
+ *
293
+ * @since 4.7.20
294
+ *
295
+ * @param string $path Complete path to include the base plugin folder
296
+ * @param self $template Current instance of the Tribe__Template
297
+ */
298
+ return apply_filters( 'tribe_template_plugin_path', $path, $this );
299
+ }
300
+
301
+ /**
302
+ * Fetches the Namespace for the public paths, normaly folders to look for
303
+ * in the theme's directory.
304
+ *
305
+ * @since 4.7.20
306
+ *
307
+ * @return array
308
+ */
309
+ protected function get_template_public_namespace() {
310
+ $namespace = array(
311
+ 'tribe',
312
+ );
313
+
314
+ if ( ! empty( $this->origin->template_namespace ) ) {
315
+ $namespace[] = $this->origin->template_namespace;
316
+ }
317
+
318
+ /**
319
+ * Allows filtering of the base path for templates
320
+ *
321
+ * @since 4.7.20
322
+ *
323
+ * @param array $namespace Which is the namespace we will look for files in the theme
324
+ * @param self $template Current instance of the Tribe__Template
325
+ */
326
+ return apply_filters( 'tribe_template_public_namespace', $namespace, $this );
327
+ }
328
+
329
+ /**
330
+ * Fetches the path for locating files given a base folder normally theme related
331
+ *
332
+ * @since 4.7.20
333
+ *
334
+ * @param mixed $base Base path to look into
335
+ *
336
+ * @return string
337
+ */
338
+ protected function get_template_public_path( $base ) {
339
+ // Craft the plugin Path
340
+ $path = array_merge( (array) $base, (array) $this->get_template_public_namespace() );
341
+
342
+ // Implode to avoid Window Problems
343
+ $path = implode( DIRECTORY_SEPARATOR, $path );
344
+
345
+ /**
346
+ * Allows filtering of the base path for templates
347
+ *
348
+ * @since 4.7.20
349
+ *
350
+ * @param string $path Complete path to include the base public folder
351
+ * @param self $template Current instance of the Tribe__Template
352
+ */
353
+ return apply_filters( 'tribe_template_public_path', $path, $this );
354
+ }
355
+
356
+ /**
357
+ * Fetches the folders in which we will look for a given file
358
+ *
359
+ * @since 4.7.20
360
+ *
361
+ * @return array
362
+ */
363
+ protected function get_template_path_list() {
364
+ $folders = array();
365
+
366
+ // Only look into public folders if we tell to use folders
367
+ if ( $this->template_folder_lookup ) {
368
+ $folders[] = array(
369
+ 'id' => 'child-theme',
370
+ 'priority' => 10,
371
+ 'path' => $this->get_template_public_path( STYLESHEETPATH ),
372
+ );
373
+ $folders[] = array(
374
+ 'id' => 'parent-theme',
375
+ 'priority' => 15,
376
+ 'path' => $this->get_template_public_path( TEMPLATEPATH ),
377
+ );
378
+ }
379
+
380
+ $folders[] = array(
381
+ 'id' => 'plugin',
382
+ 'priority' => 20,
383
+ 'path' => $this->get_template_plugin_path(),
384
+ );
385
+
386
+ /**
387
+ * Allows filtering of the list of folders in which we will look for the
388
+ * template given.
389
+ *
390
+ * @since 4.7.20
391
+ *
392
+ * @param array $folders Complete path to include the base public folder
393
+ * @param self $template Current instance of the Tribe__Template
394
+ */
395
+ $folders = apply_filters( 'tribe_template_path_list', $folders, $this );
396
+
397
+ uasort( $folders, 'tribe_sort_by_priority' );
398
+
399
+ return $folders;
400
+ }
401
+
402
+ /**
403
+ * Tries to locate the correct file we want to load based on the Template class
404
+ * configuration and it's list of folders
405
+ *
406
+ * @since 4.7.20
407
+ *
408
+ * @param mixed $name File name we are looking for
409
+ *
410
+ * @return string
411
+ */
412
+ public function get_template_file( $name ) {
413
+ // If name is String make it an Array
414
+ if ( is_string( $name ) ) {
415
+ $name = (array) explode( '/', $name );
416
+ }
417
+
418
+ $folders = $this->get_template_path_list();
419
+
420
+ foreach ( $folders as $folder ) {
421
+ $folder['path'] = trim( $folder['path'] );
422
+ if ( ! $folder['path'] ) {
423
+ continue;
424
+ }
425
+
426
+ // Build the File Path
427
+ $file = implode( DIRECTORY_SEPARATOR, array_merge( (array) $folder['path'], $name ) );
428
+
429
+ // Append the Extension to the file path
430
+ $file .= '.php';
431
+
432
+ // Skip non-existent files
433
+ if ( file_exists( $file ) ) {
434
+ /**
435
+ * A more Specific Filter that will include the template name
436
+ *
437
+ * @since 4.6.2
438
+ * @since 4.7.20 The $name param no longers contains the extension
439
+ *
440
+ * @param string $file Complete path to include the PHP File
441
+ * @param array $name Template name
442
+ * @param self $template Current instance of the Tribe__Template
443
+ */
444
+ return apply_filters( 'tribe_template_file', $file, $name, $this );
445
+ }
446
+ }
447
+
448
+ // Couldn't find a template on the Stack
449
+ return false;
450
+ }
451
+
452
+ /**
453
+ * A very simple method to include a Template, allowing filtering and additions using hooks.
454
  *
455
  * @since 4.6.2
456
  *
469
  // Clean this Variable
470
  $name = array_map( 'sanitize_title_with_dashes', $name );
471
 
472
+ if ( ! empty( $this->origin->template_namespace ) ) {
473
+ $namespace = array_merge( (array) $this->origin->template_namespace, $name );
474
+ } else {
475
+ $namespace = $name;
476
+ }
477
 
478
+ // Setup the Hook name
479
+ $hook_name = implode( '/', $namespace );
480
 
481
+ // Check if the file exists
482
+ $file = $this->get_template_file( $name );
483
+
484
+ // Check if it's a valid variable
485
+ if ( ! $file ) {
486
+ return false;
487
+ }
 
 
 
488
 
489
  // Before we load the file we check if it exists
490
  if ( ! file_exists( $file ) ) {
500
  * Fires an Action before including the template file
501
  *
502
  * @since 4.6.2
503
+ * @since 4.7.20 The $name param no longers contains the extension
504
  *
505
  * @param string $file Complete path to include the PHP File
506
  * @param array $name Template name
508
  */
509
  do_action( 'tribe_template_before_include', $file, $name, $this );
510
 
511
+ /**
512
+ * Fires an Action for a given template name before including the template file
513
+ *
514
+ * E.g.:
515
+ * `tribe_template_before_include:events/blocks/parts/details`
516
+ * `tribe_template_before_include:events/embed`
517
+ * `tribe_template_before_include:tickets/login-to-purchase`
518
+ *
519
+ * @since 4.7.20
520
+ *
521
+ * @param string $file Complete path to include the PHP File
522
+ * @param array $name Template name
523
+ * @param self $template Current instance of the Tribe__Template
524
+ */
525
+ do_action( "tribe_template_before_include:$hook_name", $file, $name, $this );
526
+
527
  // Only do this if really needed (by default it wont)
528
  if ( true === $this->template_context_extract && ! empty( $this->context ) ) {
529
  // We don't allow Extrating of a variable called $name
543
  include $file;
544
 
545
  /**
546
+ * Fires an Action after including the template file
547
  *
548
  * @since 4.6.2
549
+ * @since 4.7.20 The $name param no longers contains the extension
550
  *
551
  * @param string $file Complete path to include the PHP File
552
  * @param array $name Template name
554
  */
555
  do_action( 'tribe_template_after_include', $file, $name, $this );
556
 
557
+ /**
558
+ * Fires an Action for a given template name after including the template file
559
+ *
560
+ * E.g.:
561
+ * `tribe_template_after_include:events/blocks/parts/details`
562
+ * `tribe_template_after_include:events/embed`
563
+ * `tribe_template_after_include:tickets/login-to-purchase`
564
+ *
565
+ * @since 4.7.20
566
+ *
567
+ * @param string $file Complete path to include the PHP File
568
+ * @param array $name Template name
569
+ * @param self $template Current instance of the Tribe__Template
570
+ */
571
+ do_action( "tribe_template_after_include:$hook_name", $file, $name, $this );
572
+
573
  // Only fetch the contents after the action
574
  $html = ob_get_clean();
575
 
577
  * Allow users to filter the final HTML
578
  *
579
  * @since 4.6.2
580
+ * @since 4.7.20 The $name param no longers contains the extension
581
  *
582
  * @param string $html The final HTML
583
  * @param string $file Complete path to include the PHP File
586
  */
587
  $html = apply_filters( 'tribe_template_html', $html, $file, $name, $this );
588
 
589
+ /**
590
+ * Allow users to filter the final HTML by the name
591
+ *
592
+ * E.g.:
593
+ * `tribe_template_html:events/blocks/parts/details`
594
+ * `tribe_template_html:events/embed`
595
+ * `tribe_template_html:tickets/login-to-purchase`
596
+ *
597
+ * @since 4.7.20
598
+ *
599
+ * @param string $html The final HTML
600
+ * @param string $file Complete path to include the PHP File
601
+ * @param array $name Template name
602
+ * @param self $template Current instance of the Tribe__Template
603
+ */
604
+ $html = apply_filters( "tribe_template_html:$hook_name", $html, $file, $name, $this );
605
+
606
  if ( $echo ) {
607
  echo $html;
608
  }
common/src/Tribe/Template_Factory.php CHANGED
File without changes
common/src/Tribe/Template_Part_Cache.php CHANGED
File without changes
common/src/Tribe/Validate.php CHANGED
File without changes
common/src/Tribe/Validator/Base.php CHANGED
@@ -34,6 +34,19 @@ class Tribe__Validator__Base implements Tribe__Validator__Interface {
34
  return ! empty( $value ) && is_string( $value );
35
  }
36
 
 
 
 
 
 
 
 
 
 
 
 
 
 
37
  /**
38
  * Whether the value is a timestamp or a string parseable by the strtotime function or not.
39
  *
@@ -166,6 +179,21 @@ class Tribe__Validator__Base implements Tribe__Validator__Interface {
166
  return false;
167
  }
168
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
169
  /**
170
  * @param mixed $value
171
  *
@@ -188,6 +216,23 @@ class Tribe__Validator__Base implements Tribe__Validator__Interface {
188
  return (bool) filter_var( $input, FILTER_VALIDATE_URL );
189
  }
190
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
191
  /**
192
  * Whether a string represents a valid and registered post status or not.
193
  *
34
  return ! empty( $value ) && is_string( $value );
35
  }
36
 
37
+ /**
38
+ * @param mixed $value
39
+ *
40
+ * @return bool
41
+ */
42
+ public function is_string_or_empty( $value ) {
43
+ if ( empty( $value ) ) {
44
+ return true;
45
+ }
46
+
47
+ return $this->is_string( $value );
48
+ }
49
+
50
  /**
51
  * Whether the value is a timestamp or a string parseable by the strtotime function or not.
52
  *
179
  return false;
180
  }
181
 
182
+ /**
183
+ * Whether the provided value points to an existing attachment ID, an existing image URL, or is empty.
184
+ *
185
+ * @param int|string $image
186
+ *
187
+ * @return mixed
188
+ */
189
+ public function is_image_or_empty( $image ) {
190
+ if ( empty( $image ) ) {
191
+ return true;
192
+ }
193
+
194
+ return $this->is_image( $image );
195
+ }
196
+
197
  /**
198
  * @param mixed $value
199
  *
216
  return (bool) filter_var( $input, FILTER_VALIDATE_URL );
217
  }
218
 
219
+ /**
220
+ * Whether a string represents a valid array or not.
221
+ *
222
+ * Valid means that the string looks like a URL, not that the URL is online and reachable.
223
+ *
224
+ * @param string $input
225
+ *
226
+ * @return bool
227
+ */
228
+ public function is_url_or_empty( $input ) {
229
+ if ( empty( $input ) ) {
230
+ return true;
231
+ }
232
+
233
+ return $this->is_url( $input );
234
+ }
235
+
236
  /**
237
  * Whether a string represents a valid and registered post status or not.
238
  *
common/src/Tribe/View_Helpers.php CHANGED
@@ -20,11 +20,12 @@ if ( ! class_exists( 'Tribe__View_Helpers' ) ) {
20
  * @return array The countries array.
21
  */
22
  public static function constructCountries( $postId = '', $useDefault = true ) {
 
23
 
24
- if ( tribe_get_option( 'tribeEventsCountries' ) != '' ) {
25
  $countries = array();
26
 
27
- $country_rows = explode( "\n", tribe_get_option( 'tribeEventsCountries' ) );
28
  foreach ( $country_rows as $crow ) {
29
  $country = explode( ',', $crow );
30
  if ( isset( $country[0] ) && isset( $country[1] ) ) {
@@ -38,7 +39,7 @@ if ( ! class_exists( 'Tribe__View_Helpers' ) ) {
38
  }
39
  }
40
 
41
- if ( ! isset( $countries ) || ! is_array( $countries ) || count( $countries ) == 1 ) {
42
  $countries = tribe( 'languages.locations' )->get_countries();
43
  }
44
 
20
  * @return array The countries array.
21
  */
22
  public static function constructCountries( $postId = '', $useDefault = true ) {
23
+ $eventCountries = tribe_get_option( 'tribeEventsCountries' );
24
 
25
+ if ( $eventCountries != '' ) {
26
  $countries = array();
27
 
28
+ $country_rows = explode( "\n", $eventCountries );
29
  foreach ( $country_rows as $crow ) {
30
  $country = explode( ',', $crow );
31
  if ( isset( $country[0] ) && isset( $country[1] ) ) {
39
  }
40
  }
41
 
42
+ if ( ! isset( $countries ) || ! is_array( $countries ) || count( $countries ) < 1 ) {
43
  $countries = tribe( 'languages.locations' )->get_countries();
44
  }
45
 
common/src/admin-views/tribe-options-display.php CHANGED
File without changes
common/src/admin-views/tribe-options-general.php CHANGED
File without changes
common/src/admin-views/tribe-options-help.php CHANGED
File without changes
common/src/admin-views/tribe-options-licenses.php CHANGED
File without changes
common/src/admin-views/tribe-options-network.php CHANGED
File without changes
common/src/functions/template-tags/date.php CHANGED
File without changes
common/src/functions/template-tags/general.php CHANGED
File without changes
common/src/functions/utils.php CHANGED
@@ -231,6 +231,32 @@ if ( ! function_exists( 'tribe_is_truthy' ) ) {
231
  }
232
  }
233
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
234
  if ( ! function_exists( 'tribe_normalize_terms_list' ) ) {
235
  /**
236
  * Normalizes a list of terms to a list of fields.
231
  }
232
  }
233
 
234
+ /**
235
+ * Sorting function based on Priority
236
+ *
237
+ * @since 4.7.20
238
+ *
239
+ * @param object|array $a First Subject to compare
240
+ * @param object|array $b Second subject to compare
241
+ *
242
+ * @return int
243
+ */
244
+ function tribe_sort_by_priority( $a, $b ) {
245
+ if ( is_array( $a ) ) {
246
+ $a_priority = $a['priority'];
247
+ } else {
248
+ $a_priority = $a->priority;
249
+ }
250
+
251
+ if ( is_array( $b ) ) {
252
+ $b_priority = $b['priority'];
253
+ } else {
254
+ $b_priority = $b->priority;
255
+ }
256
+
257
+ return (int) $a_priority === (int) $b_priority ? 0 : (int) $a_priority > (int) $b_priority;
258
+ }
259
+
260
  if ( ! function_exists( 'tribe_normalize_terms_list' ) ) {
261
  /**
262
  * Normalizes a list of terms to a list of fields.
common/tribe-common.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /*
3
  Description: An event settings framework for managing shared options
4
- Version: 4.7.19
5
  Author: Modern Tribe, Inc.
6
  Author URI: http://m.tri.be/1x
7
  Text Domain: tribe-common
1
  <?php
2
  /*
3
  Description: An event settings framework for managing shared options
4
+ Version: 4.7.20
5
  Author: Modern Tribe, Inc.
6
  Author URI: http://m.tri.be/1x
7
  Text Domain: tribe-common
common/vendor/attrchange/js/attrchange.js CHANGED
File without changes
common/vendor/attrchange/js/attrchange_ext.js CHANGED
File without changes
common/vendor/autoload.php CHANGED
File without changes
common/vendor/jquery-tribe-timepicker/jquery.timepicker.css CHANGED
File without changes
common/vendor/jquery-tribe-timepicker/lib/bootstrap-datepicker.js CHANGED
File without changes
common/vendor/jquery-tribe-timepicker/lib/glyphicons-halflings.png CHANGED
File without changes
common/vendor/jquery-tribe-timepicker/lib/screenshot.png CHANGED
File without changes
common/vendor/jquery/images/ui-bg_flat_0_aaaaaa_40x100.png CHANGED
File without changes
common/vendor/jquery/images/ui-bg_flat_75_ffffff_40x100.png CHANGED
File without changes
common/vendor/jquery/images/ui-bg_glass_55_fbf9ee_1x400.png CHANGED
File without changes
common/vendor/jquery/images/ui-bg_glass_65_ffffff_1x400.png CHANGED
File without changes
common/vendor/jquery/images/ui-bg_glass_75_dadada_1x400.png CHANGED
File without changes
common/vendor/jquery/images/ui-bg_glass_75_e6e6e6_1x400.png CHANGED
File without changes
common/vendor/jquery/images/ui-bg_glass_95_fef1ec_1x400.png CHANGED
File without changes
common/vendor/jquery/images/ui-bg_highlight-soft_75_cccccc_1x100.png CHANGED
File without changes
common/vendor/jquery/images/ui-icons_222222_256x240.png CHANGED
File without changes
common/vendor/jquery/images/ui-icons_2e83ff_256x240.png CHANGED
File without changes
common/vendor/jquery/images/ui-icons_454545_256x240.png CHANGED
File without changes
common/vendor/jquery/images/ui-icons_888888_256x240.png CHANGED
File without changes
common/vendor/jquery/images/ui-icons_cd0a0a_256x240.png CHANGED
File without changes
common/vendor/jquery/ui.theme.css CHANGED
File without changes
event-tickets.php CHANGED
@@ -2,7 +2,7 @@
2
  /*
3
  Plugin Name: Event Tickets
4
  Description: Event Tickets allows you to sell basic tickets and collect RSVPs from any post, page, or event.
5
- Version: 4.8
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 you to sell basic tickets and collect RSVPs from any post, page, or event.
5
+ Version: 4.8.1
6
  Author: Modern Tribe, Inc.
7
  Author URI: http://m.tri.be/28
8
  License: GPLv2 or later
lang/event-tickets-de_DE.mo CHANGED
Binary file
lang/event-tickets-de_DE.po CHANGED
@@ -2,7 +2,7 @@
2
  # This file is distributed under the same license as the Plugins - Event Tickets - Stable (latest release) package.
3
  msgid ""
4
  msgstr ""
5
- "PO-Revision-Date: 2018-08-03 00:54:15+0000\n"
6
  "MIME-Version: 1.0\n"
7
  "Content-Type: text/plain; charset=UTF-8\n"
8
  "Content-Transfer-Encoding: 8bit\n"
@@ -21,11 +21,11 @@ msgstr "Nach einer erfolgreichen PayPal Bestellung werden die Benutzer zu dieser
21
 
22
  #: src/admin-views/privacy.php:56
23
  msgid "If you have extended our plugin(s) to send data to a third-party service such as Eventbrite, Google Maps, or PayPal, user information may be passed to these external services. These services may be located abroad."
24
- msgstr ""
25
 
26
  #: src/admin-views/privacy.php:54
27
  msgid "Modern Tribe does not send any user data outside of your website by default."
28
- msgstr ""
29
 
30
  #: src/admin-views/privacy.php:52
31
  msgid "Where We Send Your Data"
@@ -33,11 +33,11 @@ msgstr "Wohin wir deine Daten senden"
33
 
34
  #: src/admin-views/privacy.php:50
35
  msgid "Certain data may be exported or removed upon users request via the existing Exporter or Eraser. Please note, however, that several “edge cases” exist in which we are unable to perfect the gathering and export of all data for your end users. We suggest running a search in your local database, as well as within the WordPress Dashboard, in order to identify all data collected and stored for your specific user requests."
36
- msgstr ""
37
 
38
  #: src/admin-views/privacy.php:48
39
  msgid "All information (data) is retained in the local database indefinitely, unless otherwise deleted."
40
- msgstr ""
41
 
42
  #: src/admin-views/privacy.php:46
43
  msgid "How Long You Retain this Data"
@@ -45,43 +45,43 @@ msgstr "Wie lange die Daten aufbewahrt werden"
45
 
46
  #: src/admin-views/privacy.php:44
47
  msgid "These API keys may include the following third party services: Google Maps and PayPal."
48
- msgstr ""
49
 
50
  #: src/admin-views/privacy.php:42
51
  msgid "We make use of certain API keys, in order to provide specific features."
52
- msgstr ""
53
 
54
  #: src/admin-views/privacy.php:38
55
  msgid "Events Tickets suite offers the use of third-party API keys. The primary functions are to enhance the features we've built in, some of which use Google Maps and PayPal. These API keys are not supplied by Modern Tribe."
56
- msgstr ""
57
 
58
  #: src/admin-views/privacy.php:36
59
  msgid "API Keys"
60
- msgstr ""
61
 
62
  #: src/admin-views/privacy.php:34
63
  msgid "Please note: The website owner can collect nearly any Attendee Information requested from ticket buyers by creating a custom registration form."
64
- msgstr ""
65
 
66
  #: src/admin-views/privacy.php:31
67
  msgid "Ticket purchaser billing address, which is collected through the use of WooCommerce, Easy Digital Downloads, or PayPal"
68
- msgstr ""
69
 
70
  #: src/admin-views/privacy.php:30
71
  msgid "Ticket purchaser information: name and email address"
72
- msgstr ""
73
 
74
  #: src/admin-views/privacy.php:29
75
  msgid "Ticket information (RSVPs and Tickets): name, email address, and ticket number/SKU (via check-in page)"
76
- msgstr ""
77
 
78
  #: src/admin-views/privacy.php:28
79
  msgid "Attendees information (RSVPs and Tickets): name and email address"
80
- msgstr ""
81
 
82
  #: src/admin-views/privacy.php:25
83
  msgid "If you create, submit, import, save, or publish event ticket information, as well as RSVP or purchase tickets to events, such information is retained in the local database:"
84
- msgstr ""
85
 
86
  #: src/admin-views/privacy.php:24 src/admin-views/privacy.php:40
87
  msgid "Suggested text:"
@@ -89,31 +89,31 @@ msgstr "Vorgeschlagener Text:"
89
 
90
  #: src/admin-views/privacy.php:23
91
  msgid "Through the usage of Event Tickets, Event Tickets Plus, and Community Tickets, information may be collected and stored within your website’s database."
92
- msgstr ""
93
 
94
  #: src/admin-views/privacy.php:21
95
  msgid "Event, Attendee, and Ticket Purchaser Information"
96
- msgstr ""
97
 
98
  #: src/admin-views/privacy.php:19
99
  msgid "What personal data we collect and why we collect it"
100
- msgstr ""
101
 
102
  #: src/admin-views/privacy.php:17
103
  msgid "This information is only for guidance and not to be considered as legal advice."
104
- msgstr ""
105
 
106
  #: src/admin-views/privacy.php:17
107
  msgid "Disclaimer:"
108
- msgstr ""
109
 
110
  #: src/admin-views/privacy.php:16
111
  msgid "You should include the information below in the correct sections of you privacy policy."
112
- msgstr ""
113
 
114
  #: src/admin-views/privacy.php:15
115
  msgid "This information serves as a guide on what sections need to be modified due to usage of Event Tickets and its Add-ons."
116
- msgstr ""
117
 
118
  #: src/admin-views/privacy.php:14
119
  msgid "Hello,"
@@ -121,31 +121,31 @@ msgstr "Hallo,"
121
 
122
  #: src/Tribe/REST/V1/Messages.php:22
123
  msgid "The requested ticket check in is not available"
124
- msgstr ""
125
 
126
  #: src/Tribe/REST/V1/Messages.php:21
127
  msgid "The requested ticket is not accessible"
128
- msgstr ""
129
 
130
  #: src/Tribe/REST/V1/Messages.php:20
131
  msgid "The requested post ID does not exist or is not a ticket"
132
- msgstr ""
133
 
134
  #: src/Tribe/REST/V1/Messages.php:19
135
  msgid "The ticket ID is missing from the request"
136
- msgstr ""
137
 
138
  #: src/Tribe/REST/V1/Endpoints/Swagger_Documentation.php:157
139
  msgid "Returns the documentation for Event Tickets REST API in Swagger consumable format."
140
- msgstr ""
141
 
142
  #: src/Tribe/REST/V1/Endpoints/Swagger_Documentation.php:107
143
  msgid "Event Tickets REST API allows accessing ticket information easily and conveniently."
144
- msgstr ""
145
 
146
  #: src/Tribe/REST/V1/Endpoints/Swagger_Documentation.php:106
147
  msgid "Event Tickets REST API"
148
- msgstr ""
149
 
150
  #: src/Tribe/REST/V1/Endpoints/Base.php:42
151
  msgid "No description provided"
@@ -153,11 +153,11 @@ msgstr "Keine Beschreibung verfügbar"
153
 
154
  #: src/Tribe/REST/V1/Documentation/Ticket_Definition_Provider.php:26
155
  msgid "The ticket WordPress post ID"
156
- msgstr ""
157
 
158
  #: src/Tribe/Privacy.php:196
159
  msgid "Order Title"
160
- msgstr ""
161
 
162
  #: src/Tribe/Privacy.php:191
163
  msgid "Event Tickets TribeCommerce Attendee Data"
2
  # This file is distributed under the same license as the Plugins - Event Tickets - Stable (latest release) package.
3
  msgid ""
4
  msgstr ""
5
+ "PO-Revision-Date: 2018-09-02 20:04:21+0000\n"
6
  "MIME-Version: 1.0\n"
7
  "Content-Type: text/plain; charset=UTF-8\n"
8
  "Content-Transfer-Encoding: 8bit\n"
21
 
22
  #: src/admin-views/privacy.php:56
23
  msgid "If you have extended our plugin(s) to send data to a third-party service such as Eventbrite, Google Maps, or PayPal, user information may be passed to these external services. These services may be located abroad."
24
+ msgstr "Wenn Du unsere Plugins so erweitert hast, dass sie Daten an einen Drittanbieter-Service wie Eventbrite, Google Maps oder PayPal senden, können Benutzerinformationen an diese externen Services weitergegeben werden. Diese Dienste können sich im Ausland befinden."
25
 
26
  #: src/admin-views/privacy.php:54
27
  msgid "Modern Tribe does not send any user data outside of your website by default."
28
+ msgstr "Modern Tribe sendet standardmäßig keine Benutzerdaten außerhalb Ihrer Website."
29
 
30
  #: src/admin-views/privacy.php:52
31
  msgid "Where We Send Your Data"
33
 
34
  #: src/admin-views/privacy.php:50
35
  msgid "Certain data may be exported or removed upon users request via the existing Exporter or Eraser. Please note, however, that several “edge cases” exist in which we are unable to perfect the gathering and export of all data for your end users. We suggest running a search in your local database, as well as within the WordPress Dashboard, in order to identify all data collected and stored for your specific user requests."
36
+ msgstr "Bestimmte Daten können auf Wunsch des Benutzers über den vorhandenen Exporter oder Radierer exportiert oder entfernt werden. Bitte beachte jedoch, dass es mehrere \"Grenzfälle\" gibt, in denen wir das Sammeln und Exportieren aller Daten für Ihre Endnutzer nicht perfektionieren können. Wir empfehlen, in der lokalen Datenbank sowie im WordPress Dashboard eine Suche durchzuführen, um alle gesammelten und gespeicherten Daten für Ihre spezifischen Benutzeranforderungen zu identifizieren."
37
 
38
  #: src/admin-views/privacy.php:48
39
  msgid "All information (data) is retained in the local database indefinitely, unless otherwise deleted."
40
+ msgstr "Alle Informationen (Daten) bleiben auf unbestimmte Zeit in der lokalen Datenbank erhalten, sofern sie nicht anderweitig gelöscht werden."
41
 
42
  #: src/admin-views/privacy.php:46
43
  msgid "How Long You Retain this Data"
45
 
46
  #: src/admin-views/privacy.php:44
47
  msgid "These API keys may include the following third party services: Google Maps and PayPal."
48
+ msgstr "Diese API-Schlüssel können die folgenden Dienste von Drittanbietern enthalten: Google Maps und PayPal."
49
 
50
  #: src/admin-views/privacy.php:42
51
  msgid "We make use of certain API keys, in order to provide specific features."
52
+ msgstr "Wir verwenden bestimmte API-Schlüssel, um bestimmte Funktionen bereitzustellen."
53
 
54
  #: src/admin-views/privacy.php:38
55
  msgid "Events Tickets suite offers the use of third-party API keys. The primary functions are to enhance the features we've built in, some of which use Google Maps and PayPal. These API keys are not supplied by Modern Tribe."
56
+ msgstr "Events Tickets Suite bietet die Verwendung von API-Schlüsseln von Drittanbietern. Die Hauptfunktionen bestehen darin, die Funktionen zu verbessern, von denen einige Google Maps und PayPal verwenden. Diese API-Schlüssel werden nicht von Modern Tribe bereitgestellt."
57
 
58
  #: src/admin-views/privacy.php:36
59
  msgid "API Keys"
60
+ msgstr "API Schlüssel"
61
 
62
  #: src/admin-views/privacy.php:34
63
  msgid "Please note: The website owner can collect nearly any Attendee Information requested from ticket buyers by creating a custom registration form."
64
+ msgstr "Bitte beachte: Der Eigentümer der Website kann nahezu alle von Kartenkäufern angeforderten Teilnehmerinformationen sammeln, indem er ein benutzerdefiniertes Registrierungsformular erstellt."
65
 
66
  #: src/admin-views/privacy.php:31
67
  msgid "Ticket purchaser billing address, which is collected through the use of WooCommerce, Easy Digital Downloads, or PayPal"
68
+ msgstr "Die Rechnungsadresse des Kartenkäufers, die durch die Verwendung von WooCommerce, Easy Digital Downloads oder PayPal gesammelt wird"
69
 
70
  #: src/admin-views/privacy.php:30
71
  msgid "Ticket purchaser information: name and email address"
72
+ msgstr "Informationen zum Ticketkäufer: Name und E-Mail-Adresse "
73
 
74
  #: src/admin-views/privacy.php:29
75
  msgid "Ticket information (RSVPs and Tickets): name, email address, and ticket number/SKU (via check-in page)"
76
+ msgstr "Karteninformationen (RSVPs und Tickets): Name, E-Mail-Adresse und Kartennummer / SKU (über die Check-in-Seite)"
77
 
78
  #: src/admin-views/privacy.php:28
79
  msgid "Attendees information (RSVPs and Tickets): name and email address"
80
+ msgstr "Teilnehmerinformationen (RSVPs und Karten): Name und E-Mail-Adresse"
81
 
82
  #: src/admin-views/privacy.php:25
83
  msgid "If you create, submit, import, save, or publish event ticket information, as well as RSVP or purchase tickets to events, such information is retained in the local database:"
84
+ msgstr "Wenn Du Veranstaltungskarten-Informationen erstellst, sendest, importierst, speicherst oder veröffentlichst sowie RSVPs oder Tickets für Ereignisse kaufst, werden diese Informationen in der lokalen Datenbank gespeichert:"
85
 
86
  #: src/admin-views/privacy.php:24 src/admin-views/privacy.php:40
87
  msgid "Suggested text:"
89
 
90
  #: src/admin-views/privacy.php:23
91
  msgid "Through the usage of Event Tickets, Event Tickets Plus, and Community Tickets, information may be collected and stored within your website’s database."
92
+ msgstr "Durch die Verwendung von Event Tickets, Event Tickets Plus und Community Tickets können Informationen gesammelt und in der Datenbank Ihrer Website gespeichert werden."
93
 
94
  #: src/admin-views/privacy.php:21
95
  msgid "Event, Attendee, and Ticket Purchaser Information"
96
+ msgstr "Informationen über Veranstaltung, Teilnehmer und Kartenkäufer"
97
 
98
  #: src/admin-views/privacy.php:19
99
  msgid "What personal data we collect and why we collect it"
100
+ msgstr "Welche persönlichen Daten sammeln wir und warum sammeln wir sie?"
101
 
102
  #: src/admin-views/privacy.php:17
103
  msgid "This information is only for guidance and not to be considered as legal advice."
104
+ msgstr "Diese Informationen dienen nur zur Orientierung und sind nicht als Rechtsberatung zu verstehen."
105
 
106
  #: src/admin-views/privacy.php:17
107
  msgid "Disclaimer:"
108
+ msgstr "Haftungsausschluss:"
109
 
110
  #: src/admin-views/privacy.php:16
111
  msgid "You should include the information below in the correct sections of you privacy policy."
112
+ msgstr "Sie sollten die folgenden Informationen in die richtigen Abschnitte Ihrer Datenschutzerklärung aufnehmen."
113
 
114
  #: src/admin-views/privacy.php:15
115
  msgid "This information serves as a guide on what sections need to be modified due to usage of Event Tickets and its Add-ons."
116
+ msgstr "Diese Informationen dienen als Richtlinie, welche Abschnitte aufgrund der Verwendung von Veranstaltungskarten und Add-Ons geändert werden müssen."
117
 
118
  #: src/admin-views/privacy.php:14
119
  msgid "Hello,"
121
 
122
  #: src/Tribe/REST/V1/Messages.php:22
123
  msgid "The requested ticket check in is not available"
124
+ msgstr "Der angeforderte Karten-Check-in ist nicht verfügbar"
125
 
126
  #: src/Tribe/REST/V1/Messages.php:21
127
  msgid "The requested ticket is not accessible"
128
+ msgstr "Die angeforderte Karte ist nicht zugänglich"
129
 
130
  #: src/Tribe/REST/V1/Messages.php:20
131
  msgid "The requested post ID does not exist or is not a ticket"
132
+ msgstr "Die angeforderte Beitrags-ID existiert nicht oder ist keine Karte"
133
 
134
  #: src/Tribe/REST/V1/Messages.php:19
135
  msgid "The ticket ID is missing from the request"
136
+ msgstr "Die Karten-ID fehlt in der Anfrage"
137
 
138
  #: src/Tribe/REST/V1/Endpoints/Swagger_Documentation.php:157
139
  msgid "Returns the documentation for Event Tickets REST API in Swagger consumable format."
140
+ msgstr "Gibt die Dokumentation für die REST-API für Veranstaltungstickets im Swagger-Verbrauchsmaterialformat zurück."
141
 
142
  #: src/Tribe/REST/V1/Endpoints/Swagger_Documentation.php:107
143
  msgid "Event Tickets REST API allows accessing ticket information easily and conveniently."
144
+ msgstr "Event Tickets REST API ermöglicht den einfachen und bequemen Zugriff auf Ticketinformationen."
145
 
146
  #: src/Tribe/REST/V1/Endpoints/Swagger_Documentation.php:106
147
  msgid "Event Tickets REST API"
148
+ msgstr "Event Tickets REST API"
149
 
150
  #: src/Tribe/REST/V1/Endpoints/Base.php:42
151
  msgid "No description provided"
153
 
154
  #: src/Tribe/REST/V1/Documentation/Ticket_Definition_Provider.php:26
155
  msgid "The ticket WordPress post ID"
156
+ msgstr "Die Karten WordPress Post ID"
157
 
158
  #: src/Tribe/Privacy.php:196
159
  msgid "Order Title"
160
+ msgstr "Titel Bestellung"
161
 
162
  #: src/Tribe/Privacy.php:191
163
  msgid "Event Tickets TribeCommerce Attendee Data"
readme.txt CHANGED
@@ -4,7 +4,7 @@ Contributors: ModernTribe, borkweb, bordoni, barry.hughes, aguseo, brianjessee,
4
  Tags: RSVP, events, tickets, event management, calendar, ticket sales, community, registration, api, dates, date, posts, workshop, conference, meeting, seminar, concert, summit, ticket integration, event ticketing
5
  Requires at least: 4.5
6
  Tested up to: 4.9.8
7
- Stable tag: 4.8
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -122,6 +122,13 @@ Currently, the following add-ons are available for Event Tickets:
122
 
123
  == Changelog ==
124
 
 
 
 
 
 
 
 
125
  = [4.8] 2018-08-22 =
126
 
127
  * Feature - Include a Tickets REST API endpoint for read operations [108021]
4
  Tags: RSVP, events, tickets, event management, calendar, ticket sales, community, registration, api, dates, date, posts, workshop, conference, meeting, seminar, concert, summit, ticket integration, event ticketing
5
  Requires at least: 4.5
6
  Tested up to: 4.9.8
7
+ Stable tag: 4.8.1
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
122
 
123
  == Changelog ==
124
 
125
+ = [4.8.1] 2018-09-12 =
126
+
127
+ * Fix - Show the ticket table when tickets are all sold out, show message in list view [111893]
128
+ * Fix - Fixed ticket description issue when creating events with no description. Thanks Aaron Brazell for the fix! [113038]
129
+ * Fix - Correct un-responsive ticket table, thanks @understandphoto for bringing this to our attention! [109730]
130
+ * Tweak - Added filter: `tribe_tickets_get_ticket_max_purchase` [112478]
131
+
132
  = [4.8] 2018-08-22 =
133
 
134
  * Feature - Include a Tickets REST API endpoint for read operations [108021]
src/Tribe/Attendees_Table.php CHANGED
File without changes
src/Tribe/Commerce/PayPal/Attendance_Totals.php CHANGED
@@ -75,8 +75,8 @@ class Tribe__Tickets__Commerce__PayPal__Attendance_Totals extends Tribe__Tickets
75
 
76
  echo "
77
  <ul>
78
- <li> <strong>$total_sold_label</strong> $total_sold </li>
79
- <li> $total_paid_label $total_paid </li>
80
  </ul>
81
  ";
82
  }
@@ -155,4 +155,4 @@ class Tribe__Tickets__Commerce__PayPal__Attendance_Totals extends Tribe__Tickets
155
  */
156
  return (int) apply_filters( 'tribe_tickets_get_total_paid', $this->total_complete, $this->total_complete, $this->event_id );
157
  }
158
- }
75
 
76
  echo "
77
  <ul>
78
+ <li> <strong>$total_sold_label&nbsp;</strong>$total_sold </li>
79
+ <li> $total_paid_label&nbsp;$total_paid </li>
80
  </ul>
81
  ";
82
  }
155
  */
156
  return (int) apply_filters( 'tribe_tickets_get_total_paid', $this->total_complete, $this->total_complete, $this->event_id );
157
  }
158
+ }
src/Tribe/Commerce/PayPal/Frontend/Tickets_Form.php CHANGED
@@ -84,20 +84,18 @@ class Tribe__Tickets__Commerce__PayPal__Frontend__Tickets_Form {
84
  $must_login = ! is_user_logged_in() && $this->main->login_required();
85
  $can_login = true;
86
 
87
- $form = '';
 
 
88
 
89
  $currently_available_tickets = array_filter( $tickets, array( $this, 'is_currently_available' ) );
90
 
91
  if ( count( $currently_available_tickets ) > 0 ) {
92
- ob_start();
93
- include $this->main->getTemplateHierarchy( 'tickets/tpp' );
94
- $form = ob_get_clean();
95
-
96
- // If we have rendered tickets there is generally no need to display a 'tickets unavailable' message
97
  // for this post
98
  $this->main->do_not_show_tickets_unavailable_message();
99
  } else {
100
- // Indicate that we did not render any tickets, so a 'tickets unavailable' message may be
101
  // appropriate (depending on whether other ticket providers are active and have a similar
102
  // result)
103
  $this->main->maybe_show_tickets_unavailable_message( $tickets );
@@ -132,4 +130,4 @@ class Tribe__Tickets__Commerce__PayPal__Frontend__Tickets_Form {
132
  protected function is_currently_available( Tribe__Tickets__Ticket_Object $ticket ) {
133
  return $ticket->date_in_range();
134
  }
135
- }
84
  $must_login = ! is_user_logged_in() && $this->main->login_required();
85
  $can_login = true;
86
 
87
+ ob_start();
88
+ include $this->main->getTemplateHierarchy( 'tickets/tpp' );
89
+ $form = ob_get_clean();
90
 
91
  $currently_available_tickets = array_filter( $tickets, array( $this, 'is_currently_available' ) );
92
 
93
  if ( count( $currently_available_tickets ) > 0 ) {
94
+ // If we have available tickets there is generally no need to display a 'tickets unavailable' message
 
 
 
 
95
  // for this post
96
  $this->main->do_not_show_tickets_unavailable_message();
97
  } else {
98
+ // Indicate that there are not any tickets, so a 'tickets unavailable' message may be
99
  // appropriate (depending on whether other ticket providers are active and have a similar
100
  // result)
101
  $this->main->maybe_show_tickets_unavailable_message( $tickets );
130
  protected function is_currently_available( Tribe__Tickets__Ticket_Object $ticket ) {
131
  return $ticket->date_in_range();
132
  }
133
+ }
src/Tribe/Main.php CHANGED
@@ -4,7 +4,7 @@ class Tribe__Tickets__Main {
4
  /**
5
  * Current version of this plugin
6
  */
7
- const VERSION = '4.8';
8
 
9
  /**
10
  * Min required The Events Calendar version
@@ -14,7 +14,7 @@ class Tribe__Tickets__Main {
14
  /**
15
  * Min required version of Tribe Common
16
  */
17
- const MIN_COMMON_VERSION = '4.7.19';
18
 
19
  /**
20
  * Name of the provider
4
  /**
5
  * Current version of this plugin
6
  */
7
+ const VERSION = '4.8.1';
8
 
9
  /**
10
  * Min required The Events Calendar version
14
  /**
15
  * Min required version of Tribe Common
16
  */
17
+ const MIN_COMMON_VERSION = '4.7.20';
18
 
19
  /**
20
  * Name of the provider
src/Tribe/Metabox.php CHANGED
File without changes
src/Tribe/RSVP.php CHANGED
@@ -1114,7 +1114,7 @@ class Tribe__Tickets__RSVP extends Tribe__Tickets__Tickets {
1114
  *
1115
  * @return bool
1116
  */
1117
- protected function login_required() {
1118
  $requirements = (array) tribe_get_option( 'ticket-authentication-requirements', array() );
1119
  return in_array( 'event-tickets_rsvp', $requirements );
1120
  }
@@ -2031,7 +2031,7 @@ class Tribe__Tickets__RSVP extends Tribe__Tickets__Tickets {
2031
  *
2032
  * @return array|false
2033
  */
2034
- protected function parse_attendee_details( ) {
2035
  $order_id = self::generate_order_id();
2036
 
2037
  $attendee_email = empty( $_POST['attendee']['email'] ) ? null : sanitize_email( $_POST['attendee']['email'] );
@@ -2073,7 +2073,7 @@ class Tribe__Tickets__RSVP extends Tribe__Tickets__Tickets {
2073
  * @return int Either the requested quantity of tickets for the product or `0` in
2074
  * any other case.
2075
  */
2076
- protected function parse_ticket_quantity( $product_id ) {
2077
  if ( empty( $_POST[ "quantity_{$product_id}" ] ) ) {
2078
  return 0;
2079
  }
1114
  *
1115
  * @return bool
1116
  */
1117
+ public function login_required() {
1118
  $requirements = (array) tribe_get_option( 'ticket-authentication-requirements', array() );
1119
  return in_array( 'event-tickets_rsvp', $requirements );
1120
  }
2031
  *
2032
  * @return array|false
2033
  */
2034
+ public function parse_attendee_details() {
2035
  $order_id = self::generate_order_id();
2036
 
2037
  $attendee_email = empty( $_POST['attendee']['email'] ) ? null : sanitize_email( $_POST['attendee']['email'] );
2073
  * @return int Either the requested quantity of tickets for the product or `0` in
2074
  * any other case.
2075
  */
2076
+ public function parse_ticket_quantity( $product_id ) {
2077
  if ( empty( $_POST[ "quantity_{$product_id}" ] ) ) {
2078
  return 0;
2079
  }
src/Tribe/RSVP/Attendance_Totals.php CHANGED
@@ -44,7 +44,7 @@ class Tribe__Tickets__RSVP__Attendance_Totals extends Tribe__Tickets__Abstract_A
44
 
45
  $html = "
46
  <ul>
47
- <li> <strong>$total_rsvps_label</strong> $total_rsvps </li>
48
  <li> $going_label $going </li>
49
  <li> $not_going_label $not_going </li>
50
  </ul>
@@ -109,4 +109,4 @@ class Tribe__Tickets__RSVP__Attendance_Totals extends Tribe__Tickets__Abstract_A
109
  */
110
  return (int) apply_filters( 'tribe_tickets_rsvp_get_total_not_going', $this->total_not_going, $this->total_not_going, $this->event_id );
111
  }
112
- }
44
 
45
  $html = "
46
  <ul>
47
+ <li> <strong>$total_rsvps_label</strong>&nbsp;$total_rsvps </li>
48
  <li> $going_label $going </li>
49
  <li> $not_going_label $not_going </li>
50
  </ul>
109
  */
110
  return (int) apply_filters( 'tribe_tickets_rsvp_get_total_not_going', $this->total_not_going, $this->total_not_going, $this->event_id );
111
  }
112
+ }
src/Tribe/Ticket_Object.php CHANGED
File without changes
src/Tribe/Tickets.php CHANGED
@@ -1204,7 +1204,7 @@ if ( ! class_exists( 'Tribe__Tickets__Tickets' ) ) {
1204
  'available' => 0,
1205
  );
1206
  $types['tickets'] = array(
1207
- 'count' => 0, // count of tickets currently for sale
1208
  'stock' => 0, // current stock of tickets available for sale
1209
  'global' => 0, // global stock ticket
1210
  'unlimited' => 0, // unlimited stock tickets
@@ -1233,7 +1233,7 @@ if ( ! class_exists( 'Tribe__Tickets__Tickets' ) ) {
1233
  continue;
1234
  }
1235
 
1236
- $stock_level = Tribe__Tickets__Global_Stock::CAPPED_STOCK_MODE === $global_stock_mode ? $ticket->global_stock_cap : $ticket->stock;
1237
 
1238
  // whether the stock level is negative because it represents unlimited stock (`-1`)
1239
  // or because it's oversold we normalize to `0` for the sake of displaying
@@ -1857,6 +1857,8 @@ if ( ! class_exists( 'Tribe__Tickets__Tickets' ) ) {
1857
  : array();
1858
 
1859
  self::$currently_unavailable_tickets[ (int) $post_id ] = array_merge( $existing_tickets, $tickets );
 
 
1860
  }
1861
 
1862
  /**
@@ -1875,7 +1877,7 @@ if ( ! class_exists( 'Tribe__Tickets__Tickets' ) ) {
1875
  }
1876
 
1877
  /**
1878
- * If appropriate, displayed a "tickets unavailable" message.
1879
  */
1880
  public function show_tickets_unavailable_message() {
1881
  $post_id = (int) get_the_ID();
@@ -2021,7 +2023,7 @@ if ( ! class_exists( 'Tribe__Tickets__Tickets' ) ) {
2021
  *
2022
  * @return bool
2023
  */
2024
- protected function login_required() {
2025
  $requirements = (array) tribe_get_option( 'ticket-authentication-requirements', array() );
2026
 
2027
  return in_array( 'event-tickets_all', $requirements, true );
@@ -2188,7 +2190,7 @@ if ( ! class_exists( 'Tribe__Tickets__Tickets' ) ) {
2188
  $ticket = new Tribe__Tickets__Ticket_Object();
2189
  $ticket->ID = isset( $data['ticket_id'] ) ? absint( $data['ticket_id'] ) : null;
2190
  $ticket->name = isset( $data['ticket_name'] ) ? esc_html( $data['ticket_name'] ) : null;
2191
- $ticket->description = isset( $data['ticket_description'] ) ? sanitize_textarea_field( $data['ticket_description'] ) : null;
2192
  $ticket->price = ! empty( $data['ticket_price'] ) ? filter_var( trim( $data['ticket_price'] ), FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION | FILTER_FLAG_ALLOW_THOUSAND ) : 0;
2193
  $ticket->show_description = isset( $data['ticket_show_description'] ) ? 'yes' : 'no';
2194
  $ticket->provider_class = $this->class_name;
1204
  'available' => 0,
1205
  );
1206
  $types['tickets'] = array(
1207
+ 'count' => 0, // count of ticket types currently for sale
1208
  'stock' => 0, // current stock of tickets available for sale
1209
  'global' => 0, // global stock ticket
1210
  'unlimited' => 0, // unlimited stock tickets
1233
  continue;
1234
  }
1235
 
1236
+ $stock_level = Tribe__Tickets__Global_Stock::CAPPED_STOCK_MODE === $global_stock_mode ? $ticket->global_stock_cap : $ticket->available();
1237
 
1238
  // whether the stock level is negative because it represents unlimited stock (`-1`)
1239
  // or because it's oversold we normalize to `0` for the sake of displaying
1857
  : array();
1858
 
1859
  self::$currently_unavailable_tickets[ (int) $post_id ] = array_merge( $existing_tickets, $tickets );
1860
+
1861
+
1862
  }
1863
 
1864
  /**
1877
  }
1878
 
1879
  /**
1880
+ * If appropriate, display a "tickets unavailable" message.
1881
  */
1882
  public function show_tickets_unavailable_message() {
1883
  $post_id = (int) get_the_ID();
2023
  *
2024
  * @return bool
2025
  */
2026
+ public function login_required() {
2027
  $requirements = (array) tribe_get_option( 'ticket-authentication-requirements', array() );
2028
 
2029
  return in_array( 'event-tickets_all', $requirements, true );
2190
  $ticket = new Tribe__Tickets__Ticket_Object();
2191
  $ticket->ID = isset( $data['ticket_id'] ) ? absint( $data['ticket_id'] ) : null;
2192
  $ticket->name = isset( $data['ticket_name'] ) ? esc_html( $data['ticket_name'] ) : null;
2193
+ $ticket->description = isset( $data['ticket_description'] ) ? sanitize_textarea_field( $data['ticket_description'] ) : '';
2194
  $ticket->price = ! empty( $data['ticket_price'] ) ? filter_var( trim( $data['ticket_price'] ), FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION | FILTER_FLAG_ALLOW_THOUSAND ) : 0;
2195
  $ticket->show_description = isset( $data['ticket_show_description'] ) ? 'yes' : 'no';
2196
  $ticket->provider_class = $this->class_name;
src/Tribe/Tickets_Handler.php CHANGED
@@ -1077,6 +1077,36 @@ class Tribe__Tickets__Tickets_Handler {
1077
  return $ticket_list;
1078
  }
1079
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1080
  /**
1081
  * Get an array list of shared capacity tickets for an event.
1082
  *
1077
  return $ticket_list;
1078
  }
1079
 
1080
+ /**
1081
+ * Gets the Maximum Purchase number for a given ticket
1082
+ *
1083
+ * @since 4.8.1
1084
+ *
1085
+ * @param int|string $ticket_id Ticket to fetch purchase max from
1086
+ *
1087
+ * @return int
1088
+ */
1089
+ public function get_ticket_max_purchase( $ticket_id ) {
1090
+ $event_id = tribe_events_get_ticket_event( $ticket_id );
1091
+ $provider = tribe_tickets_get_ticket_provider( $ticket_id );
1092
+ $ticket = $provider->get_ticket( $event_id, $ticket_id );
1093
+
1094
+ $available = $ticket->available();
1095
+
1096
+ /**
1097
+ * Allows filtering of the max input for purchase of this one ticket
1098
+ *
1099
+ * @since 4.8.1
1100
+ *
1101
+ * @param int $available Max Purchase number
1102
+ * @param Tribe__Tickets__Ticket_Object $ticket Ticket Object
1103
+ * @param int $event_id Event ID
1104
+ * @param int $ticket_id Ticket Raw ID
1105
+ *
1106
+ */
1107
+ return apply_filters( 'tribe_tickets_get_ticket_max_purchase', $available, $ticket, $event_id, $ticket_id );
1108
+ }
1109
+
1110
  /**
1111
  * Get an array list of shared capacity tickets for an event.
1112
  *
src/admin-views/attendees.php CHANGED
@@ -81,9 +81,9 @@ $show_title = apply_filters( 'tribe_tickets_attendees_show_title', true, tribe(
81
  <ul>
82
  <?php foreach ( $tickets as $ticket ) { ?>
83
  <li>
84
- <strong><?php echo esc_html( $ticket->name ) ?>: </strong>
85
- <?php echo tribe_tickets_get_ticket_stock_message( $ticket ); ?>
86
- </li>
87
  <?php } ?>
88
  </ul>
89
  <?php do_action( 'tribe_events_tickets_attendees_ticket_sales_bottom', $event_id ); ?>
81
  <ul>
82
  <?php foreach ( $tickets as $ticket ) { ?>
83
  <li>
84
+ <strong><?php echo esc_html( $ticket->name ) ?>:&nbsp;</strong><?php
85
+ echo esc_html( tribe_tickets_get_ticket_stock_message( $ticket ) );
86
+ ?></li>
87
  <?php } ?>
88
  </ul>
89
  <?php do_action( 'tribe_events_tickets_attendees_ticket_sales_bottom', $event_id ); ?>
src/admin-views/editor/metabox.php CHANGED
File without changes
src/admin-views/list.php CHANGED
@@ -120,7 +120,7 @@
120
  </td>
121
 
122
  <td nowrap="nowrap">
123
- <?php echo tribe_tickets_get_ticket_stock_message( $ticket ); ?>
124
  </td>
125
  </tr>
126
  <?php
120
  </td>
121
 
122
  <td nowrap="nowrap">
123
+ <?php echo esc_html( tribe_tickets_get_ticket_stock_message( $ticket ) ); ?>
124
  </td>
125
  </tr>
126
  <?php
src/admin-views/meta-box.php CHANGED
File without changes
src/admin-views/privacy.php CHANGED
File without changes
src/admin-views/rsvp-metabox-capacity.php CHANGED
File without changes
src/admin-views/tpp-metabox-capacity.php CHANGED
File without changes
src/deprecated/TribeEventsTicketObject.php CHANGED
File without changes
src/deprecated/TribeEventsTickets.php CHANGED
File without changes
src/deprecated/TribeEventsTicketsAttendeesTable.php CHANGED
File without changes
src/deprecated/TribeEventsTicketsMetabox.php CHANGED
File without changes
src/deprecated/TribeEventsTicketsPro.php CHANGED
File without changes
src/deprecated/Tribe__Events__Tickets__Attendees_Table.php CHANGED
File without changes
src/deprecated/Tribe__Events__Tickets__Metabox.php CHANGED
File without changes
src/deprecated/Tribe__Events__Tickets__Ticket_Object.php CHANGED
File without changes
src/deprecated/Tribe__Events__Tickets__Tickets.php CHANGED
File without changes
src/deprecated/Tribe__Events__Tickets__Tickets_Pro.php CHANGED
File without changes
src/resources/css/accordion.css CHANGED
@@ -51,8 +51,7 @@
51
  right: 0;
52
  width: 80%;
53
  top: 50%;
54
- -webkit-transform: translateY(-50%);
55
- transform: translateY(-50%);
56
  }
57
 
58
  .accordion-header.is-active::before {
51
  right: 0;
52
  width: 80%;
53
  top: 50%;
54
+ transform: translateY(-50%);
 
55
  }
56
 
57
  .accordion-header.is-active::before {
src/resources/css/accordion.min.css CHANGED
@@ -1 +1 @@
1
- .accordion-header{background:none;border:0;color:inherit;cursor:pointer;font-size:12px;font-weight:700;padding:10px 20px;box-sizing:border-box;position:relative;text-align:left;width:100%}.accordion-header:before{background-color:#000;border-radius:100%;box-sizing:border-box;color:#fff;content:"\f132";font-family:dashicons;font-size:10px;line-height:17px;font-weight:400;height:14px;left:0;padding:0;position:absolute;top:12px;width:15px;text-align:center;padding-right:1px}.accordion-header:after{content:"";border-bottom:1px solid #ddd;position:absolute;right:0;width:80%;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.accordion-header.is-active:before{content:"\f460";line-height:15px}.accordion-header:focus{outline:1px solid #5b9dd9}.accordion-header:hover{background:none}.tribe-tickets-editor-history:after{width:calc(100% - 80px)}.tribe_attendee_meta:after{width:calc(100% - 170px)}.tribe_advanced_meta:after{width:calc(100% - 105px)}.accordion-label:focus{outline:none}.accordion-content{display:none}.ticket_panel .accordion-content{margin:1em 0 2em}.accordion-content.is-active{display:block}
1
+ .accordion-header{background:none;border:0;color:inherit;cursor:pointer;font-size:12px;font-weight:700;padding:10px 20px;box-sizing:border-box;position:relative;text-align:left;width:100%}.accordion-header:before{background-color:#000;border-radius:100%;box-sizing:border-box;color:#fff;content:"\f132";font-family:dashicons;font-size:10px;line-height:17px;font-weight:400;height:14px;left:0;padding:0;position:absolute;top:12px;width:15px;text-align:center;padding-right:1px}.accordion-header:after{content:"";border-bottom:1px solid #ddd;position:absolute;right:0;width:80%;top:50%;transform:translateY(-50%)}.accordion-header.is-active:before{content:"\f460";line-height:15px}.accordion-header:focus{outline:1px solid #5b9dd9}.accordion-header:hover{background:none}.tribe-tickets-editor-history:after{width:calc(100% - 80px)}.tribe_attendee_meta:after{width:calc(100% - 170px)}.tribe_advanced_meta:after{width:calc(100% - 105px)}.accordion-label:focus{outline:none}.accordion-content{display:none}.ticket_panel .accordion-content{margin:1em 0 2em}.accordion-content.is-active{display:block}
src/resources/css/rsvp.css CHANGED
@@ -12,14 +12,6 @@
12
  padding: 20px 0;
13
  }
14
 
15
- .tribe-tickets-meta-row {
16
- display: none;
17
- }
18
-
19
- .tribe-tickets-has-rsvp .tribe-tickets-meta-row {
20
- display: table-row;
21
- }
22
-
23
  .tribe-tickets-attendee {
24
  padding: 10px;
25
  }
@@ -207,6 +199,7 @@
207
  background: #f8f8f8;
208
  border: 0;
209
  border-radius: 3px;
 
210
  position: relative;
211
  }
212
 
@@ -217,8 +210,31 @@
217
  border: 0;
218
  }
219
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
220
  .tribe-events-tickets td {
221
  padding: 8px 10px;
 
 
 
 
222
  }
223
 
224
  .tribe-events-tickets .woocommerce.add-to-cart {
@@ -255,8 +271,7 @@
255
  left: 50%;
256
  position: absolute;
257
  top: 50%;
258
- -webkit-transform: translate(-50%, -50%);
259
- transform: translate(-50%, -50%);
260
  width: 90%;
261
  }
262
 
@@ -311,7 +326,6 @@
311
 
312
  .tribe-events-tickets-rsvp .tribe-ticket.quantity {
313
  border-bottom: 1px solid #dfdfdf;
314
- width: 192px;
315
  }
316
 
317
  .tribe-events-tickets-rsvp .tribe-ticket.quantity input {
@@ -319,3 +333,45 @@
319
  padding: 5px 10px;
320
  width: 4.375em;
321
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12
  padding: 20px 0;
13
  }
14
 
 
 
 
 
 
 
 
 
15
  .tribe-tickets-attendee {
16
  padding: 10px;
17
  }
199
  background: #f8f8f8;
200
  border: 0;
201
  border-radius: 3px;
202
+ max-width: 100%;
203
  position: relative;
204
  }
205
 
210
  border: 0;
211
  }
212
 
213
+ .tribe-events-tickets tr {
214
+ display: -ms-flexbox;
215
+ display: flex;
216
+ -ms-flex-flow: row wrap;
217
+ flex-flow: row wrap;
218
+ }
219
+
220
+ .tribe-events-tickets tr:not(:first-child) {
221
+ border-top: 2px solid #dfdfdf;
222
+ }
223
+
224
+ .tribe-events-tickets tr.tribe-tickets-meta-row {
225
+ display: none;
226
+ }
227
+
228
+ .tribe-tickets-has-rsvp.tribe-events-tickets tr {
229
+ display: table-row;
230
+ }
231
+
232
  .tribe-events-tickets td {
233
  padding: 8px 10px;
234
+ display: -ms-flexbox;
235
+ display: flex;
236
+ max-width: 50%;
237
+ width: 50%;
238
  }
239
 
240
  .tribe-events-tickets .woocommerce.add-to-cart {
271
  left: 50%;
272
  position: absolute;
273
  top: 50%;
274
+ transform: translate(-50%, -50%);
 
275
  width: 90%;
276
  }
277
 
326
 
327
  .tribe-events-tickets-rsvp .tribe-ticket.quantity {
328
  border-bottom: 1px solid #dfdfdf;
 
329
  }
330
 
331
  .tribe-events-tickets-rsvp .tribe-ticket.quantity input {
333
  padding: 5px 10px;
334
  width: 4.375em;
335
  }
336
+
337
+ @media only screen and (min-width: 768px) {
338
+
339
+ .tribe-events-tickets tr {
340
+ display: table-row;
341
+ }
342
+
343
+ .tribe-events-tickets td {
344
+ display: table-cell;
345
+ max-width: none;
346
+ width: auto;
347
+ }
348
+ }
349
+
350
+ @media only screen and (max-width: 768px) {
351
+
352
+ .tribe-events-tickets td.tribe-ticket.quantity {
353
+ -ms-flex-flow: column;
354
+ flex-flow: column;
355
+ -ms-flex-order: 4;
356
+ order: 4;
357
+ }
358
+
359
+ .tribe-events-tickets td.tickets_submit {
360
+ -ms-flex-order: 5;
361
+ order: 5;
362
+ }
363
+
364
+ .tribe-events-tickets td.tickets_description {
365
+ min-width: 100%;
366
+ width: 100%;
367
+ }
368
+
369
+ .tribe-events-tickets td.tickets_submit .tribe-button {
370
+ margin-bottom: 20px;
371
+ margin-top: 0;
372
+ }
373
+
374
+ .tribe-events-tickets td.tickets_name {
375
+ font-weight: bold;
376
+ }
377
+ }
src/resources/css/rsvp.min.css CHANGED
@@ -1 +1 @@
1
- .tribe-rsvp{padding:20px 0}.tribe-tickets-meta-row{display:none}.tribe-tickets-has-rsvp .tribe-tickets-meta-row{display:table-row}.tribe-tickets-attendee{padding:10px}.tribe-events-style-full .tribe-events-tickets .tribe-tickets-attendee table,.tribe-events-style-full .tribe-events-tickets .tribe-tickets-attendee td,.tribe-events-style-full .tribe-events-tickets .tribe-tickets-attendee tr,.tribe-events-tickets .tribe-tickets-attendee table,.tribe-events-tickets .tribe-tickets-attendee td,.tribe-events-tickets .tribe-tickets-attendee tr{border:0}.tribe-rsvp-message-display .tribe-rsvp-messages{display:block}.tribe-rsvp-messages{display:none;padding:10px 10px 5px}.tribe-rsvp-message{border-radius:3px;border-style:solid;border-width:1px;font-size:12px;margin:0 0 5px;padding:0 .6em}.tribe-rsvp-message-success{background-color:#ffffe0;border-color:#e6db55}.tribe-rsvp-message-error{background-color:#ffebe8;border-color:#c00}.tribe-ticket-quantity{width:100%}.tickets-unavailable{font-style:italic}.tribe-rsvp-list{list-style:none;padding:0;margin:0}.tribe-rsvp-list>.tribe-item{min-height:105px;padding:20px;border:1px solid #ededed;border-bottom:0}.tribe-rsvp-list>.tribe-item:last-child{border-bottom:1px solid #ededed;margin-bottom:20px}.tribe-rsvp-list>.tribe-item.tribe-disabled{background-color:#efefef;border-color:#ddd;color:#717171}.tribe-rsvp-list>.tribe-item.tribe-disabled:last-child{border-bottom-color:#ddd}.tribe-rsvp-list>.tribe-item .tribe-answer{float:right;display:inline-block}.tribe-rsvp-list>.tribe-item table{border:0;margin:0}.tribe-rsvp-list>.tribe-item td{border:0}.list-attendee{color:#999;display:inline-block;letter-spacing:1px;text-transform:uppercase}.tribe-submit-tickets-form{margin-top:20px}.user-details{margin:0 0 1.5em}.user-details p{margin:0 0 .5em}.tribe-answer{line-height:2}.tribe-answer .type-label{margin-bottom:0;padding-right:.5em}.tribe-answer label{display:block}.tribe-answer select{background:#fff;border:1px solid #ddd;height:30px;line-height:1;margin-left:5px}.tribe-rsvp h2{margin-bottom:20px;line-height:1.2}.event-tickets-meta-label{font-weight:700;margin:0 1em 0 0}.tribe-theme-parent-twentysixteen .comment-content a,.tribe-theme-parent-twentysixteen .entry-content a,.tribe-theme-parent-twentysixteen .entry-footer a:hover,.tribe-theme-parent-twentysixteen .entry-summary a,.tribe-theme-parent-twentysixteen .logged-in-as a,.tribe-theme-parent-twentysixteen .pingback .comment-body>a,.tribe-theme-parent-twentysixteen .site-info a:hover,.tribe-theme-parent-twentysixteen .taxonomy-description a,.tribe-theme-parent-twentysixteen .textwidget a,.tribe-theme-twentysixteen .comment-content a,.tribe-theme-twentysixteen .entry-content a,.tribe-theme-twentysixteen .entry-footer a:hover,.tribe-theme-twentysixteen .entry-summary a,.tribe-theme-twentysixteen .logged-in-as a,.tribe-theme-twentysixteen .pingback .comment-body>a,.tribe-theme-twentysixteen .site-info a:hover,.tribe-theme-twentysixteen .taxonomy-description a,.tribe-theme-twentysixteen .textwidget a{box-shadow:none}.tribe-events-tickets-title.tribe--rsvp{margin:0}.tribe-events-style-full.tribe-events-style-theme h2.tribe-events-tickets-title{font-size:90%}.tribe-link-view-attendee{margin:15px 0}.tribe-events-tickets{background:#f8f8f8;border:0;border-radius:3px;position:relative}.tribe-events-tickets .woocommerce.add-to-cart,.tribe-events-tickets table,.tribe-events-tickets td,.tribe-events-tickets th{border:0}.tribe-events-tickets td{padding:8px 10px}.tribe-events-tickets .woocommerce.add-to-cart{padding:16px}.tribe-events-tickets .tickets_description,.tribe-events-tickets .tickets_name,.tribe-events-tickets .tickets_price,.tribe-events-tickets .woocommerce{border-bottom:1px solid #dfdfdf}.tribe-events-tickets .woocommerce .quantity input{background-color:#fff;border-radius:3px;margin-bottom:5px;padding:5px 10px;text-align:left;width:4.375em}.tribe-events-tickets .tribe-link-tickets-message{background:hsla(0,0%,78%,.8);bottom:0;left:0;position:absolute;right:0;text-align:center;top:0}.tribe-events-tickets .tribe-link-tickets-message .no-javascript-msg{left:50%;position:absolute;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:90%}.tribe-events-tickets .tribe-tickets-remaining{color:#777;display:block;font-size:11px}.tribe-events-tickets .tribe-tickets-attendees-list-optout label{color:#777;font-size:13px}.tribe-events-tickets .tribe-tickets-attendees-list-optout input[type=checkbox]+label,.tribe-events-tickets .tribe-tickets-attendees-list-optout input[type=radio]+label{display:inline-block}.tribe-events-tickets .tickets_description,.tribe-events-tickets .tickets_name,.tribe-events-tickets .tickets_name p,.tribe-events-tickets .tickets_price{border-bottom:1px solid #dfdfdf;color:#464646;font-size:15px;padding:16px 10px}.tribe-events-tickets input[type=date],.tribe-events-tickets input[type=datetime-local],.tribe-events-tickets input[type=email],.tribe-events-tickets input[type=month],.tribe-events-tickets input[type=number],.tribe-events-tickets input[type=password],.tribe-events-tickets input[type=search],.tribe-events-tickets input[type=tel],.tribe-events-tickets input[type=text],.tribe-events-tickets input[type=time],.tribe-events-tickets input[type=url],.tribe-events-tickets input[type=week],.tribe-events-tickets select,.tribe-events-tickets textarea{background:#fff}.tribe-events-tickets header{height:auto}.tribe-events-tickets-rsvp .tribe-ticket.quantity{border-bottom:1px solid #dfdfdf;width:192px}.tribe-events-tickets-rsvp .tribe-ticket.quantity input{margin-bottom:5px;padding:5px 10px;width:4.375em}
1
+ .tribe-rsvp{padding:20px 0}.tribe-tickets-attendee{padding:10px}.tribe-events-style-full .tribe-events-tickets .tribe-tickets-attendee table,.tribe-events-style-full .tribe-events-tickets .tribe-tickets-attendee td,.tribe-events-style-full .tribe-events-tickets .tribe-tickets-attendee tr,.tribe-events-tickets .tribe-tickets-attendee table,.tribe-events-tickets .tribe-tickets-attendee td,.tribe-events-tickets .tribe-tickets-attendee tr{border:0}.tribe-rsvp-message-display .tribe-rsvp-messages{display:block}.tribe-rsvp-messages{display:none;padding:10px 10px 5px}.tribe-rsvp-message{border-radius:3px;border-style:solid;border-width:1px;font-size:12px;margin:0 0 5px;padding:0 .6em}.tribe-rsvp-message-success{background-color:#ffffe0;border-color:#e6db55}.tribe-rsvp-message-error{background-color:#ffebe8;border-color:#c00}.tribe-ticket-quantity{width:100%}.tickets-unavailable{font-style:italic}.tribe-rsvp-list{list-style:none;padding:0;margin:0}.tribe-rsvp-list>.tribe-item{min-height:105px;padding:20px;border:1px solid #ededed;border-bottom:0}.tribe-rsvp-list>.tribe-item:last-child{border-bottom:1px solid #ededed;margin-bottom:20px}.tribe-rsvp-list>.tribe-item.tribe-disabled{background-color:#efefef;border-color:#ddd;color:#717171}.tribe-rsvp-list>.tribe-item.tribe-disabled:last-child{border-bottom-color:#ddd}.tribe-rsvp-list>.tribe-item .tribe-answer{float:right;display:inline-block}.tribe-rsvp-list>.tribe-item table{border:0;margin:0}.tribe-rsvp-list>.tribe-item td{border:0}.list-attendee{color:#999;display:inline-block;letter-spacing:1px;text-transform:uppercase}.tribe-submit-tickets-form{margin-top:20px}.user-details{margin:0 0 1.5em}.user-details p{margin:0 0 .5em}.tribe-answer{line-height:2}.tribe-answer .type-label{margin-bottom:0;padding-right:.5em}.tribe-answer label{display:block}.tribe-answer select{background:#fff;border:1px solid #ddd;height:30px;line-height:1;margin-left:5px}.tribe-rsvp h2{margin-bottom:20px;line-height:1.2}.event-tickets-meta-label{font-weight:700;margin:0 1em 0 0}.tribe-theme-parent-twentysixteen .comment-content a,.tribe-theme-parent-twentysixteen .entry-content a,.tribe-theme-parent-twentysixteen .entry-footer a:hover,.tribe-theme-parent-twentysixteen .entry-summary a,.tribe-theme-parent-twentysixteen .logged-in-as a,.tribe-theme-parent-twentysixteen .pingback .comment-body>a,.tribe-theme-parent-twentysixteen .site-info a:hover,.tribe-theme-parent-twentysixteen .taxonomy-description a,.tribe-theme-parent-twentysixteen .textwidget a,.tribe-theme-twentysixteen .comment-content a,.tribe-theme-twentysixteen .entry-content a,.tribe-theme-twentysixteen .entry-footer a:hover,.tribe-theme-twentysixteen .entry-summary a,.tribe-theme-twentysixteen .logged-in-as a,.tribe-theme-twentysixteen .pingback .comment-body>a,.tribe-theme-twentysixteen .site-info a:hover,.tribe-theme-twentysixteen .taxonomy-description a,.tribe-theme-twentysixteen .textwidget a{box-shadow:none}.tribe-events-tickets-title.tribe--rsvp{margin:0}.tribe-events-style-full.tribe-events-style-theme h2.tribe-events-tickets-title{font-size:90%}.tribe-link-view-attendee{margin:15px 0}.tribe-events-tickets{background:#f8f8f8;border:0;border-radius:3px;max-width:100%;position:relative}.tribe-events-tickets .woocommerce.add-to-cart,.tribe-events-tickets table,.tribe-events-tickets td,.tribe-events-tickets th{border:0}.tribe-events-tickets tr{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap}.tribe-events-tickets tr:not(:first-child){border-top:2px solid #dfdfdf}.tribe-events-tickets tr.tribe-tickets-meta-row{display:none}.tribe-tickets-has-rsvp.tribe-events-tickets tr{display:table-row}.tribe-events-tickets td{padding:8px 10px;display:-ms-flexbox;display:flex;max-width:50%;width:50%}.tribe-events-tickets .woocommerce.add-to-cart{padding:16px}.tribe-events-tickets .tickets_description,.tribe-events-tickets .tickets_name,.tribe-events-tickets .tickets_price,.tribe-events-tickets .woocommerce{border-bottom:1px solid #dfdfdf}.tribe-events-tickets .woocommerce .quantity input{background-color:#fff;border-radius:3px;margin-bottom:5px;padding:5px 10px;text-align:left;width:4.375em}.tribe-events-tickets .tribe-link-tickets-message{background:hsla(0,0%,78%,.8);bottom:0;left:0;position:absolute;right:0;text-align:center;top:0}.tribe-events-tickets .tribe-link-tickets-message .no-javascript-msg{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:90%}.tribe-events-tickets .tribe-tickets-remaining{color:#777;display:block;font-size:11px}.tribe-events-tickets .tribe-tickets-attendees-list-optout label{color:#777;font-size:13px}.tribe-events-tickets .tribe-tickets-attendees-list-optout input[type=checkbox]+label,.tribe-events-tickets .tribe-tickets-attendees-list-optout input[type=radio]+label{display:inline-block}.tribe-events-tickets .tickets_description,.tribe-events-tickets .tickets_name,.tribe-events-tickets .tickets_name p,.tribe-events-tickets .tickets_price{border-bottom:1px solid #dfdfdf;color:#464646;font-size:15px;padding:16px 10px}.tribe-events-tickets input[type=date],.tribe-events-tickets input[type=datetime-local],.tribe-events-tickets input[type=email],.tribe-events-tickets input[type=month],.tribe-events-tickets input[type=number],.tribe-events-tickets input[type=password],.tribe-events-tickets input[type=search],.tribe-events-tickets input[type=tel],.tribe-events-tickets input[type=text],.tribe-events-tickets input[type=time],.tribe-events-tickets input[type=url],.tribe-events-tickets input[type=week],.tribe-events-tickets select,.tribe-events-tickets textarea{background:#fff}.tribe-events-tickets header{height:auto}.tribe-events-tickets-rsvp .tribe-ticket.quantity{border-bottom:1px solid #dfdfdf}.tribe-events-tickets-rsvp .tribe-ticket.quantity input{margin-bottom:5px;padding:5px 10px;width:4.375em}@media only screen and (min-width:768px){.tribe-events-tickets tr{display:table-row}.tribe-events-tickets td{display:table-cell;max-width:none;width:auto}}@media only screen and (max-width:768px){.tribe-events-tickets td.tribe-ticket.quantity{-ms-flex-flow:column;flex-flow:column;-ms-flex-order:4;order:4}.tribe-events-tickets td.tickets_submit{-ms-flex-order:5;order:5}.tribe-events-tickets td.tickets_description{min-width:100%;width:100%}.tribe-events-tickets td.tickets_submit .tribe-button{margin-bottom:20px;margin-top:0}.tribe-events-tickets td.tickets_name{font-weight:700}}
src/resources/css/tickets-admin.css ADDED
@@ -0,0 +1,90 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * This CSS file was auto-generated via PostCSS
3
+ *
4
+ * Contributors should avoid editing this file, but instead edit the associated
5
+ * src/resources/postcss/ file. For more information, check out our engineering
6
+ * docs on how we handle CSS in our engineering docs.
7
+ *
8
+ * @see: http://moderntribe.github.io/products-engineering/css/
9
+ */
10
+
11
+ .tribe-tickets-column-attendees-link {
12
+ display: inline-block;
13
+ }
14
+
15
+ #ticket_form input[type=radio] {
16
+ margin-right: 5px;
17
+ }
18
+
19
+ #ticket_form span.datetime_seperator {
20
+ margin-left: 10px;
21
+ }
22
+
23
+ .ticket_list h4 {
24
+ border-bottom: 1px solid #e5e5e5;
25
+ padding-bottom: 6px;
26
+ text-transform: uppercase;
27
+ }
28
+
29
+ .ticket_list h4 a {
30
+ font-size: 11px;
31
+ font-weight: normal;
32
+ text-transform: none;
33
+ }
34
+
35
+ .ticket_list tr:hover td div.ticket_controls {
36
+ visibility: visible;
37
+ }
38
+
39
+ .ticket_list tr td {
40
+ padding: 10px;
41
+ vertical-align: middle;
42
+ }
43
+
44
+ .ticket_list tr td div.ticket_controls {
45
+ visibility: hidden;
46
+ }
47
+
48
+ .ticket_name p:first-child {
49
+ font-weight: bold;
50
+ }
51
+
52
+ #tribe_ticket_header_preview img {
53
+ height: auto !important;
54
+ max-width: 95% !important;
55
+ }
56
+
57
+ #tribe_ticket_header_remove {
58
+ display: none;
59
+ }
60
+
61
+ .ticket_time {
62
+ display: none;
63
+ }
64
+
65
+ .tribe-tickets-remaining {
66
+ font-size: 10px;
67
+ }
68
+
69
+ .eventtable {
70
+ margin: 0;
71
+ padding-top: 0;
72
+ width: 100%;
73
+ }
74
+
75
+ #event_tickets,
76
+ .eventtable.ticket_list.eventForm {
77
+ table-layout: fixed;
78
+ }
79
+
80
+ .tribe-strong-label {
81
+ font-weight: bold;
82
+ }
83
+
84
+ /* Specific goal of this rule is to prevent the number input busting the ticket form layout under Twenty Fifteen */
85
+
86
+ .tribe-theme-twentyfifteen .tribe-events-tickets input[type='number'] {
87
+ padding: .375em;
88
+ width: 100%;
89
+ }
90
+
src/resources/css/tickets-admin.min.css ADDED
@@ -0,0 +1 @@
 
1
+ .tribe-tickets-column-attendees-link{display:inline-block}#ticket_form input[type=radio]{margin-right:5px}#ticket_form span.datetime_seperator{margin-left:10px}.ticket_list h4{border-bottom:1px solid #e5e5e5;padding-bottom:6px;text-transform:uppercase}.ticket_list h4 a{font-size:11px;font-weight:400;text-transform:none}.ticket_list tr:hover td div.ticket_controls{visibility:visible}.ticket_list tr td{padding:10px;vertical-align:middle}.ticket_list tr td div.ticket_controls{visibility:hidden}.ticket_name p:first-child{font-weight:700}#tribe_ticket_header_preview img{height:auto!important;max-width:95%!important}#tribe_ticket_header_remove,.ticket_time{display:none}.tribe-tickets-remaining{font-size:10px}.eventtable{margin:0;padding-top:0;width:100%}#event_tickets,.eventtable.ticket_list.eventForm{table-layout:fixed}.tribe-strong-label{font-weight:700}.tribe-theme-twentyfifteen .tribe-events-tickets input[type=number]{padding:.375em;width:100%}
src/resources/css/tickets-attendees-print.css CHANGED
@@ -49,7 +49,7 @@
49
  box-shadow: none
50
  }
51
  #tribe-attendees-summary .welcome-panel-content {
52
- margin-left: 0
53
  }
54
  #tribe-attendees-summary .welcome-panel-column {
55
  padding: 0;
49
  box-shadow: none
50
  }
51
  #tribe-attendees-summary .welcome-panel-content {
52
+ margin: 0
53
  }
54
  #tribe-attendees-summary .welcome-panel-column {
55
  padding: 0;
src/resources/css/tickets-attendees-print.min.css CHANGED
@@ -1 +1 @@
1
- @media print{#adminmenuback,#adminmenuwrap,#icon-edit,#show-settings-link,#total_checkedin_wrapper,#tribe-attendees-summary .about-description,#wpbody-content #update-nag,#wpbody-content .update-nag,#wpfooter,.check-column,.column-check_in,.column-meta_details,.event-actions,.nav-tab-wrapper,.row-actions,.screen-meta-toggle,.tablenav,.wrap h2+h2{display:none}.wrap h2+h2{display:block}#wpfooter,#wpwrap #wpcontent{margin-left:0;padding-left:0}#wpwrap .wrap{margin:0}#wpwrap #wpbody-content{padding-bottom:0}#tribe-attendees-summary{margin:0;border:0;box-shadow:none}#tribe-attendees-summary .welcome-panel-content{margin-left:0}#tribe-attendees-summary .welcome-panel-column{padding:0;float:none}#tribe-attendees-summary{margin-bottom:30px}#tribe-attendees-summary .welcome-panel-column{width:32%;float:left;display:inline-block}#tribe-attendees-summary .welcome-panel-middle ul li strong{display:block}#tribe-attendees-summary .welcome-panel-last{border-left:0;float:right;width:25%}table.widefat.attendees{border-left:0;border-right:0}#wpwrap .widefat td,#wpwrap .widefat th{border-bottom:1px solid #e1e1e1;padding:0}#the-list tr{background:#fff;border:0}.wp-list-table thead tr{border-bottom:1px solid #e1e1e1}a.row-title{color:#000}.widefat tfoot tr th,.widefat thead tr th{background:none;text-shadow:none}.postbox h3{text-shadow:none}#total_tickets_sold{display:block}.ticket_list h4{font-size:13px}.ticket_list tr td{font-size:11px;line-height:1.4}.ticket_list tr td .totals{height:100px;line-height:2;padding-top:40px;width:75%}table{page-break-inside:auto}tr{page-break-after:auto;page-break-inside:avoid}thead{display:table-header-group}tfoot{display:table-footer-group}}
1
+ @media print{#adminmenuback,#adminmenuwrap,#icon-edit,#show-settings-link,#total_checkedin_wrapper,#tribe-attendees-summary .about-description,#wpbody-content #update-nag,#wpbody-content .update-nag,#wpfooter,.check-column,.column-check_in,.column-meta_details,.event-actions,.nav-tab-wrapper,.row-actions,.screen-meta-toggle,.tablenav,.wrap h2+h2{display:none}.wrap h2+h2{display:block}#wpfooter,#wpwrap #wpcontent{margin-left:0;padding-left:0}#wpwrap .wrap{margin:0}#wpwrap #wpbody-content{padding-bottom:0}#tribe-attendees-summary{margin:0;border:0;box-shadow:none}#tribe-attendees-summary .welcome-panel-content{margin:0}#tribe-attendees-summary .welcome-panel-column{padding:0;float:none}#tribe-attendees-summary{margin-bottom:30px}#tribe-attendees-summary .welcome-panel-column{width:32%;float:left;display:inline-block}#tribe-attendees-summary .welcome-panel-middle ul li strong{display:block}#tribe-attendees-summary .welcome-panel-last{border-left:0;float:right;width:25%}table.widefat.attendees{border-left:0;border-right:0}#wpwrap .widefat td,#wpwrap .widefat th{border-bottom:1px solid #e1e1e1;padding:0}#the-list tr{background:#fff;border:0}.wp-list-table thead tr{border-bottom:1px solid #e1e1e1}a.row-title{color:#000}.widefat tfoot tr th,.widefat thead tr th{background:none;text-shadow:none}.postbox h3{text-shadow:none}#total_tickets_sold{display:block}.ticket_list h4{font-size:13px}.ticket_list tr td{font-size:11px;line-height:1.4}.ticket_list tr td .totals{height:100px;line-height:2;padding-top:40px;width:75%}table{page-break-inside:auto}tr{page-break-after:auto;page-break-inside:avoid}thead{display:table-header-group}tfoot{display:table-footer-group}}
src/resources/css/tickets-attendees.css CHANGED
@@ -23,21 +23,17 @@
23
  }
24
 
25
  #tribe-attendees-summary .welcome-panel-column-container {
 
 
 
 
 
 
26
  position: static;
27
  position: initial;
28
  zoom: 1;
29
  }
30
 
31
- #tribe-attendees-summary .welcome-panel-column-container::before,
32
- #tribe-attendees-summary .welcome-panel-column-container::after {
33
- content: '';
34
- display: table;
35
- }
36
-
37
- #tribe-attendees-summary .welcome-panel-column-container::after {
38
- clear: both;
39
- }
40
-
41
  #tribe-attendees-summary .welcome-panel-column {
42
  padding: 20px 10px;
43
  }
@@ -50,25 +46,23 @@
50
 
51
  #tribe-attendees-summary .welcome-panel-last {
52
  border-left: 1px solid #eee;
53
- float: right;
 
 
 
54
  padding: 10px 20px 5px;
55
  zoom: 1;
56
  }
57
 
58
- #tribe-attendees-summary .welcome-panel-last::before,
59
- #tribe-attendees-summary .welcome-panel-last::after {
60
- content: '';
61
- display: table;
62
- }
63
-
64
- #tribe-attendees-summary .welcome-panel-last::after {
65
- clear: both;
66
- }
67
-
68
  #tribe-attendees-summary .welcome-panel-last li {
69
  margin-bottom: 2px;
70
  }
71
 
 
 
 
 
 
72
  #tribe-attendees-summary .welcome-panel-last .totals-header h3 {
73
  display: inline-block;
74
  width: auto;
@@ -206,22 +200,12 @@
206
  }
207
 
208
  .welcome-panel .welcome-panel-content {
209
- margin-left: 0;
210
  zoom: 1;
211
  }
212
 
213
- .welcome-panel .welcome-panel-content::before,
214
- .welcome-panel .welcome-panel-content::after {
215
- content: '';
216
- display: table;
217
- }
218
-
219
- .welcome-panel .welcome-panel-content::after {
220
- clear: both;
221
- }
222
-
223
  /*
224
- * Preserves utility of modal windows, especially the "Email Attendees" modal, in views above the
225
  * mobile view but under the upper limits of "tablet" views. The weird class names and !important declarations
226
  * are unfortunately needed to override Thickbox's inline styles.
227
  */
@@ -237,6 +221,11 @@ table.orders tr.refunded, table.orders tr.denied, table.orders tr.pending {
237
 
238
  @media screen and (max-width: 768px) {
239
 
 
 
 
 
 
240
  #tribe-attendees-summary .welcome-panel-column {
241
  float: none;
242
  padding: 20px 0;
@@ -288,7 +277,6 @@ table.orders tr.refunded, table.orders tr.denied, table.orders tr.pending {
288
  }
289
 
290
  #tribe-attendees-summary .welcome-panel-last ul {
291
- float: left;
292
  width: 50%;
293
  }
294
  }
23
  }
24
 
25
  #tribe-attendees-summary .welcome-panel-column-container {
26
+ display: -ms-flexbox;
27
+ display: flex;
28
+ -ms-flex-flow: row;
29
+ flex-flow: row;
30
+ -ms-flex-pack: justify;
31
+ justify-content: space-between;
32
  position: static;
33
  position: initial;
34
  zoom: 1;
35
  }
36
 
 
 
 
 
 
 
 
 
 
 
37
  #tribe-attendees-summary .welcome-panel-column {
38
  padding: 20px 10px;
39
  }
46
 
47
  #tribe-attendees-summary .welcome-panel-last {
48
  border-left: 1px solid #eee;
49
+ display: -ms-flexbox;
50
+ display: flex;
51
+ -ms-flex-flow: row wrap;
52
+ flex-flow: row wrap;
53
  padding: 10px 20px 5px;
54
  zoom: 1;
55
  }
56
 
 
 
 
 
 
 
 
 
 
 
57
  #tribe-attendees-summary .welcome-panel-last li {
58
  margin-bottom: 2px;
59
  }
60
 
61
+ #tribe-attendees-summary .welcome-panel-last .totals-header {
62
+ -ms-flex: 0 0 100%;
63
+ flex: 0 0 100%;
64
+ }
65
+
66
  #tribe-attendees-summary .welcome-panel-last .totals-header h3 {
67
  display: inline-block;
68
  width: auto;
200
  }
201
 
202
  .welcome-panel .welcome-panel-content {
203
+ margin: 0;
204
  zoom: 1;
205
  }
206
 
 
 
 
 
 
 
 
 
 
 
207
  /*
208
+ * Preserves utility of modal windows, especially the "Email Attendees" modal, in views above the
209
  * mobile view but under the upper limits of "tablet" views. The weird class names and !important declarations
210
  * are unfortunately needed to override Thickbox's inline styles.
211
  */
221
 
222
  @media screen and (max-width: 768px) {
223
 
224
+ #tribe-attendees-summary .welcome-panel-column-container {
225
+ -ms-flex-wrap: wrap;
226
+ flex-wrap: wrap;
227
+ }
228
+
229
  #tribe-attendees-summary .welcome-panel-column {
230
  float: none;
231
  padding: 20px 0;
277
  }
278
 
279
  #tribe-attendees-summary .welcome-panel-last ul {
 
280
  width: 50%;
281
  }
282
  }
src/resources/css/tickets-attendees.min.css CHANGED
@@ -1 +1 @@
1
- #tribe-attendees-summary{padding:0;position:relative}#tribe-attendees-summary .about-description,#tribe-attendees-summary h3{width:66%}#tribe-attendees-summary .about-description a{color:inherit}#tribe-attendees-summary .welcome-panel-column-container{position:static;zoom:1}#tribe-attendees-summary .welcome-panel-column-container:after,#tribe-attendees-summary .welcome-panel-column-container:before{content:"";display:table}#tribe-attendees-summary .welcome-panel-column-container:after{clear:both}#tribe-attendees-summary .welcome-panel-column{padding:20px 10px}#tribe-attendees-summary .welcome-panel-column li{line-height:1.4em;margin-bottom:6px;padding:0}#tribe-attendees-summary .welcome-panel-last{border-left:1px solid #eee;float:right;padding:10px 20px 5px;zoom:1}#tribe-attendees-summary .welcome-panel-last:after,#tribe-attendees-summary .welcome-panel-last:before{content:"";display:table}#tribe-attendees-summary .welcome-panel-last:after{clear:both}#tribe-attendees-summary .welcome-panel-last li{margin-bottom:2px}#tribe-attendees-summary .welcome-panel-last .totals-header h3{display:inline-block;width:auto}#tribe-attendees-summary .welcome-panel-last h4{font-size:1.5em;text-align:center}#tribe-attendees-summary .welcome-panel-last li{font-size:1.1em}.tribe-attendees-page .welcome-panel-content h3{margin-top:0}.tribe-attendees-page a.tickets_uncheckin{display:none}.tribe-attendees-page h4.tickets-summary{margin:0}.tribe-attendees-page .tickets_checked td{opacity:.6}.tribe-attendees-page .tickets_checked td.check_in{opacity:1}.tribe-attendees-page .tickets_checked a.tickets_checkin{display:none}.tribe-attendees-page .tickets_checked a.tickets_uncheckin{display:block;opacity:1}.tribe-attendees-page .tickets_checked .inline a.tickets_uncheckin{display:inline}.tribe-attendees-page .tickets_checkin{min-width:87px;text-align:center}.tribe-attendees-page .cancelled{font-style:italic}.tribe-attendees-page .cancelled .check_in{font-style:normal}.tribe-attendees-page .column-attendee_id,.tribe-attendees-page .column-order_id{width:70px}.tribe-attendees-page td.column-status{font-size:13px;width:80px}.tribe-attendees-page .column-security{width:120px}.tribe-attendees-page .column-check_in{width:90px}.tribe-attendees-page .attendees-actions a.email,.tribe-attendees-page .attendees-actions a.export,.tribe-attendees-page .attendees-actions input.print{float:left;margin:1px 8px 0 0}.tribe-attendees-email .tribe-attendees-email-message{float:left;margin:0}.tribe-attendees-email .button-primary{margin-top:3px}.tribe-attendees-email-message ul{font-size:13px;line-height:1.5;margin:.5em 0;padding:2px}.tribe-attendees-email-message ul li:last-child{margin-bottom:0}#attendees_email_wrapper{margin-top:10px;overflow:hidden;padding:20px}#attendees_email_wrapper label{display:block}#attendees_email_wrapper label span{display:inline-block;width:105px}#attendees_email_wrapper input[type=text],#attendees_email_wrapper select{width:285px}#attendees_email_wrapper .attendees_or{display:block;font-size:20px;margin:20px 0;text-align:center}.wp-list-table td.check_in .delete{text-align:center}.welcome-panel .welcome-panel-content{margin-left:0;zoom:1}.welcome-panel .welcome-panel-content:after,.welcome-panel .welcome-panel-content:before{content:"";display:table}.welcome-panel .welcome-panel-content:after{clear:both}table.orders tr.denied,table.orders tr.pending,table.orders tr.refunded{font-style:italic}@media screen and (max-width:768px){#tribe-attendees-summary .welcome-panel-column{float:none;padding:20px 0;width:100%}#tribe-attendees-summary .welcome-panel-column h3{display:inline-block;padding-left:15px}#tribe-attendees-summary .welcome-panel-column .tribe-event-meta-note div,#tribe-attendees-summary .welcome-panel-column ul,#tribe-attendees-summary .welcome-panel-middle>div{padding:0 15px}#tribe-attendees-summary .welcome-panel-last{width:100%}.welcome-panel .welcome-panel-content{margin-left:0;max-width:100%}}@media screen and (min-width:1024px){#tribe-attendees-summary .welcome-panel-column{display:inline-block;float:left;padding:20px 2%;width:29%;min-width:29%}}@media screen and (max-width:870px){#tribe-attendees-summary .welcome-panel-column li{display:list-item}#tribe-attendees-summary .welcome-panel-last ul{float:left;width:50%}}@media screen and (min-width:870px){#tribe-attendees-summary .welcome-panel-last ul:first-child{margin-bottom:0}#tribe-attendees-summary .welcome-panel-last ul:last-child{margin-top:0}}@media screen and (max-width:782px){.tribe-attendees-email-message .notice-dismiss{padding:9px}}@media screen and (max-width:782px){#TB_window{height:auto!important}#plugin-information-title{height:auto!important;overflow:hidden!important}#plugin-information-footer{position:relative!important}}@media screen and (max-width:440px){#TB_window{left:0!important;margin-left:0!important}#TB_iframeContent,#TB_window{width:100%!important}}
1
+ #tribe-attendees-summary{padding:0;position:relative}#tribe-attendees-summary .about-description,#tribe-attendees-summary h3{width:66%}#tribe-attendees-summary .about-description a{color:inherit}#tribe-attendees-summary .welcome-panel-column-container{display:-ms-flexbox;display:flex;-ms-flex-flow:row;flex-flow:row;-ms-flex-pack:justify;justify-content:space-between;position:static;zoom:1}#tribe-attendees-summary .welcome-panel-column{padding:20px 10px}#tribe-attendees-summary .welcome-panel-column li{line-height:1.4em;margin-bottom:6px;padding:0}#tribe-attendees-summary .welcome-panel-last{border-left:1px solid #eee;display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;padding:10px 20px 5px;zoom:1}#tribe-attendees-summary .welcome-panel-last li{margin-bottom:2px}#tribe-attendees-summary .welcome-panel-last .totals-header{-ms-flex:0 0 100%;flex:0 0 100%}#tribe-attendees-summary .welcome-panel-last .totals-header h3{display:inline-block;width:auto}#tribe-attendees-summary .welcome-panel-last h4{font-size:1.5em;text-align:center}#tribe-attendees-summary .welcome-panel-last li{font-size:1.1em}.tribe-attendees-page .welcome-panel-content h3{margin-top:0}.tribe-attendees-page a.tickets_uncheckin{display:none}.tribe-attendees-page h4.tickets-summary{margin:0}.tribe-attendees-page .tickets_checked td{opacity:.6}.tribe-attendees-page .tickets_checked td.check_in{opacity:1}.tribe-attendees-page .tickets_checked a.tickets_checkin{display:none}.tribe-attendees-page .tickets_checked a.tickets_uncheckin{display:block;opacity:1}.tribe-attendees-page .tickets_checked .inline a.tickets_uncheckin{display:inline}.tribe-attendees-page .tickets_checkin{min-width:87px;text-align:center}.tribe-attendees-page .cancelled{font-style:italic}.tribe-attendees-page .cancelled .check_in{font-style:normal}.tribe-attendees-page .column-attendee_id,.tribe-attendees-page .column-order_id{width:70px}.tribe-attendees-page td.column-status{font-size:13px;width:80px}.tribe-attendees-page .column-security{width:120px}.tribe-attendees-page .column-check_in{width:90px}.tribe-attendees-page .attendees-actions a.email,.tribe-attendees-page .attendees-actions a.export,.tribe-attendees-page .attendees-actions input.print{float:left;margin:1px 8px 0 0}.tribe-attendees-email .tribe-attendees-email-message{float:left;margin:0}.tribe-attendees-email .button-primary{margin-top:3px}.tribe-attendees-email-message ul{font-size:13px;line-height:1.5;margin:.5em 0;padding:2px}.tribe-attendees-email-message ul li:last-child{margin-bottom:0}#attendees_email_wrapper{margin-top:10px;overflow:hidden;padding:20px}#attendees_email_wrapper label{display:block}#attendees_email_wrapper label span{display:inline-block;width:105px}#attendees_email_wrapper input[type=text],#attendees_email_wrapper select{width:285px}#attendees_email_wrapper .attendees_or{display:block;font-size:20px;margin:20px 0;text-align:center}.wp-list-table td.check_in .delete{text-align:center}.welcome-panel .welcome-panel-content{margin:0;zoom:1}table.orders tr.denied,table.orders tr.pending,table.orders tr.refunded{font-style:italic}@media screen and (max-width:768px){#tribe-attendees-summary .welcome-panel-column-container{-ms-flex-wrap:wrap;flex-wrap:wrap}#tribe-attendees-summary .welcome-panel-column{float:none;padding:20px 0;width:100%}#tribe-attendees-summary .welcome-panel-column h3{display:inline-block;padding-left:15px}#tribe-attendees-summary .welcome-panel-column .tribe-event-meta-note div,#tribe-attendees-summary .welcome-panel-column ul,#tribe-attendees-summary .welcome-panel-middle>div{padding:0 15px}#tribe-attendees-summary .welcome-panel-last{width:100%}.welcome-panel .welcome-panel-content{margin-left:0;max-width:100%}}@media screen and (min-width:1024px){#tribe-attendees-summary .welcome-panel-column{display:inline-block;float:left;padding:20px 2%;width:29%;min-width:29%}}@media screen and (max-width:870px){#tribe-attendees-summary .welcome-panel-column li{display:list-item}#tribe-attendees-summary .welcome-panel-last ul{width:50%}}@media screen and (min-width:870px){#tribe-attendees-summary .welcome-panel-last ul:first-child{margin-bottom:0}#tribe-attendees-summary .welcome-panel-last ul:last-child{margin-top:0}}@media screen and (max-width:782px){.tribe-attendees-email-message .notice-dismiss{padding:9px}}@media screen and (max-width:782px){#TB_window{height:auto!important}#plugin-information-title{height:auto!important;overflow:hidden!important}#plugin-information-footer{position:relative!important}}@media screen and (max-width:440px){#TB_window{left:0!important;margin-left:0!important}#TB_iframeContent,#TB_window{width:100%!important}}
src/resources/css/tickets-refresh.css CHANGED
@@ -240,8 +240,7 @@
240
  padding: .5em;
241
  position: absolute;
242
  top: 50%;
243
- -webkit-transform: translateY(-50%);
244
- transform: translateY(-50%);
245
  z-index: 1;
246
  }
247
 
@@ -418,8 +417,7 @@ p.description {
418
  padding: .5em;
419
  position: absolute;
420
  top: 50%;
421
- -webkit-transform: translateY(-50%);
422
- transform: translateY(-50%);
423
  z-index: 1;
424
  }
425
 
@@ -495,7 +493,6 @@ p.description {
495
  margin-top: 5px;
496
  position: relative;
497
  top: auto;
498
- -webkit-transform: none;
499
  transform: none;
500
  width: 100%;
501
  }
@@ -519,7 +516,6 @@ p.description {
519
  margin-top: 5px;
520
  position: relative;
521
  top: auto;
522
- -webkit-transform: none;
523
  transform: none;
524
  width: 100%;
525
  }
240
  padding: .5em;
241
  position: absolute;
242
  top: 50%;
243
+ transform: translateY(-50%);
 
244
  z-index: 1;
245
  }
246
 
417
  padding: .5em;
418
  position: absolute;
419
  top: 50%;
420
+ transform: translateY(-50%);
 
421
  z-index: 1;
422
  }
423
 
493
  margin-top: 5px;
494
  position: relative;
495
  top: auto;
 
496
  transform: none;
497
  width: 100%;
498
  }
516
  margin-top: 5px;
517
  position: relative;
518
  top: auto;
 
519
  transform: none;
520
  width: 100%;
521
  }
src/resources/css/tickets-refresh.min.css CHANGED
@@ -1 +1 @@
1
- .screen_reader_text{clip:rect(0 0 0 0);clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}#poststuff .inside{margin-top:12px}.tribe-tickets-editor-blocker{background:hsla(0,0%,100%,.7);bottom:0;display:none;left:0;position:absolute;right:0;top:0;z-index:100000}.tribe-tickets-editor-blocker .spinner{left:50%;margin-left:-10px;margin-top:-10px;position:absolute;top:50%;z-index:100404}.tribe-tickets-editor-history-list{margin-left:20px}#event_tickets{position:relative}#event_tickets fieldset{border:0;padding:0;margin:0 0 1em}#event_tickets .ticket_form_left{font-weight:700}#event_tickets label{font-weight:400}#event_tickets input[type=color].ticket_form_right,#event_tickets input[type=date].ticket_form_right,#event_tickets input[type=datetime-local].ticket_form_right,#event_tickets input[type=datetime].ticket_form_right,#event_tickets input[type=email].ticket_form_right,#event_tickets input[type=month].ticket_form_right,#event_tickets input[type=number].ticket_form_right,#event_tickets input[type=password].ticket_form_right,#event_tickets input[type=range].ticket_form_right,#event_tickets input[type=search].ticket_form_right,#event_tickets input[type=tel].ticket_form_right,#event_tickets input[type=text].ticket_form_right,#event_tickets input[type=time].ticket_form_right,#event_tickets input[type=url].ticket_form_right,#event_tickets input[type=week].ticket_form_right,#event_tickets label.ticket_form_right,#event_tickets textarea.ticket_form_right{display:block}#event_tickets .tribe-description-small{font-size:.95em;margin-top:5px;color:#888}.ticket_panel{border:1px solid #a3a3a3;border-radius:5px;box-sizing:border-box;opacity:1;position:relative;padding:8px;visibility:visible;width:100%;will-change:transform}.ticket_panel[aria-hidden=true]{opacity:0;position:absolute;visibility:hidden}.ticket_panel section{margin:2em 0}.ticket_panel #tribe-tickets-image{margin-top:.5em}.ticket_panel.panel_base{border:0;padding:.5em 0 0}.ticket_panel.panel_edit{border:0}.ticket_panel.panel_settings h4{margin:0}.ticket_panel.panel_settings .settings_main{margin-bottom:0;margin-top:0}.ticket_panel.panel_settings .settings_main p{font-size:inherit}.ticket_panel h4,.ticket_title{text-transform:uppercase}.ticket_title{margin-top:0}.ticket_list_container{margin-bottom:20px}.tribe_no_capacity{margin:0}.ticket_delete{color:#a00}.ticket_delete:hover{color:#dc3232}#settings_form_toggle{margin-top:1em}.global_capacity_edit_button{background:none;border:0;color:#ccc;cursor:pointer;padding:0}.tribe-button-icon:before{font-family:dashicons;font-size:1.25em;left:-.25em;position:relative;vertical-align:middle}.tribe-button-icon .tribe-hidden{display:none}.tribe-button-icon.tribe-button-icon-plus:before{content:"\f132"}.tribe-button-icon.tribe-button-icon-edit:before{content:"\f464"}.tribe-button-icon.tribe-button-icon-settings:before{content:"\f111";top:-2px}.tribe-tickets-image-preview{margin-top:2em;max-width:200px}#tribe_ticket_header_image{margin-right:2em;vertical-align:baseline}#tribe_tickets_image_preview_filename{display:none;font-weight:700}#tribe_tickets_image_preview_filename.-active{display:inline}#tribe_tickets_image_preview_filename .dashicons{vertical-align:text-bottom}#tribe_tickets_image_preview_filename .filename{margin-left:.5em}.ticket_table_intro .button-secondary{float:right;margin-bottom:15px;margin-left:5px}.ticket_table_intro #ticket_form_total_capacity{display:inline-block;line-height:28px;position:relative}.ticket_table_intro #ticket_form_total_capacity .tooltip{background-color:#efefef;border-radius:3px;border:1px solid #a3a3a3;display:none;margin-left:.5em;padding:.5em;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);z-index:1}.ticket_table_intro #ticket_form_total_capacity:hover .tooltip{display:block}.ticket_table_intro #ticket_form_total_capacity .tooltip{left:100%;top:53%;white-space:nowrap}.input_block{margin-bottom:1em;position:relative}.input_block .ticket_form_left{display:block;box-sizing:border-box;float:left;margin:0;padding-left:0;padding-right:1em}.input_block input,.input_block textarea{max-width:calc(100% - 132px)}.input_block .ticket_field.hasDatepicker{border-radius:3px;font-size:13px;margin-bottom:0}.input_block .input_block,.input_block .ticket_form_right{display:block;margin-top:0}.input_block .input_block:last-child,.input_block .ticket_form_right:last-child{margin-bottom:0}.input_block .input_block{margin-top:1em}.input_block legend+.input_block{margin-top:0}.input_block .tribe_stock_block{padding-left:calc(20px + .4em)}.input_block .tribe_stock_block.tribe-active{padding-top:1em}.input_block label.ticket_form_right{margin-bottom:1em}.input_block .tribe_block_label{display:block}.input_block .ticket_stock_total{color:#666;font-style:italic;margin-left:1em}#ticket_form .input_block .ticket_stock_total_value{margin-right:0}.input_block .tribe-timepicker{width:6em}#tribe_ticket_provider_wrapper{clip:rect(0 0 0 0);clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}#event_tickets{font-size:12px}h4.ticket_form_title{font-size:1.2em;margin-top:0}#ticket_form input[type=checkbox],#ticket_form input[type=radio]{margin-right:.4em}.tribe_soft_note,p.description{color:#a3a3a3;font-size:inherit;font-style:normal}#ticket_form .ticket_advanced.history._show span:first-child,#ticket_form .ticket_advanced.history .toggle-history span:nth-child(2),#ticket_form .ticket_advanced.history ul{display:none}#ticket_form .ticket_advanced.history._show span:nth-child(2){display:inline}#ticket_form .ticket_advanced.history._show ul{display:block}.ticket_bottom{margin-top:1em}.tribe_preview{cursor:pointer}#ticket_form .tooltip_container{position:relative;display:inline;vertical-align:middle}#ticket_form .tooltip_container .tooltip{background-color:#efefef;border-radius:3px;border:1px solid #a3a3a3;display:none;margin-left:.5em;padding:.5em;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);z-index:1}#ticket_form .tooltip_container:hover .tooltip{display:block}#ticket_form .tooltip_container .tooltip{background-color:#efefef;left:100%;margin:0;width:200px}#settings_global_capacity_edit{background-color:#fff;border:1px solid #b4b9be;float:left;font-size:inherit;margin-right:10px}#settings_global_capacity_edit:disabled{background-color:transparent;border:0;box-shadow:none;color:#555}#settings_global_capacity_edit:enabled{margin-right:7px}#ticket_form .original_stock_cap span{margin-right:0}@media (min-width:782px){.ticket_panel{padding:16px}.input_block .input_block,.input_block .ticket_form_right{margin-left:132px}#ticket_bottom_right{float:right}}@media (min-width:400px){#settings_form_toggle{float:right;margin-top:0}}@media screen and (max-width:520px){.ticket_table_intro #ticket_form_total_capacity{width:100%}}@media screen and (max-width:782px){.ticket_table_intro #ticket_form_total_capacity .tooltip{left:auto;margin-top:5px;position:relative;top:auto;-webkit-transform:none;transform:none;width:100%}.input_block .ticket_form_left{float:none;display:inline-block;padding:0 0 6px}.input_block .tribe_stock_block{padding-left:36px}.input_block .tribe_stock_block.tribe-active{padding-top:5px}#ticket_form .tooltip_container .tooltip{left:auto;margin-top:5px;position:relative;top:auto;-webkit-transform:none;transform:none;width:100%}}@media (max-width:782px){#ticket_bottom_right{margin-top:1em}}@media screen and (max-width:390px){#ticket_form .tooltip_container{display:none}}
1
+ .screen_reader_text{clip:rect(0 0 0 0);clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}#poststuff .inside{margin-top:12px}.tribe-tickets-editor-blocker{background:hsla(0,0%,100%,.7);bottom:0;display:none;left:0;position:absolute;right:0;top:0;z-index:100000}.tribe-tickets-editor-blocker .spinner{left:50%;margin-left:-10px;margin-top:-10px;position:absolute;top:50%;z-index:100404}.tribe-tickets-editor-history-list{margin-left:20px}#event_tickets{position:relative}#event_tickets fieldset{border:0;padding:0;margin:0 0 1em}#event_tickets .ticket_form_left{font-weight:700}#event_tickets label{font-weight:400}#event_tickets input[type=color].ticket_form_right,#event_tickets input[type=date].ticket_form_right,#event_tickets input[type=datetime-local].ticket_form_right,#event_tickets input[type=datetime].ticket_form_right,#event_tickets input[type=email].ticket_form_right,#event_tickets input[type=month].ticket_form_right,#event_tickets input[type=number].ticket_form_right,#event_tickets input[type=password].ticket_form_right,#event_tickets input[type=range].ticket_form_right,#event_tickets input[type=search].ticket_form_right,#event_tickets input[type=tel].ticket_form_right,#event_tickets input[type=text].ticket_form_right,#event_tickets input[type=time].ticket_form_right,#event_tickets input[type=url].ticket_form_right,#event_tickets input[type=week].ticket_form_right,#event_tickets label.ticket_form_right,#event_tickets textarea.ticket_form_right{display:block}#event_tickets .tribe-description-small{font-size:.95em;margin-top:5px;color:#888}.ticket_panel{border:1px solid #a3a3a3;border-radius:5px;box-sizing:border-box;opacity:1;position:relative;padding:8px;visibility:visible;width:100%;will-change:transform}.ticket_panel[aria-hidden=true]{opacity:0;position:absolute;visibility:hidden}.ticket_panel section{margin:2em 0}.ticket_panel #tribe-tickets-image{margin-top:.5em}.ticket_panel.panel_base{border:0;padding:.5em 0 0}.ticket_panel.panel_edit{border:0}.ticket_panel.panel_settings h4{margin:0}.ticket_panel.panel_settings .settings_main{margin-bottom:0;margin-top:0}.ticket_panel.panel_settings .settings_main p{font-size:inherit}.ticket_panel h4,.ticket_title{text-transform:uppercase}.ticket_title{margin-top:0}.ticket_list_container{margin-bottom:20px}.tribe_no_capacity{margin:0}.ticket_delete{color:#a00}.ticket_delete:hover{color:#dc3232}#settings_form_toggle{margin-top:1em}.global_capacity_edit_button{background:none;border:0;color:#ccc;cursor:pointer;padding:0}.tribe-button-icon:before{font-family:dashicons;font-size:1.25em;left:-.25em;position:relative;vertical-align:middle}.tribe-button-icon .tribe-hidden{display:none}.tribe-button-icon.tribe-button-icon-plus:before{content:"\f132"}.tribe-button-icon.tribe-button-icon-edit:before{content:"\f464"}.tribe-button-icon.tribe-button-icon-settings:before{content:"\f111";top:-2px}.tribe-tickets-image-preview{margin-top:2em;max-width:200px}#tribe_ticket_header_image{margin-right:2em;vertical-align:baseline}#tribe_tickets_image_preview_filename{display:none;font-weight:700}#tribe_tickets_image_preview_filename.-active{display:inline}#tribe_tickets_image_preview_filename .dashicons{vertical-align:text-bottom}#tribe_tickets_image_preview_filename .filename{margin-left:.5em}.ticket_table_intro .button-secondary{float:right;margin-bottom:15px;margin-left:5px}.ticket_table_intro #ticket_form_total_capacity{display:inline-block;line-height:28px;position:relative}.ticket_table_intro #ticket_form_total_capacity .tooltip{background-color:#efefef;border-radius:3px;border:1px solid #a3a3a3;display:none;margin-left:.5em;padding:.5em;position:absolute;top:50%;transform:translateY(-50%);z-index:1}.ticket_table_intro #ticket_form_total_capacity:hover .tooltip{display:block}.ticket_table_intro #ticket_form_total_capacity .tooltip{left:100%;top:53%;white-space:nowrap}.input_block{margin-bottom:1em;position:relative}.input_block .ticket_form_left{display:block;box-sizing:border-box;float:left;margin:0;padding-left:0;padding-right:1em}.input_block input,.input_block textarea{max-width:calc(100% - 132px)}.input_block .ticket_field.hasDatepicker{border-radius:3px;font-size:13px;margin-bottom:0}.input_block .input_block,.input_block .ticket_form_right{display:block;margin-top:0}.input_block .input_block:last-child,.input_block .ticket_form_right:last-child{margin-bottom:0}.input_block .input_block{margin-top:1em}.input_block legend+.input_block{margin-top:0}.input_block .tribe_stock_block{padding-left:calc(20px + .4em)}.input_block .tribe_stock_block.tribe-active{padding-top:1em}.input_block label.ticket_form_right{margin-bottom:1em}.input_block .tribe_block_label{display:block}.input_block .ticket_stock_total{color:#666;font-style:italic;margin-left:1em}#ticket_form .input_block .ticket_stock_total_value{margin-right:0}.input_block .tribe-timepicker{width:6em}#tribe_ticket_provider_wrapper{clip:rect(0 0 0 0);clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}#event_tickets{font-size:12px}h4.ticket_form_title{font-size:1.2em;margin-top:0}#ticket_form input[type=checkbox],#ticket_form input[type=radio]{margin-right:.4em}.tribe_soft_note,p.description{color:#a3a3a3;font-size:inherit;font-style:normal}#ticket_form .ticket_advanced.history._show span:first-child,#ticket_form .ticket_advanced.history .toggle-history span:nth-child(2),#ticket_form .ticket_advanced.history ul{display:none}#ticket_form .ticket_advanced.history._show span:nth-child(2){display:inline}#ticket_form .ticket_advanced.history._show ul{display:block}.ticket_bottom{margin-top:1em}.tribe_preview{cursor:pointer}#ticket_form .tooltip_container{position:relative;display:inline;vertical-align:middle}#ticket_form .tooltip_container .tooltip{border-radius:3px;border:1px solid #a3a3a3;display:none;margin-left:.5em;padding:.5em;position:absolute;top:50%;transform:translateY(-50%);z-index:1}#ticket_form .tooltip_container:hover .tooltip{display:block}#ticket_form .tooltip_container .tooltip{background-color:#efefef;left:100%;margin:0;width:200px}#settings_global_capacity_edit{background-color:#fff;border:1px solid #b4b9be;float:left;font-size:inherit;margin-right:10px}#settings_global_capacity_edit:disabled{background-color:transparent;border:0;box-shadow:none;color:#555}#settings_global_capacity_edit:enabled{margin-right:7px}#ticket_form .original_stock_cap span{margin-right:0}@media (min-width:782px){.ticket_panel{padding:16px}.input_block .input_block,.input_block .ticket_form_right{margin-left:132px}#ticket_bottom_right{float:right}}@media (min-width:400px){#settings_form_toggle{float:right;margin-top:0}}@media screen and (max-width:520px){.ticket_table_intro #ticket_form_total_capacity{width:100%}}@media screen and (max-width:782px){.ticket_table_intro #ticket_form_total_capacity .tooltip{left:auto;margin-top:5px;position:relative;top:auto;transform:none;width:100%}.input_block .ticket_form_left{float:none;display:inline-block;padding:0 0 6px}.input_block .tribe_stock_block{padding-left:36px}.input_block .tribe_stock_block.tribe-active{padding-top:5px}#ticket_form .tooltip_container .tooltip{left:auto;margin-top:5px;position:relative;top:auto;transform:none;width:100%}}@media (max-width:782px){#ticket_bottom_right{margin-top:1em}}@media screen and (max-width:390px){#ticket_form .tooltip_container{display:none}}
src/resources/css/tpp.css CHANGED
@@ -102,17 +102,6 @@
102
 
103
  /* Tribe Commerce PayPal Table (differences only) */
104
 
105
- .tribe-events-tickets-tpp .tribe-ticket.quantity {
106
- border-bottom: 1px solid #dfdfdf;
107
- width: 192px;
108
- }
109
-
110
- .tribe-events-tickets-tpp .tribe-ticket.quantity input {
111
- margin-bottom: 5px;
112
- padding: 5px 10px;
113
- width: 4.375em;
114
- }
115
-
116
  .tribe-tickets-purchase-disabled {
117
  opacity: 0.3;
118
- }
102
 
103
  /* Tribe Commerce PayPal Table (differences only) */
104
 
 
 
 
 
 
 
 
 
 
 
 
105
  .tribe-tickets-purchase-disabled {
106
  opacity: 0.3;
107
+ }
src/resources/css/tpp.min.css CHANGED
@@ -1 +1 @@
1
- .tribe-tpp{padding:20px 0}.tribe-tickets-has-tpp .tribe-tickets-meta-row{display:table-row}.tribe-tpp-message-display .tribe-tpp-messages{display:block}.tribe-tpp-messages{display:none;padding:10px 10px 5px}.tribe-tpp-message{border-radius:3px;border-style:solid;border-width:1px;font-size:12px;margin:0 0 5px;padding:0 .6em}.tribe-tpp-message-success{background-color:#ffffe0;border-color:#e6db55}.tribe-tpp-message-error{background-color:#ffebe8;border-color:#c00}.tribe-tpp-list{list-style:none;margin:0;padding:0}.tribe-tpp-list>.tribe-item{border:1px solid #ededed;border-bottom:0;min-height:105px;padding:20px}.tribe-tpp-list>.tribe-item:last-child{border-bottom:1px solid #ededed;margin-bottom:20px}.tribe-tpp-list>.tribe-item.tribe-disabled{background-color:#efefef;border-color:#ddd;color:#717171}.tribe-tpp-list>.tribe-item.tribe-disabled:last-child{border-bottom-color:#ddd}.tribe-tpp-list>.tribe-item .tribe-answer{display:inline-block;float:right}.tribe-tpp-list>.tribe-item table{border:0;margin:0}.tribe-tpp-list>.tribe-item td{border:0}.tribe-tpp h2{line-height:1.2;margin-bottom:20px}.tribe-events-tickets-title.tribe--tpp{margin:0}.tribe-events-tickets-tpp .tribe-ticket.quantity{border-bottom:1px solid #dfdfdf;width:192px}.tribe-events-tickets-tpp .tribe-ticket.quantity input{margin-bottom:5px;padding:5px 10px;width:4.375em}.tribe-tickets-purchase-disabled{opacity:.3}
1
+ .tribe-tpp{padding:20px 0}.tribe-tickets-has-tpp .tribe-tickets-meta-row{display:table-row}.tribe-tpp-message-display .tribe-tpp-messages{display:block}.tribe-tpp-messages{display:none;padding:10px 10px 5px}.tribe-tpp-message{border-radius:3px;border-style:solid;border-width:1px;font-size:12px;margin:0 0 5px;padding:0 .6em}.tribe-tpp-message-success{background-color:#ffffe0;border-color:#e6db55}.tribe-tpp-message-error{background-color:#ffebe8;border-color:#c00}.tribe-tpp-list{list-style:none;margin:0;padding:0}.tribe-tpp-list>.tribe-item{border:1px solid #ededed;border-bottom:0;min-height:105px;padding:20px}.tribe-tpp-list>.tribe-item:last-child{border-bottom:1px solid #ededed;margin-bottom:20px}.tribe-tpp-list>.tribe-item.tribe-disabled{background-color:#efefef;border-color:#ddd;color:#717171}.tribe-tpp-list>.tribe-item.tribe-disabled:last-child{border-bottom-color:#ddd}.tribe-tpp-list>.tribe-item .tribe-answer{display:inline-block;float:right}.tribe-tpp-list>.tribe-item table{border:0;margin:0}.tribe-tpp-list>.tribe-item td{border:0}.tribe-tpp h2{line-height:1.2;margin-bottom:20px}.tribe-events-tickets-title.tribe--tpp{margin:0}.tribe-tickets-purchase-disabled{opacity:.3}
src/resources/postcss/rsvp.pcss CHANGED
@@ -9,14 +9,6 @@
9
  padding: 20px 0;
10
  }
11
 
12
- .tribe-tickets-meta-row {
13
- display: none;
14
- }
15
-
16
- .tribe-tickets-has-rsvp .tribe-tickets-meta-row {
17
- display: table-row;
18
- }
19
-
20
  .tribe-tickets-attendee {
21
  padding: 10px;
22
  }
@@ -203,6 +195,7 @@
203
  background: var(--table-background-color);
204
  border: 0;
205
  border-radius: 3px;
 
206
  position: relative;
207
 
208
 
@@ -213,8 +206,63 @@
213
  border: 0;
214
  }
215
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
216
  td {
217
  padding: 8px 10px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
218
  }
219
 
220
 
@@ -315,7 +363,6 @@
315
 
316
  .tribe-ticket.quantity {
317
  border-bottom: 1px solid var(--border-color);
318
- width: 192px;
319
 
320
  input {
321
  margin-bottom: 5px;
9
  padding: 20px 0;
10
  }
11
 
 
 
 
 
 
 
 
 
12
  .tribe-tickets-attendee {
13
  padding: 10px;
14
  }
195
  background: var(--table-background-color);
196
  border: 0;
197
  border-radius: 3px;
198
+ max-width: 100%;
199
  position: relative;
200
 
201
 
206
  border: 0;
207
  }
208
 
209
+ tr {
210
+ display: flex;
211
+ flex-flow: row wrap;
212
+
213
+ &:not(:first-child) {
214
+ border-top: 2px solid #dfdfdf;
215
+ }
216
+
217
+ @media only screen and (min-width: 768px) {
218
+ display: table-row;
219
+ }
220
+
221
+ &.tribe-tickets-meta-row {
222
+ display: none;
223
+ }
224
+
225
+ .tribe-tickets-has-rsvp& {
226
+ display: table-row;
227
+ }
228
+ }
229
+
230
  td {
231
  padding: 8px 10px;
232
+ display: flex;
233
+ max-width: 50%;
234
+ width: 50%;
235
+
236
+ @media only screen and (max-width: 768px) {
237
+ &.tribe-ticket.quantity {
238
+ flex-flow: column;
239
+ order: 4;
240
+ }
241
+
242
+ &.tickets_submit {
243
+ order: 5;
244
+ }
245
+
246
+ &.tickets_description {
247
+ min-width: 100%;
248
+ width: 100%;
249
+ }
250
+
251
+ &.tickets_submit .tribe-button {
252
+ margin-bottom: 20px;
253
+ margin-top: 0;
254
+ }
255
+
256
+ &.tickets_name {
257
+ font-weight: bold;
258
+ }
259
+ }
260
+
261
+ @media only screen and (min-width: 768px) {
262
+ display: table-cell;
263
+ max-width: none;
264
+ width: auto;
265
+ }
266
  }
267
 
268
 
363
 
364
  .tribe-ticket.quantity {
365
  border-bottom: 1px solid var(--border-color);
 
366
 
367
  input {
368
  margin-bottom: 5px;
src/resources/postcss/tickets-admin.pcss ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .tribe-tickets-column-attendees-link {
2
+ display: inline-block;
3
+ }
4
+
5
+ #ticket_form {
6
+ input[type=radio] {
7
+ margin-right: 5px;
8
+ }
9
+
10
+ span {
11
+ &.datetime_seperator {
12
+ margin-left: 10px;
13
+ }
14
+ }
15
+ }
16
+
17
+ .ticket_list {
18
+ h4 {
19
+ border-bottom: 1px solid #e5e5e5;
20
+ padding-bottom: 6px;
21
+ text-transform: uppercase;
22
+
23
+ a {
24
+ font-size: 11px;
25
+ font-weight: normal;
26
+ text-transform: none;
27
+ }
28
+ }
29
+
30
+ tr {
31
+ &:hover td div.ticket_controls {
32
+ visibility: visible;
33
+ }
34
+
35
+ td {
36
+ padding: 10px;
37
+ vertical-align: middle;
38
+
39
+ div.ticket_controls {
40
+ visibility: hidden;
41
+ }
42
+ }
43
+ }
44
+ }
45
+
46
+ .ticket_name p:first-child {
47
+ font-weight: bold;
48
+ }
49
+
50
+ #tribe_ticket_header_preview img {
51
+ height: auto !important;
52
+ max-width: 95% !important;
53
+ }
54
+
55
+ #tribe_ticket_header_remove {
56
+ display: none;
57
+ }
58
+
59
+ .ticket_time {
60
+ display: none;
61
+ }
62
+
63
+ .tribe-tickets-remaining {
64
+ font-size: 10px;
65
+ }
66
+
67
+ .eventtable {
68
+ margin: 0;
69
+ padding-top: 0;
70
+ width: 100%;
71
+ }
72
+
73
+ #event_tickets,
74
+ .eventtable.ticket_list.eventForm {
75
+ table-layout: fixed;
76
+ }
77
+
78
+ .tribe-strong-label {
79
+ font-weight: bold;
80
+ }
81
+
82
+ /* Specific goal of this rule is to prevent the number input busting the ticket form layout under Twenty Fifteen */
83
+ .tribe-theme-twentyfifteen .tribe-events-tickets input[type='number'] {
84
+ padding: .375em;
85
+ width: 100%;
86
+ }
87
+
src/resources/postcss/tickets-attendees-print.pcss CHANGED
@@ -45,7 +45,7 @@
45
  }
46
 
47
  #tribe-attendees-summary .welcome-panel-content {
48
- margin-left: 0;
49
  }
50
 
51
  #tribe-attendees-summary .welcome-panel-column {
45
  }
46
 
47
  #tribe-attendees-summary .welcome-panel-content {
48
+ margin: 0;
49
  }
50
 
51
  #tribe-attendees-summary .welcome-panel-column {
src/resources/postcss/tickets-attendees.pcss CHANGED
@@ -12,17 +12,14 @@
12
  }
13
 
14
  .welcome-panel-column-container {
 
 
 
15
  position: initial;
16
  *zoom: 1;
17
 
18
- &::before,
19
- &::after {
20
- content: '';
21
- display: table;
22
- }
23
-
24
- &::after {
25
- clear: both;
26
  }
27
  }
28
 
@@ -85,20 +82,11 @@
85
 
86
  .welcome-panel-last {
87
  border-left: 1px solid #eee;
88
- float: right;
 
89
  padding: 10px 20px 5px;
90
  *zoom: 1;
91
 
92
- &::before,
93
- &::after {
94
- content: '';
95
- display: table;
96
- }
97
-
98
- &::after {
99
- clear: both;
100
- }
101
-
102
  @media screen and (max-width: 768px) {
103
  width: 100%;
104
  }
@@ -108,8 +96,10 @@
108
  }
109
 
110
  .totals-header {
 
 
111
  h3 {
112
- display: inline-block;
113
  width: auto;
114
  }
115
  }
@@ -125,7 +115,6 @@
125
 
126
  ul {
127
  @media screen and (max-width: 870px) {
128
- float: left;
129
  width: 50%;
130
  }
131
 
@@ -288,19 +277,9 @@
288
 
289
  .welcome-panel {
290
  .welcome-panel-content {
291
- margin-left: 0;
292
  *zoom: 1;
293
 
294
- &::before,
295
- &::after {
296
- content: '';
297
- display: table;
298
- }
299
-
300
- &::after {
301
- clear: both;
302
- }
303
-
304
  @media screen and (max-width: 768px) {
305
  margin-left: 0;
306
  max-width: 100%;
@@ -309,7 +288,7 @@
309
  }
310
 
311
  /*
312
- * Preserves utility of modal windows, especially the "Email Attendees" modal, in views above the
313
  * mobile view but under the upper limits of "tablet" views. The weird class names and !important declarations
314
  * are unfortunately needed to override Thickbox's inline styles.
315
  */
12
  }
13
 
14
  .welcome-panel-column-container {
15
+ display: flex;
16
+ flex-flow: row;
17
+ justify-content: space-between;
18
  position: initial;
19
  *zoom: 1;
20
 
21
+ @media screen and (max-width: 768px) {
22
+ flex-wrap: wrap;
 
 
 
 
 
 
23
  }
24
  }
25
 
82
 
83
  .welcome-panel-last {
84
  border-left: 1px solid #eee;
85
+ display: flex;
86
+ flex-flow: row wrap;
87
  padding: 10px 20px 5px;
88
  *zoom: 1;
89
 
 
 
 
 
 
 
 
 
 
 
90
  @media screen and (max-width: 768px) {
91
  width: 100%;
92
  }
96
  }
97
 
98
  .totals-header {
99
+ flex: 0 0 100%;
100
+
101
  h3 {
102
+ display: inline-block;
103
  width: auto;
104
  }
105
  }
115
 
116
  ul {
117
  @media screen and (max-width: 870px) {
 
118
  width: 50%;
119
  }
120
 
277
 
278
  .welcome-panel {
279
  .welcome-panel-content {
280
+ margin: 0;
281
  *zoom: 1;
282
 
 
 
 
 
 
 
 
 
 
 
283
  @media screen and (max-width: 768px) {
284
  margin-left: 0;
285
  max-width: 100%;
288
  }
289
 
290
  /*
291
+ * Preserves utility of modal windows, especially the "Email Attendees" modal, in views above the
292
  * mobile view but under the upper limits of "tablet" views. The weird class names and !important declarations
293
  * are unfortunately needed to override Thickbox's inline styles.
294
  */
src/resources/postcss/tpp.pcss CHANGED
@@ -1,10 +1,3 @@
1
- :root {
2
- --text-light-color: #777;
3
- --text-dark-color: #464646;
4
- --border-color: #dfdfdf;
5
- --table-background-color: #f8f8f8;
6
- }
7
-
8
  .tribe-tpp {
9
  padding: 20px 0;
10
  }
@@ -102,21 +95,6 @@
102
  }
103
 
104
  /* Tribe Commerce PayPal Table (differences only) */
105
- .tribe-events-tickets-tpp {
106
-
107
- .tribe-ticket.quantity {
108
- border-bottom: 1px solid var(--border-color);
109
- width: 192px;
110
-
111
- input {
112
- margin-bottom: 5px;
113
- padding: 5px 10px;
114
- width: 4.375em;
115
- }
116
- }
117
- }
118
-
119
-
120
  .tribe-tickets-purchase-disabled {
121
  opacity: 0.3;
122
- }
 
 
 
 
 
 
 
1
  .tribe-tpp {
2
  padding: 20px 0;
3
  }
95
  }
96
 
97
  /* Tribe Commerce PayPal Table (differences only) */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
98
  .tribe-tickets-purchase-disabled {
99
  opacity: 0.3;
100
+ }
src/template-tags/tickets.php CHANGED
@@ -255,8 +255,7 @@ if ( ! function_exists( 'tribe_tickets_buy_button' ) ) {
255
  }
256
  }
257
 
258
- $button .= '<button type="submit" name="tickets_process" class="tribe-button">' . $button_label . '</button>'
259
- . '</form>';
260
 
261
  $parts[ $type . '-button' ] = $html['button'] = $button;
262
  }
@@ -430,7 +429,7 @@ if ( ! function_exists( 'tribe_tickets_get_ticket_stock_message' ) ) {
430
  $status_counts[] = sprintf( _x( '%1$d available of shared capacity', 'ticket shared capacity message (remaining stock)', 'event-tickets' ), tribe_tickets_get_readable_amount( $available ) );
431
  } else {
432
  // It's "own stock". We use the $stock value
433
- $status_counts[] = sprintf( _x( '%1$d available', 'ticket stock message (remaining stock)', 'event-tickets' ), tribe_tickets_get_readable_amount( $stock ) );
434
  }
435
  }
436
 
255
  }
256
  }
257
 
258
+ $button .= '<button type="submit" name="tickets_process" class="tribe-button">' . $button_label . '</button></form>';
 
259
 
260
  $parts[ $type . '-button' ] = $html['button'] = $button;
261
  }
429
  $status_counts[] = sprintf( _x( '%1$d available of shared capacity', 'ticket shared capacity message (remaining stock)', 'event-tickets' ), tribe_tickets_get_readable_amount( $available ) );
430
  } else {
431
  // It's "own stock". We use the $stock value
432
+ $status_counts[] = sprintf( _x( '%1$d available', 'ticket stock message (remaining stock)', 'event-tickets' ), tribe_tickets_get_readable_amount( $available ) );
433
  }
434
  }
435
 
src/views/tickets/rsvp.php CHANGED
@@ -6,7 +6,7 @@
6
  *
7
  * [your-theme]/tribe-events/tickets/rsvp.php
8
  *
9
- * @version 4.7.1
10
  *
11
  * @var bool $must_login
12
  */
@@ -100,6 +100,7 @@ $messages_class = $messages ? 'tribe-rsvp-message-display' : '';
100
  <td class="tickets_name">
101
  <?php echo esc_html( $ticket->name ); ?>
102
  </td>
 
103
  <td class="tickets_description" colspan="2">
104
  <?php echo esc_html( ( $ticket->show_description() ? $ticket->description : '' ) ); ?>
105
  </td>
@@ -234,14 +235,14 @@ $messages_class = $messages ? 'tribe-rsvp-message-display' : '';
234
 
235
  <?php
236
  $content = ob_get_clean();
237
- if ( $is_there_any_product ) {
238
- echo $content;
239
 
240
- // If we have rendered tickets there is generally no need to display a 'tickets unavailable' message
 
241
  // for this post
242
  $this->do_not_show_tickets_unavailable_message();
243
  } else {
244
- // Indicate that we did not render any tickets, so a 'tickets unavailable' message may be
245
  // appropriate (depending on whether other ticket providers are active and have a similar
246
  // result)
247
  $this->maybe_show_tickets_unavailable_message( $tickets );
6
  *
7
  * [your-theme]/tribe-events/tickets/rsvp.php
8
  *
9
+ * @version 4.8.1
10
  *
11
  * @var bool $must_login
12
  */
100
  <td class="tickets_name">
101
  <?php echo esc_html( $ticket->name ); ?>
102
  </td>
103
+
104
  <td class="tickets_description" colspan="2">
105
  <?php echo esc_html( ( $ticket->show_description() ? $ticket->description : '' ) ); ?>
106
  </td>
235
 
236
  <?php
237
  $content = ob_get_clean();
238
+ echo $content;
 
239
 
240
+ if ( $is_there_any_product ) {
241
+ // If we have available tickets there is generally no need to display a 'tickets unavailable' message
242
  // for this post
243
  $this->do_not_show_tickets_unavailable_message();
244
  } else {
245
+ // Indicate that there are not any tickets, so a 'tickets unavailable' message may be
246
  // appropriate (depending on whether other ticket providers are active and have a similar
247
  // result)
248
  $this->maybe_show_tickets_unavailable_message( $tickets );