Completed
Branch BUG-10878-event-spaces-remaini... (def5f8)
by
unknown
65:16 queued 53:59
created
core/libraries/messages/messenger/EE_Email_messenger.class.php 2 patches
Indentation   +642 added lines, -642 removed lines patch added patch discarded remove patch
@@ -8,646 +8,646 @@
 block discarded – undo
8 8
 class EE_Email_messenger extends EE_messenger
9 9
 {
10 10
 
11
-    /**
12
-     * To field for email
13
-     * @var string
14
-     */
15
-    protected $_to = '';
16
-
17
-
18
-    /**
19
-     * CC field for email.
20
-     * @var string
21
-     */
22
-    protected $_cc = '';
23
-
24
-    /**
25
-     * From field for email
26
-     * @var string
27
-     */
28
-    protected $_from = '';
29
-
30
-
31
-    /**
32
-     * Subject field for email
33
-     * @var string
34
-     */
35
-    protected $_subject = '';
36
-
37
-
38
-    /**
39
-     * Content field for email
40
-     * @var string
41
-     */
42
-    protected $_content = '';
43
-
44
-
45
-    /**
46
-     * constructor
47
-     *
48
-     * @access public
49
-     */
50
-    public function __construct()
51
-    {
52
-        //set name and description properties
53
-        $this->name                = 'email';
54
-        $this->description         = sprintf(
55
-            esc_html__(
56
-                'This messenger delivers messages via email using the built-in %s function included with WordPress',
57
-                'event_espresso'
58
-            ),
59
-            '<code>wp_mail</code>'
60
-        );
61
-        $this->label               = array(
62
-            'singular' => esc_html__('email', 'event_espresso'),
63
-            'plural'   => esc_html__('emails', 'event_espresso'),
64
-        );
65
-        $this->activate_on_install = true;
66
-
67
-        //we're using defaults so let's call parent constructor that will take care of setting up all the other
68
-        // properties
69
-        parent::__construct();
70
-    }
71
-
72
-
73
-    /**
74
-     * see abstract declaration in parent class for details.
75
-     */
76
-    protected function _set_admin_pages()
77
-    {
78
-        $this->admin_registered_pages = array(
79
-            'events_edit' => true,
80
-        );
81
-    }
82
-
83
-
84
-    /**
85
-     * see abstract declaration in parent class for details
86
-     */
87
-    protected function _set_valid_shortcodes()
88
-    {
89
-        //remember by leaving the other fields not set, those fields will inherit the valid shortcodes from the
90
-        // message type.
91
-        $this->_valid_shortcodes = array(
92
-            'to'   => array('email', 'event_author', 'primary_registration_details', 'recipient_details'),
93
-            'cc' => array('email', 'event_author', 'primary_registration_details', 'recipient_details'),
94
-            'from' => array('email', 'event_author', 'primary_registration_details', 'recipient_details'),
95
-        );
96
-    }
97
-
98
-
99
-    /**
100
-     * see abstract declaration in parent class for details
101
-     *
102
-     * @access protected
103
-     * @return void
104
-     */
105
-    protected function _set_validator_config()
106
-    {
107
-        $valid_shortcodes = $this->get_valid_shortcodes();
108
-
109
-        $this->_validator_config = array(
110
-            'to'            => array(
111
-                'shortcodes' => $valid_shortcodes['to'],
112
-                'type'       => 'email',
113
-            ),
114
-            'cc' => array(
115
-                'shortcodes' => $valid_shortcodes['to'],
116
-                'type' => 'email',
117
-            ),
118
-            'from'          => array(
119
-                'shortcodes' => $valid_shortcodes['from'],
120
-                'type'       => 'email',
121
-            ),
122
-            'subject'       => array(
123
-                'shortcodes' => array(
124
-                    'organization',
125
-                    'primary_registration_details',
126
-                    'event_author',
127
-                    'primary_registration_details',
128
-                    'recipient_details',
129
-                ),
130
-            ),
131
-            'content'       => array(
132
-                'shortcodes' => array(
133
-                    'event_list',
134
-                    'attendee_list',
135
-                    'ticket_list',
136
-                    'organization',
137
-                    'primary_registration_details',
138
-                    'primary_registration_list',
139
-                    'event_author',
140
-                    'recipient_details',
141
-                    'recipient_list',
142
-                    'transaction',
143
-                    'messenger',
144
-                ),
145
-            ),
146
-            'attendee_list' => array(
147
-                'shortcodes' => array('attendee', 'event_list', 'ticket_list'),
148
-                'required'   => array('[ATTENDEE_LIST]'),
149
-            ),
150
-            'event_list'    => array(
151
-                'shortcodes' => array(
152
-                    'event',
153
-                    'attendee_list',
154
-                    'ticket_list',
155
-                    'venue',
156
-                    'datetime_list',
157
-                    'attendee',
158
-                    'primary_registration_details',
159
-                    'primary_registration_list',
160
-                    'event_author',
161
-                    'recipient_details',
162
-                    'recipient_list',
163
-                ),
164
-                'required'   => array('[EVENT_LIST]'),
165
-            ),
166
-            'ticket_list'   => array(
167
-                'shortcodes' => array(
168
-                    'event_list',
169
-                    'attendee_list',
170
-                    'ticket',
171
-                    'datetime_list',
172
-                    'primary_registration_details',
173
-                    'recipient_details',
174
-                ),
175
-                'required'   => array('[TICKET_LIST]'),
176
-            ),
177
-            'datetime_list' => array(
178
-                'shortcodes' => array('datetime'),
179
-                'required'   => array('[DATETIME_LIST]'),
180
-            ),
181
-        );
182
-    }
183
-
184
-
185
-    /**
186
-     * @see   parent EE_messenger class for docs
187
-     * @since 4.5.0
188
-     */
189
-    public function do_secondary_messenger_hooks($sending_messenger_name)
190
-    {
191
-        if ($sending_messenger_name = 'html') {
192
-            add_filter('FHEE__EE_Messages_Template_Pack__get_variation', array($this, 'add_email_css'), 10, 8);
193
-        }
194
-    }
195
-
196
-
197
-    public function add_email_css(
198
-        $variation_path,
199
-        $messenger,
200
-        $message_type,
201
-        $type,
202
-        $variation,
203
-        $file_extension,
204
-        $url,
205
-        EE_Messages_Template_Pack $template_pack
206
-    ) {
207
-        //prevent recursion on this callback.
208
-        remove_filter('FHEE__EE_Messages_Template_Pack__get_variation', array($this, 'add_email_css'), 10);
209
-        $variation = $this->get_variation($template_pack, $message_type, $url, 'main', $variation, false);
210
-
211
-        add_filter('FHEE__EE_Messages_Template_Pack__get_variation', array($this, 'add_email_css'), 10, 8);
212
-        return $variation;
213
-    }
214
-
215
-
216
-    /**
217
-     * See parent for details
218
-     *
219
-     * @access protected
220
-     * @return void
221
-     */
222
-    protected function _set_test_settings_fields()
223
-    {
224
-        $this->_test_settings_fields = array(
225
-            'to'      => array(
226
-                'input'      => 'text',
227
-                'label'      => esc_html__('Send a test email to', 'event_espresso'),
228
-                'type'       => 'email',
229
-                'required'   => true,
230
-                'validation' => true,
231
-                'css_class'  => 'large-text',
232
-                'format'     => '%s',
233
-                'default'    => get_bloginfo('admin_email'),
234
-            ),
235
-            'subject' => array(
236
-                'input'      => 'hidden',
237
-                'label'      => '',
238
-                'type'       => 'string',
239
-                'required'   => false,
240
-                'validation' => false,
241
-                'format'     => '%s',
242
-                'value'      => sprintf(__('Test email sent from %s', 'event_espresso'), get_bloginfo('name')),
243
-                'default'    => '',
244
-                'css_class'  => '',
245
-            ),
246
-        );
247
-    }
248
-
249
-
250
-    /**
251
-     * _set_template_fields
252
-     * This sets up the fields that a messenger requires for the message to go out.
253
-     *
254
-     * @access  protected
255
-     * @return void
256
-     */
257
-    protected function _set_template_fields()
258
-    {
259
-        // any extra template fields that are NOT used by the messenger but will get used by a messenger field for
260
-        // shortcode replacement get added to the 'extra' key in an associated array indexed by the messenger field
261
-        // they relate to.  This is important for the Messages_admin to know what fields to display to the user.
262
-        //  Also, notice that the "values" are equal to the field type that messages admin will use to know what
263
-        // kind of field to display. The values ALSO have one index labeled "shortcode".  the values in that array
264
-        // indicate which ACTUAL SHORTCODE (i.e. [SHORTCODE]) is required in order for this extra field to be
265
-        // displayed.  If the required shortcode isn't part of the shortcodes array then the field is not needed and
266
-        // will not be displayed/parsed.
267
-        $this->_template_fields = array(
268
-            'to'      => array(
269
-                'input'      => 'text',
270
-                'label'      => esc_html_x(
271
-                    'To',
272
-                    'Label for the "To" field for email addresses',
273
-                    'event_espresso'
274
-                ),
275
-                'type'       => 'string',
276
-                'required'   => true,
277
-                'validation' => true,
278
-                'css_class'  => 'large-text',
279
-                'format'     => '%s',
280
-            ),
281
-            'cc'      => array(
282
-                'input'      => 'text',
283
-                'label'      => esc_html_x(
284
-                    'CC',
285
-                    'Label for the "Carbon Copy" field used for additional email addresses',
286
-                    'event_espresso'
287
-                ),
288
-                'type'       => 'string',
289
-                'required'   => false,
290
-                'validation' => true,
291
-                'css_class'  => 'large-text',
292
-                'format'     => '%s',
293
-            ),
294
-            'from'    => array(
295
-                'input'      => 'text',
296
-                'label'      => esc_html_x(
297
-                    'From',
298
-                    'Label for the "From" field for email addresses.',
299
-                    'event_espresso'
300
-                ),
301
-                'type'       => 'string',
302
-                'required'   => true,
303
-                'validation' => true,
304
-                'css_class'  => 'large-text',
305
-                'format'     => '%s',
306
-            ),
307
-            'subject' => array(
308
-                'input'      => 'text',
309
-                'label'      => esc_html_x(
310
-                    'Subject',
311
-                    'Label for the "Subject" field (short description of contents) for emails.',
312
-                    'event_espresso'
313
-                ),
314
-                'type'       => 'string',
315
-                'required'   => true,
316
-                'validation' => true,
317
-                'css_class'  => 'large-text',
318
-                'format'     => '%s',
319
-            ),
320
-            'content' => '',
321
-            //left empty b/c it is in the "extra array" but messenger still needs needs to know this is a field.
322
-            'extra'   => array(
323
-                'content' => array(
324
-                    'main'          => array(
325
-                        'input'      => 'wp_editor',
326
-                        'label'      => esc_html__('Main Content', 'event_espresso'),
327
-                        'type'       => 'string',
328
-                        'required'   => true,
329
-                        'validation' => true,
330
-                        'format'     => '%s',
331
-                        'rows'       => '15',
332
-                    ),
333
-                    'event_list'    => array(
334
-                        'input'               => 'wp_editor',
335
-                        'label'               => '[EVENT_LIST]',
336
-                        'type'                => 'string',
337
-                        'required'            => true,
338
-                        'validation'          => true,
339
-                        'format'              => '%s',
340
-                        'rows'                => '15',
341
-                        'shortcodes_required' => array('[EVENT_LIST]'),
342
-                    ),
343
-                    'attendee_list' => array(
344
-                        'input'               => 'textarea',
345
-                        'label'               => '[ATTENDEE_LIST]',
346
-                        'type'                => 'string',
347
-                        'required'            => true,
348
-                        'validation'          => true,
349
-                        'format'              => '%s',
350
-                        'css_class'           => 'large-text',
351
-                        'rows'                => '5',
352
-                        'shortcodes_required' => array('[ATTENDEE_LIST]'),
353
-                    ),
354
-                    'ticket_list'   => array(
355
-                        'input'               => 'textarea',
356
-                        'label'               => '[TICKET_LIST]',
357
-                        'type'                => 'string',
358
-                        'required'            => true,
359
-                        'validation'          => true,
360
-                        'format'              => '%s',
361
-                        'css_class'           => 'large-text',
362
-                        'rows'                => '10',
363
-                        'shortcodes_required' => array('[TICKET_LIST]'),
364
-                    ),
365
-                    'datetime_list' => array(
366
-                        'input'               => 'textarea',
367
-                        'label'               => '[DATETIME_LIST]',
368
-                        'type'                => 'string',
369
-                        'required'            => true,
370
-                        'validation'          => true,
371
-                        'format'              => '%s',
372
-                        'css_class'           => 'large-text',
373
-                        'rows'                => '10',
374
-                        'shortcodes_required' => array('[DATETIME_LIST]'),
375
-                    ),
376
-                ),
377
-            ),
378
-        );
379
-    }
380
-
381
-
382
-    /**
383
-     * See definition of this class in parent
384
-     */
385
-    protected function _set_default_message_types()
386
-    {
387
-        $this->_default_message_types = array(
388
-            'payment',
389
-            'payment_refund',
390
-            'registration',
391
-            'not_approved_registration',
392
-            'pending_approval',
393
-        );
394
-    }
395
-
396
-
397
-    /**
398
-     * @see   definition of this class in parent
399
-     * @since 4.5.0
400
-     */
401
-    protected function _set_valid_message_types()
402
-    {
403
-        $this->_valid_message_types = array(
404
-            'payment',
405
-            'registration',
406
-            'not_approved_registration',
407
-            'declined_registration',
408
-            'cancelled_registration',
409
-            'pending_approval',
410
-            'registration_summary',
411
-            'payment_reminder',
412
-            'payment_declined',
413
-            'payment_refund',
414
-        );
415
-    }
416
-
417
-
418
-    /**
419
-     * setting up admin_settings_fields for messenger.
420
-     */
421
-    protected function _set_admin_settings_fields()
422
-    {
423
-    }
424
-
425
-    /**
426
-     * We just deliver the messages don't kill us!!
427
-     *
428
-     * @return bool|WP_Error true if message delivered, false if it didn't deliver OR bubble up any error object if
429
-     *              present.
430
-     * @throws EE_Error
431
-     * @throws \TijsVerkoyen\CssToInlineStyles\Exception
432
-     */
433
-    protected function _send_message()
434
-    {
435
-        $success = wp_mail(
436
-            html_entity_decode($this->_to, ENT_QUOTES, "UTF-8"),
437
-            stripslashes(html_entity_decode($this->_subject, ENT_QUOTES, "UTF-8")),
438
-            $this->_body(),
439
-            $this->_headers()
440
-        );
441
-        if (! $success) {
442
-            EE_Error::add_error(
443
-                sprintf(
444
-                    esc_html__(
445
-                        'The email did not send successfully.%3$sThe WordPress wp_mail function is used for sending mails but does not give any useful information when an email fails to send.%3$sIt is possible the "to" address (%1$s) or "from" address (%2$s) is invalid.%3$s',
446
-                        'event_espresso'
447
-                    ),
448
-                    $this->_to,
449
-                    $this->_from,
450
-                    '<br />'
451
-                ),
452
-                __FILE__,
453
-                __FUNCTION__,
454
-                __LINE__
455
-            );
456
-        }
457
-        return $success;
458
-    }
459
-
460
-
461
-    /**
462
-     * see parent for definition
463
-     *
464
-     * @return string html body of the message content and the related css.
465
-     * @throws EE_Error
466
-     * @throws \TijsVerkoyen\CssToInlineStyles\Exception
467
-     */
468
-    protected function _preview()
469
-    {
470
-        return $this->_body(true);
471
-    }
472
-
473
-
474
-    /**
475
-     * Setup headers for email
476
-     *
477
-     * @access protected
478
-     * @return string formatted header for email
479
-     */
480
-    protected function _headers()
481
-    {
482
-        $this->_ensure_has_from_email_address();
483
-        $from    = stripslashes_deep(html_entity_decode($this->_from, ENT_QUOTES, "UTF-8"));
484
-        $headers = array(
485
-            'MIME-Version: 1.0',
486
-            'From:' . $from,
487
-            'Reply-To:' . $from,
488
-            'Content-Type:text/html; charset=utf-8',
489
-        );
490
-
491
-        if (! empty($this->_cc)) {
492
-            $headers[] = 'cc: ' . $this->_cc;
493
-        }
494
-
495
-        //but wait!  Header's for the from is NOT reliable because some plugins don't respect From: as set in the
496
-        // header.
497
-        add_filter('wp_mail_from', array($this, 'set_from_address'), 100);
498
-        add_filter('wp_mail_from_name', array($this, 'set_from_name'), 100);
499
-        return apply_filters('FHEE__EE_Email_messenger___headers', $headers, $this->_incoming_message_type, $this);
500
-    }
501
-
502
-
503
-    /**
504
-     * This simply ensures that the from address is not empty.  If it is, then we use whatever is set as the site email
505
-     * address for the from address to avoid problems with sending emails.
506
-     */
507
-    protected function _ensure_has_from_email_address()
508
-    {
509
-        if (empty($this->_from)) {
510
-            $this->_from = get_bloginfo('admin_email');
511
-        }
512
-    }
513
-
514
-
515
-    /**
516
-     * This simply parses whatever is set as the $_from address and determines if it is in the format {name} <{email}>
517
-     * or just {email} and returns an array with the "from_name" and "from_email" as the values. Note from_name *MAY*
518
-     * be empty
519
-     *
520
-     * @since 4.3.1
521
-     * @return array
522
-     */
523
-    private function _parse_from()
524
-    {
525
-        if (strpos($this->_from, '<') !== false) {
526
-            $from_name = substr($this->_from, 0, strpos($this->_from, '<') - 1);
527
-            $from_name = str_replace('"', '', $from_name);
528
-            $from_name = trim($from_name);
529
-
530
-            $from_email = substr($this->_from, strpos($this->_from, '<') + 1);
531
-            $from_email = str_replace('>', '', $from_email);
532
-            $from_email = trim($from_email);
533
-        } elseif (trim($this->_from) !== '') {
534
-            $from_name  = '';
535
-            $from_email = trim($this->_from);
536
-        } else {
537
-            $from_name = $from_email = '';
538
-        }
539
-        return array($from_name, $from_email);
540
-    }
541
-
542
-
543
-    /**
544
-     * Callback for the wp_mail_from filter.
545
-     *
546
-     * @since 4.3.1
547
-     * @param string $from_email What the original from_email is.
548
-     * @return string
549
-     */
550
-    public function set_from_address($from_email)
551
-    {
552
-        $parsed_from = $this->_parse_from();
553
-        //includes fallback if the parsing failed.
554
-        $from_email = is_array($parsed_from) && ! empty($parsed_from[1])
555
-            ? $parsed_from[1]
556
-            : get_bloginfo('admin_email');
557
-        return $from_email;
558
-    }
559
-
560
-
561
-    /**
562
-     * Callback fro the wp_mail_from_name filter.
563
-     *
564
-     * @since 4.3.1
565
-     * @param string $from_name The original from_name.
566
-     * @return string
567
-     */
568
-    public function set_from_name($from_name)
569
-    {
570
-        $parsed_from = $this->_parse_from();
571
-        if (is_array($parsed_from) && ! empty($parsed_from[0])) {
572
-            $from_name = $parsed_from[0];
573
-        }
574
-
575
-        //if from name is "WordPress" let's sub in the site name instead (more friendly!)
576
-        $from_name = $from_name == 'WordPress' ? get_bloginfo() : $from_name;
577
-
578
-        return stripslashes_deep(html_entity_decode($from_name, ENT_QUOTES, "UTF-8"));
579
-    }
580
-
581
-
582
-    /**
583
-     * setup body for email
584
-     *
585
-     * @param bool $preview will determine whether this is preview template or not.
586
-     * @return string formatted body for email.
587
-     * @throws EE_Error
588
-     * @throws \TijsVerkoyen\CssToInlineStyles\Exception
589
-     */
590
-    protected function _body($preview = false)
591
-    {
592
-        //setup template args!
593
-        $this->_template_args = array(
594
-            'subject'   => $this->_subject,
595
-            'from'      => $this->_from,
596
-            'main_body' => wpautop(
597
-                stripslashes_deep(
598
-                    html_entity_decode($this->_content, ENT_QUOTES, "UTF-8")
599
-                )
600
-            ),
601
-        );
602
-        $body                 = $this->_get_main_template($preview);
603
-
604
-        /**
605
-         * This filter allows one to bypass the CSSToInlineStyles tool and leave the body untouched.
606
-         *
607
-         * @type    bool $preview Indicates whether a preview is being generated or not.
608
-         * @return  bool    true  indicates to use the inliner, false bypasses it.
609
-         */
610
-        if (apply_filters('FHEE__EE_Email_messenger__apply_CSSInliner ', true, $preview)) {
611
-            //require CssToInlineStyles library and its dependencies via composer autoloader
612
-            require_once EE_THIRD_PARTY . 'cssinliner/vendor/autoload.php';
613
-
614
-            //now if this isn't a preview, let's setup the body so it has inline styles
615
-            if (! $preview || ($preview && defined('DOING_AJAX'))) {
616
-                $style = file_get_contents(
617
-                    $this->get_variation(
618
-                        $this->_tmp_pack,
619
-                        $this->_incoming_message_type->name,
620
-                        false,
621
-                        'main',
622
-                        $this->_variation
623
-                    ),
624
-                    true
625
-                );
626
-                $CSS   = new TijsVerkoyen\CssToInlineStyles\CssToInlineStyles($body, $style);
627
-                //for some reason the library has a bracket and new line at the beginning.  This takes care of that.
628
-                $body  = ltrim($CSS->convert(true), ">\n");
629
-                //see https://events.codebasehq.com/projects/event-espresso/tickets/8609
630
-                $body  = ltrim($body, "<?");
631
-            }
632
-
633
-        }
634
-        return $body;
635
-    }
636
-
637
-
638
-    /**
639
-     * This just returns any existing test settings that might be saved in the database
640
-     *
641
-     * @access public
642
-     * @return array
643
-     */
644
-    public function get_existing_test_settings()
645
-    {
646
-        $settings = parent::get_existing_test_settings();
647
-        //override subject if present because we always want it to be fresh.
648
-        if (is_array($settings) && ! empty($settings['subject'])) {
649
-            $settings['subject'] = sprintf(__('Test email sent from %s', 'event_espresso'), get_bloginfo('name'));
650
-        }
651
-        return $settings;
652
-    }
11
+	/**
12
+	 * To field for email
13
+	 * @var string
14
+	 */
15
+	protected $_to = '';
16
+
17
+
18
+	/**
19
+	 * CC field for email.
20
+	 * @var string
21
+	 */
22
+	protected $_cc = '';
23
+
24
+	/**
25
+	 * From field for email
26
+	 * @var string
27
+	 */
28
+	protected $_from = '';
29
+
30
+
31
+	/**
32
+	 * Subject field for email
33
+	 * @var string
34
+	 */
35
+	protected $_subject = '';
36
+
37
+
38
+	/**
39
+	 * Content field for email
40
+	 * @var string
41
+	 */
42
+	protected $_content = '';
43
+
44
+
45
+	/**
46
+	 * constructor
47
+	 *
48
+	 * @access public
49
+	 */
50
+	public function __construct()
51
+	{
52
+		//set name and description properties
53
+		$this->name                = 'email';
54
+		$this->description         = sprintf(
55
+			esc_html__(
56
+				'This messenger delivers messages via email using the built-in %s function included with WordPress',
57
+				'event_espresso'
58
+			),
59
+			'<code>wp_mail</code>'
60
+		);
61
+		$this->label               = array(
62
+			'singular' => esc_html__('email', 'event_espresso'),
63
+			'plural'   => esc_html__('emails', 'event_espresso'),
64
+		);
65
+		$this->activate_on_install = true;
66
+
67
+		//we're using defaults so let's call parent constructor that will take care of setting up all the other
68
+		// properties
69
+		parent::__construct();
70
+	}
71
+
72
+
73
+	/**
74
+	 * see abstract declaration in parent class for details.
75
+	 */
76
+	protected function _set_admin_pages()
77
+	{
78
+		$this->admin_registered_pages = array(
79
+			'events_edit' => true,
80
+		);
81
+	}
82
+
83
+
84
+	/**
85
+	 * see abstract declaration in parent class for details
86
+	 */
87
+	protected function _set_valid_shortcodes()
88
+	{
89
+		//remember by leaving the other fields not set, those fields will inherit the valid shortcodes from the
90
+		// message type.
91
+		$this->_valid_shortcodes = array(
92
+			'to'   => array('email', 'event_author', 'primary_registration_details', 'recipient_details'),
93
+			'cc' => array('email', 'event_author', 'primary_registration_details', 'recipient_details'),
94
+			'from' => array('email', 'event_author', 'primary_registration_details', 'recipient_details'),
95
+		);
96
+	}
97
+
98
+
99
+	/**
100
+	 * see abstract declaration in parent class for details
101
+	 *
102
+	 * @access protected
103
+	 * @return void
104
+	 */
105
+	protected function _set_validator_config()
106
+	{
107
+		$valid_shortcodes = $this->get_valid_shortcodes();
108
+
109
+		$this->_validator_config = array(
110
+			'to'            => array(
111
+				'shortcodes' => $valid_shortcodes['to'],
112
+				'type'       => 'email',
113
+			),
114
+			'cc' => array(
115
+				'shortcodes' => $valid_shortcodes['to'],
116
+				'type' => 'email',
117
+			),
118
+			'from'          => array(
119
+				'shortcodes' => $valid_shortcodes['from'],
120
+				'type'       => 'email',
121
+			),
122
+			'subject'       => array(
123
+				'shortcodes' => array(
124
+					'organization',
125
+					'primary_registration_details',
126
+					'event_author',
127
+					'primary_registration_details',
128
+					'recipient_details',
129
+				),
130
+			),
131
+			'content'       => array(
132
+				'shortcodes' => array(
133
+					'event_list',
134
+					'attendee_list',
135
+					'ticket_list',
136
+					'organization',
137
+					'primary_registration_details',
138
+					'primary_registration_list',
139
+					'event_author',
140
+					'recipient_details',
141
+					'recipient_list',
142
+					'transaction',
143
+					'messenger',
144
+				),
145
+			),
146
+			'attendee_list' => array(
147
+				'shortcodes' => array('attendee', 'event_list', 'ticket_list'),
148
+				'required'   => array('[ATTENDEE_LIST]'),
149
+			),
150
+			'event_list'    => array(
151
+				'shortcodes' => array(
152
+					'event',
153
+					'attendee_list',
154
+					'ticket_list',
155
+					'venue',
156
+					'datetime_list',
157
+					'attendee',
158
+					'primary_registration_details',
159
+					'primary_registration_list',
160
+					'event_author',
161
+					'recipient_details',
162
+					'recipient_list',
163
+				),
164
+				'required'   => array('[EVENT_LIST]'),
165
+			),
166
+			'ticket_list'   => array(
167
+				'shortcodes' => array(
168
+					'event_list',
169
+					'attendee_list',
170
+					'ticket',
171
+					'datetime_list',
172
+					'primary_registration_details',
173
+					'recipient_details',
174
+				),
175
+				'required'   => array('[TICKET_LIST]'),
176
+			),
177
+			'datetime_list' => array(
178
+				'shortcodes' => array('datetime'),
179
+				'required'   => array('[DATETIME_LIST]'),
180
+			),
181
+		);
182
+	}
183
+
184
+
185
+	/**
186
+	 * @see   parent EE_messenger class for docs
187
+	 * @since 4.5.0
188
+	 */
189
+	public function do_secondary_messenger_hooks($sending_messenger_name)
190
+	{
191
+		if ($sending_messenger_name = 'html') {
192
+			add_filter('FHEE__EE_Messages_Template_Pack__get_variation', array($this, 'add_email_css'), 10, 8);
193
+		}
194
+	}
195
+
196
+
197
+	public function add_email_css(
198
+		$variation_path,
199
+		$messenger,
200
+		$message_type,
201
+		$type,
202
+		$variation,
203
+		$file_extension,
204
+		$url,
205
+		EE_Messages_Template_Pack $template_pack
206
+	) {
207
+		//prevent recursion on this callback.
208
+		remove_filter('FHEE__EE_Messages_Template_Pack__get_variation', array($this, 'add_email_css'), 10);
209
+		$variation = $this->get_variation($template_pack, $message_type, $url, 'main', $variation, false);
210
+
211
+		add_filter('FHEE__EE_Messages_Template_Pack__get_variation', array($this, 'add_email_css'), 10, 8);
212
+		return $variation;
213
+	}
214
+
215
+
216
+	/**
217
+	 * See parent for details
218
+	 *
219
+	 * @access protected
220
+	 * @return void
221
+	 */
222
+	protected function _set_test_settings_fields()
223
+	{
224
+		$this->_test_settings_fields = array(
225
+			'to'      => array(
226
+				'input'      => 'text',
227
+				'label'      => esc_html__('Send a test email to', 'event_espresso'),
228
+				'type'       => 'email',
229
+				'required'   => true,
230
+				'validation' => true,
231
+				'css_class'  => 'large-text',
232
+				'format'     => '%s',
233
+				'default'    => get_bloginfo('admin_email'),
234
+			),
235
+			'subject' => array(
236
+				'input'      => 'hidden',
237
+				'label'      => '',
238
+				'type'       => 'string',
239
+				'required'   => false,
240
+				'validation' => false,
241
+				'format'     => '%s',
242
+				'value'      => sprintf(__('Test email sent from %s', 'event_espresso'), get_bloginfo('name')),
243
+				'default'    => '',
244
+				'css_class'  => '',
245
+			),
246
+		);
247
+	}
248
+
249
+
250
+	/**
251
+	 * _set_template_fields
252
+	 * This sets up the fields that a messenger requires for the message to go out.
253
+	 *
254
+	 * @access  protected
255
+	 * @return void
256
+	 */
257
+	protected function _set_template_fields()
258
+	{
259
+		// any extra template fields that are NOT used by the messenger but will get used by a messenger field for
260
+		// shortcode replacement get added to the 'extra' key in an associated array indexed by the messenger field
261
+		// they relate to.  This is important for the Messages_admin to know what fields to display to the user.
262
+		//  Also, notice that the "values" are equal to the field type that messages admin will use to know what
263
+		// kind of field to display. The values ALSO have one index labeled "shortcode".  the values in that array
264
+		// indicate which ACTUAL SHORTCODE (i.e. [SHORTCODE]) is required in order for this extra field to be
265
+		// displayed.  If the required shortcode isn't part of the shortcodes array then the field is not needed and
266
+		// will not be displayed/parsed.
267
+		$this->_template_fields = array(
268
+			'to'      => array(
269
+				'input'      => 'text',
270
+				'label'      => esc_html_x(
271
+					'To',
272
+					'Label for the "To" field for email addresses',
273
+					'event_espresso'
274
+				),
275
+				'type'       => 'string',
276
+				'required'   => true,
277
+				'validation' => true,
278
+				'css_class'  => 'large-text',
279
+				'format'     => '%s',
280
+			),
281
+			'cc'      => array(
282
+				'input'      => 'text',
283
+				'label'      => esc_html_x(
284
+					'CC',
285
+					'Label for the "Carbon Copy" field used for additional email addresses',
286
+					'event_espresso'
287
+				),
288
+				'type'       => 'string',
289
+				'required'   => false,
290
+				'validation' => true,
291
+				'css_class'  => 'large-text',
292
+				'format'     => '%s',
293
+			),
294
+			'from'    => array(
295
+				'input'      => 'text',
296
+				'label'      => esc_html_x(
297
+					'From',
298
+					'Label for the "From" field for email addresses.',
299
+					'event_espresso'
300
+				),
301
+				'type'       => 'string',
302
+				'required'   => true,
303
+				'validation' => true,
304
+				'css_class'  => 'large-text',
305
+				'format'     => '%s',
306
+			),
307
+			'subject' => array(
308
+				'input'      => 'text',
309
+				'label'      => esc_html_x(
310
+					'Subject',
311
+					'Label for the "Subject" field (short description of contents) for emails.',
312
+					'event_espresso'
313
+				),
314
+				'type'       => 'string',
315
+				'required'   => true,
316
+				'validation' => true,
317
+				'css_class'  => 'large-text',
318
+				'format'     => '%s',
319
+			),
320
+			'content' => '',
321
+			//left empty b/c it is in the "extra array" but messenger still needs needs to know this is a field.
322
+			'extra'   => array(
323
+				'content' => array(
324
+					'main'          => array(
325
+						'input'      => 'wp_editor',
326
+						'label'      => esc_html__('Main Content', 'event_espresso'),
327
+						'type'       => 'string',
328
+						'required'   => true,
329
+						'validation' => true,
330
+						'format'     => '%s',
331
+						'rows'       => '15',
332
+					),
333
+					'event_list'    => array(
334
+						'input'               => 'wp_editor',
335
+						'label'               => '[EVENT_LIST]',
336
+						'type'                => 'string',
337
+						'required'            => true,
338
+						'validation'          => true,
339
+						'format'              => '%s',
340
+						'rows'                => '15',
341
+						'shortcodes_required' => array('[EVENT_LIST]'),
342
+					),
343
+					'attendee_list' => array(
344
+						'input'               => 'textarea',
345
+						'label'               => '[ATTENDEE_LIST]',
346
+						'type'                => 'string',
347
+						'required'            => true,
348
+						'validation'          => true,
349
+						'format'              => '%s',
350
+						'css_class'           => 'large-text',
351
+						'rows'                => '5',
352
+						'shortcodes_required' => array('[ATTENDEE_LIST]'),
353
+					),
354
+					'ticket_list'   => array(
355
+						'input'               => 'textarea',
356
+						'label'               => '[TICKET_LIST]',
357
+						'type'                => 'string',
358
+						'required'            => true,
359
+						'validation'          => true,
360
+						'format'              => '%s',
361
+						'css_class'           => 'large-text',
362
+						'rows'                => '10',
363
+						'shortcodes_required' => array('[TICKET_LIST]'),
364
+					),
365
+					'datetime_list' => array(
366
+						'input'               => 'textarea',
367
+						'label'               => '[DATETIME_LIST]',
368
+						'type'                => 'string',
369
+						'required'            => true,
370
+						'validation'          => true,
371
+						'format'              => '%s',
372
+						'css_class'           => 'large-text',
373
+						'rows'                => '10',
374
+						'shortcodes_required' => array('[DATETIME_LIST]'),
375
+					),
376
+				),
377
+			),
378
+		);
379
+	}
380
+
381
+
382
+	/**
383
+	 * See definition of this class in parent
384
+	 */
385
+	protected function _set_default_message_types()
386
+	{
387
+		$this->_default_message_types = array(
388
+			'payment',
389
+			'payment_refund',
390
+			'registration',
391
+			'not_approved_registration',
392
+			'pending_approval',
393
+		);
394
+	}
395
+
396
+
397
+	/**
398
+	 * @see   definition of this class in parent
399
+	 * @since 4.5.0
400
+	 */
401
+	protected function _set_valid_message_types()
402
+	{
403
+		$this->_valid_message_types = array(
404
+			'payment',
405
+			'registration',
406
+			'not_approved_registration',
407
+			'declined_registration',
408
+			'cancelled_registration',
409
+			'pending_approval',
410
+			'registration_summary',
411
+			'payment_reminder',
412
+			'payment_declined',
413
+			'payment_refund',
414
+		);
415
+	}
416
+
417
+
418
+	/**
419
+	 * setting up admin_settings_fields for messenger.
420
+	 */
421
+	protected function _set_admin_settings_fields()
422
+	{
423
+	}
424
+
425
+	/**
426
+	 * We just deliver the messages don't kill us!!
427
+	 *
428
+	 * @return bool|WP_Error true if message delivered, false if it didn't deliver OR bubble up any error object if
429
+	 *              present.
430
+	 * @throws EE_Error
431
+	 * @throws \TijsVerkoyen\CssToInlineStyles\Exception
432
+	 */
433
+	protected function _send_message()
434
+	{
435
+		$success = wp_mail(
436
+			html_entity_decode($this->_to, ENT_QUOTES, "UTF-8"),
437
+			stripslashes(html_entity_decode($this->_subject, ENT_QUOTES, "UTF-8")),
438
+			$this->_body(),
439
+			$this->_headers()
440
+		);
441
+		if (! $success) {
442
+			EE_Error::add_error(
443
+				sprintf(
444
+					esc_html__(
445
+						'The email did not send successfully.%3$sThe WordPress wp_mail function is used for sending mails but does not give any useful information when an email fails to send.%3$sIt is possible the "to" address (%1$s) or "from" address (%2$s) is invalid.%3$s',
446
+						'event_espresso'
447
+					),
448
+					$this->_to,
449
+					$this->_from,
450
+					'<br />'
451
+				),
452
+				__FILE__,
453
+				__FUNCTION__,
454
+				__LINE__
455
+			);
456
+		}
457
+		return $success;
458
+	}
459
+
460
+
461
+	/**
462
+	 * see parent for definition
463
+	 *
464
+	 * @return string html body of the message content and the related css.
465
+	 * @throws EE_Error
466
+	 * @throws \TijsVerkoyen\CssToInlineStyles\Exception
467
+	 */
468
+	protected function _preview()
469
+	{
470
+		return $this->_body(true);
471
+	}
472
+
473
+
474
+	/**
475
+	 * Setup headers for email
476
+	 *
477
+	 * @access protected
478
+	 * @return string formatted header for email
479
+	 */
480
+	protected function _headers()
481
+	{
482
+		$this->_ensure_has_from_email_address();
483
+		$from    = stripslashes_deep(html_entity_decode($this->_from, ENT_QUOTES, "UTF-8"));
484
+		$headers = array(
485
+			'MIME-Version: 1.0',
486
+			'From:' . $from,
487
+			'Reply-To:' . $from,
488
+			'Content-Type:text/html; charset=utf-8',
489
+		);
490
+
491
+		if (! empty($this->_cc)) {
492
+			$headers[] = 'cc: ' . $this->_cc;
493
+		}
494
+
495
+		//but wait!  Header's for the from is NOT reliable because some plugins don't respect From: as set in the
496
+		// header.
497
+		add_filter('wp_mail_from', array($this, 'set_from_address'), 100);
498
+		add_filter('wp_mail_from_name', array($this, 'set_from_name'), 100);
499
+		return apply_filters('FHEE__EE_Email_messenger___headers', $headers, $this->_incoming_message_type, $this);
500
+	}
501
+
502
+
503
+	/**
504
+	 * This simply ensures that the from address is not empty.  If it is, then we use whatever is set as the site email
505
+	 * address for the from address to avoid problems with sending emails.
506
+	 */
507
+	protected function _ensure_has_from_email_address()
508
+	{
509
+		if (empty($this->_from)) {
510
+			$this->_from = get_bloginfo('admin_email');
511
+		}
512
+	}
513
+
514
+
515
+	/**
516
+	 * This simply parses whatever is set as the $_from address and determines if it is in the format {name} <{email}>
517
+	 * or just {email} and returns an array with the "from_name" and "from_email" as the values. Note from_name *MAY*
518
+	 * be empty
519
+	 *
520
+	 * @since 4.3.1
521
+	 * @return array
522
+	 */
523
+	private function _parse_from()
524
+	{
525
+		if (strpos($this->_from, '<') !== false) {
526
+			$from_name = substr($this->_from, 0, strpos($this->_from, '<') - 1);
527
+			$from_name = str_replace('"', '', $from_name);
528
+			$from_name = trim($from_name);
529
+
530
+			$from_email = substr($this->_from, strpos($this->_from, '<') + 1);
531
+			$from_email = str_replace('>', '', $from_email);
532
+			$from_email = trim($from_email);
533
+		} elseif (trim($this->_from) !== '') {
534
+			$from_name  = '';
535
+			$from_email = trim($this->_from);
536
+		} else {
537
+			$from_name = $from_email = '';
538
+		}
539
+		return array($from_name, $from_email);
540
+	}
541
+
542
+
543
+	/**
544
+	 * Callback for the wp_mail_from filter.
545
+	 *
546
+	 * @since 4.3.1
547
+	 * @param string $from_email What the original from_email is.
548
+	 * @return string
549
+	 */
550
+	public function set_from_address($from_email)
551
+	{
552
+		$parsed_from = $this->_parse_from();
553
+		//includes fallback if the parsing failed.
554
+		$from_email = is_array($parsed_from) && ! empty($parsed_from[1])
555
+			? $parsed_from[1]
556
+			: get_bloginfo('admin_email');
557
+		return $from_email;
558
+	}
559
+
560
+
561
+	/**
562
+	 * Callback fro the wp_mail_from_name filter.
563
+	 *
564
+	 * @since 4.3.1
565
+	 * @param string $from_name The original from_name.
566
+	 * @return string
567
+	 */
568
+	public function set_from_name($from_name)
569
+	{
570
+		$parsed_from = $this->_parse_from();
571
+		if (is_array($parsed_from) && ! empty($parsed_from[0])) {
572
+			$from_name = $parsed_from[0];
573
+		}
574
+
575
+		//if from name is "WordPress" let's sub in the site name instead (more friendly!)
576
+		$from_name = $from_name == 'WordPress' ? get_bloginfo() : $from_name;
577
+
578
+		return stripslashes_deep(html_entity_decode($from_name, ENT_QUOTES, "UTF-8"));
579
+	}
580
+
581
+
582
+	/**
583
+	 * setup body for email
584
+	 *
585
+	 * @param bool $preview will determine whether this is preview template or not.
586
+	 * @return string formatted body for email.
587
+	 * @throws EE_Error
588
+	 * @throws \TijsVerkoyen\CssToInlineStyles\Exception
589
+	 */
590
+	protected function _body($preview = false)
591
+	{
592
+		//setup template args!
593
+		$this->_template_args = array(
594
+			'subject'   => $this->_subject,
595
+			'from'      => $this->_from,
596
+			'main_body' => wpautop(
597
+				stripslashes_deep(
598
+					html_entity_decode($this->_content, ENT_QUOTES, "UTF-8")
599
+				)
600
+			),
601
+		);
602
+		$body                 = $this->_get_main_template($preview);
603
+
604
+		/**
605
+		 * This filter allows one to bypass the CSSToInlineStyles tool and leave the body untouched.
606
+		 *
607
+		 * @type    bool $preview Indicates whether a preview is being generated or not.
608
+		 * @return  bool    true  indicates to use the inliner, false bypasses it.
609
+		 */
610
+		if (apply_filters('FHEE__EE_Email_messenger__apply_CSSInliner ', true, $preview)) {
611
+			//require CssToInlineStyles library and its dependencies via composer autoloader
612
+			require_once EE_THIRD_PARTY . 'cssinliner/vendor/autoload.php';
613
+
614
+			//now if this isn't a preview, let's setup the body so it has inline styles
615
+			if (! $preview || ($preview && defined('DOING_AJAX'))) {
616
+				$style = file_get_contents(
617
+					$this->get_variation(
618
+						$this->_tmp_pack,
619
+						$this->_incoming_message_type->name,
620
+						false,
621
+						'main',
622
+						$this->_variation
623
+					),
624
+					true
625
+				);
626
+				$CSS   = new TijsVerkoyen\CssToInlineStyles\CssToInlineStyles($body, $style);
627
+				//for some reason the library has a bracket and new line at the beginning.  This takes care of that.
628
+				$body  = ltrim($CSS->convert(true), ">\n");
629
+				//see https://events.codebasehq.com/projects/event-espresso/tickets/8609
630
+				$body  = ltrim($body, "<?");
631
+			}
632
+
633
+		}
634
+		return $body;
635
+	}
636
+
637
+
638
+	/**
639
+	 * This just returns any existing test settings that might be saved in the database
640
+	 *
641
+	 * @access public
642
+	 * @return array
643
+	 */
644
+	public function get_existing_test_settings()
645
+	{
646
+		$settings = parent::get_existing_test_settings();
647
+		//override subject if present because we always want it to be fresh.
648
+		if (is_array($settings) && ! empty($settings['subject'])) {
649
+			$settings['subject'] = sprintf(__('Test email sent from %s', 'event_espresso'), get_bloginfo('name'));
650
+		}
651
+		return $settings;
652
+	}
653 653
 }
Please login to merge, or discard this patch.
Spacing   +9 added lines, -9 removed lines patch added patch discarded remove patch
@@ -58,7 +58,7 @@  discard block
 block discarded – undo
58 58
             ),
59 59
             '<code>wp_mail</code>'
60 60
         );
61
-        $this->label               = array(
61
+        $this->label = array(
62 62
             'singular' => esc_html__('email', 'event_espresso'),
63 63
             'plural'   => esc_html__('emails', 'event_espresso'),
64 64
         );
@@ -438,7 +438,7 @@  discard block
 block discarded – undo
438 438
             $this->_body(),
439 439
             $this->_headers()
440 440
         );
441
-        if (! $success) {
441
+        if ( ! $success) {
442 442
             EE_Error::add_error(
443 443
                 sprintf(
444 444
                     esc_html__(
@@ -483,13 +483,13 @@  discard block
 block discarded – undo
483 483
         $from    = stripslashes_deep(html_entity_decode($this->_from, ENT_QUOTES, "UTF-8"));
484 484
         $headers = array(
485 485
             'MIME-Version: 1.0',
486
-            'From:' . $from,
487
-            'Reply-To:' . $from,
486
+            'From:'.$from,
487
+            'Reply-To:'.$from,
488 488
             'Content-Type:text/html; charset=utf-8',
489 489
         );
490 490
 
491
-        if (! empty($this->_cc)) {
492
-            $headers[] = 'cc: ' . $this->_cc;
491
+        if ( ! empty($this->_cc)) {
492
+            $headers[] = 'cc: '.$this->_cc;
493 493
         }
494 494
 
495 495
         //but wait!  Header's for the from is NOT reliable because some plugins don't respect From: as set in the
@@ -599,7 +599,7 @@  discard block
 block discarded – undo
599 599
                 )
600 600
             ),
601 601
         );
602
-        $body                 = $this->_get_main_template($preview);
602
+        $body = $this->_get_main_template($preview);
603 603
 
604 604
         /**
605 605
          * This filter allows one to bypass the CSSToInlineStyles tool and leave the body untouched.
@@ -609,10 +609,10 @@  discard block
 block discarded – undo
609 609
          */
610 610
         if (apply_filters('FHEE__EE_Email_messenger__apply_CSSInliner ', true, $preview)) {
611 611
             //require CssToInlineStyles library and its dependencies via composer autoloader
612
-            require_once EE_THIRD_PARTY . 'cssinliner/vendor/autoload.php';
612
+            require_once EE_THIRD_PARTY.'cssinliner/vendor/autoload.php';
613 613
 
614 614
             //now if this isn't a preview, let's setup the body so it has inline styles
615
-            if (! $preview || ($preview && defined('DOING_AJAX'))) {
615
+            if ( ! $preview || ($preview && defined('DOING_AJAX'))) {
616 616
                 $style = file_get_contents(
617 617
                     $this->get_variation(
618 618
                         $this->_tmp_pack,
Please login to merge, or discard this patch.
acceptance_tests/Page/MessagesAdmin.php 1 patch
Indentation   +242 added lines, -242 removed lines patch added patch discarded remove patch
@@ -14,254 +14,254 @@
 block discarded – undo
14 14
 class MessagesAdmin extends CoreAdmin
15 15
 {
16 16
 
17
-    /**
18
-     * Context slug for the admin messages context.
19
-     * @var string
20
-     */
21
-    const ADMIN_CONTEXT_SLUG = 'admin';
17
+	/**
18
+	 * Context slug for the admin messages context.
19
+	 * @var string
20
+	 */
21
+	const ADMIN_CONTEXT_SLUG = 'admin';
22 22
 
23
-    /**
24
-     * Context slug for the primary attendee messages context
25
-     * @var string
26
-     */
27
-    const PRIMARY_ATTENDEE_CONTEXT_SLUG = 'primary_attendee';
23
+	/**
24
+	 * Context slug for the primary attendee messages context
25
+	 * @var string
26
+	 */
27
+	const PRIMARY_ATTENDEE_CONTEXT_SLUG = 'primary_attendee';
28 28
 
29 29
 
30
-    /**
31
-     * Status reference for the EEM_Message::status_sent status.
32
-     * @var string
33
-     */
34
-    const MESSAGE_STATUS_SENT = 'MSN';
30
+	/**
31
+	 * Status reference for the EEM_Message::status_sent status.
32
+	 * @var string
33
+	 */
34
+	const MESSAGE_STATUS_SENT = 'MSN';
35 35
 
36 36
 
37
-    /**
38
-     * Message type slug for the Payment Failed message type
39
-     */
40
-    const PAYMENT_FAILED_MESSAGE_TYPE_SLUG = 'payment_failed';
37
+	/**
38
+	 * Message type slug for the Payment Failed message type
39
+	 */
40
+	const PAYMENT_FAILED_MESSAGE_TYPE_SLUG = 'payment_failed';
41 41
 
42 42
 
43
-    /**
44
-     * Selector for the Global Messages "Send on same request" field in the Messages Settings tab.
45
-     * @var string
46
-     */
47
-    const GLOBAL_MESSAGES_SETTINGS_ON_REQUEST_SELECTION_SELECTOR =
48
-        '#global_messages_settings-do-messages-on-same-request';
49
-
43
+	/**
44
+	 * Selector for the Global Messages "Send on same request" field in the Messages Settings tab.
45
+	 * @var string
46
+	 */
47
+	const GLOBAL_MESSAGES_SETTINGS_ON_REQUEST_SELECTION_SELECTOR =
48
+		'#global_messages_settings-do-messages-on-same-request';
49
+
50 50
 
51
-    /**
52
-     * Selector for the Global Messages Settings submit button in the Messages Settings tab.
53
-     * @var string
54
-     */
55
-    const GLOBAL_MESSAGES_SETTINGS_SUBMIT_SELECTOR = '#global_messages_settings-update-settings-submit';
56
-
57
-
58
-    /**
59
-     * This is the container where active message types for a messenger are found/dragged to.
60
-     * @var string
61
-     */
62
-    const MESSAGES_SETTINGS_ACTIVE_MESSAGE_TYPES_CONTAINER_SELECTOR = '#active-message-types';
63
-
64
-
65
-    /**
66
-     * Locator for the context switcher selector on the Message Template Editor page.
67
-     * @var string
68
-     */
69
-    const MESSAGES_CONTEXT_SWITCHER_SELECTOR = "//form[@id='ee-msg-context-switcher-frm']/select";
70
-
71
-
72
-    /**
73
-     * Locator for the context switcher submit button in the Message Template Editor page.
74
-     * @var string
75
-     */
76
-    const MESSAGES_CONTEXT_SWITCHER_BUTTON_SELECTOR = "#submit-msg-context-switcher-sbmt";
77
-
78
-
79
-    /**
80
-     * Locator for the dialog container used for housing viewed messages in the message activity list table.
81
-     * @var string
82
-     */
83
-    const MESSAGES_LIST_TABLE_VIEW_MESSAGE_DIALOG_CONTAINER_SELECTOR = '.ee-admin-dialog-container-inner-content';
84
-
85
-
86
-
87
-    /**
88
-     * @param string $additional_params Any additional request parameters for the generated url should be included as
89
-     *                                  a string.
90
-     * @return string
91
-     */
92
-    public static function messageActivityListTableUrl($additional_params = '')
93
-    {
94
-        return self::adminUrl('espresso_messages', 'default', $additional_params);
95
-    }
96
-
97
-
98
-    /**
99
-     * @param string $additional_params Any additional request parameters for the generated url should be included as
100
-     *                                  a string.
101
-     * @return string
102
-     */
103
-    public static function defaultMessageTemplateListTableUrl($additional_params = '')
104
-    {
105
-        return self::adminUrl('espresso_messages', 'global_mtps', $additional_params);
106
-    }
107
-
108
-
109
-    /**
110
-     * @param string $additional_params Any additional request parameters for the generated url should be included as
111
-     *                                  a string.
112
-     * @return string
113
-     */
114
-    public static function customMessageTemplateListTableUrl($additional_params = '')
115
-    {
116
-        return self::adminUrl('espresso_messages', 'custom_mtps', $additional_params);
117
-    }
118
-
119
-
120
-    /**
121
-     * @return string
122
-     */
123
-    public static function messageSettingsUrl()
124
-    {
125
-        return self::adminUrl('espresso_messages', 'settings');
126
-    }
127
-
128
-
129
-
130
-    public static function draggableSettingsBoxSelectorForMessageTypeAndMessenger(
131
-        $message_type_slug,
132
-        $messenger_slug = 'email'
133
-    ) {
134
-        return "#$message_type_slug-messagetype-$messenger_slug";
135
-    }
136
-
137
-
138
-    /**
139
-     * @param string $message_type_slug
140
-     * @param string $context
141
-     * @return string
142
-     */
143
-    public static function editMessageTemplateClassByMessageType($message_type_slug, $context = '')
144
-    {
145
-        return $context
146
-            ? '.' . $message_type_slug . '-' . $context . '-edit-link'
147
-            : '.' . $message_type_slug . '-edit-link';
148
-    }
149
-
150
-
151
-    /**
152
-     * Selector for (a) specific table cell(s) in the Messages Activity list table for the given parameters.
153
-     *
154
-     * @param        $field
155
-     * @param        $message_type_label
156
-     * @param string $message_status
157
-     * @param string $messenger
158
-     * @param string $context
159
-     * @param string $table_cell_content_for_field
160
-     * @param int    $number_in_set   It's possible that the given parameters could match multiple items in the view.
161
-     *                                This allows you to indicate which item from the set to match.  If this is set to 0
162
-     *                                then all matches for the locator will be returned.
163
-     * @return string
164
-     */
165
-    public static function messagesActivityListTableCellSelectorFor(
166
-        $field,
167
-        $message_type_label,
168
-        $message_status = self::MESSAGE_STATUS_SENT,
169
-        $messenger = 'Email',
170
-        $context = 'Event Admin',
171
-        $table_cell_content_for_field = '',
172
-        $number_in_set = 1
173
-    ) {
174
-        $selector = "//tbody[@id='the-list']";
175
-        $selector .= "//tr[contains(@class, 'msg-status-$message_status')]"
176
-                     . "//td[contains(@class, 'message_type') and text()='$message_type_label']";
177
-        if ($messenger) {
178
-            $selector .= "/ancestor::tr/td[contains(@class, 'messenger') and text()='$messenger']";
179
-        }
180
-        $selector .= "/ancestor::tr/td[contains(@class, 'column-context') and text()='$context']";
181
-        $selector .= $table_cell_content_for_field
182
-            ? "/ancestor::tr/td[contains(@class, 'column-$field') and text()='$table_cell_content_for_field']"
183
-            : "/ancestor::tr/td[contains(@class, 'column-$field')]";
184
-        return $number_in_set > 0 ? Locator::elementAt($selector, $number_in_set) : $selector;
185
-    }
186
-
187
-
188
-    /**
189
-     * Selector for the Create Custom button found in the message template list table.
190
-     * @param string $message_type_label
191
-     * @param string $messenger_label
192
-     * @return string
193
-     */
194
-    public static function createCustomButtonForMessageTypeAndMessenger($message_type_label, $messenger_label)
195
-    {
196
-        $selector = "//tr/td[contains(@class, 'message_type') and text()='$message_type_label']"
197
-                    . "//ancestor::tr/td[contains(@class, 'messenger') and contains(., '$messenger_label')]"
198
-                    . "//ancestor::tr/td/a[@class='button button-small']";
199
-        return $selector;
200
-    }
201
-
202
-
203
-    /**
204
-     * Note, this could potentially match multiple buttons in the view so the selector is intentionally restricted to
205
-     * the FIRST match (which will be the latest message sent if the table is default sorted).
206
-     *
207
-     * @param string $message_type_label    The visible message type label for the row you want to match
208
-     * @param string $message_status        The status of the message for the row you want to match.
209
-     * @param string $messenger             The visible messenger label for the row you want to match.
210
-     * @param string $context               The visible context label for the row you want to match.
211
-     * @param int    $number_in_set         It's possible that the given parameters could match multiple items in the
212
-     *                                      view. This allows you to indicate which item from the set to match.
213
-     * @return string
214
-     */
215
-    public static function messagesActivityListTableViewButtonSelectorFor(
216
-        $message_type_label,
217
-        $message_status = self::MESSAGE_STATUS_SENT,
218
-        $messenger = 'Email',
219
-        $context = 'Event Admin',
220
-        $number_in_set = 1
221
-    ) {
222
-        $selector = self::messagesActivityListTableCellSelectorFor(
223
-            'action',
224
-            $message_type_label,
225
-            $message_status,
226
-            $messenger,
227
-            $context,
228
-            '',
229
-            $number_in_set
230
-        );
231
-        $selector .= "/a/span[contains(@class, 'ee-message-action-link-view')"
232
-                     . " and not(contains(@class, 'ee-message-action-link-view_transaction'))]";
233
-        return $selector;
234
-    }
235
-
236
-
237
-
238
-    /**
239
-     * Locator for the delete action link for a message item in the message activity list table.
240
-     * Note: The link is not visible by default, so the column would need hovered over for the link to appear.
241
-     * @param        $message_type_label
242
-     * @param string $message_status
243
-     * @param string $messenger
244
-     * @param string $context
245
-     * @param int    $number_in_set
246
-     * @return string
247
-     */
248
-    public static function messagesActivityListTableDeleteActionSelectorFor(
249
-        $message_type_label,
250
-        $message_status = self::MESSAGE_STATUS_SENT,
251
-        $messenger = 'Email',
252
-        $context = 'Event Admin',
253
-        $number_in_set = 1
254
-    ) {
255
-        $selector = self::messagesActivityListTableCellSelectorFor(
256
-            'to',
257
-            $message_type_label,
258
-            $message_status,
259
-            $messenger,
260
-            $context,
261
-            '',
262
-            $number_in_set
263
-        );
264
-        $selector .= "/div/span[@class='delete']/a";
265
-        return $selector;
266
-    }
51
+	/**
52
+	 * Selector for the Global Messages Settings submit button in the Messages Settings tab.
53
+	 * @var string
54
+	 */
55
+	const GLOBAL_MESSAGES_SETTINGS_SUBMIT_SELECTOR = '#global_messages_settings-update-settings-submit';
56
+
57
+
58
+	/**
59
+	 * This is the container where active message types for a messenger are found/dragged to.
60
+	 * @var string
61
+	 */
62
+	const MESSAGES_SETTINGS_ACTIVE_MESSAGE_TYPES_CONTAINER_SELECTOR = '#active-message-types';
63
+
64
+
65
+	/**
66
+	 * Locator for the context switcher selector on the Message Template Editor page.
67
+	 * @var string
68
+	 */
69
+	const MESSAGES_CONTEXT_SWITCHER_SELECTOR = "//form[@id='ee-msg-context-switcher-frm']/select";
70
+
71
+
72
+	/**
73
+	 * Locator for the context switcher submit button in the Message Template Editor page.
74
+	 * @var string
75
+	 */
76
+	const MESSAGES_CONTEXT_SWITCHER_BUTTON_SELECTOR = "#submit-msg-context-switcher-sbmt";
77
+
78
+
79
+	/**
80
+	 * Locator for the dialog container used for housing viewed messages in the message activity list table.
81
+	 * @var string
82
+	 */
83
+	const MESSAGES_LIST_TABLE_VIEW_MESSAGE_DIALOG_CONTAINER_SELECTOR = '.ee-admin-dialog-container-inner-content';
84
+
85
+
86
+
87
+	/**
88
+	 * @param string $additional_params Any additional request parameters for the generated url should be included as
89
+	 *                                  a string.
90
+	 * @return string
91
+	 */
92
+	public static function messageActivityListTableUrl($additional_params = '')
93
+	{
94
+		return self::adminUrl('espresso_messages', 'default', $additional_params);
95
+	}
96
+
97
+
98
+	/**
99
+	 * @param string $additional_params Any additional request parameters for the generated url should be included as
100
+	 *                                  a string.
101
+	 * @return string
102
+	 */
103
+	public static function defaultMessageTemplateListTableUrl($additional_params = '')
104
+	{
105
+		return self::adminUrl('espresso_messages', 'global_mtps', $additional_params);
106
+	}
107
+
108
+
109
+	/**
110
+	 * @param string $additional_params Any additional request parameters for the generated url should be included as
111
+	 *                                  a string.
112
+	 * @return string
113
+	 */
114
+	public static function customMessageTemplateListTableUrl($additional_params = '')
115
+	{
116
+		return self::adminUrl('espresso_messages', 'custom_mtps', $additional_params);
117
+	}
118
+
119
+
120
+	/**
121
+	 * @return string
122
+	 */
123
+	public static function messageSettingsUrl()
124
+	{
125
+		return self::adminUrl('espresso_messages', 'settings');
126
+	}
127
+
128
+
129
+
130
+	public static function draggableSettingsBoxSelectorForMessageTypeAndMessenger(
131
+		$message_type_slug,
132
+		$messenger_slug = 'email'
133
+	) {
134
+		return "#$message_type_slug-messagetype-$messenger_slug";
135
+	}
136
+
137
+
138
+	/**
139
+	 * @param string $message_type_slug
140
+	 * @param string $context
141
+	 * @return string
142
+	 */
143
+	public static function editMessageTemplateClassByMessageType($message_type_slug, $context = '')
144
+	{
145
+		return $context
146
+			? '.' . $message_type_slug . '-' . $context . '-edit-link'
147
+			: '.' . $message_type_slug . '-edit-link';
148
+	}
149
+
150
+
151
+	/**
152
+	 * Selector for (a) specific table cell(s) in the Messages Activity list table for the given parameters.
153
+	 *
154
+	 * @param        $field
155
+	 * @param        $message_type_label
156
+	 * @param string $message_status
157
+	 * @param string $messenger
158
+	 * @param string $context
159
+	 * @param string $table_cell_content_for_field
160
+	 * @param int    $number_in_set   It's possible that the given parameters could match multiple items in the view.
161
+	 *                                This allows you to indicate which item from the set to match.  If this is set to 0
162
+	 *                                then all matches for the locator will be returned.
163
+	 * @return string
164
+	 */
165
+	public static function messagesActivityListTableCellSelectorFor(
166
+		$field,
167
+		$message_type_label,
168
+		$message_status = self::MESSAGE_STATUS_SENT,
169
+		$messenger = 'Email',
170
+		$context = 'Event Admin',
171
+		$table_cell_content_for_field = '',
172
+		$number_in_set = 1
173
+	) {
174
+		$selector = "//tbody[@id='the-list']";
175
+		$selector .= "//tr[contains(@class, 'msg-status-$message_status')]"
176
+					 . "//td[contains(@class, 'message_type') and text()='$message_type_label']";
177
+		if ($messenger) {
178
+			$selector .= "/ancestor::tr/td[contains(@class, 'messenger') and text()='$messenger']";
179
+		}
180
+		$selector .= "/ancestor::tr/td[contains(@class, 'column-context') and text()='$context']";
181
+		$selector .= $table_cell_content_for_field
182
+			? "/ancestor::tr/td[contains(@class, 'column-$field') and text()='$table_cell_content_for_field']"
183
+			: "/ancestor::tr/td[contains(@class, 'column-$field')]";
184
+		return $number_in_set > 0 ? Locator::elementAt($selector, $number_in_set) : $selector;
185
+	}
186
+
187
+
188
+	/**
189
+	 * Selector for the Create Custom button found in the message template list table.
190
+	 * @param string $message_type_label
191
+	 * @param string $messenger_label
192
+	 * @return string
193
+	 */
194
+	public static function createCustomButtonForMessageTypeAndMessenger($message_type_label, $messenger_label)
195
+	{
196
+		$selector = "//tr/td[contains(@class, 'message_type') and text()='$message_type_label']"
197
+					. "//ancestor::tr/td[contains(@class, 'messenger') and contains(., '$messenger_label')]"
198
+					. "//ancestor::tr/td/a[@class='button button-small']";
199
+		return $selector;
200
+	}
201
+
202
+
203
+	/**
204
+	 * Note, this could potentially match multiple buttons in the view so the selector is intentionally restricted to
205
+	 * the FIRST match (which will be the latest message sent if the table is default sorted).
206
+	 *
207
+	 * @param string $message_type_label    The visible message type label for the row you want to match
208
+	 * @param string $message_status        The status of the message for the row you want to match.
209
+	 * @param string $messenger             The visible messenger label for the row you want to match.
210
+	 * @param string $context               The visible context label for the row you want to match.
211
+	 * @param int    $number_in_set         It's possible that the given parameters could match multiple items in the
212
+	 *                                      view. This allows you to indicate which item from the set to match.
213
+	 * @return string
214
+	 */
215
+	public static function messagesActivityListTableViewButtonSelectorFor(
216
+		$message_type_label,
217
+		$message_status = self::MESSAGE_STATUS_SENT,
218
+		$messenger = 'Email',
219
+		$context = 'Event Admin',
220
+		$number_in_set = 1
221
+	) {
222
+		$selector = self::messagesActivityListTableCellSelectorFor(
223
+			'action',
224
+			$message_type_label,
225
+			$message_status,
226
+			$messenger,
227
+			$context,
228
+			'',
229
+			$number_in_set
230
+		);
231
+		$selector .= "/a/span[contains(@class, 'ee-message-action-link-view')"
232
+					 . " and not(contains(@class, 'ee-message-action-link-view_transaction'))]";
233
+		return $selector;
234
+	}
235
+
236
+
237
+
238
+	/**
239
+	 * Locator for the delete action link for a message item in the message activity list table.
240
+	 * Note: The link is not visible by default, so the column would need hovered over for the link to appear.
241
+	 * @param        $message_type_label
242
+	 * @param string $message_status
243
+	 * @param string $messenger
244
+	 * @param string $context
245
+	 * @param int    $number_in_set
246
+	 * @return string
247
+	 */
248
+	public static function messagesActivityListTableDeleteActionSelectorFor(
249
+		$message_type_label,
250
+		$message_status = self::MESSAGE_STATUS_SENT,
251
+		$messenger = 'Email',
252
+		$context = 'Event Admin',
253
+		$number_in_set = 1
254
+	) {
255
+		$selector = self::messagesActivityListTableCellSelectorFor(
256
+			'to',
257
+			$message_type_label,
258
+			$message_status,
259
+			$messenger,
260
+			$context,
261
+			'',
262
+			$number_in_set
263
+		);
264
+		$selector .= "/div/span[@class='delete']/a";
265
+		return $selector;
266
+	}
267 267
 }
268 268
\ No newline at end of file
Please login to merge, or discard this patch.
acceptance_tests/tests/c-TestCustomMessageTemplateCept.php 1 patch
Indentation   +27 added lines, -27 removed lines patch added patch discarded remove patch
@@ -18,14 +18,14 @@  discard block
 block discarded – undo
18 18
 $event_one_link = $event_two_link = $event_three_link = '';
19 19
 
20 20
 $I->wantTo(
21
-    'Test that when registrations for multiple events are completed, and those events share the same custom'
22
-    . 'template, that that custom template will be used.'
21
+	'Test that when registrations for multiple events are completed, and those events share the same custom'
22
+	. 'template, that that custom template will be used.'
23 23
 );
24 24
 
25 25
 //need the MER plugin active for this test (we'll deactivate it after).
26 26
 $I->ensurePluginActive(
27
-    'event-espresso-mer-multi-event-registration',
28
-    'activated'
27
+	'event-espresso-mer-multi-event-registration',
28
+	'activated'
29 29
 );
30 30
 
31 31
 $I->loginAsAdmin();
@@ -83,9 +83,9 @@  discard block
 block discarded – undo
83 83
 
84 84
 
85 85
 $test_registration_details = array(
86
-    'fname' => 'CTGuy',
87
-    'lname' => 'Dude',
88
-    'email' => '[email protected]'
86
+	'fname' => 'CTGuy',
87
+	'lname' => 'Dude',
88
+	'email' => '[email protected]'
89 89
 );
90 90
 
91 91
 $I->amGoingTo('Register for Event One and Event Two and verify Custom Template A was used.');
@@ -111,23 +111,23 @@  discard block
 block discarded – undo
111 111
 $I->loginAsAdmin();
112 112
 $I->amOnMessagesActivityListTablePage();
113 113
 $I->viewMessageInMessagesListTableFor(
114
-    'Registration Approved',
115
-    MessagesAdmin::MESSAGE_STATUS_SENT,
116
-    'Email',
117
-    'Registrant'
114
+	'Registration Approved',
115
+	MessagesAdmin::MESSAGE_STATUS_SENT,
116
+	'Email',
117
+	'Registrant'
118 118
 );
119 119
 $I->seeTextInViewMessageModal($custom_template_a_label);
120 120
 $I->dismissMessageModal();
121 121
 $I->deleteMessageInMessagesListTableFor(
122
-    'Registration Approved',
123
-    MessagesAdmin::MESSAGE_STATUS_SENT,
124
-    'Email',
125
-    'Registrant'
122
+	'Registration Approved',
123
+	MessagesAdmin::MESSAGE_STATUS_SENT,
124
+	'Email',
125
+	'Registrant'
126 126
 );
127 127
 
128 128
 //verify admin context
129 129
 $I->viewMessageInMessagesListTableFor(
130
-    'Registration Approved'
130
+	'Registration Approved'
131 131
 );
132 132
 $I->seeTextInViewMessageModal($custom_template_a_label);
133 133
 $I->dismissMessageModal();
@@ -156,25 +156,25 @@  discard block
 block discarded – undo
156 156
 $I->loginAsAdmin();
157 157
 $I->amOnMessagesActivityListTablePage();
158 158
 $I->viewMessageInMessagesListTableFor(
159
-    'Registration Approved',
160
-    MessagesAdmin::MESSAGE_STATUS_SENT,
161
-    'Email',
162
-    'Registrant'
159
+	'Registration Approved',
160
+	MessagesAdmin::MESSAGE_STATUS_SENT,
161
+	'Email',
162
+	'Registrant'
163 163
 );
164 164
 $I->waitForElementVisible(MessagesAdmin::MESSAGES_LIST_TABLE_VIEW_MESSAGE_DIALOG_CONTAINER_SELECTOR);
165 165
 $I->dontSeeTextInViewMessageModal($custom_template_a_label);
166 166
 $I->dontSeeTextInViewMessageModal($custom_template_b_label);
167 167
 $I->dismissMessageModal();
168 168
 $I->deleteMessageInMessagesListTableFor(
169
-    'Registration Approved',
170
-    MessagesAdmin::MESSAGE_STATUS_SENT,
171
-    'Email',
172
-    'Registrant'
169
+	'Registration Approved',
170
+	MessagesAdmin::MESSAGE_STATUS_SENT,
171
+	'Email',
172
+	'Registrant'
173 173
 );
174 174
 
175 175
 //verify admin context
176 176
 $I->viewMessageInMessagesListTableFor(
177
-    'Registration Approved'
177
+	'Registration Approved'
178 178
 );
179 179
 $I->waitForElementVisible(MessagesAdmin::MESSAGES_LIST_TABLE_VIEW_MESSAGE_DIALOG_CONTAINER_SELECTOR);
180 180
 $I->dontSee($custom_template_a_label);
@@ -186,6 +186,6 @@  discard block
 block discarded – undo
186 186
 
187 187
 //deactivate MER plugin so its not active for future tests
188 188
 $I->ensurePluginDeactivated(
189
-    'event-espresso-mer-multi-event-registration',
190
-    'Plugin deactivated'
189
+	'event-espresso-mer-multi-event-registration',
190
+	'Plugin deactivated'
191 191
 );
192 192
\ No newline at end of file
Please login to merge, or discard this patch.
acceptance_tests/Helpers/MessagesAdmin.php 1 patch
Indentation   +238 added lines, -238 removed lines patch added patch discarded remove patch
@@ -10,242 +10,242 @@
 block discarded – undo
10 10
  */
11 11
 trait MessagesAdmin
12 12
 {
13
-    /**
14
-     * @param string $additional_params Any additional request parameters for the generated url should be included as
15
-     *                                  a string.
16
-     */
17
-    public function amOnMessagesActivityListTablePage($additional_params = '')
18
-    {
19
-        $this->actor()->amOnAdminPage(MessagesPage::messageActivityListTableUrl($additional_params));
20
-    }
21
-
22
-    /**
23
-     * @param string $additional_params Any additional request parameters for the generated url should be included as
24
-     *                                  a string.
25
-     */
26
-    public function amOnDefaultMessageTemplateListTablePage($additional_params = '')
27
-    {
28
-        $this->actor()->amOnAdminPage(MessagesPage::defaultMessageTemplateListTableUrl($additional_params));
29
-    }
30
-
31
-
32
-    /**
33
-     * @param string $additional_params Any additional request parameters for the generated url should be included as
34
-     *                                  a string.
35
-     */
36
-    public function amOnCustomMessageTemplateListTablePage($additional_params = '')
37
-    {
38
-        $this->actor()->amOnAdminPage(MessagesPage::customMessageTemplateListTableUrl($additional_params));
39
-    }
40
-
41
-
42
-    /**
43
-     * Directs to message settings page
44
-     */
45
-    public function amOnMessageSettingsPage()
46
-    {
47
-        $this->actor()->amOnAdminPage(MessagesPage::messageSettingsUrl());
48
-    }
49
-
50
-
51
-    public function activateMessageTypeForMessenger($message_type_slug, $messenger_slug = 'email')
52
-    {
53
-        $this->actor()->dragAndDrop(
54
-            MessagesPage::draggableSettingsBoxSelectorForMessageTypeAndMessenger($message_type_slug, $messenger_slug),
55
-            MessagesPage::MESSAGES_SETTINGS_ACTIVE_MESSAGE_TYPES_CONTAINER_SELECTOR
56
-        );
57
-    }
58
-
59
-
60
-    /**
61
-     * Assumes you are already on the list table page that has the ui for editing the template.
62
-     * @param string $message_type_slug
63
-     * @param string $context [optional] if you want to click directly to the given context in the editor
64
-     */
65
-    public function clickToEditMessageTemplateByMessageType($message_type_slug, $context = '')
66
-    {
67
-        $this->actor()->click(MessagesPage::editMessageTemplateClassByMessageType($message_type_slug, $context));
68
-    }
69
-
70
-
71
-    /**
72
-     * Use this action to verify that the count for the given text in the specified field is as expected.  For example
73
-     * filling the condition of, "There should only be 1 instance of `[email protected]` in all the 'to' column.
74
-     *
75
-     * @param int    $expected_occurence_count
76
-     * @param string $text_to_check_for
77
-     * @param string $field
78
-     * @param string $message_type_label
79
-     * @param string $message_status
80
-     * @param string $messenger
81
-     * @param string $context
82
-     */
83
-    public function verifyMatchingCountofTextInMessageActivityListTableFor(
84
-        $expected_occurence_count,
85
-        $text_to_check_for,
86
-        $field,
87
-        $message_type_label,
88
-        $message_status = MessagesPage::MESSAGE_STATUS_SENT,
89
-        $messenger = 'Email',
90
-        $context = 'Event Admin'
91
-    ) {
92
-        $elements = $this->actor()->grabMultiple(MessagesPage::messagesActivityListTableCellSelectorFor(
93
-            $field,
94
-            $message_type_label,
95
-            $message_status,
96
-            $messenger,
97
-            $context,
98
-            $text_to_check_for,
99
-            0
100
-        ));
101
-        $actual_count = count($elements);
102
-        $this->actor()->assertEquals(
103
-            $expected_occurence_count,
104
-            $actual_count,
105
-            sprintf(
106
-                'Expected %s of the %s text for the %s field but there were actually %s counted.',
107
-                $expected_occurence_count,
108
-                $text_to_check_for,
109
-                $field,
110
-                $actual_count
111
-            )
112
-        );
113
-    }
114
-
115
-
116
-    /**
117
-     * This will create a custom message template for the given messenger and message type from the context of the
118
-     * default (global) message template list table.
119
-     * Also takes care of verifying the template was created.
120
-     * @param string $message_type_label
121
-     * @param string $messenger_label
122
-     */
123
-    public function createCustomMessageTemplateFromDefaultFor($message_type_label, $messenger_label)
124
-    {
125
-        $this->amOnDefaultMessageTemplateListTablePage();
126
-        $this->actor()->click(
127
-            MessagesPage::createCustomButtonForMessageTypeAndMessenger(
128
-                $message_type_label,
129
-                $messenger_label
130
-            )
131
-        );
132
-        $this->actor()->seeInField('#title', 'New Custom Template');
133
-    }
134
-
135
-
136
-    /**
137
-     * This switches the context of the current messages template to the given reference.
138
-     * @param string $context_reference  This should be the visible label for the option.
139
-     */
140
-    public function switchContextTo($context_reference)
141
-    {
142
-        $this->actor()->selectOption(MessagesPage::MESSAGES_CONTEXT_SWITCHER_SELECTOR, $context_reference);
143
-        $this->actor()->click(MessagesPage::MESSAGES_CONTEXT_SWITCHER_BUTTON_SELECTOR);
144
-        $this->actor()->waitForText($context_reference, 10, 'h1');
145
-    }
146
-
147
-
148
-    /**
149
-     * This takes care of clicking the View Message icon for the given parameters.
150
-     * Assumes you are already viewing the messages activity list table.
151
-     * @param        $message_type_label
152
-     * @param        $message_status
153
-     * @param string $messenger
154
-     * @param string $context
155
-     * @param int    $number_in_set
156
-     */
157
-    public function viewMessageInMessagesListTableFor(
158
-        $message_type_label,
159
-        $message_status = MessagesPage::MESSAGE_STATUS_SENT,
160
-        $messenger = 'Email',
161
-        $context = 'Event Admin',
162
-        $number_in_set = 1
163
-    ) {
164
-        $this->actor()->click(MessagesPage::messagesActivityListTableViewButtonSelectorFor(
165
-            $message_type_label,
166
-            $message_status,
167
-            $messenger,
168
-            $context,
169
-            $number_in_set
170
-        ));
171
-    }
172
-
173
-
174
-    /**
175
-     * Takes care of deleting a message matching the given parameters via the message activity list table.
176
-     * Assumes you are already viewing the messages activity list table.
177
-     * @param        $message_type_label
178
-     * @param        $message_status
179
-     * @param string $messenger
180
-     * @param string $context
181
-     * @param int    $number_in_set
182
-     */
183
-    public function deleteMessageInMessagesListTableFor(
184
-        $message_type_label,
185
-        $message_status = MessagesPage::MESSAGE_STATUS_SENT,
186
-        $messenger = 'Email',
187
-        $context = 'Event Admin',
188
-        $number_in_set = 1
189
-    ) {
190
-        $delete_action_selector = MessagesPage::messagesActivityListTableDeleteActionSelectorFor(
191
-            $message_type_label,
192
-            $message_status,
193
-            $messenger,
194
-            $context,
195
-            $number_in_set
196
-        );
197
-        $this->actor()->moveMouseOver(
198
-            MessagesPage::messagesActivityListTableCellSelectorFor(
199
-                'to',
200
-                $message_type_label,
201
-                $message_status,
202
-                $messenger,
203
-                $context,
204
-                '',
205
-                $number_in_set
206
-            ),
207
-            5,
208
-            5
209
-        );
210
-        $this->actor()->waitForElementVisible(
211
-            $delete_action_selector
212
-        );
213
-        $this->actor()->click(
214
-            $delete_action_selector
215
-        );
216
-        $this->actor()->waitForText('successfully deleted');
217
-    }
218
-
219
-
220
-    /**
221
-     * Assuming you have already triggered the view modal for a single message from the context of the message activity
222
-     * list table, this will take care of validating the given text is in that window.
223
-     * @param string $text_to_view
224
-     */
225
-    public function seeTextInViewMessageModal($text_to_view, $should_not_see = false)
226
-    {
227
-        $this->actor()->waitForElementVisible('.ee-admin-dialog-container-inner-content');
228
-        $this->actor()->switchToIframe('message-view-window');
229
-        $should_not_see ? $this->actor()->dontSee($text_to_view) : $this->actor()->see($text_to_view);
230
-        $this->actor()->switchToIframe();
231
-    }
232
-
233
-
234
-    /**
235
-     * Assuming you have already triggered the view modal for a single message from the context of the message activity
236
-     * list table, this will take care of validating the given text is NOT that window.
237
-     * @param string $text_to_view
238
-     */
239
-    public function dontSeeTextInViewMessageModal($text_to_view)
240
-    {
241
-        $this->seeTextInViewMessageModal($text_to_view, true);
242
-    }
243
-
244
-
245
-    public function dismissMessageModal()
246
-    {
247
-        $this->actor()->click('#espresso-admin-page-overlay-dv');
248
-        //this is needed otherwise phantom js gets stuck in the wrong context and any future element events will fail.
249
-        $this->actor()->click('form#EE_Message_List_Table-table-frm');
250
-    }
13
+	/**
14
+	 * @param string $additional_params Any additional request parameters for the generated url should be included as
15
+	 *                                  a string.
16
+	 */
17
+	public function amOnMessagesActivityListTablePage($additional_params = '')
18
+	{
19
+		$this->actor()->amOnAdminPage(MessagesPage::messageActivityListTableUrl($additional_params));
20
+	}
21
+
22
+	/**
23
+	 * @param string $additional_params Any additional request parameters for the generated url should be included as
24
+	 *                                  a string.
25
+	 */
26
+	public function amOnDefaultMessageTemplateListTablePage($additional_params = '')
27
+	{
28
+		$this->actor()->amOnAdminPage(MessagesPage::defaultMessageTemplateListTableUrl($additional_params));
29
+	}
30
+
31
+
32
+	/**
33
+	 * @param string $additional_params Any additional request parameters for the generated url should be included as
34
+	 *                                  a string.
35
+	 */
36
+	public function amOnCustomMessageTemplateListTablePage($additional_params = '')
37
+	{
38
+		$this->actor()->amOnAdminPage(MessagesPage::customMessageTemplateListTableUrl($additional_params));
39
+	}
40
+
41
+
42
+	/**
43
+	 * Directs to message settings page
44
+	 */
45
+	public function amOnMessageSettingsPage()
46
+	{
47
+		$this->actor()->amOnAdminPage(MessagesPage::messageSettingsUrl());
48
+	}
49
+
50
+
51
+	public function activateMessageTypeForMessenger($message_type_slug, $messenger_slug = 'email')
52
+	{
53
+		$this->actor()->dragAndDrop(
54
+			MessagesPage::draggableSettingsBoxSelectorForMessageTypeAndMessenger($message_type_slug, $messenger_slug),
55
+			MessagesPage::MESSAGES_SETTINGS_ACTIVE_MESSAGE_TYPES_CONTAINER_SELECTOR
56
+		);
57
+	}
58
+
59
+
60
+	/**
61
+	 * Assumes you are already on the list table page that has the ui for editing the template.
62
+	 * @param string $message_type_slug
63
+	 * @param string $context [optional] if you want to click directly to the given context in the editor
64
+	 */
65
+	public function clickToEditMessageTemplateByMessageType($message_type_slug, $context = '')
66
+	{
67
+		$this->actor()->click(MessagesPage::editMessageTemplateClassByMessageType($message_type_slug, $context));
68
+	}
69
+
70
+
71
+	/**
72
+	 * Use this action to verify that the count for the given text in the specified field is as expected.  For example
73
+	 * filling the condition of, "There should only be 1 instance of `[email protected]` in all the 'to' column.
74
+	 *
75
+	 * @param int    $expected_occurence_count
76
+	 * @param string $text_to_check_for
77
+	 * @param string $field
78
+	 * @param string $message_type_label
79
+	 * @param string $message_status
80
+	 * @param string $messenger
81
+	 * @param string $context
82
+	 */
83
+	public function verifyMatchingCountofTextInMessageActivityListTableFor(
84
+		$expected_occurence_count,
85
+		$text_to_check_for,
86
+		$field,
87
+		$message_type_label,
88
+		$message_status = MessagesPage::MESSAGE_STATUS_SENT,
89
+		$messenger = 'Email',
90
+		$context = 'Event Admin'
91
+	) {
92
+		$elements = $this->actor()->grabMultiple(MessagesPage::messagesActivityListTableCellSelectorFor(
93
+			$field,
94
+			$message_type_label,
95
+			$message_status,
96
+			$messenger,
97
+			$context,
98
+			$text_to_check_for,
99
+			0
100
+		));
101
+		$actual_count = count($elements);
102
+		$this->actor()->assertEquals(
103
+			$expected_occurence_count,
104
+			$actual_count,
105
+			sprintf(
106
+				'Expected %s of the %s text for the %s field but there were actually %s counted.',
107
+				$expected_occurence_count,
108
+				$text_to_check_for,
109
+				$field,
110
+				$actual_count
111
+			)
112
+		);
113
+	}
114
+
115
+
116
+	/**
117
+	 * This will create a custom message template for the given messenger and message type from the context of the
118
+	 * default (global) message template list table.
119
+	 * Also takes care of verifying the template was created.
120
+	 * @param string $message_type_label
121
+	 * @param string $messenger_label
122
+	 */
123
+	public function createCustomMessageTemplateFromDefaultFor($message_type_label, $messenger_label)
124
+	{
125
+		$this->amOnDefaultMessageTemplateListTablePage();
126
+		$this->actor()->click(
127
+			MessagesPage::createCustomButtonForMessageTypeAndMessenger(
128
+				$message_type_label,
129
+				$messenger_label
130
+			)
131
+		);
132
+		$this->actor()->seeInField('#title', 'New Custom Template');
133
+	}
134
+
135
+
136
+	/**
137
+	 * This switches the context of the current messages template to the given reference.
138
+	 * @param string $context_reference  This should be the visible label for the option.
139
+	 */
140
+	public function switchContextTo($context_reference)
141
+	{
142
+		$this->actor()->selectOption(MessagesPage::MESSAGES_CONTEXT_SWITCHER_SELECTOR, $context_reference);
143
+		$this->actor()->click(MessagesPage::MESSAGES_CONTEXT_SWITCHER_BUTTON_SELECTOR);
144
+		$this->actor()->waitForText($context_reference, 10, 'h1');
145
+	}
146
+
147
+
148
+	/**
149
+	 * This takes care of clicking the View Message icon for the given parameters.
150
+	 * Assumes you are already viewing the messages activity list table.
151
+	 * @param        $message_type_label
152
+	 * @param        $message_status
153
+	 * @param string $messenger
154
+	 * @param string $context
155
+	 * @param int    $number_in_set
156
+	 */
157
+	public function viewMessageInMessagesListTableFor(
158
+		$message_type_label,
159
+		$message_status = MessagesPage::MESSAGE_STATUS_SENT,
160
+		$messenger = 'Email',
161
+		$context = 'Event Admin',
162
+		$number_in_set = 1
163
+	) {
164
+		$this->actor()->click(MessagesPage::messagesActivityListTableViewButtonSelectorFor(
165
+			$message_type_label,
166
+			$message_status,
167
+			$messenger,
168
+			$context,
169
+			$number_in_set
170
+		));
171
+	}
172
+
173
+
174
+	/**
175
+	 * Takes care of deleting a message matching the given parameters via the message activity list table.
176
+	 * Assumes you are already viewing the messages activity list table.
177
+	 * @param        $message_type_label
178
+	 * @param        $message_status
179
+	 * @param string $messenger
180
+	 * @param string $context
181
+	 * @param int    $number_in_set
182
+	 */
183
+	public function deleteMessageInMessagesListTableFor(
184
+		$message_type_label,
185
+		$message_status = MessagesPage::MESSAGE_STATUS_SENT,
186
+		$messenger = 'Email',
187
+		$context = 'Event Admin',
188
+		$number_in_set = 1
189
+	) {
190
+		$delete_action_selector = MessagesPage::messagesActivityListTableDeleteActionSelectorFor(
191
+			$message_type_label,
192
+			$message_status,
193
+			$messenger,
194
+			$context,
195
+			$number_in_set
196
+		);
197
+		$this->actor()->moveMouseOver(
198
+			MessagesPage::messagesActivityListTableCellSelectorFor(
199
+				'to',
200
+				$message_type_label,
201
+				$message_status,
202
+				$messenger,
203
+				$context,
204
+				'',
205
+				$number_in_set
206
+			),
207
+			5,
208
+			5
209
+		);
210
+		$this->actor()->waitForElementVisible(
211
+			$delete_action_selector
212
+		);
213
+		$this->actor()->click(
214
+			$delete_action_selector
215
+		);
216
+		$this->actor()->waitForText('successfully deleted');
217
+	}
218
+
219
+
220
+	/**
221
+	 * Assuming you have already triggered the view modal for a single message from the context of the message activity
222
+	 * list table, this will take care of validating the given text is in that window.
223
+	 * @param string $text_to_view
224
+	 */
225
+	public function seeTextInViewMessageModal($text_to_view, $should_not_see = false)
226
+	{
227
+		$this->actor()->waitForElementVisible('.ee-admin-dialog-container-inner-content');
228
+		$this->actor()->switchToIframe('message-view-window');
229
+		$should_not_see ? $this->actor()->dontSee($text_to_view) : $this->actor()->see($text_to_view);
230
+		$this->actor()->switchToIframe();
231
+	}
232
+
233
+
234
+	/**
235
+	 * Assuming you have already triggered the view modal for a single message from the context of the message activity
236
+	 * list table, this will take care of validating the given text is NOT that window.
237
+	 * @param string $text_to_view
238
+	 */
239
+	public function dontSeeTextInViewMessageModal($text_to_view)
240
+	{
241
+		$this->seeTextInViewMessageModal($text_to_view, true);
242
+	}
243
+
244
+
245
+	public function dismissMessageModal()
246
+	{
247
+		$this->actor()->click('#espresso-admin-page-overlay-dv');
248
+		//this is needed otherwise phantom js gets stuck in the wrong context and any future element events will fail.
249
+		$this->actor()->click('form#EE_Message_List_Table-table-frm');
250
+	}
251 251
 }
Please login to merge, or discard this patch.
admin/extend/registrations/Extend_Registrations_Admin_Page.core.php 1 patch
Indentation   +1173 added lines, -1173 removed lines patch added patch discarded remove patch
@@ -1,6 +1,6 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 if ( ! defined('EVENT_ESPRESSO_VERSION')) {
3
-    exit('NO direct script access allowed');
3
+	exit('NO direct script access allowed');
4 4
 }
5 5
 
6 6
 
@@ -17,1177 +17,1177 @@  discard block
 block discarded – undo
17 17
 {
18 18
 
19 19
 
20
-    /**
21
-     * This is used to hold the reports template data which is setup early in the request.
22
-     *
23
-     * @type array
24
-     */
25
-    protected $_reports_template_data = array();
26
-
27
-
28
-
29
-    /**
30
-     * Extend_Registrations_Admin_Page constructor.
31
-     *
32
-     * @param bool $routing
33
-     */
34
-    public function __construct($routing = true)
35
-    {
36
-        parent::__construct($routing);
37
-        if ( ! defined('REG_CAF_TEMPLATE_PATH')) {
38
-            define('REG_CAF_TEMPLATE_PATH', EE_CORE_CAF_ADMIN_EXTEND . 'registrations/templates/');
39
-            define('REG_CAF_ASSETS', EE_CORE_CAF_ADMIN_EXTEND . 'registrations/assets/');
40
-            define('REG_CAF_ASSETS_URL', EE_CORE_CAF_ADMIN_EXTEND_URL . 'registrations/assets/');
41
-        }
42
-    }
43
-
44
-
45
-
46
-    protected function _extend_page_config()
47
-    {
48
-        $this->_admin_base_path = EE_CORE_CAF_ADMIN_EXTEND . 'registrations';
49
-        $reg_id = ! empty($this->_req_data['_REG_ID']) && ! is_array($this->_req_data['_REG_ID'])
50
-            ? $this->_req_data['_REG_ID']
51
-            : 0;
52
-        // $att_id = ! empty( $this->_req_data['ATT_ID'] ) ? ! is_array( $this->_req_data['ATT_ID'] ) : 0;
53
-        // $att_id = ! empty( $this->_req_data['post'] ) && ! is_array( $this->_req_data['post'] )
54
-        // 	? $this->_req_data['post'] : $att_id;
55
-        $new_page_routes = array(
56
-            'reports'                  => array(
57
-                'func'       => '_registration_reports',
58
-                'capability' => 'ee_read_registrations',
59
-            ),
60
-            'registration_checkins'    => array(
61
-                'func'       => '_registration_checkin_list_table',
62
-                'capability' => 'ee_read_checkins',
63
-            ),
64
-            'newsletter_selected_send' => array(
65
-                'func'       => '_newsletter_selected_send',
66
-                'noheader'   => true,
67
-                'capability' => 'ee_send_message',
68
-            ),
69
-            'delete_checkin_rows'      => array(
70
-                'func'       => '_delete_checkin_rows',
71
-                'noheader'   => true,
72
-                'capability' => 'ee_delete_checkins',
73
-            ),
74
-            'delete_checkin_row'       => array(
75
-                'func'       => '_delete_checkin_row',
76
-                'noheader'   => true,
77
-                'capability' => 'ee_delete_checkin',
78
-                'obj_id'     => $reg_id,
79
-            ),
80
-            'toggle_checkin_status'    => array(
81
-                'func'       => '_toggle_checkin_status',
82
-                'noheader'   => true,
83
-                'capability' => 'ee_edit_checkin',
84
-                'obj_id'     => $reg_id,
85
-            ),
86
-            'toggle_checkin_status_bulk' => array(
87
-                'func' => '_toggle_checkin_status',
88
-                'noheader' => true,
89
-                'capability' => 'ee_edit_checkins'
90
-            ),
91
-            'event_registrations'      => array(
92
-                'func'       => '_event_registrations_list_table',
93
-                'capability' => 'ee_read_checkins',
94
-            ),
95
-            'registrations_checkin_report' => array(
96
-                'func'       => '_registrations_checkin_report',
97
-                'noheader'   => true,
98
-                'capability' => 'ee_read_registrations',
99
-            ),
100
-        );
101
-        $this->_page_routes = array_merge($this->_page_routes, $new_page_routes);
102
-        $new_page_config = array(
103
-            'reports'               => array(
104
-                'nav'           => array(
105
-                    'label' => __('Reports', 'event_espresso'),
106
-                    'order' => 30,
107
-                ),
108
-                'help_tabs'     => array(
109
-                    'registrations_reports_help_tab' => array(
110
-                        'title'    => __('Registration Reports', 'event_espresso'),
111
-                        'filename' => 'registrations_reports',
112
-                    ),
113
-                ),
114
-                /*'help_tour' => array( 'Registration_Reports_Help_Tour' ),*/
115
-                'require_nonce' => false,
116
-            ),
117
-            'event_registrations'   => array(
118
-                'nav'           => array(
119
-                    'label'      => __('Event Check-In', 'event_espresso'),
120
-                    'order'      => 10,
121
-                    'persistent' => true,
122
-                ),
123
-                'help_tabs'     => array(
124
-                    'registrations_event_checkin_help_tab'                       => array(
125
-                        'title'    => __('Registrations Event Check-In', 'event_espresso'),
126
-                        'filename' => 'registrations_event_checkin',
127
-                    ),
128
-                    'registrations_event_checkin_table_column_headings_help_tab' => array(
129
-                        'title'    => __('Event Check-In Table Column Headings', 'event_espresso'),
130
-                        'filename' => 'registrations_event_checkin_table_column_headings',
131
-                    ),
132
-                    'registrations_event_checkin_filters_help_tab'               => array(
133
-                        'title'    => __('Event Check-In Filters', 'event_espresso'),
134
-                        'filename' => 'registrations_event_checkin_filters',
135
-                    ),
136
-                    'registrations_event_checkin_views_help_tab'                 => array(
137
-                        'title'    => __('Event Check-In Views', 'event_espresso'),
138
-                        'filename' => 'registrations_event_checkin_views',
139
-                    ),
140
-                    'registrations_event_checkin_other_help_tab'                 => array(
141
-                        'title'    => __('Event Check-In Other', 'event_espresso'),
142
-                        'filename' => 'registrations_event_checkin_other',
143
-                    ),
144
-                ),
145
-                'help_tour'     => array('Event_Checkin_Help_Tour'),
146
-                'qtips'         => array('Registration_List_Table_Tips'),
147
-                'list_table'    => 'EE_Event_Registrations_List_Table',
148
-                'metaboxes'     => array(),
149
-                'require_nonce' => false,
150
-            ),
151
-            'registration_checkins' => array(
152
-                'nav'           => array(
153
-                    'label'      => __('Check-In Records', 'event_espresso'),
154
-                    'order'      => 15,
155
-                    'persistent' => false,
156
-                ),
157
-                'list_table'    => 'EE_Registration_CheckIn_List_Table',
158
-                //'help_tour' => array( 'Checkin_Toggle_View_Help_Tour' ),
159
-                'metaboxes'     => array(),
160
-                'require_nonce' => false,
161
-            ),
162
-        );
163
-        $this->_page_config = array_merge($this->_page_config, $new_page_config);
164
-        $this->_page_config['contact_list']['list_table'] = 'Extend_EE_Attendee_Contact_List_Table';
165
-        $this->_page_config['default']['list_table'] = 'Extend_EE_Registrations_List_Table';
166
-    }
167
-
168
-
169
-
170
-    protected function _ajax_hooks()
171
-    {
172
-        parent::_ajax_hooks();
173
-        add_action('wp_ajax_get_newsletter_form_content', array($this, 'get_newsletter_form_content'));
174
-    }
175
-
176
-
177
-
178
-    public function load_scripts_styles()
179
-    {
180
-        parent::load_scripts_styles();
181
-        //if newsletter message type is active then let's add filter and load js for it.
182
-        if (EEH_MSG_Template::is_mt_active('newsletter')) {
183
-            //enqueue newsletter js
184
-            wp_enqueue_script(
185
-                'ee-newsletter-trigger',
186
-                REG_CAF_ASSETS_URL . 'ee-newsletter-trigger.js',
187
-                array('ee-dialog'),
188
-                EVENT_ESPRESSO_VERSION,
189
-                true
190
-            );
191
-            wp_enqueue_style(
192
-                'ee-newsletter-trigger-css',
193
-                REG_CAF_ASSETS_URL . 'ee-newsletter-trigger.css',
194
-                array(),
195
-                EVENT_ESPRESSO_VERSION
196
-            );
197
-            //hook in buttons for newsletter message type trigger.
198
-            add_action(
199
-                'AHEE__EE_Admin_List_Table__extra_tablenav__after_bottom_buttons',
200
-                array($this, 'add_newsletter_action_buttons'),
201
-                10
202
-            );
203
-        }
204
-    }
205
-
206
-
207
-
208
-    public function load_scripts_styles_reports()
209
-    {
210
-        wp_register_script(
211
-            'ee-reg-reports-js',
212
-            REG_CAF_ASSETS_URL . 'ee-registration-admin-reports.js',
213
-            array('google-charts'),
214
-            EVENT_ESPRESSO_VERSION,
215
-            true
216
-        );
217
-        wp_enqueue_script('ee-reg-reports-js');
218
-        $this->_registration_reports_js_setup();
219
-    }
220
-
221
-
222
-
223
-    protected function _add_screen_options_event_registrations()
224
-    {
225
-        $this->_per_page_screen_option();
226
-    }
227
-
228
-
229
-
230
-    protected function _add_screen_options_registration_checkins()
231
-    {
232
-        $page_title = $this->_admin_page_title;
233
-        $this->_admin_page_title = __('Check-In Records', 'event_espresso');
234
-        $this->_per_page_screen_option();
235
-        $this->_admin_page_title = $page_title;
236
-    }
237
-
238
-
239
-
240
-    protected function _set_list_table_views_event_registrations()
241
-    {
242
-        $this->_views = array(
243
-            'all' => array(
244
-                'slug'        => 'all',
245
-                'label'       => __('All', 'event_espresso'),
246
-                'count'       => 0,
247
-                'bulk_action' => ! isset($this->_req_data['event_id'])
248
-                    ? array()
249
-                    : array(
250
-                        'toggle_checkin_status_bulk' => __('Toggle Check-In', 'event_espresso'),
251
-                    ),
252
-            ),
253
-        );
254
-    }
255
-
256
-
257
-
258
-    protected function _set_list_table_views_registration_checkins()
259
-    {
260
-        $this->_views = array(
261
-            'all' => array(
262
-                'slug'        => 'all',
263
-                'label'       => __('All', 'event_espresso'),
264
-                'count'       => 0,
265
-                'bulk_action' => array('delete_checkin_rows' => __('Delete Check-In Rows', 'event_espresso')),
266
-            ),
267
-        );
268
-    }
269
-
270
-
271
-
272
-    /**
273
-     * callback for ajax action.
274
-     *
275
-     * @since 4.3.0
276
-     * @return void (JSON)
277
-     * @throws \EE_Error
278
-     */
279
-    public function get_newsletter_form_content()
280
-    {
281
-        //do a nonce check cause we're not coming in from an normal route here.
282
-        $nonce = isset($this->_req_data['get_newsletter_form_content_nonce']) ? sanitize_text_field(
283
-            $this->_req_data['get_newsletter_form_content_nonce']
284
-        ) : '';
285
-        $nonce_ref = 'get_newsletter_form_content_nonce';
286
-        $this->_verify_nonce($nonce, $nonce_ref);
287
-        //let's get the mtp for the incoming MTP_ ID
288
-        if ( ! isset($this->_req_data['GRP_ID'])) {
289
-            EE_Error::add_error(
290
-                __(
291
-                    'There must be something broken with the js or html structure because the required data for getting a message template group is not present (need an GRP_ID).',
292
-                    'event_espresso'
293
-                ),
294
-                __FILE__,
295
-                __FUNCTION__,
296
-                __LINE__
297
-            );
298
-            $this->_template_args['success'] = false;
299
-            $this->_template_args['error'] = true;
300
-            $this->_return_json();
301
-        }
302
-        $MTPG = EEM_Message_Template_Group::instance()->get_one_by_ID($this->_req_data['GRP_ID']);
303
-        if ( ! $MTPG instanceof EE_Message_Template_Group) {
304
-            EE_Error::add_error(
305
-                sprintf(
306
-                    __(
307
-                        'The GRP_ID given (%d) does not appear to have a corresponding row in the database.',
308
-                        'event_espresso'
309
-                    ),
310
-                    $this->_req_data['GRP_ID']
311
-                ),
312
-                __FILE__,
313
-                __FUNCTION__,
314
-                __LINE__
315
-            );
316
-            $this->_template_args['success'] = false;
317
-            $this->_template_args['error'] = true;
318
-            $this->_return_json();
319
-        }
320
-        $MTPs = $MTPG->context_templates();
321
-        $MTPs = $MTPs['attendee'];
322
-        $template_fields = array();
323
-        /** @var EE_Message_Template $MTP */
324
-        foreach ($MTPs as $MTP) {
325
-            $field = $MTP->get('MTP_template_field');
326
-            if ($field === 'content') {
327
-                $content = $MTP->get('MTP_content');
328
-                if ( ! empty($content['newsletter_content'])) {
329
-                    $template_fields['newsletter_content'] = $content['newsletter_content'];
330
-                }
331
-                continue;
332
-            }
333
-            $template_fields[$MTP->get('MTP_template_field')] = $MTP->get('MTP_content');
334
-        }
335
-        $this->_template_args['success'] = true;
336
-        $this->_template_args['error'] = false;
337
-        $this->_template_args['data'] = array(
338
-            'batch_message_from'    => isset($template_fields['from'])
339
-                ? $template_fields['from']
340
-                : '',
341
-            'batch_message_subject' => isset($template_fields['subject'])
342
-                ? $template_fields['subject']
343
-                : '',
344
-            'batch_message_content' => isset($template_fields['newsletter_content'])
345
-                ? $template_fields['newsletter_content']
346
-                : '',
347
-        );
348
-        $this->_return_json();
349
-    }
350
-
351
-
352
-
353
-    /**
354
-     * callback for AHEE__EE_Admin_List_Table__extra_tablenav__after_bottom_buttons action
355
-     *
356
-     * @since 4.3.0
357
-     * @param EE_Admin_List_Table $list_table
358
-     * @return void
359
-     */
360
-    public function add_newsletter_action_buttons(EE_Admin_List_Table $list_table)
361
-    {
362
-        if ( ! EE_Registry::instance()->CAP->current_user_can(
363
-            'ee_send_message',
364
-            'espresso_registrations_newsletter_selected_send'
365
-        )
366
-        ) {
367
-            return;
368
-        }
369
-        $routes_to_add_to = array(
370
-            'contact_list',
371
-            'event_registrations',
372
-            'default',
373
-        );
374
-        if ($this->_current_page === 'espresso_registrations' && in_array($this->_req_action, $routes_to_add_to)) {
375
-            if (($this->_req_action === 'event_registrations' && empty($this->_req_data['event_id']))
376
-                || (isset($this->_req_data['status']) && $this->_req_data['status'] === 'trash')
377
-            ) {
378
-                echo '';
379
-            } else {
380
-                $button_text = sprintf(
381
-                    __('Send Batch Message (%s selected)', 'event_espresso'),
382
-                    '<span class="send-selected-newsletter-count">0</span>'
383
-                );
384
-                echo '<button id="selected-batch-send-trigger" class="button secondary-button"><span class="dashicons dashicons-email "></span>'
385
-                     . $button_text
386
-                     . '</button>';
387
-                add_action('admin_footer', array($this, 'newsletter_send_form_skeleton'));
388
-            }
389
-        }
390
-    }
391
-
392
-
393
-
394
-    public function newsletter_send_form_skeleton()
395
-    {
396
-        $list_table = $this->_list_table_object;
397
-        $codes = array();
398
-        //need to templates for the newsletter message type for the template selector.
399
-        $values[] = array('text' => __('Select Template to Use', 'event_espresso'), 'id' => 0);
400
-        $mtps = EEM_Message_Template_Group::instance()->get_all(
401
-            array(array('MTP_message_type' => 'newsletter', 'MTP_messenger' => 'email'))
402
-        );
403
-        foreach ($mtps as $mtp) {
404
-            $name = $mtp->name();
405
-            $values[] = array(
406
-                'text' => empty($name) ? __('Global', 'event_espresso') : $name,
407
-                'id'   => $mtp->ID(),
408
-            );
409
-        }
410
-        //need to get a list of shortcodes that are available for the newsletter message type.
411
-        $shortcodes = EEH_MSG_Template::get_shortcodes('newsletter', 'email', array(), 'attendee', false);
412
-        foreach ($shortcodes as $field => $shortcode_array) {
413
-            $codes[$field] = implode(', ', array_keys($shortcode_array));
414
-        }
415
-        $shortcodes = $codes;
416
-        $form_template = REG_CAF_TEMPLATE_PATH . 'newsletter-send-form.template.php';
417
-        $form_template_args = array(
418
-            'form_action'       => admin_url('admin.php?page=espresso_registrations'),
419
-            'form_route'        => 'newsletter_selected_send',
420
-            'form_nonce_name'   => 'newsletter_selected_send_nonce',
421
-            'form_nonce'        => wp_create_nonce('newsletter_selected_send_nonce'),
422
-            'redirect_back_to'  => $this->_req_action,
423
-            'ajax_nonce'        => wp_create_nonce('get_newsletter_form_content_nonce'),
424
-            'template_selector' => EEH_Form_Fields::select_input('newsletter_mtp_selected', $values),
425
-            'shortcodes'        => $shortcodes,
426
-            'id_type'           => $list_table instanceof EE_Attendee_Contact_List_Table ? 'contact' : 'registration',
427
-        );
428
-        EEH_Template::display_template($form_template, $form_template_args);
429
-    }
430
-
431
-
432
-
433
-    /**
434
-     * Handles sending selected registrations/contacts a newsletter.
435
-     *
436
-     * @since  4.3.0
437
-     * @return void
438
-     * @throws \EE_Error
439
-     */
440
-    protected function _newsletter_selected_send()
441
-    {
442
-        $success = true;
443
-        //first we need to make sure we have a GRP_ID so we know what template we're sending and updating!
444
-        if (empty($this->_req_data['newsletter_mtp_selected'])) {
445
-            EE_Error::add_error(
446
-                __(
447
-                    'In order to send a message, a Message Template GRP_ID is needed. It was not provided so messages were not sent.',
448
-                    'event_espresso'
449
-                ),
450
-                __FILE__,
451
-                __FUNCTION__,
452
-                __LINE__
453
-            );
454
-            $success = false;
455
-        }
456
-        if ($success) {
457
-            //update Message template in case there are any changes
458
-            $Message_Template_Group = EEM_Message_Template_Group::instance()->get_one_by_ID(
459
-                $this->_req_data['newsletter_mtp_selected']
460
-            );
461
-            $Message_Templates = $Message_Template_Group instanceof EE_Message_Template_Group
462
-                ? $Message_Template_Group->context_templates()
463
-                : array();
464
-            if (empty($Message_Templates)) {
465
-                EE_Error::add_error(
466
-                    __(
467
-                        'Unable to retrieve message template fields from the db. Messages not sent.',
468
-                        'event_espresso'
469
-                    ),
470
-                    __FILE__,
471
-                    __FUNCTION__,
472
-                    __LINE__
473
-                );
474
-            }
475
-            //let's just update the specific fields
476
-            foreach ($Message_Templates['attendee'] as $Message_Template) {
477
-                if ($Message_Template instanceof EE_Message_Template) {
478
-                    $field = $Message_Template->get('MTP_template_field');
479
-                    $content = $Message_Template->get('MTP_content');
480
-                    $new_content = $content;
481
-                    switch ($field) {
482
-                        case 'from' :
483
-                            $new_content = ! empty($this->_req_data['batch_message']['from'])
484
-                                ? $this->_req_data['batch_message']['from']
485
-                                : $content;
486
-                            break;
487
-                        case 'subject' :
488
-                            $new_content = ! empty($this->_req_data['batch_message']['subject'])
489
-                                ? $this->_req_data['batch_message']['subject']
490
-                                : $content;
491
-                            break;
492
-                        case 'content' :
493
-                            $new_content = $content;
494
-                            $new_content['newsletter_content'] = ! empty($this->_req_data['batch_message']['content'])
495
-                                ? $this->_req_data['batch_message']['content']
496
-                                : $content['newsletter_content'];
497
-                            break;
498
-                        default :
499
-                            //continue the foreach loop, we don't want to set $new_content nor save.
500
-                            continue 2;
501
-                    }
502
-                    $Message_Template->set('MTP_content', $new_content);
503
-                    $Message_Template->save();
504
-                }
505
-            }
506
-            //great fields are updated!  now let's make sure we just have contact objects (EE_Attendee).
507
-            $id_type = ! empty($this->_req_data['batch_message']['id_type'])
508
-                ? $this->_req_data['batch_message']['id_type']
509
-                : 'registration';
510
-            //id_type will affect how we assemble the ids.
511
-            $ids = ! empty($this->_req_data['batch_message']['ids'])
512
-                ? json_decode(stripslashes($this->_req_data['batch_message']['ids']))
513
-                : array();
514
-            $registrations_used_for_contact_data = array();
515
-            //using switch because eventually we'll have other contexts that will be used for generating messages.
516
-            switch ($id_type) {
517
-                case 'registration' :
518
-                    $registrations_used_for_contact_data = EEM_Registration::instance()->get_all(
519
-                        array(
520
-                            array(
521
-                                'REG_ID' => array('IN', $ids),
522
-                            ),
523
-                        )
524
-                    );
525
-                    break;
526
-                case 'contact' :
527
-                    $registrations_used_for_contact_data = EEM_Registration::instance()
528
-                                                                           ->get_latest_registration_for_each_of_given_contacts($ids);
529
-                    break;
530
-            }
531
-            do_action(
532
-                'AHEE__Extend_Registrations_Admin_Page___newsletter_selected_send__with_registrations',
533
-                $registrations_used_for_contact_data,
534
-                $Message_Template_Group->ID()
535
-            );
536
-            //kept for backward compat, internally we no longer use this action.
537
-            //@deprecated 4.8.36.rc.002
538
-            $contacts = $id_type === 'registration'
539
-                ? EEM_Attendee::instance()->get_array_of_contacts_from_reg_ids($ids)
540
-                : EEM_Attendee::instance()->get_all(array(array('ATT_ID' => array('in', $ids))));
541
-            do_action(
542
-                'AHEE__Extend_Registrations_Admin_Page___newsletter_selected_send',
543
-                $contacts,
544
-                $Message_Template_Group->ID()
545
-            );
546
-        }
547
-        $query_args = array(
548
-            'action' => ! empty($this->_req_data['redirect_back_to'])
549
-                ? $this->_req_data['redirect_back_to']
550
-                : 'default',
551
-        );
552
-        $this->_redirect_after_action(false, '', '', $query_args, true);
553
-    }
554
-
555
-
556
-
557
-    /**
558
-     * This is called when javascript is being enqueued to setup the various data needed for the reports js.
559
-     * Also $this->{$_reports_template_data} property is set for later usage by the _registration_reports method.
560
-     */
561
-    protected function _registration_reports_js_setup()
562
-    {
563
-        $this->_reports_template_data['admin_reports'][] = $this->_registrations_per_day_report();
564
-        $this->_reports_template_data['admin_reports'][] = $this->_registrations_per_event_report();
565
-    }
566
-
567
-
568
-
569
-    /**
570
-     *        generates Business Reports regarding Registrations
571
-     *
572
-     * @access protected
573
-     * @return void
574
-     */
575
-    protected function _registration_reports()
576
-    {
577
-        $template_path = EE_ADMIN_TEMPLATE . 'admin_reports.template.php';
578
-        $this->_template_args['admin_page_content'] = EEH_Template::display_template(
579
-            $template_path,
580
-            $this->_reports_template_data,
581
-            true
582
-        );
583
-        // the final template wrapper
584
-        $this->display_admin_page_with_no_sidebar();
585
-    }
586
-
587
-
588
-
589
-    /**
590
-     * Generates Business Report showing total registrations per day.
591
-     *
592
-     * @param string $period The period (acceptable by PHP Datetime constructor) for which the report is generated.
593
-     * @return string
594
-     */
595
-    private function _registrations_per_day_report($period = '-1 month')
596
-    {
597
-        $report_ID = 'reg-admin-registrations-per-day-report-dv';
598
-        $results = EEM_Registration::instance()->get_registrations_per_day_and_per_status_report($period);
599
-        $results = (array)$results;
600
-        $regs = array();
601
-        $subtitle = '';
602
-        if ($results) {
603
-            $column_titles = array();
604
-            $tracker = 0;
605
-            foreach ($results as $result) {
606
-                $report_column_values = array();
607
-                foreach ($result as $property_name => $property_value) {
608
-                    $property_value = $property_name === 'Registration_REG_date' ? $property_value
609
-                        : (int)$property_value;
610
-                    $report_column_values[] = $property_value;
611
-                    if ($tracker === 0) {
612
-                        if ($property_name === 'Registration_REG_date') {
613
-                            $column_titles[] = __('Date (only days with registrations are shown)', 'event_espresso');
614
-                        } else {
615
-                            $column_titles[] = EEH_Template::pretty_status($property_name, false, 'sentence');
616
-                        }
617
-                    }
618
-                }
619
-                $tracker++;
620
-                $regs[] = $report_column_values;
621
-            }
622
-            //make sure the column_titles is pushed to the beginning of the array
623
-            array_unshift($regs, $column_titles);
624
-            //setup the date range.
625
-            $DateTimeZone = new DateTimeZone(EEH_DTT_Helper::get_timezone());
626
-            $beginning_date = new DateTime("now " . $period, $DateTimeZone);
627
-            $ending_date = new DateTime("now", $DateTimeZone);
628
-            $subtitle = sprintf(
629
-                _x('For the period: %1$s to %2$s', 'Used to give date range', 'event_espresso'),
630
-                $beginning_date->format('Y-m-d'),
631
-                $ending_date->format('Y-m-d')
632
-            );
633
-        }
634
-        $report_title = __('Total Registrations per Day', 'event_espresso');
635
-        $report_params = array(
636
-            'title'     => $report_title,
637
-            'subtitle'  => $subtitle,
638
-            'id'        => $report_ID,
639
-            'regs'      => $regs,
640
-            'noResults' => empty($regs),
641
-            'noRegsMsg' => sprintf(
642
-                __(
643
-                    '%sThere are currently no registration records in the last month for this report.%s',
644
-                    'event_espresso'
645
-                ),
646
-                '<h2>' . $report_title . '</h2><p>',
647
-                '</p>'
648
-            ),
649
-        );
650
-        wp_localize_script('ee-reg-reports-js', 'regPerDay', $report_params);
651
-        return $report_ID;
652
-    }
653
-
654
-
655
-
656
-    /**
657
-     * Generates Business Report showing total registrations per event.
658
-     *
659
-     * @param string $period The period (acceptable by PHP Datetime constructor) for which the report is generated.
660
-     * @return string
661
-     */
662
-    private function _registrations_per_event_report($period = '-1 month')
663
-    {
664
-        $report_ID = 'reg-admin-registrations-per-event-report-dv';
665
-        $results = EEM_Registration::instance()->get_registrations_per_event_and_per_status_report($period);
666
-        $results = (array)$results;
667
-        $regs = array();
668
-        $subtitle = '';
669
-        if ($results) {
670
-            $column_titles = array();
671
-            $tracker = 0;
672
-            foreach ($results as $result) {
673
-                $report_column_values = array();
674
-                foreach ($result as $property_name => $property_value) {
675
-                    $property_value = $property_name === 'Registration_Event' ? wp_trim_words(
676
-                        $property_value,
677
-                        4,
678
-                        '...'
679
-                    ) : (int)$property_value;
680
-                    $report_column_values[] = $property_value;
681
-                    if ($tracker === 0) {
682
-                        if ($property_name === 'Registration_Event') {
683
-                            $column_titles[] = __('Event', 'event_espresso');
684
-                        } else {
685
-                            $column_titles[] = EEH_Template::pretty_status($property_name, false, 'sentence');
686
-                        }
687
-                    }
688
-                }
689
-                $tracker++;
690
-                $regs[] = $report_column_values;
691
-            }
692
-            //make sure the column_titles is pushed to the beginning of the array
693
-            array_unshift($regs, $column_titles);
694
-            //setup the date range.
695
-            $DateTimeZone = new DateTimeZone(EEH_DTT_Helper::get_timezone());
696
-            $beginning_date = new DateTime("now " . $period, $DateTimeZone);
697
-            $ending_date = new DateTime("now", $DateTimeZone);
698
-            $subtitle = sprintf(
699
-                _x('For the period: %1$s to %2$s', 'Used to give date range', 'event_espresso'),
700
-                $beginning_date->format('Y-m-d'),
701
-                $ending_date->format('Y-m-d')
702
-            );
703
-        }
704
-        $report_title = __('Total Registrations per Event', 'event_espresso');
705
-        $report_params = array(
706
-            'title'     => $report_title,
707
-            'subtitle'  => $subtitle,
708
-            'id'        => $report_ID,
709
-            'regs'      => $regs,
710
-            'noResults' => empty($regs),
711
-            'noRegsMsg' => sprintf(
712
-                __(
713
-                    '%sThere are currently no registration records in the last month for this report.%s',
714
-                    'event_espresso'
715
-                ),
716
-                '<h2>' . $report_title . '</h2><p>',
717
-                '</p>'
718
-            ),
719
-        );
720
-        wp_localize_script('ee-reg-reports-js', 'regPerEvent', $report_params);
721
-        return $report_ID;
722
-    }
723
-
724
-
725
-
726
-    /**
727
-     * generates HTML for the Registration Check-in list table (showing all Check-ins for a specific registration)
728
-     *
729
-     * @access protected
730
-     * @return void
731
-     * @throws \EE_Error
732
-     */
733
-    protected function _registration_checkin_list_table()
734
-    {
735
-        do_action('AHEE_log', __FILE__, __FUNCTION__, '');
736
-        $reg_id = isset($this->_req_data['_REGID']) ? $this->_req_data['_REGID'] : null;
737
-        /** @var EE_Registration $registration */
738
-        $registration = EEM_Registration::instance()->get_one_by_ID($reg_id);
739
-        $attendee = $registration->attendee();
740
-        $this->_admin_page_title .= $this->get_action_link_or_button(
741
-            'new_registration',
742
-            'add-registrant',
743
-            array('event_id' => $registration->event_ID()),
744
-            'add-new-h2'
745
-        );
746
-        $legend_items = array(
747
-            'checkin'  => array(
748
-                'class' => 'ee-icon ee-icon-check-in',
749
-                'desc'  => __('This indicates the attendee has been checked in', 'event_espresso'),
750
-            ),
751
-            'checkout' => array(
752
-                'class' => 'ee-icon ee-icon-check-out',
753
-                'desc'  => __('This indicates the attendee has been checked out', 'event_espresso'),
754
-            ),
755
-        );
756
-        $this->_template_args['after_list_table'] = $this->_display_legend($legend_items);
757
-        $dtt_id = isset($this->_req_data['DTT_ID']) ? $this->_req_data['DTT_ID'] : null;
758
-        /** @var EE_Datetime $datetime */
759
-        $datetime = EEM_Datetime::instance()->get_one_by_ID($dtt_id);
760
-        $datetime_label = '';
761
-        if ($datetime instanceof EE_Datetime) {
762
-            $datetime_label = $datetime->get_dtt_display_name(true);
763
-            $datetime_label .= ! empty($datetime_label)
764
-                ? ' (' . $datetime->get_dtt_display_name() . ')'
765
-                : $datetime->get_dtt_display_name();
766
-        }
767
-        $datetime_link = ! empty($dtt_id) && $registration instanceof EE_Registration
768
-            ? EE_Admin_Page::add_query_args_and_nonce(
769
-                array(
770
-                    'action'   => 'event_registrations',
771
-                    'event_id' => $registration->event_ID(),
772
-                    'DTT_ID'   => $dtt_id,
773
-                ),
774
-                $this->_admin_base_url
775
-            )
776
-            : '';
777
-        $datetime_link = ! empty($datetime_link)
778
-            ? '<a href="' . $datetime_link . '">'
779
-              . '<span id="checkin-dtt">'
780
-              . $datetime_label
781
-              . '</span></a>'
782
-            : $datetime_label;
783
-        $attendee_name = $attendee instanceof EE_Attendee
784
-            ? $attendee->full_name()
785
-            : '';
786
-        $attendee_link = $attendee instanceof EE_Attendee
787
-            ? $attendee->get_admin_details_link()
788
-            : '';
789
-        $attendee_link = ! empty($attendee_link)
790
-            ? '<a href="' . $attendee->get_admin_details_link() . '"'
791
-              . ' title="' . esc_html__('Click for attendee details', 'event_espresso') . '">'
792
-              . '<span id="checkin-attendee-name">'
793
-              . $attendee_name
794
-              . '</span></a>'
795
-            : '';
796
-        $event_link = $registration->event() instanceof EE_Event
797
-            ? $registration->event()->get_admin_details_link()
798
-            : '';
799
-        $event_link = ! empty($event_link)
800
-            ? '<a href="' . $event_link . '"'
801
-              . ' title="' . esc_html__('Click here to edit event.', 'event_espresso') . '">'
802
-              . '<span id="checkin-event-name">'
803
-              . $registration->event_name()
804
-              . '</span>'
805
-              . '</a>'
806
-            : '';
807
-        $this->_template_args['before_list_table'] = ! empty($reg_id) && ! empty($dtt_id)
808
-            ? '<h2>' . sprintf(
809
-                esc_html__('Displaying check in records for %1$s for %2$s at the event, %3$s', 'event_espresso'),
810
-                $attendee_link,
811
-                $datetime_link,
812
-                $event_link
813
-            ) . '</h2>'
814
-            : '';
815
-        $this->_template_args['list_table_hidden_fields'] = ! empty($reg_id)
816
-            ? '<input type="hidden" name="_REGID" value="' . $reg_id . '">' : '';
817
-        $this->_template_args['list_table_hidden_fields'] .= ! empty($dtt_id)
818
-            ? '<input type="hidden" name="DTT_ID" value="' . $dtt_id . '">' : '';
819
-        $this->display_admin_list_table_page_with_no_sidebar();
820
-    }
821
-
822
-
823
-
824
-    /**
825
-     * toggle the Check-in status for the given registration (coming from ajax)
826
-     *
827
-     * @return void (JSON)
828
-     */
829
-    public function toggle_checkin_status()
830
-    {
831
-        //first make sure we have the necessary data
832
-        if ( ! isset($this->_req_data['_regid'])) {
833
-            EE_Error::add_error(
834
-                __(
835
-                    'There must be something broken with the html structure because the required data for toggling the Check-in status is not being sent via ajax',
836
-                    'event_espresso'
837
-                ),
838
-                __FILE__,
839
-                __FUNCTION__,
840
-                __LINE__
841
-            );
842
-            $this->_template_args['success'] = false;
843
-            $this->_template_args['error'] = true;
844
-            $this->_return_json();
845
-        };
846
-        //do a nonce check cause we're not coming in from an normal route here.
847
-        $nonce = isset($this->_req_data['checkinnonce']) ? sanitize_text_field($this->_req_data['checkinnonce'])
848
-            : '';
849
-        $nonce_ref = 'checkin_nonce';
850
-        $this->_verify_nonce($nonce, $nonce_ref);
851
-        //beautiful! Made it this far so let's get the status.
852
-        $new_status = $this->_toggle_checkin_status();
853
-        //setup new class to return via ajax
854
-        $this->_template_args['admin_page_content'] = 'clickable trigger-checkin checkin-icons checkedin-status-'
855
-                                                      . $new_status;
856
-        $this->_template_args['success'] = true;
857
-        $this->_return_json();
858
-    }
859
-
860
-
861
-
862
-    /**
863
-     * handles toggling the checkin status for the registration,
864
-     *
865
-     * @access protected
866
-     * @return int|void
867
-     */
868
-    protected function _toggle_checkin_status()
869
-    {
870
-        //first let's get the query args out of the way for the redirect
871
-        $query_args = array(
872
-            'action'   => 'event_registrations',
873
-            'event_id' => isset($this->_req_data['event_id']) ? $this->_req_data['event_id'] : null,
874
-            'DTT_ID'   => isset($this->_req_data['DTT_ID']) ? $this->_req_data['DTT_ID'] : null,
875
-        );
876
-        $new_status = false;
877
-        // bulk action check in toggle
878
-        if ( ! empty($this->_req_data['checkbox']) && is_array($this->_req_data['checkbox'])) {
879
-            // cycle thru checkboxes
880
-            while (list($REG_ID, $value) = each($this->_req_data['checkbox'])) {
881
-                $DTT_ID = isset($this->_req_data['DTT_ID']) ? $this->_req_data['DTT_ID'] : null;
882
-                $new_status = $this->_toggle_checkin($REG_ID, $DTT_ID);
883
-            }
884
-        } elseif (isset($this->_req_data['_regid'])) {
885
-            //coming from ajax request
886
-            $DTT_ID = isset($this->_req_data['dttid']) ? $this->_req_data['dttid'] : null;
887
-            $query_args['DTT_ID'] = $DTT_ID;
888
-            $new_status = $this->_toggle_checkin($this->_req_data['_regid'], $DTT_ID);
889
-        } else {
890
-            EE_Error::add_error(
891
-                __('Missing some required data to toggle the Check-in', 'event_espresso'),
892
-                __FILE__,
893
-                __FUNCTION__,
894
-                __LINE__
895
-            );
896
-        }
897
-        if (defined('DOING_AJAX')) {
898
-            return $new_status;
899
-        }
900
-        $this->_redirect_after_action(false, '', '', $query_args, true);
901
-    }
902
-
903
-
904
-
905
-    /**
906
-     * This is toggles a single Check-in for the given registration and datetime.
907
-     *
908
-     * @param  int $REG_ID The registration we're toggling
909
-     * @param  int $DTT_ID The datetime we're toggling
910
-     * @return int            The new status toggled to.
911
-     * @throws \EE_Error
912
-     */
913
-    private function _toggle_checkin($REG_ID, $DTT_ID)
914
-    {
915
-        /** @var EE_Registration $REG */
916
-        $REG = EEM_Registration::instance()->get_one_by_ID($REG_ID);
917
-        $new_status = $REG->toggle_checkin_status($DTT_ID);
918
-        if ($new_status !== false) {
919
-            EE_Error::add_success($REG->get_checkin_msg($DTT_ID));
920
-        } else {
921
-            EE_Error::add_error($REG->get_checkin_msg($DTT_ID, true), __FILE__, __FUNCTION__, __LINE__);
922
-            $new_status = false;
923
-        }
924
-        return $new_status;
925
-    }
926
-
927
-
928
-
929
-    /**
930
-     * Takes care of deleting multiple EE_Checkin table rows
931
-     *
932
-     * @access protected
933
-     * @return void
934
-     * @throws \EE_Error
935
-     */
936
-    protected function _delete_checkin_rows()
937
-    {
938
-        $query_args = array(
939
-            'action' => 'registration_checkins',
940
-            'DTT_ID' => isset($this->_req_data['DTT_ID']) ? $this->_req_data['DTT_ID'] : 0,
941
-            '_REGID' => isset($this->_req_data['_REGID']) ? $this->_req_data['_REGID'] : 0,
942
-        );
943
-        $errors = 0;
944
-        if ( ! empty($this->_req_data['checkbox']) && is_array($this->_req_data['checkbox'])) {
945
-            while (list($CHK_ID, $value) = each($this->_req_data['checkbox'])) {
946
-                if ( ! EEM_Checkin::instance()->delete_by_ID($CHK_ID)) {
947
-                    $errors++;
948
-                }
949
-            }
950
-        } else {
951
-            EE_Error::add_error(
952
-                __(
953
-                    'So, something went wrong with the bulk delete because there was no data received for instructions on WHAT to delete!',
954
-                    'event_espresso'
955
-                ),
956
-                __FILE__,
957
-                __FUNCTION__,
958
-                __LINE__
959
-            );
960
-            $this->_redirect_after_action(false, '', '', $query_args, true);
961
-        }
962
-        if ($errors > 0) {
963
-            EE_Error::add_error(
964
-                sprintf(__('There were %d records that did not delete successfully', 'event_espresso'), $errors),
965
-                __FILE__,
966
-                __FUNCTION__,
967
-                __LINE__
968
-            );
969
-        } else {
970
-            EE_Error::add_success(__('Records were successfully deleted', 'event_espresso'));
971
-        }
972
-        $this->_redirect_after_action(false, '', '', $query_args, true);
973
-    }
974
-
975
-
976
-
977
-    /**
978
-     * Deletes a single EE_Checkin row
979
-     *
980
-     * @return void
981
-     * @throws \EE_Error
982
-     */
983
-    protected function _delete_checkin_row()
984
-    {
985
-        $query_args = array(
986
-            'action' => 'registration_checkins',
987
-            'DTT_ID' => isset($this->_req_data['DTT_ID']) ? $this->_req_data['DTT_ID'] : 0,
988
-            '_REGID' => isset($this->_req_data['_REGID']) ? $this->_req_data['_REGID'] : 0,
989
-        );
990
-        if ( ! empty($this->_req_data['CHK_ID'])) {
991
-            if ( ! EEM_Checkin::instance()->delete_by_ID($this->_req_data['CHK_ID'])) {
992
-                EE_Error::add_error(
993
-                    __('Something went wrong and this check-in record was not deleted', 'event_espresso'),
994
-                    __FILE__,
995
-                    __FUNCTION__,
996
-                    __LINE__
997
-                );
998
-            } else {
999
-                EE_Error::add_success(__('Check-In record successfully deleted', 'event_espresso'));
1000
-            }
1001
-        } else {
1002
-            EE_Error::add_error(
1003
-                __(
1004
-                    'In order to delete a Check-in record, there must be a Check-In ID available. There is not. It is not your fault, there is just a gremlin living in the code',
1005
-                    'event_espresso'
1006
-                ),
1007
-                __FILE__,
1008
-                __FUNCTION__,
1009
-                __LINE__
1010
-            );
1011
-        }
1012
-        $this->_redirect_after_action(false, '', '', $query_args, true);
1013
-    }
1014
-
1015
-
1016
-
1017
-    /**
1018
-     *        generates HTML for the Event Registrations List Table
1019
-     *
1020
-     * @access protected
1021
-     * @return void
1022
-     * @throws \EE_Error
1023
-     */
1024
-    protected function _event_registrations_list_table()
1025
-    {
1026
-        do_action('AHEE_log', __FILE__, __FUNCTION__, '');
1027
-        $this->_admin_page_title .= isset($this->_req_data['event_id'])
1028
-            ? $this->get_action_link_or_button(
1029
-                'new_registration',
1030
-                'add-registrant',
1031
-                array('event_id' => $this->_req_data['event_id']),
1032
-                'add-new-h2',
1033
-                '',
1034
-                false
1035
-            )
1036
-            : '';
1037
-        $legend_items = array(
1038
-            'star-icon'        => array(
1039
-                'class' => 'dashicons dashicons-star-filled lt-blue-icon ee-icon-size-8',
1040
-                'desc'  => __('This Registrant is the Primary Registrant', 'event_espresso'),
1041
-            ),
1042
-            'checkin'          => array(
1043
-                'class' => 'ee-icon ee-icon-check-in',
1044
-                'desc'  => __('This Registrant has been Checked In', 'event_espresso'),
1045
-            ),
1046
-            'checkout'         => array(
1047
-                'class' => 'ee-icon ee-icon-check-out',
1048
-                'desc'  => __('This Registrant has been Checked Out', 'event_espresso'),
1049
-            ),
1050
-            'nocheckinrecord'  => array(
1051
-                'class' => 'dashicons dashicons-no',
1052
-                'desc'  => __('No Check-in Record has been Created for this Registrant', 'event_espresso'),
1053
-            ),
1054
-            'view_details'     => array(
1055
-                'class' => 'dashicons dashicons-search',
1056
-                'desc'  => __('View All Check-in Records for this Registrant', 'event_espresso'),
1057
-            ),
1058
-            'approved_status'  => array(
1059
-                'class' => 'ee-status-legend ee-status-legend-' . EEM_Registration::status_id_approved,
1060
-                'desc'  => EEH_Template::pretty_status(EEM_Registration::status_id_approved, false, 'sentence'),
1061
-            ),
1062
-            'cancelled_status' => array(
1063
-                'class' => 'ee-status-legend ee-status-legend-' . EEM_Registration::status_id_cancelled,
1064
-                'desc'  => EEH_Template::pretty_status(EEM_Registration::status_id_cancelled, false, 'sentence'),
1065
-            ),
1066
-            'declined_status'  => array(
1067
-                'class' => 'ee-status-legend ee-status-legend-' . EEM_Registration::status_id_declined,
1068
-                'desc'  => EEH_Template::pretty_status(EEM_Registration::status_id_declined, false, 'sentence'),
1069
-            ),
1070
-            'not_approved'     => array(
1071
-                'class' => 'ee-status-legend ee-status-legend-' . EEM_Registration::status_id_not_approved,
1072
-                'desc'  => EEH_Template::pretty_status(EEM_Registration::status_id_not_approved, false, 'sentence'),
1073
-            ),
1074
-            'pending_status'   => array(
1075
-                'class' => 'ee-status-legend ee-status-legend-' . EEM_Registration::status_id_pending_payment,
1076
-                'desc'  => EEH_Template::pretty_status(EEM_Registration::status_id_pending_payment, false, 'sentence'),
1077
-            ),
1078
-            'wait_list'        => array(
1079
-                'class' => 'ee-status-legend ee-status-legend-' . EEM_Registration::status_id_wait_list,
1080
-                'desc'  => EEH_Template::pretty_status(EEM_Registration::status_id_wait_list, false, 'sentence'),
1081
-            ),
1082
-        );
1083
-        $this->_template_args['after_list_table'] = $this->_display_legend($legend_items);
1084
-        $event_id = isset($this->_req_data['event_id']) ? $this->_req_data['event_id'] : null;
1085
-        $this->_template_args['before_list_table'] = ! empty($event_id)
1086
-            ? '<h2>' . sprintf(
1087
-                __('Viewing Registrations for Event: %s', 'event_espresso'),
1088
-                EEM_Event::instance()->get_one_by_ID($event_id)->get('EVT_name')
1089
-            ) . '</h2>'
1090
-            : '';
1091
-        //need to get the number of datetimes on the event and set default datetime_id if there is only one datetime on the event.
1092
-        /** @var EE_Event $event */
1093
-        $event = EEM_Event::instance()->get_one_by_ID($event_id);
1094
-        $DTT_ID = ! empty($this->_req_data['DTT_ID']) ? absint($this->_req_data['DTT_ID']) : 0;
1095
-        $datetime = null;
1096
-        if ($event instanceof EE_Event) {
1097
-            $datetimes_on_event = $event->datetimes();
1098
-            if (count($datetimes_on_event) === 1) {
1099
-                $datetime = reset($datetimes_on_event);
1100
-            }
1101
-        }
1102
-        $datetime = $datetime instanceof EE_Datetime ? $datetime : EEM_Datetime::instance()->get_one_by_ID($DTT_ID);
1103
-        if ($datetime instanceof EE_Datetime && $this->_template_args['before_list_table'] !== '') {
1104
-            $this->_template_args['before_list_table'] = substr($this->_template_args['before_list_table'], 0, -5);
1105
-            $this->_template_args['before_list_table'] .= ' &nbsp;<span class="drk-grey-text">';
1106
-            $this->_template_args['before_list_table'] .= '<span class="dashicons dashicons-calendar"></span>';
1107
-            $this->_template_args['before_list_table'] .= $datetime->name();
1108
-            $this->_template_args['before_list_table'] .= ' ( ' . $datetime->date_and_time_range() . ' )';
1109
-            $this->_template_args['before_list_table'] .= '</span></h2>';
1110
-        }
1111
-        //if no datetime, then we're on the initial view, so let's give some helpful instructions on what the status column
1112
-        //represents
1113
-        if ( ! $datetime instanceof EE_Datetime) {
1114
-            $this->_template_args['before_list_table'] .= '<br><p class="description">'
1115
-                                                          . __('In this view, the check-in status represents the latest check-in record for the registration in that row.',
1116
-                    'event_espresso')
1117
-                                                          . '</p>';
1118
-        }
1119
-        $this->display_admin_list_table_page_with_no_sidebar();
1120
-    }
1121
-
1122
-    /**
1123
-     * Download the registrations check-in report (same as the normal registration report, but with different where
1124
-     * conditions)
1125
-     *
1126
-     * @return void ends the request by a redirect or download
1127
-     */
1128
-    public function _registrations_checkin_report()
1129
-    {
1130
-        $this->_registrations_report_base('_get_checkin_query_params_from_request');
1131
-    }
1132
-
1133
-    /**
1134
-     * Gets the query params from the request, plus adds a where condition for the registration status,
1135
-     * because on the checkin page we only ever want to see approved and pending-approval registrations
1136
-     *
1137
-     * @param array     $request
1138
-     * @param int  $per_page
1139
-     * @param bool $count
1140
-     * @return array
1141
-     */
1142
-    protected function _get_checkin_query_params_from_request(
1143
-        $request,
1144
-        $per_page = 10,
1145
-        $count = false
1146
-    ) {
1147
-        $query_params = $this->_get_registration_query_parameters($request, $per_page, $count);
1148
-        //unlike the regular registrations list table,
1149
-        $status_ids_array = apply_filters(
1150
-            'FHEE__Extend_Registrations_Admin_Page__get_event_attendees__status_ids_array',
1151
-            array(EEM_Registration::status_id_pending_payment, EEM_Registration::status_id_approved)
1152
-        );
1153
-        $query_params[0]['STS_ID'] = array('IN', $status_ids_array);
1154
-        return $query_params;
1155
-    }
1156
-
1157
-
1158
-
1159
-
1160
-    /**
1161
-     * Gets registrations for an event
1162
-     *
1163
-     * @param int    $per_page
1164
-     * @param bool   $count whether to return count or data.
1165
-     * @param bool   $trash
1166
-     * @param string $orderby
1167
-     * @return EE_Registration[]|int
1168
-     * @throws \EE_Error
1169
-     */
1170
-    public function get_event_attendees($per_page = 10, $count = false, $trash = false, $orderby = 'ATT_fname')
1171
-    {
1172
-        //normalize some request params that get setup by the parent `get_registrations` method.
1173
-        $request = $this->_req_data;
1174
-        $request['orderby'] = ! empty($this->_req_data['orderby']) ? $this->_req_data['orderby'] : $orderby;
1175
-        $request['order'] =  ! empty($this->_req_data['order']) ? $this->_req_data['order'] : 'ASC';
1176
-        if($trash){
1177
-            $request['status'] = 'trash';
1178
-        }
1179
-        $query_params = $this->_get_checkin_query_params_from_request( $request, $per_page, $count );
1180
-        /**
1181
-         * Override the default groupby added by EEM_Base so that sorts with multiple order bys work as expected
1182
-         * @link https://events.codebasehq.com/projects/event-espresso/tickets/10093
1183
-         * @see EEM_Base::get_all()
1184
-         */
1185
-        $query_params['group_by'] = '';
1186
-
1187
-        return $count
1188
-            ? EEM_Registration::instance()->count($query_params)
1189
-            /** @type EE_Registration[] */
1190
-            : EEM_Registration::instance()->get_all($query_params);
1191
-    }
20
+	/**
21
+	 * This is used to hold the reports template data which is setup early in the request.
22
+	 *
23
+	 * @type array
24
+	 */
25
+	protected $_reports_template_data = array();
26
+
27
+
28
+
29
+	/**
30
+	 * Extend_Registrations_Admin_Page constructor.
31
+	 *
32
+	 * @param bool $routing
33
+	 */
34
+	public function __construct($routing = true)
35
+	{
36
+		parent::__construct($routing);
37
+		if ( ! defined('REG_CAF_TEMPLATE_PATH')) {
38
+			define('REG_CAF_TEMPLATE_PATH', EE_CORE_CAF_ADMIN_EXTEND . 'registrations/templates/');
39
+			define('REG_CAF_ASSETS', EE_CORE_CAF_ADMIN_EXTEND . 'registrations/assets/');
40
+			define('REG_CAF_ASSETS_URL', EE_CORE_CAF_ADMIN_EXTEND_URL . 'registrations/assets/');
41
+		}
42
+	}
43
+
44
+
45
+
46
+	protected function _extend_page_config()
47
+	{
48
+		$this->_admin_base_path = EE_CORE_CAF_ADMIN_EXTEND . 'registrations';
49
+		$reg_id = ! empty($this->_req_data['_REG_ID']) && ! is_array($this->_req_data['_REG_ID'])
50
+			? $this->_req_data['_REG_ID']
51
+			: 0;
52
+		// $att_id = ! empty( $this->_req_data['ATT_ID'] ) ? ! is_array( $this->_req_data['ATT_ID'] ) : 0;
53
+		// $att_id = ! empty( $this->_req_data['post'] ) && ! is_array( $this->_req_data['post'] )
54
+		// 	? $this->_req_data['post'] : $att_id;
55
+		$new_page_routes = array(
56
+			'reports'                  => array(
57
+				'func'       => '_registration_reports',
58
+				'capability' => 'ee_read_registrations',
59
+			),
60
+			'registration_checkins'    => array(
61
+				'func'       => '_registration_checkin_list_table',
62
+				'capability' => 'ee_read_checkins',
63
+			),
64
+			'newsletter_selected_send' => array(
65
+				'func'       => '_newsletter_selected_send',
66
+				'noheader'   => true,
67
+				'capability' => 'ee_send_message',
68
+			),
69
+			'delete_checkin_rows'      => array(
70
+				'func'       => '_delete_checkin_rows',
71
+				'noheader'   => true,
72
+				'capability' => 'ee_delete_checkins',
73
+			),
74
+			'delete_checkin_row'       => array(
75
+				'func'       => '_delete_checkin_row',
76
+				'noheader'   => true,
77
+				'capability' => 'ee_delete_checkin',
78
+				'obj_id'     => $reg_id,
79
+			),
80
+			'toggle_checkin_status'    => array(
81
+				'func'       => '_toggle_checkin_status',
82
+				'noheader'   => true,
83
+				'capability' => 'ee_edit_checkin',
84
+				'obj_id'     => $reg_id,
85
+			),
86
+			'toggle_checkin_status_bulk' => array(
87
+				'func' => '_toggle_checkin_status',
88
+				'noheader' => true,
89
+				'capability' => 'ee_edit_checkins'
90
+			),
91
+			'event_registrations'      => array(
92
+				'func'       => '_event_registrations_list_table',
93
+				'capability' => 'ee_read_checkins',
94
+			),
95
+			'registrations_checkin_report' => array(
96
+				'func'       => '_registrations_checkin_report',
97
+				'noheader'   => true,
98
+				'capability' => 'ee_read_registrations',
99
+			),
100
+		);
101
+		$this->_page_routes = array_merge($this->_page_routes, $new_page_routes);
102
+		$new_page_config = array(
103
+			'reports'               => array(
104
+				'nav'           => array(
105
+					'label' => __('Reports', 'event_espresso'),
106
+					'order' => 30,
107
+				),
108
+				'help_tabs'     => array(
109
+					'registrations_reports_help_tab' => array(
110
+						'title'    => __('Registration Reports', 'event_espresso'),
111
+						'filename' => 'registrations_reports',
112
+					),
113
+				),
114
+				/*'help_tour' => array( 'Registration_Reports_Help_Tour' ),*/
115
+				'require_nonce' => false,
116
+			),
117
+			'event_registrations'   => array(
118
+				'nav'           => array(
119
+					'label'      => __('Event Check-In', 'event_espresso'),
120
+					'order'      => 10,
121
+					'persistent' => true,
122
+				),
123
+				'help_tabs'     => array(
124
+					'registrations_event_checkin_help_tab'                       => array(
125
+						'title'    => __('Registrations Event Check-In', 'event_espresso'),
126
+						'filename' => 'registrations_event_checkin',
127
+					),
128
+					'registrations_event_checkin_table_column_headings_help_tab' => array(
129
+						'title'    => __('Event Check-In Table Column Headings', 'event_espresso'),
130
+						'filename' => 'registrations_event_checkin_table_column_headings',
131
+					),
132
+					'registrations_event_checkin_filters_help_tab'               => array(
133
+						'title'    => __('Event Check-In Filters', 'event_espresso'),
134
+						'filename' => 'registrations_event_checkin_filters',
135
+					),
136
+					'registrations_event_checkin_views_help_tab'                 => array(
137
+						'title'    => __('Event Check-In Views', 'event_espresso'),
138
+						'filename' => 'registrations_event_checkin_views',
139
+					),
140
+					'registrations_event_checkin_other_help_tab'                 => array(
141
+						'title'    => __('Event Check-In Other', 'event_espresso'),
142
+						'filename' => 'registrations_event_checkin_other',
143
+					),
144
+				),
145
+				'help_tour'     => array('Event_Checkin_Help_Tour'),
146
+				'qtips'         => array('Registration_List_Table_Tips'),
147
+				'list_table'    => 'EE_Event_Registrations_List_Table',
148
+				'metaboxes'     => array(),
149
+				'require_nonce' => false,
150
+			),
151
+			'registration_checkins' => array(
152
+				'nav'           => array(
153
+					'label'      => __('Check-In Records', 'event_espresso'),
154
+					'order'      => 15,
155
+					'persistent' => false,
156
+				),
157
+				'list_table'    => 'EE_Registration_CheckIn_List_Table',
158
+				//'help_tour' => array( 'Checkin_Toggle_View_Help_Tour' ),
159
+				'metaboxes'     => array(),
160
+				'require_nonce' => false,
161
+			),
162
+		);
163
+		$this->_page_config = array_merge($this->_page_config, $new_page_config);
164
+		$this->_page_config['contact_list']['list_table'] = 'Extend_EE_Attendee_Contact_List_Table';
165
+		$this->_page_config['default']['list_table'] = 'Extend_EE_Registrations_List_Table';
166
+	}
167
+
168
+
169
+
170
+	protected function _ajax_hooks()
171
+	{
172
+		parent::_ajax_hooks();
173
+		add_action('wp_ajax_get_newsletter_form_content', array($this, 'get_newsletter_form_content'));
174
+	}
175
+
176
+
177
+
178
+	public function load_scripts_styles()
179
+	{
180
+		parent::load_scripts_styles();
181
+		//if newsletter message type is active then let's add filter and load js for it.
182
+		if (EEH_MSG_Template::is_mt_active('newsletter')) {
183
+			//enqueue newsletter js
184
+			wp_enqueue_script(
185
+				'ee-newsletter-trigger',
186
+				REG_CAF_ASSETS_URL . 'ee-newsletter-trigger.js',
187
+				array('ee-dialog'),
188
+				EVENT_ESPRESSO_VERSION,
189
+				true
190
+			);
191
+			wp_enqueue_style(
192
+				'ee-newsletter-trigger-css',
193
+				REG_CAF_ASSETS_URL . 'ee-newsletter-trigger.css',
194
+				array(),
195
+				EVENT_ESPRESSO_VERSION
196
+			);
197
+			//hook in buttons for newsletter message type trigger.
198
+			add_action(
199
+				'AHEE__EE_Admin_List_Table__extra_tablenav__after_bottom_buttons',
200
+				array($this, 'add_newsletter_action_buttons'),
201
+				10
202
+			);
203
+		}
204
+	}
205
+
206
+
207
+
208
+	public function load_scripts_styles_reports()
209
+	{
210
+		wp_register_script(
211
+			'ee-reg-reports-js',
212
+			REG_CAF_ASSETS_URL . 'ee-registration-admin-reports.js',
213
+			array('google-charts'),
214
+			EVENT_ESPRESSO_VERSION,
215
+			true
216
+		);
217
+		wp_enqueue_script('ee-reg-reports-js');
218
+		$this->_registration_reports_js_setup();
219
+	}
220
+
221
+
222
+
223
+	protected function _add_screen_options_event_registrations()
224
+	{
225
+		$this->_per_page_screen_option();
226
+	}
227
+
228
+
229
+
230
+	protected function _add_screen_options_registration_checkins()
231
+	{
232
+		$page_title = $this->_admin_page_title;
233
+		$this->_admin_page_title = __('Check-In Records', 'event_espresso');
234
+		$this->_per_page_screen_option();
235
+		$this->_admin_page_title = $page_title;
236
+	}
237
+
238
+
239
+
240
+	protected function _set_list_table_views_event_registrations()
241
+	{
242
+		$this->_views = array(
243
+			'all' => array(
244
+				'slug'        => 'all',
245
+				'label'       => __('All', 'event_espresso'),
246
+				'count'       => 0,
247
+				'bulk_action' => ! isset($this->_req_data['event_id'])
248
+					? array()
249
+					: array(
250
+						'toggle_checkin_status_bulk' => __('Toggle Check-In', 'event_espresso'),
251
+					),
252
+			),
253
+		);
254
+	}
255
+
256
+
257
+
258
+	protected function _set_list_table_views_registration_checkins()
259
+	{
260
+		$this->_views = array(
261
+			'all' => array(
262
+				'slug'        => 'all',
263
+				'label'       => __('All', 'event_espresso'),
264
+				'count'       => 0,
265
+				'bulk_action' => array('delete_checkin_rows' => __('Delete Check-In Rows', 'event_espresso')),
266
+			),
267
+		);
268
+	}
269
+
270
+
271
+
272
+	/**
273
+	 * callback for ajax action.
274
+	 *
275
+	 * @since 4.3.0
276
+	 * @return void (JSON)
277
+	 * @throws \EE_Error
278
+	 */
279
+	public function get_newsletter_form_content()
280
+	{
281
+		//do a nonce check cause we're not coming in from an normal route here.
282
+		$nonce = isset($this->_req_data['get_newsletter_form_content_nonce']) ? sanitize_text_field(
283
+			$this->_req_data['get_newsletter_form_content_nonce']
284
+		) : '';
285
+		$nonce_ref = 'get_newsletter_form_content_nonce';
286
+		$this->_verify_nonce($nonce, $nonce_ref);
287
+		//let's get the mtp for the incoming MTP_ ID
288
+		if ( ! isset($this->_req_data['GRP_ID'])) {
289
+			EE_Error::add_error(
290
+				__(
291
+					'There must be something broken with the js or html structure because the required data for getting a message template group is not present (need an GRP_ID).',
292
+					'event_espresso'
293
+				),
294
+				__FILE__,
295
+				__FUNCTION__,
296
+				__LINE__
297
+			);
298
+			$this->_template_args['success'] = false;
299
+			$this->_template_args['error'] = true;
300
+			$this->_return_json();
301
+		}
302
+		$MTPG = EEM_Message_Template_Group::instance()->get_one_by_ID($this->_req_data['GRP_ID']);
303
+		if ( ! $MTPG instanceof EE_Message_Template_Group) {
304
+			EE_Error::add_error(
305
+				sprintf(
306
+					__(
307
+						'The GRP_ID given (%d) does not appear to have a corresponding row in the database.',
308
+						'event_espresso'
309
+					),
310
+					$this->_req_data['GRP_ID']
311
+				),
312
+				__FILE__,
313
+				__FUNCTION__,
314
+				__LINE__
315
+			);
316
+			$this->_template_args['success'] = false;
317
+			$this->_template_args['error'] = true;
318
+			$this->_return_json();
319
+		}
320
+		$MTPs = $MTPG->context_templates();
321
+		$MTPs = $MTPs['attendee'];
322
+		$template_fields = array();
323
+		/** @var EE_Message_Template $MTP */
324
+		foreach ($MTPs as $MTP) {
325
+			$field = $MTP->get('MTP_template_field');
326
+			if ($field === 'content') {
327
+				$content = $MTP->get('MTP_content');
328
+				if ( ! empty($content['newsletter_content'])) {
329
+					$template_fields['newsletter_content'] = $content['newsletter_content'];
330
+				}
331
+				continue;
332
+			}
333
+			$template_fields[$MTP->get('MTP_template_field')] = $MTP->get('MTP_content');
334
+		}
335
+		$this->_template_args['success'] = true;
336
+		$this->_template_args['error'] = false;
337
+		$this->_template_args['data'] = array(
338
+			'batch_message_from'    => isset($template_fields['from'])
339
+				? $template_fields['from']
340
+				: '',
341
+			'batch_message_subject' => isset($template_fields['subject'])
342
+				? $template_fields['subject']
343
+				: '',
344
+			'batch_message_content' => isset($template_fields['newsletter_content'])
345
+				? $template_fields['newsletter_content']
346
+				: '',
347
+		);
348
+		$this->_return_json();
349
+	}
350
+
351
+
352
+
353
+	/**
354
+	 * callback for AHEE__EE_Admin_List_Table__extra_tablenav__after_bottom_buttons action
355
+	 *
356
+	 * @since 4.3.0
357
+	 * @param EE_Admin_List_Table $list_table
358
+	 * @return void
359
+	 */
360
+	public function add_newsletter_action_buttons(EE_Admin_List_Table $list_table)
361
+	{
362
+		if ( ! EE_Registry::instance()->CAP->current_user_can(
363
+			'ee_send_message',
364
+			'espresso_registrations_newsletter_selected_send'
365
+		)
366
+		) {
367
+			return;
368
+		}
369
+		$routes_to_add_to = array(
370
+			'contact_list',
371
+			'event_registrations',
372
+			'default',
373
+		);
374
+		if ($this->_current_page === 'espresso_registrations' && in_array($this->_req_action, $routes_to_add_to)) {
375
+			if (($this->_req_action === 'event_registrations' && empty($this->_req_data['event_id']))
376
+				|| (isset($this->_req_data['status']) && $this->_req_data['status'] === 'trash')
377
+			) {
378
+				echo '';
379
+			} else {
380
+				$button_text = sprintf(
381
+					__('Send Batch Message (%s selected)', 'event_espresso'),
382
+					'<span class="send-selected-newsletter-count">0</span>'
383
+				);
384
+				echo '<button id="selected-batch-send-trigger" class="button secondary-button"><span class="dashicons dashicons-email "></span>'
385
+					 . $button_text
386
+					 . '</button>';
387
+				add_action('admin_footer', array($this, 'newsletter_send_form_skeleton'));
388
+			}
389
+		}
390
+	}
391
+
392
+
393
+
394
+	public function newsletter_send_form_skeleton()
395
+	{
396
+		$list_table = $this->_list_table_object;
397
+		$codes = array();
398
+		//need to templates for the newsletter message type for the template selector.
399
+		$values[] = array('text' => __('Select Template to Use', 'event_espresso'), 'id' => 0);
400
+		$mtps = EEM_Message_Template_Group::instance()->get_all(
401
+			array(array('MTP_message_type' => 'newsletter', 'MTP_messenger' => 'email'))
402
+		);
403
+		foreach ($mtps as $mtp) {
404
+			$name = $mtp->name();
405
+			$values[] = array(
406
+				'text' => empty($name) ? __('Global', 'event_espresso') : $name,
407
+				'id'   => $mtp->ID(),
408
+			);
409
+		}
410
+		//need to get a list of shortcodes that are available for the newsletter message type.
411
+		$shortcodes = EEH_MSG_Template::get_shortcodes('newsletter', 'email', array(), 'attendee', false);
412
+		foreach ($shortcodes as $field => $shortcode_array) {
413
+			$codes[$field] = implode(', ', array_keys($shortcode_array));
414
+		}
415
+		$shortcodes = $codes;
416
+		$form_template = REG_CAF_TEMPLATE_PATH . 'newsletter-send-form.template.php';
417
+		$form_template_args = array(
418
+			'form_action'       => admin_url('admin.php?page=espresso_registrations'),
419
+			'form_route'        => 'newsletter_selected_send',
420
+			'form_nonce_name'   => 'newsletter_selected_send_nonce',
421
+			'form_nonce'        => wp_create_nonce('newsletter_selected_send_nonce'),
422
+			'redirect_back_to'  => $this->_req_action,
423
+			'ajax_nonce'        => wp_create_nonce('get_newsletter_form_content_nonce'),
424
+			'template_selector' => EEH_Form_Fields::select_input('newsletter_mtp_selected', $values),
425
+			'shortcodes'        => $shortcodes,
426
+			'id_type'           => $list_table instanceof EE_Attendee_Contact_List_Table ? 'contact' : 'registration',
427
+		);
428
+		EEH_Template::display_template($form_template, $form_template_args);
429
+	}
430
+
431
+
432
+
433
+	/**
434
+	 * Handles sending selected registrations/contacts a newsletter.
435
+	 *
436
+	 * @since  4.3.0
437
+	 * @return void
438
+	 * @throws \EE_Error
439
+	 */
440
+	protected function _newsletter_selected_send()
441
+	{
442
+		$success = true;
443
+		//first we need to make sure we have a GRP_ID so we know what template we're sending and updating!
444
+		if (empty($this->_req_data['newsletter_mtp_selected'])) {
445
+			EE_Error::add_error(
446
+				__(
447
+					'In order to send a message, a Message Template GRP_ID is needed. It was not provided so messages were not sent.',
448
+					'event_espresso'
449
+				),
450
+				__FILE__,
451
+				__FUNCTION__,
452
+				__LINE__
453
+			);
454
+			$success = false;
455
+		}
456
+		if ($success) {
457
+			//update Message template in case there are any changes
458
+			$Message_Template_Group = EEM_Message_Template_Group::instance()->get_one_by_ID(
459
+				$this->_req_data['newsletter_mtp_selected']
460
+			);
461
+			$Message_Templates = $Message_Template_Group instanceof EE_Message_Template_Group
462
+				? $Message_Template_Group->context_templates()
463
+				: array();
464
+			if (empty($Message_Templates)) {
465
+				EE_Error::add_error(
466
+					__(
467
+						'Unable to retrieve message template fields from the db. Messages not sent.',
468
+						'event_espresso'
469
+					),
470
+					__FILE__,
471
+					__FUNCTION__,
472
+					__LINE__
473
+				);
474
+			}
475
+			//let's just update the specific fields
476
+			foreach ($Message_Templates['attendee'] as $Message_Template) {
477
+				if ($Message_Template instanceof EE_Message_Template) {
478
+					$field = $Message_Template->get('MTP_template_field');
479
+					$content = $Message_Template->get('MTP_content');
480
+					$new_content = $content;
481
+					switch ($field) {
482
+						case 'from' :
483
+							$new_content = ! empty($this->_req_data['batch_message']['from'])
484
+								? $this->_req_data['batch_message']['from']
485
+								: $content;
486
+							break;
487
+						case 'subject' :
488
+							$new_content = ! empty($this->_req_data['batch_message']['subject'])
489
+								? $this->_req_data['batch_message']['subject']
490
+								: $content;
491
+							break;
492
+						case 'content' :
493
+							$new_content = $content;
494
+							$new_content['newsletter_content'] = ! empty($this->_req_data['batch_message']['content'])
495
+								? $this->_req_data['batch_message']['content']
496
+								: $content['newsletter_content'];
497
+							break;
498
+						default :
499
+							//continue the foreach loop, we don't want to set $new_content nor save.
500
+							continue 2;
501
+					}
502
+					$Message_Template->set('MTP_content', $new_content);
503
+					$Message_Template->save();
504
+				}
505
+			}
506
+			//great fields are updated!  now let's make sure we just have contact objects (EE_Attendee).
507
+			$id_type = ! empty($this->_req_data['batch_message']['id_type'])
508
+				? $this->_req_data['batch_message']['id_type']
509
+				: 'registration';
510
+			//id_type will affect how we assemble the ids.
511
+			$ids = ! empty($this->_req_data['batch_message']['ids'])
512
+				? json_decode(stripslashes($this->_req_data['batch_message']['ids']))
513
+				: array();
514
+			$registrations_used_for_contact_data = array();
515
+			//using switch because eventually we'll have other contexts that will be used for generating messages.
516
+			switch ($id_type) {
517
+				case 'registration' :
518
+					$registrations_used_for_contact_data = EEM_Registration::instance()->get_all(
519
+						array(
520
+							array(
521
+								'REG_ID' => array('IN', $ids),
522
+							),
523
+						)
524
+					);
525
+					break;
526
+				case 'contact' :
527
+					$registrations_used_for_contact_data = EEM_Registration::instance()
528
+																		   ->get_latest_registration_for_each_of_given_contacts($ids);
529
+					break;
530
+			}
531
+			do_action(
532
+				'AHEE__Extend_Registrations_Admin_Page___newsletter_selected_send__with_registrations',
533
+				$registrations_used_for_contact_data,
534
+				$Message_Template_Group->ID()
535
+			);
536
+			//kept for backward compat, internally we no longer use this action.
537
+			//@deprecated 4.8.36.rc.002
538
+			$contacts = $id_type === 'registration'
539
+				? EEM_Attendee::instance()->get_array_of_contacts_from_reg_ids($ids)
540
+				: EEM_Attendee::instance()->get_all(array(array('ATT_ID' => array('in', $ids))));
541
+			do_action(
542
+				'AHEE__Extend_Registrations_Admin_Page___newsletter_selected_send',
543
+				$contacts,
544
+				$Message_Template_Group->ID()
545
+			);
546
+		}
547
+		$query_args = array(
548
+			'action' => ! empty($this->_req_data['redirect_back_to'])
549
+				? $this->_req_data['redirect_back_to']
550
+				: 'default',
551
+		);
552
+		$this->_redirect_after_action(false, '', '', $query_args, true);
553
+	}
554
+
555
+
556
+
557
+	/**
558
+	 * This is called when javascript is being enqueued to setup the various data needed for the reports js.
559
+	 * Also $this->{$_reports_template_data} property is set for later usage by the _registration_reports method.
560
+	 */
561
+	protected function _registration_reports_js_setup()
562
+	{
563
+		$this->_reports_template_data['admin_reports'][] = $this->_registrations_per_day_report();
564
+		$this->_reports_template_data['admin_reports'][] = $this->_registrations_per_event_report();
565
+	}
566
+
567
+
568
+
569
+	/**
570
+	 *        generates Business Reports regarding Registrations
571
+	 *
572
+	 * @access protected
573
+	 * @return void
574
+	 */
575
+	protected function _registration_reports()
576
+	{
577
+		$template_path = EE_ADMIN_TEMPLATE . 'admin_reports.template.php';
578
+		$this->_template_args['admin_page_content'] = EEH_Template::display_template(
579
+			$template_path,
580
+			$this->_reports_template_data,
581
+			true
582
+		);
583
+		// the final template wrapper
584
+		$this->display_admin_page_with_no_sidebar();
585
+	}
586
+
587
+
588
+
589
+	/**
590
+	 * Generates Business Report showing total registrations per day.
591
+	 *
592
+	 * @param string $period The period (acceptable by PHP Datetime constructor) for which the report is generated.
593
+	 * @return string
594
+	 */
595
+	private function _registrations_per_day_report($period = '-1 month')
596
+	{
597
+		$report_ID = 'reg-admin-registrations-per-day-report-dv';
598
+		$results = EEM_Registration::instance()->get_registrations_per_day_and_per_status_report($period);
599
+		$results = (array)$results;
600
+		$regs = array();
601
+		$subtitle = '';
602
+		if ($results) {
603
+			$column_titles = array();
604
+			$tracker = 0;
605
+			foreach ($results as $result) {
606
+				$report_column_values = array();
607
+				foreach ($result as $property_name => $property_value) {
608
+					$property_value = $property_name === 'Registration_REG_date' ? $property_value
609
+						: (int)$property_value;
610
+					$report_column_values[] = $property_value;
611
+					if ($tracker === 0) {
612
+						if ($property_name === 'Registration_REG_date') {
613
+							$column_titles[] = __('Date (only days with registrations are shown)', 'event_espresso');
614
+						} else {
615
+							$column_titles[] = EEH_Template::pretty_status($property_name, false, 'sentence');
616
+						}
617
+					}
618
+				}
619
+				$tracker++;
620
+				$regs[] = $report_column_values;
621
+			}
622
+			//make sure the column_titles is pushed to the beginning of the array
623
+			array_unshift($regs, $column_titles);
624
+			//setup the date range.
625
+			$DateTimeZone = new DateTimeZone(EEH_DTT_Helper::get_timezone());
626
+			$beginning_date = new DateTime("now " . $period, $DateTimeZone);
627
+			$ending_date = new DateTime("now", $DateTimeZone);
628
+			$subtitle = sprintf(
629
+				_x('For the period: %1$s to %2$s', 'Used to give date range', 'event_espresso'),
630
+				$beginning_date->format('Y-m-d'),
631
+				$ending_date->format('Y-m-d')
632
+			);
633
+		}
634
+		$report_title = __('Total Registrations per Day', 'event_espresso');
635
+		$report_params = array(
636
+			'title'     => $report_title,
637
+			'subtitle'  => $subtitle,
638
+			'id'        => $report_ID,
639
+			'regs'      => $regs,
640
+			'noResults' => empty($regs),
641
+			'noRegsMsg' => sprintf(
642
+				__(
643
+					'%sThere are currently no registration records in the last month for this report.%s',
644
+					'event_espresso'
645
+				),
646
+				'<h2>' . $report_title . '</h2><p>',
647
+				'</p>'
648
+			),
649
+		);
650
+		wp_localize_script('ee-reg-reports-js', 'regPerDay', $report_params);
651
+		return $report_ID;
652
+	}
653
+
654
+
655
+
656
+	/**
657
+	 * Generates Business Report showing total registrations per event.
658
+	 *
659
+	 * @param string $period The period (acceptable by PHP Datetime constructor) for which the report is generated.
660
+	 * @return string
661
+	 */
662
+	private function _registrations_per_event_report($period = '-1 month')
663
+	{
664
+		$report_ID = 'reg-admin-registrations-per-event-report-dv';
665
+		$results = EEM_Registration::instance()->get_registrations_per_event_and_per_status_report($period);
666
+		$results = (array)$results;
667
+		$regs = array();
668
+		$subtitle = '';
669
+		if ($results) {
670
+			$column_titles = array();
671
+			$tracker = 0;
672
+			foreach ($results as $result) {
673
+				$report_column_values = array();
674
+				foreach ($result as $property_name => $property_value) {
675
+					$property_value = $property_name === 'Registration_Event' ? wp_trim_words(
676
+						$property_value,
677
+						4,
678
+						'...'
679
+					) : (int)$property_value;
680
+					$report_column_values[] = $property_value;
681
+					if ($tracker === 0) {
682
+						if ($property_name === 'Registration_Event') {
683
+							$column_titles[] = __('Event', 'event_espresso');
684
+						} else {
685
+							$column_titles[] = EEH_Template::pretty_status($property_name, false, 'sentence');
686
+						}
687
+					}
688
+				}
689
+				$tracker++;
690
+				$regs[] = $report_column_values;
691
+			}
692
+			//make sure the column_titles is pushed to the beginning of the array
693
+			array_unshift($regs, $column_titles);
694
+			//setup the date range.
695
+			$DateTimeZone = new DateTimeZone(EEH_DTT_Helper::get_timezone());
696
+			$beginning_date = new DateTime("now " . $period, $DateTimeZone);
697
+			$ending_date = new DateTime("now", $DateTimeZone);
698
+			$subtitle = sprintf(
699
+				_x('For the period: %1$s to %2$s', 'Used to give date range', 'event_espresso'),
700
+				$beginning_date->format('Y-m-d'),
701
+				$ending_date->format('Y-m-d')
702
+			);
703
+		}
704
+		$report_title = __('Total Registrations per Event', 'event_espresso');
705
+		$report_params = array(
706
+			'title'     => $report_title,
707
+			'subtitle'  => $subtitle,
708
+			'id'        => $report_ID,
709
+			'regs'      => $regs,
710
+			'noResults' => empty($regs),
711
+			'noRegsMsg' => sprintf(
712
+				__(
713
+					'%sThere are currently no registration records in the last month for this report.%s',
714
+					'event_espresso'
715
+				),
716
+				'<h2>' . $report_title . '</h2><p>',
717
+				'</p>'
718
+			),
719
+		);
720
+		wp_localize_script('ee-reg-reports-js', 'regPerEvent', $report_params);
721
+		return $report_ID;
722
+	}
723
+
724
+
725
+
726
+	/**
727
+	 * generates HTML for the Registration Check-in list table (showing all Check-ins for a specific registration)
728
+	 *
729
+	 * @access protected
730
+	 * @return void
731
+	 * @throws \EE_Error
732
+	 */
733
+	protected function _registration_checkin_list_table()
734
+	{
735
+		do_action('AHEE_log', __FILE__, __FUNCTION__, '');
736
+		$reg_id = isset($this->_req_data['_REGID']) ? $this->_req_data['_REGID'] : null;
737
+		/** @var EE_Registration $registration */
738
+		$registration = EEM_Registration::instance()->get_one_by_ID($reg_id);
739
+		$attendee = $registration->attendee();
740
+		$this->_admin_page_title .= $this->get_action_link_or_button(
741
+			'new_registration',
742
+			'add-registrant',
743
+			array('event_id' => $registration->event_ID()),
744
+			'add-new-h2'
745
+		);
746
+		$legend_items = array(
747
+			'checkin'  => array(
748
+				'class' => 'ee-icon ee-icon-check-in',
749
+				'desc'  => __('This indicates the attendee has been checked in', 'event_espresso'),
750
+			),
751
+			'checkout' => array(
752
+				'class' => 'ee-icon ee-icon-check-out',
753
+				'desc'  => __('This indicates the attendee has been checked out', 'event_espresso'),
754
+			),
755
+		);
756
+		$this->_template_args['after_list_table'] = $this->_display_legend($legend_items);
757
+		$dtt_id = isset($this->_req_data['DTT_ID']) ? $this->_req_data['DTT_ID'] : null;
758
+		/** @var EE_Datetime $datetime */
759
+		$datetime = EEM_Datetime::instance()->get_one_by_ID($dtt_id);
760
+		$datetime_label = '';
761
+		if ($datetime instanceof EE_Datetime) {
762
+			$datetime_label = $datetime->get_dtt_display_name(true);
763
+			$datetime_label .= ! empty($datetime_label)
764
+				? ' (' . $datetime->get_dtt_display_name() . ')'
765
+				: $datetime->get_dtt_display_name();
766
+		}
767
+		$datetime_link = ! empty($dtt_id) && $registration instanceof EE_Registration
768
+			? EE_Admin_Page::add_query_args_and_nonce(
769
+				array(
770
+					'action'   => 'event_registrations',
771
+					'event_id' => $registration->event_ID(),
772
+					'DTT_ID'   => $dtt_id,
773
+				),
774
+				$this->_admin_base_url
775
+			)
776
+			: '';
777
+		$datetime_link = ! empty($datetime_link)
778
+			? '<a href="' . $datetime_link . '">'
779
+			  . '<span id="checkin-dtt">'
780
+			  . $datetime_label
781
+			  . '</span></a>'
782
+			: $datetime_label;
783
+		$attendee_name = $attendee instanceof EE_Attendee
784
+			? $attendee->full_name()
785
+			: '';
786
+		$attendee_link = $attendee instanceof EE_Attendee
787
+			? $attendee->get_admin_details_link()
788
+			: '';
789
+		$attendee_link = ! empty($attendee_link)
790
+			? '<a href="' . $attendee->get_admin_details_link() . '"'
791
+			  . ' title="' . esc_html__('Click for attendee details', 'event_espresso') . '">'
792
+			  . '<span id="checkin-attendee-name">'
793
+			  . $attendee_name
794
+			  . '</span></a>'
795
+			: '';
796
+		$event_link = $registration->event() instanceof EE_Event
797
+			? $registration->event()->get_admin_details_link()
798
+			: '';
799
+		$event_link = ! empty($event_link)
800
+			? '<a href="' . $event_link . '"'
801
+			  . ' title="' . esc_html__('Click here to edit event.', 'event_espresso') . '">'
802
+			  . '<span id="checkin-event-name">'
803
+			  . $registration->event_name()
804
+			  . '</span>'
805
+			  . '</a>'
806
+			: '';
807
+		$this->_template_args['before_list_table'] = ! empty($reg_id) && ! empty($dtt_id)
808
+			? '<h2>' . sprintf(
809
+				esc_html__('Displaying check in records for %1$s for %2$s at the event, %3$s', 'event_espresso'),
810
+				$attendee_link,
811
+				$datetime_link,
812
+				$event_link
813
+			) . '</h2>'
814
+			: '';
815
+		$this->_template_args['list_table_hidden_fields'] = ! empty($reg_id)
816
+			? '<input type="hidden" name="_REGID" value="' . $reg_id . '">' : '';
817
+		$this->_template_args['list_table_hidden_fields'] .= ! empty($dtt_id)
818
+			? '<input type="hidden" name="DTT_ID" value="' . $dtt_id . '">' : '';
819
+		$this->display_admin_list_table_page_with_no_sidebar();
820
+	}
821
+
822
+
823
+
824
+	/**
825
+	 * toggle the Check-in status for the given registration (coming from ajax)
826
+	 *
827
+	 * @return void (JSON)
828
+	 */
829
+	public function toggle_checkin_status()
830
+	{
831
+		//first make sure we have the necessary data
832
+		if ( ! isset($this->_req_data['_regid'])) {
833
+			EE_Error::add_error(
834
+				__(
835
+					'There must be something broken with the html structure because the required data for toggling the Check-in status is not being sent via ajax',
836
+					'event_espresso'
837
+				),
838
+				__FILE__,
839
+				__FUNCTION__,
840
+				__LINE__
841
+			);
842
+			$this->_template_args['success'] = false;
843
+			$this->_template_args['error'] = true;
844
+			$this->_return_json();
845
+		};
846
+		//do a nonce check cause we're not coming in from an normal route here.
847
+		$nonce = isset($this->_req_data['checkinnonce']) ? sanitize_text_field($this->_req_data['checkinnonce'])
848
+			: '';
849
+		$nonce_ref = 'checkin_nonce';
850
+		$this->_verify_nonce($nonce, $nonce_ref);
851
+		//beautiful! Made it this far so let's get the status.
852
+		$new_status = $this->_toggle_checkin_status();
853
+		//setup new class to return via ajax
854
+		$this->_template_args['admin_page_content'] = 'clickable trigger-checkin checkin-icons checkedin-status-'
855
+													  . $new_status;
856
+		$this->_template_args['success'] = true;
857
+		$this->_return_json();
858
+	}
859
+
860
+
861
+
862
+	/**
863
+	 * handles toggling the checkin status for the registration,
864
+	 *
865
+	 * @access protected
866
+	 * @return int|void
867
+	 */
868
+	protected function _toggle_checkin_status()
869
+	{
870
+		//first let's get the query args out of the way for the redirect
871
+		$query_args = array(
872
+			'action'   => 'event_registrations',
873
+			'event_id' => isset($this->_req_data['event_id']) ? $this->_req_data['event_id'] : null,
874
+			'DTT_ID'   => isset($this->_req_data['DTT_ID']) ? $this->_req_data['DTT_ID'] : null,
875
+		);
876
+		$new_status = false;
877
+		// bulk action check in toggle
878
+		if ( ! empty($this->_req_data['checkbox']) && is_array($this->_req_data['checkbox'])) {
879
+			// cycle thru checkboxes
880
+			while (list($REG_ID, $value) = each($this->_req_data['checkbox'])) {
881
+				$DTT_ID = isset($this->_req_data['DTT_ID']) ? $this->_req_data['DTT_ID'] : null;
882
+				$new_status = $this->_toggle_checkin($REG_ID, $DTT_ID);
883
+			}
884
+		} elseif (isset($this->_req_data['_regid'])) {
885
+			//coming from ajax request
886
+			$DTT_ID = isset($this->_req_data['dttid']) ? $this->_req_data['dttid'] : null;
887
+			$query_args['DTT_ID'] = $DTT_ID;
888
+			$new_status = $this->_toggle_checkin($this->_req_data['_regid'], $DTT_ID);
889
+		} else {
890
+			EE_Error::add_error(
891
+				__('Missing some required data to toggle the Check-in', 'event_espresso'),
892
+				__FILE__,
893
+				__FUNCTION__,
894
+				__LINE__
895
+			);
896
+		}
897
+		if (defined('DOING_AJAX')) {
898
+			return $new_status;
899
+		}
900
+		$this->_redirect_after_action(false, '', '', $query_args, true);
901
+	}
902
+
903
+
904
+
905
+	/**
906
+	 * This is toggles a single Check-in for the given registration and datetime.
907
+	 *
908
+	 * @param  int $REG_ID The registration we're toggling
909
+	 * @param  int $DTT_ID The datetime we're toggling
910
+	 * @return int            The new status toggled to.
911
+	 * @throws \EE_Error
912
+	 */
913
+	private function _toggle_checkin($REG_ID, $DTT_ID)
914
+	{
915
+		/** @var EE_Registration $REG */
916
+		$REG = EEM_Registration::instance()->get_one_by_ID($REG_ID);
917
+		$new_status = $REG->toggle_checkin_status($DTT_ID);
918
+		if ($new_status !== false) {
919
+			EE_Error::add_success($REG->get_checkin_msg($DTT_ID));
920
+		} else {
921
+			EE_Error::add_error($REG->get_checkin_msg($DTT_ID, true), __FILE__, __FUNCTION__, __LINE__);
922
+			$new_status = false;
923
+		}
924
+		return $new_status;
925
+	}
926
+
927
+
928
+
929
+	/**
930
+	 * Takes care of deleting multiple EE_Checkin table rows
931
+	 *
932
+	 * @access protected
933
+	 * @return void
934
+	 * @throws \EE_Error
935
+	 */
936
+	protected function _delete_checkin_rows()
937
+	{
938
+		$query_args = array(
939
+			'action' => 'registration_checkins',
940
+			'DTT_ID' => isset($this->_req_data['DTT_ID']) ? $this->_req_data['DTT_ID'] : 0,
941
+			'_REGID' => isset($this->_req_data['_REGID']) ? $this->_req_data['_REGID'] : 0,
942
+		);
943
+		$errors = 0;
944
+		if ( ! empty($this->_req_data['checkbox']) && is_array($this->_req_data['checkbox'])) {
945
+			while (list($CHK_ID, $value) = each($this->_req_data['checkbox'])) {
946
+				if ( ! EEM_Checkin::instance()->delete_by_ID($CHK_ID)) {
947
+					$errors++;
948
+				}
949
+			}
950
+		} else {
951
+			EE_Error::add_error(
952
+				__(
953
+					'So, something went wrong with the bulk delete because there was no data received for instructions on WHAT to delete!',
954
+					'event_espresso'
955
+				),
956
+				__FILE__,
957
+				__FUNCTION__,
958
+				__LINE__
959
+			);
960
+			$this->_redirect_after_action(false, '', '', $query_args, true);
961
+		}
962
+		if ($errors > 0) {
963
+			EE_Error::add_error(
964
+				sprintf(__('There were %d records that did not delete successfully', 'event_espresso'), $errors),
965
+				__FILE__,
966
+				__FUNCTION__,
967
+				__LINE__
968
+			);
969
+		} else {
970
+			EE_Error::add_success(__('Records were successfully deleted', 'event_espresso'));
971
+		}
972
+		$this->_redirect_after_action(false, '', '', $query_args, true);
973
+	}
974
+
975
+
976
+
977
+	/**
978
+	 * Deletes a single EE_Checkin row
979
+	 *
980
+	 * @return void
981
+	 * @throws \EE_Error
982
+	 */
983
+	protected function _delete_checkin_row()
984
+	{
985
+		$query_args = array(
986
+			'action' => 'registration_checkins',
987
+			'DTT_ID' => isset($this->_req_data['DTT_ID']) ? $this->_req_data['DTT_ID'] : 0,
988
+			'_REGID' => isset($this->_req_data['_REGID']) ? $this->_req_data['_REGID'] : 0,
989
+		);
990
+		if ( ! empty($this->_req_data['CHK_ID'])) {
991
+			if ( ! EEM_Checkin::instance()->delete_by_ID($this->_req_data['CHK_ID'])) {
992
+				EE_Error::add_error(
993
+					__('Something went wrong and this check-in record was not deleted', 'event_espresso'),
994
+					__FILE__,
995
+					__FUNCTION__,
996
+					__LINE__
997
+				);
998
+			} else {
999
+				EE_Error::add_success(__('Check-In record successfully deleted', 'event_espresso'));
1000
+			}
1001
+		} else {
1002
+			EE_Error::add_error(
1003
+				__(
1004
+					'In order to delete a Check-in record, there must be a Check-In ID available. There is not. It is not your fault, there is just a gremlin living in the code',
1005
+					'event_espresso'
1006
+				),
1007
+				__FILE__,
1008
+				__FUNCTION__,
1009
+				__LINE__
1010
+			);
1011
+		}
1012
+		$this->_redirect_after_action(false, '', '', $query_args, true);
1013
+	}
1014
+
1015
+
1016
+
1017
+	/**
1018
+	 *        generates HTML for the Event Registrations List Table
1019
+	 *
1020
+	 * @access protected
1021
+	 * @return void
1022
+	 * @throws \EE_Error
1023
+	 */
1024
+	protected function _event_registrations_list_table()
1025
+	{
1026
+		do_action('AHEE_log', __FILE__, __FUNCTION__, '');
1027
+		$this->_admin_page_title .= isset($this->_req_data['event_id'])
1028
+			? $this->get_action_link_or_button(
1029
+				'new_registration',
1030
+				'add-registrant',
1031
+				array('event_id' => $this->_req_data['event_id']),
1032
+				'add-new-h2',
1033
+				'',
1034
+				false
1035
+			)
1036
+			: '';
1037
+		$legend_items = array(
1038
+			'star-icon'        => array(
1039
+				'class' => 'dashicons dashicons-star-filled lt-blue-icon ee-icon-size-8',
1040
+				'desc'  => __('This Registrant is the Primary Registrant', 'event_espresso'),
1041
+			),
1042
+			'checkin'          => array(
1043
+				'class' => 'ee-icon ee-icon-check-in',
1044
+				'desc'  => __('This Registrant has been Checked In', 'event_espresso'),
1045
+			),
1046
+			'checkout'         => array(
1047
+				'class' => 'ee-icon ee-icon-check-out',
1048
+				'desc'  => __('This Registrant has been Checked Out', 'event_espresso'),
1049
+			),
1050
+			'nocheckinrecord'  => array(
1051
+				'class' => 'dashicons dashicons-no',
1052
+				'desc'  => __('No Check-in Record has been Created for this Registrant', 'event_espresso'),
1053
+			),
1054
+			'view_details'     => array(
1055
+				'class' => 'dashicons dashicons-search',
1056
+				'desc'  => __('View All Check-in Records for this Registrant', 'event_espresso'),
1057
+			),
1058
+			'approved_status'  => array(
1059
+				'class' => 'ee-status-legend ee-status-legend-' . EEM_Registration::status_id_approved,
1060
+				'desc'  => EEH_Template::pretty_status(EEM_Registration::status_id_approved, false, 'sentence'),
1061
+			),
1062
+			'cancelled_status' => array(
1063
+				'class' => 'ee-status-legend ee-status-legend-' . EEM_Registration::status_id_cancelled,
1064
+				'desc'  => EEH_Template::pretty_status(EEM_Registration::status_id_cancelled, false, 'sentence'),
1065
+			),
1066
+			'declined_status'  => array(
1067
+				'class' => 'ee-status-legend ee-status-legend-' . EEM_Registration::status_id_declined,
1068
+				'desc'  => EEH_Template::pretty_status(EEM_Registration::status_id_declined, false, 'sentence'),
1069
+			),
1070
+			'not_approved'     => array(
1071
+				'class' => 'ee-status-legend ee-status-legend-' . EEM_Registration::status_id_not_approved,
1072
+				'desc'  => EEH_Template::pretty_status(EEM_Registration::status_id_not_approved, false, 'sentence'),
1073
+			),
1074
+			'pending_status'   => array(
1075
+				'class' => 'ee-status-legend ee-status-legend-' . EEM_Registration::status_id_pending_payment,
1076
+				'desc'  => EEH_Template::pretty_status(EEM_Registration::status_id_pending_payment, false, 'sentence'),
1077
+			),
1078
+			'wait_list'        => array(
1079
+				'class' => 'ee-status-legend ee-status-legend-' . EEM_Registration::status_id_wait_list,
1080
+				'desc'  => EEH_Template::pretty_status(EEM_Registration::status_id_wait_list, false, 'sentence'),
1081
+			),
1082
+		);
1083
+		$this->_template_args['after_list_table'] = $this->_display_legend($legend_items);
1084
+		$event_id = isset($this->_req_data['event_id']) ? $this->_req_data['event_id'] : null;
1085
+		$this->_template_args['before_list_table'] = ! empty($event_id)
1086
+			? '<h2>' . sprintf(
1087
+				__('Viewing Registrations for Event: %s', 'event_espresso'),
1088
+				EEM_Event::instance()->get_one_by_ID($event_id)->get('EVT_name')
1089
+			) . '</h2>'
1090
+			: '';
1091
+		//need to get the number of datetimes on the event and set default datetime_id if there is only one datetime on the event.
1092
+		/** @var EE_Event $event */
1093
+		$event = EEM_Event::instance()->get_one_by_ID($event_id);
1094
+		$DTT_ID = ! empty($this->_req_data['DTT_ID']) ? absint($this->_req_data['DTT_ID']) : 0;
1095
+		$datetime = null;
1096
+		if ($event instanceof EE_Event) {
1097
+			$datetimes_on_event = $event->datetimes();
1098
+			if (count($datetimes_on_event) === 1) {
1099
+				$datetime = reset($datetimes_on_event);
1100
+			}
1101
+		}
1102
+		$datetime = $datetime instanceof EE_Datetime ? $datetime : EEM_Datetime::instance()->get_one_by_ID($DTT_ID);
1103
+		if ($datetime instanceof EE_Datetime && $this->_template_args['before_list_table'] !== '') {
1104
+			$this->_template_args['before_list_table'] = substr($this->_template_args['before_list_table'], 0, -5);
1105
+			$this->_template_args['before_list_table'] .= ' &nbsp;<span class="drk-grey-text">';
1106
+			$this->_template_args['before_list_table'] .= '<span class="dashicons dashicons-calendar"></span>';
1107
+			$this->_template_args['before_list_table'] .= $datetime->name();
1108
+			$this->_template_args['before_list_table'] .= ' ( ' . $datetime->date_and_time_range() . ' )';
1109
+			$this->_template_args['before_list_table'] .= '</span></h2>';
1110
+		}
1111
+		//if no datetime, then we're on the initial view, so let's give some helpful instructions on what the status column
1112
+		//represents
1113
+		if ( ! $datetime instanceof EE_Datetime) {
1114
+			$this->_template_args['before_list_table'] .= '<br><p class="description">'
1115
+														  . __('In this view, the check-in status represents the latest check-in record for the registration in that row.',
1116
+					'event_espresso')
1117
+														  . '</p>';
1118
+		}
1119
+		$this->display_admin_list_table_page_with_no_sidebar();
1120
+	}
1121
+
1122
+	/**
1123
+	 * Download the registrations check-in report (same as the normal registration report, but with different where
1124
+	 * conditions)
1125
+	 *
1126
+	 * @return void ends the request by a redirect or download
1127
+	 */
1128
+	public function _registrations_checkin_report()
1129
+	{
1130
+		$this->_registrations_report_base('_get_checkin_query_params_from_request');
1131
+	}
1132
+
1133
+	/**
1134
+	 * Gets the query params from the request, plus adds a where condition for the registration status,
1135
+	 * because on the checkin page we only ever want to see approved and pending-approval registrations
1136
+	 *
1137
+	 * @param array     $request
1138
+	 * @param int  $per_page
1139
+	 * @param bool $count
1140
+	 * @return array
1141
+	 */
1142
+	protected function _get_checkin_query_params_from_request(
1143
+		$request,
1144
+		$per_page = 10,
1145
+		$count = false
1146
+	) {
1147
+		$query_params = $this->_get_registration_query_parameters($request, $per_page, $count);
1148
+		//unlike the regular registrations list table,
1149
+		$status_ids_array = apply_filters(
1150
+			'FHEE__Extend_Registrations_Admin_Page__get_event_attendees__status_ids_array',
1151
+			array(EEM_Registration::status_id_pending_payment, EEM_Registration::status_id_approved)
1152
+		);
1153
+		$query_params[0]['STS_ID'] = array('IN', $status_ids_array);
1154
+		return $query_params;
1155
+	}
1156
+
1157
+
1158
+
1159
+
1160
+	/**
1161
+	 * Gets registrations for an event
1162
+	 *
1163
+	 * @param int    $per_page
1164
+	 * @param bool   $count whether to return count or data.
1165
+	 * @param bool   $trash
1166
+	 * @param string $orderby
1167
+	 * @return EE_Registration[]|int
1168
+	 * @throws \EE_Error
1169
+	 */
1170
+	public function get_event_attendees($per_page = 10, $count = false, $trash = false, $orderby = 'ATT_fname')
1171
+	{
1172
+		//normalize some request params that get setup by the parent `get_registrations` method.
1173
+		$request = $this->_req_data;
1174
+		$request['orderby'] = ! empty($this->_req_data['orderby']) ? $this->_req_data['orderby'] : $orderby;
1175
+		$request['order'] =  ! empty($this->_req_data['order']) ? $this->_req_data['order'] : 'ASC';
1176
+		if($trash){
1177
+			$request['status'] = 'trash';
1178
+		}
1179
+		$query_params = $this->_get_checkin_query_params_from_request( $request, $per_page, $count );
1180
+		/**
1181
+		 * Override the default groupby added by EEM_Base so that sorts with multiple order bys work as expected
1182
+		 * @link https://events.codebasehq.com/projects/event-espresso/tickets/10093
1183
+		 * @see EEM_Base::get_all()
1184
+		 */
1185
+		$query_params['group_by'] = '';
1186
+
1187
+		return $count
1188
+			? EEM_Registration::instance()->count($query_params)
1189
+			/** @type EE_Registration[] */
1190
+			: EEM_Registration::instance()->get_all($query_params);
1191
+	}
1192 1192
 
1193 1193
 } //end class Registrations Admin Page
Please login to merge, or discard this patch.
admin_pages/messages/Messages_Admin_Page.core.php 1 patch
Spacing   +118 added lines, -118 removed lines patch added patch discarded remove patch
@@ -87,7 +87,7 @@  discard block
 block discarded – undo
87 87
         $this->_admin_base_url  = EE_MSG_ADMIN_URL;
88 88
         $this->_admin_base_path = EE_MSG_ADMIN;
89 89
         
90
-        $this->_activate_state = isset($this->_req_data['activate_state']) ? (array)$this->_req_data['activate_state'] : array();
90
+        $this->_activate_state = isset($this->_req_data['activate_state']) ? (array) $this->_req_data['activate_state'] : array();
91 91
         
92 92
         $this->_active_messenger = isset($this->_req_data['messenger']) ? $this->_req_data['messenger'] : null;
93 93
         $this->_load_message_resource_manager();
@@ -219,7 +219,7 @@  discard block
 block discarded – undo
219 219
             array('none_selected' => __('Show All Messengers', 'event_espresso')),
220 220
             $messenger_options
221 221
         );
222
-        $input             = new EE_Select_Input(
222
+        $input = new EE_Select_Input(
223 223
             $messenger_options,
224 224
             array(
225 225
                 'html_name'  => 'ee_messenger_filter_by',
@@ -257,7 +257,7 @@  discard block
 block discarded – undo
257 257
             array('none_selected' => __('Show All Message Types', 'event_espresso')),
258 258
             $message_type_options
259 259
         );
260
-        $input                = new EE_Select_Input(
260
+        $input = new EE_Select_Input(
261 261
             $message_type_options,
262 262
             array(
263 263
                 'html_name'  => 'ee_message_type_filter_by',
@@ -295,7 +295,7 @@  discard block
 block discarded – undo
295 295
             array('none_selected' => __('Show all Contexts', 'event_espresso')),
296 296
             $context_options
297 297
         );
298
-        $input           = new EE_Select_Input(
298
+        $input = new EE_Select_Input(
299 299
             $context_options,
300 300
             array(
301 301
                 'html_name'  => 'ee_context_filter_by',
@@ -676,47 +676,47 @@  discard block
 block discarded – undo
676 676
     
677 677
     public function messages_help_tab()
678 678
     {
679
-        EEH_Template::display_template(EE_MSG_TEMPLATE_PATH . 'ee_msg_messages_help_tab.template.php');
679
+        EEH_Template::display_template(EE_MSG_TEMPLATE_PATH.'ee_msg_messages_help_tab.template.php');
680 680
     }
681 681
     
682 682
     
683 683
     public function messengers_help_tab()
684 684
     {
685
-        EEH_Template::display_template(EE_MSG_TEMPLATE_PATH . 'ee_msg_messenger_help_tab.template.php');
685
+        EEH_Template::display_template(EE_MSG_TEMPLATE_PATH.'ee_msg_messenger_help_tab.template.php');
686 686
     }
687 687
     
688 688
     
689 689
     public function message_types_help_tab()
690 690
     {
691
-        EEH_Template::display_template(EE_MSG_TEMPLATE_PATH . 'ee_msg_message_type_help_tab.template.php');
691
+        EEH_Template::display_template(EE_MSG_TEMPLATE_PATH.'ee_msg_message_type_help_tab.template.php');
692 692
     }
693 693
     
694 694
     
695 695
     public function messages_overview_help_tab()
696 696
     {
697
-        EEH_Template::display_template(EE_MSG_TEMPLATE_PATH . 'ee_msg_overview_help_tab.template.php');
697
+        EEH_Template::display_template(EE_MSG_TEMPLATE_PATH.'ee_msg_overview_help_tab.template.php');
698 698
     }
699 699
     
700 700
     
701 701
     public function message_templates_help_tab()
702 702
     {
703
-        EEH_Template::display_template(EE_MSG_TEMPLATE_PATH . 'ee_msg_message_templates_help_tab.template.php');
703
+        EEH_Template::display_template(EE_MSG_TEMPLATE_PATH.'ee_msg_message_templates_help_tab.template.php');
704 704
     }
705 705
     
706 706
     
707 707
     public function edit_message_template_help_tab()
708 708
     {
709
-        $args['img1'] = '<img src="' . EE_MSG_ASSETS_URL . 'images/editor.png' . '" alt="' . esc_attr__('Editor Title',
710
-                'event_espresso') . '" />';
711
-        $args['img2'] = '<img src="' . EE_MSG_ASSETS_URL . 'images/switch-context.png' . '" alt="' . esc_attr__('Context Switcher and Preview',
712
-                'event_espresso') . '" />';
713
-        $args['img3'] = '<img class="left" src="' . EE_MSG_ASSETS_URL . 'images/form-fields.png' . '" alt="' . esc_attr__('Message Template Form Fields',
714
-                'event_espresso') . '" />';
715
-        $args['img4'] = '<img class="right" src="' . EE_MSG_ASSETS_URL . 'images/shortcodes-metabox.png' . '" alt="' . esc_attr__('Shortcodes Metabox',
716
-                'event_espresso') . '" />';
717
-        $args['img5'] = '<img class="right" src="' . EE_MSG_ASSETS_URL . 'images/publish-meta-box.png' . '" alt="' . esc_attr__('Publish Metabox',
718
-                'event_espresso') . '" />';
719
-        EEH_Template::display_template(EE_MSG_TEMPLATE_PATH . 'ee_msg_messages_templates_editor_help_tab.template.php',
709
+        $args['img1'] = '<img src="'.EE_MSG_ASSETS_URL.'images/editor.png'.'" alt="'.esc_attr__('Editor Title',
710
+                'event_espresso').'" />';
711
+        $args['img2'] = '<img src="'.EE_MSG_ASSETS_URL.'images/switch-context.png'.'" alt="'.esc_attr__('Context Switcher and Preview',
712
+                'event_espresso').'" />';
713
+        $args['img3'] = '<img class="left" src="'.EE_MSG_ASSETS_URL.'images/form-fields.png'.'" alt="'.esc_attr__('Message Template Form Fields',
714
+                'event_espresso').'" />';
715
+        $args['img4'] = '<img class="right" src="'.EE_MSG_ASSETS_URL.'images/shortcodes-metabox.png'.'" alt="'.esc_attr__('Shortcodes Metabox',
716
+                'event_espresso').'" />';
717
+        $args['img5'] = '<img class="right" src="'.EE_MSG_ASSETS_URL.'images/publish-meta-box.png'.'" alt="'.esc_attr__('Publish Metabox',
718
+                'event_espresso').'" />';
719
+        EEH_Template::display_template(EE_MSG_TEMPLATE_PATH.'ee_msg_messages_templates_editor_help_tab.template.php',
720 720
             $args);
721 721
     }
722 722
     
@@ -725,37 +725,37 @@  discard block
 block discarded – undo
725 725
     {
726 726
         $this->_set_shortcodes();
727 727
         $args['shortcodes'] = $this->_shortcodes;
728
-        EEH_Template::display_template(EE_MSG_TEMPLATE_PATH . 'ee_msg_messages_shortcodes_help_tab.template.php',
728
+        EEH_Template::display_template(EE_MSG_TEMPLATE_PATH.'ee_msg_messages_shortcodes_help_tab.template.php',
729 729
             $args);
730 730
     }
731 731
     
732 732
     
733 733
     public function preview_message_help_tab()
734 734
     {
735
-        EEH_Template::display_template(EE_MSG_TEMPLATE_PATH . 'ee_msg_preview_help_tab.template.php');
735
+        EEH_Template::display_template(EE_MSG_TEMPLATE_PATH.'ee_msg_preview_help_tab.template.php');
736 736
     }
737 737
     
738 738
     
739 739
     public function settings_help_tab()
740 740
     {
741
-        $args['img1'] = '<img class="inline-text" src="' . EE_MSG_ASSETS_URL . 'images/email-tab-active.png' . '" alt="' . esc_attr__('Active Email Tab',
742
-                'event_espresso') . '" />';
743
-        $args['img2'] = '<img class="inline-text" src="' . EE_MSG_ASSETS_URL . 'images/email-tab-inactive.png' . '" alt="' . esc_attr__('Inactive Email Tab',
744
-                'event_espresso') . '" />';
741
+        $args['img1'] = '<img class="inline-text" src="'.EE_MSG_ASSETS_URL.'images/email-tab-active.png'.'" alt="'.esc_attr__('Active Email Tab',
742
+                'event_espresso').'" />';
743
+        $args['img2'] = '<img class="inline-text" src="'.EE_MSG_ASSETS_URL.'images/email-tab-inactive.png'.'" alt="'.esc_attr__('Inactive Email Tab',
744
+                'event_espresso').'" />';
745 745
         $args['img3'] = '<div class="switch"><input id="ee-on-off-toggle-on" class="ee-on-off-toggle ee-toggle-round-flat" type="checkbox" checked="checked"><label for="ee-on-off-toggle-on"></label>';
746 746
         $args['img4'] = '<div class="switch"><input id="ee-on-off-toggle-on" class="ee-on-off-toggle ee-toggle-round-flat" type="checkbox"><label for="ee-on-off-toggle-on"></label>';
747
-        EEH_Template::display_template(EE_MSG_TEMPLATE_PATH . 'ee_msg_messages_settings_help_tab.template.php', $args);
747
+        EEH_Template::display_template(EE_MSG_TEMPLATE_PATH.'ee_msg_messages_settings_help_tab.template.php', $args);
748 748
     }
749 749
     
750 750
     
751 751
     public function load_scripts_styles()
752 752
     {
753
-        wp_register_style('espresso_ee_msg', EE_MSG_ASSETS_URL . 'ee_message_admin.css', EVENT_ESPRESSO_VERSION);
753
+        wp_register_style('espresso_ee_msg', EE_MSG_ASSETS_URL.'ee_message_admin.css', EVENT_ESPRESSO_VERSION);
754 754
         wp_enqueue_style('espresso_ee_msg');
755 755
         
756
-        wp_register_script('ee-messages-settings', EE_MSG_ASSETS_URL . 'ee-messages-settings.js',
756
+        wp_register_script('ee-messages-settings', EE_MSG_ASSETS_URL.'ee-messages-settings.js',
757 757
             array('jquery-ui-droppable', 'ee-serialize-full-array'), EVENT_ESPRESSO_VERSION, true);
758
-        wp_register_script('ee-msg-list-table-js', EE_MSG_ASSETS_URL . 'ee_message_admin_list_table.js',
758
+        wp_register_script('ee-msg-list-table-js', EE_MSG_ASSETS_URL.'ee_message_admin_list_table.js',
759 759
             array('ee-dialog'), EVENT_ESPRESSO_VERSION);
760 760
     }
761 761
     
@@ -787,7 +787,7 @@  discard block
 block discarded – undo
787 787
         
788 788
         $this->_set_shortcodes();
789 789
         
790
-        EE_Registry::$i18n_js_strings['confirm_default_reset']        = sprintf(
790
+        EE_Registry::$i18n_js_strings['confirm_default_reset'] = sprintf(
791 791
             __('Are you sure you want to reset the %s %s message templates?  Remember continuing will reset the templates for all contexts in this messenger and message type group.',
792 792
                 'event_espresso'),
793 793
             $this->_message_template_group->messenger_obj()->label['singular'],
@@ -796,7 +796,7 @@  discard block
 block discarded – undo
796 796
         EE_Registry::$i18n_js_strings['confirm_switch_template_pack'] = __('Switching the template pack for a messages template will reset the content for the template so the new layout is loaded.  Any custom content in the existing template will be lost. Are you sure you wish to do this?',
797 797
             'event_espresso');
798 798
         
799
-        wp_register_script('ee_msgs_edit_js', EE_MSG_ASSETS_URL . 'ee_message_editor.js', array('jquery'),
799
+        wp_register_script('ee_msgs_edit_js', EE_MSG_ASSETS_URL.'ee_message_editor.js', array('jquery'),
800 800
             EVENT_ESPRESSO_VERSION);
801 801
         
802 802
         wp_enqueue_script('ee_admin_js');
@@ -827,7 +827,7 @@  discard block
 block discarded – undo
827 827
     
828 828
     public function load_scripts_styles_settings()
829 829
     {
830
-        wp_register_style('ee-message-settings', EE_MSG_ASSETS_URL . 'ee_message_settings.css', array(),
830
+        wp_register_style('ee-message-settings', EE_MSG_ASSETS_URL.'ee_message_settings.css', array(),
831 831
             EVENT_ESPRESSO_VERSION);
832 832
         wp_enqueue_style('ee-text-links');
833 833
         wp_enqueue_style('ee-message-settings');
@@ -893,7 +893,7 @@  discard block
 block discarded – undo
893 893
             }
894 894
             $status_bulk_actions = $common_bulk_actions;
895 895
             //unset bulk actions not applying to status
896
-            if (! empty($status_bulk_actions)) {
896
+            if ( ! empty($status_bulk_actions)) {
897 897
                 switch ($status) {
898 898
                     case EEM_Message::status_idle:
899 899
                     case EEM_Message::status_resend:
@@ -918,7 +918,7 @@  discard block
 block discarded – undo
918 918
             }
919 919
 
920 920
             //skip adding messenger executing status to views because it will be included with the Failed view.
921
-            if ( $status === EEM_Message::status_messenger_executing ) {
921
+            if ($status === EEM_Message::status_messenger_executing) {
922 922
                 continue;
923 923
             }
924 924
             
@@ -944,7 +944,7 @@  discard block
 block discarded – undo
944 944
         $this->_search_btn_label                   = __('Message Activity', 'event_espresso');
945 945
         $this->_template_args['per_column']        = 6;
946 946
         $this->_template_args['after_list_table']  = $this->_display_legend($this->_message_legend_items());
947
-        $this->_template_args['before_list_table'] = '<h3>' . EEM_Message::instance()->get_pretty_label_for_results() . '</h3>';
947
+        $this->_template_args['before_list_table'] = '<h3>'.EEM_Message::instance()->get_pretty_label_for_results().'</h3>';
948 948
         $this->display_admin_list_table_page_with_no_sidebar();
949 949
     }
950 950
     
@@ -968,37 +968,37 @@  discard block
 block discarded – undo
968 968
         /** @type array $status_items status legend setup */
969 969
         $status_items = array(
970 970
             'sent_status'       => array(
971
-                'class' => 'ee-status-legend ee-status-legend-' . EEM_Message::status_sent,
971
+                'class' => 'ee-status-legend ee-status-legend-'.EEM_Message::status_sent,
972 972
                 'desc'  => EEH_Template::pretty_status(EEM_Message::status_sent, false, 'sentence')
973 973
             ),
974 974
             'idle_status'       => array(
975
-                'class' => 'ee-status-legend ee-status-legend-' . EEM_Message::status_idle,
975
+                'class' => 'ee-status-legend ee-status-legend-'.EEM_Message::status_idle,
976 976
                 'desc'  => EEH_Template::pretty_status(EEM_Message::status_idle, false, 'sentence')
977 977
             ),
978 978
             'failed_status'     => array(
979
-                'class' => 'ee-status-legend ee-status-legend-' . EEM_Message::status_failed,
979
+                'class' => 'ee-status-legend ee-status-legend-'.EEM_Message::status_failed,
980 980
                 'desc'  => EEH_Template::pretty_status(EEM_Message::status_failed, false, 'sentence')
981 981
             ),
982 982
             'messenger_executing_status' => array(
983
-                'class' => 'ee-status-legend ee-status-legend-' . EEM_Message::status_messenger_executing,
983
+                'class' => 'ee-status-legend ee-status-legend-'.EEM_Message::status_messenger_executing,
984 984
                 'desc' => EEH_Template::pretty_status(EEM_Message::status_messenger_executing, false, 'sentence')
985 985
             ),
986 986
             'resend_status'     => array(
987
-                'class' => 'ee-status-legend ee-status-legend-' . EEM_Message::status_resend,
987
+                'class' => 'ee-status-legend ee-status-legend-'.EEM_Message::status_resend,
988 988
                 'desc'  => EEH_Template::pretty_status(EEM_Message::status_resend, false, 'sentence')
989 989
             ),
990 990
             'incomplete_status' => array(
991
-                'class' => 'ee-status-legend ee-status-legend-' . EEM_Message::status_incomplete,
991
+                'class' => 'ee-status-legend ee-status-legend-'.EEM_Message::status_incomplete,
992 992
                 'desc'  => EEH_Template::pretty_status(EEM_Message::status_incomplete, false, 'sentence')
993 993
             ),
994 994
             'retry_status'      => array(
995
-                'class' => 'ee-status-legend ee-status-legend-' . EEM_Message::status_retry,
995
+                'class' => 'ee-status-legend ee-status-legend-'.EEM_Message::status_retry,
996 996
                 'desc'  => EEH_Template::pretty_status(EEM_Message::status_retry, false, 'sentence')
997 997
             )
998 998
         );
999 999
         if (EEM_Message::debug()) {
1000 1000
             $status_items['debug_only_status'] = array(
1001
-                'class' => 'ee-status-legend ee-status-legend-' . EEM_Message::status_debug_only,
1001
+                'class' => 'ee-status-legend ee-status-legend-'.EEM_Message::status_debug_only,
1002 1002
                 'desc'  => EEH_Template::pretty_status(EEM_Message::status_debug_only, false, 'sentence')
1003 1003
             );
1004 1004
         }
@@ -1010,10 +1010,10 @@  discard block
 block discarded – undo
1010 1010
     protected function _custom_mtps_preview()
1011 1011
     {
1012 1012
         $this->_admin_page_title              = __('Custom Message Templates (Preview)', 'event_espresso');
1013
-        $this->_template_args['preview_img']  = '<img src="' . EE_MSG_ASSETS_URL . 'images/custom_mtps_preview.png" alt="' . esc_attr__('Preview Custom Message Templates screenshot',
1014
-                'event_espresso') . '" />';
1015
-        $this->_template_args['preview_text'] = '<strong>' . __('Custom Message Templates is a feature that is only available in the premium version of Event Espresso 4 which is available with a support license purchase on EventEspresso.com. With the Custom Message Templates feature, you are able to create custom message templates and assign them on a per-event basis.',
1016
-                'event_espresso') . '</strong>';
1013
+        $this->_template_args['preview_img']  = '<img src="'.EE_MSG_ASSETS_URL.'images/custom_mtps_preview.png" alt="'.esc_attr__('Preview Custom Message Templates screenshot',
1014
+                'event_espresso').'" />';
1015
+        $this->_template_args['preview_text'] = '<strong>'.__('Custom Message Templates is a feature that is only available in the premium version of Event Espresso 4 which is available with a support license purchase on EventEspresso.com. With the Custom Message Templates feature, you are able to create custom message templates and assign them on a per-event basis.',
1016
+                'event_espresso').'</strong>';
1017 1017
         $this->display_admin_caf_preview_page('custom_message_types', false);
1018 1018
     }
1019 1019
     
@@ -1261,7 +1261,7 @@  discard block
 block discarded – undo
1261 1261
                             //let's verify if we need this extra field via the shortcodes parameter.
1262 1262
                             $continue = false;
1263 1263
                             if (isset($extra_array['shortcodes_required'])) {
1264
-                                foreach ((array)$extra_array['shortcodes_required'] as $shortcode) {
1264
+                                foreach ((array) $extra_array['shortcodes_required'] as $shortcode) {
1265 1265
                                     if ( ! array_key_exists($shortcode, $this->_shortcodes)) {
1266 1266
                                         $continue = true;
1267 1267
                                     }
@@ -1271,9 +1271,9 @@  discard block
 block discarded – undo
1271 1271
                                 }
1272 1272
                             }
1273 1273
                             
1274
-                            $field_id                                = $reference_field . '-' . $extra_field . '-content';
1274
+                            $field_id                                = $reference_field.'-'.$extra_field.'-content';
1275 1275
                             $template_form_fields[$field_id]         = $extra_array;
1276
-                            $template_form_fields[$field_id]['name'] = 'MTP_template_fields[' . $reference_field . '][content][' . $extra_field . ']';
1276
+                            $template_form_fields[$field_id]['name'] = 'MTP_template_fields['.$reference_field.'][content]['.$extra_field.']';
1277 1277
                             $css_class                               = isset($extra_array['css_class']) ? $extra_array['css_class'] : '';
1278 1278
                             
1279 1279
                             $template_form_fields[$field_id]['css_class'] = ! empty($v_fields)
@@ -1283,7 +1283,7 @@  discard block
 block discarded – undo
1283 1283
                                                                                 is_array($validators[$extra_field])
1284 1284
                                                                                 && isset($validators[$extra_field]['msg'])
1285 1285
                                                                             )
1286
-                                ? 'validate-error ' . $css_class
1286
+                                ? 'validate-error '.$css_class
1287 1287
                                 : $css_class;
1288 1288
                             
1289 1289
                             $template_form_fields[$field_id]['value'] = ! empty($message_templates) && isset($content[$extra_field])
@@ -1311,11 +1311,11 @@  discard block
 block discarded – undo
1311 1311
                                 
1312 1312
                             }/**/
1313 1313
                         }
1314
-                        $templatefield_MTP_id          = $reference_field . '-MTP_ID';
1315
-                        $templatefield_templatename_id = $reference_field . '-name';
1314
+                        $templatefield_MTP_id          = $reference_field.'-MTP_ID';
1315
+                        $templatefield_templatename_id = $reference_field.'-name';
1316 1316
                         
1317 1317
                         $template_form_fields[$templatefield_MTP_id] = array(
1318
-                            'name'       => 'MTP_template_fields[' . $reference_field . '][MTP_ID]',
1318
+                            'name'       => 'MTP_template_fields['.$reference_field.'][MTP_ID]',
1319 1319
                             'label'      => null,
1320 1320
                             'input'      => 'hidden',
1321 1321
                             'type'       => 'int',
@@ -1328,7 +1328,7 @@  discard block
 block discarded – undo
1328 1328
                         );
1329 1329
                         
1330 1330
                         $template_form_fields[$templatefield_templatename_id] = array(
1331
-                            'name'       => 'MTP_template_fields[' . $reference_field . '][name]',
1331
+                            'name'       => 'MTP_template_fields['.$reference_field.'][name]',
1332 1332
                             'label'      => null,
1333 1333
                             'input'      => 'hidden',
1334 1334
                             'type'       => 'string',
@@ -1342,9 +1342,9 @@  discard block
 block discarded – undo
1342 1342
                     }
1343 1343
                     continue; //skip the next stuff, we got the necessary fields here for this dataset.
1344 1344
                 } else {
1345
-                    $field_id                                 = $template_field . '-content';
1345
+                    $field_id                                 = $template_field.'-content';
1346 1346
                     $template_form_fields[$field_id]          = $field_setup_array;
1347
-                    $template_form_fields[$field_id]['name']  = 'MTP_template_fields[' . $template_field . '][content]';
1347
+                    $template_form_fields[$field_id]['name']  = 'MTP_template_fields['.$template_field.'][content]';
1348 1348
                     $message_template                         = isset($message_templates[$context][$template_field])
1349 1349
                         ? $message_templates[$context][$template_field]
1350 1350
                         : null;
@@ -1365,7 +1365,7 @@  discard block
 block discarded – undo
1365 1365
                     $template_form_fields[$field_id]['css_class'] = ! empty($v_fields)
1366 1366
                                                                     && in_array($template_field, $v_fields)
1367 1367
                                                                     && isset($validators[$template_field]['msg'])
1368
-                        ? 'validate-error ' . $css_class
1368
+                        ? 'validate-error '.$css_class
1369 1369
                         : $css_class;
1370 1370
                     
1371 1371
                     //shortcode selector
@@ -1376,12 +1376,12 @@  discard block
 block discarded – undo
1376 1376
                 
1377 1377
                 //k took care of content field(s) now let's take care of others.
1378 1378
                 
1379
-                $templatefield_MTP_id                = $template_field . '-MTP_ID';
1380
-                $templatefield_field_templatename_id = $template_field . '-name';
1379
+                $templatefield_MTP_id                = $template_field.'-MTP_ID';
1380
+                $templatefield_field_templatename_id = $template_field.'-name';
1381 1381
                 
1382 1382
                 //foreach template field there are actually two form fields created
1383 1383
                 $template_form_fields[$templatefield_MTP_id] = array(
1384
-                    'name'       => 'MTP_template_fields[' . $template_field . '][MTP_ID]',
1384
+                    'name'       => 'MTP_template_fields['.$template_field.'][MTP_ID]',
1385 1385
                     'label'      => null,
1386 1386
                     'input'      => 'hidden',
1387 1387
                     'type'       => 'int',
@@ -1394,7 +1394,7 @@  discard block
 block discarded – undo
1394 1394
                 );
1395 1395
                 
1396 1396
                 $template_form_fields[$templatefield_field_templatename_id] = array(
1397
-                    'name'       => 'MTP_template_fields[' . $template_field . '][name]',
1397
+                    'name'       => 'MTP_template_fields['.$template_field.'][name]',
1398 1398
                     'label'      => null,
1399 1399
                     'input'      => 'hidden',
1400 1400
                     'type'       => 'string',
@@ -1512,7 +1512,7 @@  discard block
 block discarded – undo
1512 1512
                 'format'     => '%d',
1513 1513
                 'db-col'     => 'MTP_deleted'
1514 1514
             );
1515
-            $sidebar_form_fields['ee-msg-author']  = array(
1515
+            $sidebar_form_fields['ee-msg-author'] = array(
1516 1516
                 'name'       => 'MTP_user_id',
1517 1517
                 'label'      => __('Author', 'event_espresso'),
1518 1518
                 'input'      => 'hidden',
@@ -1531,17 +1531,17 @@  discard block
 block discarded – undo
1531 1531
                 'value' => $action
1532 1532
             );
1533 1533
             
1534
-            $sidebar_form_fields['ee-msg-id']        = array(
1534
+            $sidebar_form_fields['ee-msg-id'] = array(
1535 1535
                 'name'  => 'id',
1536 1536
                 'input' => 'hidden',
1537 1537
                 'type'  => 'int',
1538 1538
                 'value' => $GRP_ID
1539 1539
             );
1540 1540
             $sidebar_form_fields['ee-msg-evt-nonce'] = array(
1541
-                'name'  => $action . '_nonce',
1541
+                'name'  => $action.'_nonce',
1542 1542
                 'input' => 'hidden',
1543 1543
                 'type'  => 'string',
1544
-                'value' => wp_create_nonce($action . '_nonce')
1544
+                'value' => wp_create_nonce($action.'_nonce')
1545 1545
             );
1546 1546
             
1547 1547
             if (isset($this->_req_data['template_switch']) && $this->_req_data['template_switch']) {
@@ -1573,7 +1573,7 @@  discard block
 block discarded – undo
1573 1573
         );
1574 1574
         
1575 1575
         //add preview button
1576
-        $preview_url    = parent::add_query_args_and_nonce(
1576
+        $preview_url = parent::add_query_args_and_nonce(
1577 1577
             array(
1578 1578
                 'message_type' => $message_template_group->message_type(),
1579 1579
                 'messenger'    => $message_template_group->messenger(),
@@ -1583,8 +1583,8 @@  discard block
 block discarded – undo
1583 1583
             ),
1584 1584
             $this->_admin_base_url
1585 1585
         );
1586
-        $preview_button = '<a href="' . $preview_url . '" class="button-secondary messages-preview-button">' . __('Preview',
1587
-                'event_espresso') . '</a>';
1586
+        $preview_button = '<a href="'.$preview_url.'" class="button-secondary messages-preview-button">'.__('Preview',
1587
+                'event_espresso').'</a>';
1588 1588
         
1589 1589
         
1590 1590
         //setup context switcher
@@ -1613,7 +1613,7 @@  discard block
 block discarded – undo
1613 1613
         
1614 1614
         $this->_template_path = $this->_template_args['GRP_ID']
1615 1615
             ? EE_MSG_TEMPLATE_PATH . 'ee_msg_details_main_edit_meta_box.template.php'
1616
-            : EE_MSG_TEMPLATE_PATH . 'ee_msg_details_main_add_meta_box.template.php';
1616
+            : EE_MSG_TEMPLATE_PATH.'ee_msg_details_main_add_meta_box.template.php';
1617 1617
         
1618 1618
         //send along EE_Message_Template_Group object for further template use.
1619 1619
         $this->_template_args['MTP'] = $message_template_group;
@@ -1648,7 +1648,7 @@  discard block
 block discarded – undo
1648 1648
     
1649 1649
     public function _add_form_element_before()
1650 1650
     {
1651
-        return '<form method="post" action="' . $this->_template_args["edit_message_template_form_url"] . '" id="ee-msg-edit-frm">';
1651
+        return '<form method="post" action="'.$this->_template_args["edit_message_template_form_url"].'" id="ee-msg-edit-frm">';
1652 1652
     }
1653 1653
     
1654 1654
     public function _add_form_element_after()
@@ -1843,14 +1843,14 @@  discard block
 block discarded – undo
1843 1843
         }
1844 1844
         
1845 1845
         //let's add a button to go back to the edit view
1846
-        $query_args             = array(
1846
+        $query_args = array(
1847 1847
             'id'      => $this->_req_data['GRP_ID'],
1848 1848
             'context' => $this->_req_data['context'],
1849 1849
             'action'  => 'edit_message_template'
1850 1850
         );
1851 1851
         $go_back_url            = parent::add_query_args_and_nonce($query_args, $this->_admin_base_url);
1852
-        $preview_button         = '<a href="' . $go_back_url . '" class="button-secondary messages-preview-go-back-button">' . __('Go Back to Edit',
1853
-                'event_espresso') . '</a>';
1852
+        $preview_button         = '<a href="'.$go_back_url.'" class="button-secondary messages-preview-go-back-button">'.__('Go Back to Edit',
1853
+                'event_espresso').'</a>';
1854 1854
         $message_types          = $this->get_installed_message_types();
1855 1855
         $active_messenger       = $this->_message_resource_manager->get_active_messenger($this->_req_data['messenger']);
1856 1856
         $active_messenger_label = $active_messenger instanceof EE_messenger
@@ -1864,7 +1864,7 @@  discard block
 block discarded – undo
1864 1864
         );
1865 1865
         //setup display of preview.
1866 1866
         $this->_admin_page_title                    = $preview_title;
1867
-        $this->_template_args['admin_page_content'] = $preview_button . '<br />' . stripslashes($preview);
1867
+        $this->_template_args['admin_page_content'] = $preview_button.'<br />'.stripslashes($preview);
1868 1868
         $this->_template_args['data']['force_json'] = true;
1869 1869
         
1870 1870
         return '';
@@ -1946,7 +1946,7 @@  discard block
 block discarded – undo
1946 1946
         }
1947 1947
         
1948 1948
         //setup variation select values for the currently selected template.
1949
-        $variations               = $this->_message_template_group->get_template_pack()->get_variations(
1949
+        $variations = $this->_message_template_group->get_template_pack()->get_variations(
1950 1950
             $this->_message_template_group->messenger(),
1951 1951
             $this->_message_template_group->message_type()
1952 1952
         );
@@ -1960,12 +1960,12 @@  discard block
 block discarded – undo
1960 1960
         
1961 1961
         $template_pack_labels = $this->_message_template_group->messenger_obj()->get_supports_labels();
1962 1962
         
1963
-        $template_args['template_packs_selector']        = EEH_Form_Fields::select_input(
1963
+        $template_args['template_packs_selector'] = EEH_Form_Fields::select_input(
1964 1964
             'MTP_template_pack',
1965 1965
             $tp_select_values,
1966 1966
             $this->_message_template_group->get_template_pack_name()
1967 1967
         );
1968
-        $template_args['variations_selector']            = EEH_Form_Fields::select_input(
1968
+        $template_args['variations_selector'] = EEH_Form_Fields::select_input(
1969 1969
             'MTP_template_variation',
1970 1970
             $variations_select_values,
1971 1971
             $this->_message_template_group->get_template_pack_variation()
@@ -1975,7 +1975,7 @@  discard block
 block discarded – undo
1975 1975
         $template_args['template_pack_description']      = $template_pack_labels->template_pack_description;
1976 1976
         $template_args['template_variation_description'] = $template_pack_labels->template_variation_description;
1977 1977
         
1978
-        $template = EE_MSG_TEMPLATE_PATH . 'template_pack_and_variations_metabox.template.php';
1978
+        $template = EE_MSG_TEMPLATE_PATH.'template_pack_and_variations_metabox.template.php';
1979 1979
         
1980 1980
         EEH_Template::display_template($template, $template_args);
1981 1981
     }
@@ -2004,7 +2004,7 @@  discard block
 block discarded – undo
2004 2004
         if ( ! empty($fields)) {
2005 2005
             //yup there be fields
2006 2006
             foreach ($fields as $field => $config) {
2007
-                $field_id = $this->_message_template_group->messenger() . '_' . $field;
2007
+                $field_id = $this->_message_template_group->messenger().'_'.$field;
2008 2008
                 $existing = $this->_message_template_group->messenger_obj()->get_existing_test_settings();
2009 2009
                 $default  = isset($config['default']) ? $config['default'] : '';
2010 2010
                 $default  = isset($config['value']) ? $config['value'] : $default;
@@ -2019,7 +2019,7 @@  discard block
 block discarded – undo
2019 2019
                     : $fix;
2020 2020
                 
2021 2021
                 $template_form_fields[$field_id] = array(
2022
-                    'name'       => 'test_settings_fld[' . $field . ']',
2022
+                    'name'       => 'test_settings_fld['.$field.']',
2023 2023
                     'label'      => $config['label'],
2024 2024
                     'input'      => $config['input'],
2025 2025
                     'type'       => $config['type'],
@@ -2049,7 +2049,7 @@  discard block
 block discarded – undo
2049 2049
         }
2050 2050
         
2051 2051
         //and button
2052
-        $test_settings_html .= '<p>' . __('Need to reset this message type and start over?', 'event_espresso') . '</p>';
2052
+        $test_settings_html .= '<p>'.__('Need to reset this message type and start over?', 'event_espresso').'</p>';
2053 2053
         $test_settings_html .= '<div class="publishing-action alignright resetbutton">';
2054 2054
         $test_settings_html .= $this->get_action_link_or_button(
2055 2055
             'reset_to_default',
@@ -2080,7 +2080,7 @@  discard block
 block discarded – undo
2080 2080
             'linked_input_id' => $linked_input_id
2081 2081
         );
2082 2082
         
2083
-        return EEH_Template::display_template(EE_MSG_TEMPLATE_PATH . 'shortcode_selector_skeleton.template.php',
2083
+        return EEH_Template::display_template(EE_MSG_TEMPLATE_PATH.'shortcode_selector_skeleton.template.php',
2084 2084
             $template_args, true);
2085 2085
     }
2086 2086
     
@@ -2098,7 +2098,7 @@  discard block
 block discarded – undo
2098 2098
         //$messenger = $this->_message_template_group->messenger_obj();
2099 2099
         //now let's set the content depending on the status of the shortcodes array
2100 2100
         if (empty($shortcodes)) {
2101
-            $content = '<p>' . __('There are no valid shortcodes available', 'event_espresso') . '</p>';
2101
+            $content = '<p>'.__('There are no valid shortcodes available', 'event_espresso').'</p>';
2102 2102
             echo $content;
2103 2103
         } else {
2104 2104
             //$alt = 0;
@@ -2215,7 +2215,7 @@  discard block
 block discarded – undo
2215 2215
                     <?php
2216 2216
                 }
2217 2217
                 //setup nonce_url
2218
-                wp_nonce_field($args['action'] . '_nonce', $args['action'] . '_nonce', false);
2218
+                wp_nonce_field($args['action'].'_nonce', $args['action'].'_nonce', false);
2219 2219
                 ?>
2220 2220
                 <select name="context">
2221 2221
                     <?php
@@ -2313,7 +2313,7 @@  discard block
 block discarded – undo
2313 2313
             : '';
2314 2314
         $context      = ucwords(str_replace('_', ' ', $context_slug));
2315 2315
         
2316
-        $item_desc = $messenger_label && $message_type_label ? $messenger_label . ' ' . $message_type_label . ' ' . $context . ' ' : '';
2316
+        $item_desc = $messenger_label && $message_type_label ? $messenger_label.' '.$message_type_label.' '.$context.' ' : '';
2317 2317
         $item_desc .= 'Message Template';
2318 2318
         $query_args  = array();
2319 2319
         $edit_array  = array();
@@ -2688,8 +2688,8 @@  discard block
 block discarded – undo
2688 2688
      */
2689 2689
     protected function _learn_more_about_message_templates_link()
2690 2690
     {
2691
-        return '<a class="hidden" style="margin:0 20px; cursor:pointer; font-size:12px;" >' . __('learn more about how message templates works',
2692
-            'event_espresso') . '</a>';
2691
+        return '<a class="hidden" style="margin:0 20px; cursor:pointer; font-size:12px;" >'.__('learn more about how message templates works',
2692
+            'event_espresso').'</a>';
2693 2693
     }
2694 2694
     
2695 2695
     
@@ -2765,10 +2765,10 @@  discard block
 block discarded – undo
2765 2765
                 
2766 2766
                 $this->_m_mt_settings['message_type_tabs'][$messenger->name][$a_or_i][$message_type->name] = array(
2767 2767
                     'label'    => ucwords($message_type->label['singular']),
2768
-                    'class'    => 'message-type-' . $a_or_i,
2769
-                    'slug_id'  => $message_type->name . '-messagetype-' . $messenger->name,
2770
-                    'mt_nonce' => wp_create_nonce($message_type->name . '_nonce'),
2771
-                    'href'     => 'espresso_' . $message_type->name . '_message_type_settings',
2768
+                    'class'    => 'message-type-'.$a_or_i,
2769
+                    'slug_id'  => $message_type->name.'-messagetype-'.$messenger->name,
2770
+                    'mt_nonce' => wp_create_nonce($message_type->name.'_nonce'),
2771
+                    'href'     => 'espresso_'.$message_type->name.'_message_type_settings',
2772 2772
                     'title'    => $a_or_i == 'active'
2773 2773
                         ? __('Drag this message type to the Inactive window to deactivate', 'event_espresso')
2774 2774
                         : __('Drag this message type to the messenger to activate', 'event_espresso'),
@@ -2804,9 +2804,9 @@  discard block
 block discarded – undo
2804 2804
             $existing_settings = $message_type->get_existing_admin_settings($messenger->name);
2805 2805
             
2806 2806
             foreach ($fields as $fldname => $fldprops) {
2807
-                $field_id                       = $messenger->name . '-' . $message_type->name . '-' . $fldname;
2807
+                $field_id                       = $messenger->name.'-'.$message_type->name.'-'.$fldname;
2808 2808
                 $template_form_field[$field_id] = array(
2809
-                    'name'       => 'message_type_settings[' . $fldname . ']',
2809
+                    'name'       => 'message_type_settings['.$fldname.']',
2810 2810
                     'label'      => $fldprops['label'],
2811 2811
                     'input'      => $fldprops['field_type'],
2812 2812
                     'type'       => $fldprops['value_type'],
@@ -2847,7 +2847,7 @@  discard block
 block discarded – undo
2847 2847
         $settings_template_args['show_form']     = empty($settings_template_args['template_form_fields']) ? ' hidden' : '';
2848 2848
         
2849 2849
         
2850
-        $template = EE_MSG_TEMPLATE_PATH . 'ee_msg_mt_settings_content.template.php';
2850
+        $template = EE_MSG_TEMPLATE_PATH.'ee_msg_mt_settings_content.template.php';
2851 2851
         $content  = EEH_Template::display_template($template, $settings_template_args, true);
2852 2852
         
2853 2853
         return $content;
@@ -2877,11 +2877,11 @@  discard block
 block discarded – undo
2877 2877
                 $active_mt_tabs                         = isset($this->_m_mt_settings['message_type_tabs'][$messenger]['active'])
2878 2878
                     ? $this->_m_mt_settings['message_type_tabs'][$messenger]['active']
2879 2879
                     : '';
2880
-                $m_boxes[$messenger . '_a_box']         = sprintf(
2880
+                $m_boxes[$messenger.'_a_box']         = sprintf(
2881 2881
                     __('%s Settings', 'event_espresso'),
2882 2882
                     $tab_array['label']
2883 2883
                 );
2884
-                $m_template_args[$messenger . '_a_box'] = array(
2884
+                $m_template_args[$messenger.'_a_box'] = array(
2885 2885
                     'active_message_types'   => ! empty($active_mt_tabs) ? $this->_get_mt_tabs($active_mt_tabs) : '',
2886 2886
                     'inactive_message_types' => isset($this->_m_mt_settings['message_type_tabs'][$messenger]['inactive'])
2887 2887
                         ? $this->_get_mt_tabs($this->_m_mt_settings['message_type_tabs'][$messenger]['inactive'])
@@ -2895,8 +2895,8 @@  discard block
 block discarded – undo
2895 2895
                 // message type meta boxes
2896 2896
                 // (which is really just the inactive container for each messenger
2897 2897
                 // showing inactive message types for that messenger)
2898
-                $mt_boxes[$messenger . '_i_box']         = __('Inactive Message Types', 'event_espresso');
2899
-                $mt_template_args[$messenger . '_i_box'] = array(
2898
+                $mt_boxes[$messenger.'_i_box']         = __('Inactive Message Types', 'event_espresso');
2899
+                $mt_template_args[$messenger.'_i_box'] = array(
2900 2900
                     'active_message_types'   => ! empty($active_mt_tabs) ? $this->_get_mt_tabs($active_mt_tabs) : '',
2901 2901
                     'inactive_message_types' => isset($this->_m_mt_settings['message_type_tabs'][$messenger]['inactive'])
2902 2902
                         ? $this->_get_mt_tabs($this->_m_mt_settings['message_type_tabs'][$messenger]['inactive'])
@@ -2912,14 +2912,14 @@  discard block
 block discarded – undo
2912 2912
         
2913 2913
         
2914 2914
         //register messenger metaboxes
2915
-        $m_template_path = EE_MSG_TEMPLATE_PATH . 'ee_msg_details_messenger_mt_meta_box.template.php';
2915
+        $m_template_path = EE_MSG_TEMPLATE_PATH.'ee_msg_details_messenger_mt_meta_box.template.php';
2916 2916
         foreach ($m_boxes as $box => $label) {
2917 2917
             $callback_args = array('template_path' => $m_template_path, 'template_args' => $m_template_args[$box]);
2918 2918
             $msgr          = str_replace('_a_box', '', $box);
2919 2919
             add_meta_box(
2920
-                'espresso_' . $msgr . '_settings',
2920
+                'espresso_'.$msgr.'_settings',
2921 2921
                 $label,
2922
-                function ($post, $metabox) {
2922
+                function($post, $metabox) {
2923 2923
                     echo EEH_Template::display_template($metabox["args"]["template_path"],
2924 2924
                         $metabox["args"]["template_args"], true);
2925 2925
                 },
@@ -2931,17 +2931,17 @@  discard block
 block discarded – undo
2931 2931
         }
2932 2932
         
2933 2933
         //register message type metaboxes
2934
-        $mt_template_path = EE_MSG_TEMPLATE_PATH . 'ee_msg_details_messenger_meta_box.template.php';
2934
+        $mt_template_path = EE_MSG_TEMPLATE_PATH.'ee_msg_details_messenger_meta_box.template.php';
2935 2935
         foreach ($mt_boxes as $box => $label) {
2936 2936
             $callback_args = array(
2937 2937
                 'template_path' => $mt_template_path,
2938 2938
                 'template_args' => $mt_template_args[$box]
2939 2939
             );
2940
-            $mt            = str_replace('_i_box', '', $box);
2940
+            $mt = str_replace('_i_box', '', $box);
2941 2941
             add_meta_box(
2942
-                'espresso_' . $mt . '_inactive_mts',
2942
+                'espresso_'.$mt.'_inactive_mts',
2943 2943
                 $label,
2944
-                function ($post, $metabox) {
2944
+                function($post, $metabox) {
2945 2945
                     echo EEH_Template::display_template($metabox["args"]["template_path"],
2946 2946
                         $metabox["args"]["template_args"], true);
2947 2947
                 },
@@ -3043,7 +3043,7 @@  discard block
 block discarded – undo
3043 3043
             if ($form->is_valid()) {
3044 3044
                 $valid_data = $form->valid_data();
3045 3045
                 foreach ($valid_data as $property => $value) {
3046
-                    $setter = 'set_' . $property;
3046
+                    $setter = 'set_'.$property;
3047 3047
                     if (method_exists($network_config, $setter)) {
3048 3048
                         $network_config->{$setter}($value);
3049 3049
                     } else if (
@@ -3072,8 +3072,8 @@  discard block
 block discarded – undo
3072 3072
      */
3073 3073
     protected function _get_mt_tabs($tab_array)
3074 3074
     {
3075
-        $tab_array = (array)$tab_array;
3076
-        $template  = EE_MSG_TEMPLATE_PATH . 'ee_msg_details_mt_settings_tab_item.template.php';
3075
+        $tab_array = (array) $tab_array;
3076
+        $template  = EE_MSG_TEMPLATE_PATH.'ee_msg_details_mt_settings_tab_item.template.php';
3077 3077
         $tabs      = '';
3078 3078
         
3079 3079
         foreach ($tab_array as $tab) {
@@ -3106,9 +3106,9 @@  discard block
 block discarded – undo
3106 3106
             $existing_settings = $messenger->get_existing_admin_settings();
3107 3107
             
3108 3108
             foreach ($fields as $fldname => $fldprops) {
3109
-                $field_id                       = $messenger->name . '-' . $fldname;
3109
+                $field_id                       = $messenger->name.'-'.$fldname;
3110 3110
                 $template_form_field[$field_id] = array(
3111
-                    'name'       => 'messenger_settings[' . $field_id . ']',
3111
+                    'name'       => 'messenger_settings['.$field_id.']',
3112 3112
                     'label'      => $fldprops['label'],
3113 3113
                     'input'      => $fldprops['field_type'],
3114 3114
                     'type'       => $fldprops['value_type'],
@@ -3143,7 +3143,7 @@  discard block
 block discarded – undo
3143 3143
         //make sure any active message types that are existing are included in the hidden fields
3144 3144
         if (isset($this->_m_mt_settings['message_type_tabs'][$messenger->name]['active'])) {
3145 3145
             foreach ($this->_m_mt_settings['message_type_tabs'][$messenger->name]['active'] as $mt => $values) {
3146
-                $settings_template_args['hidden_fields']['messenger_settings[message_types][' . $mt . ']'] = array(
3146
+                $settings_template_args['hidden_fields']['messenger_settings[message_types]['.$mt.']'] = array(
3147 3147
                     'type'  => 'hidden',
3148 3148
                     'value' => $mt
3149 3149
                 );
@@ -3153,7 +3153,7 @@  discard block
 block discarded – undo
3153 3153
             $settings_template_args['hidden_fields'],
3154 3154
             'array'
3155 3155
         );
3156
-        $active                                  = $this->_message_resource_manager->is_messenger_active($messenger->name);
3156
+        $active = $this->_message_resource_manager->is_messenger_active($messenger->name);
3157 3157
         
3158 3158
         $settings_template_args['messenger']           = $messenger->name;
3159 3159
         $settings_template_args['description']         = $messenger->description;
@@ -3170,9 +3170,9 @@  discard block
 block discarded – undo
3170 3170
         
3171 3171
         
3172 3172
         $settings_template_args['on_off_action'] = $active ? 'messenger-off' : 'messenger-on';
3173
-        $settings_template_args['nonce']         = wp_create_nonce('activate_' . $messenger->name . '_toggle_nonce');
3173
+        $settings_template_args['nonce']         = wp_create_nonce('activate_'.$messenger->name.'_toggle_nonce');
3174 3174
         $settings_template_args['on_off_status'] = $active ? true : false;
3175
-        $template                                = EE_MSG_TEMPLATE_PATH . 'ee_msg_m_settings_content.template.php';
3175
+        $template                                = EE_MSG_TEMPLATE_PATH.'ee_msg_m_settings_content.template.php';
3176 3176
         $content                                 = EEH_Template::display_template($template, $settings_template_args,
3177 3177
             true);
3178 3178
         
@@ -3200,7 +3200,7 @@  discard block
 block discarded – undo
3200 3200
         
3201 3201
         //do a nonce check here since we're not arriving via a normal route
3202 3202
         $nonce     = isset($this->_req_data['activate_nonce']) ? sanitize_text_field($this->_req_data['activate_nonce']) : '';
3203
-        $nonce_ref = 'activate_' . $this->_req_data['messenger'] . '_toggle_nonce';
3203
+        $nonce_ref = 'activate_'.$this->_req_data['messenger'].'_toggle_nonce';
3204 3204
         
3205 3205
         $this->_verify_nonce($nonce, $nonce_ref);
3206 3206
         
@@ -3302,7 +3302,7 @@  discard block
 block discarded – undo
3302 3302
         
3303 3303
         //do a nonce check here since we're not arriving via a normal route
3304 3304
         $nonce     = isset($this->_req_data['mt_nonce']) ? sanitize_text_field($this->_req_data['mt_nonce']) : '';
3305
-        $nonce_ref = $this->_req_data['message_type'] . '_nonce';
3305
+        $nonce_ref = $this->_req_data['message_type'].'_nonce';
3306 3306
         
3307 3307
         $this->_verify_nonce($nonce, $nonce_ref);
3308 3308
         
Please login to merge, or discard this patch.
core/EE_Deprecated.core.php 1 patch
Spacing   +178 added lines, -178 removed lines patch added patch discarded remove patch
@@ -1,6 +1,6 @@  discard block
 block discarded – undo
1 1
 <?php
2
-if ( ! defined( 'EVENT_ESPRESSO_VERSION' ) ) {
3
-	exit( 'No direct script access allowed' );
2
+if ( ! defined('EVENT_ESPRESSO_VERSION')) {
3
+	exit('No direct script access allowed');
4 4
 }
5 5
 /**
6 6
  * ************************************************************************
@@ -43,8 +43,8 @@  discard block
 block discarded – undo
43 43
 	$action_or_filter = 'action'
44 44
 ) {
45 45
 	$action_or_filter = $action_or_filter === 'action'
46
-		? esc_html__( 'action', 'event_espresso' )
47
-		: esc_html__( 'filter', 'event_espresso' );
46
+		? esc_html__('action', 'event_espresso')
47
+		: esc_html__('filter', 'event_espresso');
48 48
 	EE_Error::doing_it_wrong(
49 49
 		$deprecated_filter,
50 50
 		sprintf(
@@ -68,7 +68,7 @@  discard block
 block discarded – undo
68 68
  * @param \EE_Checkout $checkout
69 69
  * @return string
70 70
  */
71
-function ee_deprecated__registration_checkout__button_text( $submit_button_text, EE_Checkout $checkout ) {
71
+function ee_deprecated__registration_checkout__button_text($submit_button_text, EE_Checkout $checkout) {
72 72
 	// list of old filters
73 73
 	$deprecated_filters = array(
74 74
 		'update_registration_details' => true,
@@ -78,16 +78,16 @@  discard block
 block discarded – undo
78 78
 		'proceed_to' => true,
79 79
 	);
80 80
 	// loop thru and call doing_it_wrong() or remove any that aren't being used
81
-	foreach ( $deprecated_filters as $deprecated_filter => $on ) {
81
+	foreach ($deprecated_filters as $deprecated_filter => $on) {
82 82
 		// was this filter called ?
83
-		if ( has_action( 'FHEE__EED_Single_Page_Checkout__registration_checkout__button_text__' . $deprecated_filter )) {
83
+		if (has_action('FHEE__EED_Single_Page_Checkout__registration_checkout__button_text__'.$deprecated_filter)) {
84 84
 			// only display doing_it_wrong() notice to Event Admins during non-AJAX requests
85
-			if ( EE_Registry::instance()->CAP->current_user_can( 'ee_read_ee', 'hide_doing_it_wrong_for_deprecated_SPCO_filter' ) && ! defined( 'DOING_AJAX' ) ) {
85
+			if (EE_Registry::instance()->CAP->current_user_can('ee_read_ee', 'hide_doing_it_wrong_for_deprecated_SPCO_filter') && ! defined('DOING_AJAX')) {
86 86
 				EE_Error::doing_it_wrong(
87
-					'FHEE__EED_Single_Page_Checkout__registration_checkout__button_text__' . $deprecated_filter,
87
+					'FHEE__EED_Single_Page_Checkout__registration_checkout__button_text__'.$deprecated_filter,
88 88
 					sprintf(
89
-						__( 'The %1$s filter is deprecated.  It *may* work as an attempt to build in backwards compatibility.  However, it is recommended to use the following new filter: %2$s"%3$s" found in "%4$s"', 'event_espresso' ),
90
-						'FHEE__EED_Single_Page_Checkout__registration_checkout__button_text__' . $deprecated_filter,
89
+						__('The %1$s filter is deprecated.  It *may* work as an attempt to build in backwards compatibility.  However, it is recommended to use the following new filter: %2$s"%3$s" found in "%4$s"', 'event_espresso'),
90
+						'FHEE__EED_Single_Page_Checkout__registration_checkout__button_text__'.$deprecated_filter,
91 91
 						'<br />',
92 92
 						'FHEE__EE_SPCO_Reg_Step__set_submit_button_text___submit_button_text',
93 93
 						'/modules/single_page_checkout/inc/EE_SPCO_Reg_Step.class.php'
@@ -96,24 +96,24 @@  discard block
 block discarded – undo
96 96
 				);
97 97
 			}
98 98
 		} else {
99
-			unset( $deprecated_filters[ $deprecated_filter ] );
99
+			unset($deprecated_filters[$deprecated_filter]);
100 100
 		}
101 101
 	}
102
-	if ( ! empty( $deprecated_filters )) {
103
-
104
-		if ( $checkout->current_step->slug() == 'attendee_information' && $checkout->revisit && isset( $deprecated_filters[ 'update_registration_details' ] )) {
105
-			$submit_button_text = apply_filters( 'FHEE__EED_Single_Page_Checkout__registration_checkout__button_text__update_registration_details', $submit_button_text );
106
-		} else if ( $checkout->current_step->slug() == 'payment_options' && $checkout->revisit && isset( $deprecated_filters[ 'process_payment' ] ) ) {
107
-			$submit_button_text = apply_filters( 'FHEE__EED_Single_Page_Checkout__registration_checkout__button_text__process_payment', $submit_button_text );
108
-		} else if ( $checkout->next_step instanceof EE_SPCO_Reg_Step && $checkout->next_step->slug() == 'finalize_registration' && isset( $deprecated_filters[ 'finalize_registration' ] ) ) {
109
-			$submit_button_text = apply_filters( 'FHEE__EED_Single_Page_Checkout__registration_checkout__button_text__finalize_registration', $submit_button_text );
102
+	if ( ! empty($deprecated_filters)) {
103
+
104
+		if ($checkout->current_step->slug() == 'attendee_information' && $checkout->revisit && isset($deprecated_filters['update_registration_details'])) {
105
+			$submit_button_text = apply_filters('FHEE__EED_Single_Page_Checkout__registration_checkout__button_text__update_registration_details', $submit_button_text);
106
+		} else if ($checkout->current_step->slug() == 'payment_options' && $checkout->revisit && isset($deprecated_filters['process_payment'])) {
107
+			$submit_button_text = apply_filters('FHEE__EED_Single_Page_Checkout__registration_checkout__button_text__process_payment', $submit_button_text);
108
+		} else if ($checkout->next_step instanceof EE_SPCO_Reg_Step && $checkout->next_step->slug() == 'finalize_registration' && isset($deprecated_filters['finalize_registration'])) {
109
+			$submit_button_text = apply_filters('FHEE__EED_Single_Page_Checkout__registration_checkout__button_text__finalize_registration', $submit_button_text);
110 110
 		}
111
-		if ( $checkout->next_step instanceof EE_SPCO_Reg_Step ) {
112
-			if ( $checkout->payment_required() && $checkout->next_step->slug() == 'payment_options' && isset( $deprecated_filters[ 'and_proceed_to_payment' ] ) ) {
113
-				$submit_button_text .= apply_filters( 'FHEE__EED_Single_Page_Checkout__registration_checkout__button_text__and_proceed_to_payment', $submit_button_text );
111
+		if ($checkout->next_step instanceof EE_SPCO_Reg_Step) {
112
+			if ($checkout->payment_required() && $checkout->next_step->slug() == 'payment_options' && isset($deprecated_filters['and_proceed_to_payment'])) {
113
+				$submit_button_text .= apply_filters('FHEE__EED_Single_Page_Checkout__registration_checkout__button_text__and_proceed_to_payment', $submit_button_text);
114 114
 			}
115
-			if ( $checkout->next_step->slug() != 'finalize_registration' && ! $checkout->revisit && isset( $deprecated_filters[ 'proceed_to' ] ) ) {
116
-				$submit_button_text = apply_filters( 'FHEE__EED_Single_Page_Checkout__registration_checkout__button_text__proceed_to', $submit_button_text ) . $checkout->next_step->name();
115
+			if ($checkout->next_step->slug() != 'finalize_registration' && ! $checkout->revisit && isset($deprecated_filters['proceed_to'])) {
116
+				$submit_button_text = apply_filters('FHEE__EED_Single_Page_Checkout__registration_checkout__button_text__proceed_to', $submit_button_text).$checkout->next_step->name();
117 117
 			}
118 118
 		}
119 119
 
@@ -121,7 +121,7 @@  discard block
 block discarded – undo
121 121
 	return $submit_button_text;
122 122
 
123 123
 }
124
-add_filter( 'FHEE__EE_SPCO_Reg_Step__set_submit_button_text___submit_button_text', 'ee_deprecated__registration_checkout__button_text', 10, 2 );
124
+add_filter('FHEE__EE_SPCO_Reg_Step__set_submit_button_text___submit_button_text', 'ee_deprecated__registration_checkout__button_text', 10, 2);
125 125
 
126 126
 
127 127
 
@@ -132,16 +132,16 @@  discard block
 block discarded – undo
132 132
  * @param \EE_Checkout $checkout
133 133
  * @param boolean $status_updates
134 134
  */
135
-function ee_deprecated_finalize_transaction( EE_Checkout $checkout, $status_updates ) {
135
+function ee_deprecated_finalize_transaction(EE_Checkout $checkout, $status_updates) {
136 136
 	$action_ref = NULL;
137
-	$action_ref = has_action( 'AHEE__EE_Transaction__finalize__new_transaction' ) ? 'AHEE__EE_Transaction__finalize__new_transaction' : $action_ref;
138
-	$action_ref = has_action( 'AHEE__EE_Transaction__finalize__all_transaction' ) ? 'AHEE__EE_Transaction__finalize__all_transaction' : $action_ref;
139
-	if ( $action_ref ) {
137
+	$action_ref = has_action('AHEE__EE_Transaction__finalize__new_transaction') ? 'AHEE__EE_Transaction__finalize__new_transaction' : $action_ref;
138
+	$action_ref = has_action('AHEE__EE_Transaction__finalize__all_transaction') ? 'AHEE__EE_Transaction__finalize__all_transaction' : $action_ref;
139
+	if ($action_ref) {
140 140
 
141 141
 		EE_Error::doing_it_wrong(
142 142
 			$action_ref,
143 143
 			sprintf(
144
-				__( 'This action is deprecated.  It *may* work as an attempt to build in backwards compatibility.  However, it is recommended to use one of the following new actions: %1$s"%3$s" found in "%2$s" %1$s"%4$s" found in "%2$s" %1$s"%5$s" found in "%2$s" %1$s"%6$s" found in "%2$s"', 'event_espresso' ),
144
+				__('This action is deprecated.  It *may* work as an attempt to build in backwards compatibility.  However, it is recommended to use one of the following new actions: %1$s"%3$s" found in "%2$s" %1$s"%4$s" found in "%2$s" %1$s"%5$s" found in "%2$s" %1$s"%6$s" found in "%2$s"', 'event_espresso'),
145 145
 				'<br />',
146 146
 				'/core/business/EE_Transaction_Processor.class.php',
147 147
 				'AHEE__EE_Transaction_Processor__finalize',
@@ -151,39 +151,39 @@  discard block
 block discarded – undo
151 151
 			),
152 152
 			'4.6.0'
153 153
 		);
154
-		switch ( $action_ref ) {
154
+		switch ($action_ref) {
155 155
 			case 'AHEE__EE_Transaction__finalize__new_transaction' :
156
-				do_action( 'AHEE__EE_Transaction__finalize__new_transaction', $checkout->transaction, $checkout->admin_request );
156
+				do_action('AHEE__EE_Transaction__finalize__new_transaction', $checkout->transaction, $checkout->admin_request);
157 157
 				break;
158 158
 			case 'AHEE__EE_Transaction__finalize__all_transaction' :
159
-				do_action( 'AHEE__EE_Transaction__finalize__new_transaction', $checkout->transaction, array( 'new_reg' => ! $checkout->revisit, 'to_approved' => $status_updates ), $checkout->admin_request );
159
+				do_action('AHEE__EE_Transaction__finalize__new_transaction', $checkout->transaction, array('new_reg' => ! $checkout->revisit, 'to_approved' => $status_updates), $checkout->admin_request);
160 160
 				break;
161 161
 		}
162 162
 	}
163 163
 }
164
-add_action( 'AHEE__EE_SPCO_Reg_Step_Finalize_Registration__process_reg_step__completed', 'ee_deprecated_finalize_transaction', 10, 2 );
164
+add_action('AHEE__EE_SPCO_Reg_Step_Finalize_Registration__process_reg_step__completed', 'ee_deprecated_finalize_transaction', 10, 2);
165 165
 /**
166 166
  * ee_deprecated_finalize_registration
167 167
  *
168 168
  * @param EE_Registration $registration
169 169
  */
170
-function ee_deprecated_finalize_registration( EE_Registration $registration ) {
171
-	$action_ref = has_action( 'AHEE__EE_Registration__finalize__update_and_new_reg' ) ? 'AHEE__EE_Registration__finalize__update_and_new_reg' : NULL;
172
-	if ( $action_ref ) {
170
+function ee_deprecated_finalize_registration(EE_Registration $registration) {
171
+	$action_ref = has_action('AHEE__EE_Registration__finalize__update_and_new_reg') ? 'AHEE__EE_Registration__finalize__update_and_new_reg' : NULL;
172
+	if ($action_ref) {
173 173
 		EE_Error::doing_it_wrong(
174 174
 			$action_ref,
175 175
 			sprintf(
176
-				__( 'This action is deprecated.  It *may* work as an attempt to build in backwards compatibility.  However, it is recommended to use the following new action: %1$s"%3$s" found in "%2$s"', 'event_espresso' ),
176
+				__('This action is deprecated.  It *may* work as an attempt to build in backwards compatibility.  However, it is recommended to use the following new action: %1$s"%3$s" found in "%2$s"', 'event_espresso'),
177 177
 				'<br />',
178 178
 				'/core/business/EE_Registration_Processor.class.php',
179 179
 				'AHEE__EE_Registration_Processor__trigger_registration_status_changed_hook'
180 180
 			),
181 181
 			'4.6.0'
182 182
 		);
183
-		do_action( 'AHEE__EE_Registration__finalize__update_and_new_reg', $registration, ( is_admin() && ! ( defined( 'DOING_AJAX' ) && DOING_AJAX )));
183
+		do_action('AHEE__EE_Registration__finalize__update_and_new_reg', $registration, (is_admin() && ! (defined('DOING_AJAX') && DOING_AJAX)));
184 184
 	}
185 185
 }
186
-add_action( 'AHEE__EE_Registration_Processor__trigger_registration_update_notifications', 'ee_deprecated_finalize_registration', 10, 1 );
186
+add_action('AHEE__EE_Registration_Processor__trigger_registration_update_notifications', 'ee_deprecated_finalize_registration', 10, 1);
187 187
 
188 188
 
189 189
 
@@ -191,7 +191,7 @@  discard block
 block discarded – undo
191 191
  * Called after EED_Module::set_hooks() and EED_Module::set_admin_hooks() was called.
192 192
  * Checks if any deprecated hooks were hooked-into and provide doing_it_wrong messages appropriately.
193 193
  */
194
-function ee_deprecated_hooks(){
194
+function ee_deprecated_hooks() {
195 195
 	/**
196 196
 	 * @var $hooks array where keys are hook names, and their values are array{
197 197
 	 *			@type string $version  when deprecated
@@ -202,25 +202,25 @@  discard block
 block discarded – undo
202 202
 	$hooks = array(
203 203
 		'AHEE__EE_System___do_setup_validations' => array(
204 204
 			'version' => '4.6.0',
205
-			'alternative' => __( 'Instead use "AHEE__EEH_Activation__validate_messages_system" which is called after validating messages (done on every new install, upgrade, reactivation, and downgrade)', 'event_espresso' ),
205
+			'alternative' => __('Instead use "AHEE__EEH_Activation__validate_messages_system" which is called after validating messages (done on every new install, upgrade, reactivation, and downgrade)', 'event_espresso'),
206 206
 			'still_works' => FALSE
207 207
 		)
208 208
 	);
209
-	foreach( $hooks as $name => $deprecation_info ){
210
-		if( has_action( $name ) ){
209
+	foreach ($hooks as $name => $deprecation_info) {
210
+		if (has_action($name)) {
211 211
 			EE_Error::doing_it_wrong(
212 212
 				$name,
213 213
 				sprintf(
214
-					__('This filter is deprecated. %1$s%2$s','event_espresso'),
215
-					$deprecation_info[ 'still_works' ] ?  __('It *may* work as an attempt to build in backwards compatibility.', 'event_espresso') : __( 'It has been completely removed.', 'event_espresso' ),
216
-					isset( $deprecation_info[ 'alternative' ] ) ? $deprecation_info[ 'alternative' ] : __( 'Please read the current EE4 documentation further or contact Support.', 'event_espresso' )
214
+					__('This filter is deprecated. %1$s%2$s', 'event_espresso'),
215
+					$deprecation_info['still_works'] ?  __('It *may* work as an attempt to build in backwards compatibility.', 'event_espresso') : __('It has been completely removed.', 'event_espresso'),
216
+					isset($deprecation_info['alternative']) ? $deprecation_info['alternative'] : __('Please read the current EE4 documentation further or contact Support.', 'event_espresso')
217 217
 				),
218
-				isset( $deprecation_info[ 'version' ] ) ? $deprecation_info[ 'version' ] : __( 'recently', 'event_espresso' )
218
+				isset($deprecation_info['version']) ? $deprecation_info['version'] : __('recently', 'event_espresso')
219 219
 			);
220 220
 		}
221 221
 	}
222 222
 }
223
-add_action( 'AHEE__EE_System__set_hooks_for_shortcodes_modules_and_addons', 'ee_deprecated_hooks' );
223
+add_action('AHEE__EE_System__set_hooks_for_shortcodes_modules_and_addons', 'ee_deprecated_hooks');
224 224
 
225 225
 
226 226
 
@@ -231,9 +231,9 @@  discard block
 block discarded – undo
231 231
  * @return boolean
232 232
  */
233 233
 function ee_deprecated_using_old_registration_admin_custom_questions_form_hooks() {
234
-	$in_use =  has_filter( 'FHEE__Registrations_Admin_Page___update_attendee_registration_form__qstns' )
235
-			|| has_action( 'AHEE__Registrations_Admin_Page___save_attendee_registration_form__after_reg_and_attendee_save' );
236
-	if( $in_use ) {
234
+	$in_use = has_filter('FHEE__Registrations_Admin_Page___update_attendee_registration_form__qstns')
235
+			|| has_action('AHEE__Registrations_Admin_Page___save_attendee_registration_form__after_reg_and_attendee_save');
236
+	if ($in_use) {
237 237
 		$msg = __(
238 238
 			'We detected you are using the filter FHEE__Registrations_Admin_Page___update_attendee_registration_form__qstns or AHEE__Registrations_Admin_Page___save_attendee_registration_form__after_reg_and_attendee_save.'
239 239
 			. 'Both of these have been deprecated and should not be used anymore. You should instead use FHEE__EE_Form_Section_Proper___construct__options_array to customize the contents of the form,'
@@ -242,18 +242,18 @@  discard block
 block discarded – undo
242 242
 			'event_espresso' )
243 243
 		;
244 244
 		EE_Error::doing_it_wrong(
245
-			__CLASS__ . '::' . __FUNCTION__,
245
+			__CLASS__.'::'.__FUNCTION__,
246 246
 			$msg,
247 247
 			'4.8.32.rc.000'
248 248
 		);
249 249
 		//it seems the doing_it_wrong messages get output during some hidden html tags, so add an error to make sure this gets noticed
250
-		if ( is_admin() && ! defined( 'DOING_AJAX' ) ) {
251
-			EE_Error::add_error( $msg, __FILE__, __FUNCTION__, __LINE__ );
250
+		if (is_admin() && ! defined('DOING_AJAX')) {
251
+			EE_Error::add_error($msg, __FILE__, __FUNCTION__, __LINE__);
252 252
 		}
253 253
 	}
254 254
 	return $in_use;
255 255
 }
256
-add_action( 'AHEE__Registrations_Admin_Page___registration_details_metabox__start', 'ee_deprecated_using_old_registration_admin_custom_questions_form_hooks' );
256
+add_action('AHEE__Registrations_Admin_Page___registration_details_metabox__start', 'ee_deprecated_using_old_registration_admin_custom_questions_form_hooks');
257 257
 
258 258
 /**
259 259
  * @deprecated since 4.8.32.rc.000 because it has issues on https://events.codebasehq.com/projects/event-espresso/tickets/9165
@@ -262,34 +262,34 @@  discard block
 block discarded – undo
262 262
  * @param EE_Admin_Page $admin_page
263 263
  * @return void
264 264
  */
265
-function ee_deprecated_update_attendee_registration_form_old( $admin_page ) {
265
+function ee_deprecated_update_attendee_registration_form_old($admin_page) {
266 266
 	//check if the old hooks are in use. If not, do the default
267
-	if( ! ee_deprecated_using_old_registration_admin_custom_questions_form_hooks()
268
-		|| ! $admin_page instanceof EE_Admin_Page ) {
267
+	if ( ! ee_deprecated_using_old_registration_admin_custom_questions_form_hooks()
268
+		|| ! $admin_page instanceof EE_Admin_Page) {
269 269
 		return;
270 270
 	}
271 271
 	$req_data = $admin_page->get_request_data();
272
-	$qstns = isset( $req_data['qstn'] ) ? $req_data['qstn'] : FALSE;
273
-	$REG_ID = isset( $req_data['_REG_ID'] ) ? absint( $req_data['_REG_ID'] ) : FALSE;
274
-	$qstns = apply_filters( 'FHEE__Registrations_Admin_Page___update_attendee_registration_form__qstns', $qstns );
275
-	if ( ! $REG_ID || ! $qstns ) {
276
-		EE_Error::add_error( __('An error occurred. No registration ID and/or registration questions were received.', 'event_espresso'), __FILE__, __FUNCTION__, __LINE__ );
272
+	$qstns = isset($req_data['qstn']) ? $req_data['qstn'] : FALSE;
273
+	$REG_ID = isset($req_data['_REG_ID']) ? absint($req_data['_REG_ID']) : FALSE;
274
+	$qstns = apply_filters('FHEE__Registrations_Admin_Page___update_attendee_registration_form__qstns', $qstns);
275
+	if ( ! $REG_ID || ! $qstns) {
276
+		EE_Error::add_error(__('An error occurred. No registration ID and/or registration questions were received.', 'event_espresso'), __FILE__, __FUNCTION__, __LINE__);
277 277
 	}
278 278
 	$success = TRUE;
279 279
 
280 280
 	// allow others to get in on this awesome fun   :D
281
-	do_action( 'AHEE__Registrations_Admin_Page___save_attendee_registration_form__after_reg_and_attendee_save', $REG_ID, $qstns );
281
+	do_action('AHEE__Registrations_Admin_Page___save_attendee_registration_form__after_reg_and_attendee_save', $REG_ID, $qstns);
282 282
 	// loop thru questions... FINALLY!!!
283 283
 
284
-	foreach ( $qstns as $QST_ID => $qstn ) {
284
+	foreach ($qstns as $QST_ID => $qstn) {
285 285
 		//if $qstn isn't an array then it doesn't already have an answer, so let's create the answer
286
-		if ( !is_array($qstn) ) {
287
-			$success = $this->_save_new_answer( $REG_ID, $QST_ID, $qstn);
286
+		if ( ! is_array($qstn)) {
287
+			$success = $this->_save_new_answer($REG_ID, $QST_ID, $qstn);
288 288
 			continue;
289 289
 		}
290 290
 
291 291
 
292
-		foreach ( $qstn as $ANS_ID => $ANS_value ) {
292
+		foreach ($qstn as $ANS_ID => $ANS_value) {
293 293
 			//get answer
294 294
 			$query_params = array(
295 295
 				0 => array(
@@ -300,7 +300,7 @@  discard block
 block discarded – undo
300 300
 				);
301 301
 			$answer = EEM_Answer::instance()->get_one($query_params);
302 302
 			//this MAY be an array but NOT have an answer because its multi select.  If so then we need to create the answer
303
-			if ( ! $answer instanceof EE_Answer ) {
303
+			if ( ! $answer instanceof EE_Answer) {
304 304
 				$set_values = array(
305 305
 					'QST_ID' => $QST_ID,
306 306
 					'REG_ID' => $REG_ID,
@@ -315,11 +315,11 @@  discard block
 block discarded – undo
315 315
 		}
316 316
 	}
317 317
 	$what = __('Registration Form', 'event_espresso');
318
-	$route = $REG_ID ? array( 'action' => 'view_registration', '_REG_ID' => $REG_ID ) : array( 'action' => 'default' );
319
-	$admin_page->redirect_after_action( $success, $what, __('updated', 'event_espresso'), $route );
318
+	$route = $REG_ID ? array('action' => 'view_registration', '_REG_ID' => $REG_ID) : array('action' => 'default');
319
+	$admin_page->redirect_after_action($success, $what, __('updated', 'event_espresso'), $route);
320 320
 	exit;
321 321
 }
322
-add_action( 'AHEE__Registrations_Admin_Page___update_attendee_registration_form__start', 'ee_deprecated_update_attendee_registration_form_old', 10, 1 );
322
+add_action('AHEE__Registrations_Admin_Page___update_attendee_registration_form__start', 'ee_deprecated_update_attendee_registration_form_old', 10, 1);
323 323
 /**
324 324
  * Render the registration admin page's custom questions area in the old fashion
325 325
  * and firing the old hooks. When this method is removed, we can probably also
@@ -332,31 +332,31 @@  discard block
 block discarded – undo
332 332
  * @return bool
333 333
  * @throws \EE_Error
334 334
  */
335
-function ee_deprecated_reg_questions_meta_box_old( $do_default_action, $admin_page, $registration ) {
335
+function ee_deprecated_reg_questions_meta_box_old($do_default_action, $admin_page, $registration) {
336 336
 	//check if the old hooks are in use. If not, do the default
337
-	if( ! ee_deprecated_using_old_registration_admin_custom_questions_form_hooks()
338
-		|| ! $admin_page instanceof EE_Admin_Page ) {
337
+	if ( ! ee_deprecated_using_old_registration_admin_custom_questions_form_hooks()
338
+		|| ! $admin_page instanceof EE_Admin_Page) {
339 339
 		return $do_default_action;
340 340
 	}
341
-	add_filter( 'FHEE__EEH_Form_Fields__generate_question_groups_html__before_question_group_questions', array( $admin_page, 'form_before_question_group' ), 10, 1 );
342
-	add_filter( 'FHEE__EEH_Form_Fields__generate_question_groups_html__after_question_group_questions', array( $admin_page, 'form_after_question_group' ), 10, 1 );
343
-	add_filter( 'FHEE__EEH_Form_Fields__label_html', array( $admin_page, 'form_form_field_label_wrap' ), 10, 1 );
344
-	add_filter( 'FHEE__EEH_Form_Fields__input_html', array( $admin_page, 'form_form_field_input__wrap' ), 10, 1 );
341
+	add_filter('FHEE__EEH_Form_Fields__generate_question_groups_html__before_question_group_questions', array($admin_page, 'form_before_question_group'), 10, 1);
342
+	add_filter('FHEE__EEH_Form_Fields__generate_question_groups_html__after_question_group_questions', array($admin_page, 'form_after_question_group'), 10, 1);
343
+	add_filter('FHEE__EEH_Form_Fields__label_html', array($admin_page, 'form_form_field_label_wrap'), 10, 1);
344
+	add_filter('FHEE__EEH_Form_Fields__input_html', array($admin_page, 'form_form_field_input__wrap'), 10, 1);
345 345
 
346
-	$question_groups = EEM_Event::instance()->assemble_array_of_groups_questions_and_options( $registration, $registration->get('EVT_ID') );
346
+	$question_groups = EEM_Event::instance()->assemble_array_of_groups_questions_and_options($registration, $registration->get('EVT_ID'));
347 347
 
348
-	EE_Registry::instance()->load_helper( 'Form_Fields' );
348
+	EE_Registry::instance()->load_helper('Form_Fields');
349 349
 	$template_args = array(
350
-		'att_questions' => EEH_Form_Fields::generate_question_groups_html( $question_groups ),
350
+		'att_questions' => EEH_Form_Fields::generate_question_groups_html($question_groups),
351 351
 		'reg_questions_form_action' => 'edit_registration',
352 352
 		'REG_ID' => $registration->ID()
353 353
 	);
354
-	$template_path = REG_TEMPLATE_PATH . 'reg_admin_details_main_meta_box_reg_questions.template.php';
355
-	echo EEH_Template::display_template( $template_path, $template_args, TRUE );
354
+	$template_path = REG_TEMPLATE_PATH.'reg_admin_details_main_meta_box_reg_questions.template.php';
355
+	echo EEH_Template::display_template($template_path, $template_args, TRUE);
356 356
 	//indicate that we should not do the default admin page code
357 357
 	return false;
358 358
 }
359
-add_action( 'FHEE__Registrations_Admin_Page___reg_questions_meta_box__do_default', 'ee_deprecated_reg_questions_meta_box_old', 10, 3 );
359
+add_action('FHEE__Registrations_Admin_Page___reg_questions_meta_box__do_default', 'ee_deprecated_reg_questions_meta_box_old', 10, 3);
360 360
 
361 361
 
362 362
 
@@ -397,9 +397,9 @@  discard block
 block discarded – undo
397 397
 			'4.9.0'
398 398
 		);
399 399
 		/** @var EE_Message_Resource_Manager $message_resource_manager */
400
-		$message_resource_manager = EE_Registry::instance()->load_lib( 'Message_Resource_Manager' );
401
-		$messenger = $message_resource_manager->get_messenger( $messenger_name );
402
-		$message_type = $message_resource_manager->get_message_type( $message_type_name );
400
+		$message_resource_manager = EE_Registry::instance()->load_lib('Message_Resource_Manager');
401
+		$messenger = $message_resource_manager->get_messenger($messenger_name);
402
+		$message_type = $message_resource_manager->get_message_type($message_type_name);
403 403
 		return EE_Registry::instance()->load_lib(
404 404
 			'Messages_Template_Defaults',
405 405
 			array(
@@ -464,15 +464,15 @@  discard block
 block discarded – undo
464 464
 	/**
465 465
 	 * @param string $method
466 466
 	 */
467
-	public function _class_is_deprecated( $method ) {
467
+	public function _class_is_deprecated($method) {
468 468
 		EE_Error::doing_it_wrong(
469
-			'EE_messages::' . $method,
470
-			__( 'EE_messages has been deprecated.  Please use EE_Message_Resource_Manager instead.' ),
469
+			'EE_messages::'.$method,
470
+			__('EE_messages has been deprecated.  Please use EE_Message_Resource_Manager instead.'),
471 471
 			'4.9.0',
472 472
 			'4.10.0.p'
473 473
 		);
474 474
 		// Please use EE_Message_Resource_Manager instead
475
-		$this->_message_resource_manager = EE_Registry::instance()->load_lib( 'Message_Resource_Manager' );
475
+		$this->_message_resource_manager = EE_Registry::instance()->load_lib('Message_Resource_Manager');
476 476
 	}
477 477
 
478 478
 
@@ -482,10 +482,10 @@  discard block
 block discarded – undo
482 482
 	 * @param string $messenger_name
483 483
 	 * @return boolean TRUE if it was PREVIOUSLY active, and FALSE if it was previously inactive
484 484
 	 */
485
-	public function ensure_messenger_is_active( $messenger_name ) {
485
+	public function ensure_messenger_is_active($messenger_name) {
486 486
 		// EE_messages has been deprecated
487
-		$this->_class_is_deprecated( __FUNCTION__ );
488
-		return $this->_message_resource_manager->ensure_messenger_is_active( $messenger_name );
487
+		$this->_class_is_deprecated(__FUNCTION__);
488
+		return $this->_message_resource_manager->ensure_messenger_is_active($messenger_name);
489 489
 	}
490 490
 
491 491
 
@@ -497,10 +497,10 @@  discard block
 block discarded – undo
497 497
 	 * @return bool true if it got activated (or was active) and false if not.
498 498
 	 * @throws \EE_Error
499 499
 	 */
500
-	public function ensure_message_type_is_active( $message_type, $messenger ) {
500
+	public function ensure_message_type_is_active($message_type, $messenger) {
501 501
 		// EE_messages has been deprecated
502
-		$this->_class_is_deprecated( __FUNCTION__ );
503
-		return $this->_message_resource_manager->ensure_message_type_is_active( $message_type, $messenger );
502
+		$this->_class_is_deprecated(__FUNCTION__);
503
+		return $this->_message_resource_manager->ensure_message_type_is_active($message_type, $messenger);
504 504
 	}
505 505
 
506 506
 
@@ -513,10 +513,10 @@  discard block
 block discarded – undo
513 513
 	 *                                            they are already setup.)
514 514
 	 * @return boolean an array of generated templates or false if nothing generated/activated.
515 515
 	 */
516
-	public function activate_messenger( $messenger_name, $mts_to_activate = array() ) {
516
+	public function activate_messenger($messenger_name, $mts_to_activate = array()) {
517 517
 		// EE_messages has been deprecated
518
-		$this->_class_is_deprecated( __FUNCTION__ );
519
-		return $this->_message_resource_manager->activate_messenger( $messenger_name, $mts_to_activate );
518
+		$this->_class_is_deprecated(__FUNCTION__);
519
+		return $this->_message_resource_manager->activate_messenger($messenger_name, $mts_to_activate);
520 520
 	}
521 521
 
522 522
 
@@ -528,10 +528,10 @@  discard block
 block discarded – undo
528 528
 	 *
529 529
 	 * @return bool true is a generating messenger and can be sent OR FALSE meaning cannot send.
530 530
 	 */
531
-	public function is_generating_messenger_and_active( EE_messenger $messenger, EE_message_type $message_type ) {
531
+	public function is_generating_messenger_and_active(EE_messenger $messenger, EE_message_type $message_type) {
532 532
 		// EE_messages has been deprecated
533
-		$this->_class_is_deprecated( __FUNCTION__ );
534
-		return $this->_message_resource_manager->is_generating_messenger_and_active( $messenger, $message_type );
533
+		$this->_class_is_deprecated(__FUNCTION__);
534
+		return $this->_message_resource_manager->is_generating_messenger_and_active($messenger, $message_type);
535 535
 	}
536 536
 
537 537
 
@@ -541,10 +541,10 @@  discard block
 block discarded – undo
541 541
 	 * @param string $messenger
542 542
 	 * @return EE_messenger | null
543 543
 	 */
544
-	public function get_messenger_if_active( $messenger ) {
544
+	public function get_messenger_if_active($messenger) {
545 545
 		// EE_messages has been deprecated
546
-		$this->_class_is_deprecated( __FUNCTION__ );
547
-		return $this->_message_resource_manager->get_active_messenger( $messenger );
546
+		$this->_class_is_deprecated(__FUNCTION__);
547
+		return $this->_message_resource_manager->get_active_messenger($messenger);
548 548
 	}
549 549
 
550 550
 
@@ -565,9 +565,9 @@  discard block
 block discarded – undo
565 565
 	 *                  'message_type' => null
566 566
 	 *                  )
567 567
 	 */
568
-	public function validate_for_use( EE_Message $message ) {
568
+	public function validate_for_use(EE_Message $message) {
569 569
 		// EE_messages has been deprecated
570
-		$this->_class_is_deprecated( __FUNCTION__ );
570
+		$this->_class_is_deprecated(__FUNCTION__);
571 571
 		return array(
572 572
 			'messenger'    => $message->messenger_object(),
573 573
 			'message_type' => $message->message_type_object(),
@@ -595,41 +595,41 @@  discard block
 block discarded – undo
595 595
 		$send = true
596 596
 	) {
597 597
 		// EE_messages has been deprecated
598
-		$this->_class_is_deprecated( __FUNCTION__ );
598
+		$this->_class_is_deprecated(__FUNCTION__);
599 599
 		/** @type EE_Messages_Processor $processor */
600
-		$processor = EE_Registry::instance()->load_lib( 'Messages_Processor' );
600
+		$processor = EE_Registry::instance()->load_lib('Messages_Processor');
601 601
 		$error = false;
602 602
 		//try to intelligently determine what method we'll call based on the incoming data.
603 603
 		//if generating and sending are different then generate and send immediately.
604
-		if ( ! empty( $sending_messenger ) && $sending_messenger != $generating_messenger && $send ) {
604
+		if ( ! empty($sending_messenger) && $sending_messenger != $generating_messenger && $send) {
605 605
 			//in the legacy system, when generating and sending were different, that means all the
606 606
 			//vars are already in the request object.  So let's just use that.
607 607
 			try {
608 608
 				/** @type EE_Message_To_Generate_From_Request $mtg */
609
-				$mtg = EE_Registry::instance()->load_lib( 'Message_To_Generate_From_Request' );
610
-				$processor->generate_and_send_now( $mtg );
611
-			} catch ( EE_Error $e ) {
609
+				$mtg = EE_Registry::instance()->load_lib('Message_To_Generate_From_Request');
610
+				$processor->generate_and_send_now($mtg);
611
+			} catch (EE_Error $e) {
612 612
 				$error_msg = __(
613 613
 					'Please note that a system message failed to send due to a technical issue.',
614 614
 					'event_espresso'
615 615
 				);
616 616
 				// add specific message for developers if WP_DEBUG in on
617
-				$error_msg .= '||' . $e->getMessage();
618
-				EE_Error::add_error( $error_msg, __FILE__, __FUNCTION__, __LINE__ );
617
+				$error_msg .= '||'.$e->getMessage();
618
+				EE_Error::add_error($error_msg, __FILE__, __FUNCTION__, __LINE__);
619 619
 				$error = true;
620 620
 			}
621 621
 		} else {
622
-			$processor->generate_for_all_active_messengers( $type, $vars, $send );
622
+			$processor->generate_for_all_active_messengers($type, $vars, $send);
623 623
 			//let's find out if there were any errors and how many successfully were queued.
624 624
 			$count_errors = $processor->get_queue()->count_STS_in_queue(
625
-				array( EEM_Message::status_failed, EEM_Message::status_debug_only )
625
+				array(EEM_Message::status_failed, EEM_Message::status_debug_only)
626 626
 			);
627
-			$count_queued = $processor->get_queue()->count_STS_in_queue( EEM_Message::status_incomplete );
628
-			$count_retry = $processor->get_queue()->count_STS_in_queue( EEM_Message::status_retry );
627
+			$count_queued = $processor->get_queue()->count_STS_in_queue(EEM_Message::status_incomplete);
628
+			$count_retry = $processor->get_queue()->count_STS_in_queue(EEM_Message::status_retry);
629 629
 			$count_errors = $count_errors + $count_retry;
630
-			if ( $count_errors > 0 ) {
630
+			if ($count_errors > 0) {
631 631
 				$error = true;
632
-				if ( $count_errors > 1 && $count_retry > 1 && $count_queued > 1 ) {
632
+				if ($count_errors > 1 && $count_retry > 1 && $count_queued > 1) {
633 633
 					$message = sprintf(
634 634
 						__(
635 635
 							'There were %d errors and %d messages successfully queued for generation and sending',
@@ -638,7 +638,7 @@  discard block
 block discarded – undo
638 638
 						$count_errors,
639 639
 						$count_queued
640 640
 					);
641
-				} elseif ( $count_errors > 1 && $count_queued === 1 ) {
641
+				} elseif ($count_errors > 1 && $count_queued === 1) {
642 642
 					$message = sprintf(
643 643
 						__(
644 644
 							'There were %d errors and %d message successfully queued for generation.',
@@ -647,7 +647,7 @@  discard block
 block discarded – undo
647 647
 						$count_errors,
648 648
 						$count_queued
649 649
 					);
650
-				} elseif ( $count_errors === 1 && $count_queued > 1 ) {
650
+				} elseif ($count_errors === 1 && $count_queued > 1) {
651 651
 					$message = sprintf(
652 652
 						__(
653 653
 							'There was %d error and %d messages successfully queued for generation.',
@@ -665,9 +665,9 @@  discard block
 block discarded – undo
665 665
 						$count_errors
666 666
 					);
667 667
 				}
668
-				EE_Error::add_error( $message, __FILE__, __FUNCTION__, __LINE__ );
668
+				EE_Error::add_error($message, __FILE__, __FUNCTION__, __LINE__);
669 669
 			} else {
670
-				if ( $count_queued === 1 ) {
670
+				if ($count_queued === 1) {
671 671
 					$message = sprintf(
672 672
 						__(
673 673
 							'%d message successfully queued for generation.',
@@ -684,18 +684,18 @@  discard block
 block discarded – undo
684 684
 						$count_queued
685 685
 					);
686 686
 				}
687
-				EE_Error::add_success( $message );
687
+				EE_Error::add_success($message);
688 688
 			}
689 689
 		}
690 690
 		//if no error then return the generated message(s).
691
-		if ( ! $error && ! $send ) {
692
-			$generated_queue = $processor->generate_queue( false );
691
+		if ( ! $error && ! $send) {
692
+			$generated_queue = $processor->generate_queue(false);
693 693
 			//get message and return.
694 694
 			$generated_queue->get_message_repository()->rewind();
695 695
 			$messages = array();
696
-			while ( $generated_queue->get_message_repository()->valid() ) {
696
+			while ($generated_queue->get_message_repository()->valid()) {
697 697
 				$message = $generated_queue->get_message_repository()->current();
698
-				if ( $message instanceof EE_Message ) {
698
+				if ($message instanceof EE_Message) {
699 699
 					//set properties that might be expected by add-ons (backward compat)
700 700
 					$message->content = $message->content();
701 701
 					$message->template_pack = $message->get_template_pack();
@@ -720,10 +720,10 @@  discard block
 block discarded – undo
720 720
 	 * @param bool    $send      true we will do a test send using the messenger delivery, false we just do a regular preview
721 721
 	 * @return string          The body of the message.
722 722
 	 */
723
-	public function preview_message( $type, $context, $messenger, $send = false ) {
723
+	public function preview_message($type, $context, $messenger, $send = false) {
724 724
 		// EE_messages has been deprecated
725
-		$this->_class_is_deprecated( __FUNCTION__ );
726
-		return EED_Messages::preview_message( $type, $context, $messenger, $send );
725
+		$this->_class_is_deprecated(__FUNCTION__);
726
+		return EED_Messages::preview_message($type, $context, $messenger, $send);
727 727
 	}
728 728
 
729 729
 
@@ -737,14 +737,14 @@  discard block
 block discarded – undo
737 737
 	 *
738 738
 	 * @return bool          success or fail.
739 739
 	 */
740
-	public function send_message_with_messenger_only( $messenger, $message_type, $message ) {
740
+	public function send_message_with_messenger_only($messenger, $message_type, $message) {
741 741
 		// EE_messages has been deprecated
742
-		$this->_class_is_deprecated( __FUNCTION__ );
742
+		$this->_class_is_deprecated(__FUNCTION__);
743 743
 		//setup for sending to new method.
744 744
 		/** @type EE_Messages_Queue $queue */
745
-		$queue = EE_Registry::instance()->load_lib( 'Messages_Queue' );
745
+		$queue = EE_Registry::instance()->load_lib('Messages_Queue');
746 746
 		//make sure we have a proper message object
747
-		if ( ! $message instanceof EE_Message && is_object( $message ) && isset( $message->content ) ) {
747
+		if ( ! $message instanceof EE_Message && is_object($message) && isset($message->content)) {
748 748
 			$msg = EE_Message_Factory::create(
749 749
 				array(
750 750
 					'MSG_messenger'    => $messenger,
@@ -756,15 +756,15 @@  discard block
 block discarded – undo
756 756
 		} else {
757 757
 			$msg = $message;
758 758
 		}
759
-		if ( ! $msg instanceof EE_Message ) {
759
+		if ( ! $msg instanceof EE_Message) {
760 760
 			return false;
761 761
 		}
762 762
 		//make sure any content in a content property (if not empty) is set on the MSG_content.
763
-		if ( ! empty( $msg->content ) ) {
764
-			$msg->set( 'MSG_content', $msg->content );
763
+		if ( ! empty($msg->content)) {
764
+			$msg->set('MSG_content', $msg->content);
765 765
 		}
766
-		$queue->add( $msg );
767
-		return EED_Messages::send_message_with_messenger_only( $messenger, $message_type, $queue );
766
+		$queue->add($msg);
767
+		return EED_Messages::send_message_with_messenger_only($messenger, $message_type, $queue);
768 768
 	}
769 769
 
770 770
 
@@ -778,11 +778,11 @@  discard block
 block discarded – undo
778 778
 	 * @return array|object if creation is successful then we return an array of info, otherwise an error_object is returned.
779 779
 	 * @throws \EE_Error
780 780
 	 */
781
-	public function create_new_templates( $messenger, $message_type, $GRP_ID = 0, $is_global = false ) {
781
+	public function create_new_templates($messenger, $message_type, $GRP_ID = 0, $is_global = false) {
782 782
 		// EE_messages has been deprecated
783
-		$this->_class_is_deprecated( __FUNCTION__ );
784
-		EE_Registry::instance()->load_helper( 'MSG_Template' );
785
-		return EEH_MSG_Template::create_new_templates( $messenger, $message_type, $GRP_ID, $is_global );
783
+		$this->_class_is_deprecated(__FUNCTION__);
784
+		EE_Registry::instance()->load_helper('MSG_Template');
785
+		return EEH_MSG_Template::create_new_templates($messenger, $message_type, $GRP_ID, $is_global);
786 786
 	}
787 787
 
788 788
 
@@ -793,11 +793,11 @@  discard block
 block discarded – undo
793 793
 	 * @param  string $message_type_name name of EE_message_type
794 794
 	 * @return array
795 795
 	 */
796
-	public function get_fields( $messenger_name, $message_type_name ) {
796
+	public function get_fields($messenger_name, $message_type_name) {
797 797
 		// EE_messages has been deprecated
798
-		$this->_class_is_deprecated( __FUNCTION__ );
799
-		EE_Registry::instance()->load_helper( 'MSG_Template' );
800
-		return EEH_MSG_Template::get_fields( $messenger_name, $message_type_name );
798
+		$this->_class_is_deprecated(__FUNCTION__);
799
+		EE_Registry::instance()->load_helper('MSG_Template');
800
+		return EEH_MSG_Template::get_fields($messenger_name, $message_type_name);
801 801
 	}
802 802
 
803 803
 
@@ -811,13 +811,13 @@  discard block
 block discarded – undo
811 811
 	 * @return array                    multidimensional array of messenger and message_type objects
812 812
 	 *                                    (messengers index, and message_type index);
813 813
 	 */
814
-	public function get_installed( $type = 'all', $skip_cache = false ) {
814
+	public function get_installed($type = 'all', $skip_cache = false) {
815 815
 		// EE_messages has been deprecated
816
-		$this->_class_is_deprecated( __FUNCTION__ );
817
-		if ( $skip_cache ) {
816
+		$this->_class_is_deprecated(__FUNCTION__);
817
+		if ($skip_cache) {
818 818
 			$this->_message_resource_manager->reset_active_messengers_and_message_types();
819 819
 		}
820
-		switch ( $type ) {
820
+		switch ($type) {
821 821
 			case 'messengers' :
822 822
 				return array(
823 823
 					'messenger' => $this->_message_resource_manager->installed_messengers(),
@@ -846,7 +846,7 @@  discard block
 block discarded – undo
846 846
 	 */
847 847
 	public function get_active_messengers() {
848 848
 		// EE_messages has been deprecated
849
-		$this->_class_is_deprecated( __FUNCTION__ );
849
+		$this->_class_is_deprecated(__FUNCTION__);
850 850
 		return $this->_message_resource_manager->active_messengers();
851 851
 	}
852 852
 
@@ -858,7 +858,7 @@  discard block
 block discarded – undo
858 858
 	 */
859 859
 	public function get_active_message_types() {
860 860
 		// EE_messages has been deprecated
861
-		$this->_class_is_deprecated( __FUNCTION__ );
861
+		$this->_class_is_deprecated(__FUNCTION__);
862 862
 		return $this->_message_resource_manager->list_of_active_message_types();
863 863
 	}
864 864
 
@@ -870,7 +870,7 @@  discard block
 block discarded – undo
870 870
 	 */
871 871
 	public function get_active_message_type_objects() {
872 872
 		// EE_messages has been deprecated
873
-		$this->_class_is_deprecated( __FUNCTION__ );
873
+		$this->_class_is_deprecated(__FUNCTION__);
874 874
 		return $this->_message_resource_manager->get_active_message_type_objects();
875 875
 	}
876 876
 
@@ -882,10 +882,10 @@  discard block
 block discarded – undo
882 882
 	 * @param string $messenger The messenger being checked
883 883
 	 * @return EE_message_type[]    (or empty array if none present)
884 884
 	 */
885
-	public function get_active_message_types_per_messenger( $messenger ) {
885
+	public function get_active_message_types_per_messenger($messenger) {
886 886
 		// EE_messages has been deprecated
887
-		$this->_class_is_deprecated( __FUNCTION__ );
888
-		return $this->_message_resource_manager->get_active_message_types_for_messenger( $messenger );
887
+		$this->_class_is_deprecated(__FUNCTION__);
888
+		return $this->_message_resource_manager->get_active_message_types_for_messenger($messenger);
889 889
 	}
890 890
 
891 891
 
@@ -896,10 +896,10 @@  discard block
 block discarded – undo
896 896
 	 * @param string $message_type The string should correspond to a message type.
897 897
 	 * @return EE_message_type|null
898 898
 	 */
899
-	public function get_active_message_type( $messenger, $message_type ) {
899
+	public function get_active_message_type($messenger, $message_type) {
900 900
 		// EE_messages has been deprecated
901
-		$this->_class_is_deprecated( __FUNCTION__ );
902
-		return $this->_message_resource_manager->get_active_message_type_for_messenger( $messenger, $message_type );
901
+		$this->_class_is_deprecated(__FUNCTION__);
902
+		return $this->_message_resource_manager->get_active_message_type_for_messenger($messenger, $message_type);
903 903
 	}
904 904
 
905 905
 
@@ -910,7 +910,7 @@  discard block
 block discarded – undo
910 910
 	 */
911 911
 	public function get_installed_message_types() {
912 912
 		// EE_messages has been deprecated
913
-		$this->_class_is_deprecated( __FUNCTION__ );
913
+		$this->_class_is_deprecated(__FUNCTION__);
914 914
 		return $this->_message_resource_manager->installed_message_types();
915 915
 	}
916 916
 
@@ -922,7 +922,7 @@  discard block
 block discarded – undo
922 922
 	 */
923 923
 	public function get_installed_messengers() {
924 924
 		// EE_messages has been deprecated
925
-		$this->_class_is_deprecated( __FUNCTION__ );
925
+		$this->_class_is_deprecated(__FUNCTION__);
926 926
 		return $this->_message_resource_manager->installed_messengers();
927 927
 	}
928 928
 
@@ -933,10 +933,10 @@  discard block
 block discarded – undo
933 933
 	 * @param   bool $slugs_only Whether to return an array of just slugs and labels (true) or all contexts indexed by message type.
934 934
 	 * @return array
935 935
 	 */
936
-	public function get_all_contexts( $slugs_only = true ) {
936
+	public function get_all_contexts($slugs_only = true) {
937 937
 		// EE_messages has been deprecated
938
-		$this->_class_is_deprecated( __FUNCTION__ );
939
-		return $this->_message_resource_manager->get_all_contexts( $slugs_only );
938
+		$this->_class_is_deprecated(__FUNCTION__);
939
+		return $this->_message_resource_manager->get_all_contexts($slugs_only);
940 940
 	}
941 941
 
942 942
 
@@ -995,7 +995,7 @@  discard block
 block discarded – undo
995 995
 add_filter(
996 996
 	'FHEE__EventEspresso_modules_events_archive_EventsArchiveIframe__display__css',
997 997
 	function($event_list_iframe_css) {
998
-		if ( ! has_filter( 'FHEE__EventsArchiveIframe__event_list_iframe__css' )) {
998
+		if ( ! has_filter('FHEE__EventsArchiveIframe__event_list_iframe__css')) {
999 999
 			return $event_list_iframe_css;
1000 1000
 		}
1001 1001
 		deprecated_espresso_action_or_filter_doing_it_wrong(
@@ -1015,7 +1015,7 @@  discard block
 block discarded – undo
1015 1015
 add_filter(
1016 1016
 	'FHEE__EventEspresso_modules_events_archive_EventsArchiveIframe__display__js',
1017 1017
 	function($event_list_iframe_js) {
1018
-		if ( ! has_filter( 'FHEE__EED_Ticket_Selector__ticket_selector_iframe__js' )) {
1018
+		if ( ! has_filter('FHEE__EED_Ticket_Selector__ticket_selector_iframe__js')) {
1019 1019
 			return $event_list_iframe_js;
1020 1020
 		}
1021 1021
 		deprecated_espresso_action_or_filter_doing_it_wrong(
@@ -1035,7 +1035,7 @@  discard block
 block discarded – undo
1035 1035
 add_action(
1036 1036
 	'AHEE__EE_Capabilities__addCaps__complete',
1037 1037
 	function($capabilities_map) {
1038
-		if ( ! has_action( 'AHEE__EE_Capabilities__init_role_caps__complete' )) {
1038
+		if ( ! has_action('AHEE__EE_Capabilities__init_role_caps__complete')) {
1039 1039
 			return;
1040 1040
 		}
1041 1041
 		deprecated_espresso_action_or_filter_doing_it_wrong(
@@ -1055,7 +1055,7 @@  discard block
 block discarded – undo
1055 1055
 add_filter(
1056 1056
 	'FHEE_EventEspresso_core_services_commands_attendee_CreateAttendeeCommandHandler__findExistingAttendee__existing_attendee',
1057 1057
 	function($existing_attendee, $registration, $attendee_data) {
1058
-		if ( ! has_filter( 'FHEE_EE_Single_Page_Checkout__save_registration_items__find_existing_attendee' )) {
1058
+		if ( ! has_filter('FHEE_EE_Single_Page_Checkout__save_registration_items__find_existing_attendee')) {
1059 1059
 			return $existing_attendee;
1060 1060
 		}
1061 1061
 		deprecated_espresso_action_or_filter_doing_it_wrong(
@@ -1071,7 +1071,7 @@  discard block
 block discarded – undo
1071 1071
             $existing_attendee, $registration, $attendee_data
1072 1072
         );
1073 1073
 	},
1074
-	10,3
1074
+	10, 3
1075 1075
 );
1076 1076
 
1077 1077
 /**
@@ -1135,7 +1135,7 @@  discard block
 block discarded – undo
1135 1135
      */
1136 1136
     public function event_list_title($event_list_title = '')
1137 1137
     {
1138
-        if (! empty($this->title)) {
1138
+        if ( ! empty($this->title)) {
1139 1139
             return $this->title;
1140 1140
         }
1141 1141
         return $event_list_title;
Please login to merge, or discard this patch.
core/admin/EE_Admin_Page.core.php 1 patch
Spacing   +142 added lines, -142 removed lines patch added patch discarded remove patch
@@ -476,7 +476,7 @@  discard block
 block discarded – undo
476 476
         $this->_current_page = ! empty($_GET['page']) ? sanitize_key($_GET['page']) : '';
477 477
         $this->page_folder = strtolower(str_replace('_Admin_Page', '', str_replace('Extend_', '', get_class($this))));
478 478
         global $ee_menu_slugs;
479
-        $ee_menu_slugs = (array)$ee_menu_slugs;
479
+        $ee_menu_slugs = (array) $ee_menu_slugs;
480 480
         if (( ! $this->_current_page || ! isset($ee_menu_slugs[$this->_current_page])) && ! defined('DOING_AJAX')) {
481 481
             return;
482 482
         }
@@ -491,7 +491,7 @@  discard block
 block discarded – undo
491 491
         //however if we are doing_ajax and we've got a 'route' set then that's what the req_action will be
492 492
         $this->_req_action = defined('DOING_AJAX') && isset($this->_req_data['route']) ? $this->_req_data['route'] : $this->_req_action;
493 493
         $this->_current_view = $this->_req_action;
494
-        $this->_req_nonce = $this->_req_action . '_nonce';
494
+        $this->_req_nonce = $this->_req_action.'_nonce';
495 495
         $this->_define_page_props();
496 496
         $this->_current_page_view_url = add_query_arg(array('page' => $this->_current_page, 'action' => $this->_current_view), $this->_admin_base_url);
497 497
         //default things
@@ -512,11 +512,11 @@  discard block
 block discarded – undo
512 512
             $this->_extend_page_config_for_cpt();
513 513
         }
514 514
         //filter routes and page_config so addons can add their stuff. Filtering done per class
515
-        $this->_page_routes = apply_filters('FHEE__' . get_class($this) . '__page_setup__page_routes', $this->_page_routes, $this);
516
-        $this->_page_config = apply_filters('FHEE__' . get_class($this) . '__page_setup__page_config', $this->_page_config, $this);
515
+        $this->_page_routes = apply_filters('FHEE__'.get_class($this).'__page_setup__page_routes', $this->_page_routes, $this);
516
+        $this->_page_config = apply_filters('FHEE__'.get_class($this).'__page_setup__page_config', $this->_page_config, $this);
517 517
         //if AHEE__EE_Admin_Page__route_admin_request_$this->_current_view method is present then we call it hooked into the AHEE__EE_Admin_Page__route_admin_request action
518
-        if (method_exists($this, 'AHEE__EE_Admin_Page__route_admin_request_' . $this->_current_view)) {
519
-            add_action('AHEE__EE_Admin_Page__route_admin_request', array($this, 'AHEE__EE_Admin_Page__route_admin_request_' . $this->_current_view), 10, 2);
518
+        if (method_exists($this, 'AHEE__EE_Admin_Page__route_admin_request_'.$this->_current_view)) {
519
+            add_action('AHEE__EE_Admin_Page__route_admin_request', array($this, 'AHEE__EE_Admin_Page__route_admin_request_'.$this->_current_view), 10, 2);
520 520
         }
521 521
         //next route only if routing enabled
522 522
         if ($this->_routing && ! defined('DOING_AJAX')) {
@@ -526,8 +526,8 @@  discard block
 block discarded – undo
526 526
             if ($this->_is_UI_request) {
527 527
                 //admin_init stuff - global, all views for this page class, specific view
528 528
                 add_action('admin_init', array($this, 'admin_init'), 10);
529
-                if (method_exists($this, 'admin_init_' . $this->_current_view)) {
530
-                    add_action('admin_init', array($this, 'admin_init_' . $this->_current_view), 15);
529
+                if (method_exists($this, 'admin_init_'.$this->_current_view)) {
530
+                    add_action('admin_init', array($this, 'admin_init_'.$this->_current_view), 15);
531 531
                 }
532 532
             } else {
533 533
                 //hijack regular WP loading and route admin request immediately
@@ -547,17 +547,17 @@  discard block
 block discarded – undo
547 547
      */
548 548
     private function _do_other_page_hooks()
549 549
     {
550
-        $registered_pages = apply_filters('FHEE_do_other_page_hooks_' . $this->page_slug, array());
550
+        $registered_pages = apply_filters('FHEE_do_other_page_hooks_'.$this->page_slug, array());
551 551
         foreach ($registered_pages as $page) {
552 552
             //now let's setup the file name and class that should be present
553 553
             $classname = str_replace('.class.php', '', $page);
554 554
             //autoloaders should take care of loading file
555 555
             if ( ! class_exists($classname)) {
556
-                $error_msg[] = sprintf( esc_html__('Something went wrong with loading the %s admin hooks page.', 'event_espresso'), $page);
556
+                $error_msg[] = sprintf(esc_html__('Something went wrong with loading the %s admin hooks page.', 'event_espresso'), $page);
557 557
                 $error_msg[] = $error_msg[0]
558 558
                                . "\r\n"
559
-                               . sprintf( esc_html__('There is no class in place for the %1$s admin hooks page.%2$sMake sure you have %3$s defined. If this is a non-EE-core admin page then you also must have an autoloader in place for your class',
560
-                                'event_espresso'), $page, '<br />', '<strong>' . $classname . '</strong>');
559
+                               . sprintf(esc_html__('There is no class in place for the %1$s admin hooks page.%2$sMake sure you have %3$s defined. If this is a non-EE-core admin page then you also must have an autoloader in place for your class',
560
+                                'event_espresso'), $page, '<br />', '<strong>'.$classname.'</strong>');
561 561
                 throw new EE_Error(implode('||', $error_msg));
562 562
             }
563 563
             $a = new ReflectionClass($classname);
@@ -593,13 +593,13 @@  discard block
 block discarded – undo
593 593
         //load admin_notices - global, page class, and view specific
594 594
         add_action('admin_notices', array($this, 'admin_notices_global'), 5);
595 595
         add_action('admin_notices', array($this, 'admin_notices'), 10);
596
-        if (method_exists($this, 'admin_notices_' . $this->_current_view)) {
597
-            add_action('admin_notices', array($this, 'admin_notices_' . $this->_current_view), 15);
596
+        if (method_exists($this, 'admin_notices_'.$this->_current_view)) {
597
+            add_action('admin_notices', array($this, 'admin_notices_'.$this->_current_view), 15);
598 598
         }
599 599
         //load network admin_notices - global, page class, and view specific
600 600
         add_action('network_admin_notices', array($this, 'network_admin_notices_global'), 5);
601
-        if (method_exists($this, 'network_admin_notices_' . $this->_current_view)) {
602
-            add_action('network_admin_notices', array($this, 'network_admin_notices_' . $this->_current_view));
601
+        if (method_exists($this, 'network_admin_notices_'.$this->_current_view)) {
602
+            add_action('network_admin_notices', array($this, 'network_admin_notices_'.$this->_current_view));
603 603
         }
604 604
         //this will save any per_page screen options if they are present
605 605
         $this->_set_per_page_screen_options();
@@ -611,8 +611,8 @@  discard block
 block discarded – undo
611 611
         //add screen options - global, page child class, and view specific
612 612
         $this->_add_global_screen_options();
613 613
         $this->_add_screen_options();
614
-        if (method_exists($this, '_add_screen_options_' . $this->_current_view)) {
615
-            call_user_func(array($this, '_add_screen_options_' . $this->_current_view));
614
+        if (method_exists($this, '_add_screen_options_'.$this->_current_view)) {
615
+            call_user_func(array($this, '_add_screen_options_'.$this->_current_view));
616 616
         }
617 617
         //add help tab(s) and tours- set via page_config and qtips.
618 618
         $this->_add_help_tour();
@@ -621,31 +621,31 @@  discard block
 block discarded – undo
621 621
         //add feature_pointers - global, page child class, and view specific
622 622
         $this->_add_feature_pointers();
623 623
         $this->_add_global_feature_pointers();
624
-        if (method_exists($this, '_add_feature_pointer_' . $this->_current_view)) {
625
-            call_user_func(array($this, '_add_feature_pointer_' . $this->_current_view));
624
+        if (method_exists($this, '_add_feature_pointer_'.$this->_current_view)) {
625
+            call_user_func(array($this, '_add_feature_pointer_'.$this->_current_view));
626 626
         }
627 627
         //enqueue scripts/styles - global, page class, and view specific
628 628
         add_action('admin_enqueue_scripts', array($this, 'load_global_scripts_styles'), 5);
629 629
         add_action('admin_enqueue_scripts', array($this, 'load_scripts_styles'), 10);
630
-        if (method_exists($this, 'load_scripts_styles_' . $this->_current_view)) {
631
-            add_action('admin_enqueue_scripts', array($this, 'load_scripts_styles_' . $this->_current_view), 15);
630
+        if (method_exists($this, 'load_scripts_styles_'.$this->_current_view)) {
631
+            add_action('admin_enqueue_scripts', array($this, 'load_scripts_styles_'.$this->_current_view), 15);
632 632
         }
633 633
         add_action('admin_enqueue_scripts', array($this, 'admin_footer_scripts_eei18n_js_strings'), 100);
634 634
         //admin_print_footer_scripts - global, page child class, and view specific.  NOTE, despite the name, whenever possible, scripts should NOT be loaded using this.  In most cases that's doing_it_wrong().  But adding hidden container elements etc. is a good use case. Notice the late priority we're giving these
635 635
         add_action('admin_print_footer_scripts', array($this, 'admin_footer_scripts_global'), 99);
636 636
         add_action('admin_print_footer_scripts', array($this, 'admin_footer_scripts'), 100);
637
-        if (method_exists($this, 'admin_footer_scripts_' . $this->_current_view)) {
638
-            add_action('admin_print_footer_scripts', array($this, 'admin_footer_scripts_' . $this->_current_view), 101);
637
+        if (method_exists($this, 'admin_footer_scripts_'.$this->_current_view)) {
638
+            add_action('admin_print_footer_scripts', array($this, 'admin_footer_scripts_'.$this->_current_view), 101);
639 639
         }
640 640
         //admin footer scripts
641 641
         add_action('admin_footer', array($this, 'admin_footer_global'), 99);
642 642
         add_action('admin_footer', array($this, 'admin_footer'), 100);
643
-        if (method_exists($this, 'admin_footer_' . $this->_current_view)) {
644
-            add_action('admin_footer', array($this, 'admin_footer_' . $this->_current_view), 101);
643
+        if (method_exists($this, 'admin_footer_'.$this->_current_view)) {
644
+            add_action('admin_footer', array($this, 'admin_footer_'.$this->_current_view), 101);
645 645
         }
646 646
         do_action('FHEE__EE_Admin_Page___load_page_dependencies__after_load', $this->page_slug);
647 647
         //targeted hook
648
-        do_action('FHEE__EE_Admin_Page___load_page_dependencies__after_load__' . $this->page_slug . '__' . $this->_req_action);
648
+        do_action('FHEE__EE_Admin_Page___load_page_dependencies__after_load__'.$this->page_slug.'__'.$this->_req_action);
649 649
     }
650 650
 
651 651
 
@@ -721,7 +721,7 @@  discard block
 block discarded – undo
721 721
             // user error msg
722 722
             $error_msg = sprintf(__('No page routes have been set for the %s admin page.', 'event_espresso'), $this->_admin_page_title);
723 723
             // developer error msg
724
-            $error_msg .= '||' . $error_msg . __(' Make sure the "set_page_routes()" method exists, and is setting the "_page_routes" array properly.', 'event_espresso');
724
+            $error_msg .= '||'.$error_msg.__(' Make sure the "set_page_routes()" method exists, and is setting the "_page_routes" array properly.', 'event_espresso');
725 725
             throw new EE_Error($error_msg);
726 726
         }
727 727
         // and that the requested page route exists
@@ -732,7 +732,7 @@  discard block
 block discarded – undo
732 732
             // user error msg
733 733
             $error_msg = sprintf(__('The requested page route does not exist for the %s admin page.', 'event_espresso'), $this->_admin_page_title);
734 734
             // developer error msg
735
-            $error_msg .= '||' . $error_msg . sprintf(__(' Create a key in the "_page_routes" array named "%s" and set its value to the appropriate method.', 'event_espresso'), $this->_req_action);
735
+            $error_msg .= '||'.$error_msg.sprintf(__(' Create a key in the "_page_routes" array named "%s" and set its value to the appropriate method.', 'event_espresso'), $this->_req_action);
736 736
             throw new EE_Error($error_msg);
737 737
         }
738 738
         // and that a default route exists
@@ -740,7 +740,7 @@  discard block
 block discarded – undo
740 740
             // user error msg
741 741
             $error_msg = sprintf(__('A default page route has not been set for the % admin page.', 'event_espresso'), $this->_admin_page_title);
742 742
             // developer error msg
743
-            $error_msg .= '||' . $error_msg . __(' Create a key in the "_page_routes" array named "default" and set its value to your default page method.', 'event_espresso');
743
+            $error_msg .= '||'.$error_msg.__(' Create a key in the "_page_routes" array named "default" and set its value to your default page method.', 'event_espresso');
744 744
             throw new EE_Error($error_msg);
745 745
         }
746 746
         //first lets' catch if the UI request has EVER been set.
@@ -769,7 +769,7 @@  discard block
 block discarded – undo
769 769
             // user error msg
770 770
             $error_msg = sprintf(__('The given page route does not exist for the %s admin page.', 'event_espresso'), $this->_admin_page_title);
771 771
             // developer error msg
772
-            $error_msg .= '||' . $error_msg . sprintf(__(' Check the route you are using in your method (%s) and make sure it matches a route set in your "_page_routes" array property', 'event_espresso'), $route);
772
+            $error_msg .= '||'.$error_msg.sprintf(__(' Check the route you are using in your method (%s) and make sure it matches a route set in your "_page_routes" array property', 'event_espresso'), $route);
773 773
             throw new EE_Error($error_msg);
774 774
         }
775 775
     }
@@ -791,7 +791,7 @@  discard block
 block discarded – undo
791 791
             // these are not the droids you are looking for !!!
792 792
             $msg = sprintf(__('%sNonce Fail.%s', 'event_espresso'), '<a href="http://www.youtube.com/watch?v=56_S0WeTkzs">', '</a>');
793 793
             if (WP_DEBUG) {
794
-                $msg .= "\n  " . sprintf(__('In order to dynamically generate nonces for your actions, use the %s::add_query_args_and_nonce() method. May the Nonce be with you!', 'event_espresso'), __CLASS__);
794
+                $msg .= "\n  ".sprintf(__('In order to dynamically generate nonces for your actions, use the %s::add_query_args_and_nonce() method. May the Nonce be with you!', 'event_espresso'), __CLASS__);
795 795
             }
796 796
             if ( ! defined('DOING_AJAX')) {
797 797
                 wp_die($msg);
@@ -969,7 +969,7 @@  discard block
 block discarded – undo
969 969
                 if (strpos($key, 'nonce') !== false) {
970 970
                     continue;
971 971
                 }
972
-                $args['wp_referer[' . $key . ']'] = $value;
972
+                $args['wp_referer['.$key.']'] = $value;
973 973
             }
974 974
         }
975 975
         return EEH_URL::add_query_args_and_nonce($args, $url, $exclude_nonce);
@@ -1015,7 +1015,7 @@  discard block
 block discarded – undo
1015 1015
                     if ($tour instanceof EE_Help_Tour_final_stop) {
1016 1016
                         continue;
1017 1017
                     }
1018
-                    $tb[] = '<button id="trigger-tour-' . $tour->get_slug() . '" class="button-primary trigger-ee-help-tour">' . $tour->get_label() . '</button>';
1018
+                    $tb[] = '<button id="trigger-tour-'.$tour->get_slug().'" class="button-primary trigger-ee-help-tour">'.$tour->get_label().'</button>';
1019 1019
                 }
1020 1020
                 $tour_buttons .= implode('<br />', $tb);
1021 1021
                 $tour_buttons .= '</div></div>';
@@ -1027,7 +1027,7 @@  discard block
 block discarded – undo
1027 1027
                     throw new EE_Error(sprintf(__('The _page_config array has a callback set for the "help_sidebar" option.  However the callback given (%s) is not a valid callback.  Doublecheck the spelling and make sure this method exists for the class %s',
1028 1028
                             'event_espresso'), $config['help_sidebar'], get_class($this)));
1029 1029
                 }
1030
-                $content = apply_filters('FHEE__' . get_class($this) . '__add_help_tabs__help_sidebar', call_user_func(array($this, $config['help_sidebar'])));
1030
+                $content = apply_filters('FHEE__'.get_class($this).'__add_help_tabs__help_sidebar', call_user_func(array($this, $config['help_sidebar'])));
1031 1031
                 $content .= $tour_buttons; //add help tour buttons.
1032 1032
                 //do we have any help tours setup?  Cause if we do we want to add the buttons
1033 1033
                 $this->_current_screen->set_help_sidebar($content);
@@ -1040,13 +1040,13 @@  discard block
 block discarded – undo
1040 1040
             if ( ! isset($config['help_tabs']) && ! empty($tour_buttons)) {
1041 1041
                 $_ht['id'] = $this->page_slug;
1042 1042
                 $_ht['title'] = __('Help Tours', 'event_espresso');
1043
-                $_ht['content'] = '<p>' . __('The buttons to the right allow you to start/restart any help tours available for this page', 'event_espresso') . '</p>';
1043
+                $_ht['content'] = '<p>'.__('The buttons to the right allow you to start/restart any help tours available for this page', 'event_espresso').'</p>';
1044 1044
                 $this->_current_screen->add_help_tab($_ht);
1045 1045
             }/**/
1046 1046
             if ( ! isset($config['help_tabs'])) {
1047 1047
                 return;
1048 1048
             } //no help tabs for this route
1049
-            foreach ((array)$config['help_tabs'] as $tab_id => $cfg) {
1049
+            foreach ((array) $config['help_tabs'] as $tab_id => $cfg) {
1050 1050
                 //we're here so there ARE help tabs!
1051 1051
                 //make sure we've got what we need
1052 1052
                 if ( ! isset($cfg['title'])) {
@@ -1061,9 +1061,9 @@  discard block
 block discarded – undo
1061 1061
                     $content = ! empty($cfg['content']) ? $cfg['content'] : null;
1062 1062
                     //second priority goes to filename
1063 1063
                 } else if ( ! empty($cfg['filename'])) {
1064
-                    $file_path = $this->_get_dir() . '/help_tabs/' . $cfg['filename'] . '.help_tab.php';
1064
+                    $file_path = $this->_get_dir().'/help_tabs/'.$cfg['filename'].'.help_tab.php';
1065 1065
                     //it's possible that the file is located on decaf route (and above sets up for caf route, if this is the case then lets check decaf route too)
1066
-                    $file_path = ! is_readable($file_path) ? EE_ADMIN_PAGES . basename($this->_get_dir()) . '/help_tabs/' . $cfg['filename'] . '.help_tab.php' : $file_path;
1066
+                    $file_path = ! is_readable($file_path) ? EE_ADMIN_PAGES . basename($this->_get_dir()).'/help_tabs/'.$cfg['filename'].'.help_tab.php' : $file_path;
1067 1067
                     //if file is STILL not readable then let's do a EE_Error so its more graceful than a fatal error.
1068 1068
                     if ( ! is_readable($file_path) && ! isset($cfg['callback'])) {
1069 1069
                         EE_Error::add_error(sprintf(__('The filename given for the help tab %s is not a valid file and there is no other configuration for the tab content.  Please check that the string you set for the help tab on this route (%s) is the correct spelling.  The file should be in %s',
@@ -1082,7 +1082,7 @@  discard block
 block discarded – undo
1082 1082
                     return;
1083 1083
                 }
1084 1084
                 //setup config array for help tab method
1085
-                $id = $this->page_slug . '-' . $this->_req_action . '-' . $tab_id;
1085
+                $id = $this->page_slug.'-'.$this->_req_action.'-'.$tab_id;
1086 1086
                 $_ht = array(
1087 1087
                         'id'       => $id,
1088 1088
                         'title'    => $cfg['title'],
@@ -1120,9 +1120,9 @@  discard block
 block discarded – undo
1120 1120
             }
1121 1121
             if (isset($config['help_tour'])) {
1122 1122
                 foreach ($config['help_tour'] as $tour) {
1123
-                    $file_path = $this->_get_dir() . '/help_tours/' . $tour . '.class.php';
1123
+                    $file_path = $this->_get_dir().'/help_tours/'.$tour.'.class.php';
1124 1124
                     //let's see if we can get that file... if not its possible this is a decaf route not set in caffienated so lets try and get the caffeinated equivalent
1125
-                    $file_path = ! is_readable($file_path) ? EE_ADMIN_PAGES . basename($this->_get_dir()) . '/help_tours/' . $tour . '.class.php' : $file_path;
1125
+                    $file_path = ! is_readable($file_path) ? EE_ADMIN_PAGES . basename($this->_get_dir()).'/help_tours/'.$tour.'.class.php' : $file_path;
1126 1126
                     //if file is STILL not readable then let's do a EE_Error so its more graceful than a fatal error.
1127 1127
                     if ( ! is_readable($file_path)) {
1128 1128
                         EE_Error::add_error(sprintf(__('The file path given for the help tour (%s) is not a valid path.  Please check that the string you set for the help tour on this route (%s) is the correct spelling', 'event_espresso'),
@@ -1132,7 +1132,7 @@  discard block
 block discarded – undo
1132 1132
                     require_once $file_path;
1133 1133
                     if ( ! class_exists($tour)) {
1134 1134
                         $error_msg[] = sprintf(__('Something went wrong with loading the %s Help Tour Class.', 'event_espresso'), $tour);
1135
-                        $error_msg[] = $error_msg[0] . "\r\n" . sprintf(__('There is no class in place for the %s help tour.%s Make sure you have <strong>%s</strong> defined in the "help_tour" array for the %s route of the % admin page.',
1135
+                        $error_msg[] = $error_msg[0]."\r\n".sprintf(__('There is no class in place for the %s help tour.%s Make sure you have <strong>%s</strong> defined in the "help_tour" array for the %s route of the % admin page.',
1136 1136
                                         'event_espresso'), $tour, '<br />', $tour, $this->_req_action, get_class($this));
1137 1137
                         throw new EE_Error(implode('||', $error_msg));
1138 1138
                     }
@@ -1164,11 +1164,11 @@  discard block
 block discarded – undo
1164 1164
     protected function _add_qtips()
1165 1165
     {
1166 1166
         if (isset($this->_route_config['qtips'])) {
1167
-            $qtips = (array)$this->_route_config['qtips'];
1167
+            $qtips = (array) $this->_route_config['qtips'];
1168 1168
             //load qtip loader
1169 1169
             $path = array(
1170
-                    $this->_get_dir() . '/qtips/',
1171
-                    EE_ADMIN_PAGES . basename($this->_get_dir()) . '/qtips/',
1170
+                    $this->_get_dir().'/qtips/',
1171
+                    EE_ADMIN_PAGES.basename($this->_get_dir()).'/qtips/',
1172 1172
             );
1173 1173
             EEH_Qtip_Loader::instance()->register($qtips, $path);
1174 1174
         }
@@ -1198,11 +1198,11 @@  discard block
 block discarded – undo
1198 1198
             if ( ! $this->check_user_access($slug, true)) {
1199 1199
                 continue;
1200 1200
             } //no nav tab becasue current user does not have access.
1201
-            $css_class = isset($config['css_class']) ? $config['css_class'] . ' ' : '';
1201
+            $css_class = isset($config['css_class']) ? $config['css_class'].' ' : '';
1202 1202
             $this->_nav_tabs[$slug] = array(
1203 1203
                     'url'       => isset($config['nav']['url']) ? $config['nav']['url'] : self::add_query_args_and_nonce(array('action' => $slug), $this->_admin_base_url),
1204 1204
                     'link_text' => isset($config['nav']['label']) ? $config['nav']['label'] : ucwords(str_replace('_', ' ', $slug)),
1205
-                    'css_class' => $this->_req_action == $slug ? $css_class . 'nav-tab-active' : $css_class,
1205
+                    'css_class' => $this->_req_action == $slug ? $css_class.'nav-tab-active' : $css_class,
1206 1206
                     'order'     => isset($config['nav']['order']) ? $config['nav']['order'] : $i,
1207 1207
             );
1208 1208
             $i++;
@@ -1265,11 +1265,11 @@  discard block
 block discarded – undo
1265 1265
             $capability = empty($capability) ? 'manage_options' : $capability;
1266 1266
         }
1267 1267
         $id = is_array($this->_route) && ! empty($this->_route['obj_id']) ? $this->_route['obj_id'] : 0;
1268
-        if (( ! function_exists('is_admin') || ! EE_Registry::instance()->CAP->current_user_can($capability, $this->page_slug . '_' . $route_to_check, $id)) && ! defined('DOING_AJAX')) {
1268
+        if (( ! function_exists('is_admin') || ! EE_Registry::instance()->CAP->current_user_can($capability, $this->page_slug.'_'.$route_to_check, $id)) && ! defined('DOING_AJAX')) {
1269 1269
             if ($verify_only) {
1270 1270
                 return false;
1271 1271
             } else {
1272
-                if ( is_user_logged_in() ) {
1272
+                if (is_user_logged_in()) {
1273 1273
                     wp_die(__('You do not have access to this route.', 'event_espresso'));
1274 1274
                 } else {
1275 1275
                     return false;
@@ -1361,7 +1361,7 @@  discard block
 block discarded – undo
1361 1361
     public function admin_footer_global()
1362 1362
     {
1363 1363
         //dialog container for dialog helper
1364
-        $d_cont = '<div class="ee-admin-dialog-container auto-hide hidden">' . "\n";
1364
+        $d_cont = '<div class="ee-admin-dialog-container auto-hide hidden">'."\n";
1365 1365
         $d_cont .= '<div class="ee-notices"></div>';
1366 1366
         $d_cont .= '<div class="ee-admin-dialog-container-inner-content"></div>';
1367 1367
         $d_cont .= '</div>';
@@ -1371,7 +1371,7 @@  discard block
 block discarded – undo
1371 1371
             echo implode('<br />', $this->_help_tour[$this->_req_action]);
1372 1372
         }
1373 1373
         //current set timezone for timezone js
1374
-        echo '<span id="current_timezone" class="hidden">' . EEH_DTT_Helper::get_timezone() . '</span>';
1374
+        echo '<span id="current_timezone" class="hidden">'.EEH_DTT_Helper::get_timezone().'</span>';
1375 1375
     }
1376 1376
 
1377 1377
 
@@ -1396,7 +1396,7 @@  discard block
 block discarded – undo
1396 1396
     {
1397 1397
         $content = '';
1398 1398
         $help_array = empty($help_array) ? $this->_get_help_content() : $help_array;
1399
-        $template_path = EE_ADMIN_TEMPLATE . 'admin_help_popup.template.php';
1399
+        $template_path = EE_ADMIN_TEMPLATE.'admin_help_popup.template.php';
1400 1400
         //loop through the array and setup content
1401 1401
         foreach ($help_array as $trigger => $help) {
1402 1402
             //make sure the array is setup properly
@@ -1430,7 +1430,7 @@  discard block
 block discarded – undo
1430 1430
     private function _get_help_content()
1431 1431
     {
1432 1432
         //what is the method we're looking for?
1433
-        $method_name = '_help_popup_content_' . $this->_req_action;
1433
+        $method_name = '_help_popup_content_'.$this->_req_action;
1434 1434
         //if method doesn't exist let's get out.
1435 1435
         if ( ! method_exists($this, $method_name)) {
1436 1436
             return array();
@@ -1474,8 +1474,8 @@  discard block
 block discarded – undo
1474 1474
             $help_content = $this->_set_help_popup_content($help_array, false);
1475 1475
         }
1476 1476
         //let's setup the trigger
1477
-        $content = '<a class="ee-dialog" href="?height=' . $dimensions[0] . '&width=' . $dimensions[1] . '&inlineId=' . $trigger_id . '" target="_blank"><span class="question ee-help-popup-question"></span></a>';
1478
-        $content = $content . $help_content;
1477
+        $content = '<a class="ee-dialog" href="?height='.$dimensions[0].'&width='.$dimensions[1].'&inlineId='.$trigger_id.'" target="_blank"><span class="question ee-help-popup-question"></span></a>';
1478
+        $content = $content.$help_content;
1479 1479
         if ($display) {
1480 1480
             echo $content;
1481 1481
         } else {
@@ -1535,27 +1535,27 @@  discard block
 block discarded – undo
1535 1535
             add_action('admin_head', array($this, 'add_xdebug_style'));
1536 1536
         }
1537 1537
         // register all styles
1538
-        wp_register_style('espresso-ui-theme', EE_GLOBAL_ASSETS_URL . 'css/espresso-ui-theme/jquery-ui-1.10.3.custom.min.css', array(), EVENT_ESPRESSO_VERSION);
1539
-        wp_register_style('ee-admin-css', EE_ADMIN_URL . 'assets/ee-admin-page.css', array(), EVENT_ESPRESSO_VERSION);
1538
+        wp_register_style('espresso-ui-theme', EE_GLOBAL_ASSETS_URL.'css/espresso-ui-theme/jquery-ui-1.10.3.custom.min.css', array(), EVENT_ESPRESSO_VERSION);
1539
+        wp_register_style('ee-admin-css', EE_ADMIN_URL.'assets/ee-admin-page.css', array(), EVENT_ESPRESSO_VERSION);
1540 1540
         //helpers styles
1541
-        wp_register_style('ee-text-links', EE_PLUGIN_DIR_URL . 'core/helpers/assets/ee_text_list_helper.css', array(), EVENT_ESPRESSO_VERSION);
1541
+        wp_register_style('ee-text-links', EE_PLUGIN_DIR_URL.'core/helpers/assets/ee_text_list_helper.css', array(), EVENT_ESPRESSO_VERSION);
1542 1542
         /** SCRIPTS **/
1543 1543
         //register all scripts
1544
-        wp_register_script('ee-dialog', EE_ADMIN_URL . 'assets/ee-dialog-helper.js', array('jquery', 'jquery-ui-draggable'), EVENT_ESPRESSO_VERSION, true);
1545
-        wp_register_script('ee_admin_js', EE_ADMIN_URL . 'assets/ee-admin-page.js', array('espresso_core', 'ee-parse-uri', 'ee-dialog'), EVENT_ESPRESSO_VERSION, true);
1546
-        wp_register_script('jquery-ui-timepicker-addon', EE_GLOBAL_ASSETS_URL . 'scripts/jquery-ui-timepicker-addon.js', array('jquery-ui-datepicker', 'jquery-ui-slider'), EVENT_ESPRESSO_VERSION, true);
1544
+        wp_register_script('ee-dialog', EE_ADMIN_URL.'assets/ee-dialog-helper.js', array('jquery', 'jquery-ui-draggable'), EVENT_ESPRESSO_VERSION, true);
1545
+        wp_register_script('ee_admin_js', EE_ADMIN_URL.'assets/ee-admin-page.js', array('espresso_core', 'ee-parse-uri', 'ee-dialog'), EVENT_ESPRESSO_VERSION, true);
1546
+        wp_register_script('jquery-ui-timepicker-addon', EE_GLOBAL_ASSETS_URL.'scripts/jquery-ui-timepicker-addon.js', array('jquery-ui-datepicker', 'jquery-ui-slider'), EVENT_ESPRESSO_VERSION, true);
1547 1547
         add_filter('FHEE_load_joyride', '__return_true');
1548 1548
         //script for sorting tables
1549
-        wp_register_script('espresso_ajax_table_sorting', EE_ADMIN_URL . "assets/espresso_ajax_table_sorting.js", array('ee_admin_js', 'jquery-ui-sortable'), EVENT_ESPRESSO_VERSION, true);
1549
+        wp_register_script('espresso_ajax_table_sorting', EE_ADMIN_URL."assets/espresso_ajax_table_sorting.js", array('ee_admin_js', 'jquery-ui-sortable'), EVENT_ESPRESSO_VERSION, true);
1550 1550
         //script for parsing uri's
1551
-        wp_register_script('ee-parse-uri', EE_GLOBAL_ASSETS_URL . 'scripts/parseuri.js', array(), EVENT_ESPRESSO_VERSION, true);
1551
+        wp_register_script('ee-parse-uri', EE_GLOBAL_ASSETS_URL.'scripts/parseuri.js', array(), EVENT_ESPRESSO_VERSION, true);
1552 1552
         //and parsing associative serialized form elements
1553
-        wp_register_script('ee-serialize-full-array', EE_GLOBAL_ASSETS_URL . 'scripts/jquery.serializefullarray.js', array('jquery'), EVENT_ESPRESSO_VERSION, true);
1553
+        wp_register_script('ee-serialize-full-array', EE_GLOBAL_ASSETS_URL.'scripts/jquery.serializefullarray.js', array('jquery'), EVENT_ESPRESSO_VERSION, true);
1554 1554
         //helpers scripts
1555
-        wp_register_script('ee-text-links', EE_PLUGIN_DIR_URL . 'core/helpers/assets/ee_text_list_helper.js', array('jquery'), EVENT_ESPRESSO_VERSION, true);
1556
-        wp_register_script('ee-moment-core', EE_THIRD_PARTY_URL . 'moment/moment-with-locales.min.js', array(), EVENT_ESPRESSO_VERSION, true);
1557
-        wp_register_script('ee-moment', EE_THIRD_PARTY_URL . 'moment/moment-timezone-with-data.min.js', array('ee-moment-core'), EVENT_ESPRESSO_VERSION, true);
1558
-        wp_register_script('ee-datepicker', EE_ADMIN_URL . 'assets/ee-datepicker.js', array('jquery-ui-timepicker-addon', 'ee-moment'), EVENT_ESPRESSO_VERSION, true);
1555
+        wp_register_script('ee-text-links', EE_PLUGIN_DIR_URL.'core/helpers/assets/ee_text_list_helper.js', array('jquery'), EVENT_ESPRESSO_VERSION, true);
1556
+        wp_register_script('ee-moment-core', EE_THIRD_PARTY_URL.'moment/moment-with-locales.min.js', array(), EVENT_ESPRESSO_VERSION, true);
1557
+        wp_register_script('ee-moment', EE_THIRD_PARTY_URL.'moment/moment-timezone-with-data.min.js', array('ee-moment-core'), EVENT_ESPRESSO_VERSION, true);
1558
+        wp_register_script('ee-datepicker', EE_ADMIN_URL.'assets/ee-datepicker.js', array('jquery-ui-timepicker-addon', 'ee-moment'), EVENT_ESPRESSO_VERSION, true);
1559 1559
         //google charts
1560 1560
         wp_register_script('google-charts', 'https://www.gstatic.com/charts/loader.js', array(), EVENT_ESPRESSO_VERSION, false);
1561 1561
         // ENQUEUE ALL BASICS BY DEFAULT
@@ -1579,7 +1579,7 @@  discard block
 block discarded – undo
1579 1579
          */
1580 1580
         if ( ! empty($this->_help_tour)) {
1581 1581
             //register the js for kicking things off
1582
-            wp_enqueue_script('ee-help-tour', EE_ADMIN_URL . 'assets/ee-help-tour.js', array('jquery-joyride'), EVENT_ESPRESSO_VERSION, true);
1582
+            wp_enqueue_script('ee-help-tour', EE_ADMIN_URL.'assets/ee-help-tour.js', array('jquery-joyride'), EVENT_ESPRESSO_VERSION, true);
1583 1583
             //setup tours for the js tour object
1584 1584
             foreach ($this->_help_tour['tours'] as $tour) {
1585 1585
                 $tours[] = array(
@@ -1674,17 +1674,17 @@  discard block
 block discarded – undo
1674 1674
             return;
1675 1675
         } //not a list_table view so get out.
1676 1676
         //list table functions are per view specific (because some admin pages might have more than one listtable!)
1677
-        if (call_user_func(array($this, '_set_list_table_views_' . $this->_req_action)) === false) {
1677
+        if (call_user_func(array($this, '_set_list_table_views_'.$this->_req_action)) === false) {
1678 1678
             //user error msg
1679 1679
             $error_msg = __('An error occurred. The requested list table views could not be found.', 'event_espresso');
1680 1680
             //developer error msg
1681
-            $error_msg .= '||' . sprintf(__('List table views for "%s" route could not be setup. Check that you have the corresponding method, "%s" set up for defining list_table_views for this route.', 'event_espresso'),
1682
-                            $this->_req_action, '_set_list_table_views_' . $this->_req_action);
1681
+            $error_msg .= '||'.sprintf(__('List table views for "%s" route could not be setup. Check that you have the corresponding method, "%s" set up for defining list_table_views for this route.', 'event_espresso'),
1682
+                            $this->_req_action, '_set_list_table_views_'.$this->_req_action);
1683 1683
             throw new EE_Error($error_msg);
1684 1684
         }
1685 1685
         //let's provide the ability to filter the views per PAGE AND ROUTE, per PAGE, and globally
1686
-        $this->_views = apply_filters('FHEE_list_table_views_' . $this->page_slug . '_' . $this->_req_action, $this->_views);
1687
-        $this->_views = apply_filters('FHEE_list_table_views_' . $this->page_slug, $this->_views);
1686
+        $this->_views = apply_filters('FHEE_list_table_views_'.$this->page_slug.'_'.$this->_req_action, $this->_views);
1687
+        $this->_views = apply_filters('FHEE_list_table_views_'.$this->page_slug, $this->_views);
1688 1688
         $this->_views = apply_filters('FHEE_list_table_views', $this->_views);
1689 1689
         $this->_set_list_table_view();
1690 1690
         $this->_set_list_table_object();
@@ -1759,7 +1759,7 @@  discard block
 block discarded – undo
1759 1759
             // check for current view
1760 1760
             $this->_views[$key]['class'] = $this->_view == $view['slug'] ? 'current' : '';
1761 1761
             $query_args['action'] = $this->_req_action;
1762
-            $query_args[$this->_req_action . '_nonce'] = wp_create_nonce($query_args['action'] . '_nonce');
1762
+            $query_args[$this->_req_action.'_nonce'] = wp_create_nonce($query_args['action'].'_nonce');
1763 1763
             $query_args['status'] = $view['slug'];
1764 1764
             //merge any other arguments sent in.
1765 1765
             if (isset($extra_query_args[$view['slug']])) {
@@ -1797,14 +1797,14 @@  discard block
 block discarded – undo
1797 1797
 					<select id="entries-per-page-slct" name="entries-per-page-slct">';
1798 1798
         foreach ($values as $value) {
1799 1799
             if ($value < $max_entries) {
1800
-                $selected = $value == $per_page ? ' selected="' . $per_page . '"' : '';
1800
+                $selected = $value == $per_page ? ' selected="'.$per_page.'"' : '';
1801 1801
                 $entries_per_page_dropdown .= '
1802
-						<option value="' . $value . '"' . $selected . '>' . $value . '&nbsp;&nbsp;</option>';
1802
+						<option value="' . $value.'"'.$selected.'>'.$value.'&nbsp;&nbsp;</option>';
1803 1803
             }
1804 1804
         }
1805
-        $selected = $max_entries == $per_page ? ' selected="' . $per_page . '"' : '';
1805
+        $selected = $max_entries == $per_page ? ' selected="'.$per_page.'"' : '';
1806 1806
         $entries_per_page_dropdown .= '
1807
-						<option value="' . $max_entries . '"' . $selected . '>All&nbsp;&nbsp;</option>';
1807
+						<option value="' . $max_entries.'"'.$selected.'>All&nbsp;&nbsp;</option>';
1808 1808
         $entries_per_page_dropdown .= '
1809 1809
 					</select>
1810 1810
 					entries
@@ -1826,7 +1826,7 @@  discard block
 block discarded – undo
1826 1826
     public function _set_search_attributes()
1827 1827
     {
1828 1828
         $this->_template_args['search']['btn_label'] = sprintf(__('Search %s', 'event_espresso'), empty($this->_search_btn_label) ? $this->page_label : $this->_search_btn_label);
1829
-        $this->_template_args['search']['callback'] = 'search_' . $this->page_slug;
1829
+        $this->_template_args['search']['callback'] = 'search_'.$this->page_slug;
1830 1830
     }
1831 1831
 
1832 1832
     /*** END LIST TABLE METHODS **/
@@ -1864,7 +1864,7 @@  discard block
 block discarded – undo
1864 1864
                     // user error msg
1865 1865
                     $error_msg = __('An error occurred. The  requested metabox could not be found.', 'event_espresso');
1866 1866
                     // developer error msg
1867
-                    $error_msg .= '||' . sprintf(
1867
+                    $error_msg .= '||'.sprintf(
1868 1868
                                     __(
1869 1869
                                             'The metabox with the string "%s" could not be called. Check that the spelling for method names and actions in the "_page_config[\'metaboxes\']" array are all correct.',
1870 1870
                                             'event_espresso'
@@ -1894,15 +1894,15 @@  discard block
 block discarded – undo
1894 1894
                 && is_array($this->_route_config['columns'])
1895 1895
                 && count($this->_route_config['columns']) === 2
1896 1896
         ) {
1897
-            add_screen_option('layout_columns', array('max' => (int)$this->_route_config['columns'][0], 'default' => (int)$this->_route_config['columns'][1]));
1897
+            add_screen_option('layout_columns', array('max' => (int) $this->_route_config['columns'][0], 'default' => (int) $this->_route_config['columns'][1]));
1898 1898
             $this->_template_args['num_columns'] = $this->_route_config['columns'][0];
1899 1899
             $screen_id = $this->_current_screen->id;
1900
-            $screen_columns = (int)get_user_option("screen_layout_$screen_id");
1900
+            $screen_columns = (int) get_user_option("screen_layout_$screen_id");
1901 1901
             $total_columns = ! empty($screen_columns) ? $screen_columns : $this->_route_config['columns'][1];
1902
-            $this->_template_args['current_screen_widget_class'] = 'columns-' . $total_columns;
1902
+            $this->_template_args['current_screen_widget_class'] = 'columns-'.$total_columns;
1903 1903
             $this->_template_args['current_page'] = $this->_wp_page_slug;
1904 1904
             $this->_template_args['screen'] = $this->_current_screen;
1905
-            $this->_column_template_path = EE_ADMIN_TEMPLATE . 'admin_details_metabox_column_wrapper.template.php';
1905
+            $this->_column_template_path = EE_ADMIN_TEMPLATE.'admin_details_metabox_column_wrapper.template.php';
1906 1906
             //finally if we don't have has_metaboxes set in the route config let's make sure it IS set other wise the necessary hidden fields for this won't be loaded.
1907 1907
             $this->_route_config['has_metaboxes'] = true;
1908 1908
         }
@@ -1949,7 +1949,7 @@  discard block
 block discarded – undo
1949 1949
      */
1950 1950
     public function espresso_ratings_request()
1951 1951
     {
1952
-        $template_path = EE_ADMIN_TEMPLATE . 'espresso_ratings_request_content.template.php';
1952
+        $template_path = EE_ADMIN_TEMPLATE.'espresso_ratings_request_content.template.php';
1953 1953
         EEH_Template::display_template($template_path, array());
1954 1954
     }
1955 1955
 
@@ -1957,18 +1957,18 @@  discard block
 block discarded – undo
1957 1957
 
1958 1958
     public static function cached_rss_display($rss_id, $url)
1959 1959
     {
1960
-        $loading = '<p class="widget-loading hide-if-no-js">' . __('Loading&#8230;') . '</p><p class="hide-if-js">' . __('This widget requires JavaScript.') . '</p>';
1960
+        $loading = '<p class="widget-loading hide-if-no-js">'.__('Loading&#8230;').'</p><p class="hide-if-js">'.__('This widget requires JavaScript.').'</p>';
1961 1961
         $doing_ajax = (defined('DOING_AJAX') && DOING_AJAX);
1962
-        $pre = '<div class="espresso-rss-display">' . "\n\t";
1963
-        $pre .= '<span id="' . $rss_id . '_url" class="hidden">' . $url . '</span>';
1964
-        $post = '</div>' . "\n";
1965
-        $cache_key = 'ee_rss_' . md5($rss_id);
1962
+        $pre = '<div class="espresso-rss-display">'."\n\t";
1963
+        $pre .= '<span id="'.$rss_id.'_url" class="hidden">'.$url.'</span>';
1964
+        $post = '</div>'."\n";
1965
+        $cache_key = 'ee_rss_'.md5($rss_id);
1966 1966
         if (false != ($output = get_transient($cache_key))) {
1967
-            echo $pre . $output . $post;
1967
+            echo $pre.$output.$post;
1968 1968
             return true;
1969 1969
         }
1970 1970
         if ( ! $doing_ajax) {
1971
-            echo $pre . $loading . $post;
1971
+            echo $pre.$loading.$post;
1972 1972
             return false;
1973 1973
         }
1974 1974
         ob_start();
@@ -2027,7 +2027,7 @@  discard block
 block discarded – undo
2027 2027
 
2028 2028
     public function espresso_sponsors_post_box()
2029 2029
     {
2030
-        $templatepath = EE_ADMIN_TEMPLATE . 'admin_general_metabox_contents_espresso_sponsors.template.php';
2030
+        $templatepath = EE_ADMIN_TEMPLATE.'admin_general_metabox_contents_espresso_sponsors.template.php';
2031 2031
         EEH_Template::display_template($templatepath);
2032 2032
     }
2033 2033
 
@@ -2035,7 +2035,7 @@  discard block
 block discarded – undo
2035 2035
 
2036 2036
     private function _publish_post_box()
2037 2037
     {
2038
-        $meta_box_ref = 'espresso_' . $this->page_slug . '_editor_overview';
2038
+        $meta_box_ref = 'espresso_'.$this->page_slug.'_editor_overview';
2039 2039
         //if there is a array('label' => array('publishbox' => 'some title') ) present in the _page_config array then we'll use that for the metabox label.  Otherwise we'll just use publish (publishbox itself could be an array of labels indexed by routes)
2040 2040
         if ( ! empty($this->_labels['publishbox'])) {
2041 2041
             $box_label = is_array($this->_labels['publishbox']) ? $this->_labels['publishbox'][$this->_req_action] : $this->_labels['publishbox'];
@@ -2052,7 +2052,7 @@  discard block
 block discarded – undo
2052 2052
     {
2053 2053
         //if we have extra content set let's add it in if not make sure its empty
2054 2054
         $this->_template_args['publish_box_extra_content'] = isset($this->_template_args['publish_box_extra_content']) ? $this->_template_args['publish_box_extra_content'] : '';
2055
-        $template_path = EE_ADMIN_TEMPLATE . 'admin_details_publish_metabox.template.php';
2055
+        $template_path = EE_ADMIN_TEMPLATE.'admin_details_publish_metabox.template.php';
2056 2056
         echo EEH_Template::display_template($template_path, $this->_template_args, true);
2057 2057
     }
2058 2058
 
@@ -2221,7 +2221,7 @@  discard block
 block discarded – undo
2221 2221
         //if $create_func is true (default) then we automatically create the function for displaying the actual meta box.  If false then we take the $callback reference passed through and use it instead (so callers can define their own callback function/method if they wish)
2222 2222
         $call_back_func = $create_func ? create_function('$post, $metabox',
2223 2223
                 'do_action( "AHEE_log", __FILE__, __FUNCTION__, ""); echo EEH_Template::display_template( $metabox["args"]["template_path"], $metabox["args"]["template_args"], TRUE );') : $callback;
2224
-        add_meta_box(str_replace('_', '-', $action) . '-mbox', $title, $call_back_func, $this->_wp_page_slug, $column, $priority, $callback_args);
2224
+        add_meta_box(str_replace('_', '-', $action).'-mbox', $title, $call_back_func, $this->_wp_page_slug, $column, $priority, $callback_args);
2225 2225
     }
2226 2226
 
2227 2227
 
@@ -2302,9 +2302,9 @@  discard block
 block discarded – undo
2302 2302
                 : 'espresso-default-admin';
2303 2303
         $template_path = $sidebar
2304 2304
                 ? EE_ADMIN_TEMPLATE . 'admin_details_wrapper.template.php'
2305
-                : EE_ADMIN_TEMPLATE . 'admin_details_wrapper_no_sidebar.template.php';
2305
+                : EE_ADMIN_TEMPLATE.'admin_details_wrapper_no_sidebar.template.php';
2306 2306
         if (defined('DOING_AJAX') && DOING_AJAX) {
2307
-            $template_path = EE_ADMIN_TEMPLATE . 'admin_details_wrapper_no_sidebar_ajax.template.php';
2307
+            $template_path = EE_ADMIN_TEMPLATE.'admin_details_wrapper_no_sidebar_ajax.template.php';
2308 2308
         }
2309 2309
         $template_path = ! empty($this->_column_template_path) ? $this->_column_template_path : $template_path;
2310 2310
         $this->_template_args['post_body_content'] = isset($this->_template_args['admin_page_content']) ? $this->_template_args['admin_page_content'] : '';
@@ -2350,7 +2350,7 @@  discard block
 block discarded – undo
2350 2350
                         true
2351 2351
                 )
2352 2352
                 : $this->_template_args['preview_action_button'];
2353
-        $template_path = EE_ADMIN_TEMPLATE . 'admin_caf_full_page_preview.template.php';
2353
+        $template_path = EE_ADMIN_TEMPLATE.'admin_caf_full_page_preview.template.php';
2354 2354
         $this->_template_args['admin_page_content'] = EEH_Template::display_template(
2355 2355
                 $template_path,
2356 2356
                 $this->_template_args,
@@ -2401,7 +2401,7 @@  discard block
 block discarded – undo
2401 2401
         //setup search attributes
2402 2402
         $this->_set_search_attributes();
2403 2403
         $this->_template_args['current_page'] = $this->_wp_page_slug;
2404
-        $template_path = EE_ADMIN_TEMPLATE . 'admin_list_wrapper.template.php';
2404
+        $template_path = EE_ADMIN_TEMPLATE.'admin_list_wrapper.template.php';
2405 2405
         $this->_template_args['table_url'] = defined('DOING_AJAX')
2406 2406
                 ? add_query_arg(array('noheader' => 'true', 'route' => $this->_req_action), $this->_admin_base_url)
2407 2407
                 : add_query_arg(array('route' => $this->_req_action), $this->_admin_base_url);
@@ -2411,29 +2411,29 @@  discard block
 block discarded – undo
2411 2411
         $ajax_sorting_callback = $this->_list_table_object->get_ajax_sorting_callback();
2412 2412
         if ( ! empty($ajax_sorting_callback)) {
2413 2413
             $sortable_list_table_form_fields = wp_nonce_field(
2414
-                    $ajax_sorting_callback . '_nonce',
2415
-                    $ajax_sorting_callback . '_nonce',
2414
+                    $ajax_sorting_callback.'_nonce',
2415
+                    $ajax_sorting_callback.'_nonce',
2416 2416
                     false,
2417 2417
                     false
2418 2418
             );
2419 2419
             //			$reorder_action = 'espresso_' . $ajax_sorting_callback . '_nonce';
2420 2420
             //			$sortable_list_table_form_fields = wp_nonce_field( $reorder_action, 'ajax_table_sort_nonce', FALSE, FALSE );
2421
-            $sortable_list_table_form_fields .= '<input type="hidden" id="ajax_table_sort_page" name="ajax_table_sort_page" value="' . $this->page_slug . '" />';
2422
-            $sortable_list_table_form_fields .= '<input type="hidden" id="ajax_table_sort_action" name="ajax_table_sort_action" value="' . $ajax_sorting_callback . '" />';
2421
+            $sortable_list_table_form_fields .= '<input type="hidden" id="ajax_table_sort_page" name="ajax_table_sort_page" value="'.$this->page_slug.'" />';
2422
+            $sortable_list_table_form_fields .= '<input type="hidden" id="ajax_table_sort_action" name="ajax_table_sort_action" value="'.$ajax_sorting_callback.'" />';
2423 2423
         } else {
2424 2424
             $sortable_list_table_form_fields = '';
2425 2425
         }
2426 2426
         $this->_template_args['sortable_list_table_form_fields'] = $sortable_list_table_form_fields;
2427 2427
         $hidden_form_fields = isset($this->_template_args['list_table_hidden_fields']) ? $this->_template_args['list_table_hidden_fields'] : '';
2428
-        $nonce_ref = $this->_req_action . '_nonce';
2429
-        $hidden_form_fields .= '<input type="hidden" name="' . $nonce_ref . '" value="' . wp_create_nonce($nonce_ref) . '">';
2428
+        $nonce_ref = $this->_req_action.'_nonce';
2429
+        $hidden_form_fields .= '<input type="hidden" name="'.$nonce_ref.'" value="'.wp_create_nonce($nonce_ref).'">';
2430 2430
         $this->_template_args['list_table_hidden_fields'] = $hidden_form_fields;
2431 2431
         //display message about search results?
2432 2432
         $this->_template_args['before_list_table'] .= ! empty($this->_req_data['s'])
2433
-                ? '<p class="ee-search-results">' . sprintf(
2433
+                ? '<p class="ee-search-results">'.sprintf(
2434 2434
                         esc_html__('Displaying search results for the search string: %1$s', 'event_espresso'),
2435 2435
                         trim($this->_req_data['s'], '%')
2436
-                ) . '</p>'
2436
+                ).'</p>'
2437 2437
                 : '';
2438 2438
         // filter before_list_table template arg
2439 2439
         $this->_template_args['before_list_table'] = apply_filters(
@@ -2507,8 +2507,8 @@  discard block
 block discarded – undo
2507 2507
      */
2508 2508
     protected function _display_legend($items)
2509 2509
     {
2510
-        $this->_template_args['items'] = apply_filters('FHEE__EE_Admin_Page___display_legend__items', (array)$items, $this);
2511
-        $legend_template = EE_ADMIN_TEMPLATE . 'admin_details_legend.template.php';
2510
+        $this->_template_args['items'] = apply_filters('FHEE__EE_Admin_Page___display_legend__items', (array) $items, $this);
2511
+        $legend_template = EE_ADMIN_TEMPLATE.'admin_details_legend.template.php';
2512 2512
         return EEH_Template::display_template($legend_template, $this->_template_args, true);
2513 2513
     }
2514 2514
 
@@ -2600,13 +2600,13 @@  discard block
 block discarded – undo
2600 2600
         $this->_nav_tabs = $this->_get_main_nav_tabs();
2601 2601
         $this->_template_args['nav_tabs'] = $this->_nav_tabs;
2602 2602
         $this->_template_args['admin_page_title'] = $this->_admin_page_title;
2603
-        $this->_template_args['before_admin_page_content'] = apply_filters('FHEE_before_admin_page_content' . $this->_current_page . $this->_current_view,
2603
+        $this->_template_args['before_admin_page_content'] = apply_filters('FHEE_before_admin_page_content'.$this->_current_page.$this->_current_view,
2604 2604
                 isset($this->_template_args['before_admin_page_content']) ? $this->_template_args['before_admin_page_content'] : '');
2605
-        $this->_template_args['after_admin_page_content'] = apply_filters('FHEE_after_admin_page_content' . $this->_current_page . $this->_current_view,
2605
+        $this->_template_args['after_admin_page_content'] = apply_filters('FHEE_after_admin_page_content'.$this->_current_page.$this->_current_view,
2606 2606
                 isset($this->_template_args['after_admin_page_content']) ? $this->_template_args['after_admin_page_content'] : '');
2607 2607
         $this->_template_args['after_admin_page_content'] .= $this->_set_help_popup_content();
2608 2608
         // load settings page wrapper template
2609
-        $template_path = ! defined('DOING_AJAX') ? EE_ADMIN_TEMPLATE . 'admin_wrapper.template.php' : EE_ADMIN_TEMPLATE . 'admin_wrapper_ajax.template.php';
2609
+        $template_path = ! defined('DOING_AJAX') ? EE_ADMIN_TEMPLATE . 'admin_wrapper.template.php' : EE_ADMIN_TEMPLATE.'admin_wrapper_ajax.template.php';
2610 2610
         //about page?
2611 2611
         $template_path = $about ? EE_ADMIN_TEMPLATE . 'about_admin_wrapper.template.php' : $template_path;
2612 2612
         if (defined('DOING_AJAX')) {
@@ -2680,20 +2680,20 @@  discard block
 block discarded – undo
2680 2680
     protected function _set_save_buttons($both = true, $text = array(), $actions = array(), $referrer = null)
2681 2681
     {
2682 2682
         //make sure $text and $actions are in an array
2683
-        $text = (array)$text;
2684
-        $actions = (array)$actions;
2683
+        $text = (array) $text;
2684
+        $actions = (array) $actions;
2685 2685
         $referrer_url = empty($referrer) ? '' : $referrer;
2686
-        $referrer_url = ! $referrer ? '<input type="hidden" id="save_and_close_referrer" name="save_and_close_referrer" value="' . $_SERVER['REQUEST_URI'] . '" />'
2687
-                : '<input type="hidden" id="save_and_close_referrer" name="save_and_close_referrer" value="' . $referrer . '" />';
2686
+        $referrer_url = ! $referrer ? '<input type="hidden" id="save_and_close_referrer" name="save_and_close_referrer" value="'.$_SERVER['REQUEST_URI'].'" />'
2687
+                : '<input type="hidden" id="save_and_close_referrer" name="save_and_close_referrer" value="'.$referrer.'" />';
2688 2688
         $button_text = ! empty($text) ? $text : array(__('Save', 'event_espresso'), __('Save and Close', 'event_espresso'));
2689 2689
         $default_names = array('save', 'save_and_close');
2690 2690
         //add in a hidden index for the current page (so save and close redirects properly)
2691 2691
         $this->_template_args['save_buttons'] = $referrer_url;
2692 2692
         foreach ($button_text as $key => $button) {
2693 2693
             $ref = $default_names[$key];
2694
-            $id = $this->_current_view . '_' . $ref;
2694
+            $id = $this->_current_view.'_'.$ref;
2695 2695
             $name = ! empty($actions) ? $actions[$key] : $ref;
2696
-            $this->_template_args['save_buttons'] .= '<input type="submit" class="button-primary ' . $ref . '" value="' . $button . '" name="' . $name . '" id="' . $id . '" />';
2696
+            $this->_template_args['save_buttons'] .= '<input type="submit" class="button-primary '.$ref.'" value="'.$button.'" name="'.$name.'" id="'.$id.'" />';
2697 2697
             if ( ! $both) {
2698 2698
                 break;
2699 2699
             }
@@ -2729,15 +2729,15 @@  discard block
 block discarded – undo
2729 2729
     {
2730 2730
         if (empty($route)) {
2731 2731
             $user_msg = __('An error occurred. No action was set for this page\'s form.', 'event_espresso');
2732
-            $dev_msg = $user_msg . "\n" . sprintf(__('The $route argument is required for the %s->%s method.', 'event_espresso'), __FUNCTION__, __CLASS__);
2733
-            EE_Error::add_error($user_msg . '||' . $dev_msg, __FILE__, __FUNCTION__, __LINE__);
2732
+            $dev_msg = $user_msg."\n".sprintf(__('The $route argument is required for the %s->%s method.', 'event_espresso'), __FUNCTION__, __CLASS__);
2733
+            EE_Error::add_error($user_msg.'||'.$dev_msg, __FILE__, __FUNCTION__, __LINE__);
2734 2734
         }
2735 2735
         // open form
2736
-        $this->_template_args['before_admin_page_content'] = '<form name="form" method="post" action="' . $this->_admin_base_url . '" id="' . $route . '_event_form" >';
2736
+        $this->_template_args['before_admin_page_content'] = '<form name="form" method="post" action="'.$this->_admin_base_url.'" id="'.$route.'_event_form" >';
2737 2737
         // add nonce
2738
-        $nonce = wp_nonce_field($route . '_nonce', $route . '_nonce', false, false);
2738
+        $nonce = wp_nonce_field($route.'_nonce', $route.'_nonce', false, false);
2739 2739
         //		$nonce = wp_nonce_field( $route . '_nonce', '_wpnonce', FALSE, FALSE );
2740
-        $this->_template_args['before_admin_page_content'] .= "\n\t" . $nonce;
2740
+        $this->_template_args['before_admin_page_content'] .= "\n\t".$nonce;
2741 2741
         // add REQUIRED form action
2742 2742
         $hidden_fields = array(
2743 2743
                 'action' => array('type' => 'hidden', 'value' => $route),
@@ -2747,8 +2747,8 @@  discard block
 block discarded – undo
2747 2747
         // generate form fields
2748 2748
         $form_fields = $this->_generate_admin_form_fields($hidden_fields, 'array');
2749 2749
         // add fields to form
2750
-        foreach ((array)$form_fields as $field_name => $form_field) {
2751
-            $this->_template_args['before_admin_page_content'] .= "\n\t" . $form_field['field'];
2750
+        foreach ((array) $form_fields as $field_name => $form_field) {
2751
+            $this->_template_args['before_admin_page_content'] .= "\n\t".$form_field['field'];
2752 2752
         }
2753 2753
         // close form
2754 2754
         $this->_template_args['after_admin_page_content'] = '</form>';
@@ -2829,7 +2829,7 @@  discard block
 block discarded – undo
2829 2829
          * @param array $query_args       The original query_args array coming into the
2830 2830
          *                                method.
2831 2831
          */
2832
-        do_action('AHEE__' . $classname . '___redirect_after_action__before_redirect_modification_' . $this->_req_action, $query_args);
2832
+        do_action('AHEE__'.$classname.'___redirect_after_action__before_redirect_modification_'.$this->_req_action, $query_args);
2833 2833
         //calculate where we're going (if we have a "save and close" button pushed)
2834 2834
         if (isset($this->_req_data['save_and_close']) && isset($this->_req_data['save_and_close_referrer'])) {
2835 2835
             // even though we have the save_and_close referrer, we need to parse the url for the action in order to generate a nonce
@@ -2845,7 +2845,7 @@  discard block
 block discarded – undo
2845 2845
             foreach ($this->_default_route_query_args as $query_param => $query_value) {
2846 2846
                 //is there a wp_referer array in our _default_route_query_args property?
2847 2847
                 if ($query_param == 'wp_referer') {
2848
-                    $query_value = (array)$query_value;
2848
+                    $query_value = (array) $query_value;
2849 2849
                     foreach ($query_value as $reference => $value) {
2850 2850
                         if (strpos($reference, 'nonce') !== false) {
2851 2851
                             continue;
@@ -2871,11 +2871,11 @@  discard block
 block discarded – undo
2871 2871
         // if redirecting to anything other than the main page, add a nonce
2872 2872
         if (isset($query_args['action'])) {
2873 2873
             // manually generate wp_nonce and merge that with the query vars becuz the wp_nonce_url function wrecks havoc on some vars
2874
-            $query_args['_wpnonce'] = wp_create_nonce($query_args['action'] . '_nonce');
2874
+            $query_args['_wpnonce'] = wp_create_nonce($query_args['action'].'_nonce');
2875 2875
         }
2876 2876
         //we're adding some hooks and filters in here for processing any things just before redirects (example: an admin page has done an insert or update and we want to run something after that).
2877
-        do_action('AHEE_redirect_' . $classname . $this->_req_action, $query_args);
2878
-        $redirect_url = apply_filters('FHEE_redirect_' . $classname . $this->_req_action, self::add_query_args_and_nonce($query_args, $redirect_url), $query_args);
2877
+        do_action('AHEE_redirect_'.$classname.$this->_req_action, $query_args);
2878
+        $redirect_url = apply_filters('FHEE_redirect_'.$classname.$this->_req_action, self::add_query_args_and_nonce($query_args, $redirect_url), $query_args);
2879 2879
         // check if we're doing ajax.  If we are then lets just return the results and js can handle how it wants.
2880 2880
         if (defined('DOING_AJAX')) {
2881 2881
             $default_data = array(
@@ -3005,7 +3005,7 @@  discard block
 block discarded – undo
3005 3005
         $args = array(
3006 3006
                 'label'   => $this->_admin_page_title,
3007 3007
                 'default' => 10,
3008
-                'option'  => $this->_current_page . '_' . $this->_current_view . '_per_page',
3008
+                'option'  => $this->_current_page.'_'.$this->_current_view.'_per_page',
3009 3009
         );
3010 3010
         //ONLY add the screen option if the user has access to it.
3011 3011
         if ($this->check_user_access($this->_current_view, true)) {
@@ -3038,8 +3038,8 @@  discard block
 block discarded – undo
3038 3038
             $map_option = $option;
3039 3039
             $option = str_replace('-', '_', $option);
3040 3040
             switch ($map_option) {
3041
-                case $this->_current_page . '_' . $this->_current_view . '_per_page':
3042
-                    $value = (int)$value;
3041
+                case $this->_current_page.'_'.$this->_current_view.'_per_page':
3042
+                    $value = (int) $value;
3043 3043
                     if ($value < 1 || $value > 999) {
3044 3044
                         return;
3045 3045
                     }
@@ -3066,7 +3066,7 @@  discard block
 block discarded – undo
3066 3066
      */
3067 3067
     public function set_template_args($data)
3068 3068
     {
3069
-        $this->_template_args = array_merge($this->_template_args, (array)$data);
3069
+        $this->_template_args = array_merge($this->_template_args, (array) $data);
3070 3070
     }
3071 3071
 
3072 3072
 
@@ -3088,12 +3088,12 @@  discard block
 block discarded – undo
3088 3088
             $this->_verify_route($route);
3089 3089
         }
3090 3090
         //now let's set the string for what kind of transient we're setting
3091
-        $transient = $notices ? 'ee_rte_n_tx_' . $route . '_' . $user_id : 'rte_tx_' . $route . '_' . $user_id;
3091
+        $transient = $notices ? 'ee_rte_n_tx_'.$route.'_'.$user_id : 'rte_tx_'.$route.'_'.$user_id;
3092 3092
         $data = $notices ? array('notices' => $data) : $data;
3093 3093
         //is there already a transient for this route?  If there is then let's ADD to that transient
3094 3094
         $existing = is_multisite() && is_network_admin() ? get_site_transient($transient) : get_transient($transient);
3095 3095
         if ($existing) {
3096
-            $data = array_merge((array)$data, (array)$existing);
3096
+            $data = array_merge((array) $data, (array) $existing);
3097 3097
         }
3098 3098
         if (is_multisite() && is_network_admin()) {
3099 3099
             set_site_transient($transient, $data, 8);
@@ -3114,7 +3114,7 @@  discard block
 block discarded – undo
3114 3114
     {
3115 3115
         $user_id = get_current_user_id();
3116 3116
         $route = ! $route ? $this->_req_action : $route;
3117
-        $transient = $notices ? 'ee_rte_n_tx_' . $route . '_' . $user_id : 'rte_tx_' . $route . '_' . $user_id;
3117
+        $transient = $notices ? 'ee_rte_n_tx_'.$route.'_'.$user_id : 'rte_tx_'.$route.'_'.$user_id;
3118 3118
         $data = is_multisite() && is_network_admin() ? get_site_transient($transient) : get_transient($transient);
3119 3119
         //delete transient after retrieval (just in case it hasn't expired);
3120 3120
         if (is_multisite() && is_network_admin()) {
@@ -3355,7 +3355,7 @@  discard block
 block discarded – undo
3355 3355
      */
3356 3356
     protected function _next_link($url, $class = 'dashicons dashicons-arrow-right')
3357 3357
     {
3358
-        return '<a class="' . $class . '" href="' . $url . '"></a>';
3358
+        return '<a class="'.$class.'" href="'.$url.'"></a>';
3359 3359
     }
3360 3360
 
3361 3361
 
@@ -3369,7 +3369,7 @@  discard block
 block discarded – undo
3369 3369
      */
3370 3370
     protected function _previous_link($url, $class = 'dashicons dashicons-arrow-left')
3371 3371
     {
3372
-        return '<a class="' . $class . '" href="' . $url . '"></a>';
3372
+        return '<a class="'.$class.'" href="'.$url.'"></a>';
3373 3373
     }
3374 3374
 
3375 3375
 
Please login to merge, or discard this patch.
espresso.php 1 patch
Indentation   +219 added lines, -219 removed lines patch added patch discarded remove patch
@@ -1,5 +1,5 @@  discard block
 block discarded – undo
1 1
 <?php if ( ! defined('ABSPATH')) {
2
-    exit('No direct script access allowed');
2
+	exit('No direct script access allowed');
3 3
 }
4 4
 /*
5 5
   Plugin Name:		Event Espresso
@@ -40,243 +40,243 @@  discard block
 block discarded – undo
40 40
  * @since            4.0
41 41
  */
42 42
 if (function_exists('espresso_version')) {
43
-    /**
44
-     *    espresso_duplicate_plugin_error
45
-     *    displays if more than one version of EE is activated at the same time
46
-     */
47
-    function espresso_duplicate_plugin_error()
48
-    {
49
-        ?>
43
+	/**
44
+	 *    espresso_duplicate_plugin_error
45
+	 *    displays if more than one version of EE is activated at the same time
46
+	 */
47
+	function espresso_duplicate_plugin_error()
48
+	{
49
+		?>
50 50
         <div class="error">
51 51
             <p>
52 52
                 <?php echo esc_html__(
53
-                        'Can not run multiple versions of Event Espresso! One version has been automatically deactivated. Please verify that you have the correct version you want still active.',
54
-                        'event_espresso'
55
-                ); ?>
53
+						'Can not run multiple versions of Event Espresso! One version has been automatically deactivated. Please verify that you have the correct version you want still active.',
54
+						'event_espresso'
55
+				); ?>
56 56
             </p>
57 57
         </div>
58 58
         <?php
59
-        espresso_deactivate_plugin(plugin_basename(__FILE__));
60
-    }
59
+		espresso_deactivate_plugin(plugin_basename(__FILE__));
60
+	}
61 61
 
62
-    add_action('admin_notices', 'espresso_duplicate_plugin_error', 1);
62
+	add_action('admin_notices', 'espresso_duplicate_plugin_error', 1);
63 63
 } else {
64
-    define('EE_MIN_PHP_VER_REQUIRED', '5.3.9');
65
-    if ( ! version_compare(PHP_VERSION, EE_MIN_PHP_VER_REQUIRED, '>=')) {
66
-        /**
67
-         * espresso_minimum_php_version_error
68
-         *
69
-         * @return void
70
-         */
71
-        function espresso_minimum_php_version_error()
72
-        {
73
-            ?>
64
+	define('EE_MIN_PHP_VER_REQUIRED', '5.3.9');
65
+	if ( ! version_compare(PHP_VERSION, EE_MIN_PHP_VER_REQUIRED, '>=')) {
66
+		/**
67
+		 * espresso_minimum_php_version_error
68
+		 *
69
+		 * @return void
70
+		 */
71
+		function espresso_minimum_php_version_error()
72
+		{
73
+			?>
74 74
             <div class="error">
75 75
                 <p>
76 76
                     <?php
77
-                    printf(
78
-                            esc_html__(
79
-                                    'We\'re sorry, but Event Espresso requires PHP version %1$s or greater in order to operate. You are currently running version %2$s.%3$sIn order to update your version of PHP, you will need to contact your current hosting provider.%3$sFor information on stable PHP versions, please go to %4$s.',
80
-                                    'event_espresso'
81
-                            ),
82
-                            EE_MIN_PHP_VER_REQUIRED,
83
-                            PHP_VERSION,
84
-                            '<br/>',
85
-                            '<a href="http://php.net/downloads.php">http://php.net/downloads.php</a>'
86
-                    );
87
-                    ?>
77
+					printf(
78
+							esc_html__(
79
+									'We\'re sorry, but Event Espresso requires PHP version %1$s or greater in order to operate. You are currently running version %2$s.%3$sIn order to update your version of PHP, you will need to contact your current hosting provider.%3$sFor information on stable PHP versions, please go to %4$s.',
80
+									'event_espresso'
81
+							),
82
+							EE_MIN_PHP_VER_REQUIRED,
83
+							PHP_VERSION,
84
+							'<br/>',
85
+							'<a href="http://php.net/downloads.php">http://php.net/downloads.php</a>'
86
+					);
87
+					?>
88 88
                 </p>
89 89
             </div>
90 90
             <?php
91
-            espresso_deactivate_plugin(plugin_basename(__FILE__));
92
-        }
91
+			espresso_deactivate_plugin(plugin_basename(__FILE__));
92
+		}
93 93
 
94
-        add_action('admin_notices', 'espresso_minimum_php_version_error', 1);
95
-    } else {
96
-        /**
97
-         * espresso_version
98
-         * Returns the plugin version
99
-         *
100
-         * @return string
101
-         */
102
-        function espresso_version()
103
-        {
104
-            return apply_filters('FHEE__espresso__espresso_version', '4.9.46.rc.050');
105
-        }
94
+		add_action('admin_notices', 'espresso_minimum_php_version_error', 1);
95
+	} else {
96
+		/**
97
+		 * espresso_version
98
+		 * Returns the plugin version
99
+		 *
100
+		 * @return string
101
+		 */
102
+		function espresso_version()
103
+		{
104
+			return apply_filters('FHEE__espresso__espresso_version', '4.9.46.rc.050');
105
+		}
106 106
 
107
-        // define versions
108
-        define('EVENT_ESPRESSO_VERSION', espresso_version());
109
-        define('EE_MIN_WP_VER_REQUIRED', '4.1');
110
-        define('EE_MIN_WP_VER_RECOMMENDED', '4.4.2');
111
-        define('EE_MIN_PHP_VER_RECOMMENDED', '5.4.44');
112
-        define('EVENT_ESPRESSO_MAIN_FILE', __FILE__);
113
-        //used to be DIRECTORY_SEPARATOR, but that caused issues on windows
114
-        if ( ! defined('DS')) {
115
-            define('DS', '/');
116
-        }
117
-        if ( ! defined('PS')) {
118
-            define('PS', PATH_SEPARATOR);
119
-        }
120
-        if ( ! defined('SP')) {
121
-            define('SP', ' ');
122
-        }
123
-        if ( ! defined('EENL')) {
124
-            define('EENL', "\n");
125
-        }
126
-        define('EE_SUPPORT_EMAIL', '[email protected]');
127
-        // define the plugin directory and URL
128
-        define('EE_PLUGIN_BASENAME', plugin_basename(EVENT_ESPRESSO_MAIN_FILE));
129
-        define('EE_PLUGIN_DIR_PATH', plugin_dir_path(EVENT_ESPRESSO_MAIN_FILE));
130
-        define('EE_PLUGIN_DIR_URL', plugin_dir_url(EVENT_ESPRESSO_MAIN_FILE));
131
-        // main root folder paths
132
-        define('EE_ADMIN_PAGES', EE_PLUGIN_DIR_PATH . 'admin_pages' . DS);
133
-        define('EE_CORE', EE_PLUGIN_DIR_PATH . 'core' . DS);
134
-        define('EE_MODULES', EE_PLUGIN_DIR_PATH . 'modules' . DS);
135
-        define('EE_PUBLIC', EE_PLUGIN_DIR_PATH . 'public' . DS);
136
-        define('EE_SHORTCODES', EE_PLUGIN_DIR_PATH . 'shortcodes' . DS);
137
-        define('EE_WIDGETS', EE_PLUGIN_DIR_PATH . 'widgets' . DS);
138
-        define('EE_PAYMENT_METHODS', EE_PLUGIN_DIR_PATH . 'payment_methods' . DS);
139
-        define('EE_CAFF_PATH', EE_PLUGIN_DIR_PATH . 'caffeinated' . DS);
140
-        // core system paths
141
-        define('EE_ADMIN', EE_CORE . 'admin' . DS);
142
-        define('EE_CPTS', EE_CORE . 'CPTs' . DS);
143
-        define('EE_CLASSES', EE_CORE . 'db_classes' . DS);
144
-        define('EE_INTERFACES', EE_CORE . 'interfaces' . DS);
145
-        define('EE_BUSINESS', EE_CORE . 'business' . DS);
146
-        define('EE_MODELS', EE_CORE . 'db_models' . DS);
147
-        define('EE_HELPERS', EE_CORE . 'helpers' . DS);
148
-        define('EE_LIBRARIES', EE_CORE . 'libraries' . DS);
149
-        define('EE_TEMPLATES', EE_CORE . 'templates' . DS);
150
-        define('EE_THIRD_PARTY', EE_CORE . 'third_party_libs' . DS);
151
-        define('EE_GLOBAL_ASSETS', EE_TEMPLATES . 'global_assets' . DS);
152
-        define('EE_FORM_SECTIONS', EE_LIBRARIES . 'form_sections' . DS);
153
-        // gateways
154
-        define('EE_GATEWAYS', EE_MODULES . 'gateways' . DS);
155
-        define('EE_GATEWAYS_URL', EE_PLUGIN_DIR_URL . 'modules' . DS . 'gateways' . DS);
156
-        // asset URL paths
157
-        define('EE_TEMPLATES_URL', EE_PLUGIN_DIR_URL . 'core' . DS . 'templates' . DS);
158
-        define('EE_GLOBAL_ASSETS_URL', EE_TEMPLATES_URL . 'global_assets' . DS);
159
-        define('EE_IMAGES_URL', EE_GLOBAL_ASSETS_URL . 'images' . DS);
160
-        define('EE_THIRD_PARTY_URL', EE_PLUGIN_DIR_URL . 'core' . DS . 'third_party_libs' . DS);
161
-        define('EE_HELPERS_ASSETS', EE_PLUGIN_DIR_URL . 'core/helpers/assets/');
162
-        define('EE_LIBRARIES_URL', EE_PLUGIN_DIR_URL . 'core/libraries/');
163
-        // define upload paths
164
-        $uploads = wp_upload_dir();
165
-        // define the uploads directory and URL
166
-        define('EVENT_ESPRESSO_UPLOAD_DIR', $uploads['basedir'] . DS . 'espresso' . DS);
167
-        define('EVENT_ESPRESSO_UPLOAD_URL', $uploads['baseurl'] . DS . 'espresso' . DS);
168
-        // define the templates directory and URL
169
-        define('EVENT_ESPRESSO_TEMPLATE_DIR', $uploads['basedir'] . DS . 'espresso' . DS . 'templates' . DS);
170
-        define('EVENT_ESPRESSO_TEMPLATE_URL', $uploads['baseurl'] . DS . 'espresso' . DS . 'templates' . DS);
171
-        // define the gateway directory and URL
172
-        define('EVENT_ESPRESSO_GATEWAY_DIR', $uploads['basedir'] . DS . 'espresso' . DS . 'gateways' . DS);
173
-        define('EVENT_ESPRESSO_GATEWAY_URL', $uploads['baseurl'] . DS . 'espresso' . DS . 'gateways' . DS);
174
-        // languages folder/path
175
-        define('EE_LANGUAGES_SAFE_LOC', '..' . DS . 'uploads' . DS . 'espresso' . DS . 'languages' . DS);
176
-        define('EE_LANGUAGES_SAFE_DIR', EVENT_ESPRESSO_UPLOAD_DIR . 'languages' . DS);
177
-        //check for dompdf fonts in uploads
178
-        if (file_exists(EVENT_ESPRESSO_UPLOAD_DIR . 'fonts' . DS)) {
179
-            define('DOMPDF_FONT_DIR', EVENT_ESPRESSO_UPLOAD_DIR . 'fonts' . DS);
180
-        }
181
-        //ajax constants
182
-        define(
183
-                'EE_FRONT_AJAX',
184
-                isset($_REQUEST['ee_front_ajax']) || isset($_REQUEST['data']['ee_front_ajax']) ? true : false
185
-        );
186
-        define(
187
-                'EE_ADMIN_AJAX',
188
-                isset($_REQUEST['ee_admin_ajax']) || isset($_REQUEST['data']['ee_admin_ajax']) ? true : false
189
-        );
190
-        //just a handy constant occasionally needed for finding values representing infinity in the DB
191
-        //you're better to use this than its straight value (currently -1) in case you ever
192
-        //want to change its default value! or find when -1 means infinity
193
-        define('EE_INF_IN_DB', -1);
194
-        define('EE_INF', INF > (float)PHP_INT_MAX ? INF : PHP_INT_MAX);
195
-        define('EE_DEBUG', false);
196
-        // for older WP versions
197
-        if ( ! defined('MONTH_IN_SECONDS')) {
198
-            define('MONTH_IN_SECONDS', DAY_IN_SECONDS * 30);
199
-        }
200
-        /**
201
-         *    espresso_plugin_activation
202
-         *    adds a wp-option to indicate that EE has been activated via the WP admin plugins page
203
-         */
204
-        function espresso_plugin_activation()
205
-        {
206
-            update_option('ee_espresso_activation', true);
207
-        }
107
+		// define versions
108
+		define('EVENT_ESPRESSO_VERSION', espresso_version());
109
+		define('EE_MIN_WP_VER_REQUIRED', '4.1');
110
+		define('EE_MIN_WP_VER_RECOMMENDED', '4.4.2');
111
+		define('EE_MIN_PHP_VER_RECOMMENDED', '5.4.44');
112
+		define('EVENT_ESPRESSO_MAIN_FILE', __FILE__);
113
+		//used to be DIRECTORY_SEPARATOR, but that caused issues on windows
114
+		if ( ! defined('DS')) {
115
+			define('DS', '/');
116
+		}
117
+		if ( ! defined('PS')) {
118
+			define('PS', PATH_SEPARATOR);
119
+		}
120
+		if ( ! defined('SP')) {
121
+			define('SP', ' ');
122
+		}
123
+		if ( ! defined('EENL')) {
124
+			define('EENL', "\n");
125
+		}
126
+		define('EE_SUPPORT_EMAIL', '[email protected]');
127
+		// define the plugin directory and URL
128
+		define('EE_PLUGIN_BASENAME', plugin_basename(EVENT_ESPRESSO_MAIN_FILE));
129
+		define('EE_PLUGIN_DIR_PATH', plugin_dir_path(EVENT_ESPRESSO_MAIN_FILE));
130
+		define('EE_PLUGIN_DIR_URL', plugin_dir_url(EVENT_ESPRESSO_MAIN_FILE));
131
+		// main root folder paths
132
+		define('EE_ADMIN_PAGES', EE_PLUGIN_DIR_PATH . 'admin_pages' . DS);
133
+		define('EE_CORE', EE_PLUGIN_DIR_PATH . 'core' . DS);
134
+		define('EE_MODULES', EE_PLUGIN_DIR_PATH . 'modules' . DS);
135
+		define('EE_PUBLIC', EE_PLUGIN_DIR_PATH . 'public' . DS);
136
+		define('EE_SHORTCODES', EE_PLUGIN_DIR_PATH . 'shortcodes' . DS);
137
+		define('EE_WIDGETS', EE_PLUGIN_DIR_PATH . 'widgets' . DS);
138
+		define('EE_PAYMENT_METHODS', EE_PLUGIN_DIR_PATH . 'payment_methods' . DS);
139
+		define('EE_CAFF_PATH', EE_PLUGIN_DIR_PATH . 'caffeinated' . DS);
140
+		// core system paths
141
+		define('EE_ADMIN', EE_CORE . 'admin' . DS);
142
+		define('EE_CPTS', EE_CORE . 'CPTs' . DS);
143
+		define('EE_CLASSES', EE_CORE . 'db_classes' . DS);
144
+		define('EE_INTERFACES', EE_CORE . 'interfaces' . DS);
145
+		define('EE_BUSINESS', EE_CORE . 'business' . DS);
146
+		define('EE_MODELS', EE_CORE . 'db_models' . DS);
147
+		define('EE_HELPERS', EE_CORE . 'helpers' . DS);
148
+		define('EE_LIBRARIES', EE_CORE . 'libraries' . DS);
149
+		define('EE_TEMPLATES', EE_CORE . 'templates' . DS);
150
+		define('EE_THIRD_PARTY', EE_CORE . 'third_party_libs' . DS);
151
+		define('EE_GLOBAL_ASSETS', EE_TEMPLATES . 'global_assets' . DS);
152
+		define('EE_FORM_SECTIONS', EE_LIBRARIES . 'form_sections' . DS);
153
+		// gateways
154
+		define('EE_GATEWAYS', EE_MODULES . 'gateways' . DS);
155
+		define('EE_GATEWAYS_URL', EE_PLUGIN_DIR_URL . 'modules' . DS . 'gateways' . DS);
156
+		// asset URL paths
157
+		define('EE_TEMPLATES_URL', EE_PLUGIN_DIR_URL . 'core' . DS . 'templates' . DS);
158
+		define('EE_GLOBAL_ASSETS_URL', EE_TEMPLATES_URL . 'global_assets' . DS);
159
+		define('EE_IMAGES_URL', EE_GLOBAL_ASSETS_URL . 'images' . DS);
160
+		define('EE_THIRD_PARTY_URL', EE_PLUGIN_DIR_URL . 'core' . DS . 'third_party_libs' . DS);
161
+		define('EE_HELPERS_ASSETS', EE_PLUGIN_DIR_URL . 'core/helpers/assets/');
162
+		define('EE_LIBRARIES_URL', EE_PLUGIN_DIR_URL . 'core/libraries/');
163
+		// define upload paths
164
+		$uploads = wp_upload_dir();
165
+		// define the uploads directory and URL
166
+		define('EVENT_ESPRESSO_UPLOAD_DIR', $uploads['basedir'] . DS . 'espresso' . DS);
167
+		define('EVENT_ESPRESSO_UPLOAD_URL', $uploads['baseurl'] . DS . 'espresso' . DS);
168
+		// define the templates directory and URL
169
+		define('EVENT_ESPRESSO_TEMPLATE_DIR', $uploads['basedir'] . DS . 'espresso' . DS . 'templates' . DS);
170
+		define('EVENT_ESPRESSO_TEMPLATE_URL', $uploads['baseurl'] . DS . 'espresso' . DS . 'templates' . DS);
171
+		// define the gateway directory and URL
172
+		define('EVENT_ESPRESSO_GATEWAY_DIR', $uploads['basedir'] . DS . 'espresso' . DS . 'gateways' . DS);
173
+		define('EVENT_ESPRESSO_GATEWAY_URL', $uploads['baseurl'] . DS . 'espresso' . DS . 'gateways' . DS);
174
+		// languages folder/path
175
+		define('EE_LANGUAGES_SAFE_LOC', '..' . DS . 'uploads' . DS . 'espresso' . DS . 'languages' . DS);
176
+		define('EE_LANGUAGES_SAFE_DIR', EVENT_ESPRESSO_UPLOAD_DIR . 'languages' . DS);
177
+		//check for dompdf fonts in uploads
178
+		if (file_exists(EVENT_ESPRESSO_UPLOAD_DIR . 'fonts' . DS)) {
179
+			define('DOMPDF_FONT_DIR', EVENT_ESPRESSO_UPLOAD_DIR . 'fonts' . DS);
180
+		}
181
+		//ajax constants
182
+		define(
183
+				'EE_FRONT_AJAX',
184
+				isset($_REQUEST['ee_front_ajax']) || isset($_REQUEST['data']['ee_front_ajax']) ? true : false
185
+		);
186
+		define(
187
+				'EE_ADMIN_AJAX',
188
+				isset($_REQUEST['ee_admin_ajax']) || isset($_REQUEST['data']['ee_admin_ajax']) ? true : false
189
+		);
190
+		//just a handy constant occasionally needed for finding values representing infinity in the DB
191
+		//you're better to use this than its straight value (currently -1) in case you ever
192
+		//want to change its default value! or find when -1 means infinity
193
+		define('EE_INF_IN_DB', -1);
194
+		define('EE_INF', INF > (float)PHP_INT_MAX ? INF : PHP_INT_MAX);
195
+		define('EE_DEBUG', false);
196
+		// for older WP versions
197
+		if ( ! defined('MONTH_IN_SECONDS')) {
198
+			define('MONTH_IN_SECONDS', DAY_IN_SECONDS * 30);
199
+		}
200
+		/**
201
+		 *    espresso_plugin_activation
202
+		 *    adds a wp-option to indicate that EE has been activated via the WP admin plugins page
203
+		 */
204
+		function espresso_plugin_activation()
205
+		{
206
+			update_option('ee_espresso_activation', true);
207
+		}
208 208
 
209
-        register_activation_hook(EVENT_ESPRESSO_MAIN_FILE, 'espresso_plugin_activation');
210
-        /**
211
-         *    espresso_load_error_handling
212
-         *    this function loads EE's class for handling exceptions and errors
213
-         */
214
-        function espresso_load_error_handling()
215
-        {
216
-            // load debugging tools
217
-            if (WP_DEBUG === true && is_readable(EE_HELPERS . 'EEH_Debug_Tools.helper.php')) {
218
-                require_once(EE_HELPERS . 'EEH_Debug_Tools.helper.php');
219
-                EEH_Debug_Tools::instance();
220
-            }
221
-            // load error handling
222
-            if (is_readable(EE_CORE . 'EE_Error.core.php')) {
223
-                require_once(EE_CORE . 'EE_Error.core.php');
224
-            } else {
225
-                wp_die(esc_html__('The EE_Error core class could not be loaded.', 'event_espresso'));
226
-            }
227
-        }
209
+		register_activation_hook(EVENT_ESPRESSO_MAIN_FILE, 'espresso_plugin_activation');
210
+		/**
211
+		 *    espresso_load_error_handling
212
+		 *    this function loads EE's class for handling exceptions and errors
213
+		 */
214
+		function espresso_load_error_handling()
215
+		{
216
+			// load debugging tools
217
+			if (WP_DEBUG === true && is_readable(EE_HELPERS . 'EEH_Debug_Tools.helper.php')) {
218
+				require_once(EE_HELPERS . 'EEH_Debug_Tools.helper.php');
219
+				EEH_Debug_Tools::instance();
220
+			}
221
+			// load error handling
222
+			if (is_readable(EE_CORE . 'EE_Error.core.php')) {
223
+				require_once(EE_CORE . 'EE_Error.core.php');
224
+			} else {
225
+				wp_die(esc_html__('The EE_Error core class could not be loaded.', 'event_espresso'));
226
+			}
227
+		}
228 228
 
229
-        /**
230
-         *    espresso_load_required
231
-         *    given a class name and path, this function will load that file or throw an exception
232
-         *
233
-         * @param    string $classname
234
-         * @param    string $full_path_to_file
235
-         * @throws    EE_Error
236
-         */
237
-        function espresso_load_required($classname, $full_path_to_file)
238
-        {
239
-            static $error_handling_loaded = false;
240
-            if ( ! $error_handling_loaded) {
241
-                espresso_load_error_handling();
242
-                $error_handling_loaded = true;
243
-            }
244
-            if (is_readable($full_path_to_file)) {
245
-                require_once($full_path_to_file);
246
-            } else {
247
-                throw new EE_Error (
248
-                        sprintf(
249
-                                esc_html__(
250
-                                        'The %s class file could not be located or is not readable due to file permissions.',
251
-                                        'event_espresso'
252
-                                ),
253
-                                $classname
254
-                        )
255
-                );
256
-            }
257
-        }
229
+		/**
230
+		 *    espresso_load_required
231
+		 *    given a class name and path, this function will load that file or throw an exception
232
+		 *
233
+		 * @param    string $classname
234
+		 * @param    string $full_path_to_file
235
+		 * @throws    EE_Error
236
+		 */
237
+		function espresso_load_required($classname, $full_path_to_file)
238
+		{
239
+			static $error_handling_loaded = false;
240
+			if ( ! $error_handling_loaded) {
241
+				espresso_load_error_handling();
242
+				$error_handling_loaded = true;
243
+			}
244
+			if (is_readable($full_path_to_file)) {
245
+				require_once($full_path_to_file);
246
+			} else {
247
+				throw new EE_Error (
248
+						sprintf(
249
+								esc_html__(
250
+										'The %s class file could not be located or is not readable due to file permissions.',
251
+										'event_espresso'
252
+								),
253
+								$classname
254
+						)
255
+				);
256
+			}
257
+		}
258 258
 
259
-        espresso_load_required('EEH_Base', EE_CORE . 'helpers' . DS . 'EEH_Base.helper.php');
260
-        espresso_load_required('EEH_File', EE_CORE . 'helpers' . DS . 'EEH_File.helper.php');
261
-        espresso_load_required('EE_Bootstrap', EE_CORE . 'EE_Bootstrap.core.php');
262
-        new EE_Bootstrap();
263
-    }
259
+		espresso_load_required('EEH_Base', EE_CORE . 'helpers' . DS . 'EEH_Base.helper.php');
260
+		espresso_load_required('EEH_File', EE_CORE . 'helpers' . DS . 'EEH_File.helper.php');
261
+		espresso_load_required('EE_Bootstrap', EE_CORE . 'EE_Bootstrap.core.php');
262
+		new EE_Bootstrap();
263
+	}
264 264
 }
265 265
 if ( ! function_exists('espresso_deactivate_plugin')) {
266
-    /**
267
-     *    deactivate_plugin
268
-     * usage:  espresso_deactivate_plugin( plugin_basename( __FILE__ ));
269
-     *
270
-     * @access public
271
-     * @param string $plugin_basename - the results of plugin_basename( __FILE__ ) for the plugin's main file
272
-     * @return    void
273
-     */
274
-    function espresso_deactivate_plugin($plugin_basename = '')
275
-    {
276
-        if ( ! function_exists('deactivate_plugins')) {
277
-            require_once(ABSPATH . 'wp-admin/includes/plugin.php');
278
-        }
279
-        unset($_GET['activate'], $_REQUEST['activate']);
280
-        deactivate_plugins($plugin_basename);
281
-    }
266
+	/**
267
+	 *    deactivate_plugin
268
+	 * usage:  espresso_deactivate_plugin( plugin_basename( __FILE__ ));
269
+	 *
270
+	 * @access public
271
+	 * @param string $plugin_basename - the results of plugin_basename( __FILE__ ) for the plugin's main file
272
+	 * @return    void
273
+	 */
274
+	function espresso_deactivate_plugin($plugin_basename = '')
275
+	{
276
+		if ( ! function_exists('deactivate_plugins')) {
277
+			require_once(ABSPATH . 'wp-admin/includes/plugin.php');
278
+		}
279
+		unset($_GET['activate'], $_REQUEST['activate']);
280
+		deactivate_plugins($plugin_basename);
281
+	}
282 282
 }
283 283
\ No newline at end of file
Please login to merge, or discard this patch.