Completed
Branch FET/reg-form-builder/main (d0d867)
by
unknown
09:57 queued 24s
created
core/db_classes/EE_Message_Template_Group.class.php 3 patches
Doc Comments   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -211,7 +211,7 @@
 block discarded – undo
211 211
      * appropriately.
212 212
      *
213 213
      * @throws EE_Error
214
-     * @return EE_message_type|false if exception thrown.
214
+     * @return null|EE_message_type if exception thrown.
215 215
      */
216 216
     public function message_type_obj()
217 217
     {
Please login to merge, or discard this patch.
Spacing   +8 added lines, -8 removed lines patch added patch discarded remove patch
@@ -48,7 +48,7 @@  discard block
 block discarded – undo
48 48
      */
49 49
     public function set_message_type($message_type = false)
50 50
     {
51
-        if (! $message_type) {
51
+        if ( ! $message_type) {
52 52
             throw new EE_Error(esc_html__('Missing required value for the message_type parameter', 'event_espresso'));
53 53
         }
54 54
         $this->set('MTP_message_type', $message_type);
@@ -61,7 +61,7 @@  discard block
 block discarded – undo
61 61
      */
62 62
     public function set_messenger($messenger = false)
63 63
     {
64
-        if (! $messenger) {
64
+        if ( ! $messenger) {
65 65
             throw new EE_Error(esc_html__('Missing required value for the messenger parameter', 'event_espresso'));
66 66
         }
67 67
         $this->set('MTP_messenger', $messenger);
@@ -74,7 +74,7 @@  discard block
 block discarded – undo
74 74
      */
75 75
     public function set_group_template_id($GRP_ID = false)
76 76
     {
77
-        if (! $GRP_ID) {
77
+        if ( ! $GRP_ID) {
78 78
             throw new EE_Error(
79 79
                 esc_html__(
80 80
                     'Missing required value for the message template group id',
@@ -290,7 +290,7 @@  discard block
 block discarded – undo
290 290
         }
291 291
         // note contexts could have CHECKBOX fields per context. So we return the objects indexed by context AND field.
292 292
         foreach ($mtps as $mtp) {
293
-            $mtps_arr[ $mtp->get('MTP_context') ][ $mtp->get('MTP_template_field') ] = $mtp;
293
+            $mtps_arr[$mtp->get('MTP_context')][$mtp->get('MTP_template_field')] = $mtp;
294 294
         }
295 295
         return $mtps_arr;
296 296
     }
@@ -430,7 +430,7 @@  discard block
 block discarded – undo
430 430
     public function deactivate_context($context)
431 431
     {
432 432
         $this->validate_context($context);
433
-        return $this->update_extra_meta(self::ACTIVE_CONTEXT_RECORD_META_KEY_PREFIX . $context, false);
433
+        return $this->update_extra_meta(self::ACTIVE_CONTEXT_RECORD_META_KEY_PREFIX.$context, false);
434 434
     }
435 435
 
436 436
 
@@ -445,7 +445,7 @@  discard block
 block discarded – undo
445 445
     public function activate_context($context)
446 446
     {
447 447
         $this->validate_context($context);
448
-        return $this->update_extra_meta(self::ACTIVE_CONTEXT_RECORD_META_KEY_PREFIX . $context, true);
448
+        return $this->update_extra_meta(self::ACTIVE_CONTEXT_RECORD_META_KEY_PREFIX.$context, true);
449 449
     }
450 450
 
451 451
 
@@ -465,7 +465,7 @@  discard block
 block discarded – undo
465 465
     {
466 466
         $this->validate_context($context);
467 467
         return filter_var(
468
-            $this->get_extra_meta(self::ACTIVE_CONTEXT_RECORD_META_KEY_PREFIX . $context, true, true),
468
+            $this->get_extra_meta(self::ACTIVE_CONTEXT_RECORD_META_KEY_PREFIX.$context, true, true),
469 469
             FILTER_VALIDATE_BOOLEAN
470 470
         );
471 471
     }
@@ -481,7 +481,7 @@  discard block
 block discarded – undo
481 481
     public function validate_context($context)
482 482
     {
483 483
         $contexts = $this->contexts_config();
484
-        if (! isset($contexts[ $context ])) {
484
+        if ( ! isset($contexts[$context])) {
485 485
             throw new InvalidIdentifierException(
486 486
                 '',
487 487
                 '',
Please login to merge, or discard this patch.
Indentation   +483 added lines, -483 removed lines patch added patch discarded remove patch
@@ -13,487 +13,487 @@
 block discarded – undo
13 13
 class EE_Message_Template_Group extends EE_Soft_Delete_Base_Class
14 14
 {
15 15
 
16
-    /**
17
-     * Extra Meta key prefix for whether a given context for this message tmeplate group is active or not.
18
-     */
19
-    const ACTIVE_CONTEXT_RECORD_META_KEY_PREFIX = 'active_context_';
20
-
21
-    /**
22
-     * @param array  $props_n_values
23
-     * @param string $timezone
24
-     * @return EE_Message_Template_Group|mixed
25
-     * @throws EE_Error
26
-     */
27
-    public static function new_instance($props_n_values = array(), $timezone = '')
28
-    {
29
-        $has_object = parent::_check_for_object($props_n_values, __CLASS__, $timezone);
30
-        return $has_object ? $has_object : new self($props_n_values, false, $timezone);
31
-    }
32
-
33
-
34
-    /**
35
-     * @param array  $props_n_values
36
-     * @param string $timezone
37
-     * @return EE_Message_Template_Group
38
-     */
39
-    public static function new_instance_from_db($props_n_values = array(), $timezone = '')
40
-    {
41
-        return new self($props_n_values, true, $timezone);
42
-    }
43
-
44
-
45
-    /**
46
-     * @param bool $message_type
47
-     * @throws EE_Error
48
-     */
49
-    public function set_message_type($message_type = false)
50
-    {
51
-        if (! $message_type) {
52
-            throw new EE_Error(esc_html__('Missing required value for the message_type parameter', 'event_espresso'));
53
-        }
54
-        $this->set('MTP_message_type', $message_type);
55
-    }
56
-
57
-
58
-    /**
59
-     * @param bool $messenger
60
-     * @throws EE_Error
61
-     */
62
-    public function set_messenger($messenger = false)
63
-    {
64
-        if (! $messenger) {
65
-            throw new EE_Error(esc_html__('Missing required value for the messenger parameter', 'event_espresso'));
66
-        }
67
-        $this->set('MTP_messenger', $messenger);
68
-    }
69
-
70
-
71
-    /**
72
-     * @param bool $GRP_ID
73
-     * @throws EE_Error
74
-     */
75
-    public function set_group_template_id($GRP_ID = false)
76
-    {
77
-        if (! $GRP_ID) {
78
-            throw new EE_Error(
79
-                esc_html__(
80
-                    'Missing required value for the message template group id',
81
-                    'event_espresso'
82
-                )
83
-            );
84
-        }
85
-        $this->set('GRP_ID', $GRP_ID);
86
-    }
87
-
88
-
89
-    /**
90
-     * get Group ID
91
-     *
92
-     * @access public
93
-     * @return int
94
-     * @throws EE_Error
95
-     */
96
-    public function GRP_ID()
97
-    {
98
-        return $this->get('GRP_ID');
99
-    }
100
-
101
-
102
-    /**
103
-     * get User ID
104
-     *
105
-     * @access public
106
-     * @return int
107
-     * @throws EE_Error
108
-     */
109
-    public function user()
110
-    {
111
-        $user_id = $this->get('MTP_user_id');
112
-        return empty($user_id) ? get_current_user_id() : $user_id;
113
-    }
114
-
115
-
116
-    /**
117
-     * Wrapper for the user function() (preserve backward compat)
118
-     *
119
-     * @since  4.5.0
120
-     * @return int
121
-     * @throws EE_Error
122
-     */
123
-    public function wp_user()
124
-    {
125
-        return $this->user();
126
-    }
127
-
128
-
129
-    /**
130
-     * This simply returns a count of all related events to this message template group
131
-     *
132
-     * @return int
133
-     */
134
-    public function count_events()
135
-    {
136
-        return $this->count_related('Event');
137
-    }
138
-
139
-
140
-    /**
141
-     * returns the name saved in the db for this template
142
-     *
143
-     * @return string
144
-     * @throws EE_Error
145
-     */
146
-    public function name()
147
-    {
148
-        return $this->get('MTP_name');
149
-    }
150
-
151
-
152
-    /**
153
-     * Returns the description saved in the db for this template group
154
-     *
155
-     * @return string
156
-     * @throws EE_Error
157
-     */
158
-    public function description()
159
-    {
160
-        return $this->get('MTP_description');
161
-    }
162
-
163
-
164
-    /**
165
-     * returns all related EE_Message_Template objects
166
-     *
167
-     * @param  array $query_params @see https://github.com/eventespresso/event-espresso-core/tree/master/docs/G--Model-System/model-query-params.md
168
-     * @return EE_Message_Template[]
169
-     * @throws EE_Error
170
-     */
171
-    public function message_templates($query_params = array())
172
-    {
173
-        return $this->get_many_related('Message_Template', $query_params);
174
-    }
175
-
176
-
177
-    /**
178
-     * get Message Messenger
179
-     *
180
-     * @access public
181
-     * @return string
182
-     * @throws EE_Error
183
-     */
184
-    public function messenger()
185
-    {
186
-        return $this->get('MTP_messenger');
187
-    }
188
-
189
-
190
-    /**
191
-     * get Message Messenger OBJECT
192
-     * If an attempt to get the corresponding messenger object fails, then we set this message
193
-     * template group to inactive, and save to db.  Then return null so client code can handle
194
-     * appropriately.
195
-     *
196
-     * @return EE_messenger
197
-     * @throws EE_Error
198
-     */
199
-    public function messenger_obj()
200
-    {
201
-        $messenger = $this->messenger();
202
-        try {
203
-            $messenger = EEH_MSG_Template::messenger_obj($messenger);
204
-        } catch (EE_Error $e) {
205
-            // if an exception was thrown then let's deactivate this message template group because it means there is no
206
-            // class for this messenger in this group.
207
-            $this->set('MTP_is_active', false);
208
-            $this->save();
209
-            return null;
210
-        }
211
-        return $messenger;
212
-    }
213
-
214
-
215
-    /**
216
-     * get Message Type
217
-     *
218
-     * @access public
219
-     * @return string
220
-     * @throws EE_Error
221
-     */
222
-    public function message_type()
223
-    {
224
-        return $this->get('MTP_message_type');
225
-    }
226
-
227
-
228
-    /**
229
-     * get Message type OBJECT
230
-     * If an attempt to get the corresponding message type object fails, then we set this message
231
-     * template group to inactive, and save to db.  Then return null so client code can handle
232
-     * appropriately.
233
-     *
234
-     * @throws EE_Error
235
-     * @return EE_message_type|false if exception thrown.
236
-     */
237
-    public function message_type_obj()
238
-    {
239
-        $message_type = $this->message_type();
240
-        try {
241
-            $message_type = EEH_MSG_Template::message_type_obj($message_type);
242
-        } catch (EE_Error $e) {
243
-            // if an exception was thrown then let's deactivate this message template group because it means there is no
244
-            // class for the message type in this group.
245
-            $this->set('MTP_is_active', false);
246
-            $this->save();
247
-            return null;
248
-        }
249
-        return $message_type;
250
-    }
251
-
252
-
253
-    /**
254
-     * @return array
255
-     * @throws EE_Error
256
-     */
257
-    public function contexts_config()
258
-    {
259
-        return $this->message_type_obj()->get_contexts();
260
-    }
261
-
262
-
263
-    /**
264
-     * This returns the context_label for contexts as set in the message type object
265
-     * Note this is an array with singular and plural keys
266
-     *
267
-     * @access public
268
-     * @return array labels for "context"
269
-     * @throws EE_Error
270
-     */
271
-    public function context_label()
272
-    {
273
-        $obj = $this->message_type_obj();
274
-        return $obj->get_context_label();
275
-    }
276
-
277
-
278
-    /**
279
-     * This returns an array of EE_Message_Template objects indexed by context and field.
280
-     *
281
-     * @return array ()
282
-     * @throws EE_Error
283
-     */
284
-    public function context_templates()
285
-    {
286
-        $mtps_arr = array();
287
-        $mtps = $this->get_many_related('Message_Template');
288
-        if (empty($mtps)) {
289
-            return array();
290
-        }
291
-        // note contexts could have CHECKBOX fields per context. So we return the objects indexed by context AND field.
292
-        foreach ($mtps as $mtp) {
293
-            $mtps_arr[ $mtp->get('MTP_context') ][ $mtp->get('MTP_template_field') ] = $mtp;
294
-        }
295
-        return $mtps_arr;
296
-    }
297
-
298
-
299
-    /**
300
-     * this returns if the template group this template belongs to is global
301
-     *
302
-     * @return bool true if it is, false if it isn't
303
-     * @throws EE_Error
304
-     */
305
-    public function is_global()
306
-    {
307
-        return $this->get('MTP_is_global');
308
-    }
309
-
310
-
311
-    /**
312
-     * this returns if the template group this template belongs to is active (i.e. turned "on" or not)
313
-     *
314
-     * @return bool true if it is, false if it isn't
315
-     * @throws EE_Error
316
-     */
317
-    public function is_active()
318
-    {
319
-        return $this->get('MTP_is_active');
320
-    }
321
-
322
-
323
-    /**
324
-     * This will return an array of shortcodes => labels from the messenger and message_type objects associated with
325
-     * this template.
326
-     *
327
-     * @since 4.3.0
328
-     * @uses  EEH_MSG_Template::get_shortcodes()
329
-     * @param string $context what context we're going to return shortcodes for
330
-     * @param array  $fields  what fields we're returning valid shortcodes for.  If empty then we assume all fields are
331
-     *                        to be returned.
332
-     * @param bool   $merged  If TRUE then we don't return shortcodes indexed by field but instead an array of the
333
-     *                        unique shortcodes for all the given (or all) fields.
334
-     * @return mixed (array|bool) an array of shortcodes in the format array( '[shortcode] => 'label') OR FALSE if no
335
-     *                        shortcodes found.
336
-     * @throws EE_Error
337
-     */
338
-    public function get_shortcodes($context, $fields = array(), $merged = false)
339
-    {
340
-        $messenger = $this->messenger();
341
-        $message_type = $this->message_type();
342
-        return EEH_MSG_Template::get_shortcodes($message_type, $messenger, $fields, $context, $merged);
343
-    }
344
-
345
-
346
-    /**
347
-     * This just gets the template pack name assigned to this message template group.  If it's not set, then we just
348
-     * use the default template pack.
349
-     *
350
-     * @since 4.5.0
351
-     * @return string
352
-     * @throws EE_Error
353
-     */
354
-    public function get_template_pack_name()
355
-    {
356
-        return $this->get_extra_meta('MTP_template_pack', true, 'default');
357
-    }
358
-
359
-
360
-    /**
361
-     * This returns the specific template pack object referenced by the template pack name attached to this message
362
-     * template group.  If no template pack is assigned then the default template pack is retrieved.
363
-     *
364
-     * @since 4.5.0
365
-     * @return EE_Messages_Template_Pack
366
-     * @throws EE_Error
367
-     * @throws InvalidArgumentException
368
-     * @throws ReflectionException
369
-     * @throws \EventEspresso\core\exceptions\InvalidDataTypeException
370
-     * @throws \EventEspresso\core\exceptions\InvalidInterfaceException
371
-     */
372
-    public function get_template_pack()
373
-    {
374
-        $pack_name = $this->get_template_pack_name();
375
-        EE_Registry::instance()->load_helper('MSG_Template');
376
-        return EEH_MSG_Template::get_template_pack($pack_name);
377
-    }
378
-
379
-
380
-    /**
381
-     * This retrieves the template variation assigned to this message template group.  If it's not set, then we just
382
-     * use the default template variation.
383
-     *
384
-     * @since 4.5.0
385
-     * @return string
386
-     * @throws EE_Error
387
-     */
388
-    public function get_template_pack_variation()
389
-    {
390
-        return $this->get_extra_meta('MTP_variation', true, 'default');
391
-    }
392
-
393
-
394
-    /**
395
-     * This just sets the template pack name attached to this message template group.
396
-     *
397
-     * @since 4.5.0
398
-     * @param string $template_pack_name What message template pack is assigned.
399
-     * @return int
400
-     * @throws EE_Error
401
-     */
402
-    public function set_template_pack_name($template_pack_name)
403
-    {
404
-        return $this->update_extra_meta('MTP_template_pack', $template_pack_name);
405
-    }
406
-
407
-
408
-    /**
409
-     * This just sets the template pack variation attached to this message template group.
410
-     *
411
-     * @since 4.5.0
412
-     * @param string $variation What variation is being set on the message template group.
413
-     * @return int
414
-     * @throws EE_Error
415
-     */
416
-    public function set_template_pack_variation($variation)
417
-    {
418
-        return $this->update_extra_meta('MTP_variation', $variation);
419
-    }
420
-
421
-
422
-    /**
423
-     * Deactivates the given context.
424
-     *
425
-     * @param $context
426
-     * @return bool|int
427
-     * @throws EE_Error
428
-     * @throws InvalidIdentifierException
429
-     */
430
-    public function deactivate_context($context)
431
-    {
432
-        $this->validate_context($context);
433
-        return $this->update_extra_meta(self::ACTIVE_CONTEXT_RECORD_META_KEY_PREFIX . $context, false);
434
-    }
435
-
436
-
437
-    /**
438
-     * Activates the given context.
439
-     *
440
-     * @param $context
441
-     * @return bool|int
442
-     * @throws EE_Error
443
-     * @throws InvalidIdentifierException
444
-     */
445
-    public function activate_context($context)
446
-    {
447
-        $this->validate_context($context);
448
-        return $this->update_extra_meta(self::ACTIVE_CONTEXT_RECORD_META_KEY_PREFIX . $context, true);
449
-    }
450
-
451
-
452
-    /**
453
-     * Returns whether the context is active or not.
454
-     * Note, this will default to true if the extra meta record doesn't exist.
455
-     * Also, this does NOT account for whether the "To" field is empty or not. Some messengers may allow the "To" field
456
-     * to be empty (@see EE_Messenger::allow_empty_to_field()) so an empty "To" field is not always an indicator of
457
-     * whether a context is "active" or not.
458
-     *
459
-     * @param $context
460
-     * @return bool
461
-     * @throws EE_Error
462
-     * @throws InvalidIdentifierException
463
-     */
464
-    public function is_context_active($context)
465
-    {
466
-        $this->validate_context($context);
467
-        return filter_var(
468
-            $this->get_extra_meta(self::ACTIVE_CONTEXT_RECORD_META_KEY_PREFIX . $context, true, true),
469
-            FILTER_VALIDATE_BOOLEAN
470
-        );
471
-    }
472
-
473
-
474
-    /**
475
-     * Validates the incoming context to verify it matches a registered context for the related message type.
476
-     *
477
-     * @param string $context
478
-     * @throws EE_Error
479
-     * @throws InvalidIdentifierException
480
-     */
481
-    public function validate_context($context)
482
-    {
483
-        $contexts = $this->contexts_config();
484
-        if (! isset($contexts[ $context ])) {
485
-            throw new InvalidIdentifierException(
486
-                '',
487
-                '',
488
-                sprintf(
489
-                    esc_html__(
490
-                        'An invalid string identifying a context was provided.  "%1$s" was received, and one of "%2$s" was expected.',
491
-                        'event_espresso'
492
-                    ),
493
-                    $context,
494
-                    implode(',', array_keys($contexts))
495
-                )
496
-            );
497
-        }
498
-    }
16
+	/**
17
+	 * Extra Meta key prefix for whether a given context for this message tmeplate group is active or not.
18
+	 */
19
+	const ACTIVE_CONTEXT_RECORD_META_KEY_PREFIX = 'active_context_';
20
+
21
+	/**
22
+	 * @param array  $props_n_values
23
+	 * @param string $timezone
24
+	 * @return EE_Message_Template_Group|mixed
25
+	 * @throws EE_Error
26
+	 */
27
+	public static function new_instance($props_n_values = array(), $timezone = '')
28
+	{
29
+		$has_object = parent::_check_for_object($props_n_values, __CLASS__, $timezone);
30
+		return $has_object ? $has_object : new self($props_n_values, false, $timezone);
31
+	}
32
+
33
+
34
+	/**
35
+	 * @param array  $props_n_values
36
+	 * @param string $timezone
37
+	 * @return EE_Message_Template_Group
38
+	 */
39
+	public static function new_instance_from_db($props_n_values = array(), $timezone = '')
40
+	{
41
+		return new self($props_n_values, true, $timezone);
42
+	}
43
+
44
+
45
+	/**
46
+	 * @param bool $message_type
47
+	 * @throws EE_Error
48
+	 */
49
+	public function set_message_type($message_type = false)
50
+	{
51
+		if (! $message_type) {
52
+			throw new EE_Error(esc_html__('Missing required value for the message_type parameter', 'event_espresso'));
53
+		}
54
+		$this->set('MTP_message_type', $message_type);
55
+	}
56
+
57
+
58
+	/**
59
+	 * @param bool $messenger
60
+	 * @throws EE_Error
61
+	 */
62
+	public function set_messenger($messenger = false)
63
+	{
64
+		if (! $messenger) {
65
+			throw new EE_Error(esc_html__('Missing required value for the messenger parameter', 'event_espresso'));
66
+		}
67
+		$this->set('MTP_messenger', $messenger);
68
+	}
69
+
70
+
71
+	/**
72
+	 * @param bool $GRP_ID
73
+	 * @throws EE_Error
74
+	 */
75
+	public function set_group_template_id($GRP_ID = false)
76
+	{
77
+		if (! $GRP_ID) {
78
+			throw new EE_Error(
79
+				esc_html__(
80
+					'Missing required value for the message template group id',
81
+					'event_espresso'
82
+				)
83
+			);
84
+		}
85
+		$this->set('GRP_ID', $GRP_ID);
86
+	}
87
+
88
+
89
+	/**
90
+	 * get Group ID
91
+	 *
92
+	 * @access public
93
+	 * @return int
94
+	 * @throws EE_Error
95
+	 */
96
+	public function GRP_ID()
97
+	{
98
+		return $this->get('GRP_ID');
99
+	}
100
+
101
+
102
+	/**
103
+	 * get User ID
104
+	 *
105
+	 * @access public
106
+	 * @return int
107
+	 * @throws EE_Error
108
+	 */
109
+	public function user()
110
+	{
111
+		$user_id = $this->get('MTP_user_id');
112
+		return empty($user_id) ? get_current_user_id() : $user_id;
113
+	}
114
+
115
+
116
+	/**
117
+	 * Wrapper for the user function() (preserve backward compat)
118
+	 *
119
+	 * @since  4.5.0
120
+	 * @return int
121
+	 * @throws EE_Error
122
+	 */
123
+	public function wp_user()
124
+	{
125
+		return $this->user();
126
+	}
127
+
128
+
129
+	/**
130
+	 * This simply returns a count of all related events to this message template group
131
+	 *
132
+	 * @return int
133
+	 */
134
+	public function count_events()
135
+	{
136
+		return $this->count_related('Event');
137
+	}
138
+
139
+
140
+	/**
141
+	 * returns the name saved in the db for this template
142
+	 *
143
+	 * @return string
144
+	 * @throws EE_Error
145
+	 */
146
+	public function name()
147
+	{
148
+		return $this->get('MTP_name');
149
+	}
150
+
151
+
152
+	/**
153
+	 * Returns the description saved in the db for this template group
154
+	 *
155
+	 * @return string
156
+	 * @throws EE_Error
157
+	 */
158
+	public function description()
159
+	{
160
+		return $this->get('MTP_description');
161
+	}
162
+
163
+
164
+	/**
165
+	 * returns all related EE_Message_Template objects
166
+	 *
167
+	 * @param  array $query_params @see https://github.com/eventespresso/event-espresso-core/tree/master/docs/G--Model-System/model-query-params.md
168
+	 * @return EE_Message_Template[]
169
+	 * @throws EE_Error
170
+	 */
171
+	public function message_templates($query_params = array())
172
+	{
173
+		return $this->get_many_related('Message_Template', $query_params);
174
+	}
175
+
176
+
177
+	/**
178
+	 * get Message Messenger
179
+	 *
180
+	 * @access public
181
+	 * @return string
182
+	 * @throws EE_Error
183
+	 */
184
+	public function messenger()
185
+	{
186
+		return $this->get('MTP_messenger');
187
+	}
188
+
189
+
190
+	/**
191
+	 * get Message Messenger OBJECT
192
+	 * If an attempt to get the corresponding messenger object fails, then we set this message
193
+	 * template group to inactive, and save to db.  Then return null so client code can handle
194
+	 * appropriately.
195
+	 *
196
+	 * @return EE_messenger
197
+	 * @throws EE_Error
198
+	 */
199
+	public function messenger_obj()
200
+	{
201
+		$messenger = $this->messenger();
202
+		try {
203
+			$messenger = EEH_MSG_Template::messenger_obj($messenger);
204
+		} catch (EE_Error $e) {
205
+			// if an exception was thrown then let's deactivate this message template group because it means there is no
206
+			// class for this messenger in this group.
207
+			$this->set('MTP_is_active', false);
208
+			$this->save();
209
+			return null;
210
+		}
211
+		return $messenger;
212
+	}
213
+
214
+
215
+	/**
216
+	 * get Message Type
217
+	 *
218
+	 * @access public
219
+	 * @return string
220
+	 * @throws EE_Error
221
+	 */
222
+	public function message_type()
223
+	{
224
+		return $this->get('MTP_message_type');
225
+	}
226
+
227
+
228
+	/**
229
+	 * get Message type OBJECT
230
+	 * If an attempt to get the corresponding message type object fails, then we set this message
231
+	 * template group to inactive, and save to db.  Then return null so client code can handle
232
+	 * appropriately.
233
+	 *
234
+	 * @throws EE_Error
235
+	 * @return EE_message_type|false if exception thrown.
236
+	 */
237
+	public function message_type_obj()
238
+	{
239
+		$message_type = $this->message_type();
240
+		try {
241
+			$message_type = EEH_MSG_Template::message_type_obj($message_type);
242
+		} catch (EE_Error $e) {
243
+			// if an exception was thrown then let's deactivate this message template group because it means there is no
244
+			// class for the message type in this group.
245
+			$this->set('MTP_is_active', false);
246
+			$this->save();
247
+			return null;
248
+		}
249
+		return $message_type;
250
+	}
251
+
252
+
253
+	/**
254
+	 * @return array
255
+	 * @throws EE_Error
256
+	 */
257
+	public function contexts_config()
258
+	{
259
+		return $this->message_type_obj()->get_contexts();
260
+	}
261
+
262
+
263
+	/**
264
+	 * This returns the context_label for contexts as set in the message type object
265
+	 * Note this is an array with singular and plural keys
266
+	 *
267
+	 * @access public
268
+	 * @return array labels for "context"
269
+	 * @throws EE_Error
270
+	 */
271
+	public function context_label()
272
+	{
273
+		$obj = $this->message_type_obj();
274
+		return $obj->get_context_label();
275
+	}
276
+
277
+
278
+	/**
279
+	 * This returns an array of EE_Message_Template objects indexed by context and field.
280
+	 *
281
+	 * @return array ()
282
+	 * @throws EE_Error
283
+	 */
284
+	public function context_templates()
285
+	{
286
+		$mtps_arr = array();
287
+		$mtps = $this->get_many_related('Message_Template');
288
+		if (empty($mtps)) {
289
+			return array();
290
+		}
291
+		// note contexts could have CHECKBOX fields per context. So we return the objects indexed by context AND field.
292
+		foreach ($mtps as $mtp) {
293
+			$mtps_arr[ $mtp->get('MTP_context') ][ $mtp->get('MTP_template_field') ] = $mtp;
294
+		}
295
+		return $mtps_arr;
296
+	}
297
+
298
+
299
+	/**
300
+	 * this returns if the template group this template belongs to is global
301
+	 *
302
+	 * @return bool true if it is, false if it isn't
303
+	 * @throws EE_Error
304
+	 */
305
+	public function is_global()
306
+	{
307
+		return $this->get('MTP_is_global');
308
+	}
309
+
310
+
311
+	/**
312
+	 * this returns if the template group this template belongs to is active (i.e. turned "on" or not)
313
+	 *
314
+	 * @return bool true if it is, false if it isn't
315
+	 * @throws EE_Error
316
+	 */
317
+	public function is_active()
318
+	{
319
+		return $this->get('MTP_is_active');
320
+	}
321
+
322
+
323
+	/**
324
+	 * This will return an array of shortcodes => labels from the messenger and message_type objects associated with
325
+	 * this template.
326
+	 *
327
+	 * @since 4.3.0
328
+	 * @uses  EEH_MSG_Template::get_shortcodes()
329
+	 * @param string $context what context we're going to return shortcodes for
330
+	 * @param array  $fields  what fields we're returning valid shortcodes for.  If empty then we assume all fields are
331
+	 *                        to be returned.
332
+	 * @param bool   $merged  If TRUE then we don't return shortcodes indexed by field but instead an array of the
333
+	 *                        unique shortcodes for all the given (or all) fields.
334
+	 * @return mixed (array|bool) an array of shortcodes in the format array( '[shortcode] => 'label') OR FALSE if no
335
+	 *                        shortcodes found.
336
+	 * @throws EE_Error
337
+	 */
338
+	public function get_shortcodes($context, $fields = array(), $merged = false)
339
+	{
340
+		$messenger = $this->messenger();
341
+		$message_type = $this->message_type();
342
+		return EEH_MSG_Template::get_shortcodes($message_type, $messenger, $fields, $context, $merged);
343
+	}
344
+
345
+
346
+	/**
347
+	 * This just gets the template pack name assigned to this message template group.  If it's not set, then we just
348
+	 * use the default template pack.
349
+	 *
350
+	 * @since 4.5.0
351
+	 * @return string
352
+	 * @throws EE_Error
353
+	 */
354
+	public function get_template_pack_name()
355
+	{
356
+		return $this->get_extra_meta('MTP_template_pack', true, 'default');
357
+	}
358
+
359
+
360
+	/**
361
+	 * This returns the specific template pack object referenced by the template pack name attached to this message
362
+	 * template group.  If no template pack is assigned then the default template pack is retrieved.
363
+	 *
364
+	 * @since 4.5.0
365
+	 * @return EE_Messages_Template_Pack
366
+	 * @throws EE_Error
367
+	 * @throws InvalidArgumentException
368
+	 * @throws ReflectionException
369
+	 * @throws \EventEspresso\core\exceptions\InvalidDataTypeException
370
+	 * @throws \EventEspresso\core\exceptions\InvalidInterfaceException
371
+	 */
372
+	public function get_template_pack()
373
+	{
374
+		$pack_name = $this->get_template_pack_name();
375
+		EE_Registry::instance()->load_helper('MSG_Template');
376
+		return EEH_MSG_Template::get_template_pack($pack_name);
377
+	}
378
+
379
+
380
+	/**
381
+	 * This retrieves the template variation assigned to this message template group.  If it's not set, then we just
382
+	 * use the default template variation.
383
+	 *
384
+	 * @since 4.5.0
385
+	 * @return string
386
+	 * @throws EE_Error
387
+	 */
388
+	public function get_template_pack_variation()
389
+	{
390
+		return $this->get_extra_meta('MTP_variation', true, 'default');
391
+	}
392
+
393
+
394
+	/**
395
+	 * This just sets the template pack name attached to this message template group.
396
+	 *
397
+	 * @since 4.5.0
398
+	 * @param string $template_pack_name What message template pack is assigned.
399
+	 * @return int
400
+	 * @throws EE_Error
401
+	 */
402
+	public function set_template_pack_name($template_pack_name)
403
+	{
404
+		return $this->update_extra_meta('MTP_template_pack', $template_pack_name);
405
+	}
406
+
407
+
408
+	/**
409
+	 * This just sets the template pack variation attached to this message template group.
410
+	 *
411
+	 * @since 4.5.0
412
+	 * @param string $variation What variation is being set on the message template group.
413
+	 * @return int
414
+	 * @throws EE_Error
415
+	 */
416
+	public function set_template_pack_variation($variation)
417
+	{
418
+		return $this->update_extra_meta('MTP_variation', $variation);
419
+	}
420
+
421
+
422
+	/**
423
+	 * Deactivates the given context.
424
+	 *
425
+	 * @param $context
426
+	 * @return bool|int
427
+	 * @throws EE_Error
428
+	 * @throws InvalidIdentifierException
429
+	 */
430
+	public function deactivate_context($context)
431
+	{
432
+		$this->validate_context($context);
433
+		return $this->update_extra_meta(self::ACTIVE_CONTEXT_RECORD_META_KEY_PREFIX . $context, false);
434
+	}
435
+
436
+
437
+	/**
438
+	 * Activates the given context.
439
+	 *
440
+	 * @param $context
441
+	 * @return bool|int
442
+	 * @throws EE_Error
443
+	 * @throws InvalidIdentifierException
444
+	 */
445
+	public function activate_context($context)
446
+	{
447
+		$this->validate_context($context);
448
+		return $this->update_extra_meta(self::ACTIVE_CONTEXT_RECORD_META_KEY_PREFIX . $context, true);
449
+	}
450
+
451
+
452
+	/**
453
+	 * Returns whether the context is active or not.
454
+	 * Note, this will default to true if the extra meta record doesn't exist.
455
+	 * Also, this does NOT account for whether the "To" field is empty or not. Some messengers may allow the "To" field
456
+	 * to be empty (@see EE_Messenger::allow_empty_to_field()) so an empty "To" field is not always an indicator of
457
+	 * whether a context is "active" or not.
458
+	 *
459
+	 * @param $context
460
+	 * @return bool
461
+	 * @throws EE_Error
462
+	 * @throws InvalidIdentifierException
463
+	 */
464
+	public function is_context_active($context)
465
+	{
466
+		$this->validate_context($context);
467
+		return filter_var(
468
+			$this->get_extra_meta(self::ACTIVE_CONTEXT_RECORD_META_KEY_PREFIX . $context, true, true),
469
+			FILTER_VALIDATE_BOOLEAN
470
+		);
471
+	}
472
+
473
+
474
+	/**
475
+	 * Validates the incoming context to verify it matches a registered context for the related message type.
476
+	 *
477
+	 * @param string $context
478
+	 * @throws EE_Error
479
+	 * @throws InvalidIdentifierException
480
+	 */
481
+	public function validate_context($context)
482
+	{
483
+		$contexts = $this->contexts_config();
484
+		if (! isset($contexts[ $context ])) {
485
+			throw new InvalidIdentifierException(
486
+				'',
487
+				'',
488
+				sprintf(
489
+					esc_html__(
490
+						'An invalid string identifying a context was provided.  "%1$s" was received, and one of "%2$s" was expected.',
491
+						'event_espresso'
492
+					),
493
+					$context,
494
+					implode(',', array_keys($contexts))
495
+				)
496
+			);
497
+		}
498
+	}
499 499
 }
Please login to merge, or discard this patch.
messages/templates/ee_msg_editor_active_context_element.template.php 1 patch
Indentation   +18 added lines, -18 removed lines patch added patch discarded remove patch
@@ -10,22 +10,22 @@  discard block
 block discarded – undo
10 10
  * @var int    $message_template_group_id The ID for the message template group this context belongs to.
11 11
  */
12 12
 $active_message = sprintf(
13
-    esc_html__(
14
-        'The template for %1$s is currently %2$sactive%3$s.',
15
-        'event_espresso'
16
-    ),
17
-    $context_label,
18
-    '<strong>',
19
-    '</strong>'
13
+	esc_html__(
14
+		'The template for %1$s is currently %2$sactive%3$s.',
15
+		'event_espresso'
16
+	),
17
+	$context_label,
18
+	'<strong>',
19
+	'</strong>'
20 20
 );
21 21
 $inactive_message = sprintf(
22
-    esc_html__(
23
-        'The template for %1$s is currently %2$sinactive%3$s.',
24
-        'event_espresso'
25
-    ),
26
-    $context_label,
27
-    '<strong>',
28
-    '</strong>'
22
+	esc_html__(
23
+		'The template for %1$s is currently %2$sinactive%3$s.',
24
+		'event_espresso'
25
+	),
26
+	$context_label,
27
+	'<strong>',
28
+	'</strong>'
29 29
 );
30 30
 ?>
31 31
 <div class="context-active-control-container">
@@ -34,8 +34,8 @@  discard block
 block discarded – undo
34 34
         <span id="on-off-nonce-<?php echo $context; ?>" class="hidden"><?php echo $nonce; ?></span>
35 35
         <span class="ee-on-off-toggle-label">
36 36
             <?php
37
-            echo $is_active ? $active_message : $inactive_message;
38
-            ?>
37
+			echo $is_active ? $active_message : $inactive_message;
38
+			?>
39 39
         </span>
40 40
         <div class="hidden js-data">
41 41
             <span class="ee-active-message"><?php echo $active_message; ?></span>
@@ -43,8 +43,8 @@  discard block
 block discarded – undo
43 43
         </div>
44 44
         <div class="switch">
45 45
             <?php
46
-            $checked = $is_active ? ' checked="checked"' : '';
47
-            ?>
46
+			$checked = $is_active ? ' checked="checked"' : '';
47
+			?>
48 48
             <input data-grpid="<?php echo $message_template_group_id; ?>" id="ee-on-off-toggle-<?php echo $context; ?>" type="checkbox" class="ee-on-off-toggle ee-toggle-round-flat"<?php echo $checked; ?> value="<?php echo $on_off_action; ?>">
49 49
             <label for="ee-on-off-toggle-<?php echo $context; ?>"></label>
50 50
         </div>
Please login to merge, or discard this patch.
public/Espresso_Arabica_2014/functions.php 1 patch
Spacing   +7 added lines, -7 removed lines patch added patch discarded remove patch
@@ -9,9 +9,9 @@  discard block
 block discarded – undo
9 9
  * @ link			http://www.eventespresso.com
10 10
  * @ version		4+
11 11
  */
12
-define( 'EE_THEME_FUNCTIONS_LOADED', TRUE );
12
+define('EE_THEME_FUNCTIONS_LOADED', TRUE);
13 13
 
14
-if ( ! function_exists( 'espresso_pagination' ) ) {
14
+if ( ! function_exists('espresso_pagination')) {
15 15
 	/**
16 16
 	 *    espresso_pagination
17 17
 	 *
@@ -23,21 +23,21 @@  discard block
 block discarded – undo
23 23
 		$big = 999999999; // need an unlikely integer
24 24
 		$pagination = paginate_links(
25 25
 			array(
26
-				'base'         => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
26
+				'base'         => str_replace($big, '%#%', esc_url(get_pagenum_link($big))),
27 27
 				'format'       => '?paged=%#%',
28
-				'current'      => max( 1, get_query_var( 'paged' ) ),
28
+				'current'      => max(1, get_query_var('paged')),
29 29
 				'total'        => $wp_query->max_num_pages,
30 30
 				'show_all'     => true,
31 31
 				'end_size'     => 10,
32 32
 				'mid_size'     => 6,
33 33
 				'prev_next'    => true,
34
-				'prev_text'    => __( '&lsaquo; PREV', 'event_espresso' ),
35
-				'next_text'    => __( 'NEXT &rsaquo;', 'event_espresso' ),
34
+				'prev_text'    => __('&lsaquo; PREV', 'event_espresso'),
35
+				'next_text'    => __('NEXT &rsaquo;', 'event_espresso'),
36 36
 				'type'         => 'plain',
37 37
 				'add_args'     => false,
38 38
 				'add_fragment' => ''
39 39
 			)
40 40
 		);
41
-		echo ! empty( $pagination ) ? '<div class="ee-pagination-dv ee-clear-float">' . $pagination . '</div>' : '';
41
+		echo ! empty($pagination) ? '<div class="ee-pagination-dv ee-clear-float">'.$pagination.'</div>' : '';
42 42
 	}
43 43
 }
44 44
\ No newline at end of file
Please login to merge, or discard this patch.
admin_pages/messages/help_tabs/messages_settings_messengers.help_tab.php 2 patches
Indentation   +50 added lines, -50 removed lines patch added patch discarded remove patch
@@ -3,79 +3,79 @@
 block discarded – undo
3 3
 </p>
4 4
 <p>
5 5
     <?php esc_html_e(
6
-        'You can select Messengers via the tabs across the top of the settings page. The available messengers you see depends on what version of Event Espresso you have and what addons are installed. Every install include an "Email" messenger tab.  When you click one of those tabs it will display that messenger.',
7
-        'event_espresso'
8
-    ); ?>
6
+		'You can select Messengers via the tabs across the top of the settings page. The available messengers you see depends on what version of Event Espresso you have and what addons are installed. Every install include an "Email" messenger tab.  When you click one of those tabs it will display that messenger.',
7
+		'event_espresso'
8
+	); ?>
9 9
 </p>
10 10
 <p>
11 11
     <?php esc_html_e(
12
-        'There are two ways to determine whether a messenger is active or not.  The first way is via the messenger tab itself.',
13
-        'event_espresso'
14
-    ); ?>
12
+		'There are two ways to determine whether a messenger is active or not.  The first way is via the messenger tab itself.',
13
+		'event_espresso'
14
+	); ?>
15 15
 </p>
16 16
 <p>
17 17
     <?php printf(
18
-        esc_html__(
19
-            'The green colored gear %s indicates that this messenger is currently active.',
20
-            'event_espresso'
21
-        ),
22
-        '<img class="inline-text" src="' . EE_MSG_ASSETS_URL . 'images/email-tab-active.png' . '"'
23
-        . ' alt="' . esc_attr__('Active Email Tab', 'event_espresso') . '" />'
24
-    );
25
-    printf(
26
-        esc_html__(
27
-            ' The white colored gear %s indicates the messenger is inactive. This is very helpful for seeing at a glance all the messengers that are active when you first view the page.',
28
-            'event_espresso'
29
-        ),
30
-        '<img class="inline-text" src="' . EE_MSG_ASSETS_URL . 'images/email-tab-inactive.png'
31
-        . '" alt="' . esc_attr__('Inactive Email Tab', 'event_espresso') . '" />'
32
-    ); ?>
18
+		esc_html__(
19
+			'The green colored gear %s indicates that this messenger is currently active.',
20
+			'event_espresso'
21
+		),
22
+		'<img class="inline-text" src="' . EE_MSG_ASSETS_URL . 'images/email-tab-active.png' . '"'
23
+		. ' alt="' . esc_attr__('Active Email Tab', 'event_espresso') . '" />'
24
+	);
25
+	printf(
26
+		esc_html__(
27
+			' The white colored gear %s indicates the messenger is inactive. This is very helpful for seeing at a glance all the messengers that are active when you first view the page.',
28
+			'event_espresso'
29
+		),
30
+		'<img class="inline-text" src="' . EE_MSG_ASSETS_URL . 'images/email-tab-inactive.png'
31
+		. '" alt="' . esc_attr__('Inactive Email Tab', 'event_espresso') . '" />'
32
+	); ?>
33 33
 </p>
34 34
 <p>
35 35
     <?php esc_html_e(
36
-        'The second way to determine whether a messenger is active or not is via the "on/off" button in the top right corner of the active messenger displayed content:',
37
-        'event_espresso'
38
-    ); ?>
36
+		'The second way to determine whether a messenger is active or not is via the "on/off" button in the top right corner of the active messenger displayed content:',
37
+		'event_espresso'
38
+	); ?>
39 39
 </p>
40 40
 <p>
41 41
     <?php printf(
42
-        esc_html__(
43
-            '%1$s means of course that the messenger is active and %2$s means the messenger is inactive.',
44
-            'event_espresso'
45
-        ),
46
-        '<div class="switch">'
47
-            . '<input class="ee-on-off-toggle ee-toggle-round-flat" type="checkbox" checked="checked" disabled>'
48
-            . '<label for="ee-on-off-toggle-on"></label>'
49
-        . '</div>',
50
-        '<div class="switch">'
51
-            . '<input class="ee-on-off-toggle ee-toggle-round-flat" type="checkbox" disabled>'
52
-            . '<label for="ee-on-off-toggle-on"></label>'
53
-        . '</div>'
54
-    ); ?>
42
+		esc_html__(
43
+			'%1$s means of course that the messenger is active and %2$s means the messenger is inactive.',
44
+			'event_espresso'
45
+		),
46
+		'<div class="switch">'
47
+			. '<input class="ee-on-off-toggle ee-toggle-round-flat" type="checkbox" checked="checked" disabled>'
48
+			. '<label for="ee-on-off-toggle-on"></label>'
49
+		. '</div>',
50
+		'<div class="switch">'
51
+			. '<input class="ee-on-off-toggle ee-toggle-round-flat" type="checkbox" disabled>'
52
+			. '<label for="ee-on-off-toggle-on"></label>'
53
+		. '</div>'
54
+	); ?>
55 55
 </p>
56 56
 <p>
57 57
     <?php
58
-        esc_html_e(
59
-            'The on/off toggle is also what you use to activate or deactivate a messenger.',
60
-            'event_espresso'
61
-        ); ?>
58
+		esc_html_e(
59
+			'The on/off toggle is also what you use to activate or deactivate a messenger.',
60
+			'event_espresso'
61
+		); ?>
62 62
 </p>
63 63
 <p>
64 64
     <?php esc_html_e(
65
-        'What happens when you click the toggle to activate is the messenger is activated and the system determines what default message types are activated with the messenger.  Then, if there are any default settings for either the messenger or message types those settings are saved.  Next, the system will generate any default templates (if none have been generated before, if there are previously generated templates then they are reactivated).  Finally, you will see the display change to reflect that the messenger is active. If the messenger has settings you can modify them then. Any message types that have settings will also automatically expand so you can see the default settings and make any changes as necessary to fit your needs. Usually the defaults are sufficient however.',
66
-        'event_espresso'
67
-    ); ?>
65
+		'What happens when you click the toggle to activate is the messenger is activated and the system determines what default message types are activated with the messenger.  Then, if there are any default settings for either the messenger or message types those settings are saved.  Next, the system will generate any default templates (if none have been generated before, if there are previously generated templates then they are reactivated).  Finally, you will see the display change to reflect that the messenger is active. If the messenger has settings you can modify them then. Any message types that have settings will also automatically expand so you can see the default settings and make any changes as necessary to fit your needs. Usually the defaults are sufficient however.',
66
+		'event_espresso'
67
+	); ?>
68 68
 </p>
69 69
 <p>
70 70
     <?php esc_html_e(
71
-        'When you deactivate a messenger, the system will first check if there are any custom event templates for that messenger. If there are you will be unable to deactivate the messenger. This is a fail safe to make sure you know that no messages will go out for those specific events so you don\'t accidentally deactivate.  If this check passes, then the system will deactivate any global templates for that messenger (note the templates are not erased, they just become inactive, so if you decide to reactivate the messenger later all your customizations are preserved). Then the display will change to reflect the deactivation.',
72
-        'event_espresso'
73
-    ); ?>
71
+		'When you deactivate a messenger, the system will first check if there are any custom event templates for that messenger. If there are you will be unable to deactivate the messenger. This is a fail safe to make sure you know that no messages will go out for those specific events so you don\'t accidentally deactivate.  If this check passes, then the system will deactivate any global templates for that messenger (note the templates are not erased, they just become inactive, so if you decide to reactivate the messenger later all your customizations are preserved). Then the display will change to reflect the deactivation.',
72
+		'event_espresso'
73
+	); ?>
74 74
 </p>
75 75
 <p>
76 76
     <strong><?php esc_html_e('Important', 'event_espresso'); ?></strong><br/>
77 77
     <?php esc_html_e(
78
-        'Although customizations made to global templates are preserved when a messenger is deactivated, any settings for that messenger (or the message types that were attached to it) are lost on deactivation.  Also, once you deactivate a messenger, no more messages will be delivered using that messenger for any of your events.',
79
-        'event_espresso'
80
-    ); ?>
78
+		'Although customizations made to global templates are preserved when a messenger is deactivated, any settings for that messenger (or the message types that were attached to it) are lost on deactivation.  Also, once you deactivate a messenger, no more messages will be delivered using that messenger for any of your events.',
79
+		'event_espresso'
80
+	); ?>
81 81
 </p>
Please login to merge, or discard this patch.
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -19,16 +19,16 @@
 block discarded – undo
19 19
             'The green colored gear %s indicates that this messenger is currently active.',
20 20
             'event_espresso'
21 21
         ),
22
-        '<img class="inline-text" src="' . EE_MSG_ASSETS_URL . 'images/email-tab-active.png' . '"'
23
-        . ' alt="' . esc_attr__('Active Email Tab', 'event_espresso') . '" />'
22
+        '<img class="inline-text" src="'.EE_MSG_ASSETS_URL.'images/email-tab-active.png'.'"'
23
+        . ' alt="'.esc_attr__('Active Email Tab', 'event_espresso').'" />'
24 24
     );
25 25
     printf(
26 26
         esc_html__(
27 27
             ' The white colored gear %s indicates the messenger is inactive. This is very helpful for seeing at a glance all the messengers that are active when you first view the page.',
28 28
             'event_espresso'
29 29
         ),
30
-        '<img class="inline-text" src="' . EE_MSG_ASSETS_URL . 'images/email-tab-inactive.png'
31
-        . '" alt="' . esc_attr__('Inactive Email Tab', 'event_espresso') . '" />'
30
+        '<img class="inline-text" src="'.EE_MSG_ASSETS_URL.'images/email-tab-inactive.png'
31
+        . '" alt="'.esc_attr__('Inactive Email Tab', 'event_espresso').'" />'
32 32
     ); ?>
33 33
 </p>
34 34
 <p>
Please login to merge, or discard this patch.
core/libraries/shortcodes/EE_Venue_Shortcodes.lib.php 3 patches
Doc Comments   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -176,7 +176,7 @@
 block discarded – undo
176 176
     /**
177 177
      * This retrieves the EE_Venue from the available data object.
178 178
      *
179
-     * @return EE_Venue|null
179
+     * @return EE_Base_Class|null
180 180
      * @throws EE_Error
181 181
      * @throws EntityNotFoundException
182 182
      */
Please login to merge, or discard this patch.
Indentation   +311 added lines, -311 removed lines patch added patch discarded remove patch
@@ -17,315 +17,315 @@
 block discarded – undo
17 17
 {
18 18
 
19 19
 
20
-    /**
21
-     * Will hold the EE_Event if available
22
-     *
23
-     * @var EE_Event
24
-     */
25
-    protected $_event;
26
-
27
-    /**
28
-     * Will hold the EE_Venue if available
29
-     *
30
-     * @var EE_Venue
31
-     */
32
-    protected $_venue;
33
-
34
-
35
-    /**
36
-     * Initialize properties
37
-     */
38
-    protected function _init_props()
39
-    {
40
-        $this->label = esc_html__('Venue Shortcodes', 'event_espresso');
41
-        $this->description = esc_html__('All shortcodes specific to venue related data', 'event_espresso');
42
-        $this->_shortcodes = array(
43
-            '[VENUE_TITLE]'             => esc_html__('The title for the event venue', 'event_espresso'),
44
-            '[VENUE_DESCRIPTION]'       => esc_html__('The description for the event venue', 'event_espresso'),
45
-            '[VENUE_URL]'               => esc_html__('A url to a webpage for the venue', 'event_espresso'),
46
-            '[VENUE_DETAILS_URL]'       => sprintf(
47
-                esc_html__(
48
-                    'This shortcode outputs the url or website address to the venue details page on this website. This differs from %s which outputs what is entered in the "url" field in the venue details page.',
49
-                    'event_espresso'
50
-                ),
51
-                '[VENUE_URL]'
52
-            ),
53
-            '[VENUE_IMAGE]'             => esc_html__('An image representing the event venue', 'event_espresso'),
54
-            '[VENUE_PHONE]'             => esc_html__('The phone number for the venue', 'event_espresso'),
55
-            '[VENUE_ADDRESS]'           => esc_html__('The address for the venue', 'event_espresso'),
56
-            '[VENUE_ADDRESS2]'          => esc_html__('Address 2 for the venue', 'event_espresso'),
57
-            '[VENUE_CITY]'              => esc_html__('The city the venue is in', 'event_espresso'),
58
-            '[VENUE_STATE]'             => esc_html__('The state the venue is located in', 'event_espresso'),
59
-            '[VENUE_COUNTRY]'           => esc_html__('The country the venue is located in', 'event_espresso'),
60
-            '[VENUE_FORMATTED_ADDRESS]' => esc_html__(
61
-                'This just outputs the venue address in a semantic address format.',
62
-                'event_espresso'
63
-            ),
64
-            '[VENUE_ZIP]'               => esc_html__('The zip code for the venue address', 'event_espresso'),
65
-            '[VENUE_META_*]'            => esc_html__(
66
-                'This is a special dynamic shortcode. After the "*", add the exact name for your custom field, if there is a value set for that custom field within the venue then it will be output in place of this shortcode.',
67
-                'event_espresso'
68
-            ),
69
-            '[GOOGLE_MAP_URL]'          => esc_html__(
70
-                'URL for the google map associated with the venue.',
71
-                'event_espresso'
72
-            ),
73
-            '[GOOGLE_MAP_LINK]'         => esc_html__('Link to a google map for the venue', 'event_espresso'),
74
-            '[GOOGLE_MAP_IMAGE]'        => esc_html__('Google map for venue wrapped in image tags', 'event_espresso'),
75
-        );
76
-    }
77
-
78
-
79
-    /**
80
-     * Parse incoming shortcode
81
-     *
82
-     * @param string $shortcode
83
-     * @return string
84
-     * @throws EE_Error
85
-     * @throws EntityNotFoundException
86
-     */
87
-    protected function _parser($shortcode)
88
-    {
89
-        $this->_venue = $this->_get_venue();
90
-        // If there is no venue object by now then get out.
91
-        if (! $this->_venue instanceof EE_Venue) {
92
-            return '';
93
-        }
94
-
95
-        switch ($shortcode) {
96
-            case '[VENUE_TITLE]':
97
-                return $this->_venue('title');
98
-                break;
99
-
100
-            case '[VENUE_DESCRIPTION]':
101
-                return $this->_venue('description');
102
-                break;
103
-
104
-            case '[VENUE_URL]':
105
-                return $this->_venue('url');
106
-                break;
107
-
108
-            case '[VENUE_IMAGE]':
109
-                return $this->_venue('image');
110
-                break;
111
-
112
-            case '[VENUE_PHONE]':
113
-                return $this->_venue('phone');
114
-                break;
115
-
116
-            case '[VENUE_ADDRESS]':
117
-                return $this->_venue('address');
118
-                break;
119
-
120
-            case '[VENUE_ADDRESS2]':
121
-                return $this->_venue('address2');
122
-                break;
123
-
124
-            case '[VENUE_CITY]':
125
-                return $this->_venue('city');
126
-                break;
127
-
128
-            case '[VENUE_COUNTRY]':
129
-                return $this->_venue('country');
130
-                break;
131
-
132
-            case '[VENUE_STATE]':
133
-                return $this->_venue('state');
134
-                break;
135
-
136
-            case '[VENUE_ZIP]':
137
-                return $this->_venue('zip');
138
-                break;
139
-
140
-            case '[VENUE_FORMATTED_ADDRESS]':
141
-                return $this->_venue('formatted_address');
142
-                break;
143
-
144
-            case '[GOOGLE_MAP_URL]':
145
-                return $this->_venue('gmap_url');
146
-                break;
147
-
148
-            case '[GOOGLE_MAP_LINK]':
149
-                return $this->_venue('gmap_link');
150
-                break;
151
-
152
-            case '[GOOGLE_MAP_IMAGE]':
153
-                return $this->_venue('gmap_link_img');
154
-                break;
155
-
156
-            case '[VENUE_DETAILS_URL]':
157
-                return $this->_venue('permalink');
158
-                break;
159
-        }
160
-
161
-        if (strpos($shortcode, '[VENUE_META_*') !== false) {
162
-            $shortcode = str_replace('[VENUE_META_*', '', $shortcode);
163
-            $shortcode = trim(str_replace(']', '', $shortcode));
164
-
165
-            // pull the meta value from the venue post
166
-            $venue_meta = $this->_venue->get_post_meta($shortcode, true);
167
-
168
-            return ! empty($venue_meta) ? $venue_meta : '';
169
-        }
170
-    }
171
-
172
-    /**
173
-     * This retrieves the EE_Venue from the available data object.
174
-     *
175
-     * @return EE_Venue|null
176
-     * @throws EE_Error
177
-     * @throws EntityNotFoundException
178
-     */
179
-    private function _get_venue()
180
-    {
181
-
182
-        // we need the EE_Event object to get the venue.
183
-        $this->_event = $this->_data instanceof EE_Event ? $this->_data : null;
184
-
185
-        // if no event, then let's see if there is a reg_obj.  If there IS, then we'll try and grab the event from the
186
-        // reg_obj instead.
187
-        if (! $this->_event instanceof EE_Event) {
188
-            $aee = $this->_data instanceof EE_Messages_Addressee ? $this->_data : null;
189
-            $aee = $this->_extra_data instanceof EE_Messages_Addressee ? $this->_extra_data : $aee;
190
-
191
-            $this->_event = $aee instanceof EE_Messages_Addressee && $aee->reg_obj instanceof EE_Registration
192
-                ? $aee->reg_obj->event()
193
-                : null;
194
-
195
-            // if still empty do we have a ticket data item?
196
-            $this->_event = ! $this->_event instanceof EE_Event
197
-                            && $this->_data instanceof EE_Ticket
198
-                            && $this->_extra_data['data'] instanceof EE_Messages_Addressee
199
-                ? $this->_extra_data['data']->tickets[ $this->_data->ID() ]['EE_Event']
200
-                : $this->_event;
201
-
202
-            // if STILL empty event, let's try to get the first event in the list of events via EE_Messages_Addressee
203
-            // and use that.
204
-            $this->_event = ! $this->_event instanceof EE_Event && $aee instanceof EE_Messages_Addressee
205
-                ? reset($aee->events)
206
-                : $this->_event;
207
-        }
208
-
209
-        // If we have an event object use it to pull the venue.
210
-        if ($this->_event instanceof EE_Event) {
211
-            return $this->_event->get_first_related('Venue');
212
-        }
213
-
214
-        return null;
215
-    }
216
-
217
-    /**
218
-     * This retrieves the specified venue information
219
-     *
220
-     * @param string $field What Venue field to retrieve
221
-     * @return string What was retrieved!
222
-     * @throws EE_Error
223
-     * @throws EntityNotFoundException
224
-     */
225
-    private function _venue($field)
226
-    {
227
-
228
-        if (! $this->_venue instanceof EE_Venue) {
229
-            return '';
230
-        } //no venue so get out.
231
-
232
-        switch ($field) {
233
-            case 'title':
234
-                return $this->_venue->get('VNU_name');
235
-                break;
236
-
237
-            case 'description':
238
-                return $this->_venue->get('VNU_desc');
239
-                break;
240
-
241
-            case 'url':
242
-                $url = $this->_venue->get('VNU_url');
243
-                return empty($url) ? $this->_venue->get_permalink() : $url;
244
-                break;
245
-
246
-            case 'permalink':
247
-                return $this->_venue->get_permalink();
248
-                break;
249
-
250
-            case 'image':
251
-                return '<img src="' . $this->_venue->feature_image_url(array(200, 200,))
252
-                       . '" alt="' . sprintf(
253
-                           esc_attr__('%s Feature Image', 'event_espresso'),
254
-                           $this->_venue->get('VNU_name')
255
-                       ) . '" />';
256
-                break;
257
-
258
-            case 'phone':
259
-                return $this->_venue->get('VNU_phone');
260
-                break;
261
-
262
-            case 'address':
263
-                return $this->_venue->get('VNU_address');
264
-                break;
265
-
266
-            case 'address2':
267
-                return $this->_venue->get('VNU_address2');
268
-                break;
269
-
270
-            case 'city':
271
-                return $this->_venue->get('VNU_city');
272
-                break;
273
-
274
-            case 'state':
275
-                $state = $this->_venue->state_obj();
276
-                return is_object($state) ? $state->get('STA_name') : '';
277
-                break;
278
-
279
-            case 'country':
280
-                $country = $this->_venue->country_obj();
281
-                return is_object($country) ? $country->get('CNT_name') : '';
282
-                break;
283
-
284
-            case 'zip':
285
-                return $this->_venue->get('VNU_zip');
286
-                break;
287
-
288
-            case 'formatted_address':
289
-                return EEH_Address::format($this->_venue);
290
-                break;
291
-
292
-            case 'gmap_link':
293
-            case 'gmap_url':
294
-            case 'gmap_link_img':
295
-                $atts = $this->get_map_attributes($this->_venue, $field);
296
-                return EEH_Maps::google_map_link($atts);
297
-                break;
298
-        }
299
-        return '';
300
-    }
301
-
302
-
303
-    /**
304
-     * Generates the attributes for retrieving a google_map artifact.
305
-     *
306
-     * @param EE_Venue $venue
307
-     * @param string   $field
308
-     * @return array
309
-     * @throws EE_Error
310
-     */
311
-    protected function get_map_attributes(EE_Venue $venue, $field = 'gmap_link')
312
-    {
313
-        $state = $venue->state_obj();
314
-        $country = $venue->country_obj();
315
-        $atts = array(
316
-            'id'      => $venue->ID(),
317
-            'address' => $venue->get('VNU_address'),
318
-            'city'    => $venue->get('VNU_city'),
319
-            'state'   => is_object($state) ? $state->get('STA_name') : '',
320
-            'zip'     => $venue->get('VNU_zip'),
321
-            'country' => is_object($country) ? $country->get('CNT_name') : '',
322
-            'type'    => $field === 'gmap_link' ? 'url' : 'map',
323
-            'map_w'   => 200,
324
-            'map_h'   => 200,
325
-        );
326
-        if ($field === 'gmap_url') {
327
-            $atts['type'] = 'url_only';
328
-        }
329
-        return $atts;
330
-    }
20
+	/**
21
+	 * Will hold the EE_Event if available
22
+	 *
23
+	 * @var EE_Event
24
+	 */
25
+	protected $_event;
26
+
27
+	/**
28
+	 * Will hold the EE_Venue if available
29
+	 *
30
+	 * @var EE_Venue
31
+	 */
32
+	protected $_venue;
33
+
34
+
35
+	/**
36
+	 * Initialize properties
37
+	 */
38
+	protected function _init_props()
39
+	{
40
+		$this->label = esc_html__('Venue Shortcodes', 'event_espresso');
41
+		$this->description = esc_html__('All shortcodes specific to venue related data', 'event_espresso');
42
+		$this->_shortcodes = array(
43
+			'[VENUE_TITLE]'             => esc_html__('The title for the event venue', 'event_espresso'),
44
+			'[VENUE_DESCRIPTION]'       => esc_html__('The description for the event venue', 'event_espresso'),
45
+			'[VENUE_URL]'               => esc_html__('A url to a webpage for the venue', 'event_espresso'),
46
+			'[VENUE_DETAILS_URL]'       => sprintf(
47
+				esc_html__(
48
+					'This shortcode outputs the url or website address to the venue details page on this website. This differs from %s which outputs what is entered in the "url" field in the venue details page.',
49
+					'event_espresso'
50
+				),
51
+				'[VENUE_URL]'
52
+			),
53
+			'[VENUE_IMAGE]'             => esc_html__('An image representing the event venue', 'event_espresso'),
54
+			'[VENUE_PHONE]'             => esc_html__('The phone number for the venue', 'event_espresso'),
55
+			'[VENUE_ADDRESS]'           => esc_html__('The address for the venue', 'event_espresso'),
56
+			'[VENUE_ADDRESS2]'          => esc_html__('Address 2 for the venue', 'event_espresso'),
57
+			'[VENUE_CITY]'              => esc_html__('The city the venue is in', 'event_espresso'),
58
+			'[VENUE_STATE]'             => esc_html__('The state the venue is located in', 'event_espresso'),
59
+			'[VENUE_COUNTRY]'           => esc_html__('The country the venue is located in', 'event_espresso'),
60
+			'[VENUE_FORMATTED_ADDRESS]' => esc_html__(
61
+				'This just outputs the venue address in a semantic address format.',
62
+				'event_espresso'
63
+			),
64
+			'[VENUE_ZIP]'               => esc_html__('The zip code for the venue address', 'event_espresso'),
65
+			'[VENUE_META_*]'            => esc_html__(
66
+				'This is a special dynamic shortcode. After the "*", add the exact name for your custom field, if there is a value set for that custom field within the venue then it will be output in place of this shortcode.',
67
+				'event_espresso'
68
+			),
69
+			'[GOOGLE_MAP_URL]'          => esc_html__(
70
+				'URL for the google map associated with the venue.',
71
+				'event_espresso'
72
+			),
73
+			'[GOOGLE_MAP_LINK]'         => esc_html__('Link to a google map for the venue', 'event_espresso'),
74
+			'[GOOGLE_MAP_IMAGE]'        => esc_html__('Google map for venue wrapped in image tags', 'event_espresso'),
75
+		);
76
+	}
77
+
78
+
79
+	/**
80
+	 * Parse incoming shortcode
81
+	 *
82
+	 * @param string $shortcode
83
+	 * @return string
84
+	 * @throws EE_Error
85
+	 * @throws EntityNotFoundException
86
+	 */
87
+	protected function _parser($shortcode)
88
+	{
89
+		$this->_venue = $this->_get_venue();
90
+		// If there is no venue object by now then get out.
91
+		if (! $this->_venue instanceof EE_Venue) {
92
+			return '';
93
+		}
94
+
95
+		switch ($shortcode) {
96
+			case '[VENUE_TITLE]':
97
+				return $this->_venue('title');
98
+				break;
99
+
100
+			case '[VENUE_DESCRIPTION]':
101
+				return $this->_venue('description');
102
+				break;
103
+
104
+			case '[VENUE_URL]':
105
+				return $this->_venue('url');
106
+				break;
107
+
108
+			case '[VENUE_IMAGE]':
109
+				return $this->_venue('image');
110
+				break;
111
+
112
+			case '[VENUE_PHONE]':
113
+				return $this->_venue('phone');
114
+				break;
115
+
116
+			case '[VENUE_ADDRESS]':
117
+				return $this->_venue('address');
118
+				break;
119
+
120
+			case '[VENUE_ADDRESS2]':
121
+				return $this->_venue('address2');
122
+				break;
123
+
124
+			case '[VENUE_CITY]':
125
+				return $this->_venue('city');
126
+				break;
127
+
128
+			case '[VENUE_COUNTRY]':
129
+				return $this->_venue('country');
130
+				break;
131
+
132
+			case '[VENUE_STATE]':
133
+				return $this->_venue('state');
134
+				break;
135
+
136
+			case '[VENUE_ZIP]':
137
+				return $this->_venue('zip');
138
+				break;
139
+
140
+			case '[VENUE_FORMATTED_ADDRESS]':
141
+				return $this->_venue('formatted_address');
142
+				break;
143
+
144
+			case '[GOOGLE_MAP_URL]':
145
+				return $this->_venue('gmap_url');
146
+				break;
147
+
148
+			case '[GOOGLE_MAP_LINK]':
149
+				return $this->_venue('gmap_link');
150
+				break;
151
+
152
+			case '[GOOGLE_MAP_IMAGE]':
153
+				return $this->_venue('gmap_link_img');
154
+				break;
155
+
156
+			case '[VENUE_DETAILS_URL]':
157
+				return $this->_venue('permalink');
158
+				break;
159
+		}
160
+
161
+		if (strpos($shortcode, '[VENUE_META_*') !== false) {
162
+			$shortcode = str_replace('[VENUE_META_*', '', $shortcode);
163
+			$shortcode = trim(str_replace(']', '', $shortcode));
164
+
165
+			// pull the meta value from the venue post
166
+			$venue_meta = $this->_venue->get_post_meta($shortcode, true);
167
+
168
+			return ! empty($venue_meta) ? $venue_meta : '';
169
+		}
170
+	}
171
+
172
+	/**
173
+	 * This retrieves the EE_Venue from the available data object.
174
+	 *
175
+	 * @return EE_Venue|null
176
+	 * @throws EE_Error
177
+	 * @throws EntityNotFoundException
178
+	 */
179
+	private function _get_venue()
180
+	{
181
+
182
+		// we need the EE_Event object to get the venue.
183
+		$this->_event = $this->_data instanceof EE_Event ? $this->_data : null;
184
+
185
+		// if no event, then let's see if there is a reg_obj.  If there IS, then we'll try and grab the event from the
186
+		// reg_obj instead.
187
+		if (! $this->_event instanceof EE_Event) {
188
+			$aee = $this->_data instanceof EE_Messages_Addressee ? $this->_data : null;
189
+			$aee = $this->_extra_data instanceof EE_Messages_Addressee ? $this->_extra_data : $aee;
190
+
191
+			$this->_event = $aee instanceof EE_Messages_Addressee && $aee->reg_obj instanceof EE_Registration
192
+				? $aee->reg_obj->event()
193
+				: null;
194
+
195
+			// if still empty do we have a ticket data item?
196
+			$this->_event = ! $this->_event instanceof EE_Event
197
+							&& $this->_data instanceof EE_Ticket
198
+							&& $this->_extra_data['data'] instanceof EE_Messages_Addressee
199
+				? $this->_extra_data['data']->tickets[ $this->_data->ID() ]['EE_Event']
200
+				: $this->_event;
201
+
202
+			// if STILL empty event, let's try to get the first event in the list of events via EE_Messages_Addressee
203
+			// and use that.
204
+			$this->_event = ! $this->_event instanceof EE_Event && $aee instanceof EE_Messages_Addressee
205
+				? reset($aee->events)
206
+				: $this->_event;
207
+		}
208
+
209
+		// If we have an event object use it to pull the venue.
210
+		if ($this->_event instanceof EE_Event) {
211
+			return $this->_event->get_first_related('Venue');
212
+		}
213
+
214
+		return null;
215
+	}
216
+
217
+	/**
218
+	 * This retrieves the specified venue information
219
+	 *
220
+	 * @param string $field What Venue field to retrieve
221
+	 * @return string What was retrieved!
222
+	 * @throws EE_Error
223
+	 * @throws EntityNotFoundException
224
+	 */
225
+	private function _venue($field)
226
+	{
227
+
228
+		if (! $this->_venue instanceof EE_Venue) {
229
+			return '';
230
+		} //no venue so get out.
231
+
232
+		switch ($field) {
233
+			case 'title':
234
+				return $this->_venue->get('VNU_name');
235
+				break;
236
+
237
+			case 'description':
238
+				return $this->_venue->get('VNU_desc');
239
+				break;
240
+
241
+			case 'url':
242
+				$url = $this->_venue->get('VNU_url');
243
+				return empty($url) ? $this->_venue->get_permalink() : $url;
244
+				break;
245
+
246
+			case 'permalink':
247
+				return $this->_venue->get_permalink();
248
+				break;
249
+
250
+			case 'image':
251
+				return '<img src="' . $this->_venue->feature_image_url(array(200, 200,))
252
+					   . '" alt="' . sprintf(
253
+						   esc_attr__('%s Feature Image', 'event_espresso'),
254
+						   $this->_venue->get('VNU_name')
255
+					   ) . '" />';
256
+				break;
257
+
258
+			case 'phone':
259
+				return $this->_venue->get('VNU_phone');
260
+				break;
261
+
262
+			case 'address':
263
+				return $this->_venue->get('VNU_address');
264
+				break;
265
+
266
+			case 'address2':
267
+				return $this->_venue->get('VNU_address2');
268
+				break;
269
+
270
+			case 'city':
271
+				return $this->_venue->get('VNU_city');
272
+				break;
273
+
274
+			case 'state':
275
+				$state = $this->_venue->state_obj();
276
+				return is_object($state) ? $state->get('STA_name') : '';
277
+				break;
278
+
279
+			case 'country':
280
+				$country = $this->_venue->country_obj();
281
+				return is_object($country) ? $country->get('CNT_name') : '';
282
+				break;
283
+
284
+			case 'zip':
285
+				return $this->_venue->get('VNU_zip');
286
+				break;
287
+
288
+			case 'formatted_address':
289
+				return EEH_Address::format($this->_venue);
290
+				break;
291
+
292
+			case 'gmap_link':
293
+			case 'gmap_url':
294
+			case 'gmap_link_img':
295
+				$atts = $this->get_map_attributes($this->_venue, $field);
296
+				return EEH_Maps::google_map_link($atts);
297
+				break;
298
+		}
299
+		return '';
300
+	}
301
+
302
+
303
+	/**
304
+	 * Generates the attributes for retrieving a google_map artifact.
305
+	 *
306
+	 * @param EE_Venue $venue
307
+	 * @param string   $field
308
+	 * @return array
309
+	 * @throws EE_Error
310
+	 */
311
+	protected function get_map_attributes(EE_Venue $venue, $field = 'gmap_link')
312
+	{
313
+		$state = $venue->state_obj();
314
+		$country = $venue->country_obj();
315
+		$atts = array(
316
+			'id'      => $venue->ID(),
317
+			'address' => $venue->get('VNU_address'),
318
+			'city'    => $venue->get('VNU_city'),
319
+			'state'   => is_object($state) ? $state->get('STA_name') : '',
320
+			'zip'     => $venue->get('VNU_zip'),
321
+			'country' => is_object($country) ? $country->get('CNT_name') : '',
322
+			'type'    => $field === 'gmap_link' ? 'url' : 'map',
323
+			'map_w'   => 200,
324
+			'map_h'   => 200,
325
+		);
326
+		if ($field === 'gmap_url') {
327
+			$atts['type'] = 'url_only';
328
+		}
329
+		return $atts;
330
+	}
331 331
 }
Please login to merge, or discard this patch.
Spacing   +7 added lines, -7 removed lines patch added patch discarded remove patch
@@ -88,7 +88,7 @@  discard block
 block discarded – undo
88 88
     {
89 89
         $this->_venue = $this->_get_venue();
90 90
         // If there is no venue object by now then get out.
91
-        if (! $this->_venue instanceof EE_Venue) {
91
+        if ( ! $this->_venue instanceof EE_Venue) {
92 92
             return '';
93 93
         }
94 94
 
@@ -184,7 +184,7 @@  discard block
 block discarded – undo
184 184
 
185 185
         // if no event, then let's see if there is a reg_obj.  If there IS, then we'll try and grab the event from the
186 186
         // reg_obj instead.
187
-        if (! $this->_event instanceof EE_Event) {
187
+        if ( ! $this->_event instanceof EE_Event) {
188 188
             $aee = $this->_data instanceof EE_Messages_Addressee ? $this->_data : null;
189 189
             $aee = $this->_extra_data instanceof EE_Messages_Addressee ? $this->_extra_data : $aee;
190 190
 
@@ -196,7 +196,7 @@  discard block
 block discarded – undo
196 196
             $this->_event = ! $this->_event instanceof EE_Event
197 197
                             && $this->_data instanceof EE_Ticket
198 198
                             && $this->_extra_data['data'] instanceof EE_Messages_Addressee
199
-                ? $this->_extra_data['data']->tickets[ $this->_data->ID() ]['EE_Event']
199
+                ? $this->_extra_data['data']->tickets[$this->_data->ID()]['EE_Event']
200 200
                 : $this->_event;
201 201
 
202 202
             // if STILL empty event, let's try to get the first event in the list of events via EE_Messages_Addressee
@@ -225,7 +225,7 @@  discard block
 block discarded – undo
225 225
     private function _venue($field)
226 226
     {
227 227
 
228
-        if (! $this->_venue instanceof EE_Venue) {
228
+        if ( ! $this->_venue instanceof EE_Venue) {
229 229
             return '';
230 230
         } //no venue so get out.
231 231
 
@@ -248,11 +248,11 @@  discard block
 block discarded – undo
248 248
                 break;
249 249
 
250 250
             case 'image':
251
-                return '<img src="' . $this->_venue->feature_image_url(array(200, 200,))
252
-                       . '" alt="' . sprintf(
251
+                return '<img src="'.$this->_venue->feature_image_url(array(200, 200,))
252
+                       . '" alt="'.sprintf(
253 253
                            esc_attr__('%s Feature Image', 'event_espresso'),
254 254
                            $this->_venue->get('VNU_name')
255
-                       ) . '" />';
255
+                       ).'" />';
256 256
                 break;
257 257
 
258 258
             case 'phone':
Please login to merge, or discard this patch.
core/libraries/form_sections/inputs/EE_Radio_Button_Input.input.php 1 patch
Indentation   +17 added lines, -17 removed lines patch added patch discarded remove patch
@@ -15,22 +15,22 @@
 block discarded – undo
15 15
 class EE_Radio_Button_Input extends EE_Form_Input_With_Options_Base
16 16
 {
17 17
 
18
-    /**
19
-     * @param array $answer_options
20
-     * @param array $input_settings
21
-     */
22
-    public function __construct($answer_options, $input_settings = array())
23
-    {
24
-        $this->_set_display_strategy(new EE_Radio_Button_Display_Strategy());
25
-        $this->_add_validation_strategy(
26
-            new EE_Enum_Validation_Strategy(
27
-                isset($input_settings['validation_error_message'])
28
-                    ? $input_settings['validation_error_message']
29
-                    : null
30
-            )
31
-        );
32
-        $this->_multiple_selections = false;
33
-        parent::__construct($answer_options, $input_settings);
34
-    }
18
+	/**
19
+	 * @param array $answer_options
20
+	 * @param array $input_settings
21
+	 */
22
+	public function __construct($answer_options, $input_settings = array())
23
+	{
24
+		$this->_set_display_strategy(new EE_Radio_Button_Display_Strategy());
25
+		$this->_add_validation_strategy(
26
+			new EE_Enum_Validation_Strategy(
27
+				isset($input_settings['validation_error_message'])
28
+					? $input_settings['validation_error_message']
29
+					: null
30
+			)
31
+		);
32
+		$this->_multiple_selections = false;
33
+		parent::__construct($answer_options, $input_settings);
34
+	}
35 35
 
36 36
 }
Please login to merge, or discard this patch.
core/libraries/form_sections/inputs/EE_Datepicker_Input.php 2 patches
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -29,7 +29,7 @@  discard block
 block discarded – undo
29 29
             )
30 30
         );
31 31
         parent::__construct($input_settings);
32
-        $this->set_html_class($this->html_class() . ' datepicker');
32
+        $this->set_html_class($this->html_class().' datepicker');
33 33
         // add some style and make it dance
34 34
         add_action('wp_enqueue_scripts', array('EE_Datepicker_Input', 'enqueue_styles_and_scripts'));
35 35
         add_action('admin_enqueue_scripts', array('EE_Datepicker_Input', 'enqueue_styles_and_scripts'));
@@ -48,7 +48,7 @@  discard block
 block discarded – undo
48 48
         // load css
49 49
         wp_register_style(
50 50
             'espresso-ui-theme',
51
-            EE_GLOBAL_ASSETS_URL . 'css/espresso-ui-theme/jquery-ui-1.10.3.custom.min.css',
51
+            EE_GLOBAL_ASSETS_URL.'css/espresso-ui-theme/jquery-ui-1.10.3.custom.min.css',
52 52
             array(),
53 53
             EVENT_ESPRESSO_VERSION
54 54
         );
Please login to merge, or discard this patch.
Indentation   +38 added lines, -38 removed lines patch added patch discarded remove patch
@@ -10,45 +10,45 @@
 block discarded – undo
10 10
 class EE_Datepicker_Input extends EE_Form_Input_Base
11 11
 {
12 12
 
13
-    /**
14
-     * @param array $input_settings
15
-     */
16
-    public function __construct($input_settings = array())
17
-    {
18
-        $this->_set_display_strategy(new EE_Text_Input_Display_Strategy('datepicker'));
19
-        $this->_set_normalization_strategy(new EE_Text_Normalization());
20
-        // we could do better for validation, but at least verify its plaintext
21
-        $this->_add_validation_strategy(
22
-            new EE_Plaintext_Validation_Strategy(
23
-                isset($input_settings['validation_error_message'])
24
-                    ? $input_settings['validation_error_message']
25
-                    : null
26
-            )
27
-        );
28
-        parent::__construct($input_settings);
29
-        $this->set_html_class($this->html_class() . ' datepicker');
30
-        // add some style and make it dance
31
-        add_action('wp_enqueue_scripts', array('EE_Datepicker_Input', 'enqueue_styles_and_scripts'));
32
-        add_action('admin_enqueue_scripts', array('EE_Datepicker_Input', 'enqueue_styles_and_scripts'));
33
-    }
13
+	/**
14
+	 * @param array $input_settings
15
+	 */
16
+	public function __construct($input_settings = array())
17
+	{
18
+		$this->_set_display_strategy(new EE_Text_Input_Display_Strategy('datepicker'));
19
+		$this->_set_normalization_strategy(new EE_Text_Normalization());
20
+		// we could do better for validation, but at least verify its plaintext
21
+		$this->_add_validation_strategy(
22
+			new EE_Plaintext_Validation_Strategy(
23
+				isset($input_settings['validation_error_message'])
24
+					? $input_settings['validation_error_message']
25
+					: null
26
+			)
27
+		);
28
+		parent::__construct($input_settings);
29
+		$this->set_html_class($this->html_class() . ' datepicker');
30
+		// add some style and make it dance
31
+		add_action('wp_enqueue_scripts', array('EE_Datepicker_Input', 'enqueue_styles_and_scripts'));
32
+		add_action('admin_enqueue_scripts', array('EE_Datepicker_Input', 'enqueue_styles_and_scripts'));
33
+	}
34 34
 
35 35
 
36 36
 
37
-    /**
38
-     *    enqueue_styles_and_scripts
39
-     *
40
-     * @access        public
41
-     * @return        void
42
-     */
43
-    public static function enqueue_styles_and_scripts()
44
-    {
45
-        // load css
46
-        wp_register_style(
47
-            'espresso-ui-theme',
48
-            EE_GLOBAL_ASSETS_URL . 'css/espresso-ui-theme/jquery-ui-1.10.3.custom.min.css',
49
-            array(),
50
-            EVENT_ESPRESSO_VERSION
51
-        );
52
-        wp_enqueue_style('espresso-ui-theme');
53
-    }
37
+	/**
38
+	 *    enqueue_styles_and_scripts
39
+	 *
40
+	 * @access        public
41
+	 * @return        void
42
+	 */
43
+	public static function enqueue_styles_and_scripts()
44
+	{
45
+		// load css
46
+		wp_register_style(
47
+			'espresso-ui-theme',
48
+			EE_GLOBAL_ASSETS_URL . 'css/espresso-ui-theme/jquery-ui-1.10.3.custom.min.css',
49
+			array(),
50
+			EVENT_ESPRESSO_VERSION
51
+		);
52
+		wp_enqueue_style('espresso-ui-theme');
53
+	}
54 54
 }
Please login to merge, or discard this patch.
public/Espresso_Arabica_2014/loop-espresso_event_attendees.php 3 patches
Indentation   +18 added lines, -18 removed lines patch added patch discarded remove patch
@@ -22,15 +22,15 @@  discard block
 block discarded – undo
22 22
 
23 23
 <div class="event-attendees">
24 24
     <?php do_action_ref_array(
25
-        'AHEE__loop-espresso_event_attendees__before',
26
-        array(
27
-            $contacts,
28
-            $event,
29
-            $datetime,
30
-            $ticket,
31
-            $show_gravatar,
32
-        )
33
-    ); ?>
25
+		'AHEE__loop-espresso_event_attendees__before',
26
+		array(
27
+			$contacts,
28
+			$event,
29
+			$datetime,
30
+			$ticket,
31
+			$show_gravatar,
32
+		)
33
+	); ?>
34 34
 	<?php if ( $contacts ) : ?>
35 35
 		<ul class="event-attendees-list">
36 36
 			<?php foreach( $contacts as $contact ) :
@@ -47,13 +47,13 @@  discard block
 block discarded – undo
47 47
 		<p><?php echo $no_attendees_message; ?></p>
48 48
 	<?php endif; ?>
49 49
     <?php do_action_ref_array(
50
-        'AHEE__loop-espresso_event_attendees__after',
51
-        array(
52
-            $contacts,
53
-            $event,
54
-            $datetime,
55
-            $ticket,
56
-            $show_gravatar,
57
-        )
58
-    ); ?>
50
+		'AHEE__loop-espresso_event_attendees__after',
51
+		array(
52
+			$contacts,
53
+			$event,
54
+			$datetime,
55
+			$ticket,
56
+			$show_gravatar,
57
+		)
58
+	); ?>
59 59
 </div>
60 60
\ No newline at end of file
Please login to merge, or discard this patch.
Spacing   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -15,7 +15,7 @@  discard block
 block discarded – undo
15 15
  * @type bool       $show_gravatar  whether to show gravatar or not.
16 16
  */
17 17
 
18
-$no_attendees_message =  apply_filters( 'FHEE__loop-espresso_attendees-shortcode__template__no_attendees_message', __('No Attendees Yet', 'event_espresso' ) );
18
+$no_attendees_message = apply_filters('FHEE__loop-espresso_attendees-shortcode__template__no_attendees_message', __('No Attendees Yet', 'event_espresso'));
19 19
 
20 20
 
21 21
 ?>
@@ -31,16 +31,16 @@  discard block
 block discarded – undo
31 31
             $show_gravatar,
32 32
         )
33 33
     ); ?>
34
-	<?php if ( $contacts ) : ?>
34
+	<?php if ($contacts) : ?>
35 35
 		<ul class="event-attendees-list">
36
-			<?php foreach( $contacts as $contact ) :
37
-				EEH_Template::get_template_part( 'content', 'espresso_event_attendees', array( 
36
+			<?php foreach ($contacts as $contact) :
37
+				EEH_Template::get_template_part('content', 'espresso_event_attendees', array( 
38 38
 					'contact'       => $contact, 
39 39
 					'event'         => $event,
40 40
 					'datetime'      => $datetime,
41 41
 					'ticket'        => $ticket,
42 42
 					'show_gravatar' => $show_gravatar 
43
-				) );
43
+				));
44 44
 				endforeach; ?>
45 45
 		</ul>
46 46
 	<?php else : ?>
Please login to merge, or discard this patch.
Braces   +5 added lines, -2 removed lines patch added patch discarded remove patch
@@ -43,8 +43,11 @@
 block discarded – undo
43 43
 				) );
44 44
 				endforeach; ?>
45 45
 		</ul>
46
-	<?php else : ?>
47
-		<p><?php echo $no_attendees_message; ?></p>
46
+	<?php else {
47
+	: ?>
48
+		<p><?php echo $no_attendees_message;
49
+}
50
+?></p>
48 51
 	<?php endif; ?>
49 52
     <?php do_action_ref_array(
50 53
         'AHEE__loop-espresso_event_attendees__after',
Please login to merge, or discard this patch.
core/business/EE_Registration_Processor.class.php 3 patches
Doc Comments   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -734,7 +734,7 @@
 block discarded – undo
734 734
      * @since 4.9.1
735 735
      * @param int                   $att_nmbr
736 736
      * @param EE_Line_Item | string $item
737
-     * @return string
737
+     * @return RegUrlLink
738 738
      * @throws InvalidArgumentException
739 739
      */
740 740
     public function generate_reg_url_link($att_nmbr, $item)
Please login to merge, or discard this patch.
Indentation   +766 added lines, -766 removed lines patch added patch discarded remove patch
@@ -24,771 +24,771 @@
 block discarded – undo
24 24
 class EE_Registration_Processor extends EE_Processor_Base
25 25
 {
26 26
 
27
-    /**
28
-     * @var EE_Registration_Processor $_instance
29
-     * @access    private
30
-     */
31
-    private static $_instance;
32
-
33
-    /**
34
-     * initial reg status at the beginning of this request.
35
-     * indexed by registration ID
36
-     *
37
-     * @var array
38
-     */
39
-    protected $_old_reg_status = array();
40
-
41
-    /**
42
-     * reg status at the end of the request after all processing.
43
-     * indexed by registration ID
44
-     *
45
-     * @var array
46
-     */
47
-    protected $_new_reg_status = array();
48
-
49
-    /**
50
-     * amounts paid at the end of the request after all processing.
51
-     * indexed by registration ID
52
-     *
53
-     * @var array
54
-     */
55
-    protected static $_amount_paid = array();
56
-
57
-    /**
58
-     * Cache of the reg final price for registrations corresponding to a ticket line item
59
-     *
60
-     * @deprecated
61
-     * @var array @see EEH_Line_Item::calculate_reg_final_prices_per_line_item()'s return value
62
-     */
63
-    protected $_reg_final_price_per_tkt_line_item;
64
-
65
-    /**
66
-     * @var EE_Request $request
67
-     */
68
-    protected $request;
69
-
70
-
71
-    /**
72
-     * @singleton method used to instantiate class object
73
-     * @param EE_Request|null $request
74
-     * @return EE_Registration_Processor instance
75
-     * @throws \InvalidArgumentException
76
-     * @throws \EventEspresso\core\exceptions\InvalidInterfaceException
77
-     * @throws \EventEspresso\core\exceptions\InvalidDataTypeException
78
-     */
79
-    public static function instance(EE_Request $request = null)
80
-    {
81
-        // check if class object is instantiated
82
-        if (! self::$_instance instanceof EE_Registration_Processor) {
83
-            if (! $request instanceof EE_Request) {
84
-                $request = LoaderFactory::getLoader()->getShared('EE_Request');
85
-            }
86
-            self::$_instance = new self($request);
87
-        }
88
-        return self::$_instance;
89
-    }
90
-
91
-
92
-    /**
93
-     * EE_Registration_Processor constructor.
94
-     *
95
-     * @param EE_Request $request
96
-     */
97
-    public function __construct(EE_Request $request)
98
-    {
99
-        $this->request = $request;
100
-    }
101
-
102
-
103
-    /**
104
-     * @param int $REG_ID
105
-     * @return string
106
-     */
107
-    public function old_reg_status($REG_ID)
108
-    {
109
-        return isset($this->_old_reg_status[ $REG_ID ]) ? $this->_old_reg_status[ $REG_ID ] : null;
110
-    }
111
-
112
-
113
-    /**
114
-     * @param int    $REG_ID
115
-     * @param string $old_reg_status
116
-     */
117
-    public function set_old_reg_status($REG_ID, $old_reg_status)
118
-    {
119
-        // only set the first time
120
-        if (! isset($this->_old_reg_status[ $REG_ID ])) {
121
-            $this->_old_reg_status[ $REG_ID ] = $old_reg_status;
122
-        }
123
-    }
124
-
125
-
126
-    /**
127
-     * @param int $REG_ID
128
-     * @return string
129
-     */
130
-    public function new_reg_status($REG_ID)
131
-    {
132
-        return isset($this->_new_reg_status[ $REG_ID ]) ? $this->_new_reg_status[ $REG_ID ] : null;
133
-    }
134
-
135
-
136
-    /**
137
-     * @param int    $REG_ID
138
-     * @param string $new_reg_status
139
-     */
140
-    public function set_new_reg_status($REG_ID, $new_reg_status)
141
-    {
142
-        $this->_new_reg_status[ $REG_ID ] = $new_reg_status;
143
-    }
144
-
145
-
146
-    /**
147
-     * reg_status_updated
148
-     *
149
-     * @param int $REG_ID
150
-     * @return bool
151
-     */
152
-    public function reg_status_updated($REG_ID)
153
-    {
154
-        return $this->new_reg_status($REG_ID) !== $this->old_reg_status($REG_ID);
155
-    }
156
-
157
-
158
-    /**
159
-     * @param EE_Registration $registration
160
-     * @throws EE_Error
161
-     * @throws EntityNotFoundException
162
-     * @throws InvalidArgumentException
163
-     * @throws InvalidDataTypeException
164
-     * @throws InvalidInterfaceException
165
-     * @throws ReflectionException
166
-     * @throws RuntimeException
167
-     */
168
-    public function update_registration_status_and_trigger_notifications(EE_Registration $registration)
169
-    {
170
-        $this->toggle_incomplete_registration_status_to_default($registration, false);
171
-        $this->toggle_registration_status_for_default_approved_events($registration, false);
172
-        $this->toggle_registration_status_if_no_monies_owing($registration, false);
173
-        $registration->save();
174
-        // trigger notifications
175
-        $this->trigger_registration_update_notifications($registration);
176
-    }
177
-
178
-
179
-    /**
180
-     *    manually_update_registration_status
181
-     *
182
-     * @access public
183
-     * @param EE_Registration $registration
184
-     * @param string          $new_reg_status
185
-     * @param bool            $save TRUE will save the registration if the status is updated, FALSE will leave that up
186
-     *                              to client code
187
-     * @return bool
188
-     * @throws EE_Error
189
-     * @throws EntityNotFoundException
190
-     * @throws InvalidArgumentException
191
-     * @throws InvalidDataTypeException
192
-     * @throws InvalidInterfaceException
193
-     * @throws ReflectionException
194
-     * @throws RuntimeException
195
-     */
196
-    public function manually_update_registration_status(
197
-        EE_Registration $registration,
198
-        $new_reg_status = '',
199
-        $save = true
200
-    ) {
201
-        // set initial REG_Status
202
-        $this->set_old_reg_status($registration->ID(), $registration->status_ID());
203
-        // set incoming REG_Status
204
-        $this->set_new_reg_status($registration->ID(), $new_reg_status);
205
-        // toggle reg status but only if it has changed and the user can do so
206
-        if (
207
-            $this->reg_status_updated($registration->ID())
208
-            && (
209
-                (! $this->request->isAdmin() || $this->request->isFrontAjax())
210
-                || EE_Registry::instance()->CAP->current_user_can(
211
-                    'ee_edit_registration',
212
-                    'toggle_registration_status',
213
-                    $registration->ID()
214
-                )
215
-            )
216
-        ) {
217
-            // change status to new value
218
-            $updated = $registration->set_status($this->new_reg_status($registration->ID()));
219
-            if ($updated && $save) {
220
-                $registration->save();
221
-            }
222
-            return true;
223
-        }
224
-        return false;
225
-    }
226
-
227
-
228
-    /**
229
-     *    toggle_incomplete_registration_status_to_default
230
-     *        changes any incomplete registrations to either the event or global default registration status
231
-     *
232
-     * @access public
233
-     * @param EE_Registration       $registration
234
-     * @param bool                  $save TRUE will save the registration if the status is updated, FALSE will leave
235
-     *                                    that up to client code
236
-     * @param ContextInterface|null $context
237
-     * @return void
238
-     * @throws EE_Error
239
-     * @throws InvalidArgumentException
240
-     * @throws ReflectionException
241
-     * @throws RuntimeException
242
-     * @throws EntityNotFoundException
243
-     * @throws InvalidDataTypeException
244
-     * @throws InvalidInterfaceException
245
-     */
246
-    public function toggle_incomplete_registration_status_to_default(
247
-        EE_Registration $registration,
248
-        $save = true,
249
-        ContextInterface $context = null
250
-    ) {
251
-        $existing_reg_status = $registration->status_ID();
252
-        // set initial REG_Status
253
-        $this->set_old_reg_status($registration->ID(), $existing_reg_status);
254
-        // is the registration currently incomplete ?
255
-        if ($registration->status_ID() === EEM_Registration::status_id_incomplete) {
256
-            // grab default reg status for the event, if set
257
-            $event_default_registration_status = $registration->event()->default_registration_status();
258
-            // if no default reg status is set for the event, then use the global value
259
-            $STS_ID = ! empty($event_default_registration_status)
260
-                ? $event_default_registration_status
261
-                : EE_Registry::instance()->CFG->registration->default_STS_ID;
262
-            // if the event default reg status is approved, then downgrade temporarily to payment pending to ensure that payments are triggered
263
-            $STS_ID = $STS_ID === EEM_Registration::status_id_approved ? EEM_Registration::status_id_pending_payment
264
-                : $STS_ID;
265
-            // set incoming REG_Status
266
-            $this->set_new_reg_status($registration->ID(), $STS_ID);
267
-            $registration->set_status($STS_ID, false, $context);
268
-            if ($save) {
269
-                $registration->save();
270
-            }
271
-            // don't trigger notifications during IPNs because they will get triggered by EE_Payment_Processor
272
-            if (! EE_Processor_Base::$IPN) {
273
-                // otherwise, send out notifications
274
-                add_filter('FHEE__EED_Messages___maybe_registration__deliver_notifications', '__return_true', 10);
275
-            }
276
-            // DEBUG LOG
277
-            // $this->log(
278
-            //     __CLASS__,
279
-            //     __FUNCTION__,
280
-            //     __LINE__,
281
-            //     $registration->transaction(),
282
-            //     array(
283
-            //         'IPN' => EE_Processor_Base::$IPN,
284
-            //         'deliver_notifications' => has_filter(
285
-            //             'FHEE__EED_Messages___maybe_registration__deliver_notifications'
286
-            //         ),
287
-            //     )
288
-            // );
289
-        }
290
-    }
291
-
292
-
293
-    /**
294
-     *    toggle_registration_status_for_default_approved_events
295
-     *
296
-     * @access public
297
-     * @param EE_Registration $registration
298
-     * @param bool            $save TRUE will save the registration if the status is updated, FALSE will leave that up
299
-     *                              to client code
300
-     * @return bool
301
-     * @throws EE_Error
302
-     * @throws EntityNotFoundException
303
-     * @throws InvalidArgumentException
304
-     * @throws InvalidDataTypeException
305
-     * @throws InvalidInterfaceException
306
-     * @throws ReflectionException
307
-     * @throws RuntimeException
308
-     */
309
-    public function toggle_registration_status_for_default_approved_events(EE_Registration $registration, $save = true)
310
-    {
311
-        $reg_status = $registration->status_ID();
312
-        // set initial REG_Status
313
-        $this->set_old_reg_status($registration->ID(), $reg_status);
314
-        // if not already, toggle reg status to approved IF the event default reg status is approved
315
-        // ( as long as the registration wasn't cancelled or declined at some point )
316
-        if (
317
-            $reg_status !== EEM_Registration::status_id_cancelled
318
-            && $reg_status
319
-               !== EEM_Registration::status_id_declined
320
-            && $reg_status !== EEM_Registration::status_id_approved
321
-            && $registration->event()->default_registration_status() === EEM_Registration::status_id_approved
322
-        ) {
323
-            // set incoming REG_Status
324
-            $this->set_new_reg_status($registration->ID(), EEM_Registration::status_id_approved);
325
-            // toggle status to approved
326
-            $registration->set_status(EEM_Registration::status_id_approved);
327
-            if ($save) {
328
-                $registration->save();
329
-            }
330
-            // don't trigger notifications during IPNs because they will get triggered by EE_Payment_Processor
331
-            if (! EE_Processor_Base::$IPN) {
332
-                // otherwise, send out notifications
333
-                add_filter('FHEE__EED_Messages___maybe_registration__deliver_notifications', '__return_true', 10);
334
-            }
335
-            // DEBUG LOG
336
-            // $this->log(
337
-            //     __CLASS__,
338
-            //     __FUNCTION__,
339
-            //     __LINE__,
340
-            //     $registration->transaction(),
341
-            //     array(
342
-            //         'IPN' => EE_Processor_Base::$IPN,
343
-            //         'deliver_notifications' => has_filter(
344
-            //             'FHEE__EED_Messages___maybe_registration__deliver_notifications'
345
-            //         ),
346
-            //     )
347
-            // );
348
-            return true;
349
-        }
350
-        return false;
351
-    }
352
-
353
-
354
-    /**
355
-     *    toggle_registration_statuses_if_no_monies_owing
356
-     *
357
-     * @access public
358
-     * @param EE_Registration $registration
359
-     * @param bool            $save TRUE will save the registration if the status is updated, FALSE will leave that up
360
-     *                              to client code
361
-     * @param array           $additional_details
362
-     * @return bool
363
-     * @throws EE_Error
364
-     * @throws EntityNotFoundException
365
-     * @throws InvalidArgumentException
366
-     * @throws InvalidDataTypeException
367
-     * @throws InvalidInterfaceException
368
-     * @throws ReflectionException
369
-     * @throws RuntimeException
370
-     */
371
-    public function toggle_registration_status_if_no_monies_owing(
372
-        EE_Registration $registration,
373
-        $save = true,
374
-        array $additional_details = array()
375
-    ) {
376
-        // set initial REG_Status
377
-        $this->set_old_reg_status($registration->ID(), $registration->status_ID());
378
-        // was a payment just made ?
379
-        $payment = isset($additional_details['payment_updates'], $additional_details['last_payment'])
380
-                   && $additional_details['payment_updates']
381
-                   && $additional_details['last_payment'] instanceof EE_Payment
382
-            ? $additional_details['last_payment']
383
-            : null;
384
-        $total_paid = array_sum(self::$_amount_paid);
385
-        // toggle reg status to approved IF
386
-        if (
27
+	/**
28
+	 * @var EE_Registration_Processor $_instance
29
+	 * @access    private
30
+	 */
31
+	private static $_instance;
32
+
33
+	/**
34
+	 * initial reg status at the beginning of this request.
35
+	 * indexed by registration ID
36
+	 *
37
+	 * @var array
38
+	 */
39
+	protected $_old_reg_status = array();
40
+
41
+	/**
42
+	 * reg status at the end of the request after all processing.
43
+	 * indexed by registration ID
44
+	 *
45
+	 * @var array
46
+	 */
47
+	protected $_new_reg_status = array();
48
+
49
+	/**
50
+	 * amounts paid at the end of the request after all processing.
51
+	 * indexed by registration ID
52
+	 *
53
+	 * @var array
54
+	 */
55
+	protected static $_amount_paid = array();
56
+
57
+	/**
58
+	 * Cache of the reg final price for registrations corresponding to a ticket line item
59
+	 *
60
+	 * @deprecated
61
+	 * @var array @see EEH_Line_Item::calculate_reg_final_prices_per_line_item()'s return value
62
+	 */
63
+	protected $_reg_final_price_per_tkt_line_item;
64
+
65
+	/**
66
+	 * @var EE_Request $request
67
+	 */
68
+	protected $request;
69
+
70
+
71
+	/**
72
+	 * @singleton method used to instantiate class object
73
+	 * @param EE_Request|null $request
74
+	 * @return EE_Registration_Processor instance
75
+	 * @throws \InvalidArgumentException
76
+	 * @throws \EventEspresso\core\exceptions\InvalidInterfaceException
77
+	 * @throws \EventEspresso\core\exceptions\InvalidDataTypeException
78
+	 */
79
+	public static function instance(EE_Request $request = null)
80
+	{
81
+		// check if class object is instantiated
82
+		if (! self::$_instance instanceof EE_Registration_Processor) {
83
+			if (! $request instanceof EE_Request) {
84
+				$request = LoaderFactory::getLoader()->getShared('EE_Request');
85
+			}
86
+			self::$_instance = new self($request);
87
+		}
88
+		return self::$_instance;
89
+	}
90
+
91
+
92
+	/**
93
+	 * EE_Registration_Processor constructor.
94
+	 *
95
+	 * @param EE_Request $request
96
+	 */
97
+	public function __construct(EE_Request $request)
98
+	{
99
+		$this->request = $request;
100
+	}
101
+
102
+
103
+	/**
104
+	 * @param int $REG_ID
105
+	 * @return string
106
+	 */
107
+	public function old_reg_status($REG_ID)
108
+	{
109
+		return isset($this->_old_reg_status[ $REG_ID ]) ? $this->_old_reg_status[ $REG_ID ] : null;
110
+	}
111
+
112
+
113
+	/**
114
+	 * @param int    $REG_ID
115
+	 * @param string $old_reg_status
116
+	 */
117
+	public function set_old_reg_status($REG_ID, $old_reg_status)
118
+	{
119
+		// only set the first time
120
+		if (! isset($this->_old_reg_status[ $REG_ID ])) {
121
+			$this->_old_reg_status[ $REG_ID ] = $old_reg_status;
122
+		}
123
+	}
124
+
125
+
126
+	/**
127
+	 * @param int $REG_ID
128
+	 * @return string
129
+	 */
130
+	public function new_reg_status($REG_ID)
131
+	{
132
+		return isset($this->_new_reg_status[ $REG_ID ]) ? $this->_new_reg_status[ $REG_ID ] : null;
133
+	}
134
+
135
+
136
+	/**
137
+	 * @param int    $REG_ID
138
+	 * @param string $new_reg_status
139
+	 */
140
+	public function set_new_reg_status($REG_ID, $new_reg_status)
141
+	{
142
+		$this->_new_reg_status[ $REG_ID ] = $new_reg_status;
143
+	}
144
+
145
+
146
+	/**
147
+	 * reg_status_updated
148
+	 *
149
+	 * @param int $REG_ID
150
+	 * @return bool
151
+	 */
152
+	public function reg_status_updated($REG_ID)
153
+	{
154
+		return $this->new_reg_status($REG_ID) !== $this->old_reg_status($REG_ID);
155
+	}
156
+
157
+
158
+	/**
159
+	 * @param EE_Registration $registration
160
+	 * @throws EE_Error
161
+	 * @throws EntityNotFoundException
162
+	 * @throws InvalidArgumentException
163
+	 * @throws InvalidDataTypeException
164
+	 * @throws InvalidInterfaceException
165
+	 * @throws ReflectionException
166
+	 * @throws RuntimeException
167
+	 */
168
+	public function update_registration_status_and_trigger_notifications(EE_Registration $registration)
169
+	{
170
+		$this->toggle_incomplete_registration_status_to_default($registration, false);
171
+		$this->toggle_registration_status_for_default_approved_events($registration, false);
172
+		$this->toggle_registration_status_if_no_monies_owing($registration, false);
173
+		$registration->save();
174
+		// trigger notifications
175
+		$this->trigger_registration_update_notifications($registration);
176
+	}
177
+
178
+
179
+	/**
180
+	 *    manually_update_registration_status
181
+	 *
182
+	 * @access public
183
+	 * @param EE_Registration $registration
184
+	 * @param string          $new_reg_status
185
+	 * @param bool            $save TRUE will save the registration if the status is updated, FALSE will leave that up
186
+	 *                              to client code
187
+	 * @return bool
188
+	 * @throws EE_Error
189
+	 * @throws EntityNotFoundException
190
+	 * @throws InvalidArgumentException
191
+	 * @throws InvalidDataTypeException
192
+	 * @throws InvalidInterfaceException
193
+	 * @throws ReflectionException
194
+	 * @throws RuntimeException
195
+	 */
196
+	public function manually_update_registration_status(
197
+		EE_Registration $registration,
198
+		$new_reg_status = '',
199
+		$save = true
200
+	) {
201
+		// set initial REG_Status
202
+		$this->set_old_reg_status($registration->ID(), $registration->status_ID());
203
+		// set incoming REG_Status
204
+		$this->set_new_reg_status($registration->ID(), $new_reg_status);
205
+		// toggle reg status but only if it has changed and the user can do so
206
+		if (
207
+			$this->reg_status_updated($registration->ID())
208
+			&& (
209
+				(! $this->request->isAdmin() || $this->request->isFrontAjax())
210
+				|| EE_Registry::instance()->CAP->current_user_can(
211
+					'ee_edit_registration',
212
+					'toggle_registration_status',
213
+					$registration->ID()
214
+				)
215
+			)
216
+		) {
217
+			// change status to new value
218
+			$updated = $registration->set_status($this->new_reg_status($registration->ID()));
219
+			if ($updated && $save) {
220
+				$registration->save();
221
+			}
222
+			return true;
223
+		}
224
+		return false;
225
+	}
226
+
227
+
228
+	/**
229
+	 *    toggle_incomplete_registration_status_to_default
230
+	 *        changes any incomplete registrations to either the event or global default registration status
231
+	 *
232
+	 * @access public
233
+	 * @param EE_Registration       $registration
234
+	 * @param bool                  $save TRUE will save the registration if the status is updated, FALSE will leave
235
+	 *                                    that up to client code
236
+	 * @param ContextInterface|null $context
237
+	 * @return void
238
+	 * @throws EE_Error
239
+	 * @throws InvalidArgumentException
240
+	 * @throws ReflectionException
241
+	 * @throws RuntimeException
242
+	 * @throws EntityNotFoundException
243
+	 * @throws InvalidDataTypeException
244
+	 * @throws InvalidInterfaceException
245
+	 */
246
+	public function toggle_incomplete_registration_status_to_default(
247
+		EE_Registration $registration,
248
+		$save = true,
249
+		ContextInterface $context = null
250
+	) {
251
+		$existing_reg_status = $registration->status_ID();
252
+		// set initial REG_Status
253
+		$this->set_old_reg_status($registration->ID(), $existing_reg_status);
254
+		// is the registration currently incomplete ?
255
+		if ($registration->status_ID() === EEM_Registration::status_id_incomplete) {
256
+			// grab default reg status for the event, if set
257
+			$event_default_registration_status = $registration->event()->default_registration_status();
258
+			// if no default reg status is set for the event, then use the global value
259
+			$STS_ID = ! empty($event_default_registration_status)
260
+				? $event_default_registration_status
261
+				: EE_Registry::instance()->CFG->registration->default_STS_ID;
262
+			// if the event default reg status is approved, then downgrade temporarily to payment pending to ensure that payments are triggered
263
+			$STS_ID = $STS_ID === EEM_Registration::status_id_approved ? EEM_Registration::status_id_pending_payment
264
+				: $STS_ID;
265
+			// set incoming REG_Status
266
+			$this->set_new_reg_status($registration->ID(), $STS_ID);
267
+			$registration->set_status($STS_ID, false, $context);
268
+			if ($save) {
269
+				$registration->save();
270
+			}
271
+			// don't trigger notifications during IPNs because they will get triggered by EE_Payment_Processor
272
+			if (! EE_Processor_Base::$IPN) {
273
+				// otherwise, send out notifications
274
+				add_filter('FHEE__EED_Messages___maybe_registration__deliver_notifications', '__return_true', 10);
275
+			}
276
+			// DEBUG LOG
277
+			// $this->log(
278
+			//     __CLASS__,
279
+			//     __FUNCTION__,
280
+			//     __LINE__,
281
+			//     $registration->transaction(),
282
+			//     array(
283
+			//         'IPN' => EE_Processor_Base::$IPN,
284
+			//         'deliver_notifications' => has_filter(
285
+			//             'FHEE__EED_Messages___maybe_registration__deliver_notifications'
286
+			//         ),
287
+			//     )
288
+			// );
289
+		}
290
+	}
291
+
292
+
293
+	/**
294
+	 *    toggle_registration_status_for_default_approved_events
295
+	 *
296
+	 * @access public
297
+	 * @param EE_Registration $registration
298
+	 * @param bool            $save TRUE will save the registration if the status is updated, FALSE will leave that up
299
+	 *                              to client code
300
+	 * @return bool
301
+	 * @throws EE_Error
302
+	 * @throws EntityNotFoundException
303
+	 * @throws InvalidArgumentException
304
+	 * @throws InvalidDataTypeException
305
+	 * @throws InvalidInterfaceException
306
+	 * @throws ReflectionException
307
+	 * @throws RuntimeException
308
+	 */
309
+	public function toggle_registration_status_for_default_approved_events(EE_Registration $registration, $save = true)
310
+	{
311
+		$reg_status = $registration->status_ID();
312
+		// set initial REG_Status
313
+		$this->set_old_reg_status($registration->ID(), $reg_status);
314
+		// if not already, toggle reg status to approved IF the event default reg status is approved
315
+		// ( as long as the registration wasn't cancelled or declined at some point )
316
+		if (
317
+			$reg_status !== EEM_Registration::status_id_cancelled
318
+			&& $reg_status
319
+			   !== EEM_Registration::status_id_declined
320
+			&& $reg_status !== EEM_Registration::status_id_approved
321
+			&& $registration->event()->default_registration_status() === EEM_Registration::status_id_approved
322
+		) {
323
+			// set incoming REG_Status
324
+			$this->set_new_reg_status($registration->ID(), EEM_Registration::status_id_approved);
325
+			// toggle status to approved
326
+			$registration->set_status(EEM_Registration::status_id_approved);
327
+			if ($save) {
328
+				$registration->save();
329
+			}
330
+			// don't trigger notifications during IPNs because they will get triggered by EE_Payment_Processor
331
+			if (! EE_Processor_Base::$IPN) {
332
+				// otherwise, send out notifications
333
+				add_filter('FHEE__EED_Messages___maybe_registration__deliver_notifications', '__return_true', 10);
334
+			}
335
+			// DEBUG LOG
336
+			// $this->log(
337
+			//     __CLASS__,
338
+			//     __FUNCTION__,
339
+			//     __LINE__,
340
+			//     $registration->transaction(),
341
+			//     array(
342
+			//         'IPN' => EE_Processor_Base::$IPN,
343
+			//         'deliver_notifications' => has_filter(
344
+			//             'FHEE__EED_Messages___maybe_registration__deliver_notifications'
345
+			//         ),
346
+			//     )
347
+			// );
348
+			return true;
349
+		}
350
+		return false;
351
+	}
352
+
353
+
354
+	/**
355
+	 *    toggle_registration_statuses_if_no_monies_owing
356
+	 *
357
+	 * @access public
358
+	 * @param EE_Registration $registration
359
+	 * @param bool            $save TRUE will save the registration if the status is updated, FALSE will leave that up
360
+	 *                              to client code
361
+	 * @param array           $additional_details
362
+	 * @return bool
363
+	 * @throws EE_Error
364
+	 * @throws EntityNotFoundException
365
+	 * @throws InvalidArgumentException
366
+	 * @throws InvalidDataTypeException
367
+	 * @throws InvalidInterfaceException
368
+	 * @throws ReflectionException
369
+	 * @throws RuntimeException
370
+	 */
371
+	public function toggle_registration_status_if_no_monies_owing(
372
+		EE_Registration $registration,
373
+		$save = true,
374
+		array $additional_details = array()
375
+	) {
376
+		// set initial REG_Status
377
+		$this->set_old_reg_status($registration->ID(), $registration->status_ID());
378
+		// was a payment just made ?
379
+		$payment = isset($additional_details['payment_updates'], $additional_details['last_payment'])
380
+				   && $additional_details['payment_updates']
381
+				   && $additional_details['last_payment'] instanceof EE_Payment
382
+			? $additional_details['last_payment']
383
+			: null;
384
+		$total_paid = array_sum(self::$_amount_paid);
385
+		// toggle reg status to approved IF
386
+		if (
387 387
 // REG status is pending payment
388
-            $registration->status_ID() === EEM_Registration::status_id_pending_payment
389
-            // AND no monies are owing
390
-            && (
391
-                (
392
-                    $registration->transaction()->is_completed()
393
-                    || $registration->transaction()->is_overpaid()
394
-                    || $registration->transaction()->is_free()
395
-                    || apply_filters(
396
-                        'FHEE__EE_Registration_Processor__toggle_registration_status_if_no_monies_owing',
397
-                        false,
398
-                        $registration
399
-                    )
400
-                )
401
-                || (
402
-                    $payment instanceof EE_Payment && $payment->is_approved()
403
-                    && // this specific registration has not yet been paid for
404
-                    ! isset(self::$_amount_paid[ $registration->ID() ])
405
-                    && // payment amount, less what we have already attributed to other registrations, is greater than this reg's final price
406
-                    $payment->amount() - $total_paid >= $registration->final_price()
407
-                )
408
-            )
409
-        ) {
410
-            // mark as paid
411
-            self::$_amount_paid[ $registration->ID() ] = $registration->final_price();
412
-            // track new REG_Status
413
-            $this->set_new_reg_status($registration->ID(), EEM_Registration::status_id_approved);
414
-            // toggle status to approved
415
-            $registration->set_status(EEM_Registration::status_id_approved);
416
-            if ($save) {
417
-                $registration->save();
418
-            }
419
-            // don't trigger notifications during IPNs because they will get triggered by EE_Payment_Processor
420
-            if (! EE_Processor_Base::$IPN) {
421
-                // otherwise, send out notifications
422
-                add_filter('FHEE__EED_Messages___maybe_registration__deliver_notifications', '__return_true', 10);
423
-            }
424
-            // DEBUG LOG
425
-            // $this->log(
426
-            //     __CLASS__,
427
-            //     __FUNCTION__,
428
-            //     __LINE__,
429
-            //     $registration->transaction(),
430
-            //     array(
431
-            //         'IPN' => EE_Processor_Base::$IPN,
432
-            //         'deliver_notifications' => has_filter(
433
-            //             'FHEE__EED_Messages___maybe_registration__deliver_notifications'
434
-            //         ),
435
-            //     )
436
-            // );
437
-            return true;
438
-        }
439
-        return false;
440
-    }
441
-
442
-
443
-    /**
444
-     *    registration_status_changed
445
-     *
446
-     * @access public
447
-     * @param EE_Registration $registration
448
-     * @param array           $additional_details
449
-     * @return void
450
-     */
451
-    public function trigger_registration_update_notifications($registration, array $additional_details = array())
452
-    {
453
-        try {
454
-            if (! $registration instanceof EE_Registration) {
455
-                throw new EE_Error(
456
-                    esc_html__('An invalid registration was received.', 'event_espresso')
457
-                );
458
-            }
459
-            // EE_Registry::instance()->load_helper('Debug_Tools');
460
-            // EEH_Debug_Tools::log(
461
-            //     __CLASS__,
462
-            //     __FUNCTION__,
463
-            //     __LINE__,
464
-            //     array($registration->transaction(), $additional_details),
465
-            //     false,
466
-            //     'EE_Transaction: ' . $registration->transaction()->ID()
467
-            // );
468
-            if (! $registration->is_primary_registrant()) {
469
-                return;
470
-            }
471
-            do_action(
472
-                'AHEE__EE_Registration_Processor__trigger_registration_update_notifications',
473
-                $registration,
474
-                $additional_details
475
-            );
476
-        } catch (Exception $e) {
477
-            EE_Error::add_error($e->getMessage(), $e->getFile(), 'unknown_function_from_exception', $e->getLine());
478
-        }
479
-    }
480
-
481
-
482
-    /**
483
-     * sets reg status based either on passed param or on transaction status and event pre-approval setting
484
-     *
485
-     * @param EE_Registration $registration
486
-     * @param array           $additional_details
487
-     * @return bool
488
-     * @throws EE_Error
489
-     * @throws EntityNotFoundException
490
-     * @throws InvalidArgumentException
491
-     * @throws InvalidDataTypeException
492
-     * @throws InvalidInterfaceException
493
-     * @throws ReflectionException
494
-     * @throws RuntimeException
495
-     */
496
-    public function update_registration_after_checkout_or_payment(
497
-        EE_Registration $registration,
498
-        array $additional_details = array()
499
-    ) {
500
-        // set initial REG_Status
501
-        $this->set_old_reg_status($registration->ID(), $registration->status_ID());
502
-        // if the registration status gets updated, then save the registration
503
-        if (
504
-            $this->toggle_registration_status_for_default_approved_events($registration, false)
505
-            || $this->toggle_registration_status_if_no_monies_owing(
506
-                $registration,
507
-                false,
508
-                $additional_details
509
-            )
510
-        ) {
511
-            $registration->save();
512
-        }
513
-        // set new  REG_Status
514
-        $this->set_new_reg_status($registration->ID(), $registration->status_ID());
515
-        return $this->reg_status_updated($registration->ID())
516
-               && $this->new_reg_status($registration->ID()) === EEM_Registration::status_id_approved;
517
-    }
518
-
519
-
520
-    /**
521
-     * Updates the registration' final prices based on the current line item tree (taking into account
522
-     * discounts, taxes, and other line items unrelated to tickets.)
523
-     *
524
-     * @param EE_Transaction $transaction
525
-     * @param boolean        $save_regs whether to immediately save registrations in this function or not
526
-     * @return void
527
-     * @throws EE_Error
528
-     * @throws InvalidArgumentException
529
-     * @throws InvalidDataTypeException
530
-     * @throws InvalidInterfaceException
531
-     * @throws RuntimeException
532
-     */
533
-    public function update_registration_final_prices($transaction, $save_regs = true)
534
-    {
535
-        $reg_final_price_per_ticket_line_item = EEH_Line_Item::calculate_reg_final_prices_per_line_item(
536
-            $transaction->total_line_item()
537
-        );
538
-        foreach ($transaction->registrations() as $registration) {
539
-            /** @var EE_Line_Item $line_item */
540
-            $line_item = EEM_Line_Item::instance()->get_line_item_for_registration($registration);
541
-            if (isset($reg_final_price_per_ticket_line_item[ $line_item->ID() ])) {
542
-                $registration->set_final_price($reg_final_price_per_ticket_line_item[ $line_item->ID() ]);
543
-                if ($save_regs) {
544
-                    $registration->save();
545
-                }
546
-            }
547
-        }
548
-        // and make sure there's no rounding problem
549
-        $this->fix_reg_final_price_rounding_issue($transaction);
550
-    }
551
-
552
-
553
-    /**
554
-     * Makes sure there is no rounding errors for the REG_final_prices.
555
-     * Eg, if we have 3 registrations for $1, and there is a $0.01 discount between the three of them,
556
-     * they will each be for $0.99333333, which gets rounded to $1 again.
557
-     * So the transaction total will be $2.99, but each registration will be for $1,
558
-     * so if each registrant paid individually they will have overpaid by $0.01.
559
-     * So in order to overcome this, we check for any difference, and if there is a difference
560
-     * we just grab one registrant at random and make them responsible for it.
561
-     * This should be used after setting REG_final_prices (it's done automatically as part of
562
-     * EE_Registration_Processor::update_registration_final_prices())
563
-     *
564
-     * @param EE_Transaction $transaction
565
-     * @return bool success verifying that there is NO difference after this method is done
566
-     * @throws EE_Error
567
-     * @throws InvalidArgumentException
568
-     * @throws InvalidDataTypeException
569
-     * @throws InvalidInterfaceException
570
-     */
571
-    public function fix_reg_final_price_rounding_issue($transaction)
572
-    {
573
-        $reg_final_price_sum = EEM_Registration::instance()->sum(
574
-            array(
575
-                array(
576
-                    'TXN_ID' => $transaction->ID(),
577
-                ),
578
-            ),
579
-            'REG_final_price'
580
-        );
581
-        $diff = $transaction->total() - $reg_final_price_sum;
582
-        // ok then, just grab one of the registrations
583
-        if ($diff !== 0) {
584
-            $a_reg = EEM_Registration::instance()->get_one(
585
-                array(
586
-                    array(
587
-                        'TXN_ID' => $transaction->ID(),
588
-                    ),
589
-                )
590
-            );
591
-            return $a_reg instanceof EE_Registration
592
-                ? (bool) $a_reg->save(array('REG_final_price' => $a_reg->final_price() + $diff))
593
-                : false;
594
-        }
595
-        return true;
596
-    }
597
-
598
-
599
-    /**
600
-     * update_registration_after_being_canceled_or_declined
601
-     *
602
-     * @param EE_Registration $registration
603
-     * @param array           $closed_reg_statuses
604
-     * @param bool            $update_reg
605
-     * @return bool
606
-     * @throws EE_Error
607
-     * @throws RuntimeException
608
-     */
609
-    public function update_registration_after_being_canceled_or_declined(
610
-        EE_Registration $registration,
611
-        array $closed_reg_statuses = array(),
612
-        $update_reg = true
613
-    ) {
614
-        // these reg statuses should not be considered in any calculations involving monies owing
615
-        $closed_reg_statuses = ! empty($closed_reg_statuses)
616
-            ? $closed_reg_statuses
617
-            : EEM_Registration::closed_reg_statuses();
618
-        if (! in_array($registration->status_ID(), $closed_reg_statuses, true)) {
619
-            return false;
620
-        }
621
-        // release a reserved ticket by decrementing ticket and datetime reserved values
622
-        $registration->release_reserved_ticket(true, 'RegProcessor:' . __LINE__);
623
-        $registration->set_final_price(0);
624
-        if ($update_reg) {
625
-            $registration->save();
626
-        }
627
-        return true;
628
-    }
629
-
630
-
631
-    /**
632
-     * update_canceled_or_declined_registration_after_being_reinstated
633
-     *
634
-     * @param EE_Registration $registration
635
-     * @param array           $closed_reg_statuses
636
-     * @param bool            $update_reg
637
-     * @return bool
638
-     * @throws EE_Error
639
-     * @throws RuntimeException
640
-     */
641
-    public function update_canceled_or_declined_registration_after_being_reinstated(
642
-        EE_Registration $registration,
643
-        array $closed_reg_statuses = array(),
644
-        $update_reg = true
645
-    ) {
646
-        // these reg statuses should not be considered in any calculations involving monies owing
647
-        $closed_reg_statuses = ! empty($closed_reg_statuses) ? $closed_reg_statuses
648
-            : EEM_Registration::closed_reg_statuses();
649
-        if (in_array($registration->status_ID(), $closed_reg_statuses, true)) {
650
-            return false;
651
-        }
652
-        $ticket = $registration->ticket();
653
-        if (! $ticket instanceof EE_Ticket) {
654
-            throw new EE_Error(
655
-                sprintf(
656
-                    esc_html__(
657
-                        'The Ticket for Registration %1$d was not found or is invalid.',
658
-                        'event_espresso'
659
-                    ),
660
-                    $registration->ticket_ID()
661
-                )
662
-            );
663
-        }
664
-        $registration->set_final_price($ticket->price());
665
-        if ($update_reg) {
666
-            $registration->save();
667
-        }
668
-        return true;
669
-    }
670
-
671
-
672
-    /**
673
-     * generate_ONE_registration_from_line_item
674
-     * Although a ticket line item may have a quantity greater than 1,
675
-     * this method will ONLY CREATE ONE REGISTRATION !!!
676
-     * Regardless of the ticket line item quantity.
677
-     * This means that any code calling this method is responsible for ensuring
678
-     * that the final registration count matches the ticket line item quantity.
679
-     * This was done to make it easier to match the number of registrations
680
-     * to the number of tickets in the cart, when the cart has been edited
681
-     * after SPCO has already been initialized. So if an additional ticket was added to the cart, you can simply pass
682
-     * the line item to this method to add a second ticket, and in this case, you would not want to add 2 tickets.
683
-     *
684
-     * @deprecated
685
-     * @since 4.9.1
686
-     * @param EE_Line_Item    $line_item
687
-     * @param \EE_Transaction $transaction
688
-     * @param int             $att_nmbr
689
-     * @param int             $total_ticket_count
690
-     * @return EE_Registration | null
691
-     * @throws \OutOfRangeException
692
-     * @throws \EventEspresso\core\exceptions\UnexpectedEntityException
693
-     * @throws \EE_Error
694
-     */
695
-    public function generate_ONE_registration_from_line_item(
696
-        EE_Line_Item $line_item,
697
-        EE_Transaction $transaction,
698
-        $att_nmbr = 1,
699
-        $total_ticket_count = 1
700
-    ) {
701
-        EE_Error::doing_it_wrong(
702
-            __CLASS__ . '::' . __FUNCTION__,
703
-            sprintf(
704
-                esc_html__('This method is deprecated. Please use "%s" instead', 'event_espresso'),
705
-                '\EventEspresso\core\domain\services\registration\CreateRegistrationService::create()'
706
-            ),
707
-            '4.9.1',
708
-            '5.0.0'
709
-        );
710
-        // grab the related ticket object for this line_item
711
-        $ticket = $line_item->ticket();
712
-        if (! $ticket instanceof EE_Ticket) {
713
-            EE_Error::add_error(
714
-                sprintf(
715
-                    esc_html__('Line item %s did not contain a valid ticket', 'event_espresso'),
716
-                    $line_item->ID()
717
-                ),
718
-                __FILE__,
719
-                __FUNCTION__,
720
-                __LINE__
721
-            );
722
-            return null;
723
-        }
724
-        $registration_service = new CreateRegistrationService();
725
-        // then generate a new registration from that
726
-        return $registration_service->create(
727
-            $ticket->get_related_event(),
728
-            $transaction,
729
-            $ticket,
730
-            $line_item,
731
-            $att_nmbr,
732
-            $total_ticket_count
733
-        );
734
-    }
735
-
736
-
737
-    /**
738
-     * generates reg_url_link
739
-     *
740
-     * @deprecated
741
-     * @since 4.9.1
742
-     * @param int                   $att_nmbr
743
-     * @param EE_Line_Item | string $item
744
-     * @return string
745
-     * @throws InvalidArgumentException
746
-     */
747
-    public function generate_reg_url_link($att_nmbr, $item)
748
-    {
749
-        EE_Error::doing_it_wrong(
750
-            __CLASS__ . '::' . __FUNCTION__,
751
-            sprintf(
752
-                esc_html__('This method is deprecated. Please use "%s" instead', 'event_espresso'),
753
-                'EventEspresso\core\domain\entities\RegUrlLink'
754
-            ),
755
-            '4.9.1',
756
-            '5.0.0'
757
-        );
758
-        return new RegUrlLink($att_nmbr, $item);
759
-    }
760
-
761
-
762
-    /**
763
-     * generates reg code
764
-     *
765
-     * @deprecated
766
-     * @since 4.9.1
767
-     * @param EE_Registration $registration
768
-     * @return string
769
-     * @throws EE_Error
770
-     * @throws EntityNotFoundException
771
-     * @throws InvalidArgumentException
772
-     */
773
-    public function generate_reg_code(EE_Registration $registration)
774
-    {
775
-        EE_Error::doing_it_wrong(
776
-            __CLASS__ . '::' . __FUNCTION__,
777
-            sprintf(
778
-                esc_html__('This method is deprecated. Please use "%s" instead', 'event_espresso'),
779
-                'EventEspresso\core\domain\entities\RegCode'
780
-            ),
781
-            '4.9.1',
782
-            '5.0.0'
783
-        );
784
-        return apply_filters(
785
-            'FHEE__EE_Registration_Processor___generate_reg_code__new_reg_code',
786
-            new RegCode(
787
-                RegUrlLink::fromRegistration($registration),
788
-                $registration->transaction(),
789
-                $registration->ticket()
790
-            ),
791
-            $registration
792
-        );
793
-    }
388
+			$registration->status_ID() === EEM_Registration::status_id_pending_payment
389
+			// AND no monies are owing
390
+			&& (
391
+				(
392
+					$registration->transaction()->is_completed()
393
+					|| $registration->transaction()->is_overpaid()
394
+					|| $registration->transaction()->is_free()
395
+					|| apply_filters(
396
+						'FHEE__EE_Registration_Processor__toggle_registration_status_if_no_monies_owing',
397
+						false,
398
+						$registration
399
+					)
400
+				)
401
+				|| (
402
+					$payment instanceof EE_Payment && $payment->is_approved()
403
+					&& // this specific registration has not yet been paid for
404
+					! isset(self::$_amount_paid[ $registration->ID() ])
405
+					&& // payment amount, less what we have already attributed to other registrations, is greater than this reg's final price
406
+					$payment->amount() - $total_paid >= $registration->final_price()
407
+				)
408
+			)
409
+		) {
410
+			// mark as paid
411
+			self::$_amount_paid[ $registration->ID() ] = $registration->final_price();
412
+			// track new REG_Status
413
+			$this->set_new_reg_status($registration->ID(), EEM_Registration::status_id_approved);
414
+			// toggle status to approved
415
+			$registration->set_status(EEM_Registration::status_id_approved);
416
+			if ($save) {
417
+				$registration->save();
418
+			}
419
+			// don't trigger notifications during IPNs because they will get triggered by EE_Payment_Processor
420
+			if (! EE_Processor_Base::$IPN) {
421
+				// otherwise, send out notifications
422
+				add_filter('FHEE__EED_Messages___maybe_registration__deliver_notifications', '__return_true', 10);
423
+			}
424
+			// DEBUG LOG
425
+			// $this->log(
426
+			//     __CLASS__,
427
+			//     __FUNCTION__,
428
+			//     __LINE__,
429
+			//     $registration->transaction(),
430
+			//     array(
431
+			//         'IPN' => EE_Processor_Base::$IPN,
432
+			//         'deliver_notifications' => has_filter(
433
+			//             'FHEE__EED_Messages___maybe_registration__deliver_notifications'
434
+			//         ),
435
+			//     )
436
+			// );
437
+			return true;
438
+		}
439
+		return false;
440
+	}
441
+
442
+
443
+	/**
444
+	 *    registration_status_changed
445
+	 *
446
+	 * @access public
447
+	 * @param EE_Registration $registration
448
+	 * @param array           $additional_details
449
+	 * @return void
450
+	 */
451
+	public function trigger_registration_update_notifications($registration, array $additional_details = array())
452
+	{
453
+		try {
454
+			if (! $registration instanceof EE_Registration) {
455
+				throw new EE_Error(
456
+					esc_html__('An invalid registration was received.', 'event_espresso')
457
+				);
458
+			}
459
+			// EE_Registry::instance()->load_helper('Debug_Tools');
460
+			// EEH_Debug_Tools::log(
461
+			//     __CLASS__,
462
+			//     __FUNCTION__,
463
+			//     __LINE__,
464
+			//     array($registration->transaction(), $additional_details),
465
+			//     false,
466
+			//     'EE_Transaction: ' . $registration->transaction()->ID()
467
+			// );
468
+			if (! $registration->is_primary_registrant()) {
469
+				return;
470
+			}
471
+			do_action(
472
+				'AHEE__EE_Registration_Processor__trigger_registration_update_notifications',
473
+				$registration,
474
+				$additional_details
475
+			);
476
+		} catch (Exception $e) {
477
+			EE_Error::add_error($e->getMessage(), $e->getFile(), 'unknown_function_from_exception', $e->getLine());
478
+		}
479
+	}
480
+
481
+
482
+	/**
483
+	 * sets reg status based either on passed param or on transaction status and event pre-approval setting
484
+	 *
485
+	 * @param EE_Registration $registration
486
+	 * @param array           $additional_details
487
+	 * @return bool
488
+	 * @throws EE_Error
489
+	 * @throws EntityNotFoundException
490
+	 * @throws InvalidArgumentException
491
+	 * @throws InvalidDataTypeException
492
+	 * @throws InvalidInterfaceException
493
+	 * @throws ReflectionException
494
+	 * @throws RuntimeException
495
+	 */
496
+	public function update_registration_after_checkout_or_payment(
497
+		EE_Registration $registration,
498
+		array $additional_details = array()
499
+	) {
500
+		// set initial REG_Status
501
+		$this->set_old_reg_status($registration->ID(), $registration->status_ID());
502
+		// if the registration status gets updated, then save the registration
503
+		if (
504
+			$this->toggle_registration_status_for_default_approved_events($registration, false)
505
+			|| $this->toggle_registration_status_if_no_monies_owing(
506
+				$registration,
507
+				false,
508
+				$additional_details
509
+			)
510
+		) {
511
+			$registration->save();
512
+		}
513
+		// set new  REG_Status
514
+		$this->set_new_reg_status($registration->ID(), $registration->status_ID());
515
+		return $this->reg_status_updated($registration->ID())
516
+			   && $this->new_reg_status($registration->ID()) === EEM_Registration::status_id_approved;
517
+	}
518
+
519
+
520
+	/**
521
+	 * Updates the registration' final prices based on the current line item tree (taking into account
522
+	 * discounts, taxes, and other line items unrelated to tickets.)
523
+	 *
524
+	 * @param EE_Transaction $transaction
525
+	 * @param boolean        $save_regs whether to immediately save registrations in this function or not
526
+	 * @return void
527
+	 * @throws EE_Error
528
+	 * @throws InvalidArgumentException
529
+	 * @throws InvalidDataTypeException
530
+	 * @throws InvalidInterfaceException
531
+	 * @throws RuntimeException
532
+	 */
533
+	public function update_registration_final_prices($transaction, $save_regs = true)
534
+	{
535
+		$reg_final_price_per_ticket_line_item = EEH_Line_Item::calculate_reg_final_prices_per_line_item(
536
+			$transaction->total_line_item()
537
+		);
538
+		foreach ($transaction->registrations() as $registration) {
539
+			/** @var EE_Line_Item $line_item */
540
+			$line_item = EEM_Line_Item::instance()->get_line_item_for_registration($registration);
541
+			if (isset($reg_final_price_per_ticket_line_item[ $line_item->ID() ])) {
542
+				$registration->set_final_price($reg_final_price_per_ticket_line_item[ $line_item->ID() ]);
543
+				if ($save_regs) {
544
+					$registration->save();
545
+				}
546
+			}
547
+		}
548
+		// and make sure there's no rounding problem
549
+		$this->fix_reg_final_price_rounding_issue($transaction);
550
+	}
551
+
552
+
553
+	/**
554
+	 * Makes sure there is no rounding errors for the REG_final_prices.
555
+	 * Eg, if we have 3 registrations for $1, and there is a $0.01 discount between the three of them,
556
+	 * they will each be for $0.99333333, which gets rounded to $1 again.
557
+	 * So the transaction total will be $2.99, but each registration will be for $1,
558
+	 * so if each registrant paid individually they will have overpaid by $0.01.
559
+	 * So in order to overcome this, we check for any difference, and if there is a difference
560
+	 * we just grab one registrant at random and make them responsible for it.
561
+	 * This should be used after setting REG_final_prices (it's done automatically as part of
562
+	 * EE_Registration_Processor::update_registration_final_prices())
563
+	 *
564
+	 * @param EE_Transaction $transaction
565
+	 * @return bool success verifying that there is NO difference after this method is done
566
+	 * @throws EE_Error
567
+	 * @throws InvalidArgumentException
568
+	 * @throws InvalidDataTypeException
569
+	 * @throws InvalidInterfaceException
570
+	 */
571
+	public function fix_reg_final_price_rounding_issue($transaction)
572
+	{
573
+		$reg_final_price_sum = EEM_Registration::instance()->sum(
574
+			array(
575
+				array(
576
+					'TXN_ID' => $transaction->ID(),
577
+				),
578
+			),
579
+			'REG_final_price'
580
+		);
581
+		$diff = $transaction->total() - $reg_final_price_sum;
582
+		// ok then, just grab one of the registrations
583
+		if ($diff !== 0) {
584
+			$a_reg = EEM_Registration::instance()->get_one(
585
+				array(
586
+					array(
587
+						'TXN_ID' => $transaction->ID(),
588
+					),
589
+				)
590
+			);
591
+			return $a_reg instanceof EE_Registration
592
+				? (bool) $a_reg->save(array('REG_final_price' => $a_reg->final_price() + $diff))
593
+				: false;
594
+		}
595
+		return true;
596
+	}
597
+
598
+
599
+	/**
600
+	 * update_registration_after_being_canceled_or_declined
601
+	 *
602
+	 * @param EE_Registration $registration
603
+	 * @param array           $closed_reg_statuses
604
+	 * @param bool            $update_reg
605
+	 * @return bool
606
+	 * @throws EE_Error
607
+	 * @throws RuntimeException
608
+	 */
609
+	public function update_registration_after_being_canceled_or_declined(
610
+		EE_Registration $registration,
611
+		array $closed_reg_statuses = array(),
612
+		$update_reg = true
613
+	) {
614
+		// these reg statuses should not be considered in any calculations involving monies owing
615
+		$closed_reg_statuses = ! empty($closed_reg_statuses)
616
+			? $closed_reg_statuses
617
+			: EEM_Registration::closed_reg_statuses();
618
+		if (! in_array($registration->status_ID(), $closed_reg_statuses, true)) {
619
+			return false;
620
+		}
621
+		// release a reserved ticket by decrementing ticket and datetime reserved values
622
+		$registration->release_reserved_ticket(true, 'RegProcessor:' . __LINE__);
623
+		$registration->set_final_price(0);
624
+		if ($update_reg) {
625
+			$registration->save();
626
+		}
627
+		return true;
628
+	}
629
+
630
+
631
+	/**
632
+	 * update_canceled_or_declined_registration_after_being_reinstated
633
+	 *
634
+	 * @param EE_Registration $registration
635
+	 * @param array           $closed_reg_statuses
636
+	 * @param bool            $update_reg
637
+	 * @return bool
638
+	 * @throws EE_Error
639
+	 * @throws RuntimeException
640
+	 */
641
+	public function update_canceled_or_declined_registration_after_being_reinstated(
642
+		EE_Registration $registration,
643
+		array $closed_reg_statuses = array(),
644
+		$update_reg = true
645
+	) {
646
+		// these reg statuses should not be considered in any calculations involving monies owing
647
+		$closed_reg_statuses = ! empty($closed_reg_statuses) ? $closed_reg_statuses
648
+			: EEM_Registration::closed_reg_statuses();
649
+		if (in_array($registration->status_ID(), $closed_reg_statuses, true)) {
650
+			return false;
651
+		}
652
+		$ticket = $registration->ticket();
653
+		if (! $ticket instanceof EE_Ticket) {
654
+			throw new EE_Error(
655
+				sprintf(
656
+					esc_html__(
657
+						'The Ticket for Registration %1$d was not found or is invalid.',
658
+						'event_espresso'
659
+					),
660
+					$registration->ticket_ID()
661
+				)
662
+			);
663
+		}
664
+		$registration->set_final_price($ticket->price());
665
+		if ($update_reg) {
666
+			$registration->save();
667
+		}
668
+		return true;
669
+	}
670
+
671
+
672
+	/**
673
+	 * generate_ONE_registration_from_line_item
674
+	 * Although a ticket line item may have a quantity greater than 1,
675
+	 * this method will ONLY CREATE ONE REGISTRATION !!!
676
+	 * Regardless of the ticket line item quantity.
677
+	 * This means that any code calling this method is responsible for ensuring
678
+	 * that the final registration count matches the ticket line item quantity.
679
+	 * This was done to make it easier to match the number of registrations
680
+	 * to the number of tickets in the cart, when the cart has been edited
681
+	 * after SPCO has already been initialized. So if an additional ticket was added to the cart, you can simply pass
682
+	 * the line item to this method to add a second ticket, and in this case, you would not want to add 2 tickets.
683
+	 *
684
+	 * @deprecated
685
+	 * @since 4.9.1
686
+	 * @param EE_Line_Item    $line_item
687
+	 * @param \EE_Transaction $transaction
688
+	 * @param int             $att_nmbr
689
+	 * @param int             $total_ticket_count
690
+	 * @return EE_Registration | null
691
+	 * @throws \OutOfRangeException
692
+	 * @throws \EventEspresso\core\exceptions\UnexpectedEntityException
693
+	 * @throws \EE_Error
694
+	 */
695
+	public function generate_ONE_registration_from_line_item(
696
+		EE_Line_Item $line_item,
697
+		EE_Transaction $transaction,
698
+		$att_nmbr = 1,
699
+		$total_ticket_count = 1
700
+	) {
701
+		EE_Error::doing_it_wrong(
702
+			__CLASS__ . '::' . __FUNCTION__,
703
+			sprintf(
704
+				esc_html__('This method is deprecated. Please use "%s" instead', 'event_espresso'),
705
+				'\EventEspresso\core\domain\services\registration\CreateRegistrationService::create()'
706
+			),
707
+			'4.9.1',
708
+			'5.0.0'
709
+		);
710
+		// grab the related ticket object for this line_item
711
+		$ticket = $line_item->ticket();
712
+		if (! $ticket instanceof EE_Ticket) {
713
+			EE_Error::add_error(
714
+				sprintf(
715
+					esc_html__('Line item %s did not contain a valid ticket', 'event_espresso'),
716
+					$line_item->ID()
717
+				),
718
+				__FILE__,
719
+				__FUNCTION__,
720
+				__LINE__
721
+			);
722
+			return null;
723
+		}
724
+		$registration_service = new CreateRegistrationService();
725
+		// then generate a new registration from that
726
+		return $registration_service->create(
727
+			$ticket->get_related_event(),
728
+			$transaction,
729
+			$ticket,
730
+			$line_item,
731
+			$att_nmbr,
732
+			$total_ticket_count
733
+		);
734
+	}
735
+
736
+
737
+	/**
738
+	 * generates reg_url_link
739
+	 *
740
+	 * @deprecated
741
+	 * @since 4.9.1
742
+	 * @param int                   $att_nmbr
743
+	 * @param EE_Line_Item | string $item
744
+	 * @return string
745
+	 * @throws InvalidArgumentException
746
+	 */
747
+	public function generate_reg_url_link($att_nmbr, $item)
748
+	{
749
+		EE_Error::doing_it_wrong(
750
+			__CLASS__ . '::' . __FUNCTION__,
751
+			sprintf(
752
+				esc_html__('This method is deprecated. Please use "%s" instead', 'event_espresso'),
753
+				'EventEspresso\core\domain\entities\RegUrlLink'
754
+			),
755
+			'4.9.1',
756
+			'5.0.0'
757
+		);
758
+		return new RegUrlLink($att_nmbr, $item);
759
+	}
760
+
761
+
762
+	/**
763
+	 * generates reg code
764
+	 *
765
+	 * @deprecated
766
+	 * @since 4.9.1
767
+	 * @param EE_Registration $registration
768
+	 * @return string
769
+	 * @throws EE_Error
770
+	 * @throws EntityNotFoundException
771
+	 * @throws InvalidArgumentException
772
+	 */
773
+	public function generate_reg_code(EE_Registration $registration)
774
+	{
775
+		EE_Error::doing_it_wrong(
776
+			__CLASS__ . '::' . __FUNCTION__,
777
+			sprintf(
778
+				esc_html__('This method is deprecated. Please use "%s" instead', 'event_espresso'),
779
+				'EventEspresso\core\domain\entities\RegCode'
780
+			),
781
+			'4.9.1',
782
+			'5.0.0'
783
+		);
784
+		return apply_filters(
785
+			'FHEE__EE_Registration_Processor___generate_reg_code__new_reg_code',
786
+			new RegCode(
787
+				RegUrlLink::fromRegistration($registration),
788
+				$registration->transaction(),
789
+				$registration->ticket()
790
+			),
791
+			$registration
792
+		);
793
+	}
794 794
 }
Please login to merge, or discard this patch.
Spacing   +24 added lines, -24 removed lines patch added patch discarded remove patch
@@ -79,8 +79,8 @@  discard block
 block discarded – undo
79 79
     public static function instance(EE_Request $request = null)
80 80
     {
81 81
         // check if class object is instantiated
82
-        if (! self::$_instance instanceof EE_Registration_Processor) {
83
-            if (! $request instanceof EE_Request) {
82
+        if ( ! self::$_instance instanceof EE_Registration_Processor) {
83
+            if ( ! $request instanceof EE_Request) {
84 84
                 $request = LoaderFactory::getLoader()->getShared('EE_Request');
85 85
             }
86 86
             self::$_instance = new self($request);
@@ -106,7 +106,7 @@  discard block
 block discarded – undo
106 106
      */
107 107
     public function old_reg_status($REG_ID)
108 108
     {
109
-        return isset($this->_old_reg_status[ $REG_ID ]) ? $this->_old_reg_status[ $REG_ID ] : null;
109
+        return isset($this->_old_reg_status[$REG_ID]) ? $this->_old_reg_status[$REG_ID] : null;
110 110
     }
111 111
 
112 112
 
@@ -117,8 +117,8 @@  discard block
 block discarded – undo
117 117
     public function set_old_reg_status($REG_ID, $old_reg_status)
118 118
     {
119 119
         // only set the first time
120
-        if (! isset($this->_old_reg_status[ $REG_ID ])) {
121
-            $this->_old_reg_status[ $REG_ID ] = $old_reg_status;
120
+        if ( ! isset($this->_old_reg_status[$REG_ID])) {
121
+            $this->_old_reg_status[$REG_ID] = $old_reg_status;
122 122
         }
123 123
     }
124 124
 
@@ -129,7 +129,7 @@  discard block
 block discarded – undo
129 129
      */
130 130
     public function new_reg_status($REG_ID)
131 131
     {
132
-        return isset($this->_new_reg_status[ $REG_ID ]) ? $this->_new_reg_status[ $REG_ID ] : null;
132
+        return isset($this->_new_reg_status[$REG_ID]) ? $this->_new_reg_status[$REG_ID] : null;
133 133
     }
134 134
 
135 135
 
@@ -139,7 +139,7 @@  discard block
 block discarded – undo
139 139
      */
140 140
     public function set_new_reg_status($REG_ID, $new_reg_status)
141 141
     {
142
-        $this->_new_reg_status[ $REG_ID ] = $new_reg_status;
142
+        $this->_new_reg_status[$REG_ID] = $new_reg_status;
143 143
     }
144 144
 
145 145
 
@@ -206,7 +206,7 @@  discard block
 block discarded – undo
206 206
         if (
207 207
             $this->reg_status_updated($registration->ID())
208 208
             && (
209
-                (! $this->request->isAdmin() || $this->request->isFrontAjax())
209
+                ( ! $this->request->isAdmin() || $this->request->isFrontAjax())
210 210
                 || EE_Registry::instance()->CAP->current_user_can(
211 211
                     'ee_edit_registration',
212 212
                     'toggle_registration_status',
@@ -269,7 +269,7 @@  discard block
 block discarded – undo
269 269
                 $registration->save();
270 270
             }
271 271
             // don't trigger notifications during IPNs because they will get triggered by EE_Payment_Processor
272
-            if (! EE_Processor_Base::$IPN) {
272
+            if ( ! EE_Processor_Base::$IPN) {
273 273
                 // otherwise, send out notifications
274 274
                 add_filter('FHEE__EED_Messages___maybe_registration__deliver_notifications', '__return_true', 10);
275 275
             }
@@ -328,7 +328,7 @@  discard block
 block discarded – undo
328 328
                 $registration->save();
329 329
             }
330 330
             // don't trigger notifications during IPNs because they will get triggered by EE_Payment_Processor
331
-            if (! EE_Processor_Base::$IPN) {
331
+            if ( ! EE_Processor_Base::$IPN) {
332 332
                 // otherwise, send out notifications
333 333
                 add_filter('FHEE__EED_Messages___maybe_registration__deliver_notifications', '__return_true', 10);
334 334
             }
@@ -401,14 +401,14 @@  discard block
 block discarded – undo
401 401
                 || (
402 402
                     $payment instanceof EE_Payment && $payment->is_approved()
403 403
                     && // this specific registration has not yet been paid for
404
-                    ! isset(self::$_amount_paid[ $registration->ID() ])
404
+                    ! isset(self::$_amount_paid[$registration->ID()])
405 405
                     && // payment amount, less what we have already attributed to other registrations, is greater than this reg's final price
406 406
                     $payment->amount() - $total_paid >= $registration->final_price()
407 407
                 )
408 408
             )
409 409
         ) {
410 410
             // mark as paid
411
-            self::$_amount_paid[ $registration->ID() ] = $registration->final_price();
411
+            self::$_amount_paid[$registration->ID()] = $registration->final_price();
412 412
             // track new REG_Status
413 413
             $this->set_new_reg_status($registration->ID(), EEM_Registration::status_id_approved);
414 414
             // toggle status to approved
@@ -417,7 +417,7 @@  discard block
 block discarded – undo
417 417
                 $registration->save();
418 418
             }
419 419
             // don't trigger notifications during IPNs because they will get triggered by EE_Payment_Processor
420
-            if (! EE_Processor_Base::$IPN) {
420
+            if ( ! EE_Processor_Base::$IPN) {
421 421
                 // otherwise, send out notifications
422 422
                 add_filter('FHEE__EED_Messages___maybe_registration__deliver_notifications', '__return_true', 10);
423 423
             }
@@ -451,7 +451,7 @@  discard block
 block discarded – undo
451 451
     public function trigger_registration_update_notifications($registration, array $additional_details = array())
452 452
     {
453 453
         try {
454
-            if (! $registration instanceof EE_Registration) {
454
+            if ( ! $registration instanceof EE_Registration) {
455 455
                 throw new EE_Error(
456 456
                     esc_html__('An invalid registration was received.', 'event_espresso')
457 457
                 );
@@ -465,7 +465,7 @@  discard block
 block discarded – undo
465 465
             //     false,
466 466
             //     'EE_Transaction: ' . $registration->transaction()->ID()
467 467
             // );
468
-            if (! $registration->is_primary_registrant()) {
468
+            if ( ! $registration->is_primary_registrant()) {
469 469
                 return;
470 470
             }
471 471
             do_action(
@@ -538,8 +538,8 @@  discard block
 block discarded – undo
538 538
         foreach ($transaction->registrations() as $registration) {
539 539
             /** @var EE_Line_Item $line_item */
540 540
             $line_item = EEM_Line_Item::instance()->get_line_item_for_registration($registration);
541
-            if (isset($reg_final_price_per_ticket_line_item[ $line_item->ID() ])) {
542
-                $registration->set_final_price($reg_final_price_per_ticket_line_item[ $line_item->ID() ]);
541
+            if (isset($reg_final_price_per_ticket_line_item[$line_item->ID()])) {
542
+                $registration->set_final_price($reg_final_price_per_ticket_line_item[$line_item->ID()]);
543 543
                 if ($save_regs) {
544 544
                     $registration->save();
545 545
                 }
@@ -615,11 +615,11 @@  discard block
 block discarded – undo
615 615
         $closed_reg_statuses = ! empty($closed_reg_statuses)
616 616
             ? $closed_reg_statuses
617 617
             : EEM_Registration::closed_reg_statuses();
618
-        if (! in_array($registration->status_ID(), $closed_reg_statuses, true)) {
618
+        if ( ! in_array($registration->status_ID(), $closed_reg_statuses, true)) {
619 619
             return false;
620 620
         }
621 621
         // release a reserved ticket by decrementing ticket and datetime reserved values
622
-        $registration->release_reserved_ticket(true, 'RegProcessor:' . __LINE__);
622
+        $registration->release_reserved_ticket(true, 'RegProcessor:'.__LINE__);
623 623
         $registration->set_final_price(0);
624 624
         if ($update_reg) {
625 625
             $registration->save();
@@ -650,7 +650,7 @@  discard block
 block discarded – undo
650 650
             return false;
651 651
         }
652 652
         $ticket = $registration->ticket();
653
-        if (! $ticket instanceof EE_Ticket) {
653
+        if ( ! $ticket instanceof EE_Ticket) {
654 654
             throw new EE_Error(
655 655
                 sprintf(
656 656
                     esc_html__(
@@ -699,7 +699,7 @@  discard block
 block discarded – undo
699 699
         $total_ticket_count = 1
700 700
     ) {
701 701
         EE_Error::doing_it_wrong(
702
-            __CLASS__ . '::' . __FUNCTION__,
702
+            __CLASS__.'::'.__FUNCTION__,
703 703
             sprintf(
704 704
                 esc_html__('This method is deprecated. Please use "%s" instead', 'event_espresso'),
705 705
                 '\EventEspresso\core\domain\services\registration\CreateRegistrationService::create()'
@@ -709,7 +709,7 @@  discard block
 block discarded – undo
709 709
         );
710 710
         // grab the related ticket object for this line_item
711 711
         $ticket = $line_item->ticket();
712
-        if (! $ticket instanceof EE_Ticket) {
712
+        if ( ! $ticket instanceof EE_Ticket) {
713 713
             EE_Error::add_error(
714 714
                 sprintf(
715 715
                     esc_html__('Line item %s did not contain a valid ticket', 'event_espresso'),
@@ -747,7 +747,7 @@  discard block
 block discarded – undo
747 747
     public function generate_reg_url_link($att_nmbr, $item)
748 748
     {
749 749
         EE_Error::doing_it_wrong(
750
-            __CLASS__ . '::' . __FUNCTION__,
750
+            __CLASS__.'::'.__FUNCTION__,
751 751
             sprintf(
752 752
                 esc_html__('This method is deprecated. Please use "%s" instead', 'event_espresso'),
753 753
                 'EventEspresso\core\domain\entities\RegUrlLink'
@@ -773,7 +773,7 @@  discard block
 block discarded – undo
773 773
     public function generate_reg_code(EE_Registration $registration)
774 774
     {
775 775
         EE_Error::doing_it_wrong(
776
-            __CLASS__ . '::' . __FUNCTION__,
776
+            __CLASS__.'::'.__FUNCTION__,
777 777
             sprintf(
778 778
                 esc_html__('This method is deprecated. Please use "%s" instead', 'event_espresso'),
779 779
                 'EventEspresso\core\domain\entities\RegCode'
Please login to merge, or discard this patch.