@@ -16,295 +16,295 @@ |
||
16 | 16 | class Version |
17 | 17 | { |
18 | 18 | |
19 | - const RELEASE_TYPE_RC = 'rc'; |
|
20 | - |
|
21 | - const RELEASE_TYPE_BETA = 'beta'; |
|
22 | - |
|
23 | - const RELEASE_TYPE_DECAF = 'decaf'; |
|
24 | - |
|
25 | - const RELEASE_TYPE_PROD = 'p'; |
|
26 | - |
|
27 | - /** |
|
28 | - * @var int $major |
|
29 | - */ |
|
30 | - private $major; |
|
31 | - |
|
32 | - /** |
|
33 | - * @var int $minor |
|
34 | - */ |
|
35 | - private $minor; |
|
36 | - |
|
37 | - /** |
|
38 | - * @var int $patch |
|
39 | - */ |
|
40 | - private $patch; |
|
41 | - |
|
42 | - /** |
|
43 | - * @var string $release |
|
44 | - */ |
|
45 | - private $release; |
|
46 | - |
|
47 | - /** |
|
48 | - * @var int $build |
|
49 | - */ |
|
50 | - private $build; |
|
51 | - |
|
52 | - |
|
53 | - /** |
|
54 | - * Version constructor. |
|
55 | - * |
|
56 | - * @param int $major |
|
57 | - * @param int $minor |
|
58 | - * @param int $patch |
|
59 | - * @param string $release |
|
60 | - * @param int $build |
|
61 | - * @throws InvalidDataTypeException |
|
62 | - * @throws InvalidArgumentException |
|
63 | - */ |
|
64 | - public function __construct($major, $minor, $patch, $release = Version::RELEASE_TYPE_PROD, $build = 0) |
|
65 | - { |
|
66 | - $this->setMajor($major); |
|
67 | - $this->setMinor($minor); |
|
68 | - $this->setPatch($patch); |
|
69 | - $this->setRelease($release); |
|
70 | - $this->setBuild($build); |
|
71 | - } |
|
72 | - |
|
73 | - |
|
74 | - /** |
|
75 | - * @param string $version_string |
|
76 | - * @return Version |
|
77 | - * @throws InvalidArgumentException |
|
78 | - */ |
|
79 | - public static function fromString($version_string) |
|
80 | - { |
|
81 | - // compare incoming version string against the lowest possible valid version |
|
82 | - if (version_compare($version_string, '0.0.1.dev.001', '<')) { |
|
83 | - throw new InvalidArgumentException( |
|
84 | - sprintf( |
|
85 | - esc_html__('"%1$s" is not a valid version string', 'event_espresso'), |
|
86 | - $version_string |
|
87 | - ) |
|
88 | - ); |
|
89 | - } |
|
90 | - // break apart incoming version string |
|
91 | - $version_parts = explode('.', $version_string); |
|
92 | - // verify that version string at least contains {major}.{minor}.{patch} |
|
93 | - if (count($version_parts) < 3) { |
|
94 | - throw new InvalidArgumentException( |
|
95 | - sprintf( |
|
96 | - esc_html__( |
|
97 | - 'At minimum, a version string needs to be in a "{major}.{minor}.{patch}" format, therefore "%1$s" is not valid', |
|
98 | - 'event_espresso' |
|
99 | - ), |
|
100 | - $version_string |
|
101 | - ) |
|
102 | - ); |
|
103 | - } |
|
104 | - // add defaults for missing pieces |
|
105 | - $version_parts += array(0,0,0,'p',0); |
|
106 | - // reassign to individual variables |
|
107 | - list($major, $minor, $patch, $release, $build) = $version_parts; |
|
108 | - return new Version( |
|
109 | - (int) $major, |
|
110 | - (int) $minor, |
|
111 | - (int) $patch, |
|
112 | - $release, |
|
113 | - (int) $build |
|
114 | - ); |
|
115 | - } |
|
116 | - |
|
117 | - |
|
118 | - /** |
|
119 | - * @return int |
|
120 | - */ |
|
121 | - public function major() |
|
122 | - { |
|
123 | - return $this->major; |
|
124 | - } |
|
125 | - |
|
126 | - |
|
127 | - /** |
|
128 | - * @param int|string $major |
|
129 | - * @throws InvalidDataTypeException |
|
130 | - */ |
|
131 | - private function setMajor($major) |
|
132 | - { |
|
133 | - if (! is_int($major)) { |
|
134 | - throw new InvalidDataTypeException( |
|
135 | - '$major', |
|
136 | - $major, |
|
137 | - 'integer' |
|
138 | - ); |
|
139 | - } |
|
140 | - $this->major = absint($major); |
|
141 | - } |
|
142 | - |
|
143 | - |
|
144 | - /** |
|
145 | - * @return int |
|
146 | - */ |
|
147 | - public function minor() |
|
148 | - { |
|
149 | - return $this->minor; |
|
150 | - } |
|
151 | - |
|
152 | - |
|
153 | - /** |
|
154 | - * @param int|string $minor |
|
155 | - * @throws InvalidDataTypeException |
|
156 | - */ |
|
157 | - private function setMinor($minor) |
|
158 | - { |
|
159 | - if (! is_int($minor)) { |
|
160 | - throw new InvalidDataTypeException( |
|
161 | - '$minor', |
|
162 | - $minor, |
|
163 | - 'integer' |
|
164 | - ); |
|
165 | - } |
|
166 | - $this->minor = absint($minor); |
|
167 | - } |
|
168 | - |
|
169 | - |
|
170 | - /** |
|
171 | - * @return int |
|
172 | - */ |
|
173 | - public function patch() |
|
174 | - { |
|
175 | - return $this->patch; |
|
176 | - } |
|
177 | - |
|
178 | - |
|
179 | - /** |
|
180 | - * @param int|string $patch |
|
181 | - * @throws InvalidDataTypeException |
|
182 | - */ |
|
183 | - private function setPatch($patch) |
|
184 | - { |
|
185 | - if (! is_int($patch)) { |
|
186 | - throw new InvalidDataTypeException( |
|
187 | - '$patch', |
|
188 | - $patch, |
|
189 | - 'integer' |
|
190 | - ); |
|
191 | - } |
|
192 | - $this->patch = absint($patch); |
|
193 | - } |
|
194 | - |
|
195 | - |
|
196 | - /** |
|
197 | - * @return string |
|
198 | - */ |
|
199 | - public function release() |
|
200 | - { |
|
201 | - return $this->release; |
|
202 | - } |
|
203 | - |
|
204 | - |
|
205 | - /** |
|
206 | - * @param string $release |
|
207 | - * @throws InvalidArgumentException |
|
208 | - */ |
|
209 | - private function setRelease($release) |
|
210 | - { |
|
211 | - $valid_release_types = array( |
|
212 | - Version::RELEASE_TYPE_RC, |
|
213 | - Version::RELEASE_TYPE_BETA, |
|
214 | - Version::RELEASE_TYPE_DECAF, |
|
215 | - Version::RELEASE_TYPE_PROD, |
|
216 | - ); |
|
217 | - if (! in_array($release, $valid_release_types, true)) { |
|
218 | - throw new InvalidArgumentException( |
|
219 | - sprintf( |
|
220 | - esc_html__( |
|
221 | - '"%1$s" is not a valid release type. Please use one of the following values: %2$s', |
|
222 | - 'event_espresso' |
|
223 | - ), |
|
224 | - $release, |
|
225 | - implode(', ', $valid_release_types) |
|
226 | - ) |
|
227 | - ); |
|
228 | - } |
|
229 | - $this->release = $release; |
|
230 | - } |
|
231 | - |
|
232 | - |
|
233 | - /** |
|
234 | - * @return int |
|
235 | - */ |
|
236 | - public function build() |
|
237 | - { |
|
238 | - return $this->build; |
|
239 | - } |
|
240 | - |
|
241 | - |
|
242 | - /** |
|
243 | - * @param int|string $build |
|
244 | - * @throws InvalidDataTypeException |
|
245 | - */ |
|
246 | - private function setBuild($build) |
|
247 | - { |
|
248 | - if (! is_int($build)) { |
|
249 | - throw new InvalidDataTypeException( |
|
250 | - '$build', |
|
251 | - $build, |
|
252 | - 'integer' |
|
253 | - ); |
|
254 | - } |
|
255 | - $this->build = absint($build); |
|
256 | - } |
|
257 | - |
|
258 | - |
|
259 | - /** |
|
260 | - * @param Version $other_version |
|
261 | - * @return int |
|
262 | - */ |
|
263 | - public function compare(Version $other_version) |
|
264 | - { |
|
265 | - return version_compare((string) $this, (string) $other_version); |
|
266 | - } |
|
267 | - |
|
268 | - |
|
269 | - /** |
|
270 | - * @param Version $other_version |
|
271 | - * @return bool |
|
272 | - */ |
|
273 | - public function equals(Version $other_version) |
|
274 | - { |
|
275 | - return version_compare((string) $this, (string) $other_version, '=='); |
|
276 | - } |
|
277 | - |
|
278 | - |
|
279 | - /** |
|
280 | - * @param Version $other_version |
|
281 | - * @return bool |
|
282 | - */ |
|
283 | - public function newerThan(Version $other_version) |
|
284 | - { |
|
285 | - return version_compare((string) $this, (string) $other_version, '>'); |
|
286 | - } |
|
287 | - |
|
288 | - |
|
289 | - /** |
|
290 | - * @param Version $other_version |
|
291 | - * @return bool |
|
292 | - */ |
|
293 | - public function olderThan(Version $other_version) |
|
294 | - { |
|
295 | - return version_compare((string) $this, (string) $other_version, '<'); |
|
296 | - } |
|
297 | - |
|
298 | - |
|
299 | - /** |
|
300 | - * @return string |
|
301 | - */ |
|
302 | - public function __toString() |
|
303 | - { |
|
304 | - $version_string = "{$this->major}.{$this->minor}.{$this->patch}.{$this->release}"; |
|
305 | - if ($this->release !== Version::RELEASE_TYPE_PROD && $this->release !== Version::RELEASE_TYPE_DECAF) { |
|
306 | - $version_string .= '.' . str_pad($this->build, 3, '0', STR_PAD_LEFT); |
|
307 | - } |
|
308 | - return $version_string; |
|
309 | - } |
|
19 | + const RELEASE_TYPE_RC = 'rc'; |
|
20 | + |
|
21 | + const RELEASE_TYPE_BETA = 'beta'; |
|
22 | + |
|
23 | + const RELEASE_TYPE_DECAF = 'decaf'; |
|
24 | + |
|
25 | + const RELEASE_TYPE_PROD = 'p'; |
|
26 | + |
|
27 | + /** |
|
28 | + * @var int $major |
|
29 | + */ |
|
30 | + private $major; |
|
31 | + |
|
32 | + /** |
|
33 | + * @var int $minor |
|
34 | + */ |
|
35 | + private $minor; |
|
36 | + |
|
37 | + /** |
|
38 | + * @var int $patch |
|
39 | + */ |
|
40 | + private $patch; |
|
41 | + |
|
42 | + /** |
|
43 | + * @var string $release |
|
44 | + */ |
|
45 | + private $release; |
|
46 | + |
|
47 | + /** |
|
48 | + * @var int $build |
|
49 | + */ |
|
50 | + private $build; |
|
51 | + |
|
52 | + |
|
53 | + /** |
|
54 | + * Version constructor. |
|
55 | + * |
|
56 | + * @param int $major |
|
57 | + * @param int $minor |
|
58 | + * @param int $patch |
|
59 | + * @param string $release |
|
60 | + * @param int $build |
|
61 | + * @throws InvalidDataTypeException |
|
62 | + * @throws InvalidArgumentException |
|
63 | + */ |
|
64 | + public function __construct($major, $minor, $patch, $release = Version::RELEASE_TYPE_PROD, $build = 0) |
|
65 | + { |
|
66 | + $this->setMajor($major); |
|
67 | + $this->setMinor($minor); |
|
68 | + $this->setPatch($patch); |
|
69 | + $this->setRelease($release); |
|
70 | + $this->setBuild($build); |
|
71 | + } |
|
72 | + |
|
73 | + |
|
74 | + /** |
|
75 | + * @param string $version_string |
|
76 | + * @return Version |
|
77 | + * @throws InvalidArgumentException |
|
78 | + */ |
|
79 | + public static function fromString($version_string) |
|
80 | + { |
|
81 | + // compare incoming version string against the lowest possible valid version |
|
82 | + if (version_compare($version_string, '0.0.1.dev.001', '<')) { |
|
83 | + throw new InvalidArgumentException( |
|
84 | + sprintf( |
|
85 | + esc_html__('"%1$s" is not a valid version string', 'event_espresso'), |
|
86 | + $version_string |
|
87 | + ) |
|
88 | + ); |
|
89 | + } |
|
90 | + // break apart incoming version string |
|
91 | + $version_parts = explode('.', $version_string); |
|
92 | + // verify that version string at least contains {major}.{minor}.{patch} |
|
93 | + if (count($version_parts) < 3) { |
|
94 | + throw new InvalidArgumentException( |
|
95 | + sprintf( |
|
96 | + esc_html__( |
|
97 | + 'At minimum, a version string needs to be in a "{major}.{minor}.{patch}" format, therefore "%1$s" is not valid', |
|
98 | + 'event_espresso' |
|
99 | + ), |
|
100 | + $version_string |
|
101 | + ) |
|
102 | + ); |
|
103 | + } |
|
104 | + // add defaults for missing pieces |
|
105 | + $version_parts += array(0,0,0,'p',0); |
|
106 | + // reassign to individual variables |
|
107 | + list($major, $minor, $patch, $release, $build) = $version_parts; |
|
108 | + return new Version( |
|
109 | + (int) $major, |
|
110 | + (int) $minor, |
|
111 | + (int) $patch, |
|
112 | + $release, |
|
113 | + (int) $build |
|
114 | + ); |
|
115 | + } |
|
116 | + |
|
117 | + |
|
118 | + /** |
|
119 | + * @return int |
|
120 | + */ |
|
121 | + public function major() |
|
122 | + { |
|
123 | + return $this->major; |
|
124 | + } |
|
125 | + |
|
126 | + |
|
127 | + /** |
|
128 | + * @param int|string $major |
|
129 | + * @throws InvalidDataTypeException |
|
130 | + */ |
|
131 | + private function setMajor($major) |
|
132 | + { |
|
133 | + if (! is_int($major)) { |
|
134 | + throw new InvalidDataTypeException( |
|
135 | + '$major', |
|
136 | + $major, |
|
137 | + 'integer' |
|
138 | + ); |
|
139 | + } |
|
140 | + $this->major = absint($major); |
|
141 | + } |
|
142 | + |
|
143 | + |
|
144 | + /** |
|
145 | + * @return int |
|
146 | + */ |
|
147 | + public function minor() |
|
148 | + { |
|
149 | + return $this->minor; |
|
150 | + } |
|
151 | + |
|
152 | + |
|
153 | + /** |
|
154 | + * @param int|string $minor |
|
155 | + * @throws InvalidDataTypeException |
|
156 | + */ |
|
157 | + private function setMinor($minor) |
|
158 | + { |
|
159 | + if (! is_int($minor)) { |
|
160 | + throw new InvalidDataTypeException( |
|
161 | + '$minor', |
|
162 | + $minor, |
|
163 | + 'integer' |
|
164 | + ); |
|
165 | + } |
|
166 | + $this->minor = absint($minor); |
|
167 | + } |
|
168 | + |
|
169 | + |
|
170 | + /** |
|
171 | + * @return int |
|
172 | + */ |
|
173 | + public function patch() |
|
174 | + { |
|
175 | + return $this->patch; |
|
176 | + } |
|
177 | + |
|
178 | + |
|
179 | + /** |
|
180 | + * @param int|string $patch |
|
181 | + * @throws InvalidDataTypeException |
|
182 | + */ |
|
183 | + private function setPatch($patch) |
|
184 | + { |
|
185 | + if (! is_int($patch)) { |
|
186 | + throw new InvalidDataTypeException( |
|
187 | + '$patch', |
|
188 | + $patch, |
|
189 | + 'integer' |
|
190 | + ); |
|
191 | + } |
|
192 | + $this->patch = absint($patch); |
|
193 | + } |
|
194 | + |
|
195 | + |
|
196 | + /** |
|
197 | + * @return string |
|
198 | + */ |
|
199 | + public function release() |
|
200 | + { |
|
201 | + return $this->release; |
|
202 | + } |
|
203 | + |
|
204 | + |
|
205 | + /** |
|
206 | + * @param string $release |
|
207 | + * @throws InvalidArgumentException |
|
208 | + */ |
|
209 | + private function setRelease($release) |
|
210 | + { |
|
211 | + $valid_release_types = array( |
|
212 | + Version::RELEASE_TYPE_RC, |
|
213 | + Version::RELEASE_TYPE_BETA, |
|
214 | + Version::RELEASE_TYPE_DECAF, |
|
215 | + Version::RELEASE_TYPE_PROD, |
|
216 | + ); |
|
217 | + if (! in_array($release, $valid_release_types, true)) { |
|
218 | + throw new InvalidArgumentException( |
|
219 | + sprintf( |
|
220 | + esc_html__( |
|
221 | + '"%1$s" is not a valid release type. Please use one of the following values: %2$s', |
|
222 | + 'event_espresso' |
|
223 | + ), |
|
224 | + $release, |
|
225 | + implode(', ', $valid_release_types) |
|
226 | + ) |
|
227 | + ); |
|
228 | + } |
|
229 | + $this->release = $release; |
|
230 | + } |
|
231 | + |
|
232 | + |
|
233 | + /** |
|
234 | + * @return int |
|
235 | + */ |
|
236 | + public function build() |
|
237 | + { |
|
238 | + return $this->build; |
|
239 | + } |
|
240 | + |
|
241 | + |
|
242 | + /** |
|
243 | + * @param int|string $build |
|
244 | + * @throws InvalidDataTypeException |
|
245 | + */ |
|
246 | + private function setBuild($build) |
|
247 | + { |
|
248 | + if (! is_int($build)) { |
|
249 | + throw new InvalidDataTypeException( |
|
250 | + '$build', |
|
251 | + $build, |
|
252 | + 'integer' |
|
253 | + ); |
|
254 | + } |
|
255 | + $this->build = absint($build); |
|
256 | + } |
|
257 | + |
|
258 | + |
|
259 | + /** |
|
260 | + * @param Version $other_version |
|
261 | + * @return int |
|
262 | + */ |
|
263 | + public function compare(Version $other_version) |
|
264 | + { |
|
265 | + return version_compare((string) $this, (string) $other_version); |
|
266 | + } |
|
267 | + |
|
268 | + |
|
269 | + /** |
|
270 | + * @param Version $other_version |
|
271 | + * @return bool |
|
272 | + */ |
|
273 | + public function equals(Version $other_version) |
|
274 | + { |
|
275 | + return version_compare((string) $this, (string) $other_version, '=='); |
|
276 | + } |
|
277 | + |
|
278 | + |
|
279 | + /** |
|
280 | + * @param Version $other_version |
|
281 | + * @return bool |
|
282 | + */ |
|
283 | + public function newerThan(Version $other_version) |
|
284 | + { |
|
285 | + return version_compare((string) $this, (string) $other_version, '>'); |
|
286 | + } |
|
287 | + |
|
288 | + |
|
289 | + /** |
|
290 | + * @param Version $other_version |
|
291 | + * @return bool |
|
292 | + */ |
|
293 | + public function olderThan(Version $other_version) |
|
294 | + { |
|
295 | + return version_compare((string) $this, (string) $other_version, '<'); |
|
296 | + } |
|
297 | + |
|
298 | + |
|
299 | + /** |
|
300 | + * @return string |
|
301 | + */ |
|
302 | + public function __toString() |
|
303 | + { |
|
304 | + $version_string = "{$this->major}.{$this->minor}.{$this->patch}.{$this->release}"; |
|
305 | + if ($this->release !== Version::RELEASE_TYPE_PROD && $this->release !== Version::RELEASE_TYPE_DECAF) { |
|
306 | + $version_string .= '.' . str_pad($this->build, 3, '0', STR_PAD_LEFT); |
|
307 | + } |
|
308 | + return $version_string; |
|
309 | + } |
|
310 | 310 | } |
@@ -102,7 +102,7 @@ discard block |
||
102 | 102 | ); |
103 | 103 | } |
104 | 104 | // add defaults for missing pieces |
105 | - $version_parts += array(0,0,0,'p',0); |
|
105 | + $version_parts += array(0, 0, 0, 'p', 0); |
|
106 | 106 | // reassign to individual variables |
107 | 107 | list($major, $minor, $patch, $release, $build) = $version_parts; |
108 | 108 | return new Version( |
@@ -130,7 +130,7 @@ discard block |
||
130 | 130 | */ |
131 | 131 | private function setMajor($major) |
132 | 132 | { |
133 | - if (! is_int($major)) { |
|
133 | + if ( ! is_int($major)) { |
|
134 | 134 | throw new InvalidDataTypeException( |
135 | 135 | '$major', |
136 | 136 | $major, |
@@ -156,7 +156,7 @@ discard block |
||
156 | 156 | */ |
157 | 157 | private function setMinor($minor) |
158 | 158 | { |
159 | - if (! is_int($minor)) { |
|
159 | + if ( ! is_int($minor)) { |
|
160 | 160 | throw new InvalidDataTypeException( |
161 | 161 | '$minor', |
162 | 162 | $minor, |
@@ -182,7 +182,7 @@ discard block |
||
182 | 182 | */ |
183 | 183 | private function setPatch($patch) |
184 | 184 | { |
185 | - if (! is_int($patch)) { |
|
185 | + if ( ! is_int($patch)) { |
|
186 | 186 | throw new InvalidDataTypeException( |
187 | 187 | '$patch', |
188 | 188 | $patch, |
@@ -214,7 +214,7 @@ discard block |
||
214 | 214 | Version::RELEASE_TYPE_DECAF, |
215 | 215 | Version::RELEASE_TYPE_PROD, |
216 | 216 | ); |
217 | - if (! in_array($release, $valid_release_types, true)) { |
|
217 | + if ( ! in_array($release, $valid_release_types, true)) { |
|
218 | 218 | throw new InvalidArgumentException( |
219 | 219 | sprintf( |
220 | 220 | esc_html__( |
@@ -245,7 +245,7 @@ discard block |
||
245 | 245 | */ |
246 | 246 | private function setBuild($build) |
247 | 247 | { |
248 | - if (! is_int($build)) { |
|
248 | + if ( ! is_int($build)) { |
|
249 | 249 | throw new InvalidDataTypeException( |
250 | 250 | '$build', |
251 | 251 | $build, |
@@ -303,7 +303,7 @@ discard block |
||
303 | 303 | { |
304 | 304 | $version_string = "{$this->major}.{$this->minor}.{$this->patch}.{$this->release}"; |
305 | 305 | if ($this->release !== Version::RELEASE_TYPE_PROD && $this->release !== Version::RELEASE_TYPE_DECAF) { |
306 | - $version_string .= '.' . str_pad($this->build, 3, '0', STR_PAD_LEFT); |
|
306 | + $version_string .= '.'.str_pad($this->build, 3, '0', STR_PAD_LEFT); |
|
307 | 307 | } |
308 | 308 | return $version_string; |
309 | 309 | } |
@@ -15,8 +15,8 @@ |
||
15 | 15 | interface RequiresRegistryInterface |
16 | 16 | { |
17 | 17 | |
18 | - /** |
|
19 | - * @param EE_Registry $registry |
|
20 | - */ |
|
21 | - public function setRegistry($registry); |
|
18 | + /** |
|
19 | + * @param EE_Registry $registry |
|
20 | + */ |
|
21 | + public function setRegistry($registry); |
|
22 | 22 | } |
@@ -71,7 +71,7 @@ discard block |
||
71 | 71 | DbSafeDateTime::db_safe_timestamp_format, |
72 | 72 | $this->_datetime_string |
73 | 73 | ); |
74 | - if (! $date instanceof DateTime) { |
|
74 | + if ( ! $date instanceof DateTime) { |
|
75 | 75 | try { |
76 | 76 | // we want a stack trace to determine where the malformed date came from, so... |
77 | 77 | throw new DomainException(''); |
@@ -118,7 +118,7 @@ discard block |
||
118 | 118 | DbSafeDateTime::db_safe_timestamp_format, |
119 | 119 | $this->_datetime_string |
120 | 120 | ); |
121 | - if (! $date instanceof DateTime) { |
|
121 | + if ( ! $date instanceof DateTime) { |
|
122 | 122 | $this->writeToErrorLog( |
123 | 123 | sprintf( |
124 | 124 | __( |
@@ -160,7 +160,7 @@ discard block |
||
160 | 160 | */ |
161 | 161 | private function writeToErrorLog($message) |
162 | 162 | { |
163 | - if (! empty($this->_error_log_dir)) { |
|
163 | + if ( ! empty($this->_error_log_dir)) { |
|
164 | 164 | /** @noinspection ForgottenDebugOutputInspection */ |
165 | 165 | error_log($message, 3, $this->_error_log_dir); |
166 | 166 | } else { |
@@ -18,188 +18,188 @@ |
||
18 | 18 | class DbSafeDateTime extends DateTime |
19 | 19 | { |
20 | 20 | |
21 | - // phpcs:disable Generic.NamingConventions.UpperCaseConstantName.ClassConstantNotUpperCase |
|
22 | - /** |
|
23 | - * @type string db_safe_timestamp_format |
|
24 | - */ |
|
25 | - const db_safe_timestamp_format = 'Y-m-d H:i:s O e'; |
|
26 | - // phpcs:enable |
|
27 | - |
|
28 | - // phpcs:disable PSR2.Classes.PropertyDeclaration.Underscore |
|
29 | - /** |
|
30 | - * DateTime object converted to a string that includes the date, time, UTC offset, and timezone identifier |
|
31 | - * |
|
32 | - * @type string $_datetime_string |
|
33 | - */ |
|
34 | - protected $_datetime_string = ''; |
|
35 | - |
|
36 | - /** |
|
37 | - * where to write the error log to |
|
38 | - * |
|
39 | - * @type string $_error_log_dir |
|
40 | - */ |
|
41 | - protected $_error_log_dir = ''; |
|
42 | - // phpcs:enable |
|
43 | - |
|
44 | - |
|
45 | - /** |
|
46 | - * @param string $error_log_dir |
|
47 | - */ |
|
48 | - public function setErrorLogDir($error_log_dir) |
|
49 | - { |
|
50 | - // if the folder path is writable, then except the path + filename, else keep empty |
|
51 | - $this->_error_log_dir = is_writable(str_replace(basename($error_log_dir), '', $error_log_dir)) |
|
52 | - ? $error_log_dir |
|
53 | - : ''; |
|
54 | - } |
|
55 | - |
|
56 | - |
|
57 | - /** |
|
58 | - * @return string |
|
59 | - */ |
|
60 | - public function __toString() |
|
61 | - { |
|
62 | - return $this->format(DbSafeDateTime::db_safe_timestamp_format); |
|
63 | - } |
|
64 | - |
|
65 | - |
|
66 | - /** |
|
67 | - * @return array |
|
68 | - */ |
|
69 | - public function __sleep() |
|
70 | - { |
|
71 | - $this->_datetime_string = $this->format(DbSafeDateTime::db_safe_timestamp_format); |
|
72 | - $date = DateTime::createFromFormat( |
|
73 | - DbSafeDateTime::db_safe_timestamp_format, |
|
74 | - $this->_datetime_string |
|
75 | - ); |
|
76 | - if (! $date instanceof DateTime) { |
|
77 | - try { |
|
78 | - // we want a stack trace to determine where the malformed date came from, so... |
|
79 | - throw new DomainException(''); |
|
80 | - } catch (DomainException $e) { |
|
81 | - $stack_trace = $e->getTraceAsString(); |
|
82 | - } |
|
83 | - $this->writeToErrorLog( |
|
84 | - sprintf( |
|
85 | - __( |
|
86 | - 'A valid DateTime could not be generated from "%1$s" because the following errors occurred: %2$s %3$s %2$s PHP version: %4$s %2$s Stack Trace: %5$s', |
|
87 | - 'event_espresso' |
|
88 | - ), |
|
89 | - $this->_datetime_string, |
|
90 | - '<br />', |
|
91 | - print_r(DateTime::getLastErrors(), true), |
|
92 | - PHP_VERSION, |
|
93 | - $stack_trace |
|
94 | - ) |
|
95 | - ); |
|
96 | - } |
|
97 | - return array('_datetime_string'); |
|
98 | - } |
|
99 | - |
|
100 | - |
|
101 | - /** |
|
102 | - * if an empty or null value got saved to the db for a datetime, |
|
103 | - * then some servers and/or PHP itself will incorrectly convert that date string |
|
104 | - * resulting in "-0001-11-30" for the year-month-day. |
|
105 | - * see the Notes section |
|
106 | - * |
|
107 | - * @link http://php.net/manual/en/datetime.formats.date.php |
|
108 | - * We'll replace those with "0000-00-00" which will allow a valid DateTime object to be created, |
|
109 | - * but still result in the internal date for that object being set to "-0001-11-30 10:00:00.000000". |
|
110 | - * so we're no better off, but at least things won't go fatal on us. |
|
111 | - */ |
|
112 | - public function __wakeup() |
|
113 | - { |
|
114 | - $date = self::createFromFormat( |
|
115 | - DbSafeDateTime::db_safe_timestamp_format, |
|
116 | - $this->_datetime_string |
|
117 | - ); |
|
118 | - if (! $date instanceof DateTime) { |
|
119 | - $this->writeToErrorLog( |
|
120 | - sprintf( |
|
121 | - __( |
|
122 | - 'A valid DateTime could not be recreated from "%1$s" because the following errors occurred: %2$s %3$s %2$s PHP version: %4$s', |
|
123 | - 'event_espresso' |
|
124 | - ), |
|
125 | - $this->_datetime_string, |
|
126 | - '<br />', |
|
127 | - print_r(DateTime::getLastErrors(), true), |
|
128 | - PHP_VERSION |
|
129 | - ) |
|
130 | - ); |
|
131 | - } else { |
|
132 | - $this->__construct( |
|
133 | - $date->format(\EE_Datetime_Field::mysql_timestamp_format), |
|
134 | - new DateTimeZone($date->format('e')) |
|
135 | - ); |
|
136 | - } |
|
137 | - } |
|
138 | - |
|
139 | - |
|
140 | - /** |
|
141 | - * Normalizes incoming date string so that it is a bit more stable for use. |
|
142 | - * @param string $date_string |
|
143 | - * @return string |
|
144 | - */ |
|
145 | - public static function normalizeInvalidDate($date_string) |
|
146 | - { |
|
147 | - return str_replace( |
|
148 | - array('-0001-11-29', '-0001-11-30', '0000-00-00'), |
|
149 | - '0000-01-03', |
|
150 | - $date_string |
|
151 | - ); |
|
152 | - } |
|
153 | - |
|
154 | - |
|
155 | - /** |
|
156 | - * Creates a DbSafeDateTime from ye old DateTime |
|
157 | - * |
|
158 | - * @param DateTime $datetime |
|
159 | - * @return \EventEspresso\core\domain\entities\DbSafeDateTime |
|
160 | - */ |
|
161 | - public static function createFromDateTime(DateTime $datetime) |
|
162 | - { |
|
163 | - return new DbSafeDateTime( |
|
164 | - $datetime->format(\EE_Datetime_Field::mysql_timestamp_format), |
|
165 | - new DateTimeZone($datetime->format('e')) |
|
166 | - ); |
|
167 | - } |
|
168 | - |
|
169 | - |
|
170 | - /** |
|
171 | - * Parse a string into a new DateTime object according to the specified format |
|
172 | - * |
|
173 | - * @param string $format Format accepted by date(). |
|
174 | - * @param string $time String representing the time. |
|
175 | - * @param DateTimeZone $timezone A DateTimeZone object representing the desired time zone. |
|
176 | - * @return DbSafeDateTime|boolean |
|
177 | - * @link https://php.net/manual/en/datetime.createfromformat.php |
|
178 | - */ |
|
179 | - public static function createFromFormat($format, $time, $timezone = null) |
|
180 | - { |
|
181 | - $time = self::normalizeInvalidDate($time); |
|
182 | - // Various php versions handle the third argument differently. This conditional accounts for that. |
|
183 | - $DateTime = $timezone === null |
|
184 | - ? parent::createFromFormat($format, $time) |
|
185 | - : parent::createFromFormat($format, $time, $timezone); |
|
186 | - return $DateTime instanceof DateTime |
|
187 | - ? self::createFromDateTime($DateTime) |
|
188 | - : $DateTime; |
|
189 | - } |
|
190 | - |
|
191 | - |
|
192 | - /** |
|
193 | - * @param string $message |
|
194 | - */ |
|
195 | - private function writeToErrorLog($message) |
|
196 | - { |
|
197 | - if (! empty($this->_error_log_dir)) { |
|
198 | - /** @noinspection ForgottenDebugOutputInspection */ |
|
199 | - error_log($message, 3, $this->_error_log_dir); |
|
200 | - } else { |
|
201 | - /** @noinspection ForgottenDebugOutputInspection */ |
|
202 | - error_log($message); |
|
203 | - } |
|
204 | - } |
|
21 | + // phpcs:disable Generic.NamingConventions.UpperCaseConstantName.ClassConstantNotUpperCase |
|
22 | + /** |
|
23 | + * @type string db_safe_timestamp_format |
|
24 | + */ |
|
25 | + const db_safe_timestamp_format = 'Y-m-d H:i:s O e'; |
|
26 | + // phpcs:enable |
|
27 | + |
|
28 | + // phpcs:disable PSR2.Classes.PropertyDeclaration.Underscore |
|
29 | + /** |
|
30 | + * DateTime object converted to a string that includes the date, time, UTC offset, and timezone identifier |
|
31 | + * |
|
32 | + * @type string $_datetime_string |
|
33 | + */ |
|
34 | + protected $_datetime_string = ''; |
|
35 | + |
|
36 | + /** |
|
37 | + * where to write the error log to |
|
38 | + * |
|
39 | + * @type string $_error_log_dir |
|
40 | + */ |
|
41 | + protected $_error_log_dir = ''; |
|
42 | + // phpcs:enable |
|
43 | + |
|
44 | + |
|
45 | + /** |
|
46 | + * @param string $error_log_dir |
|
47 | + */ |
|
48 | + public function setErrorLogDir($error_log_dir) |
|
49 | + { |
|
50 | + // if the folder path is writable, then except the path + filename, else keep empty |
|
51 | + $this->_error_log_dir = is_writable(str_replace(basename($error_log_dir), '', $error_log_dir)) |
|
52 | + ? $error_log_dir |
|
53 | + : ''; |
|
54 | + } |
|
55 | + |
|
56 | + |
|
57 | + /** |
|
58 | + * @return string |
|
59 | + */ |
|
60 | + public function __toString() |
|
61 | + { |
|
62 | + return $this->format(DbSafeDateTime::db_safe_timestamp_format); |
|
63 | + } |
|
64 | + |
|
65 | + |
|
66 | + /** |
|
67 | + * @return array |
|
68 | + */ |
|
69 | + public function __sleep() |
|
70 | + { |
|
71 | + $this->_datetime_string = $this->format(DbSafeDateTime::db_safe_timestamp_format); |
|
72 | + $date = DateTime::createFromFormat( |
|
73 | + DbSafeDateTime::db_safe_timestamp_format, |
|
74 | + $this->_datetime_string |
|
75 | + ); |
|
76 | + if (! $date instanceof DateTime) { |
|
77 | + try { |
|
78 | + // we want a stack trace to determine where the malformed date came from, so... |
|
79 | + throw new DomainException(''); |
|
80 | + } catch (DomainException $e) { |
|
81 | + $stack_trace = $e->getTraceAsString(); |
|
82 | + } |
|
83 | + $this->writeToErrorLog( |
|
84 | + sprintf( |
|
85 | + __( |
|
86 | + 'A valid DateTime could not be generated from "%1$s" because the following errors occurred: %2$s %3$s %2$s PHP version: %4$s %2$s Stack Trace: %5$s', |
|
87 | + 'event_espresso' |
|
88 | + ), |
|
89 | + $this->_datetime_string, |
|
90 | + '<br />', |
|
91 | + print_r(DateTime::getLastErrors(), true), |
|
92 | + PHP_VERSION, |
|
93 | + $stack_trace |
|
94 | + ) |
|
95 | + ); |
|
96 | + } |
|
97 | + return array('_datetime_string'); |
|
98 | + } |
|
99 | + |
|
100 | + |
|
101 | + /** |
|
102 | + * if an empty or null value got saved to the db for a datetime, |
|
103 | + * then some servers and/or PHP itself will incorrectly convert that date string |
|
104 | + * resulting in "-0001-11-30" for the year-month-day. |
|
105 | + * see the Notes section |
|
106 | + * |
|
107 | + * @link http://php.net/manual/en/datetime.formats.date.php |
|
108 | + * We'll replace those with "0000-00-00" which will allow a valid DateTime object to be created, |
|
109 | + * but still result in the internal date for that object being set to "-0001-11-30 10:00:00.000000". |
|
110 | + * so we're no better off, but at least things won't go fatal on us. |
|
111 | + */ |
|
112 | + public function __wakeup() |
|
113 | + { |
|
114 | + $date = self::createFromFormat( |
|
115 | + DbSafeDateTime::db_safe_timestamp_format, |
|
116 | + $this->_datetime_string |
|
117 | + ); |
|
118 | + if (! $date instanceof DateTime) { |
|
119 | + $this->writeToErrorLog( |
|
120 | + sprintf( |
|
121 | + __( |
|
122 | + 'A valid DateTime could not be recreated from "%1$s" because the following errors occurred: %2$s %3$s %2$s PHP version: %4$s', |
|
123 | + 'event_espresso' |
|
124 | + ), |
|
125 | + $this->_datetime_string, |
|
126 | + '<br />', |
|
127 | + print_r(DateTime::getLastErrors(), true), |
|
128 | + PHP_VERSION |
|
129 | + ) |
|
130 | + ); |
|
131 | + } else { |
|
132 | + $this->__construct( |
|
133 | + $date->format(\EE_Datetime_Field::mysql_timestamp_format), |
|
134 | + new DateTimeZone($date->format('e')) |
|
135 | + ); |
|
136 | + } |
|
137 | + } |
|
138 | + |
|
139 | + |
|
140 | + /** |
|
141 | + * Normalizes incoming date string so that it is a bit more stable for use. |
|
142 | + * @param string $date_string |
|
143 | + * @return string |
|
144 | + */ |
|
145 | + public static function normalizeInvalidDate($date_string) |
|
146 | + { |
|
147 | + return str_replace( |
|
148 | + array('-0001-11-29', '-0001-11-30', '0000-00-00'), |
|
149 | + '0000-01-03', |
|
150 | + $date_string |
|
151 | + ); |
|
152 | + } |
|
153 | + |
|
154 | + |
|
155 | + /** |
|
156 | + * Creates a DbSafeDateTime from ye old DateTime |
|
157 | + * |
|
158 | + * @param DateTime $datetime |
|
159 | + * @return \EventEspresso\core\domain\entities\DbSafeDateTime |
|
160 | + */ |
|
161 | + public static function createFromDateTime(DateTime $datetime) |
|
162 | + { |
|
163 | + return new DbSafeDateTime( |
|
164 | + $datetime->format(\EE_Datetime_Field::mysql_timestamp_format), |
|
165 | + new DateTimeZone($datetime->format('e')) |
|
166 | + ); |
|
167 | + } |
|
168 | + |
|
169 | + |
|
170 | + /** |
|
171 | + * Parse a string into a new DateTime object according to the specified format |
|
172 | + * |
|
173 | + * @param string $format Format accepted by date(). |
|
174 | + * @param string $time String representing the time. |
|
175 | + * @param DateTimeZone $timezone A DateTimeZone object representing the desired time zone. |
|
176 | + * @return DbSafeDateTime|boolean |
|
177 | + * @link https://php.net/manual/en/datetime.createfromformat.php |
|
178 | + */ |
|
179 | + public static function createFromFormat($format, $time, $timezone = null) |
|
180 | + { |
|
181 | + $time = self::normalizeInvalidDate($time); |
|
182 | + // Various php versions handle the third argument differently. This conditional accounts for that. |
|
183 | + $DateTime = $timezone === null |
|
184 | + ? parent::createFromFormat($format, $time) |
|
185 | + : parent::createFromFormat($format, $time, $timezone); |
|
186 | + return $DateTime instanceof DateTime |
|
187 | + ? self::createFromDateTime($DateTime) |
|
188 | + : $DateTime; |
|
189 | + } |
|
190 | + |
|
191 | + |
|
192 | + /** |
|
193 | + * @param string $message |
|
194 | + */ |
|
195 | + private function writeToErrorLog($message) |
|
196 | + { |
|
197 | + if (! empty($this->_error_log_dir)) { |
|
198 | + /** @noinspection ForgottenDebugOutputInspection */ |
|
199 | + error_log($message, 3, $this->_error_log_dir); |
|
200 | + } else { |
|
201 | + /** @noinspection ForgottenDebugOutputInspection */ |
|
202 | + error_log($message); |
|
203 | + } |
|
204 | + } |
|
205 | 205 | } |
@@ -14,62 +14,62 @@ |
||
14 | 14 | class Context implements ContextInterface |
15 | 15 | { |
16 | 16 | |
17 | - /** |
|
18 | - * @var string $slug |
|
19 | - */ |
|
20 | - private $slug; |
|
17 | + /** |
|
18 | + * @var string $slug |
|
19 | + */ |
|
20 | + private $slug; |
|
21 | 21 | |
22 | - /** |
|
23 | - * @var string $description |
|
24 | - */ |
|
25 | - private $description; |
|
22 | + /** |
|
23 | + * @var string $description |
|
24 | + */ |
|
25 | + private $description; |
|
26 | 26 | |
27 | 27 | |
28 | - /** |
|
29 | - * Context constructor. |
|
30 | - * |
|
31 | - * @param string $slug |
|
32 | - * @param string $description |
|
33 | - */ |
|
34 | - public function __construct($slug, $description) |
|
35 | - { |
|
36 | - $this->setSlug($slug); |
|
37 | - $this->setDescription($description); |
|
38 | - } |
|
28 | + /** |
|
29 | + * Context constructor. |
|
30 | + * |
|
31 | + * @param string $slug |
|
32 | + * @param string $description |
|
33 | + */ |
|
34 | + public function __construct($slug, $description) |
|
35 | + { |
|
36 | + $this->setSlug($slug); |
|
37 | + $this->setDescription($description); |
|
38 | + } |
|
39 | 39 | |
40 | 40 | |
41 | - /** |
|
42 | - * @return string |
|
43 | - */ |
|
44 | - public function slug() |
|
45 | - { |
|
46 | - return $this->slug; |
|
47 | - } |
|
41 | + /** |
|
42 | + * @return string |
|
43 | + */ |
|
44 | + public function slug() |
|
45 | + { |
|
46 | + return $this->slug; |
|
47 | + } |
|
48 | 48 | |
49 | 49 | |
50 | - /** |
|
51 | - * @param string $slug |
|
52 | - */ |
|
53 | - private function setSlug($slug) |
|
54 | - { |
|
55 | - $this->slug = sanitize_key($slug); |
|
56 | - } |
|
50 | + /** |
|
51 | + * @param string $slug |
|
52 | + */ |
|
53 | + private function setSlug($slug) |
|
54 | + { |
|
55 | + $this->slug = sanitize_key($slug); |
|
56 | + } |
|
57 | 57 | |
58 | 58 | |
59 | - /** |
|
60 | - * @return string |
|
61 | - */ |
|
62 | - public function description() |
|
63 | - { |
|
64 | - return $this->description; |
|
65 | - } |
|
59 | + /** |
|
60 | + * @return string |
|
61 | + */ |
|
62 | + public function description() |
|
63 | + { |
|
64 | + return $this->description; |
|
65 | + } |
|
66 | 66 | |
67 | 67 | |
68 | - /** |
|
69 | - * @param string $description |
|
70 | - */ |
|
71 | - private function setDescription($description) |
|
72 | - { |
|
73 | - $this->description = sanitize_text_field($description); |
|
74 | - } |
|
68 | + /** |
|
69 | + * @param string $description |
|
70 | + */ |
|
71 | + private function setDescription($description) |
|
72 | + { |
|
73 | + $this->description = sanitize_text_field($description); |
|
74 | + } |
|
75 | 75 | } |
@@ -13,60 +13,60 @@ |
||
13 | 13 | class CustomTaxonomyTerm |
14 | 14 | { |
15 | 15 | |
16 | - /** |
|
17 | - * @var string $taxonomy_slug |
|
18 | - */ |
|
19 | - public $taxonomy_slug; |
|
16 | + /** |
|
17 | + * @var string $taxonomy_slug |
|
18 | + */ |
|
19 | + public $taxonomy_slug; |
|
20 | 20 | |
21 | - /** |
|
22 | - * @var string $term_slug |
|
23 | - */ |
|
24 | - public $term_slug; |
|
21 | + /** |
|
22 | + * @var string $term_slug |
|
23 | + */ |
|
24 | + public $term_slug; |
|
25 | 25 | |
26 | - /** |
|
27 | - * @var array $custom_post_type_slugs |
|
28 | - */ |
|
29 | - public $custom_post_type_slugs; |
|
26 | + /** |
|
27 | + * @var array $custom_post_type_slugs |
|
28 | + */ |
|
29 | + public $custom_post_type_slugs; |
|
30 | 30 | |
31 | 31 | |
32 | - /** |
|
33 | - * CustomTaxonomyTerm constructor. |
|
34 | - * |
|
35 | - * @param string $taxonomy_slug |
|
36 | - * @param string $term_slug |
|
37 | - * @param array $custom_post_type_slugs |
|
38 | - */ |
|
39 | - public function __construct($taxonomy_slug, $term_slug, array $custom_post_type_slugs = array()) |
|
40 | - { |
|
41 | - $this->taxonomy_slug = $taxonomy_slug; |
|
42 | - $this->term_slug = $term_slug; |
|
43 | - $this->custom_post_type_slugs = $custom_post_type_slugs; |
|
44 | - } |
|
32 | + /** |
|
33 | + * CustomTaxonomyTerm constructor. |
|
34 | + * |
|
35 | + * @param string $taxonomy_slug |
|
36 | + * @param string $term_slug |
|
37 | + * @param array $custom_post_type_slugs |
|
38 | + */ |
|
39 | + public function __construct($taxonomy_slug, $term_slug, array $custom_post_type_slugs = array()) |
|
40 | + { |
|
41 | + $this->taxonomy_slug = $taxonomy_slug; |
|
42 | + $this->term_slug = $term_slug; |
|
43 | + $this->custom_post_type_slugs = $custom_post_type_slugs; |
|
44 | + } |
|
45 | 45 | |
46 | 46 | |
47 | - /** |
|
48 | - * @return string |
|
49 | - */ |
|
50 | - public function taxonomySlug() |
|
51 | - { |
|
52 | - return $this->taxonomy_slug; |
|
53 | - } |
|
47 | + /** |
|
48 | + * @return string |
|
49 | + */ |
|
50 | + public function taxonomySlug() |
|
51 | + { |
|
52 | + return $this->taxonomy_slug; |
|
53 | + } |
|
54 | 54 | |
55 | 55 | |
56 | - /** |
|
57 | - * @return string |
|
58 | - */ |
|
59 | - public function termSlug() |
|
60 | - { |
|
61 | - return $this->term_slug; |
|
62 | - } |
|
56 | + /** |
|
57 | + * @return string |
|
58 | + */ |
|
59 | + public function termSlug() |
|
60 | + { |
|
61 | + return $this->term_slug; |
|
62 | + } |
|
63 | 63 | |
64 | 64 | |
65 | - /** |
|
66 | - * @return array |
|
67 | - */ |
|
68 | - public function customPostTypeSlugs() |
|
69 | - { |
|
70 | - return $this->custom_post_type_slugs; |
|
71 | - } |
|
65 | + /** |
|
66 | + * @return array |
|
67 | + */ |
|
68 | + public function customPostTypeSlugs() |
|
69 | + { |
|
70 | + return $this->custom_post_type_slugs; |
|
71 | + } |
|
72 | 72 | } |
@@ -14,49 +14,49 @@ |
||
14 | 14 | { |
15 | 15 | |
16 | 16 | |
17 | - /* |
|
17 | + /* |
|
18 | 18 | * @var string $reg_code |
19 | 19 | */ |
20 | - private $reg_code; |
|
21 | - |
|
22 | - |
|
23 | - /** |
|
24 | - * RegCode constructor. |
|
25 | - * |
|
26 | - * @param RegUrlLink $reg_url_link |
|
27 | - * @param \EE_Transaction $transaction |
|
28 | - * @param \EE_Ticket $ticket |
|
29 | - */ |
|
30 | - public function __construct( |
|
31 | - RegUrlLink $reg_url_link, |
|
32 | - \EE_Transaction $transaction, |
|
33 | - \EE_Ticket $ticket |
|
34 | - ) { |
|
35 | - // figure out where to start parsing the reg code |
|
36 | - $chars = strpos($reg_url_link, '-') + 5; |
|
37 | - // TXN_ID + TKT_ID + first 3 and last 3 chars of reg_url_link |
|
38 | - $this->reg_code = array( |
|
39 | - $transaction->ID(), |
|
40 | - $ticket->ID(), |
|
41 | - substr($reg_url_link, 0, $chars), |
|
42 | - ); |
|
43 | - // now put it all together |
|
44 | - $this->reg_code = apply_filters( |
|
45 | - 'FHEE__Create__regCode__new_reg_code', |
|
46 | - implode('-', $this->reg_code), |
|
47 | - $transaction, |
|
48 | - $ticket |
|
49 | - ); |
|
50 | - } |
|
51 | - |
|
52 | - |
|
53 | - /** |
|
54 | - * Return the object as a string |
|
55 | - * |
|
56 | - * @return string |
|
57 | - */ |
|
58 | - public function __toString() |
|
59 | - { |
|
60 | - return $this->reg_code; |
|
61 | - } |
|
20 | + private $reg_code; |
|
21 | + |
|
22 | + |
|
23 | + /** |
|
24 | + * RegCode constructor. |
|
25 | + * |
|
26 | + * @param RegUrlLink $reg_url_link |
|
27 | + * @param \EE_Transaction $transaction |
|
28 | + * @param \EE_Ticket $ticket |
|
29 | + */ |
|
30 | + public function __construct( |
|
31 | + RegUrlLink $reg_url_link, |
|
32 | + \EE_Transaction $transaction, |
|
33 | + \EE_Ticket $ticket |
|
34 | + ) { |
|
35 | + // figure out where to start parsing the reg code |
|
36 | + $chars = strpos($reg_url_link, '-') + 5; |
|
37 | + // TXN_ID + TKT_ID + first 3 and last 3 chars of reg_url_link |
|
38 | + $this->reg_code = array( |
|
39 | + $transaction->ID(), |
|
40 | + $ticket->ID(), |
|
41 | + substr($reg_url_link, 0, $chars), |
|
42 | + ); |
|
43 | + // now put it all together |
|
44 | + $this->reg_code = apply_filters( |
|
45 | + 'FHEE__Create__regCode__new_reg_code', |
|
46 | + implode('-', $this->reg_code), |
|
47 | + $transaction, |
|
48 | + $ticket |
|
49 | + ); |
|
50 | + } |
|
51 | + |
|
52 | + |
|
53 | + /** |
|
54 | + * Return the object as a string |
|
55 | + * |
|
56 | + * @return string |
|
57 | + */ |
|
58 | + public function __toString() |
|
59 | + { |
|
60 | + return $this->reg_code; |
|
61 | + } |
|
62 | 62 | } |
@@ -16,71 +16,71 @@ |
||
16 | 16 | class EspressoThankYou extends EspressoShortcode |
17 | 17 | { |
18 | 18 | |
19 | - /** |
|
20 | - * @var boolean $is_thank_you_page |
|
21 | - */ |
|
22 | - private $is_thank_you_page = false; |
|
19 | + /** |
|
20 | + * @var boolean $is_thank_you_page |
|
21 | + */ |
|
22 | + private $is_thank_you_page = false; |
|
23 | 23 | |
24 | - /** |
|
25 | - * the actual shortcode tag that gets registered with WordPress |
|
26 | - * |
|
27 | - * @return string |
|
28 | - */ |
|
29 | - public function getTag() |
|
30 | - { |
|
31 | - return 'ESPRESSO_THANK_YOU'; |
|
32 | - } |
|
24 | + /** |
|
25 | + * the actual shortcode tag that gets registered with WordPress |
|
26 | + * |
|
27 | + * @return string |
|
28 | + */ |
|
29 | + public function getTag() |
|
30 | + { |
|
31 | + return 'ESPRESSO_THANK_YOU'; |
|
32 | + } |
|
33 | 33 | |
34 | 34 | |
35 | - /** |
|
36 | - * the time in seconds to cache the results of the processShortcode() method |
|
37 | - * 0 means the processShortcode() results will NOT be cached at all |
|
38 | - * |
|
39 | - * @return int |
|
40 | - */ |
|
41 | - public function cacheExpiration() |
|
42 | - { |
|
43 | - return 0; |
|
44 | - } |
|
35 | + /** |
|
36 | + * the time in seconds to cache the results of the processShortcode() method |
|
37 | + * 0 means the processShortcode() results will NOT be cached at all |
|
38 | + * |
|
39 | + * @return int |
|
40 | + */ |
|
41 | + public function cacheExpiration() |
|
42 | + { |
|
43 | + return 0; |
|
44 | + } |
|
45 | 45 | |
46 | 46 | |
47 | - /** |
|
48 | - * a place for adding any initialization code that needs to run prior to wp_header(). |
|
49 | - * this may be required for shortcodes that utilize a corresponding module, |
|
50 | - * and need to enqueue assets for that module |
|
51 | - * |
|
52 | - * @return void |
|
53 | - * @throws \EE_Error |
|
54 | - */ |
|
55 | - public function initializeShortcode() |
|
56 | - { |
|
57 | - global $wp_query; |
|
58 | - if (empty($wp_query->posts) || count($wp_query->posts) > 1) { |
|
59 | - return; |
|
60 | - } |
|
61 | - $post = reset($wp_query->posts); |
|
62 | - if (! $post instanceof WP_Post || $post->ID !== EE_Registry::instance()->CFG->core->thank_you_page_id) { |
|
63 | - return; |
|
64 | - } |
|
65 | - $this->is_thank_you_page = true; |
|
66 | - \EED_Thank_You_Page::instance()->load_resources(); |
|
67 | - $this->shortcodeHasBeenInitialized(); |
|
68 | - } |
|
47 | + /** |
|
48 | + * a place for adding any initialization code that needs to run prior to wp_header(). |
|
49 | + * this may be required for shortcodes that utilize a corresponding module, |
|
50 | + * and need to enqueue assets for that module |
|
51 | + * |
|
52 | + * @return void |
|
53 | + * @throws \EE_Error |
|
54 | + */ |
|
55 | + public function initializeShortcode() |
|
56 | + { |
|
57 | + global $wp_query; |
|
58 | + if (empty($wp_query->posts) || count($wp_query->posts) > 1) { |
|
59 | + return; |
|
60 | + } |
|
61 | + $post = reset($wp_query->posts); |
|
62 | + if (! $post instanceof WP_Post || $post->ID !== EE_Registry::instance()->CFG->core->thank_you_page_id) { |
|
63 | + return; |
|
64 | + } |
|
65 | + $this->is_thank_you_page = true; |
|
66 | + \EED_Thank_You_Page::instance()->load_resources(); |
|
67 | + $this->shortcodeHasBeenInitialized(); |
|
68 | + } |
|
69 | 69 | |
70 | 70 | |
71 | - /** |
|
72 | - * callback that runs when the shortcode is encountered in post content. |
|
73 | - * IMPORTANT !!! |
|
74 | - * remember that shortcode content should be RETURNED and NOT echoed out |
|
75 | - * |
|
76 | - * @param array $attributes |
|
77 | - * @return string |
|
78 | - * @throws \EE_Error |
|
79 | - */ |
|
80 | - public function processShortcode($attributes = array()) |
|
81 | - { |
|
82 | - return $this->is_thank_you_page |
|
83 | - ? \EED_Thank_You_Page::instance()->thank_you_page_results() |
|
84 | - : ''; |
|
85 | - } |
|
71 | + /** |
|
72 | + * callback that runs when the shortcode is encountered in post content. |
|
73 | + * IMPORTANT !!! |
|
74 | + * remember that shortcode content should be RETURNED and NOT echoed out |
|
75 | + * |
|
76 | + * @param array $attributes |
|
77 | + * @return string |
|
78 | + * @throws \EE_Error |
|
79 | + */ |
|
80 | + public function processShortcode($attributes = array()) |
|
81 | + { |
|
82 | + return $this->is_thank_you_page |
|
83 | + ? \EED_Thank_You_Page::instance()->thank_you_page_results() |
|
84 | + : ''; |
|
85 | + } |
|
86 | 86 | } |
@@ -59,7 +59,7 @@ |
||
59 | 59 | return; |
60 | 60 | } |
61 | 61 | $post = reset($wp_query->posts); |
62 | - if (! $post instanceof WP_Post || $post->ID !== EE_Registry::instance()->CFG->core->thank_you_page_id) { |
|
62 | + if ( ! $post instanceof WP_Post || $post->ID !== EE_Registry::instance()->CFG->core->thank_you_page_id) { |
|
63 | 63 | return; |
64 | 64 | } |
65 | 65 | $this->is_thank_you_page = true; |
@@ -18,55 +18,55 @@ |
||
18 | 18 | { |
19 | 19 | |
20 | 20 | |
21 | - /** |
|
22 | - * the actual shortcode tag that gets registered with WordPress |
|
23 | - * |
|
24 | - * @return string |
|
25 | - */ |
|
26 | - public function getTag() |
|
27 | - { |
|
28 | - return 'ESPRESSO_CHECKOUT'; |
|
29 | - } |
|
21 | + /** |
|
22 | + * the actual shortcode tag that gets registered with WordPress |
|
23 | + * |
|
24 | + * @return string |
|
25 | + */ |
|
26 | + public function getTag() |
|
27 | + { |
|
28 | + return 'ESPRESSO_CHECKOUT'; |
|
29 | + } |
|
30 | 30 | |
31 | 31 | |
32 | - /** |
|
33 | - * the time in seconds to cache the results of the processShortcode() method |
|
34 | - * 0 means the processShortcode() results will NOT be cached at all |
|
35 | - * |
|
36 | - * @return int |
|
37 | - */ |
|
38 | - public function cacheExpiration() |
|
39 | - { |
|
40 | - return 0; |
|
41 | - } |
|
32 | + /** |
|
33 | + * the time in seconds to cache the results of the processShortcode() method |
|
34 | + * 0 means the processShortcode() results will NOT be cached at all |
|
35 | + * |
|
36 | + * @return int |
|
37 | + */ |
|
38 | + public function cacheExpiration() |
|
39 | + { |
|
40 | + return 0; |
|
41 | + } |
|
42 | 42 | |
43 | 43 | |
44 | - /** |
|
45 | - * a place for adding any initialization code that needs to run prior to wp_header(). |
|
46 | - * this may be required for shortcodes that utilize a corresponding module, |
|
47 | - * and need to enqueue assets for that module |
|
48 | - * |
|
49 | - * @return void |
|
50 | - * @throws \EE_Error |
|
51 | - */ |
|
52 | - public function initializeShortcode() |
|
53 | - { |
|
54 | - global $wp_query; |
|
55 | - EED_Single_Page_Checkout::init($wp_query); |
|
56 | - $this->shortcodeHasBeenInitialized(); |
|
57 | - } |
|
44 | + /** |
|
45 | + * a place for adding any initialization code that needs to run prior to wp_header(). |
|
46 | + * this may be required for shortcodes that utilize a corresponding module, |
|
47 | + * and need to enqueue assets for that module |
|
48 | + * |
|
49 | + * @return void |
|
50 | + * @throws \EE_Error |
|
51 | + */ |
|
52 | + public function initializeShortcode() |
|
53 | + { |
|
54 | + global $wp_query; |
|
55 | + EED_Single_Page_Checkout::init($wp_query); |
|
56 | + $this->shortcodeHasBeenInitialized(); |
|
57 | + } |
|
58 | 58 | |
59 | 59 | |
60 | - /** |
|
61 | - * callback that runs when the shortcode is encountered in post content. |
|
62 | - * IMPORTANT !!! |
|
63 | - * remember that shortcode content should be RETURNED and NOT echoed out |
|
64 | - * |
|
65 | - * @param array $attributes |
|
66 | - * @return string |
|
67 | - */ |
|
68 | - public function processShortcode($attributes = array()) |
|
69 | - { |
|
70 | - return EE_Registry::instance()->REQ->get_output(); |
|
71 | - } |
|
60 | + /** |
|
61 | + * callback that runs when the shortcode is encountered in post content. |
|
62 | + * IMPORTANT !!! |
|
63 | + * remember that shortcode content should be RETURNED and NOT echoed out |
|
64 | + * |
|
65 | + * @param array $attributes |
|
66 | + * @return string |
|
67 | + */ |
|
68 | + public function processShortcode($attributes = array()) |
|
69 | + { |
|
70 | + return EE_Registry::instance()->REQ->get_output(); |
|
71 | + } |
|
72 | 72 | } |
@@ -22,87 +22,87 @@ |
||
22 | 22 | { |
23 | 23 | |
24 | 24 | |
25 | - /** |
|
26 | - * the actual shortcode tag that gets registered with WordPress |
|
27 | - * |
|
28 | - * @return string |
|
29 | - */ |
|
30 | - public function getTag() |
|
31 | - { |
|
32 | - return 'ESPRESSO_TXN_PAGE'; |
|
33 | - } |
|
25 | + /** |
|
26 | + * the actual shortcode tag that gets registered with WordPress |
|
27 | + * |
|
28 | + * @return string |
|
29 | + */ |
|
30 | + public function getTag() |
|
31 | + { |
|
32 | + return 'ESPRESSO_TXN_PAGE'; |
|
33 | + } |
|
34 | 34 | |
35 | 35 | |
36 | - /** |
|
37 | - * the time in seconds to cache the results of the processShortcode() method |
|
38 | - * 0 means the processShortcode() results will NOT be cached at all |
|
39 | - * |
|
40 | - * @return int |
|
41 | - */ |
|
42 | - public function cacheExpiration() |
|
43 | - { |
|
44 | - return 0; |
|
45 | - } |
|
36 | + /** |
|
37 | + * the time in seconds to cache the results of the processShortcode() method |
|
38 | + * 0 means the processShortcode() results will NOT be cached at all |
|
39 | + * |
|
40 | + * @return int |
|
41 | + */ |
|
42 | + public function cacheExpiration() |
|
43 | + { |
|
44 | + return 0; |
|
45 | + } |
|
46 | 46 | |
47 | 47 | |
48 | - /** |
|
49 | - * a place for adding any initialization code that needs to run prior to wp_header(). |
|
50 | - * this may be required for shortcodes that utilize a corresponding module, |
|
51 | - * and need to enqueue assets for that module |
|
52 | - * |
|
53 | - * @return void |
|
54 | - * @throws \Exception |
|
55 | - * @throws \EE_Error |
|
56 | - */ |
|
57 | - public function initializeShortcode() |
|
58 | - { |
|
59 | - $transaction = null; |
|
60 | - if (EE_Registry::instance()->REQ->is_set('e_reg_url_link')) { |
|
61 | - /** @var EEM_Transaction $EEM_Transaction */ |
|
62 | - $EEM_Transaction = EE_Registry::instance()->load_model('Transaction'); |
|
63 | - $transaction = $EEM_Transaction->get_transaction_from_reg_url_link(); |
|
64 | - } |
|
65 | - if ($transaction instanceof EE_Transaction) { |
|
66 | - $payment_method = null; |
|
67 | - $payment_method_slug = EE_Registry::instance()->REQ->get('ee_payment_method', null); |
|
68 | - if ($payment_method_slug) { |
|
69 | - $payment_method = EEM_Payment_Method::instance()->get_one_by_slug($payment_method_slug); |
|
70 | - } |
|
71 | - if ($payment_method instanceof EE_Payment_Method && $payment_method->is_off_site()) { |
|
72 | - $gateway = $payment_method->type_obj()->get_gateway(); |
|
73 | - if ($gateway instanceof EE_Offsite_Gateway |
|
74 | - && $gateway->handle_IPN_in_this_request( |
|
75 | - \EE_Registry::instance()->REQ->params(), |
|
76 | - true |
|
77 | - ) |
|
78 | - ) { |
|
79 | - /** @type EE_Payment_Processor $payment_processor */ |
|
80 | - $payment_processor = EE_Registry::instance()->load_core('Payment_Processor'); |
|
81 | - $payment_processor->process_ipn($_REQUEST, $transaction, $payment_method); |
|
82 | - } |
|
83 | - } |
|
84 | - // allow gateways to add a filter to stop rendering the page |
|
85 | - if (apply_filters('FHEE__EES_Espresso_Txn_Page__run__exit', false)) { |
|
86 | - exit; |
|
87 | - } |
|
88 | - } |
|
89 | - $this->shortcodeHasBeenInitialized(); |
|
90 | - } |
|
48 | + /** |
|
49 | + * a place for adding any initialization code that needs to run prior to wp_header(). |
|
50 | + * this may be required for shortcodes that utilize a corresponding module, |
|
51 | + * and need to enqueue assets for that module |
|
52 | + * |
|
53 | + * @return void |
|
54 | + * @throws \Exception |
|
55 | + * @throws \EE_Error |
|
56 | + */ |
|
57 | + public function initializeShortcode() |
|
58 | + { |
|
59 | + $transaction = null; |
|
60 | + if (EE_Registry::instance()->REQ->is_set('e_reg_url_link')) { |
|
61 | + /** @var EEM_Transaction $EEM_Transaction */ |
|
62 | + $EEM_Transaction = EE_Registry::instance()->load_model('Transaction'); |
|
63 | + $transaction = $EEM_Transaction->get_transaction_from_reg_url_link(); |
|
64 | + } |
|
65 | + if ($transaction instanceof EE_Transaction) { |
|
66 | + $payment_method = null; |
|
67 | + $payment_method_slug = EE_Registry::instance()->REQ->get('ee_payment_method', null); |
|
68 | + if ($payment_method_slug) { |
|
69 | + $payment_method = EEM_Payment_Method::instance()->get_one_by_slug($payment_method_slug); |
|
70 | + } |
|
71 | + if ($payment_method instanceof EE_Payment_Method && $payment_method->is_off_site()) { |
|
72 | + $gateway = $payment_method->type_obj()->get_gateway(); |
|
73 | + if ($gateway instanceof EE_Offsite_Gateway |
|
74 | + && $gateway->handle_IPN_in_this_request( |
|
75 | + \EE_Registry::instance()->REQ->params(), |
|
76 | + true |
|
77 | + ) |
|
78 | + ) { |
|
79 | + /** @type EE_Payment_Processor $payment_processor */ |
|
80 | + $payment_processor = EE_Registry::instance()->load_core('Payment_Processor'); |
|
81 | + $payment_processor->process_ipn($_REQUEST, $transaction, $payment_method); |
|
82 | + } |
|
83 | + } |
|
84 | + // allow gateways to add a filter to stop rendering the page |
|
85 | + if (apply_filters('FHEE__EES_Espresso_Txn_Page__run__exit', false)) { |
|
86 | + exit; |
|
87 | + } |
|
88 | + } |
|
89 | + $this->shortcodeHasBeenInitialized(); |
|
90 | + } |
|
91 | 91 | |
92 | 92 | |
93 | - /** |
|
94 | - * callback that runs when the shortcode is encountered in post content. |
|
95 | - * IMPORTANT !!! |
|
96 | - * remember that shortcode content should be RETURNED and NOT echoed out |
|
97 | - * |
|
98 | - * @param array $attributes |
|
99 | - * @return string |
|
100 | - */ |
|
101 | - public function processShortcode($attributes = array()) |
|
102 | - { |
|
103 | - return esc_html__( |
|
104 | - 'This is the Event Espresso Transactions page. This page receives instant payment notification (IPN) requests and should have a status of published, but should not be easily accessible by site visitors. Do not add it to your website\'s navigation menu or link to it from another page. Also, do not delete it or change its status to private.', |
|
105 | - 'event_espresso' |
|
106 | - ); |
|
107 | - } |
|
93 | + /** |
|
94 | + * callback that runs when the shortcode is encountered in post content. |
|
95 | + * IMPORTANT !!! |
|
96 | + * remember that shortcode content should be RETURNED and NOT echoed out |
|
97 | + * |
|
98 | + * @param array $attributes |
|
99 | + * @return string |
|
100 | + */ |
|
101 | + public function processShortcode($attributes = array()) |
|
102 | + { |
|
103 | + return esc_html__( |
|
104 | + 'This is the Event Espresso Transactions page. This page receives instant payment notification (IPN) requests and should have a status of published, but should not be easily accessible by site visitors. Do not add it to your website\'s navigation menu or link to it from another page. Also, do not delete it or change its status to private.', |
|
105 | + 'event_espresso' |
|
106 | + ); |
|
107 | + } |
|
108 | 108 | } |