Event Tickets - Version 4.10.10

Version Description

Download this release

Release Info

Developer ModernTribe
Plugin Icon 128x128 Event Tickets
Version 4.10.10
Comparing to
See all releases

Code changes from version 4.10.9 to 4.10.10

Files changed (65) hide show
  1. common/lang/tribe-common-af.mo +0 -0
  2. common/lang/tribe-common-ar.mo +0 -0
  3. common/lang/tribe-common-bg_BG.mo +0 -0
  4. common/lang/tribe-common-ca.mo +0 -0
  5. common/lang/tribe-common-cs_CZ.mo +0 -0
  6. common/lang/tribe-common-da_DK.mo +0 -0
  7. common/lang/tribe-common-de_DE.mo +0 -0
  8. common/lang/tribe-common-el.mo +0 -0
  9. common/lang/tribe-common-en_GB.mo +0 -0
  10. common/lang/tribe-common-es_ES.mo +0 -0
  11. common/lang/tribe-common-et.mo +0 -0
  12. common/lang/tribe-common-fi.mo +0 -0
  13. common/lang/tribe-common-fr_CA.mo +0 -0
  14. common/lang/tribe-common-fr_FR.mo +0 -0
  15. common/lang/tribe-common-hu_HU.mo +0 -0
  16. common/lang/tribe-common-id_ID.mo +0 -0
  17. common/lang/tribe-common-is_IS.mo +0 -0
  18. common/lang/tribe-common-it_IT.mo +0 -0
  19. common/lang/tribe-common-ja.mo +0 -0
  20. common/lang/tribe-common-lt_LT.mo +0 -0
  21. common/lang/tribe-common-lv.mo +0 -0
  22. common/lang/tribe-common-nb_NO.mo +0 -0
  23. common/lang/tribe-common-nl_NL.mo +0 -0
  24. common/lang/tribe-common-pl_PL.mo +0 -0
  25. common/lang/tribe-common-pt_BR.mo +0 -0
  26. common/lang/tribe-common-pt_PT.mo +0 -0
  27. common/lang/tribe-common-ro_RO.mo +0 -0
  28. common/lang/tribe-common-ru_RU.mo +0 -0
  29. common/lang/tribe-common-sk_SK.mo +0 -0
  30. common/lang/tribe-common-sl_SI.mo +0 -0
  31. common/lang/tribe-common-sr_RS.mo +0 -0
  32. common/lang/tribe-common-sv_SE.mo +0 -0
  33. common/lang/tribe-common-tr_TR.mo +0 -0
  34. common/lang/tribe-common-zh_CN.mo +0 -0
  35. common/lang/tribe-common-zh_TW.mo +0 -0
  36. common/lang/tribe-common.pot +36 -36
  37. common/src/Tribe/Main.php +1 -1
  38. common/src/functions/multibyte.php +31 -0
  39. common/vendor/autoload.php +1 -1
  40. common/vendor/autoload_52.php +1 -1
  41. common/vendor/composer/autoload_real.php +4 -4
  42. common/vendor/composer/autoload_real_52.php +3 -3
  43. common/vendor/composer/autoload_static.php +5 -5
  44. event-tickets.php +1 -1
  45. lang/event-tickets.pot +22 -22
  46. readme.txt +10 -1
  47. src/Tribe/Attendees.php +4 -4
  48. src/Tribe/Commerce/PayPal/Main.php +19 -4
  49. src/Tribe/Editor/Blocks/Rsvp.php +1 -2
  50. src/Tribe/Editor/Blocks/Tickets.php +1 -2
  51. src/Tribe/Main.php +2 -2
  52. src/Tribe/REST/V1/Post_Repository.php +1 -1
  53. src/Tribe/RSVP.php +6 -7
  54. src/Tribe/Status/Abstract_Commerce.php +38 -26
  55. src/Tribe/Ticket_Object.php +56 -52
  56. src/Tribe/Ticket_Repository.php +2 -2
  57. src/Tribe/Tickets.php +5 -11
  58. src/Tribe/Views/V2/Models/Tickets.php +2 -2
  59. src/Tribe/Views/V2/Service_Provider.php +1 -1
  60. src/admin-views/tribe-options-tickets.php +1 -1
  61. src/views/blocks/tickets.php +3 -2
  62. src/views/tickets/tpp.php +2 -2
  63. vendor/autoload.php +1 -1
  64. vendor/composer/autoload_real.php +4 -4
  65. vendor/composer/autoload_static.php +4 -4
common/lang/tribe-common-af.mo CHANGED
Binary file
common/lang/tribe-common-ar.mo CHANGED
Binary file
common/lang/tribe-common-bg_BG.mo CHANGED
Binary file
common/lang/tribe-common-ca.mo CHANGED
Binary file
common/lang/tribe-common-cs_CZ.mo CHANGED
Binary file
common/lang/tribe-common-da_DK.mo CHANGED
Binary file
common/lang/tribe-common-de_DE.mo CHANGED
Binary file
common/lang/tribe-common-el.mo CHANGED
Binary file
common/lang/tribe-common-en_GB.mo CHANGED
Binary file
common/lang/tribe-common-es_ES.mo CHANGED
Binary file
common/lang/tribe-common-et.mo CHANGED
Binary file
common/lang/tribe-common-fi.mo CHANGED
Binary file
common/lang/tribe-common-fr_CA.mo CHANGED
Binary file
common/lang/tribe-common-fr_FR.mo CHANGED
Binary file
common/lang/tribe-common-hu_HU.mo CHANGED
Binary file
common/lang/tribe-common-id_ID.mo CHANGED
Binary file
common/lang/tribe-common-is_IS.mo CHANGED
Binary file
common/lang/tribe-common-it_IT.mo CHANGED
Binary file
common/lang/tribe-common-ja.mo CHANGED
Binary file
common/lang/tribe-common-lt_LT.mo CHANGED
Binary file
common/lang/tribe-common-lv.mo CHANGED
Binary file
common/lang/tribe-common-nb_NO.mo CHANGED
Binary file
common/lang/tribe-common-nl_NL.mo CHANGED
Binary file
common/lang/tribe-common-pl_PL.mo CHANGED
Binary file
common/lang/tribe-common-pt_BR.mo CHANGED
Binary file
common/lang/tribe-common-pt_PT.mo CHANGED
Binary file
common/lang/tribe-common-ro_RO.mo CHANGED
Binary file
common/lang/tribe-common-ru_RU.mo CHANGED
Binary file
common/lang/tribe-common-sk_SK.mo CHANGED
Binary file
common/lang/tribe-common-sl_SI.mo CHANGED
Binary file
common/lang/tribe-common-sr_RS.mo CHANGED
Binary file
common/lang/tribe-common-sv_SE.mo CHANGED
Binary file
common/lang/tribe-common-tr_TR.mo CHANGED
Binary file
common/lang/tribe-common-zh_CN.mo CHANGED
Binary file
common/lang/tribe-common-zh_TW.mo CHANGED
Binary file
common/lang/tribe-common.pot CHANGED
@@ -2,13 +2,13 @@
2
  # This file is distributed under the same license as the Tribe Common package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: Tribe Common 4.9.17\n"
6
  "Report-Msgid-Bugs-To: http://m.tri.be/191x\n"
7
- "POT-Creation-Date: 2019-09-08 14:53:37+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
- "PO-Revision-Date: 2019-09-08 14:53\n"
12
  "Last-Translator: \n"
13
  "Language-Team: \n"
14
 
@@ -989,135 +989,135 @@ msgid "Macau"
989
  msgstr ""
990
 
991
  #: src/Tribe/Languages/Locations.php:185
992
- msgid "Macedonia"
993
  msgstr ""
994
 
995
  #: src/Tribe/Languages/Locations.php:186
996
- msgid "Madagascar"
997
  msgstr ""
998
 
999
  #: src/Tribe/Languages/Locations.php:187
1000
- msgid "Malawi"
1001
  msgstr ""
1002
 
1003
  #: src/Tribe/Languages/Locations.php:188
1004
- msgid "Malaysia"
1005
  msgstr ""
1006
 
1007
  #: src/Tribe/Languages/Locations.php:189
1008
- msgid "Maldives"
1009
  msgstr ""
1010
 
1011
  #: src/Tribe/Languages/Locations.php:190
1012
- msgid "Mali"
1013
  msgstr ""
1014
 
1015
  #: src/Tribe/Languages/Locations.php:191
1016
- msgid "Malta"
1017
  msgstr ""
1018
 
1019
  #: src/Tribe/Languages/Locations.php:192
1020
- msgid "Marshall Islands"
1021
  msgstr ""
1022
 
1023
  #: src/Tribe/Languages/Locations.php:193
1024
- msgid "Martinique"
1025
  msgstr ""
1026
 
1027
  #: src/Tribe/Languages/Locations.php:194
1028
- msgid "Mauritania"
1029
  msgstr ""
1030
 
1031
  #: src/Tribe/Languages/Locations.php:195
1032
- msgid "Mauritius"
1033
  msgstr ""
1034
 
1035
  #: src/Tribe/Languages/Locations.php:196
1036
- msgid "Mayotte"
1037
  msgstr ""
1038
 
1039
  #: src/Tribe/Languages/Locations.php:197
1040
- msgid "Mexico"
1041
  msgstr ""
1042
 
1043
  #: src/Tribe/Languages/Locations.php:198
1044
- msgid "Micronesia, Federated States of"
1045
  msgstr ""
1046
 
1047
  #: src/Tribe/Languages/Locations.php:199
1048
- msgid "Moldova, Republic of"
1049
  msgstr ""
1050
 
1051
  #: src/Tribe/Languages/Locations.php:200
1052
- msgid "Monaco"
1053
  msgstr ""
1054
 
1055
  #: src/Tribe/Languages/Locations.php:201
1056
- msgid "Mongolia"
1057
  msgstr ""
1058
 
1059
  #: src/Tribe/Languages/Locations.php:202
1060
- msgid "Montenegro"
1061
  msgstr ""
1062
 
1063
  #: src/Tribe/Languages/Locations.php:203
1064
- msgid "Montserrat"
1065
  msgstr ""
1066
 
1067
  #: src/Tribe/Languages/Locations.php:204
1068
- msgid "Morocco"
1069
  msgstr ""
1070
 
1071
  #: src/Tribe/Languages/Locations.php:205
1072
- msgid "Mozambique"
1073
  msgstr ""
1074
 
1075
  #: src/Tribe/Languages/Locations.php:206
1076
- msgid "Myanmar"
1077
  msgstr ""
1078
 
1079
  #: src/Tribe/Languages/Locations.php:207
1080
- msgid "Namibia"
1081
  msgstr ""
1082
 
1083
  #: src/Tribe/Languages/Locations.php:208
1084
- msgid "Nauru"
1085
  msgstr ""
1086
 
1087
  #: src/Tribe/Languages/Locations.php:209
1088
- msgid "Nepal"
1089
  msgstr ""
1090
 
1091
  #: src/Tribe/Languages/Locations.php:210
1092
- msgid "Netherlands"
1093
  msgstr ""
1094
 
1095
  #: src/Tribe/Languages/Locations.php:211
1096
- msgid "New Caledonia"
1097
  msgstr ""
1098
 
1099
  #: src/Tribe/Languages/Locations.php:212
1100
- msgid "New Zealand"
1101
  msgstr ""
1102
 
1103
  #: src/Tribe/Languages/Locations.php:213
1104
- msgid "Nicaragua"
1105
  msgstr ""
1106
 
1107
  #: src/Tribe/Languages/Locations.php:214
1108
- msgid "Niger"
1109
  msgstr ""
1110
 
1111
  #: src/Tribe/Languages/Locations.php:215
1112
- msgid "Nigeria"
1113
  msgstr ""
1114
 
1115
  #: src/Tribe/Languages/Locations.php:216
1116
- msgid "Niue"
1117
  msgstr ""
1118
 
1119
  #: src/Tribe/Languages/Locations.php:217
1120
- msgid "Norfolk Island"
1121
  msgstr ""
1122
 
1123
  #: src/Tribe/Languages/Locations.php:218
2
  # This file is distributed under the same license as the Tribe Common package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Tribe Common 4.9.19\n"
6
  "Report-Msgid-Bugs-To: http://m.tri.be/191x\n"
7
+ "POT-Creation-Date: 2019-10-09 02:57:19+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
+ "PO-Revision-Date: 2019-10-09 02:57\n"
12
  "Last-Translator: \n"
13
  "Language-Team: \n"
14
 
989
  msgstr ""
990
 
991
  #: src/Tribe/Languages/Locations.php:185
992
+ msgid "Madagascar"
993
  msgstr ""
994
 
995
  #: src/Tribe/Languages/Locations.php:186
996
+ msgid "Malawi"
997
  msgstr ""
998
 
999
  #: src/Tribe/Languages/Locations.php:187
1000
+ msgid "Malaysia"
1001
  msgstr ""
1002
 
1003
  #: src/Tribe/Languages/Locations.php:188
1004
+ msgid "Maldives"
1005
  msgstr ""
1006
 
1007
  #: src/Tribe/Languages/Locations.php:189
1008
+ msgid "Mali"
1009
  msgstr ""
1010
 
1011
  #: src/Tribe/Languages/Locations.php:190
1012
+ msgid "Malta"
1013
  msgstr ""
1014
 
1015
  #: src/Tribe/Languages/Locations.php:191
1016
+ msgid "Marshall Islands"
1017
  msgstr ""
1018
 
1019
  #: src/Tribe/Languages/Locations.php:192
1020
+ msgid "Martinique"
1021
  msgstr ""
1022
 
1023
  #: src/Tribe/Languages/Locations.php:193
1024
+ msgid "Mauritania"
1025
  msgstr ""
1026
 
1027
  #: src/Tribe/Languages/Locations.php:194
1028
+ msgid "Mauritius"
1029
  msgstr ""
1030
 
1031
  #: src/Tribe/Languages/Locations.php:195
1032
+ msgid "Mayotte"
1033
  msgstr ""
1034
 
1035
  #: src/Tribe/Languages/Locations.php:196
1036
+ msgid "Mexico"
1037
  msgstr ""
1038
 
1039
  #: src/Tribe/Languages/Locations.php:197
1040
+ msgid "Micronesia, Federated States of"
1041
  msgstr ""
1042
 
1043
  #: src/Tribe/Languages/Locations.php:198
1044
+ msgid "Moldova, Republic of"
1045
  msgstr ""
1046
 
1047
  #: src/Tribe/Languages/Locations.php:199
1048
+ msgid "Monaco"
1049
  msgstr ""
1050
 
1051
  #: src/Tribe/Languages/Locations.php:200
1052
+ msgid "Mongolia"
1053
  msgstr ""
1054
 
1055
  #: src/Tribe/Languages/Locations.php:201
1056
+ msgid "Montenegro"
1057
  msgstr ""
1058
 
1059
  #: src/Tribe/Languages/Locations.php:202
1060
+ msgid "Montserrat"
1061
  msgstr ""
1062
 
1063
  #: src/Tribe/Languages/Locations.php:203
1064
+ msgid "Morocco"
1065
  msgstr ""
1066
 
1067
  #: src/Tribe/Languages/Locations.php:204
1068
+ msgid "Mozambique"
1069
  msgstr ""
1070
 
1071
  #: src/Tribe/Languages/Locations.php:205
1072
+ msgid "Myanmar"
1073
  msgstr ""
1074
 
1075
  #: src/Tribe/Languages/Locations.php:206
1076
+ msgid "Namibia"
1077
  msgstr ""
1078
 
1079
  #: src/Tribe/Languages/Locations.php:207
1080
+ msgid "Nauru"
1081
  msgstr ""
1082
 
1083
  #: src/Tribe/Languages/Locations.php:208
1084
+ msgid "Nepal"
1085
  msgstr ""
1086
 
1087
  #: src/Tribe/Languages/Locations.php:209
1088
+ msgid "Netherlands"
1089
  msgstr ""
1090
 
1091
  #: src/Tribe/Languages/Locations.php:210
1092
+ msgid "New Caledonia"
1093
  msgstr ""
1094
 
1095
  #: src/Tribe/Languages/Locations.php:211
1096
+ msgid "New Zealand"
1097
  msgstr ""
1098
 
1099
  #: src/Tribe/Languages/Locations.php:212
1100
+ msgid "Nicaragua"
1101
  msgstr ""
1102
 
1103
  #: src/Tribe/Languages/Locations.php:213
1104
+ msgid "Niger"
1105
  msgstr ""
1106
 
1107
  #: src/Tribe/Languages/Locations.php:214
1108
+ msgid "Nigeria"
1109
  msgstr ""
1110
 
1111
  #: src/Tribe/Languages/Locations.php:215
1112
+ msgid "Niue"
1113
  msgstr ""
1114
 
1115
  #: src/Tribe/Languages/Locations.php:216
1116
+ msgid "Norfolk Island"
1117
  msgstr ""
1118
 
1119
  #: src/Tribe/Languages/Locations.php:217
1120
+ msgid "North Macedonia"
1121
  msgstr ""
1122
 
1123
  #: src/Tribe/Languages/Locations.php:218
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.9.18';
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.9.19';
21
 
22
  const FEED_URL = 'https://theeventscalendar.com/feed/';
23
 
common/src/functions/multibyte.php CHANGED
@@ -160,3 +160,34 @@ if ( ! function_exists( 'tribe_uc_first_letter' ) ) {
160
  return $letter;
161
  }
162
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
160
  return $letter;
161
  }
162
  }
163
+
164
+ if ( ! function_exists( 'tribe_strpos' ) ) {
165
+ /**
166
+ * Find the numeric position of the first occurrence of needle in the haystack string using multibyte function if available.
167
+ *
168
+ * @since 4.9.19
169
+ *
170
+ * @param string $haystack The string to search in.
171
+ * @param string $needle The string to find in haystack.
172
+ * @param int $offset The search offset. If it is not specified, 0 is used. A negative offset counts from the end of the string.
173
+ *
174
+ * @return int|false The numeric position of the first occurrence of needle in the haystack string. If needle is not found, it returns false.
175
+ *
176
+ * @see strpos The fallback function used if mb_strpos does not exist.
177
+ * @see mb_strpos The multibyte compatible version of strpos.
178
+ */
179
+ function tribe_strpos( $haystack, $needle, $offset = 0 ) {
180
+ if ( function_exists( 'mb_strpos' ) ) {
181
+ $encoding = tribe_detect_encoding( $haystack );
182
+
183
+ // Use encoding if it was detected.
184
+ if ( $encoding ) {
185
+ return mb_strpos( $haystack, $needle, $offset, $encoding );
186
+ }
187
+
188
+ return mb_strpos( $haystack, $needle, $offset );
189
+ }
190
+
191
+ return strpos( $haystack, $needle, $offset );
192
+ }
193
+ }
common/vendor/autoload.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
- return ComposerAutoloaderInitf211722f7d1cce246a2f7c04a769c000::getLoader();
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
+ return ComposerAutoloaderInit91707e76dc8305658ee5dc895405093d::getLoader();
common/vendor/autoload_52.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
6
 
7
- return ComposerAutoloaderInitbf75faf0b506d9c5f1fa174f3392425c::getLoader();
4
 
5
  require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
6
 
7
+ return ComposerAutoloaderInitf164a9e81bb0c87b5ef9fec1d05caeec::getLoader();
common/vendor/composer/autoload_real.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
- class ComposerAutoloaderInitf211722f7d1cce246a2f7c04a769c000
6
  {
7
  private static $loader;
8
 
@@ -19,15 +19,15 @@ class ComposerAutoloaderInitf211722f7d1cce246a2f7c04a769c000
19
  return self::$loader;
20
  }
21
 
22
- spl_autoload_register(array('ComposerAutoloaderInitf211722f7d1cce246a2f7c04a769c000', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInitf211722f7d1cce246a2f7c04a769c000', 'loadClassLoader'));
25
 
26
  $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
27
  if ($useStaticLoader) {
28
  require_once __DIR__ . '/autoload_static.php';
29
 
30
- call_user_func(\Composer\Autoload\ComposerStaticInitf211722f7d1cce246a2f7c04a769c000::getInitializer($loader));
31
  } else {
32
  $map = require __DIR__ . '/autoload_namespaces.php';
33
  foreach ($map as $namespace => $path) {
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
+ class ComposerAutoloaderInit91707e76dc8305658ee5dc895405093d
6
  {
7
  private static $loader;
8
 
19
  return self::$loader;
20
  }
21
 
22
+ spl_autoload_register(array('ComposerAutoloaderInit91707e76dc8305658ee5dc895405093d', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
+ spl_autoload_unregister(array('ComposerAutoloaderInit91707e76dc8305658ee5dc895405093d', 'loadClassLoader'));
25
 
26
  $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
27
  if ($useStaticLoader) {
28
  require_once __DIR__ . '/autoload_static.php';
29
 
30
+ call_user_func(\Composer\Autoload\ComposerStaticInit91707e76dc8305658ee5dc895405093d::getInitializer($loader));
31
  } else {
32
  $map = require __DIR__ . '/autoload_namespaces.php';
33
  foreach ($map as $namespace => $path) {
common/vendor/composer/autoload_real_52.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real_52.php generated by xrstf/composer-php52
4
 
5
- class ComposerAutoloaderInitbf75faf0b506d9c5f1fa174f3392425c {
6
  private static $loader;
7
 
8
  public static function loadClassLoader($class) {
@@ -19,9 +19,9 @@ class ComposerAutoloaderInitbf75faf0b506d9c5f1fa174f3392425c {
19
  return self::$loader;
20
  }
21
 
22
- spl_autoload_register(array('ComposerAutoloaderInitbf75faf0b506d9c5f1fa174f3392425c', 'loadClassLoader'), true /*, true */);
23
  self::$loader = $loader = new xrstf_Composer52_ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInitbf75faf0b506d9c5f1fa174f3392425c', 'loadClassLoader'));
25
 
26
  $vendorDir = dirname(dirname(__FILE__));
27
  $baseDir = dirname($vendorDir);
2
 
3
  // autoload_real_52.php generated by xrstf/composer-php52
4
 
5
+ class ComposerAutoloaderInitf164a9e81bb0c87b5ef9fec1d05caeec {
6
  private static $loader;
7
 
8
  public static function loadClassLoader($class) {
19
  return self::$loader;
20
  }
21
 
22
+ spl_autoload_register(array('ComposerAutoloaderInitf164a9e81bb0c87b5ef9fec1d05caeec', 'loadClassLoader'), true /*, true */);
23
  self::$loader = $loader = new xrstf_Composer52_ClassLoader();
24
+ spl_autoload_unregister(array('ComposerAutoloaderInitf164a9e81bb0c87b5ef9fec1d05caeec', 'loadClassLoader'));
25
 
26
  $vendorDir = dirname(dirname(__FILE__));
27
  $baseDir = dirname($vendorDir);
common/vendor/composer/autoload_static.php CHANGED
@@ -4,7 +4,7 @@
4
 
5
  namespace Composer\Autoload;
6
 
7
- class ComposerStaticInitf211722f7d1cce246a2f7c04a769c000
8
  {
9
  public static $prefixLengthsPsr4 = array (
10
  'T' =>
@@ -198,10 +198,10 @@ class ComposerStaticInitf211722f7d1cce246a2f7c04a769c000
198
  public static function getInitializer(ClassLoader $loader)
199
  {
200
  return \Closure::bind(function () use ($loader) {
201
- $loader->prefixLengthsPsr4 = ComposerStaticInitf211722f7d1cce246a2f7c04a769c000::$prefixLengthsPsr4;
202
- $loader->prefixDirsPsr4 = ComposerStaticInitf211722f7d1cce246a2f7c04a769c000::$prefixDirsPsr4;
203
- $loader->prefixesPsr0 = ComposerStaticInitf211722f7d1cce246a2f7c04a769c000::$prefixesPsr0;
204
- $loader->classMap = ComposerStaticInitf211722f7d1cce246a2f7c04a769c000::$classMap;
205
 
206
  }, null, ClassLoader::class);
207
  }
4
 
5
  namespace Composer\Autoload;
6
 
7
+ class ComposerStaticInit91707e76dc8305658ee5dc895405093d
8
  {
9
  public static $prefixLengthsPsr4 = array (
10
  'T' =>
198
  public static function getInitializer(ClassLoader $loader)
199
  {
200
  return \Closure::bind(function () use ($loader) {
201
+ $loader->prefixLengthsPsr4 = ComposerStaticInit91707e76dc8305658ee5dc895405093d::$prefixLengthsPsr4;
202
+ $loader->prefixDirsPsr4 = ComposerStaticInit91707e76dc8305658ee5dc895405093d::$prefixDirsPsr4;
203
+ $loader->prefixesPsr0 = ComposerStaticInit91707e76dc8305658ee5dc895405093d::$prefixesPsr0;
204
+ $loader->classMap = ComposerStaticInit91707e76dc8305658ee5dc895405093d::$classMap;
205
 
206
  }, null, ClassLoader::class);
207
  }
event-tickets.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Event Tickets
4
  Plugin URI: http://m.tri.be/1acb
5
  Description: Event Tickets allows you to sell basic tickets and collect RSVPs from any post, page, or event.
6
- Version: 4.10.9
7
  Author: Modern Tribe, Inc.
8
  Author URI: http://m.tri.be/28
9
  License: GPLv2 or later
3
  Plugin Name: Event Tickets
4
  Plugin URI: http://m.tri.be/1acb
5
  Description: Event Tickets allows you to sell basic tickets and collect RSVPs from any post, page, or event.
6
+ Version: 4.10.10
7
  Author: Modern Tribe, Inc.
8
  Author URI: http://m.tri.be/28
9
  License: GPLv2 or later
lang/event-tickets.pot CHANGED
@@ -2,17 +2,17 @@
2
  # This file is distributed under the same license as the Event Tickets package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: Event Tickets 4.10.9\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/event-tickets\n"
7
- "POT-Creation-Date: 2019-09-30 14:56:11+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
- "PO-Revision-Date: 2019-09-30 14:56\n"
12
  "Last-Translator: \n"
13
  "Language-Team: \n"
14
 
15
- #. #-#-#-#-# event-tickets.pot (Event Tickets 4.10.9) #-#-#-#-#
16
  #. Plugin Name of the plugin/theme
17
  #: event-tickets.php:62 src/Tribe/Main.php:649 src/Tribe/Privacy.php:32
18
  msgid "Event Tickets"
@@ -758,7 +758,7 @@ msgstr ""
758
  msgid "Post draft updated."
759
  msgstr ""
760
 
761
- #: src/Tribe/Commerce/PayPal/Main.php:2589 src/Tribe/RSVP.php:1379
762
  msgid "(deleted)"
763
  msgstr ""
764
 
@@ -1863,42 +1863,42 @@ msgstr ""
1863
  msgid "Sold"
1864
  msgstr ""
1865
 
1866
- #: src/Tribe/Status/Abstract_Commerce.php:176
1867
  msgid "SKU"
1868
  msgstr ""
1869
 
1870
- #: src/Tribe/Status/Abstract_Commerce.php:204
1871
  #: src/views/blocks/tickets/extra-available-quantity.php:22
1872
  msgid "available"
1873
  msgstr ""
1874
 
1875
- #: src/Tribe/Status/Abstract_Commerce.php:211
1876
  msgid "pending order completion"
1877
  msgstr ""
1878
 
1879
- #: src/Tribe/Status/Abstract_Commerce.php:233
1880
  msgid "Sold counts tickets from completed orders only."
1881
  msgstr ""
1882
 
1883
- #: src/Tribe/Status/Abstract_Commerce.php:247
1884
  msgid "Total Sales counts tickets from all completed orders."
1885
  msgstr ""
1886
 
1887
- #: src/Tribe/Status/Abstract_Commerce.php:261
1888
  msgid ""
1889
  "Total Ordered counts tickets from orders of any status, including pending "
1890
  "and refunded."
1891
  msgstr ""
1892
 
1893
- #: src/Tribe/Status/Abstract_Commerce.php:297
1894
  msgid "Inventory"
1895
  msgstr ""
1896
 
1897
- #: src/Tribe/Status/Abstract_Commerce.php:298
1898
  msgid "Stock"
1899
  msgstr ""
1900
 
1901
- #: src/Tribe/Status/Abstract_Commerce.php:299
1902
  #: src/admin-views/editor/list-table.php:39
1903
  msgid "Capacity"
1904
  msgstr ""
@@ -1922,27 +1922,27 @@ msgctxt "global stock mode option (individual)"
1922
  msgid "Set capacity for this %s only"
1923
  msgstr ""
1924
 
1925
- #: src/Tribe/Tickets.php:2197
1926
  msgid "%s are not available as this %s has passed."
1927
  msgstr ""
1928
 
1929
- #: src/Tribe/Tickets.php:2233
1930
  msgid "%s will be available on "
1931
  msgstr ""
1932
 
1933
- #: src/Tribe/Tickets.php:2239
1934
  msgid " at "
1935
  msgstr ""
1936
 
1937
- #: src/Tribe/Tickets.php:2242
1938
  msgid "%s are not yet available"
1939
  msgstr ""
1940
 
1941
- #: src/Tribe/Tickets.php:2245
1942
  msgid "%s are no longer available."
1943
  msgstr ""
1944
 
1945
- #: src/Tribe/Tickets.php:2247
1946
  msgid "There are no %s available at this time."
1947
  msgstr ""
1948
 
@@ -3337,11 +3337,11 @@ msgstr ""
3337
  msgid "Find events to attend on %1$s"
3338
  msgstr ""
3339
 
3340
- #: src/views/registration/content.php:77
3341
  msgid "Save and Checkout"
3342
  msgstr ""
3343
 
3344
- #: src/views/registration/content.php:79
3345
  msgid "Save Attendee Info"
3346
  msgstr ""
3347
 
2
  # This file is distributed under the same license as the Event Tickets package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Event Tickets 4.10.10\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/event-tickets\n"
7
+ "POT-Creation-Date: 2019-10-09 02:56:51+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
+ "PO-Revision-Date: 2019-10-09 02:56\n"
12
  "Last-Translator: \n"
13
  "Language-Team: \n"
14
 
15
+ #. #-#-#-#-# event-tickets.pot (Event Tickets 4.10.10) #-#-#-#-#
16
  #. Plugin Name of the plugin/theme
17
  #: event-tickets.php:62 src/Tribe/Main.php:649 src/Tribe/Privacy.php:32
18
  msgid "Event Tickets"
758
  msgid "Post draft updated."
759
  msgstr ""
760
 
761
+ #: src/Tribe/Commerce/PayPal/Main.php:2604 src/Tribe/RSVP.php:1379
762
  msgid "(deleted)"
763
  msgstr ""
764
 
1863
  msgid "Sold"
1864
  msgstr ""
1865
 
1866
+ #: src/Tribe/Status/Abstract_Commerce.php:175
1867
  msgid "SKU"
1868
  msgstr ""
1869
 
1870
+ #: src/Tribe/Status/Abstract_Commerce.php:216
1871
  #: src/views/blocks/tickets/extra-available-quantity.php:22
1872
  msgid "available"
1873
  msgstr ""
1874
 
1875
+ #: src/Tribe/Status/Abstract_Commerce.php:223
1876
  msgid "pending order completion"
1877
  msgstr ""
1878
 
1879
+ #: src/Tribe/Status/Abstract_Commerce.php:245
1880
  msgid "Sold counts tickets from completed orders only."
1881
  msgstr ""
1882
 
1883
+ #: src/Tribe/Status/Abstract_Commerce.php:259
1884
  msgid "Total Sales counts tickets from all completed orders."
1885
  msgstr ""
1886
 
1887
+ #: src/Tribe/Status/Abstract_Commerce.php:273
1888
  msgid ""
1889
  "Total Ordered counts tickets from orders of any status, including pending "
1890
  "and refunded."
1891
  msgstr ""
1892
 
1893
+ #: src/Tribe/Status/Abstract_Commerce.php:309
1894
  msgid "Inventory"
1895
  msgstr ""
1896
 
1897
+ #: src/Tribe/Status/Abstract_Commerce.php:310
1898
  msgid "Stock"
1899
  msgstr ""
1900
 
1901
+ #: src/Tribe/Status/Abstract_Commerce.php:311
1902
  #: src/admin-views/editor/list-table.php:39
1903
  msgid "Capacity"
1904
  msgstr ""
1922
  msgid "Set capacity for this %s only"
1923
  msgstr ""
1924
 
1925
+ #: src/Tribe/Tickets.php:2191
1926
  msgid "%s are not available as this %s has passed."
1927
  msgstr ""
1928
 
1929
+ #: src/Tribe/Tickets.php:2227
1930
  msgid "%s will be available on "
1931
  msgstr ""
1932
 
1933
+ #: src/Tribe/Tickets.php:2233
1934
  msgid " at "
1935
  msgstr ""
1936
 
1937
+ #: src/Tribe/Tickets.php:2236
1938
  msgid "%s are not yet available"
1939
  msgstr ""
1940
 
1941
+ #: src/Tribe/Tickets.php:2239
1942
  msgid "%s are no longer available."
1943
  msgstr ""
1944
 
1945
+ #: src/Tribe/Tickets.php:2241
1946
  msgid "There are no %s available at this time."
1947
  msgstr ""
1948
 
3337
  msgid "Find events to attend on %1$s"
3338
  msgstr ""
3339
 
3340
+ #: src/views/registration/content.php:79
3341
  msgid "Save and Checkout"
3342
  msgstr ""
3343
 
3344
+ #: src/views/registration/content.php:81
3345
  msgid "Save Attendee Info"
3346
  msgstr ""
3347
 
readme.txt CHANGED
@@ -4,7 +4,7 @@ Contributors: ModernTribe, brianjessee, camwynsp, paulkim, sc0ttkclark, aguseo,
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.7
6
  Tested up to: 5.2
7
- Stable tag: 4.10.9
8
  Requires PHP: 5.6
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
@@ -117,6 +117,15 @@ Currently, the following add-ons are available for Event Tickets:
117
 
118
  == Changelog ==
119
 
 
 
 
 
 
 
 
 
 
120
  = [4.10.9] 2019-10-01 =
121
 
122
  * Feature - New functions to easily rename ticket types and ensure consistent wording: `tribe_get_rsvp_label_singular()`, `tribe_get_rsvp_label_singular_lowercase()`, `tribe_get_rsvp_label_plural()`, `tribe_get_rsvp_label_plural_lowercase()`, `tribe_get_ticket_label_singular()`, `tribe_get_ticket_label_singular_lowercase()`, `tribe_get_ticket_label_plural()`, and `tribe_get_ticket_label_plural_lowercase()` [130897]
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.7
6
  Tested up to: 5.2
7
+ Stable tag: 4.10.10
8
  Requires PHP: 5.6
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
117
 
118
  == Changelog ==
119
 
120
+ = [4.10.10] 2019-10-14 =
121
+
122
+ * Tweak - Changed views: `blocks/tickets`, `tickets/tpp`
123
+ * Fix - Attendees Report's "Orders" tab now displays amount sold and available regardless of amount, including for unlimited and zero remaining for Tribe Commerce attendees [134108]
124
+ * Fix - Prevent fatal errors when hosting environment does not support multibyte functionality by using new `tribe_strpos()` function [135202]
125
+ * Fix - Prevent Attendee Registration saving from storing only the last attendee's information for all RSVP attendees [134408]
126
+ * Fix - Remove check for tickets in beginning of `/src/views/blocks/tickets.php` as it prevents showing the "tickets unavailable" message [134821]
127
+ * Language - 2 new strings added, 19 updated, 0 fuzzied, and 0 obsoleted
128
+
129
  = [4.10.9] 2019-10-01 =
130
 
131
  * Feature - New functions to easily rename ticket types and ensure consistent wording: `tribe_get_rsvp_label_singular()`, `tribe_get_rsvp_label_singular_lowercase()`, `tribe_get_rsvp_label_plural()`, `tribe_get_rsvp_label_plural_lowercase()`, `tribe_get_ticket_label_singular()`, `tribe_get_ticket_label_singular_lowercase()`, `tribe_get_ticket_label_plural()`, and `tribe_get_ticket_label_plural_lowercase()` [130897]
src/Tribe/Attendees.php CHANGED
@@ -581,10 +581,10 @@ class Tribe__Tickets__Attendees {
581
  */
582
  public function sanitize_csv_value( $value ) {
583
  if (
584
- 0 === mb_strpos( $value, '=' )
585
- || 0 === mb_strpos( $value, '+' )
586
- || 0 === mb_strpos( $value, '-' )
587
- || 0 === mb_strpos( $value, '@' )
588
  ) {
589
  // Prefix the value with a single quote to prevent formula from being processed.
590
  $value = '\'' . $value;
581
  */
582
  public function sanitize_csv_value( $value ) {
583
  if (
584
+ 0 === tribe_strpos( $value, '=' )
585
+ || 0 === tribe_strpos( $value, '+' )
586
+ || 0 === tribe_strpos( $value, '-' )
587
+ || 0 === tribe_strpos( $value, '@' )
588
  ) {
589
  // Prefix the value with a single quote to prevent formula from being processed.
590
  $value = '\'' . $value;
src/Tribe/Commerce/PayPal/Main.php CHANGED
@@ -2425,6 +2425,7 @@ class Tribe__Tickets__Commerce__PayPal__Main extends Tribe__Tickets__Tickets {
2425
  public function attendee_decreases_inventory( array $attendee ) {
2426
  $order_status = Tribe__Utils__Array::get( $attendee, 'order_status', 'undefined' );
2427
  $order_id = Tribe__Utils__Array::get( $attendee, 'order_id', false );
 
2428
 
2429
  /**
2430
  * Whether the pending Order stock reserve logic should be ignored completely or not.
@@ -2439,15 +2440,29 @@ class Tribe__Tickets__Commerce__PayPal__Main extends Tribe__Tickets__Tickets {
2439
  */
2440
  $ignore_pending = apply_filters( 'tribe_tickets_tpp_pending_stock_ignore', $this->ignore_pending_stock_logic );
2441
 
 
 
 
2442
  if (
2443
  'on-pending' === tribe_get_option( 'ticket-paypal-stock-handling', 'on-complete' )
2444
  && ! $ignore_pending
2445
  && Tribe__Tickets__Commerce__PayPal__Stati::$pending === $order_status
2446
  && false !== $order_id
2447
- && false !== $order = Tribe__Tickets__Commerce__PayPal__Order::from_attendee_id( $order_id )
2448
  ) {
2449
- /** @var \Tribe__Tickets__Commerce__PayPal__Order $order */
2450
- $order_creation_timestamp = Tribe__Date_Utils::wp_strtotime( $order->get_creation_date() );
 
 
 
 
 
 
 
 
 
 
 
 
2451
 
2452
  /**
2453
  * Filters the amount of time a part of the stock will be reserved by a pending Order.
@@ -2467,7 +2482,7 @@ class Tribe__Tickets__Commerce__PayPal__Main extends Tribe__Tickets__Tickets {
2467
  */
2468
  $pending_stock_reservation_time = (int) apply_filters( 'tribe_tickets_tpp_pending_stock_reserve_time', 30 * 60, $attendee, $order );
2469
 
2470
- return current_time( 'timestamp' ) <= ( $order_creation_timestamp + $pending_stock_reservation_time );
2471
  }
2472
 
2473
  return Tribe__Tickets__Commerce__PayPal__Stati::$completed === $order_status;
2425
  public function attendee_decreases_inventory( array $attendee ) {
2426
  $order_status = Tribe__Utils__Array::get( $attendee, 'order_status', 'undefined' );
2427
  $order_id = Tribe__Utils__Array::get( $attendee, 'order_id', false );
2428
+ $attendee_id = Tribe__Utils__Array::get( $attendee, 'attendee_id', false );
2429
 
2430
  /**
2431
  * Whether the pending Order stock reserve logic should be ignored completely or not.
2440
  */
2441
  $ignore_pending = apply_filters( 'tribe_tickets_tpp_pending_stock_ignore', $this->ignore_pending_stock_logic );
2442
 
2443
+ $purchase_time = false;
2444
+ $order = false;
2445
+
2446
  if (
2447
  'on-pending' === tribe_get_option( 'ticket-paypal-stock-handling', 'on-complete' )
2448
  && ! $ignore_pending
2449
  && Tribe__Tickets__Commerce__PayPal__Stati::$pending === $order_status
2450
  && false !== $order_id
 
2451
  ) {
2452
+ $purchase_time = Tribe__Utils__Array::get( $attendee, 'purchase_time', false );
2453
+
2454
+ if ( false !== $order = Tribe__Tickets__Commerce__PayPal__Order::from_attendee_id( $attendee_id ) ) {
2455
+ /** @var \Tribe__Tickets__Commerce__PayPal__Order $order */
2456
+ $purchase_time = $order->get_creation_date();
2457
+ }
2458
+ }
2459
+
2460
+ if ( $purchase_time ) {
2461
+ $date = Tribe__Date_Utils::build_date_object( $purchase_time );
2462
+
2463
+ $date->setTimezone( new DateTimeZone( 'UTC' ) );
2464
+
2465
+ $order_creation_timestamp = $date->getTimestamp();
2466
 
2467
  /**
2468
  * Filters the amount of time a part of the stock will be reserved by a pending Order.
2482
  */
2483
  $pending_stock_reservation_time = (int) apply_filters( 'tribe_tickets_tpp_pending_stock_reserve_time', 30 * 60, $attendee, $order );
2484
 
2485
+ return time() <= ( $order_creation_timestamp + $pending_stock_reservation_time );
2486
  }
2487
 
2488
  return Tribe__Tickets__Commerce__PayPal__Stati::$completed === $order_status;
src/Tribe/Editor/Blocks/Rsvp.php CHANGED
@@ -148,10 +148,9 @@ extends Tribe__Editor__Blocks__Abstract {
148
  }
149
 
150
  $all_past = true;
151
- $current = current_time( 'timestamp' );
152
 
153
  foreach ( $tickets as $ticket ) {
154
- $all_past = $all_past && $ticket->date_is_later( $current );
155
  }
156
 
157
  return $all_past;
148
  }
149
 
150
  $all_past = true;
 
151
 
152
  foreach ( $tickets as $ticket ) {
153
+ $all_past = $all_past && $ticket->date_is_later();
154
  }
155
 
156
  return $all_past;
src/Tribe/Editor/Blocks/Tickets.php CHANGED
@@ -233,10 +233,9 @@ extends Tribe__Editor__Blocks__Abstract {
233
  */
234
  public function get_is_sale_past( $tickets ) {
235
  $is_sale_past = ! empty( $tickets );
236
- $timestamp = current_time( 'timestamp' );
237
 
238
  foreach ( $tickets as $ticket ) {
239
- $is_sale_past = ( $is_sale_past && $ticket->date_is_later( $timestamp ) );
240
  }
241
 
242
  return $is_sale_past;
233
  */
234
  public function get_is_sale_past( $tickets ) {
235
  $is_sale_past = ! empty( $tickets );
 
236
 
237
  foreach ( $tickets as $ticket ) {
238
+ $is_sale_past = ( $is_sale_past && $ticket->date_is_later() );
239
  }
240
 
241
  return $is_sale_past;
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.10.9';
8
 
9
  /**
10
  * Min required The Events Calendar version
@@ -851,7 +851,7 @@ class Tribe__Tickets__Main {
851
  $tickets = Tribe__Tickets__Tickets::get_all_event_tickets( $event_id );
852
  $has_non_rsvp = false;
853
  $available = false;
854
- $now = current_time( 'timestamp' );
855
 
856
  foreach ( $tickets as $ticket ) {
857
  if ( 'Tribe__Tickets__RSVP' !== $ticket->provider_class ) {
4
  /**
5
  * Current version of this plugin
6
  */
7
+ const VERSION = '4.10.10';
8
 
9
  /**
10
  * Min required The Events Calendar version
851
  $tickets = Tribe__Tickets__Tickets::get_all_event_tickets( $event_id );
852
  $has_non_rsvp = false;
853
  $available = false;
854
+ $now = time();
855
 
856
  foreach ( $tickets as $ticket ) {
857
  if ( 'Tribe__Tickets__RSVP' !== $ticket->provider_class ) {
src/Tribe/REST/V1/Post_Repository.php CHANGED
@@ -967,7 +967,7 @@ class Tribe__Tickets__REST__V1__Post_Repository
967
  /** @var Tribe__Tickets__Commerce__Currency $currency */
968
  $currency = tribe( 'tickets.commerce.currency' );
969
  $ticket_object = $this->get_ticket_object( $attendee['product_id'] );
970
- $purchase_time = Tribe__Utils__Array::get( $order_data, 'purchase_time', get_post_time( 'Y-m-d H:i:s', false, $attendee_id ) );
971
  $attendee_data['payment'] = array(
972
  'provider' => Tribe__Utils__Array::get( $order_data, 'provider_slug', $this->get_provider_slug( $provider ) ),
973
  'price' => $ticket_object->price,
967
  /** @var Tribe__Tickets__Commerce__Currency $currency */
968
  $currency = tribe( 'tickets.commerce.currency' );
969
  $ticket_object = $this->get_ticket_object( $attendee['product_id'] );
970
+ $purchase_time = Tribe__Utils__Array::get( $order_data, 'purchase_time', get_post_time( Tribe__Date_Utils::DBDATETIMEFORMAT, false, $attendee_id ) );
971
  $attendee_data['payment'] = array(
972
  'provider' => Tribe__Utils__Array::get( $order_data, 'provider_slug', $this->get_provider_slug( $provider ) ),
973
  'price' => $ticket_object->price,
src/Tribe/RSVP.php CHANGED
@@ -1900,8 +1900,6 @@ class Tribe__Tickets__RSVP extends Tribe__Tickets__Tickets {
1900
  $attendee_optout = $attendee_details['optout'];
1901
  $order_id = $attendee_details['order_id'];
1902
 
1903
- $order_attendee_id = 0;
1904
-
1905
  // Get the event this tickets is for
1906
  $post_id = get_post_meta( $product_id, $this->event_key, true );
1907
 
@@ -1939,7 +1937,7 @@ class Tribe__Tickets__RSVP extends Tribe__Tickets__Tickets {
1939
  do_action( 'tribe_tickets_rsvp_before_attendee_ticket_creation', $post_id, $ticket_type, $_POST );
1940
 
1941
  // Iterate over all the amount of tickets purchased (for this product)
1942
- for ( $i = 0; $i < $qty; $i ++ ) {
1943
 
1944
  $attendee = array(
1945
  'post_status' => 'publish',
@@ -1972,7 +1970,8 @@ class Tribe__Tickets__RSVP extends Tribe__Tickets__Tickets {
1972
  update_post_meta( $attendee_id, '_paid_price', 0 );
1973
 
1974
  /**
1975
- * RSVP specific action fired when a RSVP-driven attendee ticket for an event is generated
 
1976
  *
1977
  * @param int $attendee_id ID of attendee ticket
1978
  * @param int $post_id ID of event
@@ -1982,17 +1981,17 @@ class Tribe__Tickets__RSVP extends Tribe__Tickets__Tickets {
1982
  do_action( 'event_tickets_rsvp_attendee_created', $attendee_id, $post_id, $order_id );
1983
 
1984
  /**
1985
- * Action fired when an RSVP attendee ticket is created
 
1986
  *
1987
  * @param int $attendee_id ID of the attendee post
1988
  * @param int $post_id Event post ID
1989
  * @param int $product_id RSVP ticket post ID
1990
  * @param int $order_attendee_id Attendee # for order
1991
  */
1992
- do_action( 'event_tickets_rsvp_ticket_created', $attendee_id, $post_id, $product_id, $order_attendee_id );
1993
 
1994
  $this->record_attendee_user_id( $attendee_id );
1995
- $order_attendee_id++;
1996
  }
1997
 
1998
  /**
1900
  $attendee_optout = $attendee_details['optout'];
1901
  $order_id = $attendee_details['order_id'];
1902
 
 
 
1903
  // Get the event this tickets is for
1904
  $post_id = get_post_meta( $product_id, $this->event_key, true );
1905
 
1937
  do_action( 'tribe_tickets_rsvp_before_attendee_ticket_creation', $post_id, $ticket_type, $_POST );
1938
 
1939
  // Iterate over all the amount of tickets purchased (for this product)
1940
+ for ( $i = 0; $i < $qty; $i++ ) {
1941
 
1942
  $attendee = array(
1943
  'post_status' => 'publish',
1970
  update_post_meta( $attendee_id, '_paid_price', 0 );
1971
 
1972
  /**
1973
+ * RSVP specific action fired when a RSVP-driven attendee ticket for an event is generated.
1974
+ * Used to assign a unique ID to the attendee.
1975
  *
1976
  * @param int $attendee_id ID of attendee ticket
1977
  * @param int $post_id ID of event
1981
  do_action( 'event_tickets_rsvp_attendee_created', $attendee_id, $post_id, $order_id );
1982
 
1983
  /**
1984
+ * Action fired when an RSVP attendee ticket is created.
1985
+ * Used to store attendee meta.
1986
  *
1987
  * @param int $attendee_id ID of the attendee post
1988
  * @param int $post_id Event post ID
1989
  * @param int $product_id RSVP ticket post ID
1990
  * @param int $order_attendee_id Attendee # for order
1991
  */
1992
+ do_action( 'event_tickets_rsvp_ticket_created', $attendee_id, $post_id, $product_id, $i );
1993
 
1994
  $this->record_attendee_user_id( $attendee_id );
 
1995
  }
1996
 
1997
  /**
src/Tribe/Status/Abstract_Commerce.php CHANGED
@@ -47,7 +47,7 @@ class Tribe__Tickets__Status__Abstract_Commerce {
47
  *
48
  * @since 4.10
49
  *
50
- * @return int
51
  */
52
  public function get_completed_status_class() {
53
 
@@ -129,25 +129,23 @@ class Tribe__Tickets__Status__Abstract_Commerce {
129
  *
130
  * @since 4.10
131
  *
132
- * @param $ticket_sold object an object of the ticket to get counts
133
- * @param $post_id int an ID of the post the ticket is attached to
134
  *
135
  * @return string a string Ticket name, sold, and availability
136
  */
137
- public function get_ticket_sale_infomation( $ticket_sold, $event_id ) {
138
-
139
  ob_start();
140
  ?>
141
  <div class="tribe-event-meta tribe-event-meta-tickets-sold-itemized">
142
  <?php
143
- echo $this->get_name_and_sold_for_ticket( $ticket_sold, $event_id );
144
  echo $this->get_available_incomplete_counts_for_ticket( $ticket_sold );
145
  ?>
146
  </div>
147
  <?php
148
 
149
  return ob_get_clean();
150
-
151
  }
152
 
153
  /**
@@ -155,18 +153,19 @@ class Tribe__Tickets__Status__Abstract_Commerce {
155
  *
156
  * @since 4.10
157
  *
158
- * @param $ticket_sold object an object of the ticket to get counts
159
- * @param $post_id int an ID of the post the ticket is attached to
160
  *
161
  * @return string a string of the ticket name and sold
162
  */
163
  public function get_name_and_sold_for_ticket( $ticket_sold, $post_id ) {
 
 
 
164
 
165
  $sold = $ticket_sold['completed'] ? $ticket_sold['completed'] : $ticket_sold['sold'];
166
 
167
- $sold_message = ! $ticket_sold['has_stock'] ?
168
- $sold_message = sprintf( '%s %d', esc_attr__( 'Sold', 'event-tickets' ), esc_html( $sold ) ) :
169
- '';
170
 
171
  $price = $ticket_sold['ticket']->price ?
172
  ' (' . tribe_format_currency( number_format( $ticket_sold['ticket']->price, 2 ), $post_id ) . ')' :
@@ -183,29 +182,42 @@ class Tribe__Tickets__Status__Abstract_Commerce {
183
  echo esc_html( $sold_message );
184
 
185
  return ob_get_clean();
186
-
187
  }
188
 
189
  /**
190
- * Get the Available and Incomplete Counts for a Ticket
191
  *
192
  * @since 4.10
193
  *
194
- * @param $ticket_sold object an object of the ticket to get counts
195
  *
196
- * @return bool|string a string of available and/or incomplete counts for a ticket
197
  */
198
  public function get_available_incomplete_counts_for_ticket( $ticket_sold ) {
199
-
200
- $availability = array();
201
- if ( $ticket_sold['ticket']->available() > 0 ) {
202
- $availability['available'] = sprintf( '%s %s%s',
203
- esc_html( $ticket_sold['ticket']->available() ),
204
- esc_html__( 'available', 'event-tickets' ),
205
- $this->get_availability_by_ticket_tooltip( $ticket_sold )
206
- );
 
 
 
 
 
207
  }
208
- if ( $ticket_sold['incomplete'] > 0 ) {
 
 
 
 
 
 
 
 
 
209
  $availability['incomplete'] = sprintf( '%s %s%s',
210
  $ticket_sold['incomplete'],
211
  esc_html__( 'pending order completion', 'event-tickets' ),
@@ -214,7 +226,7 @@ class Tribe__Tickets__Status__Abstract_Commerce {
214
  }
215
 
216
  if ( empty( $availability ) ) {
217
- return false;
218
  }
219
 
220
  return '<div>' . implode( '- ', $availability ) . '</div>';
47
  *
48
  * @since 4.10
49
  *
50
+ * @return Tribe__Tickets__Status__Abstract|false
51
  */
52
  public function get_completed_status_class() {
53
 
129
  *
130
  * @since 4.10
131
  *
132
+ * @param array $ticket_sold An object of the ticket to get counts.
133
+ * @param int $post_id An ID of the post the ticket is attached to.
134
  *
135
  * @return string a string Ticket name, sold, and availability
136
  */
137
+ public function get_ticket_sale_infomation( $ticket_sold, $post_id ) {
 
138
  ob_start();
139
  ?>
140
  <div class="tribe-event-meta tribe-event-meta-tickets-sold-itemized">
141
  <?php
142
+ echo $this->get_name_and_sold_for_ticket( $ticket_sold, $post_id );
143
  echo $this->get_available_incomplete_counts_for_ticket( $ticket_sold );
144
  ?>
145
  </div>
146
  <?php
147
 
148
  return ob_get_clean();
 
149
  }
150
 
151
  /**
153
  *
154
  * @since 4.10
155
  *
156
+ * @param array $ticket_sold The ticket to get counts.
157
+ * @param int $post_id int An ID of the post the ticket is attached to.
158
  *
159
  * @return string a string of the ticket name and sold
160
  */
161
  public function get_name_and_sold_for_ticket( $ticket_sold, $post_id ) {
162
+ if ( ! $ticket_sold['ticket'] instanceof Tribe__Tickets__Ticket_Object ) {
163
+ return '';
164
+ }
165
 
166
  $sold = $ticket_sold['completed'] ? $ticket_sold['completed'] : $ticket_sold['sold'];
167
 
168
+ $sold_message = sprintf( '%s %d', esc_attr__( 'Sold', 'event-tickets' ), esc_html( $sold ) );
 
 
169
 
170
  $price = $ticket_sold['ticket']->price ?
171
  ' (' . tribe_format_currency( number_format( $ticket_sold['ticket']->price, 2 ), $post_id ) . ')' :
182
  echo esc_html( $sold_message );
183
 
184
  return ob_get_clean();
 
185
  }
186
 
187
  /**
188
+ * Get the available and incomplete counts for a Ticket.
189
  *
190
  * @since 4.10
191
  *
192
+ * @param array $ticket_sold Ticket array to get counts.
193
  *
194
+ * @return string The available and/or incomplete counts for a ticket.
195
  */
196
  public function get_available_incomplete_counts_for_ticket( $ticket_sold ) {
197
+ /** @var Tribe__Tickets__Ticket_Object $ticket_object */
198
+ $ticket_object = $ticket_sold['ticket'];
199
+
200
+ if (
201
+ -1 === (int) $ticket_object->available()
202
+ || $ticket_object::UNLIMITED_STOCK === $ticket_object->available()
203
+ ) {
204
+ /** @var Tribe__Tickets__Tickets_Handler $handler */
205
+ $handler = tribe( 'tickets.handler' );
206
+
207
+ $available_text = $handler->unlimited_term;
208
+ } else {
209
+ $available_text = $ticket_object->available();
210
  }
211
+
212
+ $availability = [];
213
+
214
+ $availability['available'] = sprintf( '%s %s%s',
215
+ esc_html( $available_text ),
216
+ esc_html__( 'available', 'event-tickets' ),
217
+ $this->get_availability_by_ticket_tooltip( $ticket_sold )
218
+ );
219
+
220
+ if ( $ticket_sold['incomplete'] > 0 ) {
221
  $availability['incomplete'] = sprintf( '%s %s%s',
222
  $ticket_sold['incomplete'],
223
  esc_html__( 'pending order completion', 'event-tickets' ),
226
  }
227
 
228
  if ( empty( $availability ) ) {
229
+ return '';
230
  }
231
 
232
  return '<div>' . implode( '- ', $availability ) . '</div>';
src/Tribe/Ticket_Object.php CHANGED
@@ -291,34 +291,22 @@ if ( ! class_exists( 'Tribe__Tickets__Ticket_Object' ) ) {
291
  /**
292
  * Determines if the given date is within the ticket's start/end date range
293
  *
294
- * @param string $datetime The date/time that we want to determine if it falls within the start/end date range
295
  *
296
  * @return boolean Whether or not the provided date/time falls within the start/end date range
297
  */
298
- public function date_in_range( $datetime = 'now' ) {
299
- $timestamp = is_numeric( $datetime ) ? $datetime : strtotime( $datetime );
300
- // Attempt to convert the timestamp to a Date object.
301
- try {
302
- $timezone = $this->get_event_timezone();
303
- if ( 'now' === $datetime ) {
304
- $now = new DateTime( 'now', $timezone );
305
- } else {
306
- $now = new DateTime( '@' . $timestamp );
307
- if ( $timezone instanceof DateTimeZone ) {
308
- $now->setTimezone( $timezone );
309
- }
310
- }
311
- } catch ( Exception $exception ) {
312
- return false;
313
- }
314
 
315
  $start = $this->start_date( false );
316
  $end = $this->end_date( false );
317
 
318
- if ( ! $start instanceof DateTime || ! $end instanceof DateTime || ! $now instanceof DateTime ) {
319
- $now = $timestamp;
320
  $start = $this->start_date();
321
- $end = $this->end_date();
 
 
 
322
  }
323
 
324
  // Bail if we don't have an end date and the event has passed
@@ -331,7 +319,16 @@ if ( ! class_exists( 'Tribe__Tickets__Ticket_Object' ) ) {
331
  return false;
332
  }
333
 
334
- return ( empty( $start ) || $now >= $start ) && ( empty( $end ) || $now <= $end );
 
 
 
 
 
 
 
 
 
335
  }
336
 
337
 
@@ -348,16 +345,31 @@ if ( ! class_exists( 'Tribe__Tickets__Ticket_Object' ) ) {
348
  * @return DateTime|false|int
349
  */
350
  public function get_date( $date = '', $as_timestamp = true ) {
351
- if ( $as_timestamp ) {
352
- return strtotime( $date );
 
 
 
 
353
  }
354
 
355
  try {
356
  $timezone = $this->get_event_timezone();
357
- return new DateTime( $date, $timezone );
 
 
 
 
 
358
  } catch ( Exception $exception ) {
359
  return strtotime( $date );
360
  }
 
 
 
 
 
 
361
  }
362
 
363
 
@@ -395,39 +407,39 @@ if ( ! class_exists( 'Tribe__Tickets__Ticket_Object' ) ) {
395
  /**
396
  * Determines if the given date is smaller than the ticket's start date
397
  *
398
- * @param string $datetime The date/time that we want to determine if it is smaller than the ticket's start date
399
  *
400
  * @return boolean Whether or not the provided date/time is smaller than the ticket's start date
401
  */
402
- public function date_is_earlier( $datetime ) {
403
- if ( is_numeric( $datetime ) ) {
404
- $timestamp = $datetime;
405
- } else {
406
- $timestamp = strtotime( $datetime );
407
- }
408
 
409
- $start_date = $this->start_date();
410
 
411
- return empty( $start_date ) || $timestamp < $start_date;
 
 
 
 
412
  }
413
 
414
  /**
415
  * Determines if the given date is greater than the ticket's end date
416
  *
417
- * @param string $datetime The date/time that we want to determine if it is smaller than the ticket's start date
418
  *
419
  * @return boolean Whether or not the provided date/time is greater than the ticket's end date
420
  */
421
- public function date_is_later( $datetime ) {
422
- if ( is_numeric( $datetime ) ) {
423
- $timestamp = $datetime;
424
- } else {
425
- $timestamp = strtotime( $datetime );
426
- }
427
 
428
- $end_date = $this->end_date();
429
 
430
- return empty( $end_date ) || $timestamp > $end_date;
 
 
 
 
431
  }
432
 
433
  /**
@@ -441,19 +453,11 @@ if ( ! class_exists( 'Tribe__Tickets__Ticket_Object' ) ) {
441
  * @return string
442
  */
443
  public function availability_slug( $datetime = null ) {
444
- if ( is_numeric( $datetime ) ) {
445
- $timestamp = $datetime;
446
- } elseif ( $datetime ) {
447
- $timestamp = strtotime( $datetime );
448
- } else {
449
- $timestamp = current_time( 'timestamp' );
450
- }
451
-
452
  $slug = 'available';
453
 
454
- if ( $this->date_is_earlier( $timestamp ) ) {
455
  $slug = 'availability-future';
456
- } elseif ( $this->date_is_later( $timestamp ) ) {
457
  $slug = 'availability-past';
458
  }
459
 
291
  /**
292
  * Determines if the given date is within the ticket's start/end date range
293
  *
294
+ * @param string|int|null $datetime The date/time that we want to determine if it falls within the start/end date range.
295
  *
296
  * @return boolean Whether or not the provided date/time falls within the start/end date range
297
  */
298
+ public function date_in_range( $datetime = null ) {
299
+ $date = $this->get_date( $datetime, false );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
300
 
301
  $start = $this->start_date( false );
302
  $end = $this->end_date( false );
303
 
304
+ if ( ! $start instanceof DateTime ) {
 
305
  $start = $this->start_date();
306
+ }
307
+
308
+ if ( ! $end instanceof DateTime ) {
309
+ $end = $this->end_date();
310
  }
311
 
312
  // Bail if we don't have an end date and the event has passed
319
  return false;
320
  }
321
 
322
+ return (
323
+ (
324
+ empty( $start )
325
+ || $start <= $date
326
+ )
327
+ && (
328
+ empty( $end )
329
+ || $date <= $end
330
+ )
331
+ );
332
  }
333
 
334
 
345
  * @return DateTime|false|int
346
  */
347
  public function get_date( $date = '', $as_timestamp = true ) {
348
+ if ( '' === $date ) {
349
+ return false;
350
+ }
351
+
352
+ if ( null === $date ) {
353
+ $date = time();
354
  }
355
 
356
  try {
357
  $timezone = $this->get_event_timezone();
358
+
359
+ $datetime = Tribe__Date_Utils::build_date_object( $date, $timezone );
360
+
361
+ if ( Tribe__Date_Utils::is_timestamp( $datetime ) ) {
362
+ $datetime = Tribe__Date_Utils::build_date_object( $datetime->format( Tribe__Date_Utils::DBDATETIMEFORMAT ), $timezone );
363
+ }
364
  } catch ( Exception $exception ) {
365
  return strtotime( $date );
366
  }
367
+
368
+ if ( $as_timestamp ) {
369
+ return $datetime->getTimestamp();
370
+ }
371
+
372
+ return $datetime;
373
  }
374
 
375
 
407
  /**
408
  * Determines if the given date is smaller than the ticket's start date
409
  *
410
+ * @param null|string $datetime The date/time that we want to determine if it is smaller than the ticket's start date
411
  *
412
  * @return boolean Whether or not the provided date/time is smaller than the ticket's start date
413
  */
414
+ public function date_is_earlier( $datetime = null ) {
415
+ $date = $this->get_date( $datetime, false );
 
 
 
 
416
 
417
+ $start = $this->start_date( false );
418
 
419
+ if ( ! $start instanceof DateTime ) {
420
+ $start = $this->start_date();
421
+ }
422
+
423
+ return empty( $start ) || $date < $start;
424
  }
425
 
426
  /**
427
  * Determines if the given date is greater than the ticket's end date
428
  *
429
+ * @param null|string $datetime The date/time that we want to determine if it is smaller than the ticket's start date
430
  *
431
  * @return boolean Whether or not the provided date/time is greater than the ticket's end date
432
  */
433
+ public function date_is_later( $datetime = null ) {
434
+ $date = $this->get_date( $datetime, false );
 
 
 
 
435
 
436
+ $end = $this->end_date( false );
437
 
438
+ if ( ! $end instanceof DateTime ) {
439
+ $end = $this->end_date();
440
+ }
441
+
442
+ return empty( $end ) || $date > $end;
443
  }
444
 
445
  /**
453
  * @return string
454
  */
455
  public function availability_slug( $datetime = null ) {
 
 
 
 
 
 
 
 
456
  $slug = 'available';
457
 
458
+ if ( $this->date_is_earlier( $datetime ) ) {
459
  $slug = 'availability-future';
460
+ } elseif ( $this->date_is_later( $datetime ) ) {
461
  $slug = 'availability-past';
462
  }
463
 
src/Tribe/Ticket_Repository.php CHANGED
@@ -301,7 +301,7 @@ class Tribe__Tickets__Ticket_Repository extends Tribe__Repository {
301
  // the input is a UTC date or timestamp
302
  $utc_date_string = is_numeric( $date ) ? "@{$date}" : $date;
303
  $utc_date = new DateTime( $utc_date_string, new DateTimeZone( 'UTC' ) );
304
- $from = Tribe__Timezones::to_tz( $utc_date->format( 'Y-m-d H:i:s' ), Tribe__Timezones::wp_timezone_string() );
305
 
306
  return [
307
  'meta_query' => [
@@ -334,7 +334,7 @@ class Tribe__Tickets__Ticket_Repository extends Tribe__Repository {
334
  // the input is a UTC date or timestamp
335
  $utc_date_string = is_numeric( $date ) ? "@{$date}" : $date;
336
  $utc_date = new DateTime( $utc_date_string, new DateTimeZone( 'UTC' ) );
337
- $until = Tribe__Timezones::to_tz( $utc_date->format( 'Y-m-d H:i:s' ), Tribe__Timezones::wp_timezone_string() );
338
 
339
  return [
340
  'meta_query' => [
301
  // the input is a UTC date or timestamp
302
  $utc_date_string = is_numeric( $date ) ? "@{$date}" : $date;
303
  $utc_date = new DateTime( $utc_date_string, new DateTimeZone( 'UTC' ) );
304
+ $from = Tribe__Timezones::to_tz( $utc_date->format( Tribe__Date_Utils::DBDATETIMEFORMAT ), Tribe__Timezones::wp_timezone_string() );
305
 
306
  return [
307
  'meta_query' => [
334
  // the input is a UTC date or timestamp
335
  $utc_date_string = is_numeric( $date ) ? "@{$date}" : $date;
336
  $utc_date = new DateTime( $utc_date_string, new DateTimeZone( 'UTC' ) );
337
+ $until = Tribe__Timezones::to_tz( $utc_date->format( Tribe__Date_Utils::DBDATETIMEFORMAT ), Tribe__Timezones::wp_timezone_string() );
338
 
339
  return [
340
  'meta_query' => [
src/Tribe/Tickets.php CHANGED
@@ -2130,20 +2130,14 @@ if ( ! class_exists( 'Tribe__Tickets__Tickets' ) ) {
2130
  return;
2131
  }
2132
 
2133
- if ( is_numeric( $datetime ) ) {
2134
- $timestamp = $datetime;
2135
- } elseif ( $datetime ) {
2136
- $timestamp = strtotime( $datetime );
2137
- } else {
2138
- $timestamp = current_time( 'timestamp' );
2139
- }
2140
-
2141
  $collection_availability_slug = 'available';
2142
  $tickets_available = false;
2143
  $slugs = [];
2144
 
 
 
2145
  foreach ( $tickets as $ticket ) {
2146
- $availability_slug = $ticket->availability_slug( $timestamp );
2147
 
2148
  // if any ticket is available for this event, consider the availability slug as 'available'
2149
  if ( 'available' === $availability_slug ) {
@@ -2153,7 +2147,7 @@ if ( ! class_exists( 'Tribe__Tickets__Tickets' ) ) {
2153
  }
2154
 
2155
  // track unique availability slugs
2156
- if ( ! in_array( $availability_slug, $slugs ) ) {
2157
  $slugs[] = $availability_slug;
2158
  }
2159
  }
@@ -2304,7 +2298,7 @@ if ( ! class_exists( 'Tribe__Tickets__Tickets' ) ) {
2304
  $post_id = (int) get_the_ID();
2305
 
2306
  // So long as at least one ticket provider has tickets available, do not show an unavailability message
2307
- if ( in_array( $post_id, self::$posts_with_available_tickets ) ) {
2308
  return;
2309
  }
2310
 
2130
  return;
2131
  }
2132
 
 
 
 
 
 
 
 
 
2133
  $collection_availability_slug = 'available';
2134
  $tickets_available = false;
2135
  $slugs = [];
2136
 
2137
+ /** @var Tribe__Tickets__Ticket_Object $ticket */
2138
+
2139
  foreach ( $tickets as $ticket ) {
2140
+ $availability_slug = $ticket->availability_slug( $datetime );
2141
 
2142
  // if any ticket is available for this event, consider the availability slug as 'available'
2143
  if ( 'available' === $availability_slug ) {
2147
  }
2148
 
2149
  // track unique availability slugs
2150
+ if ( ! in_array( $availability_slug, $slugs, true ) ) {
2151
  $slugs[] = $availability_slug;
2152
  }
2153
  }
2298
  $post_id = (int) get_the_ID();
2299
 
2300
  // So long as at least one ticket provider has tickets available, do not show an unavailability message
2301
+ if ( in_array( $post_id, self::$posts_with_available_tickets, true ) ) {
2302
  return;
2303
  }
2304
 
src/Tribe/Views/V2/Models/Tickets.php CHANGED
@@ -3,7 +3,7 @@
3
  * The Tickets abstraction objece, used to add tickets-related properties to the event object crated by the
4
  * `trib_get_event` function.
5
  *
6
- * @since TBD
7
  *
8
  * @package Tribe\Events\Tickets\Views\V2\Models
9
  */
@@ -16,7 +16,7 @@ use Tribe\Utils\Lazy_Events;
16
  /**
17
  * Class Tickets
18
  *
19
- * @since TBD
20
  *
21
  * @package Tribe\Events\Tickets\Views\V2\Models
22
  */
3
  * The Tickets abstraction objece, used to add tickets-related properties to the event object crated by the
4
  * `trib_get_event` function.
5
  *
6
+ * @since 4.10.9
7
  *
8
  * @package Tribe\Events\Tickets\Views\V2\Models
9
  */
16
  /**
17
  * Class Tickets
18
  *
19
+ * @since 4.10.9
20
  *
21
  * @package Tribe\Events\Tickets\Views\V2\Models
22
  */
src/Tribe/Views/V2/Service_Provider.php CHANGED
@@ -4,7 +4,7 @@ namespace Tribe\Events\Tickets\Views\V2;
4
  /**
5
  * The main service provider for Event Tickets support and additions to the Views V2 functions.
6
  *
7
- * @since TBD
8
  * @package Tribe\Events\Tickets\Views\V2
9
  */
10
  class Service_Provider extends \tad_DI52_ServiceProvider {
4
  /**
5
  * The main service provider for Event Tickets support and additions to the Views V2 functions.
6
  *
7
+ * @since 4.10.9
8
  * @package Tribe\Events\Tickets\Views\V2
9
  */
10
  class Service_Provider extends \tad_DI52_ServiceProvider {
src/admin-views/tribe-options-tickets.php CHANGED
@@ -7,7 +7,7 @@
7
  * @since 4.10.2 Update tooltip text for Confirmation email sender address and allow it to be saved as empty
8
  * @since 4.10.9 Use function for text.
9
  *
10
- * @version TBD
11
  */
12
  $post_types_to_ignore = apply_filters( 'tribe_tickets_settings_post_type_ignore_list', [
13
  'attachment',
7
  * @since 4.10.2 Update tooltip text for Confirmation email sender address and allow it to be saved as empty
8
  * @since 4.10.9 Use function for text.
9
  *
10
+ * @version 4.10.10
11
  */
12
  $post_types_to_ignore = apply_filters( 'tribe_tickets_settings_post_type_ignore_list', [
13
  'attachment',
src/views/blocks/tickets.php CHANGED
@@ -11,8 +11,9 @@
11
  *
12
  * @since 4.9
13
  * @since 4.10.8 Updated loading logic for including a renamed template.
 
14
  *
15
- * @version 4.10.8
16
  *
17
  * @var Tribe__Tickets__Editor__Template $this
18
  */
@@ -28,7 +29,7 @@ $is_sale_past = $this->get( 'is_sale_past' );
28
  $cart_classes = array( 'tribe-block', 'tribe-block__tickets' );
29
 
30
  // We don't display anything if there is no provider or tickets
31
- if ( ! $provider || empty( $tickets ) ) {
32
  return false;
33
  }
34
 
11
  *
12
  * @since 4.9
13
  * @since 4.10.8 Updated loading logic for including a renamed template.
14
+ * @since 4.10.10 - Removed initial check for tickets.
15
  *
16
+ * @version 4.10.10
17
  *
18
  * @var Tribe__Tickets__Editor__Template $this
19
  */
29
  $cart_classes = array( 'tribe-block', 'tribe-block__tickets' );
30
 
31
  // We don't display anything if there is no provider or tickets
32
+ if ( ! $provider ) {
33
  return false;
34
  }
35
 
src/views/tickets/tpp.php CHANGED
@@ -12,7 +12,7 @@
12
  * @since 4.8.2 Add date_in_range() logic so past tickets do not show.
13
  * @since 4.9.3 Display login link if visitor is logged out and logging in is required to purchase.
14
  * @since 4.10.8 Removed the date_in_range() check per ticket, since it now happens upstream. Better checking of max quantity available.
15
- * @since TBD Use customizable ticket name functions.
16
  *
17
  * @version 4.10.9
18
  *
@@ -27,7 +27,7 @@ $commerce = tribe( 'tickets.commerce.paypal' );
27
 
28
  $messages = $commerce->get_messages();
29
  $messages_class = $messages ? 'tribe-tpp-message-display' : '';
30
- $now = current_time( 'timestamp' );
31
  $cart_url = '';
32
  ?>
33
  <form
12
  * @since 4.8.2 Add date_in_range() logic so past tickets do not show.
13
  * @since 4.9.3 Display login link if visitor is logged out and logging in is required to purchase.
14
  * @since 4.10.8 Removed the date_in_range() check per ticket, since it now happens upstream. Better checking of max quantity available.
15
+ * @since 4.10.10 Use customizable ticket name functions.
16
  *
17
  * @version 4.10.9
18
  *
27
 
28
  $messages = $commerce->get_messages();
29
  $messages_class = $messages ? 'tribe-tpp-message-display' : '';
30
+ $now = time();
31
  $cart_url = '';
32
  ?>
33
  <form
vendor/autoload.php CHANGED
@@ -4,4 +4,4 @@
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
- return ComposerAutoloaderInit6a81194869c912b62599b3b953ab6b73::getLoader();
4
 
5
  require_once __DIR__ . '/composer/autoload_real.php';
6
 
7
+ return ComposerAutoloaderInit8051fb82e12fd13a3521bf9c6b58cd9e::getLoader();
vendor/composer/autoload_real.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
- class ComposerAutoloaderInit6a81194869c912b62599b3b953ab6b73
6
  {
7
  private static $loader;
8
 
@@ -19,15 +19,15 @@ class ComposerAutoloaderInit6a81194869c912b62599b3b953ab6b73
19
  return self::$loader;
20
  }
21
 
22
- spl_autoload_register(array('ComposerAutoloaderInit6a81194869c912b62599b3b953ab6b73', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInit6a81194869c912b62599b3b953ab6b73', 'loadClassLoader'));
25
 
26
  $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
27
  if ($useStaticLoader) {
28
  require_once __DIR__ . '/autoload_static.php';
29
 
30
- call_user_func(\Composer\Autoload\ComposerStaticInit6a81194869c912b62599b3b953ab6b73::getInitializer($loader));
31
  } else {
32
  $map = require __DIR__ . '/autoload_namespaces.php';
33
  foreach ($map as $namespace => $path) {
2
 
3
  // autoload_real.php @generated by Composer
4
 
5
+ class ComposerAutoloaderInit8051fb82e12fd13a3521bf9c6b58cd9e
6
  {
7
  private static $loader;
8
 
19
  return self::$loader;
20
  }
21
 
22
+ spl_autoload_register(array('ComposerAutoloaderInit8051fb82e12fd13a3521bf9c6b58cd9e', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
+ spl_autoload_unregister(array('ComposerAutoloaderInit8051fb82e12fd13a3521bf9c6b58cd9e', 'loadClassLoader'));
25
 
26
  $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
27
  if ($useStaticLoader) {
28
  require_once __DIR__ . '/autoload_static.php';
29
 
30
+ call_user_func(\Composer\Autoload\ComposerStaticInit8051fb82e12fd13a3521bf9c6b58cd9e::getInitializer($loader));
31
  } else {
32
  $map = require __DIR__ . '/autoload_namespaces.php';
33
  foreach ($map as $namespace => $path) {
vendor/composer/autoload_static.php CHANGED
@@ -4,7 +4,7 @@
4
 
5
  namespace Composer\Autoload;
6
 
7
- class ComposerStaticInit6a81194869c912b62599b3b953ab6b73
8
  {
9
  public static $prefixLengthsPsr4 = array (
10
  'T' =>
@@ -45,9 +45,9 @@ class ComposerStaticInit6a81194869c912b62599b3b953ab6b73
45
  public static function getInitializer(ClassLoader $loader)
46
  {
47
  return \Closure::bind(function () use ($loader) {
48
- $loader->prefixLengthsPsr4 = ComposerStaticInit6a81194869c912b62599b3b953ab6b73::$prefixLengthsPsr4;
49
- $loader->prefixDirsPsr4 = ComposerStaticInit6a81194869c912b62599b3b953ab6b73::$prefixDirsPsr4;
50
- $loader->classMap = ComposerStaticInit6a81194869c912b62599b3b953ab6b73::$classMap;
51
 
52
  }, null, ClassLoader::class);
53
  }
4
 
5
  namespace Composer\Autoload;
6
 
7
+ class ComposerStaticInit8051fb82e12fd13a3521bf9c6b58cd9e
8
  {
9
  public static $prefixLengthsPsr4 = array (
10
  'T' =>
45
  public static function getInitializer(ClassLoader $loader)
46
  {
47
  return \Closure::bind(function () use ($loader) {
48
+ $loader->prefixLengthsPsr4 = ComposerStaticInit8051fb82e12fd13a3521bf9c6b58cd9e::$prefixLengthsPsr4;
49
+ $loader->prefixDirsPsr4 = ComposerStaticInit8051fb82e12fd13a3521bf9c6b58cd9e::$prefixDirsPsr4;
50
+ $loader->classMap = ComposerStaticInit8051fb82e12fd13a3521bf9c6b58cd9e::$classMap;
51
 
52
  }, null, ClassLoader::class);
53
  }