Completed
Branch Gutenberg/espresso-cpt-editor (d57906)
by
unknown
78:21 queued 69:49
created
core/EE_Capabilities.core.php 3 patches
Doc Comments   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -805,7 +805,7 @@  discard block
 block discarded – undo
805 805
      * @since                        4.5.0
806 806
      *
807 807
      * @param string $meta_cap   What meta capability is this mapping.
808
-     * @param array  $map_values array {
808
+     * @param string[]  $map_values array {
809 809
      *                           //array of values that MUST match a count of 4.  It's okay to send an empty string for
810 810
      *                           capabilities that don't get mapped to.
811 811
      *
@@ -880,8 +880,8 @@  discard block
 block discarded – undo
880 880
      * @since 4.6.x
881 881
      *
882 882
      * @param $caps
883
-     * @param $cap
884
-     * @param $user_id
883
+     * @param string $cap
884
+     * @param integer $user_id
885 885
      * @param $args
886 886
      *
887 887
      * @return array
Please login to merge, or discard this patch.
Indentation   +1389 added lines, -1389 removed lines patch added patch discarded remove patch
@@ -18,1001 +18,1001 @@  discard block
 block discarded – undo
18 18
 final class EE_Capabilities extends EE_Base
19 19
 {
20 20
 
21
-    /**
22
-     * the name of the wp option used to store caps previously initialized
23
-     */
24
-    const option_name = 'ee_caps_initialized';
25
-
26
-    /**
27
-     * instance of EE_Capabilities object
28
-     *
29
-     * @var EE_Capabilities
30
-     */
31
-    private static $_instance;
32
-
33
-
34
-    /**
35
-     * This is a map of caps that correspond to a default WP_Role.
36
-     * Array is indexed by Role and values are ee capabilities.
37
-     *
38
-     * @since 4.5.0
39
-     *
40
-     * @var array
41
-     */
42
-    private $capabilities_map = array();
43
-
44
-    /**
45
-     * This used to hold an array of EE_Meta_Capability_Map objects
46
-     * that define the granular capabilities mapped to for a user depending on context.
47
-     *
48
-     * @var EE_Meta_Capability_Map[]
49
-     */
50
-    private $_meta_caps = array();
51
-
52
-    /**
53
-     * The internal $capabilities_map needs to be initialized before it can be used.
54
-     * This flag tracks whether that has happened or not.
55
-     * But for this to work, we need three states to indicate:
56
-     *      initialization has not occurred at all
57
-     *      initialization has started but is not complete
58
-     *      initialization is complete
59
-     * The reason this is needed is because the addCaps() method
60
-     * normally requires the $capabilities_map to be initialized,
61
-     * but is also used during the initialization process.
62
-     * So:
63
-     *      If initialized === null, init_caps() will be called before any other methods will run.
64
-     *      If initialized === false, then init_caps() is in the process of running it's logic.
65
-     *      If initialized === true, then init_caps() has completed the initialization process.
66
-     *
67
-     * @var boolean|null $initialized
68
-     */
69
-    private $initialized;
70
-
71
-    /**
72
-     * @var boolean $reset
73
-     */
74
-    private $reset = false;
75
-
76
-
77
-
78
-    /**
79
-     * singleton method used to instantiate class object
80
-     *
81
-     * @since 4.5.0
82
-     *
83
-     * @return EE_Capabilities
84
-     */
85
-    public static function instance()
86
-    {
87
-        //check if instantiated, and if not do so.
88
-        if (! self::$_instance instanceof EE_Capabilities) {
89
-            self::$_instance = new self();
90
-        }
91
-        return self::$_instance;
92
-    }
93
-
94
-
95
-
96
-    /**
97
-     * private constructor
98
-     *
99
-     * @since 4.5.0
100
-     */
101
-    private function __construct()
102
-    {
103
-    }
104
-
105
-
106
-
107
-    /**
108
-     * This delays the initialization of the capabilities class until EE_System core is loaded and ready.
109
-     *
110
-     * @param bool $reset allows for resetting the default capabilities saved on roles.  Note that this doesn't
111
-     *                    actually REMOVE any capabilities from existing roles, it just resaves defaults roles and
112
-     *                    ensures that they are up to date.
113
-     *
114
-     * @since 4.5.0
115
-     * @return bool
116
-     * @throws EE_Error
117
-     */
118
-    public function init_caps($reset = false)
119
-    {
120
-        if(! EE_Maintenance_Mode::instance()->models_can_query()){
121
-            return false;
122
-        }
123
-        $this->reset = filter_var($reset, FILTER_VALIDATE_BOOLEAN);
124
-        // if reset, then completely delete the cache option and clear the $capabilities_map property.
125
-        if ($this->reset) {
126
-            $this->initialized = null;
127
-            $this->capabilities_map = array();
128
-            delete_option(self::option_name);
129
-        }
130
-        if ($this->initialized === null) {
131
-            $this->initialized = false;
132
-            do_action(
133
-                'AHEE__EE_Capabilities__init_caps__before_initialization',
134
-                $this->reset
135
-            );
136
-            $this->addCaps($this->_init_caps_map());
137
-            $this->_set_meta_caps();
138
-            do_action(
139
-                'AHEE__EE_Capabilities__init_caps__after_initialization',
140
-                $this->capabilities_map
141
-            );
142
-            $this->initialized = true;
143
-        }
144
-        // reset $this->reset so that it's not stuck on true if init_caps() gets called again
145
-        $this->reset = false;
146
-        return true;
147
-    }
148
-
149
-
150
-
151
-
152
-    /**
153
-     * This sets the meta caps property.
154
-     *
155
-     * @since 4.5.0
156
-     * @return void
157
-     * @throws EE_Error
158
-     */
159
-    private function _set_meta_caps()
160
-    {
161
-        // get default meta caps and filter the returned array
162
-        $this->_meta_caps = apply_filters(
163
-            'FHEE__EE_Capabilities___set_meta_caps__meta_caps',
164
-            $this->_get_default_meta_caps_array()
165
-        );
166
-        //add filter for map_meta_caps but only if models can query.
167
-        if (! has_filter('map_meta_cap', array($this, 'map_meta_caps'))) {
168
-            add_filter('map_meta_cap', array($this, 'map_meta_caps'), 10, 4);
169
-        }
170
-    }
171
-
172
-
173
-
174
-    /**
175
-     * This builds and returns the default meta_caps array only once.
176
-     *
177
-     * @since  4.8.28.rc.012
178
-     * @return array
179
-     * @throws EE_Error
180
-     */
181
-    private function _get_default_meta_caps_array()
182
-    {
183
-        static $default_meta_caps = array();
184
-        // make sure we're only ever initializing the default _meta_caps array once if it's empty.
185
-        if (empty($default_meta_caps)) {
186
-            $default_meta_caps = array(
187
-                //edits
188
-                new EE_Meta_Capability_Map_Edit(
189
-                    'ee_edit_event',
190
-                    array('Event', 'ee_edit_published_events', 'ee_edit_others_events', 'ee_edit_private_events')
191
-                ),
192
-                new EE_Meta_Capability_Map_Edit(
193
-                    'ee_edit_venue',
194
-                    array('Venue', 'ee_edit_published_venues', 'ee_edit_others_venues', 'ee_edit_private_venues')
195
-                ),
196
-                new EE_Meta_Capability_Map_Edit(
197
-                    'ee_edit_registration',
198
-                    array('Registration', '', 'ee_edit_others_registrations', '')
199
-                ),
200
-                new EE_Meta_Capability_Map_Edit(
201
-                    'ee_edit_checkin',
202
-                    array('Registration', '', 'ee_edit_others_checkins', '')
203
-                ),
204
-                new EE_Meta_Capability_Map_Messages_Cap(
205
-                    'ee_edit_message',
206
-                    array('Message_Template_Group', '', 'ee_edit_others_messages', 'ee_edit_global_messages')
207
-                ),
208
-                new EE_Meta_Capability_Map_Edit(
209
-                    'ee_edit_default_ticket',
210
-                    array('Ticket', '', 'ee_edit_others_default_tickets', '')
211
-                ),
212
-                new EE_Meta_Capability_Map_Registration_Form_Cap(
213
-                    'ee_edit_question',
214
-                    array('Question', '', '', 'ee_edit_system_questions')
215
-                ),
216
-                new EE_Meta_Capability_Map_Registration_Form_Cap(
217
-                    'ee_edit_question_group',
218
-                    array('Question_Group', '', '', 'ee_edit_system_question_groups')
219
-                ),
220
-                new EE_Meta_Capability_Map_Edit(
221
-                    'ee_edit_payment_method',
222
-                    array('Payment_Method', '', 'ee_edit_others_payment_methods', '')
223
-                ),
224
-                //reads
225
-                new EE_Meta_Capability_Map_Read(
226
-                    'ee_read_event',
227
-                    array('Event', '', 'ee_read_others_events', 'ee_read_private_events')
228
-                ),
229
-                new EE_Meta_Capability_Map_Read(
230
-                    'ee_read_venue',
231
-                    array('Venue', '', 'ee_read_others_venues', 'ee_read_private_venues')
232
-                ),
233
-                new EE_Meta_Capability_Map_Read(
234
-                    'ee_read_registration',
235
-                    array('Registration', '', 'ee_read_others_registrations', '')
236
-                ),
237
-                new EE_Meta_Capability_Map_Read(
238
-                    'ee_read_checkin',
239
-                    array('Registration', '', 'ee_read_others_checkins', '')
240
-                ),
241
-                new EE_Meta_Capability_Map_Messages_Cap(
242
-                    'ee_read_message',
243
-                    array('Message_Template_Group', '', 'ee_read_others_messages', 'ee_read_global_messages')
244
-                ),
245
-                new EE_Meta_Capability_Map_Read(
246
-                    'ee_read_default_ticket',
247
-                    array('Ticket', '', 'ee_read_others_default_tickets', '')
248
-                ),
249
-                new EE_Meta_Capability_Map_Read(
250
-                    'ee_read_payment_method',
251
-                    array('Payment_Method', '', 'ee_read_others_payment_methods', '')
252
-                ),
253
-                //deletes
254
-                new EE_Meta_Capability_Map_Delete(
255
-                    'ee_delete_event',
256
-                    array(
257
-                        'Event',
258
-                        'ee_delete_published_events',
259
-                        'ee_delete_others_events',
260
-                        'ee_delete_private_events',
261
-                    )
262
-                ),
263
-                new EE_Meta_Capability_Map_Delete(
264
-                    'ee_delete_venue',
265
-                    array(
266
-                        'Venue',
267
-                        'ee_delete_published_venues',
268
-                        'ee_delete_others_venues',
269
-                        'ee_delete_private_venues',
270
-                    )
271
-                ),
272
-                new EE_Meta_Capability_Map_Delete(
273
-                    'ee_delete_registration',
274
-                    array('Registration', '', 'ee_delete_others_registrations', '')
275
-                ),
276
-                new EE_Meta_Capability_Map_Delete(
277
-                    'ee_delete_checkin',
278
-                    array('Registration', '', 'ee_delete_others_checkins', '')
279
-                ),
280
-                new EE_Meta_Capability_Map_Messages_Cap(
281
-                    'ee_delete_message',
282
-                    array('Message_Template_Group', '', 'ee_delete_others_messages', 'ee_delete_global_messages')
283
-                ),
284
-                new EE_Meta_Capability_Map_Delete(
285
-                    'ee_delete_default_ticket',
286
-                    array('Ticket', '', 'ee_delete_others_default_tickets', '')
287
-                ),
288
-                new EE_Meta_Capability_Map_Registration_Form_Cap(
289
-                    'ee_delete_question',
290
-                    array('Question', '', '', 'delete_system_questions')
291
-                ),
292
-                new EE_Meta_Capability_Map_Registration_Form_Cap(
293
-                    'ee_delete_question_group',
294
-                    array('Question_Group', '', '', 'delete_system_question_groups')
295
-                ),
296
-                new EE_Meta_Capability_Map_Delete(
297
-                    'ee_delete_payment_method',
298
-                    array('Payment_Method', '', 'ee_delete_others_payment_methods', '')
299
-                ),
300
-            );
301
-        }
302
-        return $default_meta_caps;
303
-    }
304
-
305
-
306
-
307
-    /**
308
-     * This is the callback for the wp map_meta_caps() function which allows for ensuring certain caps that act as a
309
-     * "meta" for other caps ( i.e. ee_edit_event is a meta for ee_edit_others_events ) work as expected.
310
-     *
311
-     * The actual logic is carried out by implementer classes in their definition of _map_meta_caps.
312
-     *
313
-     * @since 4.5.0
314
-     * @see   wp-includes/capabilities.php
315
-     *
316
-     * @param array  $caps    actual users capabilities
317
-     * @param string $cap     initial capability name that is being checked (the "map" key)
318
-     * @param int    $user_id The user id
319
-     * @param array  $args    Adds context to the cap. Typically the object ID.
320
-     * @return array actual users capabilities
321
-     * @throws EE_Error
322
-     */
323
-    public function map_meta_caps($caps, $cap, $user_id, $args)
324
-    {
325
-        if (did_action('AHEE__EE_System__load_espresso_addons__complete')) {
326
-            //loop through our _meta_caps array
327
-            foreach ($this->_meta_caps as $meta_map) {
328
-                if (! $meta_map instanceof EE_Meta_Capability_Map) {
329
-                    continue;
330
-                }
331
-                // don't load models if there is no object ID in the args
332
-                if (! empty($args[0])) {
333
-                    $meta_map->ensure_is_model();
334
-                }
335
-                $caps = $meta_map->map_meta_caps($caps, $cap, $user_id, $args);
336
-            }
337
-        }
338
-        return $caps;
339
-    }
340
-
341
-
342
-
343
-    /**
344
-     * This sets up and returns the initial capabilities map for Event Espresso
345
-     * Note this array is filtered.
346
-     * It is assumed that all available EE capabilities are assigned to the administrator role.
347
-     *
348
-     * @since 4.5.0
349
-     *
350
-     * @return array
351
-     */
352
-    private function _init_caps_map()
353
-    {
354
-        return apply_filters(
355
-            'FHEE__EE_Capabilities__init_caps_map__caps',
356
-            array(
357
-                'administrator'           => array(
358
-                    //basic access
359
-                    'ee_read_ee',
360
-                    //gateways
361
-                    /**
362
-                     * note that with payment method capabilities, although we've implemented
363
-                     * capability mapping which will be used for accessing payment methods owned by
364
-                     * other users.  This is not fully implemented yet in the payment method ui.
365
-                     * Currently only the "plural" caps are in active use.
366
-                     * (Specific payment method caps are in use as well).
367
-                     **/
368
-                    'ee_manage_gateways',
369
-                    'ee_read_payment_methods',
370
-                    'ee_read_others_payment_methods',
371
-                    'ee_edit_payment_methods',
372
-                    'ee_edit_others_payment_methods',
373
-                    'ee_delete_payment_methods',
374
-                    //events
375
-                    'ee_publish_events',
376
-                    'ee_read_private_events',
377
-                    'ee_read_others_events',
378
-                    'ee_read_events',
379
-                    'ee_edit_events',
380
-                    'ee_edit_published_events',
381
-                    'ee_edit_others_events',
382
-                    'ee_edit_private_events',
383
-                    'ee_delete_published_events',
384
-                    'ee_delete_private_events',
385
-                    'ee_delete_events',
386
-                    'ee_delete_others_events',
387
-                    //event categories
388
-                    'ee_manage_event_categories',
389
-                    'ee_edit_event_category',
390
-                    'ee_delete_event_category',
391
-                    'ee_assign_event_category',
392
-                    //venues
393
-                    'ee_publish_venues',
394
-                    'ee_read_venues',
395
-                    'ee_read_others_venues',
396
-                    'ee_read_private_venues',
397
-                    'ee_edit_venues',
398
-                    'ee_edit_others_venues',
399
-                    'ee_edit_published_venues',
400
-                    'ee_edit_private_venues',
401
-                    'ee_delete_venues',
402
-                    'ee_delete_others_venues',
403
-                    'ee_delete_private_venues',
404
-                    'ee_delete_published_venues',
405
-                    //venue categories
406
-                    'ee_manage_venue_categories',
407
-                    'ee_edit_venue_category',
408
-                    'ee_delete_venue_category',
409
-                    'ee_assign_venue_category',
410
-                    //contacts
411
-                    'ee_read_contacts',
412
-                    'ee_edit_contacts',
413
-                    'ee_delete_contacts',
414
-                    //registrations
415
-                    'ee_read_registrations',
416
-                    'ee_read_others_registrations',
417
-                    'ee_edit_registrations',
418
-                    'ee_edit_others_registrations',
419
-                    'ee_delete_registrations',
420
-                    //checkins
421
-                    'ee_read_others_checkins',
422
-                    'ee_read_checkins',
423
-                    'ee_edit_checkins',
424
-                    'ee_edit_others_checkins',
425
-                    'ee_delete_checkins',
426
-                    'ee_delete_others_checkins',
427
-                    //transactions && payments
428
-                    'ee_read_transaction',
429
-                    'ee_read_transactions',
430
-                    'ee_edit_payments',
431
-                    'ee_delete_payments',
432
-                    //messages
433
-                    'ee_read_messages',
434
-                    'ee_read_others_messages',
435
-                    'ee_read_global_messages',
436
-                    'ee_edit_global_messages',
437
-                    'ee_edit_messages',
438
-                    'ee_edit_others_messages',
439
-                    'ee_delete_messages',
440
-                    'ee_delete_others_messages',
441
-                    'ee_delete_global_messages',
442
-                    'ee_send_message',
443
-                    //tickets
444
-                    'ee_read_default_tickets',
445
-                    'ee_read_others_default_tickets',
446
-                    'ee_edit_default_tickets',
447
-                    'ee_edit_others_default_tickets',
448
-                    'ee_delete_default_tickets',
449
-                    'ee_delete_others_default_tickets',
450
-                    //prices
451
-                    'ee_edit_default_price',
452
-                    'ee_edit_default_prices',
453
-                    'ee_delete_default_price',
454
-                    'ee_delete_default_prices',
455
-                    'ee_edit_default_price_type',
456
-                    'ee_edit_default_price_types',
457
-                    'ee_delete_default_price_type',
458
-                    'ee_delete_default_price_types',
459
-                    'ee_read_default_prices',
460
-                    'ee_read_default_price_types',
461
-                    //registration form
462
-                    'ee_edit_questions',
463
-                    'ee_edit_system_questions',
464
-                    'ee_read_questions',
465
-                    'ee_delete_questions',
466
-                    'ee_edit_question_groups',
467
-                    'ee_read_question_groups',
468
-                    'ee_edit_system_question_groups',
469
-                    'ee_delete_question_groups',
470
-                    //event_type taxonomy
471
-                    'ee_assign_event_type',
472
-                    'ee_manage_event_types',
473
-                    'ee_edit_event_type',
474
-                    'ee_delete_event_type',
475
-                ),
476
-                'ee_events_administrator' => array(
477
-                    //core wp caps
478
-                    'read',
479
-                    'read_private_pages',
480
-                    'read_private_posts',
481
-                    'edit_users',
482
-                    'edit_posts',
483
-                    'edit_pages',
484
-                    'edit_published_posts',
485
-                    'edit_published_pages',
486
-                    'edit_private_pages',
487
-                    'edit_private_posts',
488
-                    'edit_others_posts',
489
-                    'edit_others_pages',
490
-                    'publish_posts',
491
-                    'publish_pages',
492
-                    'delete_posts',
493
-                    'delete_pages',
494
-                    'delete_private_pages',
495
-                    'delete_private_posts',
496
-                    'delete_published_pages',
497
-                    'delete_published_posts',
498
-                    'delete_others_posts',
499
-                    'delete_others_pages',
500
-                    'manage_categories',
501
-                    'manage_links',
502
-                    'moderate_comments',
503
-                    'unfiltered_html',
504
-                    'upload_files',
505
-                    'export',
506
-                    'import',
507
-                    'list_users',
508
-                    'level_1', //required if user with this role shows up in author dropdowns
509
-                    //basic ee access
510
-                    'ee_read_ee',
511
-                    //events
512
-                    'ee_publish_events',
513
-                    'ee_read_private_events',
514
-                    'ee_read_others_events',
515
-                    'ee_read_event',
516
-                    'ee_read_events',
517
-                    'ee_edit_event',
518
-                    'ee_edit_events',
519
-                    'ee_edit_published_events',
520
-                    'ee_edit_others_events',
521
-                    'ee_edit_private_events',
522
-                    'ee_delete_published_events',
523
-                    'ee_delete_private_events',
524
-                    'ee_delete_event',
525
-                    'ee_delete_events',
526
-                    'ee_delete_others_events',
527
-                    //event categories
528
-                    'ee_manage_event_categories',
529
-                    'ee_edit_event_category',
530
-                    'ee_delete_event_category',
531
-                    'ee_assign_event_category',
532
-                    //venues
533
-                    'ee_publish_venues',
534
-                    'ee_read_venue',
535
-                    'ee_read_venues',
536
-                    'ee_read_others_venues',
537
-                    'ee_read_private_venues',
538
-                    'ee_edit_venue',
539
-                    'ee_edit_venues',
540
-                    'ee_edit_others_venues',
541
-                    'ee_edit_published_venues',
542
-                    'ee_edit_private_venues',
543
-                    'ee_delete_venue',
544
-                    'ee_delete_venues',
545
-                    'ee_delete_others_venues',
546
-                    'ee_delete_private_venues',
547
-                    'ee_delete_published_venues',
548
-                    //venue categories
549
-                    'ee_manage_venue_categories',
550
-                    'ee_edit_venue_category',
551
-                    'ee_delete_venue_category',
552
-                    'ee_assign_venue_category',
553
-                    //contacts
554
-                    'ee_read_contacts',
555
-                    'ee_edit_contacts',
556
-                    'ee_delete_contacts',
557
-                    //registrations
558
-                    'ee_read_registrations',
559
-                    'ee_read_others_registrations',
560
-                    'ee_edit_registration',
561
-                    'ee_edit_registrations',
562
-                    'ee_edit_others_registrations',
563
-                    'ee_delete_registration',
564
-                    'ee_delete_registrations',
565
-                    //checkins
566
-                    'ee_read_others_checkins',
567
-                    'ee_read_checkins',
568
-                    'ee_edit_checkins',
569
-                    'ee_edit_others_checkins',
570
-                    'ee_delete_checkins',
571
-                    'ee_delete_others_checkins',
572
-                    //transactions && payments
573
-                    'ee_read_transaction',
574
-                    'ee_read_transactions',
575
-                    'ee_edit_payments',
576
-                    'ee_delete_payments',
577
-                    //messages
578
-                    'ee_read_messages',
579
-                    'ee_read_others_messages',
580
-                    'ee_read_global_messages',
581
-                    'ee_edit_global_messages',
582
-                    'ee_edit_messages',
583
-                    'ee_edit_others_messages',
584
-                    'ee_delete_messages',
585
-                    'ee_delete_others_messages',
586
-                    'ee_delete_global_messages',
587
-                    'ee_send_message',
588
-                    //tickets
589
-                    'ee_read_default_tickets',
590
-                    'ee_read_others_default_tickets',
591
-                    'ee_edit_default_tickets',
592
-                    'ee_edit_others_default_tickets',
593
-                    'ee_delete_default_tickets',
594
-                    'ee_delete_others_default_tickets',
595
-                    //prices
596
-                    'ee_edit_default_price',
597
-                    'ee_edit_default_prices',
598
-                    'ee_delete_default_price',
599
-                    'ee_delete_default_prices',
600
-                    'ee_edit_default_price_type',
601
-                    'ee_edit_default_price_types',
602
-                    'ee_delete_default_price_type',
603
-                    'ee_delete_default_price_types',
604
-                    'ee_read_default_prices',
605
-                    'ee_read_default_price_types',
606
-                    //registration form
607
-                    'ee_edit_questions',
608
-                    'ee_edit_system_questions',
609
-                    'ee_read_questions',
610
-                    'ee_delete_questions',
611
-                    'ee_edit_question_groups',
612
-                    'ee_read_question_groups',
613
-                    'ee_edit_system_question_groups',
614
-                    'ee_delete_question_groups',
615
-                    //event_type taxonomy
616
-                    'ee_assign_event_type',
617
-                    'ee_manage_event_types',
618
-                    'ee_edit_event_type',
619
-                    'ee_delete_event_type',
620
-                )
621
-            )
622
-        );
623
-    }
624
-
625
-
626
-
627
-    /**
628
-     * @return bool
629
-     * @throws EE_Error
630
-     */
631
-    private function setupCapabilitiesMap()
632
-    {
633
-        // if the initialization process hasn't even started, then we need to call init_caps()
634
-        if($this->initialized === null) {
635
-            return $this->init_caps();
636
-        }
637
-        // unless resetting, get caps from db if we haven't already
638
-        $this->capabilities_map = $this->reset || ! empty($this->capabilities_map)
639
-            ? $this->capabilities_map
640
-            : get_option(self::option_name, array());
641
-        return true;
642
-    }
643
-
644
-
645
-
646
-    /**
647
-     * @param bool $update
648
-     * @return bool
649
-     */
650
-    private function updateCapabilitiesMap($update = true)
651
-    {
652
-        return $update ? update_option(self::option_name, $this->capabilities_map) : false;
653
-    }
654
-
655
-
656
-
657
-    /**
658
-     * Adds capabilities to roles.
659
-     *
660
-     * @since 4.9.42
661
-     * @param array $capabilities_to_add array of capabilities to add, indexed by roles.
662
-     *                                   Note that this should ONLY be called on activation hook
663
-     *                                   otherwise the caps will be added on every request.
664
-     * @return bool
665
-     * @throws \EE_Error
666
-     */
667
-    public function addCaps(array $capabilities_to_add)
668
-    {
669
-        // don't do anything if the capabilities map can not be initialized
670
-        if (! $this->setupCapabilitiesMap()) {
671
-            return false;
672
-        }
673
-        // and filter the array so others can get in on the fun during resets
674
-        $capabilities_to_add = apply_filters(
675
-            'FHEE__EE_Capabilities__addCaps__capabilities_to_add',
676
-            $capabilities_to_add,
677
-            $this->reset,
678
-            $this->capabilities_map
679
-        );
680
-        $update_capabilities_map = false;
681
-        // if not reset, see what caps are new for each role. if they're new, add them.
682
-        foreach ($capabilities_to_add as $role => $caps_for_role) {
683
-            if (is_array($caps_for_role)) {
684
-                foreach ($caps_for_role as $cap) {
685
-                    if (
686
-                        ! $this->capHasBeenAddedToRole($role, $cap)
687
-                        && $this->add_cap_to_role($role, $cap, true, false)
688
-                    ) {
689
-                        $update_capabilities_map = true;
690
-                    }
691
-                }
692
-            }
693
-        }
694
-        // now let's just save the cap that has been set but only if there's been a change.
695
-        $updated = $this->updateCapabilitiesMap($update_capabilities_map);
696
-        $this->flushWpUser($updated);
697
-        do_action('AHEE__EE_Capabilities__addCaps__complete', $this->capabilities_map, $updated);
698
-        return $updated;
699
-    }
700
-
701
-
702
-
703
-    /**
704
-     * Loops through the capabilities map and removes the role caps specified by the incoming array
705
-     *
706
-     * @param array $caps_map map of capabilities to be removed (indexed by roles)
707
-     * @return bool
708
-     * @throws \EE_Error
709
-     */
710
-    public function removeCaps($caps_map)
711
-    {
712
-        // don't do anything if the capabilities map can not be initialized
713
-        if (! $this->setupCapabilitiesMap()) {
714
-            return false;
715
-        }
716
-        $update_capabilities_map = false;
717
-        foreach ($caps_map as $role => $caps_for_role) {
718
-            if (is_array($caps_for_role)) {
719
-                foreach ($caps_for_role as $cap) {
720
-                    if ($this->capHasBeenAddedToRole($role, $cap)
721
-                        && $this->remove_cap_from_role($role, $cap, false)
722
-                    ) {
723
-                        $update_capabilities_map = true;
724
-                    }
725
-                }
726
-            }
727
-        }
728
-        // maybe resave the caps
729
-        $updated = $this->updateCapabilitiesMap($update_capabilities_map);
730
-        $this->flushWpUser($updated);
731
-        return $updated;
732
-    }
733
-
734
-
735
-    /**
736
-     * This ensures that the WP User object cached on the $current_user global in WP has the latest capabilities from
737
-     * the roles on that user.
738
-     *
739
-     * @param bool $flush  Default is to flush the WP_User object.  If false, then this method effectively does nothing.
740
-     */
741
-    private function flushWpUser($flush = true)
742
-    {
743
-        if ($flush) {
744
-            $user = wp_get_current_user();
745
-            if ($user instanceof WP_User) {
746
-                $user->get_role_caps();
747
-            }
748
-        }
749
-    }
750
-
751
-
752
-
753
-    /**
754
-     * This method sets a capability on a role.  Note this should only be done on activation, or if you have something
755
-     * specific to prevent the cap from being added on every page load (adding caps are persistent to the db). Note.
756
-     * this is a wrapper for $wp_role->add_cap()
757
-     *
758
-     * @see   wp-includes/capabilities.php
759
-     * @since 4.5.0
760
-     * @param string|WP_Role $role  A WordPress role the capability is being added to
761
-     * @param string         $cap   The capability being added to the role
762
-     * @param bool           $grant Whether to grant access to this cap on this role.
763
-     * @param bool           $update_capabilities_map
764
-     * @return bool
765
-     * @throws \EE_Error
766
-     */
767
-    public function add_cap_to_role($role, $cap, $grant = true, $update_capabilities_map = true)
768
-    {
769
-        // capture incoming value for $role because we may need it to create a new WP_Role
770
-        $orig_role = $role;
771
-        $role = $role instanceof WP_Role ? $role : get_role($role);
772
-        //if the role isn't available then we create it.
773
-        if (! $role instanceof WP_Role) {
774
-            // if a plugin wants to create a specific role name then they should create the role before
775
-            // EE_Capabilities does.  Otherwise this function will create the role name from the slug:
776
-            // - removes any `ee_` namespacing from the start of the slug.
777
-            // - replaces `_` with ` ` (empty space).
778
-            // - sentence case on the resulting string.
779
-            $role_label = ucwords(str_replace(array('ee_', '_'), array('', ' '), $orig_role));
780
-            $role = add_role($orig_role, $role_label);
781
-        }
782
-        if ($role instanceof WP_Role) {
783
-            // don't do anything if the capabilities map can not be initialized
784
-            if (! $this->setupCapabilitiesMap()) {
785
-                return false;
786
-            }
787
-            if (! $this->capHasBeenAddedToRole($role->name, $cap)) {
788
-                $role->add_cap($cap, $grant);
789
-                $this->capabilities_map[ $role->name ][] = $cap;
790
-                $this->updateCapabilitiesMap($update_capabilities_map);
791
-                return true;
792
-            }
793
-        }
794
-        return false;
795
-    }
796
-
797
-
798
-
799
-    /**
800
-     * Functions similarly to add_cap_to_role except removes cap from given role.
801
-     * Wrapper for $wp_role->remove_cap()
802
-     *
803
-     * @see   wp-includes/capabilities.php
804
-     * @since 4.5.0
805
-     * @param string|WP_Role $role A WordPress role the capability is being removed from.
806
-     * @param string         $cap  The capability being removed
807
-     * @param bool           $update_capabilities_map
808
-     * @return bool
809
-     * @throws \EE_Error
810
-     */
811
-    public function remove_cap_from_role($role, $cap, $update_capabilities_map = true)
812
-    {
813
-        // don't do anything if the capabilities map can not be initialized
814
-        if (! $this->setupCapabilitiesMap()) {
815
-            return false;
816
-        }
817
-
818
-        $role = $role instanceof WP_Role ? $role : get_role($role);
819
-        if ($role instanceof WP_Role && $index = $this->capHasBeenAddedToRole($role->name, $cap, true)) {
820
-            $role->remove_cap($cap);
821
-            unset($this->capabilities_map[ $role->name ][ $index ]);
822
-            $this->updateCapabilitiesMap($update_capabilities_map);
823
-            return true;
824
-        }
825
-        return false;
826
-    }
827
-
828
-
829
-
830
-    /**
831
-     * @param string $role_name
832
-     * @param string $cap
833
-     * @param bool   $get_index
834
-     * @return bool|mixed
835
-     */
836
-    private function capHasBeenAddedToRole($role_name='', $cap='', $get_index = false)
837
-    {
838
-        if (
839
-            isset($this->capabilities_map[$role_name])
840
-            && ($index = array_search($cap, $this->capabilities_map[$role_name], true)) !== false
841
-        ) {
842
-            return $get_index ? $index : true;
843
-        }
844
-        return false;
845
-    }
846
-
847
-
848
-
849
-    /**
850
-     * Wrapper for the native WP current_user_can() method.
851
-     * This is provided as a handy method for a couple things:
852
-     * 1. Using the context string it allows for targeted filtering by addons for a specific check (without having to
853
-     * write those filters wherever current_user_can is called).
854
-     * 2. Explicit passing of $id from a given context ( useful in the cases of map_meta_cap filters )
855
-     *
856
-     * @since 4.5.0
857
-     *
858
-     * @param string $cap     The cap being checked.
859
-     * @param string $context The context where the current_user_can is being called from.
860
-     * @param int    $id      Optional. Id for item where current_user_can is being called from (used in map_meta_cap()
861
-     *                        filters.
862
-     *
863
-     * @return bool  Whether user can or not.
864
-     */
865
-    public function current_user_can($cap, $context, $id = 0)
866
-    {
867
-        //apply filters (both a global on just the cap, and context specific.  Global overrides context specific)
868
-        $filtered_cap = apply_filters('FHEE__EE_Capabilities__current_user_can__cap__' . $context, $cap, $id);
869
-        $filtered_cap = apply_filters(
870
-            'FHEE__EE_Capabilities__current_user_can__cap',
871
-            $filtered_cap,
872
-            $context,
873
-            $cap,
874
-            $id
875
-        );
876
-        return ! empty($id)
877
-            ? current_user_can($filtered_cap, $id)
878
-            : current_user_can($filtered_cap);
879
-    }
880
-
881
-
882
-
883
-    /**
884
-     * This is a wrapper for the WP user_can() function and follows the same style as the other wrappers in this class.
885
-     *
886
-     * @param int|WP_User $user    Either the user_id or a WP_User object
887
-     * @param string      $cap     The capability string being checked
888
-     * @param string      $context The context where the user_can is being called from (used in filters).
889
-     * @param int         $id      Optional. Id for item where user_can is being called from ( used in map_meta_cap()
890
-     *                             filters)
891
-     *
892
-     * @return bool Whether user can or not.
893
-     */
894
-    public function user_can($user, $cap, $context, $id = 0)
895
-    {
896
-        //apply filters (both a global on just the cap, and context specific.  Global overrides context specific)
897
-        $filtered_cap = apply_filters('FHEE__EE_Capabilities__user_can__cap__' . $context, $cap, $user, $id);
898
-        $filtered_cap = apply_filters(
899
-            'FHEE__EE_Capabilities__user_can__cap',
900
-            $filtered_cap,
901
-            $context,
902
-            $cap,
903
-            $user,
904
-            $id
905
-        );
906
-        return ! empty($id)
907
-            ? user_can($user, $filtered_cap, $id)
908
-            : user_can($user, $filtered_cap);
909
-    }
910
-
911
-
912
-
913
-    /**
914
-     * Wrapper for the native WP current_user_can_for_blog() method.
915
-     * This is provided as a handy method for a couple things:
916
-     * 1. Using the context string it allows for targeted filtering by addons for a specific check (without having to
917
-     * write those filters wherever current_user_can is called).
918
-     * 2. Explicit passing of $id from a given context ( useful in the cases of map_meta_cap filters )
919
-     *
920
-     * @since 4.5.0
921
-     *
922
-     * @param int    $blog_id The blog id that is being checked for.
923
-     * @param string $cap     The cap being checked.
924
-     * @param string $context The context where the current_user_can is being called from.
925
-     * @param int    $id      Optional. Id for item where current_user_can is being called from (used in map_meta_cap()
926
-     *                        filters.
927
-     *
928
-     * @return bool  Whether user can or not.
929
-     */
930
-    public function current_user_can_for_blog($blog_id, $cap, $context, $id = 0)
931
-    {
932
-        $user_can = ! empty($id)
933
-            ? current_user_can_for_blog($blog_id, $cap, $id)
934
-            : current_user_can($blog_id, $cap);
935
-        //apply filters (both a global on just the cap, and context specific.  Global overrides context specific)
936
-        $user_can = apply_filters(
937
-            'FHEE__EE_Capabilities__current_user_can_for_blog__user_can__' . $context,
938
-            $user_can,
939
-            $blog_id,
940
-            $cap,
941
-            $id
942
-        );
943
-        $user_can = apply_filters(
944
-            'FHEE__EE_Capabilities__current_user_can_for_blog__user_can',
945
-            $user_can,
946
-            $context,
947
-            $blog_id,
948
-            $cap,
949
-            $id
950
-        );
951
-        return $user_can;
952
-    }
953
-
954
-
955
-
956
-    /**
957
-     * This helper method just returns an array of registered EE capabilities.
958
-     *
959
-     * @since 4.5.0
960
-     * @param string $role If empty then the entire role/capability map is returned.
961
-     *                     Otherwise just the capabilities for the given role are returned.
962
-     * @return array
963
-     * @throws EE_Error
964
-     */
965
-    public function get_ee_capabilities($role = 'administrator')
966
-    {
967
-        if (! $this->initialized) {
968
-            $this->init_caps();
969
-        }
970
-        if (empty($role)) {
971
-            return $this->capabilities_map;
972
-        }
973
-        return isset($this->capabilities_map[ $role ])
974
-            ? $this->capabilities_map[ $role ]
975
-            : array();
976
-    }
977
-
978
-
979
-
980
-    /**
981
-     * @deprecated 4.9.42
982
-     * @param bool  $reset      If you need to reset Event Espresso's capabilities,
983
-     *                          then please use the init_caps() method with the "$reset" parameter set to "true"
984
-     * @param array $caps_map   Optional.
985
-     *                          Can be used to send a custom map of roles and capabilities for setting them up.
986
-     *                          Note that this should ONLY be called on activation hook or some other one-time
987
-     *                          task otherwise the caps will be added on every request.
988
-     * @return void
989
-     * @throws EE_Error
990
-     */
991
-    public function init_role_caps($reset = false, $caps_map = array())
992
-    {
993
-        // If this method is called directly and reset is set as 'true',
994
-        // then display a doing it wrong notice, because we want resets to go through init_caps()
995
-        // to guarantee that everything is set up correctly.
996
-        // This prevents the capabilities map getting reset incorrectly by direct calls to this method.
997
-        if ($reset) {
998
-            EE_Error::doing_it_wrong(
999
-                __METHOD__,
1000
-                sprintf(
1001
-                    esc_html__(
1002
-                        'The "%1$s" parameter for the "%2$s" method is deprecated. If you need to reset Event Espresso\'s capabilities, then please use the "%3$s" method with the "%1$s" parameter set to "%4$s".',
1003
-                        'event_espresso'
1004
-                    ),
1005
-                    '$reset',
1006
-                    __METHOD__ . '()',
1007
-                    'EE_Capabilities::init_caps()',
1008
-                    'true'
1009
-                ),
1010
-                '4.9.42',
1011
-                '5.0.0'
1012
-            );
1013
-        }
1014
-        $this->addCaps($caps_map);
1015
-    }
21
+	/**
22
+	 * the name of the wp option used to store caps previously initialized
23
+	 */
24
+	const option_name = 'ee_caps_initialized';
25
+
26
+	/**
27
+	 * instance of EE_Capabilities object
28
+	 *
29
+	 * @var EE_Capabilities
30
+	 */
31
+	private static $_instance;
32
+
33
+
34
+	/**
35
+	 * This is a map of caps that correspond to a default WP_Role.
36
+	 * Array is indexed by Role and values are ee capabilities.
37
+	 *
38
+	 * @since 4.5.0
39
+	 *
40
+	 * @var array
41
+	 */
42
+	private $capabilities_map = array();
43
+
44
+	/**
45
+	 * This used to hold an array of EE_Meta_Capability_Map objects
46
+	 * that define the granular capabilities mapped to for a user depending on context.
47
+	 *
48
+	 * @var EE_Meta_Capability_Map[]
49
+	 */
50
+	private $_meta_caps = array();
51
+
52
+	/**
53
+	 * The internal $capabilities_map needs to be initialized before it can be used.
54
+	 * This flag tracks whether that has happened or not.
55
+	 * But for this to work, we need three states to indicate:
56
+	 *      initialization has not occurred at all
57
+	 *      initialization has started but is not complete
58
+	 *      initialization is complete
59
+	 * The reason this is needed is because the addCaps() method
60
+	 * normally requires the $capabilities_map to be initialized,
61
+	 * but is also used during the initialization process.
62
+	 * So:
63
+	 *      If initialized === null, init_caps() will be called before any other methods will run.
64
+	 *      If initialized === false, then init_caps() is in the process of running it's logic.
65
+	 *      If initialized === true, then init_caps() has completed the initialization process.
66
+	 *
67
+	 * @var boolean|null $initialized
68
+	 */
69
+	private $initialized;
70
+
71
+	/**
72
+	 * @var boolean $reset
73
+	 */
74
+	private $reset = false;
75
+
76
+
77
+
78
+	/**
79
+	 * singleton method used to instantiate class object
80
+	 *
81
+	 * @since 4.5.0
82
+	 *
83
+	 * @return EE_Capabilities
84
+	 */
85
+	public static function instance()
86
+	{
87
+		//check if instantiated, and if not do so.
88
+		if (! self::$_instance instanceof EE_Capabilities) {
89
+			self::$_instance = new self();
90
+		}
91
+		return self::$_instance;
92
+	}
93
+
94
+
95
+
96
+	/**
97
+	 * private constructor
98
+	 *
99
+	 * @since 4.5.0
100
+	 */
101
+	private function __construct()
102
+	{
103
+	}
104
+
105
+
106
+
107
+	/**
108
+	 * This delays the initialization of the capabilities class until EE_System core is loaded and ready.
109
+	 *
110
+	 * @param bool $reset allows for resetting the default capabilities saved on roles.  Note that this doesn't
111
+	 *                    actually REMOVE any capabilities from existing roles, it just resaves defaults roles and
112
+	 *                    ensures that they are up to date.
113
+	 *
114
+	 * @since 4.5.0
115
+	 * @return bool
116
+	 * @throws EE_Error
117
+	 */
118
+	public function init_caps($reset = false)
119
+	{
120
+		if(! EE_Maintenance_Mode::instance()->models_can_query()){
121
+			return false;
122
+		}
123
+		$this->reset = filter_var($reset, FILTER_VALIDATE_BOOLEAN);
124
+		// if reset, then completely delete the cache option and clear the $capabilities_map property.
125
+		if ($this->reset) {
126
+			$this->initialized = null;
127
+			$this->capabilities_map = array();
128
+			delete_option(self::option_name);
129
+		}
130
+		if ($this->initialized === null) {
131
+			$this->initialized = false;
132
+			do_action(
133
+				'AHEE__EE_Capabilities__init_caps__before_initialization',
134
+				$this->reset
135
+			);
136
+			$this->addCaps($this->_init_caps_map());
137
+			$this->_set_meta_caps();
138
+			do_action(
139
+				'AHEE__EE_Capabilities__init_caps__after_initialization',
140
+				$this->capabilities_map
141
+			);
142
+			$this->initialized = true;
143
+		}
144
+		// reset $this->reset so that it's not stuck on true if init_caps() gets called again
145
+		$this->reset = false;
146
+		return true;
147
+	}
148
+
149
+
150
+
151
+
152
+	/**
153
+	 * This sets the meta caps property.
154
+	 *
155
+	 * @since 4.5.0
156
+	 * @return void
157
+	 * @throws EE_Error
158
+	 */
159
+	private function _set_meta_caps()
160
+	{
161
+		// get default meta caps and filter the returned array
162
+		$this->_meta_caps = apply_filters(
163
+			'FHEE__EE_Capabilities___set_meta_caps__meta_caps',
164
+			$this->_get_default_meta_caps_array()
165
+		);
166
+		//add filter for map_meta_caps but only if models can query.
167
+		if (! has_filter('map_meta_cap', array($this, 'map_meta_caps'))) {
168
+			add_filter('map_meta_cap', array($this, 'map_meta_caps'), 10, 4);
169
+		}
170
+	}
171
+
172
+
173
+
174
+	/**
175
+	 * This builds and returns the default meta_caps array only once.
176
+	 *
177
+	 * @since  4.8.28.rc.012
178
+	 * @return array
179
+	 * @throws EE_Error
180
+	 */
181
+	private function _get_default_meta_caps_array()
182
+	{
183
+		static $default_meta_caps = array();
184
+		// make sure we're only ever initializing the default _meta_caps array once if it's empty.
185
+		if (empty($default_meta_caps)) {
186
+			$default_meta_caps = array(
187
+				//edits
188
+				new EE_Meta_Capability_Map_Edit(
189
+					'ee_edit_event',
190
+					array('Event', 'ee_edit_published_events', 'ee_edit_others_events', 'ee_edit_private_events')
191
+				),
192
+				new EE_Meta_Capability_Map_Edit(
193
+					'ee_edit_venue',
194
+					array('Venue', 'ee_edit_published_venues', 'ee_edit_others_venues', 'ee_edit_private_venues')
195
+				),
196
+				new EE_Meta_Capability_Map_Edit(
197
+					'ee_edit_registration',
198
+					array('Registration', '', 'ee_edit_others_registrations', '')
199
+				),
200
+				new EE_Meta_Capability_Map_Edit(
201
+					'ee_edit_checkin',
202
+					array('Registration', '', 'ee_edit_others_checkins', '')
203
+				),
204
+				new EE_Meta_Capability_Map_Messages_Cap(
205
+					'ee_edit_message',
206
+					array('Message_Template_Group', '', 'ee_edit_others_messages', 'ee_edit_global_messages')
207
+				),
208
+				new EE_Meta_Capability_Map_Edit(
209
+					'ee_edit_default_ticket',
210
+					array('Ticket', '', 'ee_edit_others_default_tickets', '')
211
+				),
212
+				new EE_Meta_Capability_Map_Registration_Form_Cap(
213
+					'ee_edit_question',
214
+					array('Question', '', '', 'ee_edit_system_questions')
215
+				),
216
+				new EE_Meta_Capability_Map_Registration_Form_Cap(
217
+					'ee_edit_question_group',
218
+					array('Question_Group', '', '', 'ee_edit_system_question_groups')
219
+				),
220
+				new EE_Meta_Capability_Map_Edit(
221
+					'ee_edit_payment_method',
222
+					array('Payment_Method', '', 'ee_edit_others_payment_methods', '')
223
+				),
224
+				//reads
225
+				new EE_Meta_Capability_Map_Read(
226
+					'ee_read_event',
227
+					array('Event', '', 'ee_read_others_events', 'ee_read_private_events')
228
+				),
229
+				new EE_Meta_Capability_Map_Read(
230
+					'ee_read_venue',
231
+					array('Venue', '', 'ee_read_others_venues', 'ee_read_private_venues')
232
+				),
233
+				new EE_Meta_Capability_Map_Read(
234
+					'ee_read_registration',
235
+					array('Registration', '', 'ee_read_others_registrations', '')
236
+				),
237
+				new EE_Meta_Capability_Map_Read(
238
+					'ee_read_checkin',
239
+					array('Registration', '', 'ee_read_others_checkins', '')
240
+				),
241
+				new EE_Meta_Capability_Map_Messages_Cap(
242
+					'ee_read_message',
243
+					array('Message_Template_Group', '', 'ee_read_others_messages', 'ee_read_global_messages')
244
+				),
245
+				new EE_Meta_Capability_Map_Read(
246
+					'ee_read_default_ticket',
247
+					array('Ticket', '', 'ee_read_others_default_tickets', '')
248
+				),
249
+				new EE_Meta_Capability_Map_Read(
250
+					'ee_read_payment_method',
251
+					array('Payment_Method', '', 'ee_read_others_payment_methods', '')
252
+				),
253
+				//deletes
254
+				new EE_Meta_Capability_Map_Delete(
255
+					'ee_delete_event',
256
+					array(
257
+						'Event',
258
+						'ee_delete_published_events',
259
+						'ee_delete_others_events',
260
+						'ee_delete_private_events',
261
+					)
262
+				),
263
+				new EE_Meta_Capability_Map_Delete(
264
+					'ee_delete_venue',
265
+					array(
266
+						'Venue',
267
+						'ee_delete_published_venues',
268
+						'ee_delete_others_venues',
269
+						'ee_delete_private_venues',
270
+					)
271
+				),
272
+				new EE_Meta_Capability_Map_Delete(
273
+					'ee_delete_registration',
274
+					array('Registration', '', 'ee_delete_others_registrations', '')
275
+				),
276
+				new EE_Meta_Capability_Map_Delete(
277
+					'ee_delete_checkin',
278
+					array('Registration', '', 'ee_delete_others_checkins', '')
279
+				),
280
+				new EE_Meta_Capability_Map_Messages_Cap(
281
+					'ee_delete_message',
282
+					array('Message_Template_Group', '', 'ee_delete_others_messages', 'ee_delete_global_messages')
283
+				),
284
+				new EE_Meta_Capability_Map_Delete(
285
+					'ee_delete_default_ticket',
286
+					array('Ticket', '', 'ee_delete_others_default_tickets', '')
287
+				),
288
+				new EE_Meta_Capability_Map_Registration_Form_Cap(
289
+					'ee_delete_question',
290
+					array('Question', '', '', 'delete_system_questions')
291
+				),
292
+				new EE_Meta_Capability_Map_Registration_Form_Cap(
293
+					'ee_delete_question_group',
294
+					array('Question_Group', '', '', 'delete_system_question_groups')
295
+				),
296
+				new EE_Meta_Capability_Map_Delete(
297
+					'ee_delete_payment_method',
298
+					array('Payment_Method', '', 'ee_delete_others_payment_methods', '')
299
+				),
300
+			);
301
+		}
302
+		return $default_meta_caps;
303
+	}
304
+
305
+
306
+
307
+	/**
308
+	 * This is the callback for the wp map_meta_caps() function which allows for ensuring certain caps that act as a
309
+	 * "meta" for other caps ( i.e. ee_edit_event is a meta for ee_edit_others_events ) work as expected.
310
+	 *
311
+	 * The actual logic is carried out by implementer classes in their definition of _map_meta_caps.
312
+	 *
313
+	 * @since 4.5.0
314
+	 * @see   wp-includes/capabilities.php
315
+	 *
316
+	 * @param array  $caps    actual users capabilities
317
+	 * @param string $cap     initial capability name that is being checked (the "map" key)
318
+	 * @param int    $user_id The user id
319
+	 * @param array  $args    Adds context to the cap. Typically the object ID.
320
+	 * @return array actual users capabilities
321
+	 * @throws EE_Error
322
+	 */
323
+	public function map_meta_caps($caps, $cap, $user_id, $args)
324
+	{
325
+		if (did_action('AHEE__EE_System__load_espresso_addons__complete')) {
326
+			//loop through our _meta_caps array
327
+			foreach ($this->_meta_caps as $meta_map) {
328
+				if (! $meta_map instanceof EE_Meta_Capability_Map) {
329
+					continue;
330
+				}
331
+				// don't load models if there is no object ID in the args
332
+				if (! empty($args[0])) {
333
+					$meta_map->ensure_is_model();
334
+				}
335
+				$caps = $meta_map->map_meta_caps($caps, $cap, $user_id, $args);
336
+			}
337
+		}
338
+		return $caps;
339
+	}
340
+
341
+
342
+
343
+	/**
344
+	 * This sets up and returns the initial capabilities map for Event Espresso
345
+	 * Note this array is filtered.
346
+	 * It is assumed that all available EE capabilities are assigned to the administrator role.
347
+	 *
348
+	 * @since 4.5.0
349
+	 *
350
+	 * @return array
351
+	 */
352
+	private function _init_caps_map()
353
+	{
354
+		return apply_filters(
355
+			'FHEE__EE_Capabilities__init_caps_map__caps',
356
+			array(
357
+				'administrator'           => array(
358
+					//basic access
359
+					'ee_read_ee',
360
+					//gateways
361
+					/**
362
+					 * note that with payment method capabilities, although we've implemented
363
+					 * capability mapping which will be used for accessing payment methods owned by
364
+					 * other users.  This is not fully implemented yet in the payment method ui.
365
+					 * Currently only the "plural" caps are in active use.
366
+					 * (Specific payment method caps are in use as well).
367
+					 **/
368
+					'ee_manage_gateways',
369
+					'ee_read_payment_methods',
370
+					'ee_read_others_payment_methods',
371
+					'ee_edit_payment_methods',
372
+					'ee_edit_others_payment_methods',
373
+					'ee_delete_payment_methods',
374
+					//events
375
+					'ee_publish_events',
376
+					'ee_read_private_events',
377
+					'ee_read_others_events',
378
+					'ee_read_events',
379
+					'ee_edit_events',
380
+					'ee_edit_published_events',
381
+					'ee_edit_others_events',
382
+					'ee_edit_private_events',
383
+					'ee_delete_published_events',
384
+					'ee_delete_private_events',
385
+					'ee_delete_events',
386
+					'ee_delete_others_events',
387
+					//event categories
388
+					'ee_manage_event_categories',
389
+					'ee_edit_event_category',
390
+					'ee_delete_event_category',
391
+					'ee_assign_event_category',
392
+					//venues
393
+					'ee_publish_venues',
394
+					'ee_read_venues',
395
+					'ee_read_others_venues',
396
+					'ee_read_private_venues',
397
+					'ee_edit_venues',
398
+					'ee_edit_others_venues',
399
+					'ee_edit_published_venues',
400
+					'ee_edit_private_venues',
401
+					'ee_delete_venues',
402
+					'ee_delete_others_venues',
403
+					'ee_delete_private_venues',
404
+					'ee_delete_published_venues',
405
+					//venue categories
406
+					'ee_manage_venue_categories',
407
+					'ee_edit_venue_category',
408
+					'ee_delete_venue_category',
409
+					'ee_assign_venue_category',
410
+					//contacts
411
+					'ee_read_contacts',
412
+					'ee_edit_contacts',
413
+					'ee_delete_contacts',
414
+					//registrations
415
+					'ee_read_registrations',
416
+					'ee_read_others_registrations',
417
+					'ee_edit_registrations',
418
+					'ee_edit_others_registrations',
419
+					'ee_delete_registrations',
420
+					//checkins
421
+					'ee_read_others_checkins',
422
+					'ee_read_checkins',
423
+					'ee_edit_checkins',
424
+					'ee_edit_others_checkins',
425
+					'ee_delete_checkins',
426
+					'ee_delete_others_checkins',
427
+					//transactions && payments
428
+					'ee_read_transaction',
429
+					'ee_read_transactions',
430
+					'ee_edit_payments',
431
+					'ee_delete_payments',
432
+					//messages
433
+					'ee_read_messages',
434
+					'ee_read_others_messages',
435
+					'ee_read_global_messages',
436
+					'ee_edit_global_messages',
437
+					'ee_edit_messages',
438
+					'ee_edit_others_messages',
439
+					'ee_delete_messages',
440
+					'ee_delete_others_messages',
441
+					'ee_delete_global_messages',
442
+					'ee_send_message',
443
+					//tickets
444
+					'ee_read_default_tickets',
445
+					'ee_read_others_default_tickets',
446
+					'ee_edit_default_tickets',
447
+					'ee_edit_others_default_tickets',
448
+					'ee_delete_default_tickets',
449
+					'ee_delete_others_default_tickets',
450
+					//prices
451
+					'ee_edit_default_price',
452
+					'ee_edit_default_prices',
453
+					'ee_delete_default_price',
454
+					'ee_delete_default_prices',
455
+					'ee_edit_default_price_type',
456
+					'ee_edit_default_price_types',
457
+					'ee_delete_default_price_type',
458
+					'ee_delete_default_price_types',
459
+					'ee_read_default_prices',
460
+					'ee_read_default_price_types',
461
+					//registration form
462
+					'ee_edit_questions',
463
+					'ee_edit_system_questions',
464
+					'ee_read_questions',
465
+					'ee_delete_questions',
466
+					'ee_edit_question_groups',
467
+					'ee_read_question_groups',
468
+					'ee_edit_system_question_groups',
469
+					'ee_delete_question_groups',
470
+					//event_type taxonomy
471
+					'ee_assign_event_type',
472
+					'ee_manage_event_types',
473
+					'ee_edit_event_type',
474
+					'ee_delete_event_type',
475
+				),
476
+				'ee_events_administrator' => array(
477
+					//core wp caps
478
+					'read',
479
+					'read_private_pages',
480
+					'read_private_posts',
481
+					'edit_users',
482
+					'edit_posts',
483
+					'edit_pages',
484
+					'edit_published_posts',
485
+					'edit_published_pages',
486
+					'edit_private_pages',
487
+					'edit_private_posts',
488
+					'edit_others_posts',
489
+					'edit_others_pages',
490
+					'publish_posts',
491
+					'publish_pages',
492
+					'delete_posts',
493
+					'delete_pages',
494
+					'delete_private_pages',
495
+					'delete_private_posts',
496
+					'delete_published_pages',
497
+					'delete_published_posts',
498
+					'delete_others_posts',
499
+					'delete_others_pages',
500
+					'manage_categories',
501
+					'manage_links',
502
+					'moderate_comments',
503
+					'unfiltered_html',
504
+					'upload_files',
505
+					'export',
506
+					'import',
507
+					'list_users',
508
+					'level_1', //required if user with this role shows up in author dropdowns
509
+					//basic ee access
510
+					'ee_read_ee',
511
+					//events
512
+					'ee_publish_events',
513
+					'ee_read_private_events',
514
+					'ee_read_others_events',
515
+					'ee_read_event',
516
+					'ee_read_events',
517
+					'ee_edit_event',
518
+					'ee_edit_events',
519
+					'ee_edit_published_events',
520
+					'ee_edit_others_events',
521
+					'ee_edit_private_events',
522
+					'ee_delete_published_events',
523
+					'ee_delete_private_events',
524
+					'ee_delete_event',
525
+					'ee_delete_events',
526
+					'ee_delete_others_events',
527
+					//event categories
528
+					'ee_manage_event_categories',
529
+					'ee_edit_event_category',
530
+					'ee_delete_event_category',
531
+					'ee_assign_event_category',
532
+					//venues
533
+					'ee_publish_venues',
534
+					'ee_read_venue',
535
+					'ee_read_venues',
536
+					'ee_read_others_venues',
537
+					'ee_read_private_venues',
538
+					'ee_edit_venue',
539
+					'ee_edit_venues',
540
+					'ee_edit_others_venues',
541
+					'ee_edit_published_venues',
542
+					'ee_edit_private_venues',
543
+					'ee_delete_venue',
544
+					'ee_delete_venues',
545
+					'ee_delete_others_venues',
546
+					'ee_delete_private_venues',
547
+					'ee_delete_published_venues',
548
+					//venue categories
549
+					'ee_manage_venue_categories',
550
+					'ee_edit_venue_category',
551
+					'ee_delete_venue_category',
552
+					'ee_assign_venue_category',
553
+					//contacts
554
+					'ee_read_contacts',
555
+					'ee_edit_contacts',
556
+					'ee_delete_contacts',
557
+					//registrations
558
+					'ee_read_registrations',
559
+					'ee_read_others_registrations',
560
+					'ee_edit_registration',
561
+					'ee_edit_registrations',
562
+					'ee_edit_others_registrations',
563
+					'ee_delete_registration',
564
+					'ee_delete_registrations',
565
+					//checkins
566
+					'ee_read_others_checkins',
567
+					'ee_read_checkins',
568
+					'ee_edit_checkins',
569
+					'ee_edit_others_checkins',
570
+					'ee_delete_checkins',
571
+					'ee_delete_others_checkins',
572
+					//transactions && payments
573
+					'ee_read_transaction',
574
+					'ee_read_transactions',
575
+					'ee_edit_payments',
576
+					'ee_delete_payments',
577
+					//messages
578
+					'ee_read_messages',
579
+					'ee_read_others_messages',
580
+					'ee_read_global_messages',
581
+					'ee_edit_global_messages',
582
+					'ee_edit_messages',
583
+					'ee_edit_others_messages',
584
+					'ee_delete_messages',
585
+					'ee_delete_others_messages',
586
+					'ee_delete_global_messages',
587
+					'ee_send_message',
588
+					//tickets
589
+					'ee_read_default_tickets',
590
+					'ee_read_others_default_tickets',
591
+					'ee_edit_default_tickets',
592
+					'ee_edit_others_default_tickets',
593
+					'ee_delete_default_tickets',
594
+					'ee_delete_others_default_tickets',
595
+					//prices
596
+					'ee_edit_default_price',
597
+					'ee_edit_default_prices',
598
+					'ee_delete_default_price',
599
+					'ee_delete_default_prices',
600
+					'ee_edit_default_price_type',
601
+					'ee_edit_default_price_types',
602
+					'ee_delete_default_price_type',
603
+					'ee_delete_default_price_types',
604
+					'ee_read_default_prices',
605
+					'ee_read_default_price_types',
606
+					//registration form
607
+					'ee_edit_questions',
608
+					'ee_edit_system_questions',
609
+					'ee_read_questions',
610
+					'ee_delete_questions',
611
+					'ee_edit_question_groups',
612
+					'ee_read_question_groups',
613
+					'ee_edit_system_question_groups',
614
+					'ee_delete_question_groups',
615
+					//event_type taxonomy
616
+					'ee_assign_event_type',
617
+					'ee_manage_event_types',
618
+					'ee_edit_event_type',
619
+					'ee_delete_event_type',
620
+				)
621
+			)
622
+		);
623
+	}
624
+
625
+
626
+
627
+	/**
628
+	 * @return bool
629
+	 * @throws EE_Error
630
+	 */
631
+	private function setupCapabilitiesMap()
632
+	{
633
+		// if the initialization process hasn't even started, then we need to call init_caps()
634
+		if($this->initialized === null) {
635
+			return $this->init_caps();
636
+		}
637
+		// unless resetting, get caps from db if we haven't already
638
+		$this->capabilities_map = $this->reset || ! empty($this->capabilities_map)
639
+			? $this->capabilities_map
640
+			: get_option(self::option_name, array());
641
+		return true;
642
+	}
643
+
644
+
645
+
646
+	/**
647
+	 * @param bool $update
648
+	 * @return bool
649
+	 */
650
+	private function updateCapabilitiesMap($update = true)
651
+	{
652
+		return $update ? update_option(self::option_name, $this->capabilities_map) : false;
653
+	}
654
+
655
+
656
+
657
+	/**
658
+	 * Adds capabilities to roles.
659
+	 *
660
+	 * @since 4.9.42
661
+	 * @param array $capabilities_to_add array of capabilities to add, indexed by roles.
662
+	 *                                   Note that this should ONLY be called on activation hook
663
+	 *                                   otherwise the caps will be added on every request.
664
+	 * @return bool
665
+	 * @throws \EE_Error
666
+	 */
667
+	public function addCaps(array $capabilities_to_add)
668
+	{
669
+		// don't do anything if the capabilities map can not be initialized
670
+		if (! $this->setupCapabilitiesMap()) {
671
+			return false;
672
+		}
673
+		// and filter the array so others can get in on the fun during resets
674
+		$capabilities_to_add = apply_filters(
675
+			'FHEE__EE_Capabilities__addCaps__capabilities_to_add',
676
+			$capabilities_to_add,
677
+			$this->reset,
678
+			$this->capabilities_map
679
+		);
680
+		$update_capabilities_map = false;
681
+		// if not reset, see what caps are new for each role. if they're new, add them.
682
+		foreach ($capabilities_to_add as $role => $caps_for_role) {
683
+			if (is_array($caps_for_role)) {
684
+				foreach ($caps_for_role as $cap) {
685
+					if (
686
+						! $this->capHasBeenAddedToRole($role, $cap)
687
+						&& $this->add_cap_to_role($role, $cap, true, false)
688
+					) {
689
+						$update_capabilities_map = true;
690
+					}
691
+				}
692
+			}
693
+		}
694
+		// now let's just save the cap that has been set but only if there's been a change.
695
+		$updated = $this->updateCapabilitiesMap($update_capabilities_map);
696
+		$this->flushWpUser($updated);
697
+		do_action('AHEE__EE_Capabilities__addCaps__complete', $this->capabilities_map, $updated);
698
+		return $updated;
699
+	}
700
+
701
+
702
+
703
+	/**
704
+	 * Loops through the capabilities map and removes the role caps specified by the incoming array
705
+	 *
706
+	 * @param array $caps_map map of capabilities to be removed (indexed by roles)
707
+	 * @return bool
708
+	 * @throws \EE_Error
709
+	 */
710
+	public function removeCaps($caps_map)
711
+	{
712
+		// don't do anything if the capabilities map can not be initialized
713
+		if (! $this->setupCapabilitiesMap()) {
714
+			return false;
715
+		}
716
+		$update_capabilities_map = false;
717
+		foreach ($caps_map as $role => $caps_for_role) {
718
+			if (is_array($caps_for_role)) {
719
+				foreach ($caps_for_role as $cap) {
720
+					if ($this->capHasBeenAddedToRole($role, $cap)
721
+						&& $this->remove_cap_from_role($role, $cap, false)
722
+					) {
723
+						$update_capabilities_map = true;
724
+					}
725
+				}
726
+			}
727
+		}
728
+		// maybe resave the caps
729
+		$updated = $this->updateCapabilitiesMap($update_capabilities_map);
730
+		$this->flushWpUser($updated);
731
+		return $updated;
732
+	}
733
+
734
+
735
+	/**
736
+	 * This ensures that the WP User object cached on the $current_user global in WP has the latest capabilities from
737
+	 * the roles on that user.
738
+	 *
739
+	 * @param bool $flush  Default is to flush the WP_User object.  If false, then this method effectively does nothing.
740
+	 */
741
+	private function flushWpUser($flush = true)
742
+	{
743
+		if ($flush) {
744
+			$user = wp_get_current_user();
745
+			if ($user instanceof WP_User) {
746
+				$user->get_role_caps();
747
+			}
748
+		}
749
+	}
750
+
751
+
752
+
753
+	/**
754
+	 * This method sets a capability on a role.  Note this should only be done on activation, or if you have something
755
+	 * specific to prevent the cap from being added on every page load (adding caps are persistent to the db). Note.
756
+	 * this is a wrapper for $wp_role->add_cap()
757
+	 *
758
+	 * @see   wp-includes/capabilities.php
759
+	 * @since 4.5.0
760
+	 * @param string|WP_Role $role  A WordPress role the capability is being added to
761
+	 * @param string         $cap   The capability being added to the role
762
+	 * @param bool           $grant Whether to grant access to this cap on this role.
763
+	 * @param bool           $update_capabilities_map
764
+	 * @return bool
765
+	 * @throws \EE_Error
766
+	 */
767
+	public function add_cap_to_role($role, $cap, $grant = true, $update_capabilities_map = true)
768
+	{
769
+		// capture incoming value for $role because we may need it to create a new WP_Role
770
+		$orig_role = $role;
771
+		$role = $role instanceof WP_Role ? $role : get_role($role);
772
+		//if the role isn't available then we create it.
773
+		if (! $role instanceof WP_Role) {
774
+			// if a plugin wants to create a specific role name then they should create the role before
775
+			// EE_Capabilities does.  Otherwise this function will create the role name from the slug:
776
+			// - removes any `ee_` namespacing from the start of the slug.
777
+			// - replaces `_` with ` ` (empty space).
778
+			// - sentence case on the resulting string.
779
+			$role_label = ucwords(str_replace(array('ee_', '_'), array('', ' '), $orig_role));
780
+			$role = add_role($orig_role, $role_label);
781
+		}
782
+		if ($role instanceof WP_Role) {
783
+			// don't do anything if the capabilities map can not be initialized
784
+			if (! $this->setupCapabilitiesMap()) {
785
+				return false;
786
+			}
787
+			if (! $this->capHasBeenAddedToRole($role->name, $cap)) {
788
+				$role->add_cap($cap, $grant);
789
+				$this->capabilities_map[ $role->name ][] = $cap;
790
+				$this->updateCapabilitiesMap($update_capabilities_map);
791
+				return true;
792
+			}
793
+		}
794
+		return false;
795
+	}
796
+
797
+
798
+
799
+	/**
800
+	 * Functions similarly to add_cap_to_role except removes cap from given role.
801
+	 * Wrapper for $wp_role->remove_cap()
802
+	 *
803
+	 * @see   wp-includes/capabilities.php
804
+	 * @since 4.5.0
805
+	 * @param string|WP_Role $role A WordPress role the capability is being removed from.
806
+	 * @param string         $cap  The capability being removed
807
+	 * @param bool           $update_capabilities_map
808
+	 * @return bool
809
+	 * @throws \EE_Error
810
+	 */
811
+	public function remove_cap_from_role($role, $cap, $update_capabilities_map = true)
812
+	{
813
+		// don't do anything if the capabilities map can not be initialized
814
+		if (! $this->setupCapabilitiesMap()) {
815
+			return false;
816
+		}
817
+
818
+		$role = $role instanceof WP_Role ? $role : get_role($role);
819
+		if ($role instanceof WP_Role && $index = $this->capHasBeenAddedToRole($role->name, $cap, true)) {
820
+			$role->remove_cap($cap);
821
+			unset($this->capabilities_map[ $role->name ][ $index ]);
822
+			$this->updateCapabilitiesMap($update_capabilities_map);
823
+			return true;
824
+		}
825
+		return false;
826
+	}
827
+
828
+
829
+
830
+	/**
831
+	 * @param string $role_name
832
+	 * @param string $cap
833
+	 * @param bool   $get_index
834
+	 * @return bool|mixed
835
+	 */
836
+	private function capHasBeenAddedToRole($role_name='', $cap='', $get_index = false)
837
+	{
838
+		if (
839
+			isset($this->capabilities_map[$role_name])
840
+			&& ($index = array_search($cap, $this->capabilities_map[$role_name], true)) !== false
841
+		) {
842
+			return $get_index ? $index : true;
843
+		}
844
+		return false;
845
+	}
846
+
847
+
848
+
849
+	/**
850
+	 * Wrapper for the native WP current_user_can() method.
851
+	 * This is provided as a handy method for a couple things:
852
+	 * 1. Using the context string it allows for targeted filtering by addons for a specific check (without having to
853
+	 * write those filters wherever current_user_can is called).
854
+	 * 2. Explicit passing of $id from a given context ( useful in the cases of map_meta_cap filters )
855
+	 *
856
+	 * @since 4.5.0
857
+	 *
858
+	 * @param string $cap     The cap being checked.
859
+	 * @param string $context The context where the current_user_can is being called from.
860
+	 * @param int    $id      Optional. Id for item where current_user_can is being called from (used in map_meta_cap()
861
+	 *                        filters.
862
+	 *
863
+	 * @return bool  Whether user can or not.
864
+	 */
865
+	public function current_user_can($cap, $context, $id = 0)
866
+	{
867
+		//apply filters (both a global on just the cap, and context specific.  Global overrides context specific)
868
+		$filtered_cap = apply_filters('FHEE__EE_Capabilities__current_user_can__cap__' . $context, $cap, $id);
869
+		$filtered_cap = apply_filters(
870
+			'FHEE__EE_Capabilities__current_user_can__cap',
871
+			$filtered_cap,
872
+			$context,
873
+			$cap,
874
+			$id
875
+		);
876
+		return ! empty($id)
877
+			? current_user_can($filtered_cap, $id)
878
+			: current_user_can($filtered_cap);
879
+	}
880
+
881
+
882
+
883
+	/**
884
+	 * This is a wrapper for the WP user_can() function and follows the same style as the other wrappers in this class.
885
+	 *
886
+	 * @param int|WP_User $user    Either the user_id or a WP_User object
887
+	 * @param string      $cap     The capability string being checked
888
+	 * @param string      $context The context where the user_can is being called from (used in filters).
889
+	 * @param int         $id      Optional. Id for item where user_can is being called from ( used in map_meta_cap()
890
+	 *                             filters)
891
+	 *
892
+	 * @return bool Whether user can or not.
893
+	 */
894
+	public function user_can($user, $cap, $context, $id = 0)
895
+	{
896
+		//apply filters (both a global on just the cap, and context specific.  Global overrides context specific)
897
+		$filtered_cap = apply_filters('FHEE__EE_Capabilities__user_can__cap__' . $context, $cap, $user, $id);
898
+		$filtered_cap = apply_filters(
899
+			'FHEE__EE_Capabilities__user_can__cap',
900
+			$filtered_cap,
901
+			$context,
902
+			$cap,
903
+			$user,
904
+			$id
905
+		);
906
+		return ! empty($id)
907
+			? user_can($user, $filtered_cap, $id)
908
+			: user_can($user, $filtered_cap);
909
+	}
910
+
911
+
912
+
913
+	/**
914
+	 * Wrapper for the native WP current_user_can_for_blog() method.
915
+	 * This is provided as a handy method for a couple things:
916
+	 * 1. Using the context string it allows for targeted filtering by addons for a specific check (without having to
917
+	 * write those filters wherever current_user_can is called).
918
+	 * 2. Explicit passing of $id from a given context ( useful in the cases of map_meta_cap filters )
919
+	 *
920
+	 * @since 4.5.0
921
+	 *
922
+	 * @param int    $blog_id The blog id that is being checked for.
923
+	 * @param string $cap     The cap being checked.
924
+	 * @param string $context The context where the current_user_can is being called from.
925
+	 * @param int    $id      Optional. Id for item where current_user_can is being called from (used in map_meta_cap()
926
+	 *                        filters.
927
+	 *
928
+	 * @return bool  Whether user can or not.
929
+	 */
930
+	public function current_user_can_for_blog($blog_id, $cap, $context, $id = 0)
931
+	{
932
+		$user_can = ! empty($id)
933
+			? current_user_can_for_blog($blog_id, $cap, $id)
934
+			: current_user_can($blog_id, $cap);
935
+		//apply filters (both a global on just the cap, and context specific.  Global overrides context specific)
936
+		$user_can = apply_filters(
937
+			'FHEE__EE_Capabilities__current_user_can_for_blog__user_can__' . $context,
938
+			$user_can,
939
+			$blog_id,
940
+			$cap,
941
+			$id
942
+		);
943
+		$user_can = apply_filters(
944
+			'FHEE__EE_Capabilities__current_user_can_for_blog__user_can',
945
+			$user_can,
946
+			$context,
947
+			$blog_id,
948
+			$cap,
949
+			$id
950
+		);
951
+		return $user_can;
952
+	}
953
+
954
+
955
+
956
+	/**
957
+	 * This helper method just returns an array of registered EE capabilities.
958
+	 *
959
+	 * @since 4.5.0
960
+	 * @param string $role If empty then the entire role/capability map is returned.
961
+	 *                     Otherwise just the capabilities for the given role are returned.
962
+	 * @return array
963
+	 * @throws EE_Error
964
+	 */
965
+	public function get_ee_capabilities($role = 'administrator')
966
+	{
967
+		if (! $this->initialized) {
968
+			$this->init_caps();
969
+		}
970
+		if (empty($role)) {
971
+			return $this->capabilities_map;
972
+		}
973
+		return isset($this->capabilities_map[ $role ])
974
+			? $this->capabilities_map[ $role ]
975
+			: array();
976
+	}
977
+
978
+
979
+
980
+	/**
981
+	 * @deprecated 4.9.42
982
+	 * @param bool  $reset      If you need to reset Event Espresso's capabilities,
983
+	 *                          then please use the init_caps() method with the "$reset" parameter set to "true"
984
+	 * @param array $caps_map   Optional.
985
+	 *                          Can be used to send a custom map of roles and capabilities for setting them up.
986
+	 *                          Note that this should ONLY be called on activation hook or some other one-time
987
+	 *                          task otherwise the caps will be added on every request.
988
+	 * @return void
989
+	 * @throws EE_Error
990
+	 */
991
+	public function init_role_caps($reset = false, $caps_map = array())
992
+	{
993
+		// If this method is called directly and reset is set as 'true',
994
+		// then display a doing it wrong notice, because we want resets to go through init_caps()
995
+		// to guarantee that everything is set up correctly.
996
+		// This prevents the capabilities map getting reset incorrectly by direct calls to this method.
997
+		if ($reset) {
998
+			EE_Error::doing_it_wrong(
999
+				__METHOD__,
1000
+				sprintf(
1001
+					esc_html__(
1002
+						'The "%1$s" parameter for the "%2$s" method is deprecated. If you need to reset Event Espresso\'s capabilities, then please use the "%3$s" method with the "%1$s" parameter set to "%4$s".',
1003
+						'event_espresso'
1004
+					),
1005
+					'$reset',
1006
+					__METHOD__ . '()',
1007
+					'EE_Capabilities::init_caps()',
1008
+					'true'
1009
+				),
1010
+				'4.9.42',
1011
+				'5.0.0'
1012
+			);
1013
+		}
1014
+		$this->addCaps($caps_map);
1015
+	}
1016 1016
 
1017 1017
 
1018 1018
 
@@ -1033,142 +1033,142 @@  discard block
 block discarded – undo
1033 1033
 abstract class EE_Meta_Capability_Map
1034 1034
 {
1035 1035
 
1036
-    public $meta_cap;
1037
-
1038
-    /**
1039
-     * @var EEM_Base
1040
-     */
1041
-    protected $_model;
1042
-
1043
-    protected $_model_name;
1044
-
1045
-    public $published_cap = '';
1046
-
1047
-    public $others_cap = '';
1048
-
1049
-    public $private_cap = '';
1050
-
1051
-
1052
-    /**
1053
-     * constructor.
1054
-     * Receives the setup arguments for the map.
1055
-     *
1056
-     * @since                        4.5.0
1057
-     *
1058
-     * @param string $meta_cap   What meta capability is this mapping.
1059
-     * @param array  $map_values array {
1060
-     *                           //array of values that MUST match a count of 4.  It's okay to send an empty string for
1061
-     *                           capabilities that don't get mapped to.
1062
-     *
1063
-     * @type         $map_values [0] string A string representing the model name. Required.  String's
1064
-     *                               should always be used when Menu Maps are registered via the
1065
-     *                               plugin API as models are not allowed to be instantiated when
1066
-     *                               in maintenance mode 2 (migrations).
1067
-     * @type         $map_values [1] string represents the capability used for published. Optional.
1068
-     * @type         $map_values [2] string represents the capability used for "others". Optional.
1069
-     * @type         $map_values [3] string represents the capability used for private. Optional.
1070
-     *                               }
1071
-     * @throws EE_Error
1072
-     */
1073
-    public function __construct($meta_cap, $map_values)
1074
-    {
1075
-        $this->meta_cap = $meta_cap;
1076
-        //verify there are four args in the $map_values array;
1077
-        if (count($map_values) !== 4) {
1078
-            throw new EE_Error(
1079
-                sprintf(
1080
-                    __(
1081
-                        'Incoming $map_values array should have a count of four values in it.  This is what was given: %s',
1082
-                        'event_espresso'
1083
-                    ),
1084
-                    '<br>' . print_r($map_values, true)
1085
-                )
1086
-            );
1087
-        }
1088
-        //set properties
1089
-        $this->_model = null;
1090
-        $this->_model_name = $map_values[0];
1091
-        $this->published_cap = (string)$map_values[1];
1092
-        $this->others_cap = (string)$map_values[2];
1093
-        $this->private_cap = (string)$map_values[3];
1094
-    }
1095
-
1096
-    /**
1097
-     * Makes it so this object stops filtering caps
1098
-     */
1099
-    public function remove_filters()
1100
-    {
1101
-        remove_filter('map_meta_cap', array($this, 'map_meta_caps'), 10);
1102
-    }
1103
-
1104
-
1105
-    /**
1106
-     * This method ensures that the $model property is converted from the model name string to a proper EEM_Base class
1107
-     *
1108
-     * @since 4.5.0
1109
-     * @throws EE_Error
1110
-     *
1111
-     * @return void
1112
-     */
1113
-    public function ensure_is_model()
1114
-    {
1115
-        //is it already instantiated?
1116
-        if ($this->_model instanceof EEM_Base) {
1117
-            return;
1118
-        }
1119
-        //ensure model name is string
1120
-        $this->_model_name = (string)$this->_model_name;
1121
-        //error proof if the name has EEM in it
1122
-        $this->_model_name = str_replace('EEM', '', $this->_model_name);
1123
-        $this->_model = EE_Registry::instance()->load_model($this->_model_name);
1124
-        if (! $this->_model instanceof EEM_Base) {
1125
-            throw new EE_Error(
1126
-                sprintf(
1127
-                    __(
1128
-                        'This string passed in to %s to represent a EEM_Base model class was not able to be used to instantiate the class.   Please ensure that the string is a match for the EEM_Base model name (not including the EEM_ part). This was given: %s',
1129
-                        'event_espresso'
1130
-                    ),
1131
-                    get_class($this),
1132
-                    $this->_model
1133
-                )
1134
-            );
1135
-        }
1136
-    }
1137
-
1138
-
1139
-    /**
1140
-     *
1141
-     * @see   EE_Meta_Capability_Map::_map_meta_caps() for docs on params.
1142
-     * @since 4.6.x
1143
-     *
1144
-     * @param $caps
1145
-     * @param $cap
1146
-     * @param $user_id
1147
-     * @param $args
1148
-     *
1149
-     * @return array
1150
-     */
1151
-    public function map_meta_caps($caps, $cap, $user_id, $args)
1152
-    {
1153
-        return $this->_map_meta_caps($caps, $cap, $user_id, $args);
1154
-    }
1155
-
1156
-
1157
-    /**
1158
-     * This is the callback for the wp map_meta_caps() function which allows for ensuring certain caps that act as a
1159
-     * "meta" for other caps ( i.e. ee_edit_event is a meta for ee_edit_others_events ) work as expected.
1160
-     *
1161
-     * @since 4.5.0
1162
-     * @see   wp-includes/capabilities.php
1163
-     *
1164
-     * @param array  $caps    actual users capabilities
1165
-     * @param string $cap     initial capability name that is being checked (the "map" key)
1166
-     * @param int    $user_id The user id
1167
-     * @param array  $args    Adds context to the cap. Typically the object ID.
1168
-     *
1169
-     * @return array   actual users capabilities
1170
-     */
1171
-    abstract protected function _map_meta_caps($caps, $cap, $user_id, $args);
1036
+	public $meta_cap;
1037
+
1038
+	/**
1039
+	 * @var EEM_Base
1040
+	 */
1041
+	protected $_model;
1042
+
1043
+	protected $_model_name;
1044
+
1045
+	public $published_cap = '';
1046
+
1047
+	public $others_cap = '';
1048
+
1049
+	public $private_cap = '';
1050
+
1051
+
1052
+	/**
1053
+	 * constructor.
1054
+	 * Receives the setup arguments for the map.
1055
+	 *
1056
+	 * @since                        4.5.0
1057
+	 *
1058
+	 * @param string $meta_cap   What meta capability is this mapping.
1059
+	 * @param array  $map_values array {
1060
+	 *                           //array of values that MUST match a count of 4.  It's okay to send an empty string for
1061
+	 *                           capabilities that don't get mapped to.
1062
+	 *
1063
+	 * @type         $map_values [0] string A string representing the model name. Required.  String's
1064
+	 *                               should always be used when Menu Maps are registered via the
1065
+	 *                               plugin API as models are not allowed to be instantiated when
1066
+	 *                               in maintenance mode 2 (migrations).
1067
+	 * @type         $map_values [1] string represents the capability used for published. Optional.
1068
+	 * @type         $map_values [2] string represents the capability used for "others". Optional.
1069
+	 * @type         $map_values [3] string represents the capability used for private. Optional.
1070
+	 *                               }
1071
+	 * @throws EE_Error
1072
+	 */
1073
+	public function __construct($meta_cap, $map_values)
1074
+	{
1075
+		$this->meta_cap = $meta_cap;
1076
+		//verify there are four args in the $map_values array;
1077
+		if (count($map_values) !== 4) {
1078
+			throw new EE_Error(
1079
+				sprintf(
1080
+					__(
1081
+						'Incoming $map_values array should have a count of four values in it.  This is what was given: %s',
1082
+						'event_espresso'
1083
+					),
1084
+					'<br>' . print_r($map_values, true)
1085
+				)
1086
+			);
1087
+		}
1088
+		//set properties
1089
+		$this->_model = null;
1090
+		$this->_model_name = $map_values[0];
1091
+		$this->published_cap = (string)$map_values[1];
1092
+		$this->others_cap = (string)$map_values[2];
1093
+		$this->private_cap = (string)$map_values[3];
1094
+	}
1095
+
1096
+	/**
1097
+	 * Makes it so this object stops filtering caps
1098
+	 */
1099
+	public function remove_filters()
1100
+	{
1101
+		remove_filter('map_meta_cap', array($this, 'map_meta_caps'), 10);
1102
+	}
1103
+
1104
+
1105
+	/**
1106
+	 * This method ensures that the $model property is converted from the model name string to a proper EEM_Base class
1107
+	 *
1108
+	 * @since 4.5.0
1109
+	 * @throws EE_Error
1110
+	 *
1111
+	 * @return void
1112
+	 */
1113
+	public function ensure_is_model()
1114
+	{
1115
+		//is it already instantiated?
1116
+		if ($this->_model instanceof EEM_Base) {
1117
+			return;
1118
+		}
1119
+		//ensure model name is string
1120
+		$this->_model_name = (string)$this->_model_name;
1121
+		//error proof if the name has EEM in it
1122
+		$this->_model_name = str_replace('EEM', '', $this->_model_name);
1123
+		$this->_model = EE_Registry::instance()->load_model($this->_model_name);
1124
+		if (! $this->_model instanceof EEM_Base) {
1125
+			throw new EE_Error(
1126
+				sprintf(
1127
+					__(
1128
+						'This string passed in to %s to represent a EEM_Base model class was not able to be used to instantiate the class.   Please ensure that the string is a match for the EEM_Base model name (not including the EEM_ part). This was given: %s',
1129
+						'event_espresso'
1130
+					),
1131
+					get_class($this),
1132
+					$this->_model
1133
+				)
1134
+			);
1135
+		}
1136
+	}
1137
+
1138
+
1139
+	/**
1140
+	 *
1141
+	 * @see   EE_Meta_Capability_Map::_map_meta_caps() for docs on params.
1142
+	 * @since 4.6.x
1143
+	 *
1144
+	 * @param $caps
1145
+	 * @param $cap
1146
+	 * @param $user_id
1147
+	 * @param $args
1148
+	 *
1149
+	 * @return array
1150
+	 */
1151
+	public function map_meta_caps($caps, $cap, $user_id, $args)
1152
+	{
1153
+		return $this->_map_meta_caps($caps, $cap, $user_id, $args);
1154
+	}
1155
+
1156
+
1157
+	/**
1158
+	 * This is the callback for the wp map_meta_caps() function which allows for ensuring certain caps that act as a
1159
+	 * "meta" for other caps ( i.e. ee_edit_event is a meta for ee_edit_others_events ) work as expected.
1160
+	 *
1161
+	 * @since 4.5.0
1162
+	 * @see   wp-includes/capabilities.php
1163
+	 *
1164
+	 * @param array  $caps    actual users capabilities
1165
+	 * @param string $cap     initial capability name that is being checked (the "map" key)
1166
+	 * @param int    $user_id The user id
1167
+	 * @param array  $args    Adds context to the cap. Typically the object ID.
1168
+	 *
1169
+	 * @return array   actual users capabilities
1170
+	 */
1171
+	abstract protected function _map_meta_caps($caps, $cap, $user_id, $args);
1172 1172
 }
1173 1173
 
1174 1174
 
@@ -1184,81 +1184,81 @@  discard block
 block discarded – undo
1184 1184
 class EE_Meta_Capability_Map_Edit extends EE_Meta_Capability_Map
1185 1185
 {
1186 1186
 
1187
-    /**
1188
-     * This is the callback for the wp map_meta_caps() function which allows for ensuring certain caps that act as a
1189
-     * "meta" for other caps ( i.e. ee_edit_event is a meta for ee_edit_others_events ) work as expected.
1190
-     *
1191
-     * @since 4.5.0
1192
-     * @see   wp-includes/capabilities.php
1193
-     *
1194
-     * @param array  $caps    actual users capabilities
1195
-     * @param string $cap     initial capability name that is being checked (the "map" key)
1196
-     * @param int    $user_id The user id
1197
-     * @param array  $args    Adds context to the cap. Typically the object ID.
1198
-     *
1199
-     * @return array   actual users capabilities
1200
-     */
1201
-    protected function _map_meta_caps($caps, $cap, $user_id, $args)
1202
-    {
1203
-        //only process if we're checking our mapped_cap
1204
-        if ($cap !== $this->meta_cap) {
1205
-            return $caps;
1206
-        }
1207
-
1208
-        //okay it is a meta cap so let's first remove that cap from the $caps array.
1209
-        if (($key = array_search($cap, $caps)) !== false) {
1210
-            unset($caps[$key]);
1211
-        }
1212
-
1213
-        //cast $user_id to int for later explicit comparisons
1214
-        $user_id = (int) $user_id;
1215
-
1216
-        /** @var EE_Base_Class $obj */
1217
-        $obj = ! empty($args[0]) ? $this->_model->get_one_by_ID($args[0]) : null;
1218
-        //if no obj then let's just do cap
1219
-        if (! $obj instanceof EE_Base_Class) {
1220
-            $caps[] = 'do_not_allow';
1221
-            return $caps;
1222
-        }
1223
-        $caps[] = $cap . 's';
1224
-        if ($obj instanceof EE_CPT_Base) {
1225
-            //if the item author is set and the user is the author...
1226
-            if ($obj->wp_user() && $user_id === $obj->wp_user()) {
1227
-                //if obj is published...
1228
-                if ($obj->status() === 'publish') {
1229
-                    $caps[] = $this->published_cap;
1230
-                }
1231
-            } else {
1232
-                //the user is trying to edit someone else's obj
1233
-                if (! empty($this->others_cap)) {
1234
-                    $caps[] = $this->others_cap;
1235
-                }
1236
-                if (! empty($this->published_cap) && $obj->status() === 'publish') {
1237
-                    $caps[] = $this->published_cap;
1238
-                } elseif (! empty($this->private_cap) && $obj->status() === 'private') {
1239
-                    $caps[] = $this->private_cap;
1240
-                }
1241
-            }
1242
-        } else {
1243
-            //not a cpt object so handled differently
1244
-            $has_cap = false;
1245
-            try {
1246
-                $has_cap = method_exists($obj, 'wp_user')
1247
-                           && $obj->wp_user()
1248
-                           && $obj->wp_user() === $user_id;
1249
-            } catch (Exception $e) {
1250
-                if (WP_DEBUG) {
1251
-                    EE_Error::add_error($e->getMessage(), __FILE__, __FUNCTION__, __LINE__);
1252
-                }
1253
-            }
1254
-            if (! $has_cap) {
1255
-                if (! empty($this->others_cap)) {
1256
-                    $caps[] = $this->others_cap;
1257
-                }
1258
-            }
1259
-        }
1260
-        return $caps;
1261
-    }
1187
+	/**
1188
+	 * This is the callback for the wp map_meta_caps() function which allows for ensuring certain caps that act as a
1189
+	 * "meta" for other caps ( i.e. ee_edit_event is a meta for ee_edit_others_events ) work as expected.
1190
+	 *
1191
+	 * @since 4.5.0
1192
+	 * @see   wp-includes/capabilities.php
1193
+	 *
1194
+	 * @param array  $caps    actual users capabilities
1195
+	 * @param string $cap     initial capability name that is being checked (the "map" key)
1196
+	 * @param int    $user_id The user id
1197
+	 * @param array  $args    Adds context to the cap. Typically the object ID.
1198
+	 *
1199
+	 * @return array   actual users capabilities
1200
+	 */
1201
+	protected function _map_meta_caps($caps, $cap, $user_id, $args)
1202
+	{
1203
+		//only process if we're checking our mapped_cap
1204
+		if ($cap !== $this->meta_cap) {
1205
+			return $caps;
1206
+		}
1207
+
1208
+		//okay it is a meta cap so let's first remove that cap from the $caps array.
1209
+		if (($key = array_search($cap, $caps)) !== false) {
1210
+			unset($caps[$key]);
1211
+		}
1212
+
1213
+		//cast $user_id to int for later explicit comparisons
1214
+		$user_id = (int) $user_id;
1215
+
1216
+		/** @var EE_Base_Class $obj */
1217
+		$obj = ! empty($args[0]) ? $this->_model->get_one_by_ID($args[0]) : null;
1218
+		//if no obj then let's just do cap
1219
+		if (! $obj instanceof EE_Base_Class) {
1220
+			$caps[] = 'do_not_allow';
1221
+			return $caps;
1222
+		}
1223
+		$caps[] = $cap . 's';
1224
+		if ($obj instanceof EE_CPT_Base) {
1225
+			//if the item author is set and the user is the author...
1226
+			if ($obj->wp_user() && $user_id === $obj->wp_user()) {
1227
+				//if obj is published...
1228
+				if ($obj->status() === 'publish') {
1229
+					$caps[] = $this->published_cap;
1230
+				}
1231
+			} else {
1232
+				//the user is trying to edit someone else's obj
1233
+				if (! empty($this->others_cap)) {
1234
+					$caps[] = $this->others_cap;
1235
+				}
1236
+				if (! empty($this->published_cap) && $obj->status() === 'publish') {
1237
+					$caps[] = $this->published_cap;
1238
+				} elseif (! empty($this->private_cap) && $obj->status() === 'private') {
1239
+					$caps[] = $this->private_cap;
1240
+				}
1241
+			}
1242
+		} else {
1243
+			//not a cpt object so handled differently
1244
+			$has_cap = false;
1245
+			try {
1246
+				$has_cap = method_exists($obj, 'wp_user')
1247
+						   && $obj->wp_user()
1248
+						   && $obj->wp_user() === $user_id;
1249
+			} catch (Exception $e) {
1250
+				if (WP_DEBUG) {
1251
+					EE_Error::add_error($e->getMessage(), __FILE__, __FUNCTION__, __LINE__);
1252
+				}
1253
+			}
1254
+			if (! $has_cap) {
1255
+				if (! empty($this->others_cap)) {
1256
+					$caps[] = $this->others_cap;
1257
+				}
1258
+			}
1259
+		}
1260
+		return $caps;
1261
+	}
1262 1262
 }
1263 1263
 
1264 1264
 
@@ -1275,24 +1275,24 @@  discard block
 block discarded – undo
1275 1275
 class EE_Meta_Capability_Map_Delete extends EE_Meta_Capability_Map_Edit
1276 1276
 {
1277 1277
 
1278
-    /**
1279
-     * This is the callback for the wp map_meta_caps() function which allows for ensuring certain caps that act as a
1280
-     * "meta" for other caps ( i.e. ee_edit_event is a meta for ee_edit_others_events ) work as expected.
1281
-     *
1282
-     * @since 4.5.0
1283
-     * @see   wp-includes/capabilities.php
1284
-     *
1285
-     * @param array  $caps    actual users capabilities
1286
-     * @param string $cap     initial capability name that is being checked (the "map" key)
1287
-     * @param int    $user_id The user id
1288
-     * @param array  $args    Adds context to the cap. Typically the object ID.
1289
-     *
1290
-     * @return array   actual users capabilities
1291
-     */
1292
-    protected function _map_meta_caps($caps, $cap, $user_id, $args)
1293
-    {
1294
-        return parent::_map_meta_caps($caps, $cap, $user_id, $args);
1295
-    }
1278
+	/**
1279
+	 * This is the callback for the wp map_meta_caps() function which allows for ensuring certain caps that act as a
1280
+	 * "meta" for other caps ( i.e. ee_edit_event is a meta for ee_edit_others_events ) work as expected.
1281
+	 *
1282
+	 * @since 4.5.0
1283
+	 * @see   wp-includes/capabilities.php
1284
+	 *
1285
+	 * @param array  $caps    actual users capabilities
1286
+	 * @param string $cap     initial capability name that is being checked (the "map" key)
1287
+	 * @param int    $user_id The user id
1288
+	 * @param array  $args    Adds context to the cap. Typically the object ID.
1289
+	 *
1290
+	 * @return array   actual users capabilities
1291
+	 */
1292
+	protected function _map_meta_caps($caps, $cap, $user_id, $args)
1293
+	{
1294
+		return parent::_map_meta_caps($caps, $cap, $user_id, $args);
1295
+	}
1296 1296
 }
1297 1297
 
1298 1298
 
@@ -1308,85 +1308,85 @@  discard block
 block discarded – undo
1308 1308
 class EE_Meta_Capability_Map_Read extends EE_Meta_Capability_Map
1309 1309
 {
1310 1310
 
1311
-    /**
1312
-     * This is the callback for the wp map_meta_caps() function which allows for ensuring certain caps that act as a
1313
-     * "meta" for other caps ( i.e. ee_edit_event is a meta for ee_edit_others_events ) work as expected.
1314
-     *
1315
-     * @since 4.5.0
1316
-     * @see   wp-includes/capabilities.php
1317
-     *
1318
-     * @param array  $caps    actual users capabilities
1319
-     * @param string $cap     initial capability name that is being checked (the "map" key)
1320
-     * @param int    $user_id The user id
1321
-     * @param array  $args    Adds context to the cap. Typically the object ID.
1322
-     *
1323
-     * @return array   actual users capabilities
1324
-     */
1325
-    protected function _map_meta_caps($caps, $cap, $user_id, $args)
1326
-    {
1327
-        //only process if we're checking our mapped cap;
1328
-        if ($cap !== $this->meta_cap) {
1329
-            return $caps;
1330
-        }
1331
-
1332
-        //okay it is a meta cap so let's first remove that cap from the $caps array.
1333
-        if (($key = array_search($cap, $caps)) !== false) {
1334
-            unset($caps[$key]);
1335
-        }
1336
-
1337
-        //cast $user_id to int for later explicit comparisons
1338
-        $user_id = (int) $user_id;
1339
-
1340
-        $obj = ! empty($args[0]) ? $this->_model->get_one_by_ID($args[0]) : null;
1341
-        //if no obj then let's just do cap
1342
-        if (! $obj instanceof EE_Base_Class) {
1343
-            $caps[] = 'do_not_allow';
1344
-            return $caps;
1345
-        }
1346
-
1347
-        $caps[] = $cap . 's';
1348
-        if ($obj instanceof EE_CPT_Base) {
1349
-            $status_obj = get_post_status_object($obj->status());
1350
-            if ($status_obj->public) {
1351
-                return $caps;
1352
-            }
1353
-            //if the item author is set and the user is not the author...
1354
-            if ($obj->wp_user() && $obj->wp_user() !== $user_id) {
1355
-                if (! empty($this->others_cap)) {
1356
-                    $caps[] = $this->others_cap;
1357
-                }
1358
-            }
1359
-            //yes this means that if users created the private post, they are able to see it regardless of private cap.
1360
-            if ($status_obj->private
1361
-                && ! empty($this->private_cap)
1362
-                && $obj->wp_user() !== $user_id
1363
-            ) {
1364
-                //the user is trying to view a private object for an object they don't own.
1365
-                $caps[] = $this->private_cap;
1366
-            }
1367
-        } else {
1368
-            //not a cpt object so handled differently
1369
-            $has_cap = false;
1370
-            try {
1371
-                $has_cap = method_exists($obj, 'wp_user')
1372
-                           && $obj->wp_user()
1373
-                           && $obj->wp_user() === $user_id;
1374
-            } catch (Exception $e) {
1375
-                if (WP_DEBUG) {
1376
-                    EE_Error::add_error($e->getMessage(), __FILE__, __FUNCTION__, __LINE__);
1377
-                }
1378
-            }
1379
-            if (! $has_cap) {
1380
-                if (! empty($this->private_cap)) {
1381
-                    $caps[] = $this->private_cap;
1382
-                }
1383
-                if (! empty($this->others_cap)) {
1384
-                    $caps[] = $this->others_cap;
1385
-                }
1386
-            }
1387
-        }
1388
-        return $caps;
1389
-    }
1311
+	/**
1312
+	 * This is the callback for the wp map_meta_caps() function which allows for ensuring certain caps that act as a
1313
+	 * "meta" for other caps ( i.e. ee_edit_event is a meta for ee_edit_others_events ) work as expected.
1314
+	 *
1315
+	 * @since 4.5.0
1316
+	 * @see   wp-includes/capabilities.php
1317
+	 *
1318
+	 * @param array  $caps    actual users capabilities
1319
+	 * @param string $cap     initial capability name that is being checked (the "map" key)
1320
+	 * @param int    $user_id The user id
1321
+	 * @param array  $args    Adds context to the cap. Typically the object ID.
1322
+	 *
1323
+	 * @return array   actual users capabilities
1324
+	 */
1325
+	protected function _map_meta_caps($caps, $cap, $user_id, $args)
1326
+	{
1327
+		//only process if we're checking our mapped cap;
1328
+		if ($cap !== $this->meta_cap) {
1329
+			return $caps;
1330
+		}
1331
+
1332
+		//okay it is a meta cap so let's first remove that cap from the $caps array.
1333
+		if (($key = array_search($cap, $caps)) !== false) {
1334
+			unset($caps[$key]);
1335
+		}
1336
+
1337
+		//cast $user_id to int for later explicit comparisons
1338
+		$user_id = (int) $user_id;
1339
+
1340
+		$obj = ! empty($args[0]) ? $this->_model->get_one_by_ID($args[0]) : null;
1341
+		//if no obj then let's just do cap
1342
+		if (! $obj instanceof EE_Base_Class) {
1343
+			$caps[] = 'do_not_allow';
1344
+			return $caps;
1345
+		}
1346
+
1347
+		$caps[] = $cap . 's';
1348
+		if ($obj instanceof EE_CPT_Base) {
1349
+			$status_obj = get_post_status_object($obj->status());
1350
+			if ($status_obj->public) {
1351
+				return $caps;
1352
+			}
1353
+			//if the item author is set and the user is not the author...
1354
+			if ($obj->wp_user() && $obj->wp_user() !== $user_id) {
1355
+				if (! empty($this->others_cap)) {
1356
+					$caps[] = $this->others_cap;
1357
+				}
1358
+			}
1359
+			//yes this means that if users created the private post, they are able to see it regardless of private cap.
1360
+			if ($status_obj->private
1361
+				&& ! empty($this->private_cap)
1362
+				&& $obj->wp_user() !== $user_id
1363
+			) {
1364
+				//the user is trying to view a private object for an object they don't own.
1365
+				$caps[] = $this->private_cap;
1366
+			}
1367
+		} else {
1368
+			//not a cpt object so handled differently
1369
+			$has_cap = false;
1370
+			try {
1371
+				$has_cap = method_exists($obj, 'wp_user')
1372
+						   && $obj->wp_user()
1373
+						   && $obj->wp_user() === $user_id;
1374
+			} catch (Exception $e) {
1375
+				if (WP_DEBUG) {
1376
+					EE_Error::add_error($e->getMessage(), __FILE__, __FUNCTION__, __LINE__);
1377
+				}
1378
+			}
1379
+			if (! $has_cap) {
1380
+				if (! empty($this->private_cap)) {
1381
+					$caps[] = $this->private_cap;
1382
+				}
1383
+				if (! empty($this->others_cap)) {
1384
+					$caps[] = $this->others_cap;
1385
+				}
1386
+			}
1387
+		}
1388
+		return $caps;
1389
+	}
1390 1390
 }
1391 1391
 
1392 1392
 
@@ -1403,56 +1403,56 @@  discard block
 block discarded – undo
1403 1403
 class EE_Meta_Capability_Map_Messages_Cap extends EE_Meta_Capability_Map
1404 1404
 {
1405 1405
 
1406
-    /**
1407
-     * This is the callback for the wp map_meta_caps() function which allows for ensuring certain caps that act as a
1408
-     * "meta" for other caps ( i.e. ee_edit_event is a meta for ee_edit_others_events ) work as expected.
1409
-     *
1410
-     * @since 4.5.0
1411
-     * @see   wp-includes/capabilities.php
1412
-     *
1413
-     * @param array  $caps    actual users capabilities
1414
-     * @param string $cap     initial capability name that is being checked (the "map" key)
1415
-     * @param int    $user_id The user id
1416
-     * @param array  $args    Adds context to the cap. Typically the object ID.
1417
-     *
1418
-     * @return array   actual users capabilities
1419
-     */
1420
-    protected function _map_meta_caps($caps, $cap, $user_id, $args)
1421
-    {
1422
-        //only process if we're checking our mapped_cap
1423
-        if ($cap !== $this->meta_cap) {
1424
-            return $caps;
1425
-        }
1426
-
1427
-        //okay it is a meta cap so let's first remove that cap from the $caps array.
1428
-        if (($key = array_search($cap, $caps)) !== false) {
1429
-            unset($caps[$key]);
1430
-        }
1431
-
1432
-        //cast $user_id to int for later explicit comparisons
1433
-        $user_id = (int) $user_id;
1434
-
1435
-        $obj = ! empty($args[0]) ? $this->_model->get_one_by_ID($args[0]) : null;
1436
-        //if no obj then let's just do cap
1437
-        if (! $obj instanceof EE_Message_Template_Group) {
1438
-            $caps[] = 'do_not_allow';
1439
-            return $caps;
1440
-        }
1441
-        $caps[] = $cap . 's';
1442
-        $is_global = $obj->is_global();
1443
-        if ($obj->wp_user() && $obj->wp_user() === $user_id) {
1444
-            if ($is_global) {
1445
-                $caps[] = $this->private_cap;
1446
-            }
1447
-        } else {
1448
-            if ($is_global) {
1449
-                $caps[] = $this->private_cap;
1450
-            } else {
1451
-                $caps[] = $this->others_cap;
1452
-            }
1453
-        }
1454
-        return $caps;
1455
-    }
1406
+	/**
1407
+	 * This is the callback for the wp map_meta_caps() function which allows for ensuring certain caps that act as a
1408
+	 * "meta" for other caps ( i.e. ee_edit_event is a meta for ee_edit_others_events ) work as expected.
1409
+	 *
1410
+	 * @since 4.5.0
1411
+	 * @see   wp-includes/capabilities.php
1412
+	 *
1413
+	 * @param array  $caps    actual users capabilities
1414
+	 * @param string $cap     initial capability name that is being checked (the "map" key)
1415
+	 * @param int    $user_id The user id
1416
+	 * @param array  $args    Adds context to the cap. Typically the object ID.
1417
+	 *
1418
+	 * @return array   actual users capabilities
1419
+	 */
1420
+	protected function _map_meta_caps($caps, $cap, $user_id, $args)
1421
+	{
1422
+		//only process if we're checking our mapped_cap
1423
+		if ($cap !== $this->meta_cap) {
1424
+			return $caps;
1425
+		}
1426
+
1427
+		//okay it is a meta cap so let's first remove that cap from the $caps array.
1428
+		if (($key = array_search($cap, $caps)) !== false) {
1429
+			unset($caps[$key]);
1430
+		}
1431
+
1432
+		//cast $user_id to int for later explicit comparisons
1433
+		$user_id = (int) $user_id;
1434
+
1435
+		$obj = ! empty($args[0]) ? $this->_model->get_one_by_ID($args[0]) : null;
1436
+		//if no obj then let's just do cap
1437
+		if (! $obj instanceof EE_Message_Template_Group) {
1438
+			$caps[] = 'do_not_allow';
1439
+			return $caps;
1440
+		}
1441
+		$caps[] = $cap . 's';
1442
+		$is_global = $obj->is_global();
1443
+		if ($obj->wp_user() && $obj->wp_user() === $user_id) {
1444
+			if ($is_global) {
1445
+				$caps[] = $this->private_cap;
1446
+			}
1447
+		} else {
1448
+			if ($is_global) {
1449
+				$caps[] = $this->private_cap;
1450
+			} else {
1451
+				$caps[] = $this->others_cap;
1452
+			}
1453
+		}
1454
+		return $caps;
1455
+	}
1456 1456
 }
1457 1457
 
1458 1458
 
@@ -1469,40 +1469,40 @@  discard block
 block discarded – undo
1469 1469
 class EE_Meta_Capability_Map_Registration_Form_Cap extends EE_Meta_Capability_Map
1470 1470
 {
1471 1471
 
1472
-    /**
1473
-     * This is the callback for the wp map_meta_caps() function which allows for ensuring certain caps that act as a
1474
-     * "meta" for other caps ( i.e. ee_edit_event is a meta for ee_edit_others_events ) work as expected.
1475
-     *
1476
-     * @since 4.5.0
1477
-     * @see   wp-includes/capabilities.php
1478
-     * @param array  $caps    actual users capabilities
1479
-     * @param string $cap     initial capability name that is being checked (the "map" key)
1480
-     * @param int    $user_id The user id
1481
-     * @param array  $args    Adds context to the cap. Typically the object ID.
1482
-     * @return array   actual users capabilities
1483
-     */
1484
-    protected function _map_meta_caps($caps, $cap, $user_id, $args)
1485
-    {
1486
-        //only process if we're checking our mapped_cap
1487
-        if ($cap !== $this->meta_cap) {
1488
-            return $caps;
1489
-        }
1490
-        //okay it is a meta cap so let's first remove that cap from the $caps array.
1491
-        if (($key = array_search($cap, $caps)) !== false) {
1492
-            unset($caps[$key]);
1493
-        }
1494
-        $obj = ! empty($args[0]) ? $this->_model->get_one_by_ID($args[0]) : null;
1495
-        //if no obj then let's just do cap
1496
-        if (! $obj instanceof EE_Base_Class) {
1497
-            $caps[] = 'do_not_allow';
1498
-            return $caps;
1499
-        }
1500
-        $caps[]    = $cap . 's';
1501
-        $is_system = $obj instanceof EE_Question_Group ? $obj->system_group() : false;
1502
-        $is_system = $obj instanceof EE_Question ? $obj->is_system_question() : $is_system;
1503
-        if ($is_system) {
1504
-            $caps[] = $this->private_cap;
1505
-        }
1506
-        return $caps;
1507
-    }
1472
+	/**
1473
+	 * This is the callback for the wp map_meta_caps() function which allows for ensuring certain caps that act as a
1474
+	 * "meta" for other caps ( i.e. ee_edit_event is a meta for ee_edit_others_events ) work as expected.
1475
+	 *
1476
+	 * @since 4.5.0
1477
+	 * @see   wp-includes/capabilities.php
1478
+	 * @param array  $caps    actual users capabilities
1479
+	 * @param string $cap     initial capability name that is being checked (the "map" key)
1480
+	 * @param int    $user_id The user id
1481
+	 * @param array  $args    Adds context to the cap. Typically the object ID.
1482
+	 * @return array   actual users capabilities
1483
+	 */
1484
+	protected function _map_meta_caps($caps, $cap, $user_id, $args)
1485
+	{
1486
+		//only process if we're checking our mapped_cap
1487
+		if ($cap !== $this->meta_cap) {
1488
+			return $caps;
1489
+		}
1490
+		//okay it is a meta cap so let's first remove that cap from the $caps array.
1491
+		if (($key = array_search($cap, $caps)) !== false) {
1492
+			unset($caps[$key]);
1493
+		}
1494
+		$obj = ! empty($args[0]) ? $this->_model->get_one_by_ID($args[0]) : null;
1495
+		//if no obj then let's just do cap
1496
+		if (! $obj instanceof EE_Base_Class) {
1497
+			$caps[] = 'do_not_allow';
1498
+			return $caps;
1499
+		}
1500
+		$caps[]    = $cap . 's';
1501
+		$is_system = $obj instanceof EE_Question_Group ? $obj->system_group() : false;
1502
+		$is_system = $obj instanceof EE_Question ? $obj->is_system_question() : $is_system;
1503
+		if ($is_system) {
1504
+			$caps[] = $this->private_cap;
1505
+		}
1506
+		return $caps;
1507
+	}
1508 1508
 }
Please login to merge, or discard this patch.
Spacing   +45 added lines, -45 removed lines patch added patch discarded remove patch
@@ -85,7 +85,7 @@  discard block
 block discarded – undo
85 85
     public static function instance()
86 86
     {
87 87
         //check if instantiated, and if not do so.
88
-        if (! self::$_instance instanceof EE_Capabilities) {
88
+        if ( ! self::$_instance instanceof EE_Capabilities) {
89 89
             self::$_instance = new self();
90 90
         }
91 91
         return self::$_instance;
@@ -117,7 +117,7 @@  discard block
 block discarded – undo
117 117
      */
118 118
     public function init_caps($reset = false)
119 119
     {
120
-        if(! EE_Maintenance_Mode::instance()->models_can_query()){
120
+        if ( ! EE_Maintenance_Mode::instance()->models_can_query()) {
121 121
             return false;
122 122
         }
123 123
         $this->reset = filter_var($reset, FILTER_VALIDATE_BOOLEAN);
@@ -164,7 +164,7 @@  discard block
 block discarded – undo
164 164
             $this->_get_default_meta_caps_array()
165 165
         );
166 166
         //add filter for map_meta_caps but only if models can query.
167
-        if (! has_filter('map_meta_cap', array($this, 'map_meta_caps'))) {
167
+        if ( ! has_filter('map_meta_cap', array($this, 'map_meta_caps'))) {
168 168
             add_filter('map_meta_cap', array($this, 'map_meta_caps'), 10, 4);
169 169
         }
170 170
     }
@@ -325,11 +325,11 @@  discard block
 block discarded – undo
325 325
         if (did_action('AHEE__EE_System__load_espresso_addons__complete')) {
326 326
             //loop through our _meta_caps array
327 327
             foreach ($this->_meta_caps as $meta_map) {
328
-                if (! $meta_map instanceof EE_Meta_Capability_Map) {
328
+                if ( ! $meta_map instanceof EE_Meta_Capability_Map) {
329 329
                     continue;
330 330
                 }
331 331
                 // don't load models if there is no object ID in the args
332
-                if (! empty($args[0])) {
332
+                if ( ! empty($args[0])) {
333 333
                     $meta_map->ensure_is_model();
334 334
                 }
335 335
                 $caps = $meta_map->map_meta_caps($caps, $cap, $user_id, $args);
@@ -631,7 +631,7 @@  discard block
 block discarded – undo
631 631
     private function setupCapabilitiesMap()
632 632
     {
633 633
         // if the initialization process hasn't even started, then we need to call init_caps()
634
-        if($this->initialized === null) {
634
+        if ($this->initialized === null) {
635 635
             return $this->init_caps();
636 636
         }
637 637
         // unless resetting, get caps from db if we haven't already
@@ -667,7 +667,7 @@  discard block
 block discarded – undo
667 667
     public function addCaps(array $capabilities_to_add)
668 668
     {
669 669
         // don't do anything if the capabilities map can not be initialized
670
-        if (! $this->setupCapabilitiesMap()) {
670
+        if ( ! $this->setupCapabilitiesMap()) {
671 671
             return false;
672 672
         }
673 673
         // and filter the array so others can get in on the fun during resets
@@ -710,7 +710,7 @@  discard block
 block discarded – undo
710 710
     public function removeCaps($caps_map)
711 711
     {
712 712
         // don't do anything if the capabilities map can not be initialized
713
-        if (! $this->setupCapabilitiesMap()) {
713
+        if ( ! $this->setupCapabilitiesMap()) {
714 714
             return false;
715 715
         }
716 716
         $update_capabilities_map = false;
@@ -770,7 +770,7 @@  discard block
 block discarded – undo
770 770
         $orig_role = $role;
771 771
         $role = $role instanceof WP_Role ? $role : get_role($role);
772 772
         //if the role isn't available then we create it.
773
-        if (! $role instanceof WP_Role) {
773
+        if ( ! $role instanceof WP_Role) {
774 774
             // if a plugin wants to create a specific role name then they should create the role before
775 775
             // EE_Capabilities does.  Otherwise this function will create the role name from the slug:
776 776
             // - removes any `ee_` namespacing from the start of the slug.
@@ -781,12 +781,12 @@  discard block
 block discarded – undo
781 781
         }
782 782
         if ($role instanceof WP_Role) {
783 783
             // don't do anything if the capabilities map can not be initialized
784
-            if (! $this->setupCapabilitiesMap()) {
784
+            if ( ! $this->setupCapabilitiesMap()) {
785 785
                 return false;
786 786
             }
787
-            if (! $this->capHasBeenAddedToRole($role->name, $cap)) {
787
+            if ( ! $this->capHasBeenAddedToRole($role->name, $cap)) {
788 788
                 $role->add_cap($cap, $grant);
789
-                $this->capabilities_map[ $role->name ][] = $cap;
789
+                $this->capabilities_map[$role->name][] = $cap;
790 790
                 $this->updateCapabilitiesMap($update_capabilities_map);
791 791
                 return true;
792 792
             }
@@ -811,14 +811,14 @@  discard block
 block discarded – undo
811 811
     public function remove_cap_from_role($role, $cap, $update_capabilities_map = true)
812 812
     {
813 813
         // don't do anything if the capabilities map can not be initialized
814
-        if (! $this->setupCapabilitiesMap()) {
814
+        if ( ! $this->setupCapabilitiesMap()) {
815 815
             return false;
816 816
         }
817 817
 
818 818
         $role = $role instanceof WP_Role ? $role : get_role($role);
819 819
         if ($role instanceof WP_Role && $index = $this->capHasBeenAddedToRole($role->name, $cap, true)) {
820 820
             $role->remove_cap($cap);
821
-            unset($this->capabilities_map[ $role->name ][ $index ]);
821
+            unset($this->capabilities_map[$role->name][$index]);
822 822
             $this->updateCapabilitiesMap($update_capabilities_map);
823 823
             return true;
824 824
         }
@@ -833,7 +833,7 @@  discard block
 block discarded – undo
833 833
      * @param bool   $get_index
834 834
      * @return bool|mixed
835 835
      */
836
-    private function capHasBeenAddedToRole($role_name='', $cap='', $get_index = false)
836
+    private function capHasBeenAddedToRole($role_name = '', $cap = '', $get_index = false)
837 837
     {
838 838
         if (
839 839
             isset($this->capabilities_map[$role_name])
@@ -865,7 +865,7 @@  discard block
 block discarded – undo
865 865
     public function current_user_can($cap, $context, $id = 0)
866 866
     {
867 867
         //apply filters (both a global on just the cap, and context specific.  Global overrides context specific)
868
-        $filtered_cap = apply_filters('FHEE__EE_Capabilities__current_user_can__cap__' . $context, $cap, $id);
868
+        $filtered_cap = apply_filters('FHEE__EE_Capabilities__current_user_can__cap__'.$context, $cap, $id);
869 869
         $filtered_cap = apply_filters(
870 870
             'FHEE__EE_Capabilities__current_user_can__cap',
871 871
             $filtered_cap,
@@ -894,7 +894,7 @@  discard block
 block discarded – undo
894 894
     public function user_can($user, $cap, $context, $id = 0)
895 895
     {
896 896
         //apply filters (both a global on just the cap, and context specific.  Global overrides context specific)
897
-        $filtered_cap = apply_filters('FHEE__EE_Capabilities__user_can__cap__' . $context, $cap, $user, $id);
897
+        $filtered_cap = apply_filters('FHEE__EE_Capabilities__user_can__cap__'.$context, $cap, $user, $id);
898 898
         $filtered_cap = apply_filters(
899 899
             'FHEE__EE_Capabilities__user_can__cap',
900 900
             $filtered_cap,
@@ -934,7 +934,7 @@  discard block
 block discarded – undo
934 934
             : current_user_can($blog_id, $cap);
935 935
         //apply filters (both a global on just the cap, and context specific.  Global overrides context specific)
936 936
         $user_can = apply_filters(
937
-            'FHEE__EE_Capabilities__current_user_can_for_blog__user_can__' . $context,
937
+            'FHEE__EE_Capabilities__current_user_can_for_blog__user_can__'.$context,
938 938
             $user_can,
939 939
             $blog_id,
940 940
             $cap,
@@ -964,14 +964,14 @@  discard block
 block discarded – undo
964 964
      */
965 965
     public function get_ee_capabilities($role = 'administrator')
966 966
     {
967
-        if (! $this->initialized) {
967
+        if ( ! $this->initialized) {
968 968
             $this->init_caps();
969 969
         }
970 970
         if (empty($role)) {
971 971
             return $this->capabilities_map;
972 972
         }
973
-        return isset($this->capabilities_map[ $role ])
974
-            ? $this->capabilities_map[ $role ]
973
+        return isset($this->capabilities_map[$role])
974
+            ? $this->capabilities_map[$role]
975 975
             : array();
976 976
     }
977 977
 
@@ -1003,7 +1003,7 @@  discard block
 block discarded – undo
1003 1003
                         'event_espresso'
1004 1004
                     ),
1005 1005
                     '$reset',
1006
-                    __METHOD__ . '()',
1006
+                    __METHOD__.'()',
1007 1007
                     'EE_Capabilities::init_caps()',
1008 1008
                     'true'
1009 1009
                 ),
@@ -1081,16 +1081,16 @@  discard block
 block discarded – undo
1081 1081
                         'Incoming $map_values array should have a count of four values in it.  This is what was given: %s',
1082 1082
                         'event_espresso'
1083 1083
                     ),
1084
-                    '<br>' . print_r($map_values, true)
1084
+                    '<br>'.print_r($map_values, true)
1085 1085
                 )
1086 1086
             );
1087 1087
         }
1088 1088
         //set properties
1089 1089
         $this->_model = null;
1090 1090
         $this->_model_name = $map_values[0];
1091
-        $this->published_cap = (string)$map_values[1];
1092
-        $this->others_cap = (string)$map_values[2];
1093
-        $this->private_cap = (string)$map_values[3];
1091
+        $this->published_cap = (string) $map_values[1];
1092
+        $this->others_cap = (string) $map_values[2];
1093
+        $this->private_cap = (string) $map_values[3];
1094 1094
     }
1095 1095
 
1096 1096
     /**
@@ -1117,11 +1117,11 @@  discard block
 block discarded – undo
1117 1117
             return;
1118 1118
         }
1119 1119
         //ensure model name is string
1120
-        $this->_model_name = (string)$this->_model_name;
1120
+        $this->_model_name = (string) $this->_model_name;
1121 1121
         //error proof if the name has EEM in it
1122 1122
         $this->_model_name = str_replace('EEM', '', $this->_model_name);
1123 1123
         $this->_model = EE_Registry::instance()->load_model($this->_model_name);
1124
-        if (! $this->_model instanceof EEM_Base) {
1124
+        if ( ! $this->_model instanceof EEM_Base) {
1125 1125
             throw new EE_Error(
1126 1126
                 sprintf(
1127 1127
                     __(
@@ -1216,11 +1216,11 @@  discard block
 block discarded – undo
1216 1216
         /** @var EE_Base_Class $obj */
1217 1217
         $obj = ! empty($args[0]) ? $this->_model->get_one_by_ID($args[0]) : null;
1218 1218
         //if no obj then let's just do cap
1219
-        if (! $obj instanceof EE_Base_Class) {
1219
+        if ( ! $obj instanceof EE_Base_Class) {
1220 1220
             $caps[] = 'do_not_allow';
1221 1221
             return $caps;
1222 1222
         }
1223
-        $caps[] = $cap . 's';
1223
+        $caps[] = $cap.'s';
1224 1224
         if ($obj instanceof EE_CPT_Base) {
1225 1225
             //if the item author is set and the user is the author...
1226 1226
             if ($obj->wp_user() && $user_id === $obj->wp_user()) {
@@ -1230,12 +1230,12 @@  discard block
 block discarded – undo
1230 1230
                 }
1231 1231
             } else {
1232 1232
                 //the user is trying to edit someone else's obj
1233
-                if (! empty($this->others_cap)) {
1233
+                if ( ! empty($this->others_cap)) {
1234 1234
                     $caps[] = $this->others_cap;
1235 1235
                 }
1236
-                if (! empty($this->published_cap) && $obj->status() === 'publish') {
1236
+                if ( ! empty($this->published_cap) && $obj->status() === 'publish') {
1237 1237
                     $caps[] = $this->published_cap;
1238
-                } elseif (! empty($this->private_cap) && $obj->status() === 'private') {
1238
+                } elseif ( ! empty($this->private_cap) && $obj->status() === 'private') {
1239 1239
                     $caps[] = $this->private_cap;
1240 1240
                 }
1241 1241
             }
@@ -1251,8 +1251,8 @@  discard block
 block discarded – undo
1251 1251
                     EE_Error::add_error($e->getMessage(), __FILE__, __FUNCTION__, __LINE__);
1252 1252
                 }
1253 1253
             }
1254
-            if (! $has_cap) {
1255
-                if (! empty($this->others_cap)) {
1254
+            if ( ! $has_cap) {
1255
+                if ( ! empty($this->others_cap)) {
1256 1256
                     $caps[] = $this->others_cap;
1257 1257
                 }
1258 1258
             }
@@ -1339,12 +1339,12 @@  discard block
 block discarded – undo
1339 1339
 
1340 1340
         $obj = ! empty($args[0]) ? $this->_model->get_one_by_ID($args[0]) : null;
1341 1341
         //if no obj then let's just do cap
1342
-        if (! $obj instanceof EE_Base_Class) {
1342
+        if ( ! $obj instanceof EE_Base_Class) {
1343 1343
             $caps[] = 'do_not_allow';
1344 1344
             return $caps;
1345 1345
         }
1346 1346
 
1347
-        $caps[] = $cap . 's';
1347
+        $caps[] = $cap.'s';
1348 1348
         if ($obj instanceof EE_CPT_Base) {
1349 1349
             $status_obj = get_post_status_object($obj->status());
1350 1350
             if ($status_obj->public) {
@@ -1352,7 +1352,7 @@  discard block
 block discarded – undo
1352 1352
             }
1353 1353
             //if the item author is set and the user is not the author...
1354 1354
             if ($obj->wp_user() && $obj->wp_user() !== $user_id) {
1355
-                if (! empty($this->others_cap)) {
1355
+                if ( ! empty($this->others_cap)) {
1356 1356
                     $caps[] = $this->others_cap;
1357 1357
                 }
1358 1358
             }
@@ -1376,11 +1376,11 @@  discard block
 block discarded – undo
1376 1376
                     EE_Error::add_error($e->getMessage(), __FILE__, __FUNCTION__, __LINE__);
1377 1377
                 }
1378 1378
             }
1379
-            if (! $has_cap) {
1380
-                if (! empty($this->private_cap)) {
1379
+            if ( ! $has_cap) {
1380
+                if ( ! empty($this->private_cap)) {
1381 1381
                     $caps[] = $this->private_cap;
1382 1382
                 }
1383
-                if (! empty($this->others_cap)) {
1383
+                if ( ! empty($this->others_cap)) {
1384 1384
                     $caps[] = $this->others_cap;
1385 1385
                 }
1386 1386
             }
@@ -1434,11 +1434,11 @@  discard block
 block discarded – undo
1434 1434
 
1435 1435
         $obj = ! empty($args[0]) ? $this->_model->get_one_by_ID($args[0]) : null;
1436 1436
         //if no obj then let's just do cap
1437
-        if (! $obj instanceof EE_Message_Template_Group) {
1437
+        if ( ! $obj instanceof EE_Message_Template_Group) {
1438 1438
             $caps[] = 'do_not_allow';
1439 1439
             return $caps;
1440 1440
         }
1441
-        $caps[] = $cap . 's';
1441
+        $caps[] = $cap.'s';
1442 1442
         $is_global = $obj->is_global();
1443 1443
         if ($obj->wp_user() && $obj->wp_user() === $user_id) {
1444 1444
             if ($is_global) {
@@ -1493,11 +1493,11 @@  discard block
 block discarded – undo
1493 1493
         }
1494 1494
         $obj = ! empty($args[0]) ? $this->_model->get_one_by_ID($args[0]) : null;
1495 1495
         //if no obj then let's just do cap
1496
-        if (! $obj instanceof EE_Base_Class) {
1496
+        if ( ! $obj instanceof EE_Base_Class) {
1497 1497
             $caps[] = 'do_not_allow';
1498 1498
             return $caps;
1499 1499
         }
1500
-        $caps[]    = $cap . 's';
1500
+        $caps[]    = $cap.'s';
1501 1501
         $is_system = $obj instanceof EE_Question_Group ? $obj->system_group() : false;
1502 1502
         $is_system = $obj instanceof EE_Question ? $obj->is_system_question() : $is_system;
1503 1503
         if ($is_system) {
Please login to merge, or discard this patch.
admin/extend/transactions/Extend_Transactions_Admin_Page.core.php 3 patches
Doc Comments   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -198,7 +198,7 @@
 block discarded – undo
198 198
      *
199 199
      * @param string $period The period (acceptable by PHP Datetime constructor) for which the report is generated.
200 200
      *
201
-     * @return int
201
+     * @return string
202 202
      */
203 203
     private function _revenue_per_event_report($period = '-1 month')
204 204
     {
Please login to merge, or discard this patch.
Indentation   +220 added lines, -220 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
 /**
@@ -32,224 +32,224 @@  discard block
 block discarded – undo
32 32
 {
33 33
 
34 34
 
35
-    /**
36
-     * This is used to hold the reports template data which is setup early in the request.
37
-     * @type array
38
-     */
39
-    protected $_reports_template_data = array();
40
-
41
-    /**
42
-     * @Constructor
43
-     * @access public
44
-     *
45
-     * @param bool $routing
46
-     *
47
-     * @return \Extend_Transactions_Admin_Page
48
-     */
49
-    public function __construct($routing = true)
50
-    {
51
-        parent::__construct($routing);
52
-        define('TXN_CAF_TEMPLATE_PATH', EE_CORE_CAF_ADMIN_EXTEND . 'transactions/templates/');
53
-        define('TXN_CAF_ASSETS', EE_CORE_CAF_ADMIN_EXTEND . 'transactions/assets/');
54
-        define('TXN_CAF_ASSETS_URL', EE_CORE_CAF_ADMIN_EXTEND_URL . 'transactions/assets/');
55
-    }
56
-
57
-
58
-    /**
59
-     *    _extend_page_config
60
-     *
61
-     * @access protected
62
-     * @return void
63
-     */
64
-    protected function _extend_page_config()
65
-    {
66
-        $this->_admin_base_path = EE_CORE_CAF_ADMIN_EXTEND . 'transactions';
67
-
68
-        $new_page_routes = array(
69
-            'reports' => array(
70
-                'func'       => '_transaction_reports',
71
-                'capability' => 'ee_read_transactions'
72
-            )
73
-        );
74
-
75
-        $this->_page_routes = array_merge($this->_page_routes, $new_page_routes);
76
-
77
-        $new_page_config    = array(
78
-            'reports' => array(
79
-                'nav'           => array(
80
-                    'label' => __('Reports', 'event_espresso'),
81
-                    'order' => 20
82
-                ),
83
-                'help_tabs'     => array(
84
-                    'transactions_reports_help_tab' => array(
85
-                        'title'    => __('Transaction Reports', 'event_espresso'),
86
-                        'filename' => 'transactions_reports'
87
-                    )
88
-                ),
89
-                /*'help_tour' => array( 'Transaction_Reports_Help_Tour' ),*/
90
-                'require_nonce' => false
91
-            )
92
-        );
93
-        $this->_page_config = array_merge($this->_page_config, $new_page_config);
94
-    }
95
-
96
-
97
-    /**
98
-     *    load_scripts_styles_reports
99
-     *
100
-     * @access public
101
-     * @return void
102
-     */
103
-    public function load_scripts_styles_reports()
104
-    {
105
-        wp_register_script(
106
-            'ee-txn-reports-js',
107
-            TXN_CAF_ASSETS_URL . 'ee-transaction-admin-reports.js',
108
-            array('google-charts'),
109
-            EVENT_ESPRESSO_VERSION,
110
-            true
111
-        );
112
-        wp_enqueue_script('ee-txn-reports-js');
113
-        $this->_transaction_reports_js_setup();
114
-        EE_Registry::$i18n_js_strings['currency_format'] = EEH_Money::get_format_for_google_charts();
115
-    }
116
-
117
-
118
-    /**
119
-     * This is called when javascript is being enqueued to setup the various data needed for the reports js.
120
-     * Also $this->{$_reports_template_data} property is set for later usage by the _transaction_reports method.
121
-     */
122
-    protected function _transaction_reports_js_setup()
123
-    {
124
-        $this->_reports_template_data['admin_reports'][] = $this->_revenue_per_day_report();
125
-        $this->_reports_template_data['admin_reports'][] = $this->_revenue_per_event_report();
126
-    }
127
-
128
-
129
-    /**
130
-     * _transaction_reports
131
-     *    generates Business Reports regarding Transactions
132
-     *
133
-     * @return void
134
-     */
135
-    protected function _transaction_reports()
136
-    {
137
-        $template_path                              = EE_ADMIN_TEMPLATE . 'admin_reports.template.php';
138
-        $this->_admin_page_title                    = __('Transactions', 'event_espresso');
139
-        $this->_template_args['admin_page_content'] = EEH_Template::display_template($template_path,
140
-            $this->_reports_template_data, true);
141
-
142
-        // the final template wrapper
143
-        $this->display_admin_page_with_no_sidebar();
144
-    }
145
-
146
-
147
-    /**
148
-     * _revenue_per_day_report
149
-     * generates Business Report showing Total Revenue per Day.
150
-     *
151
-     * @param string $period The period (acceptable by PHP Datetime constructor) for which the report is generated.
152
-     *
153
-     * @return string
154
-     */
155
-    private function _revenue_per_day_report($period = '-1 month')
156
-    {
157
-
158
-        $report_ID = 'txn-admin-revenue-per-day-report-dv';
159
-
160
-        $TXN = EEM_Transaction::instance();
161
-
162
-        $results  = $TXN->get_revenue_per_day_report($period);
163
-        $results  = (array)$results;
164
-        $revenue  = array();
165
-        $subtitle = '';
166
-
167
-        if ($results) {
168
-            $revenue[] = array(
169
-                __('Date (only shows dates that have a revenue greater than 1)', 'event_espresso'),
170
-                __('Total Revenue', 'event_espresso')
171
-            );
172
-            foreach ($results as $result) {
173
-                $revenue[] = array($result->txnDate, (float)$result->revenue);
174
-            }
175
-
176
-            //setup the date range.
177
-            $beginning_date = new DateTime('now' . $period, new DateTimeZone(EEH_DTT_Helper::get_timezone()));
178
-            $ending_date    = new DateTime('now', new DateTimeZone(EEH_DTT_Helper::get_timezone()));
179
-            $subtitle       = sprintf(_x('For the period: %s to %s', 'Used to give date range', 'event_espresso'),
180
-                $beginning_date->format('Y-m-d'), $ending_date->format('Y-m-d'));
181
-        }
182
-
183
-        $report_title = esc_html__('Total Revenue per Day', 'event_espresso');
184
-
185
-        $report_params = array(
186
-            'title'     => $report_title,
187
-            'subtitle'  => $subtitle,
188
-            'id'        => $report_ID,
189
-            'revenue'   => $revenue,
190
-            'noResults' => empty($revenue) || count($revenue) === 1,
191
-            'noTxnMsg'  => sprintf(__('%sThere is no revenue to report for the last 30 days.%s', 'event_espresso'),
192
-                '<h2>' . $report_title . '</h2><p>', '</p>')
193
-        );
194
-        wp_localize_script('ee-txn-reports-js', 'txnRevPerDay', $report_params);
195
-
196
-        return $report_ID;
197
-    }
198
-
199
-
200
-    /**
201
-     * _revenue_per_event_report
202
-     * generates Business Report showing total revenue per event.
203
-     *
204
-     * @param string $period The period (acceptable by PHP Datetime constructor) for which the report is generated.
205
-     *
206
-     * @return int
207
-     */
208
-    private function _revenue_per_event_report($period = '-1 month')
209
-    {
210
-
211
-        $report_ID = 'txn-admin-revenue-per-event-report-dv';
212
-
213
-        $TXN      = EEM_Transaction::instance();
214
-        $results  = $TXN->get_revenue_per_event_report($period);
215
-        $results  = (array)$results;
216
-        $revenue  = array();
217
-        $subtitle = '';
218
-
219
-        if ($results) {
220
-            $revenue[] = array(
221
-                __('Event (only events that have a revenue greater than 1 are shown)', 'event_espresso'),
222
-                __('Total Revenue', 'event_espresso')
223
-            );
224
-            foreach ($results as $result) {
225
-                if ($result->revenue > 1) {
226
-                    $event_name = stripslashes(html_entity_decode($result->event_name, ENT_QUOTES, 'UTF-8'));
227
-                    $event_name = wp_trim_words($event_name, 5, '...');
228
-                    $revenue[]  = array($event_name, (float)$result->revenue);
229
-                }
230
-            }
231
-
232
-            //setup the date range.
233
-            $beginning_date = new DateTime('now' . $period, new DateTimeZone(EEH_DTT_Helper::get_timezone()));
234
-            $ending_date    = new DateTime('now', new DateTimeZone(EEH_DTT_Helper::get_timezone()));
235
-            $subtitle       = sprintf(_x('For the period: %s to %s', 'Used to give date range', 'event_espresso'),
236
-                $beginning_date->format('Y-m-d'), $ending_date->format('Y-m-d'));
237
-        }
238
-
239
-        $report_title = esc_html__('Total Revenue per Event', 'event_espresso');
240
-
241
-        $report_params = array(
242
-            'title'     => $report_title,
243
-            'subtitle'  => $subtitle,
244
-            'id'        => $report_ID,
245
-            'revenue'   => $revenue,
246
-            'noResults' => empty($revenue),
247
-            'noTxnMsg'  => sprintf(__('%sThere is no revenue to report for the last 30 days.%s', 'event_espresso'),
248
-                '<h2>' . $report_title . '</h2><p>', '</p>')
249
-        );
250
-        wp_localize_script('ee-txn-reports-js', 'txnRevPerEvent', $report_params);
251
-
252
-        return $report_ID;
253
-    }
35
+	/**
36
+	 * This is used to hold the reports template data which is setup early in the request.
37
+	 * @type array
38
+	 */
39
+	protected $_reports_template_data = array();
40
+
41
+	/**
42
+	 * @Constructor
43
+	 * @access public
44
+	 *
45
+	 * @param bool $routing
46
+	 *
47
+	 * @return \Extend_Transactions_Admin_Page
48
+	 */
49
+	public function __construct($routing = true)
50
+	{
51
+		parent::__construct($routing);
52
+		define('TXN_CAF_TEMPLATE_PATH', EE_CORE_CAF_ADMIN_EXTEND . 'transactions/templates/');
53
+		define('TXN_CAF_ASSETS', EE_CORE_CAF_ADMIN_EXTEND . 'transactions/assets/');
54
+		define('TXN_CAF_ASSETS_URL', EE_CORE_CAF_ADMIN_EXTEND_URL . 'transactions/assets/');
55
+	}
56
+
57
+
58
+	/**
59
+	 *    _extend_page_config
60
+	 *
61
+	 * @access protected
62
+	 * @return void
63
+	 */
64
+	protected function _extend_page_config()
65
+	{
66
+		$this->_admin_base_path = EE_CORE_CAF_ADMIN_EXTEND . 'transactions';
67
+
68
+		$new_page_routes = array(
69
+			'reports' => array(
70
+				'func'       => '_transaction_reports',
71
+				'capability' => 'ee_read_transactions'
72
+			)
73
+		);
74
+
75
+		$this->_page_routes = array_merge($this->_page_routes, $new_page_routes);
76
+
77
+		$new_page_config    = array(
78
+			'reports' => array(
79
+				'nav'           => array(
80
+					'label' => __('Reports', 'event_espresso'),
81
+					'order' => 20
82
+				),
83
+				'help_tabs'     => array(
84
+					'transactions_reports_help_tab' => array(
85
+						'title'    => __('Transaction Reports', 'event_espresso'),
86
+						'filename' => 'transactions_reports'
87
+					)
88
+				),
89
+				/*'help_tour' => array( 'Transaction_Reports_Help_Tour' ),*/
90
+				'require_nonce' => false
91
+			)
92
+		);
93
+		$this->_page_config = array_merge($this->_page_config, $new_page_config);
94
+	}
95
+
96
+
97
+	/**
98
+	 *    load_scripts_styles_reports
99
+	 *
100
+	 * @access public
101
+	 * @return void
102
+	 */
103
+	public function load_scripts_styles_reports()
104
+	{
105
+		wp_register_script(
106
+			'ee-txn-reports-js',
107
+			TXN_CAF_ASSETS_URL . 'ee-transaction-admin-reports.js',
108
+			array('google-charts'),
109
+			EVENT_ESPRESSO_VERSION,
110
+			true
111
+		);
112
+		wp_enqueue_script('ee-txn-reports-js');
113
+		$this->_transaction_reports_js_setup();
114
+		EE_Registry::$i18n_js_strings['currency_format'] = EEH_Money::get_format_for_google_charts();
115
+	}
116
+
117
+
118
+	/**
119
+	 * This is called when javascript is being enqueued to setup the various data needed for the reports js.
120
+	 * Also $this->{$_reports_template_data} property is set for later usage by the _transaction_reports method.
121
+	 */
122
+	protected function _transaction_reports_js_setup()
123
+	{
124
+		$this->_reports_template_data['admin_reports'][] = $this->_revenue_per_day_report();
125
+		$this->_reports_template_data['admin_reports'][] = $this->_revenue_per_event_report();
126
+	}
127
+
128
+
129
+	/**
130
+	 * _transaction_reports
131
+	 *    generates Business Reports regarding Transactions
132
+	 *
133
+	 * @return void
134
+	 */
135
+	protected function _transaction_reports()
136
+	{
137
+		$template_path                              = EE_ADMIN_TEMPLATE . 'admin_reports.template.php';
138
+		$this->_admin_page_title                    = __('Transactions', 'event_espresso');
139
+		$this->_template_args['admin_page_content'] = EEH_Template::display_template($template_path,
140
+			$this->_reports_template_data, true);
141
+
142
+		// the final template wrapper
143
+		$this->display_admin_page_with_no_sidebar();
144
+	}
145
+
146
+
147
+	/**
148
+	 * _revenue_per_day_report
149
+	 * generates Business Report showing Total Revenue per Day.
150
+	 *
151
+	 * @param string $period The period (acceptable by PHP Datetime constructor) for which the report is generated.
152
+	 *
153
+	 * @return string
154
+	 */
155
+	private function _revenue_per_day_report($period = '-1 month')
156
+	{
157
+
158
+		$report_ID = 'txn-admin-revenue-per-day-report-dv';
159
+
160
+		$TXN = EEM_Transaction::instance();
161
+
162
+		$results  = $TXN->get_revenue_per_day_report($period);
163
+		$results  = (array)$results;
164
+		$revenue  = array();
165
+		$subtitle = '';
166
+
167
+		if ($results) {
168
+			$revenue[] = array(
169
+				__('Date (only shows dates that have a revenue greater than 1)', 'event_espresso'),
170
+				__('Total Revenue', 'event_espresso')
171
+			);
172
+			foreach ($results as $result) {
173
+				$revenue[] = array($result->txnDate, (float)$result->revenue);
174
+			}
175
+
176
+			//setup the date range.
177
+			$beginning_date = new DateTime('now' . $period, new DateTimeZone(EEH_DTT_Helper::get_timezone()));
178
+			$ending_date    = new DateTime('now', new DateTimeZone(EEH_DTT_Helper::get_timezone()));
179
+			$subtitle       = sprintf(_x('For the period: %s to %s', 'Used to give date range', 'event_espresso'),
180
+				$beginning_date->format('Y-m-d'), $ending_date->format('Y-m-d'));
181
+		}
182
+
183
+		$report_title = esc_html__('Total Revenue per Day', 'event_espresso');
184
+
185
+		$report_params = array(
186
+			'title'     => $report_title,
187
+			'subtitle'  => $subtitle,
188
+			'id'        => $report_ID,
189
+			'revenue'   => $revenue,
190
+			'noResults' => empty($revenue) || count($revenue) === 1,
191
+			'noTxnMsg'  => sprintf(__('%sThere is no revenue to report for the last 30 days.%s', 'event_espresso'),
192
+				'<h2>' . $report_title . '</h2><p>', '</p>')
193
+		);
194
+		wp_localize_script('ee-txn-reports-js', 'txnRevPerDay', $report_params);
195
+
196
+		return $report_ID;
197
+	}
198
+
199
+
200
+	/**
201
+	 * _revenue_per_event_report
202
+	 * generates Business Report showing total revenue per event.
203
+	 *
204
+	 * @param string $period The period (acceptable by PHP Datetime constructor) for which the report is generated.
205
+	 *
206
+	 * @return int
207
+	 */
208
+	private function _revenue_per_event_report($period = '-1 month')
209
+	{
210
+
211
+		$report_ID = 'txn-admin-revenue-per-event-report-dv';
212
+
213
+		$TXN      = EEM_Transaction::instance();
214
+		$results  = $TXN->get_revenue_per_event_report($period);
215
+		$results  = (array)$results;
216
+		$revenue  = array();
217
+		$subtitle = '';
218
+
219
+		if ($results) {
220
+			$revenue[] = array(
221
+				__('Event (only events that have a revenue greater than 1 are shown)', 'event_espresso'),
222
+				__('Total Revenue', 'event_espresso')
223
+			);
224
+			foreach ($results as $result) {
225
+				if ($result->revenue > 1) {
226
+					$event_name = stripslashes(html_entity_decode($result->event_name, ENT_QUOTES, 'UTF-8'));
227
+					$event_name = wp_trim_words($event_name, 5, '...');
228
+					$revenue[]  = array($event_name, (float)$result->revenue);
229
+				}
230
+			}
231
+
232
+			//setup the date range.
233
+			$beginning_date = new DateTime('now' . $period, new DateTimeZone(EEH_DTT_Helper::get_timezone()));
234
+			$ending_date    = new DateTime('now', new DateTimeZone(EEH_DTT_Helper::get_timezone()));
235
+			$subtitle       = sprintf(_x('For the period: %s to %s', 'Used to give date range', 'event_espresso'),
236
+				$beginning_date->format('Y-m-d'), $ending_date->format('Y-m-d'));
237
+		}
238
+
239
+		$report_title = esc_html__('Total Revenue per Event', 'event_espresso');
240
+
241
+		$report_params = array(
242
+			'title'     => $report_title,
243
+			'subtitle'  => $subtitle,
244
+			'id'        => $report_ID,
245
+			'revenue'   => $revenue,
246
+			'noResults' => empty($revenue),
247
+			'noTxnMsg'  => sprintf(__('%sThere is no revenue to report for the last 30 days.%s', 'event_espresso'),
248
+				'<h2>' . $report_title . '</h2><p>', '</p>')
249
+		);
250
+		wp_localize_script('ee-txn-reports-js', 'txnRevPerEvent', $report_params);
251
+
252
+		return $report_ID;
253
+	}
254 254
 
255 255
 }
Please login to merge, or discard this patch.
Spacing   +14 added lines, -14 removed lines patch added patch discarded remove patch
@@ -49,9 +49,9 @@  discard block
 block discarded – undo
49 49
     public function __construct($routing = true)
50 50
     {
51 51
         parent::__construct($routing);
52
-        define('TXN_CAF_TEMPLATE_PATH', EE_CORE_CAF_ADMIN_EXTEND . 'transactions/templates/');
53
-        define('TXN_CAF_ASSETS', EE_CORE_CAF_ADMIN_EXTEND . 'transactions/assets/');
54
-        define('TXN_CAF_ASSETS_URL', EE_CORE_CAF_ADMIN_EXTEND_URL . 'transactions/assets/');
52
+        define('TXN_CAF_TEMPLATE_PATH', EE_CORE_CAF_ADMIN_EXTEND.'transactions/templates/');
53
+        define('TXN_CAF_ASSETS', EE_CORE_CAF_ADMIN_EXTEND.'transactions/assets/');
54
+        define('TXN_CAF_ASSETS_URL', EE_CORE_CAF_ADMIN_EXTEND_URL.'transactions/assets/');
55 55
     }
56 56
 
57 57
 
@@ -63,7 +63,7 @@  discard block
 block discarded – undo
63 63
      */
64 64
     protected function _extend_page_config()
65 65
     {
66
-        $this->_admin_base_path = EE_CORE_CAF_ADMIN_EXTEND . 'transactions';
66
+        $this->_admin_base_path = EE_CORE_CAF_ADMIN_EXTEND.'transactions';
67 67
 
68 68
         $new_page_routes = array(
69 69
             'reports' => array(
@@ -104,7 +104,7 @@  discard block
 block discarded – undo
104 104
     {
105 105
         wp_register_script(
106 106
             'ee-txn-reports-js',
107
-            TXN_CAF_ASSETS_URL . 'ee-transaction-admin-reports.js',
107
+            TXN_CAF_ASSETS_URL.'ee-transaction-admin-reports.js',
108 108
             array('google-charts'),
109 109
             EVENT_ESPRESSO_VERSION,
110 110
             true
@@ -134,7 +134,7 @@  discard block
 block discarded – undo
134 134
      */
135 135
     protected function _transaction_reports()
136 136
     {
137
-        $template_path                              = EE_ADMIN_TEMPLATE . 'admin_reports.template.php';
137
+        $template_path                              = EE_ADMIN_TEMPLATE.'admin_reports.template.php';
138 138
         $this->_admin_page_title                    = __('Transactions', 'event_espresso');
139 139
         $this->_template_args['admin_page_content'] = EEH_Template::display_template($template_path,
140 140
             $this->_reports_template_data, true);
@@ -160,7 +160,7 @@  discard block
 block discarded – undo
160 160
         $TXN = EEM_Transaction::instance();
161 161
 
162 162
         $results  = $TXN->get_revenue_per_day_report($period);
163
-        $results  = (array)$results;
163
+        $results  = (array) $results;
164 164
         $revenue  = array();
165 165
         $subtitle = '';
166 166
 
@@ -170,11 +170,11 @@  discard block
 block discarded – undo
170 170
                 __('Total Revenue', 'event_espresso')
171 171
             );
172 172
             foreach ($results as $result) {
173
-                $revenue[] = array($result->txnDate, (float)$result->revenue);
173
+                $revenue[] = array($result->txnDate, (float) $result->revenue);
174 174
             }
175 175
 
176 176
             //setup the date range.
177
-            $beginning_date = new DateTime('now' . $period, new DateTimeZone(EEH_DTT_Helper::get_timezone()));
177
+            $beginning_date = new DateTime('now'.$period, new DateTimeZone(EEH_DTT_Helper::get_timezone()));
178 178
             $ending_date    = new DateTime('now', new DateTimeZone(EEH_DTT_Helper::get_timezone()));
179 179
             $subtitle       = sprintf(_x('For the period: %s to %s', 'Used to give date range', 'event_espresso'),
180 180
                 $beginning_date->format('Y-m-d'), $ending_date->format('Y-m-d'));
@@ -189,7 +189,7 @@  discard block
 block discarded – undo
189 189
             'revenue'   => $revenue,
190 190
             'noResults' => empty($revenue) || count($revenue) === 1,
191 191
             'noTxnMsg'  => sprintf(__('%sThere is no revenue to report for the last 30 days.%s', 'event_espresso'),
192
-                '<h2>' . $report_title . '</h2><p>', '</p>')
192
+                '<h2>'.$report_title.'</h2><p>', '</p>')
193 193
         );
194 194
         wp_localize_script('ee-txn-reports-js', 'txnRevPerDay', $report_params);
195 195
 
@@ -212,7 +212,7 @@  discard block
 block discarded – undo
212 212
 
213 213
         $TXN      = EEM_Transaction::instance();
214 214
         $results  = $TXN->get_revenue_per_event_report($period);
215
-        $results  = (array)$results;
215
+        $results  = (array) $results;
216 216
         $revenue  = array();
217 217
         $subtitle = '';
218 218
 
@@ -225,12 +225,12 @@  discard block
 block discarded – undo
225 225
                 if ($result->revenue > 1) {
226 226
                     $event_name = stripslashes(html_entity_decode($result->event_name, ENT_QUOTES, 'UTF-8'));
227 227
                     $event_name = wp_trim_words($event_name, 5, '...');
228
-                    $revenue[]  = array($event_name, (float)$result->revenue);
228
+                    $revenue[]  = array($event_name, (float) $result->revenue);
229 229
                 }
230 230
             }
231 231
 
232 232
             //setup the date range.
233
-            $beginning_date = new DateTime('now' . $period, new DateTimeZone(EEH_DTT_Helper::get_timezone()));
233
+            $beginning_date = new DateTime('now'.$period, new DateTimeZone(EEH_DTT_Helper::get_timezone()));
234 234
             $ending_date    = new DateTime('now', new DateTimeZone(EEH_DTT_Helper::get_timezone()));
235 235
             $subtitle       = sprintf(_x('For the period: %s to %s', 'Used to give date range', 'event_espresso'),
236 236
                 $beginning_date->format('Y-m-d'), $ending_date->format('Y-m-d'));
@@ -245,7 +245,7 @@  discard block
 block discarded – undo
245 245
             'revenue'   => $revenue,
246 246
             'noResults' => empty($revenue),
247 247
             'noTxnMsg'  => sprintf(__('%sThere is no revenue to report for the last 30 days.%s', 'event_espresso'),
248
-                '<h2>' . $report_title . '</h2><p>', '</p>')
248
+                '<h2>'.$report_title.'</h2><p>', '</p>')
249 249
         );
250 250
         wp_localize_script('ee-txn-reports-js', 'txnRevPerEvent', $report_params);
251 251
 
Please login to merge, or discard this patch.
caffeinated/EE_Caf_Messages.class.php 3 patches
Doc Comments   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -91,7 +91,7 @@  discard block
 block discarded – undo
91 91
      *
92 92
      * @param  array $dir_ref original array of paths
93 93
      *
94
-     * @return array           appended paths
94
+     * @return string[]           appended paths
95 95
      */
96 96
     public function messages_autoload_paths($dir_ref)
97 97
     {
@@ -701,7 +701,7 @@  discard block
 block discarded – undo
701 701
      * @param EE_Question[]  $questions        An array of questions indexed by answer id.
702 702
      * @param EE_Answer[]    $answers          An array of answer objects
703 703
      * @param string         $template         Template content to be parsed.
704
-     * @param array          $valid_shortcodes Valid shortcodes for the template being parsed.
704
+     * @param string[]          $valid_shortcodes Valid shortcodes for the template being parsed.
705 705
      * @param array          $extra_data       Extra data that might be used when parsing the template.
706 706
      */
707 707
     protected function _parse_question_list_for_primary_or_recipient_registration(
Please login to merge, or discard this patch.
Indentation   +714 added lines, -714 removed lines patch added patch discarded remove patch
@@ -7,7 +7,7 @@  discard block
 block discarded – undo
7 7
  * @since           4.3.2
8 8
  */
9 9
 if ( ! defined('EVENT_ESPRESSO_VERSION')) {
10
-    exit('No direct script access allowed');
10
+	exit('No direct script access allowed');
11 11
 }
12 12
 
13 13
 /**
@@ -22,735 +22,735 @@  discard block
 block discarded – undo
22 22
 {
23 23
     
24 24
     
25
-    /**
26
-     * constructor.
27
-     */
28
-    public function __construct()
29
-    {
30
-        $this->_caf_hooks();
31
-    }
32
-    
33
-    
34
-    /**
35
-     * Contains all the hooks filters for setting up caffeinated messages functionality.
36
-     *
37
-     * @since 4.3.2
38
-     *
39
-     * @return void
40
-     */
41
-    private function _caf_hooks()
42
-    {
43
-        add_filter('FHEE__EED_Messages___set_messages_paths___MSG_PATHS', array($this, 'messages_autoload_paths'), 5);
44
-        add_filter('FHEE__EE_Email_messenger__get_validator_config', array($this, 'email_messenger_validator_config'),
45
-            5, 2);
46
-        add_filter('FHEE__EE_Email_messenger__get_template_fields', array($this, 'email_messenger_template_fields'), 5,
47
-            2);
48
-        add_filter('FHEE__EE_Html_messenger__get_template_fields', array($this, 'html_messenger_template_fields'), 5,
49
-            2);
50
-        add_filter('FHEE__EE_Html_messenger__get_validator_config', array($this, 'html_messenger_validator_config'), 5,
51
-            2);
52
-        add_filter('FHEE__EE_Pdf_messenger__get_template_fields', array($this, 'pdf_messenger_template_fields'), 5, 2);
53
-        add_filter('FHEE__EE_Pdf_messenger__get_validator_config', array($this, 'pdf_messenger_validator_config'), 5,
54
-            2);
55
-        add_filter('FHEE__EE_Messages_Template_Pack__get_specific_template__contents',
56
-            array($this, 'new_default_templates'), 5, 7);
57
-        add_filter('FHEE__EE_Messages_Base__get_valid_shortcodes', array($this, 'message_types_valid_shortcodes'), 5,
58
-            2);
59
-        
60
-        //shortcode parsers
61
-        add_filter('FHEE__EE_Attendee_Shortcodes__shortcodes', array($this, 'additional_attendee_shortcodes'), 5, 2);
62
-        add_filter('FHEE__EE_Attendee_Shortcodes__parser_after', array($this, 'additional_attendee_parser'), 5, 5);
63
-        add_filter('FHEE__EE_Recipient_List_Shortcodes__shortcodes',
64
-            array($this, 'additional_recipient_details_shortcodes'), 5, 2);
65
-        add_filter('FHEE__EE_Recipient_List_Shortcodes__parser_after',
66
-            array($this, 'additional_recipient_details_parser'), 5, 5);
67
-        add_filter('FHEE__EE_Primary_Registration_List_Shortcodes__shortcodes',
68
-            array($this, 'additional_primary_registration_details_shortcodes'), 5, 2);
69
-        add_filter('FHEE__EE_Primary_Registration_List_Shortcodes__parser_after',
70
-            array($this, 'additional_primary_registration_details_parser'), 5, 5);
71
-        
72
-        /**
73
-         * @since 4.2.0
74
-         */
75
-        add_filter('FHEE__EE_Datetime_Shortcodes__shortcodes', array($this, 'additional_datetime_shortcodes'), 10, 2);
76
-        add_filter('FHEE__EE_Datetime_Shortcodes__parser_after', array($this, 'additional_datetime_parser'), 10, 5);
77
-        
78
-        /**
79
-         * @since 4.3.0
80
-         */
81
-        //eat our own dog food!
82
-        add_action('EE_Brewing_Regular___messages_caf', array($this, 'register_caf_message_types'));
83
-        add_action('EE_Brewing_Regular___messages_caf', array($this, 'register_caf_shortcodes'));
84
-        do_action('EE_Brewing_Regular___messages_caf');
85
-    }
86
-    
87
-    
88
-    /**
89
-     * This just allows us to add additional paths to the autoloader (EED_Messages::autoload_messages()) for the
90
-     * messages system.
91
-     *
92
-     * @param  array $dir_ref original array of paths
93
-     *
94
-     * @return array           appended paths
95
-     */
96
-    public function messages_autoload_paths($dir_ref)
97
-    {
98
-        $dir_ref[] = EE_CAF_LIBRARIES . 'shortcodes/';
99
-        
100
-        return $dir_ref;
101
-    }
102
-    
103
-    
104
-    public function email_messenger_validator_config($validator_config, EE_Email_messenger $messenger)
105
-    {
106
-        $validator_config['attendee_list'] = array(
107
-            'shortcodes' => array('attendee', 'event_list', 'ticket_list', 'question_list'),
108
-            'required'   => array('[ATTENDEE_LIST]')
109
-        );
110
-        $validator_config['question_list'] = array(
111
-            'shortcodes' => array('question'),
112
-            'required'   => array('[QUESTION_LIST]')
113
-        );
114
-        
115
-        return $validator_config;
116
-    }
117
-    
118
-    
119
-    public function html_messenger_validator_config($validator_config, EE_Html_messenger $messenger)
120
-    {
121
-        $validator_config['attendee_list'] = array(
122
-            'shortcodes' => array('attendee', 'question_list'),
123
-            'required'   => array('[ATTENDEE_LIST]')
124
-        );
125
-        $validator_config['question_list'] = array(
126
-            'shortcodes' => array('question'),
127
-            'required'   => array('[QUESTION_LIST]')
128
-        );
129
-        
130
-        return $validator_config;
131
-    }
132
-    
133
-    
134
-    public function pdf_messenger_validator_config($validator_config, EE_Pdf_messenger $messenger)
135
-    {
136
-        $validator_config['attendee_list'] = array(
137
-            'shortcodes' => array('attendee', 'event_list', 'ticket_list', 'question_list'),
138
-            'required'   => array('[ATTENDEE_LIST]')
139
-        );
140
-        $validator_config['question_list'] = array(
141
-            'shortcodes' => array('question'),
142
-            'required'   => array('[QUESTION_LIST]')
143
-        );
144
-        
145
-        return $validator_config;
146
-    }
147
-    
148
-    
149
-    public function email_messenger_template_fields($template_fields, EE_Email_messenger $messenger)
150
-    {
151
-        $template_fields['extra']['content']['question_list'] = array(
152
-            'input'               => 'textarea',
153
-            'label'               => '[QUESTION_LIST]',
154
-            'type'                => 'string',
155
-            'required'            => true,
156
-            'validation'          => true,
157
-            'format'              => '%s',
158
-            'css_class'           => 'large-text',
159
-            'rows'                => '5',
160
-            'shortcodes_required' => array('[QUESTION_LIST]')
161
-        );
162
-        
163
-        return $template_fields;
164
-    }
165
-    
166
-    
167
-    public function html_messenger_template_fields($template_fields, EE_Html_messenger $messenger)
168
-    {
169
-        $template_fields['extra']['content']['question_list'] = array(
170
-            'input'               => 'textarea',
171
-            'label'               => '[QUESTION_LIST]',
172
-            'type'                => 'string',
173
-            'required'            => true,
174
-            'validation'          => true,
175
-            'format'              => '%s',
176
-            'css_class'           => 'large-text',
177
-            'rows'                => '5',
178
-            'shortcodes_required' => array('[QUESTION_LIST]')
179
-        );
180
-        
181
-        return $template_fields;
182
-    }
183
-    
184
-    
185
-    public function pdf_messenger_template_fields($template_fields, EE_Pdf_messenger $messenger)
186
-    {
187
-        $template_fields['extra']['content']['question_list'] = array(
188
-            'input'               => 'textarea',
189
-            'label'               => '[QUESTION_LIST]',
190
-            'type'                => 'string',
191
-            'required'            => true,
192
-            'validation'          => true,
193
-            'format'              => '%s',
194
-            'css_class'           => 'large-text',
195
-            'rows'                => '5',
196
-            'shortcodes_required' => array('[QUESTION_LIST]')
197
-        );
198
-        
199
-        return $template_fields;
200
-    }
201
-    
202
-    
203
-    public function new_default_templates(
204
-        $contents,
205
-        $actual_path,
206
-        EE_messenger $messenger,
207
-        EE_message_type $message_type,
208
-        $field,
209
-        $context,
210
-        EE_Messages_Template_Pack $template_pack
211
-    ) {
212
-        
213
-        //we're only modifying templates for the default template pack
214
-        if ( ! $template_pack instanceof EE_Messages_Template_Pack_Default) {
215
-            return $contents;
216
-        }
217
-        
218
-        //the template file name we're replacing contents for.
219
-        $template_file_prefix = $field . '_' . $context;
220
-        $msg_prefix           = $messenger->name . '_' . $message_type->name . '_';
221
-        
222
-        $base_path = EE_CAF_LIBRARIES . 'messages/defaults/default/';
223
-        
224
-        if ($messenger->name == 'email' && $message_type->name == 'registration') {
25
+	/**
26
+	 * constructor.
27
+	 */
28
+	public function __construct()
29
+	{
30
+		$this->_caf_hooks();
31
+	}
32
+    
33
+    
34
+	/**
35
+	 * Contains all the hooks filters for setting up caffeinated messages functionality.
36
+	 *
37
+	 * @since 4.3.2
38
+	 *
39
+	 * @return void
40
+	 */
41
+	private function _caf_hooks()
42
+	{
43
+		add_filter('FHEE__EED_Messages___set_messages_paths___MSG_PATHS', array($this, 'messages_autoload_paths'), 5);
44
+		add_filter('FHEE__EE_Email_messenger__get_validator_config', array($this, 'email_messenger_validator_config'),
45
+			5, 2);
46
+		add_filter('FHEE__EE_Email_messenger__get_template_fields', array($this, 'email_messenger_template_fields'), 5,
47
+			2);
48
+		add_filter('FHEE__EE_Html_messenger__get_template_fields', array($this, 'html_messenger_template_fields'), 5,
49
+			2);
50
+		add_filter('FHEE__EE_Html_messenger__get_validator_config', array($this, 'html_messenger_validator_config'), 5,
51
+			2);
52
+		add_filter('FHEE__EE_Pdf_messenger__get_template_fields', array($this, 'pdf_messenger_template_fields'), 5, 2);
53
+		add_filter('FHEE__EE_Pdf_messenger__get_validator_config', array($this, 'pdf_messenger_validator_config'), 5,
54
+			2);
55
+		add_filter('FHEE__EE_Messages_Template_Pack__get_specific_template__contents',
56
+			array($this, 'new_default_templates'), 5, 7);
57
+		add_filter('FHEE__EE_Messages_Base__get_valid_shortcodes', array($this, 'message_types_valid_shortcodes'), 5,
58
+			2);
59
+        
60
+		//shortcode parsers
61
+		add_filter('FHEE__EE_Attendee_Shortcodes__shortcodes', array($this, 'additional_attendee_shortcodes'), 5, 2);
62
+		add_filter('FHEE__EE_Attendee_Shortcodes__parser_after', array($this, 'additional_attendee_parser'), 5, 5);
63
+		add_filter('FHEE__EE_Recipient_List_Shortcodes__shortcodes',
64
+			array($this, 'additional_recipient_details_shortcodes'), 5, 2);
65
+		add_filter('FHEE__EE_Recipient_List_Shortcodes__parser_after',
66
+			array($this, 'additional_recipient_details_parser'), 5, 5);
67
+		add_filter('FHEE__EE_Primary_Registration_List_Shortcodes__shortcodes',
68
+			array($this, 'additional_primary_registration_details_shortcodes'), 5, 2);
69
+		add_filter('FHEE__EE_Primary_Registration_List_Shortcodes__parser_after',
70
+			array($this, 'additional_primary_registration_details_parser'), 5, 5);
71
+        
72
+		/**
73
+		 * @since 4.2.0
74
+		 */
75
+		add_filter('FHEE__EE_Datetime_Shortcodes__shortcodes', array($this, 'additional_datetime_shortcodes'), 10, 2);
76
+		add_filter('FHEE__EE_Datetime_Shortcodes__parser_after', array($this, 'additional_datetime_parser'), 10, 5);
77
+        
78
+		/**
79
+		 * @since 4.3.0
80
+		 */
81
+		//eat our own dog food!
82
+		add_action('EE_Brewing_Regular___messages_caf', array($this, 'register_caf_message_types'));
83
+		add_action('EE_Brewing_Regular___messages_caf', array($this, 'register_caf_shortcodes'));
84
+		do_action('EE_Brewing_Regular___messages_caf');
85
+	}
86
+    
87
+    
88
+	/**
89
+	 * This just allows us to add additional paths to the autoloader (EED_Messages::autoload_messages()) for the
90
+	 * messages system.
91
+	 *
92
+	 * @param  array $dir_ref original array of paths
93
+	 *
94
+	 * @return array           appended paths
95
+	 */
96
+	public function messages_autoload_paths($dir_ref)
97
+	{
98
+		$dir_ref[] = EE_CAF_LIBRARIES . 'shortcodes/';
99
+        
100
+		return $dir_ref;
101
+	}
102
+    
103
+    
104
+	public function email_messenger_validator_config($validator_config, EE_Email_messenger $messenger)
105
+	{
106
+		$validator_config['attendee_list'] = array(
107
+			'shortcodes' => array('attendee', 'event_list', 'ticket_list', 'question_list'),
108
+			'required'   => array('[ATTENDEE_LIST]')
109
+		);
110
+		$validator_config['question_list'] = array(
111
+			'shortcodes' => array('question'),
112
+			'required'   => array('[QUESTION_LIST]')
113
+		);
114
+        
115
+		return $validator_config;
116
+	}
117
+    
118
+    
119
+	public function html_messenger_validator_config($validator_config, EE_Html_messenger $messenger)
120
+	{
121
+		$validator_config['attendee_list'] = array(
122
+			'shortcodes' => array('attendee', 'question_list'),
123
+			'required'   => array('[ATTENDEE_LIST]')
124
+		);
125
+		$validator_config['question_list'] = array(
126
+			'shortcodes' => array('question'),
127
+			'required'   => array('[QUESTION_LIST]')
128
+		);
129
+        
130
+		return $validator_config;
131
+	}
132
+    
133
+    
134
+	public function pdf_messenger_validator_config($validator_config, EE_Pdf_messenger $messenger)
135
+	{
136
+		$validator_config['attendee_list'] = array(
137
+			'shortcodes' => array('attendee', 'event_list', 'ticket_list', 'question_list'),
138
+			'required'   => array('[ATTENDEE_LIST]')
139
+		);
140
+		$validator_config['question_list'] = array(
141
+			'shortcodes' => array('question'),
142
+			'required'   => array('[QUESTION_LIST]')
143
+		);
144
+        
145
+		return $validator_config;
146
+	}
147
+    
148
+    
149
+	public function email_messenger_template_fields($template_fields, EE_Email_messenger $messenger)
150
+	{
151
+		$template_fields['extra']['content']['question_list'] = array(
152
+			'input'               => 'textarea',
153
+			'label'               => '[QUESTION_LIST]',
154
+			'type'                => 'string',
155
+			'required'            => true,
156
+			'validation'          => true,
157
+			'format'              => '%s',
158
+			'css_class'           => 'large-text',
159
+			'rows'                => '5',
160
+			'shortcodes_required' => array('[QUESTION_LIST]')
161
+		);
162
+        
163
+		return $template_fields;
164
+	}
165
+    
166
+    
167
+	public function html_messenger_template_fields($template_fields, EE_Html_messenger $messenger)
168
+	{
169
+		$template_fields['extra']['content']['question_list'] = array(
170
+			'input'               => 'textarea',
171
+			'label'               => '[QUESTION_LIST]',
172
+			'type'                => 'string',
173
+			'required'            => true,
174
+			'validation'          => true,
175
+			'format'              => '%s',
176
+			'css_class'           => 'large-text',
177
+			'rows'                => '5',
178
+			'shortcodes_required' => array('[QUESTION_LIST]')
179
+		);
180
+        
181
+		return $template_fields;
182
+	}
183
+    
184
+    
185
+	public function pdf_messenger_template_fields($template_fields, EE_Pdf_messenger $messenger)
186
+	{
187
+		$template_fields['extra']['content']['question_list'] = array(
188
+			'input'               => 'textarea',
189
+			'label'               => '[QUESTION_LIST]',
190
+			'type'                => 'string',
191
+			'required'            => true,
192
+			'validation'          => true,
193
+			'format'              => '%s',
194
+			'css_class'           => 'large-text',
195
+			'rows'                => '5',
196
+			'shortcodes_required' => array('[QUESTION_LIST]')
197
+		);
198
+        
199
+		return $template_fields;
200
+	}
201
+    
202
+    
203
+	public function new_default_templates(
204
+		$contents,
205
+		$actual_path,
206
+		EE_messenger $messenger,
207
+		EE_message_type $message_type,
208
+		$field,
209
+		$context,
210
+		EE_Messages_Template_Pack $template_pack
211
+	) {
212
+        
213
+		//we're only modifying templates for the default template pack
214
+		if ( ! $template_pack instanceof EE_Messages_Template_Pack_Default) {
215
+			return $contents;
216
+		}
217
+        
218
+		//the template file name we're replacing contents for.
219
+		$template_file_prefix = $field . '_' . $context;
220
+		$msg_prefix           = $messenger->name . '_' . $message_type->name . '_';
221
+        
222
+		$base_path = EE_CAF_LIBRARIES . 'messages/defaults/default/';
223
+        
224
+		if ($messenger->name == 'email' && $message_type->name == 'registration') {
225 225
             
226
-            switch ($template_file_prefix) {
226
+			switch ($template_file_prefix) {
227 227
                 
228
-                case 'question_list_admin' :
229
-                case 'question_list_attendee' :
230
-                case 'question_list_primary_attendee' :
231
-                    $path     = $base_path . $msg_prefix . 'question_list.template.php';
232
-                    $contents = EEH_Template::display_template($path, array(), true);
233
-                    break;
228
+				case 'question_list_admin' :
229
+				case 'question_list_attendee' :
230
+				case 'question_list_primary_attendee' :
231
+					$path     = $base_path . $msg_prefix . 'question_list.template.php';
232
+					$contents = EEH_Template::display_template($path, array(), true);
233
+					break;
234 234
                 
235
-                case 'attendee_list_primary_attendee' :
236
-                    $path     = $base_path . $msg_prefix . 'attendee_list.template.php';
237
-                    $contents = EEH_Template::display_template($path, array(), true);
238
-                    break;
235
+				case 'attendee_list_primary_attendee' :
236
+					$path     = $base_path . $msg_prefix . 'attendee_list.template.php';
237
+					$contents = EEH_Template::display_template($path, array(), true);
238
+					break;
239 239
                 
240
-                case 'attendee_list_admin' :
241
-                    $path     = $base_path . $msg_prefix . 'attendee_list_admin.template.php';
242
-                    $contents = EEH_Template::display_template($path,
243
-                        array(), true);
244
-                    break;
240
+				case 'attendee_list_admin' :
241
+					$path     = $base_path . $msg_prefix . 'attendee_list_admin.template.php';
242
+					$contents = EEH_Template::display_template($path,
243
+						array(), true);
244
+					break;
245 245
                 
246
-                case 'attendee_list_attendee' :
247
-                    $contents = '';
248
-                    break;
246
+				case 'attendee_list_attendee' :
247
+					$contents = '';
248
+					break;
249 249
                 
250
-                case 'event_list_attendee' :
251
-                    $path     = $base_path . $msg_prefix . 'event_list_attendee.template.php';
252
-                    $contents = EEH_Template::display_template($path, array(), true);
253
-                    break;
254
-            }
255
-        } elseif ($messenger->name == 'email' && $message_type->name == 'newsletter') {
256
-            switch ($template_file_prefix) {
250
+				case 'event_list_attendee' :
251
+					$path     = $base_path . $msg_prefix . 'event_list_attendee.template.php';
252
+					$contents = EEH_Template::display_template($path, array(), true);
253
+					break;
254
+			}
255
+		} elseif ($messenger->name == 'email' && $message_type->name == 'newsletter') {
256
+			switch ($template_file_prefix) {
257 257
                 
258
-                case 'content_attendee' :
259
-                    $path     = $base_path . $msg_prefix . 'content.template.php';
260
-                    $contents = EEH_Template::display_template($path, array(), true);
261
-                    break;
258
+				case 'content_attendee' :
259
+					$path     = $base_path . $msg_prefix . 'content.template.php';
260
+					$contents = EEH_Template::display_template($path, array(), true);
261
+					break;
262 262
                 
263
-                case 'newsletter_content_attendee' :
264
-                    $path     = $base_path . $msg_prefix . 'newsletter_content.template.php';
265
-                    $contents = EEH_Template::display_template($path, array(), true);
266
-                    break;
263
+				case 'newsletter_content_attendee' :
264
+					$path     = $base_path . $msg_prefix . 'newsletter_content.template.php';
265
+					$contents = EEH_Template::display_template($path, array(), true);
266
+					break;
267 267
                 
268
-                case 'newsletter_subject_attendee' :
269
-                    $path     = $base_path . $msg_prefix . 'subject.template.php';
270
-                    $contents = EEH_Template::display_template($path, array(), true);
271
-                    break;
272
-            }
273
-        } elseif ($messenger->name == 'html' && $message_type->name == 'receipt') {
274
-            switch ($template_file_prefix) {
275
-                case 'attendee_list_purchaser' :
276
-                    $path     = $base_path . $msg_prefix . 'attendee_list.template.php';
277
-                    $contents = EEH_Template::display_template($path, array(), true);
278
-                    break;
279
-            }
280
-        }
281
-        
282
-        return $contents;
283
-        
284
-    }
285
-    
286
-    
287
-    public function message_types_valid_shortcodes($valid_shortcodes, EE_Messages_Base $msg)
288
-    {
289
-        //make sure question_list and question are ONLY added for the core message types.  Any other message types will have to explicitly set question_list as a valid shortcode.
290
-        $include_with = array(
291
-            'registration',
292
-            'cancelled_registration',
293
-            'declined_registration',
294
-            'not_approved_registration',
295
-            'payment_declined',
296
-            'payment_failed',
297
-            'payment_cancelled',
298
-            'payment',
299
-            'payment_reminder',
300
-            'pending_approval',
301
-            'registration_summary',
302
-            'invoice',
303
-            'receipt'
304
-        );
305
-        if ($msg instanceof EE_message_type && in_array($msg->name, $include_with)) {
306
-            $contexts = array_keys($msg->get_contexts());
307
-            foreach ($contexts as $context) {
308
-                $valid_shortcodes[$context][] = 'question_list';
309
-                $valid_shortcodes[$context][] = 'question';
310
-            }
311
-        }
312
-        
313
-        return $valid_shortcodes;
314
-    }
315
-    
316
-    
317
-    public function additional_attendee_shortcodes($shortcodes, $shortcode_parser)
318
-    {
319
-        $shortcodes['[ANSWER_*]'] = __('This is a special dynamic shortcode. Right after the "*", add the exact text of a existing question, and if there is an answer for that question for this registrant, that will take the place of this shortcode.',
320
-            'event_espresso');
321
-        
322
-        return $shortcodes;
323
-    }
324
-    
325
-    
326
-    public function additional_attendee_parser($parsed, $shortcode, $data, $extra_data, $shortcode_parser)
327
-    {
328
-        
329
-        if (strpos($shortcode,
330
-                '[ANSWER_*') === false || ! isset($extra_data['data']->questions) || ! isset($extra_data['data']->registrations)
331
-        ) {
332
-            return $parsed;
333
-        }
334
-        
335
-        //let's get the question from the code.
336
-        $shortcode = str_replace('[ANSWER_*', '', $shortcode);
337
-        $shortcode = trim(str_replace(']', '', $shortcode));
338
-        
339
-        $registration = $data instanceof EE_Registration ? $data : null;
340
-        $registration = ! $registration instanceof EE_Registration && is_array($extra_data) && isset($extra_data['data']) && $extra_data['data'] instanceof EE_Registration ? $extra_data['data'] : $registration;
341
-        
342
-        $aee = $data instanceof EE_Messages_Addressee ? $data : null;
343
-        $aee = ! $aee instanceof EE_Messages_Addressee && is_array($extra_data) && isset($extra_data['data']) ? $extra_data['data'] : $aee;
344
-        
345
-        if ( ! $registration instanceof EE_Registration || ! $aee instanceof EE_Messages_Addressee) {
346
-            return $parsed;
347
-        }
348
-        
349
-        //now let's figure out which question has this text.
350
-        foreach ($aee->questions as $ansid => $question) {
351
-            if (
352
-                $question instanceof EE_Question
353
-                && trim($question->display_text()) == trim($shortcode)
354
-                && isset($aee->registrations[$registration->ID()]['ans_objs'][$ansid])
355
-            ) {
356
-                return $aee->registrations[$registration->ID()]['ans_objs'][$ansid]->get_pretty('ANS_value',
357
-                    'no_wpautop');
358
-            }
359
-        }
360
-        
361
-        //nothing!
362
-        return $parsed;
363
-    }
364
-    
365
-    
366
-    /**
367
-     * Callback for additional shortcodes filter for adding additional datetime shortcodes.
368
-     *
369
-     * @since  4.2
370
-     *
371
-     * @param  array                  $shortcodes         array of shortcodes and
372
-     *                                                    descriptions
373
-     * @param  EE_Datetime_Shortcodes $shortcode_parser   EE_Shortcodes object
374
-     *
375
-     * @return array                                        array of shortcodes and
376
-     *                                                        descriptions
377
-     */
378
-    public function additional_datetime_shortcodes($shortcodes, $shortcode_parser)
379
-    {
380
-        $shortcodes['[DTT_NAME]']          = __('This will be parsed to the Title given for a Datetime',
381
-            'event_espresso');
382
-        $shortcodes['[DTT_DESCRIPTION]']   = __('This will be parsed to the description for a Datetime',
383
-            'event_espresso');
384
-        $shortcodes['[DTT_NAME_OR_DATES]'] = __('When parsed, if the Datetime has a name, it is used, otherwise a formatted string including the start date and end date will be used.',
385
-            'event_espresso');
386
-        
387
-        return $shortcodes;
388
-    }
389
-    
390
-    
391
-    /**
392
-     * Callback for additional shortcodes parser filter used for adding parser for new
393
-     * Datetime shortcodes
394
-     *
395
-     * @since  4.2
396
-     *
397
-     * @param  string                 $parsed     The finished parsed string for the given shortcode.
398
-     * @param  string                 $shortcode  The shortcode being parsed.
399
-     * @param  object                 $data       The incoming data object for the Shortcode Parser.
400
-     * @param  object                 $extra_data The incoming extra date object for the Shortcode
401
-     *                                            Parser.
402
-     * @param  EE_Datetime_Shortcodes $shortcode_parser
403
-     *
404
-     * @return string                   The new parsed string.
405
-     */
406
-    public function additional_datetime_parser($parsed, $shortcode, $data, $extra_data, $shortcode_parser)
407
-    {
408
-        
409
-        if ( ! $data instanceof EE_Datetime) {
410
-            return ''; //get out because we can only parse with the datetime object.
411
-        }
412
-        
413
-        switch ($shortcode) {
414
-            case '[DTT_NAME]' :
415
-                return $data->name();
416
-                break;
417
-            case '[DTT_DESCRIPTION]' :
418
-                return $data->description();
419
-                break;
420
-            case '[DTT_NAME_OR_DATES]' :
421
-                return $data->get_dtt_display_name(true);
422
-                break;
423
-            default :
424
-                return $parsed;
425
-                break;
426
-        }
427
-    }
428
-    
429
-    
430
-    public function additional_recipient_details_shortcodes($shortcodes, $shortcode_parser)
431
-    {
432
-        $shortcodes['[RECIPIENT_QUESTION_LIST]'] = __('This is used to indicate where you want the list of questions and answers to show for the person receiving the message.',
433
-            'event_espresso');
434
-        
435
-        return $shortcodes;
436
-    }
437
-    
438
-    
439
-    /**
440
-     * Callback for FHEE__EE_Recipient_List_Shortcodes__parser_after filter (dynamic filter).
441
-     *
442
-     * @param string         $parsed           The original parsed content for the shortcode
443
-     * @param string         $shortcode        The shortcode being parsed
444
-     * @param array          $data             The shortcode parser data array
445
-     * @param array          $extra_data       The shortcode parser extra data array
446
-     * @param \EE_Shortcodes $shortcode_parser Shortcode parser.
447
-     *
448
-     * @return string
449
-     */
450
-    public function additional_recipient_details_parser($parsed, $shortcode, $data, $extra_data, $shortcode_parser)
451
-    {
452
-        
453
-        if (array($data) && ! isset($data['data'])) {
454
-            return $parsed;
455
-        }
456
-        
457
-        $recipient = $data['data'] instanceof EE_Messages_Addressee ? $data['data'] : null;
458
-        $recipient = ! $recipient instanceof EE_Messages_Addressee && array($extra_data) && isset($extra_data['data']) && $extra_data['data'] instanceof EE_Messages_Addressee ? $extra_data['data'] : $recipient;
459
-        
460
-        if ( ! $recipient instanceof EE_Messages_Addressee) {
461
-            return $parsed;
462
-        }
463
-        
464
-        switch ($shortcode) {
465
-            case '[RECIPIENT_QUESTION_LIST]' :
466
-                $att                       = $recipient->att_obj;
467
-                $registrations_on_attendee = $att instanceof EE_Attendee ? $recipient->attendees[$att->ID()]['reg_objs'] : array();
468
-                $registrations_on_attendee = empty($registrations_on_attendee) && $recipient->reg_obj instanceof EE_Registration ? array($recipient->reg_obj) : $registrations_on_attendee;
469
-                $answers                   = array();
268
+				case 'newsletter_subject_attendee' :
269
+					$path     = $base_path . $msg_prefix . 'subject.template.php';
270
+					$contents = EEH_Template::display_template($path, array(), true);
271
+					break;
272
+			}
273
+		} elseif ($messenger->name == 'html' && $message_type->name == 'receipt') {
274
+			switch ($template_file_prefix) {
275
+				case 'attendee_list_purchaser' :
276
+					$path     = $base_path . $msg_prefix . 'attendee_list.template.php';
277
+					$contents = EEH_Template::display_template($path, array(), true);
278
+					break;
279
+			}
280
+		}
281
+        
282
+		return $contents;
283
+        
284
+	}
285
+    
286
+    
287
+	public function message_types_valid_shortcodes($valid_shortcodes, EE_Messages_Base $msg)
288
+	{
289
+		//make sure question_list and question are ONLY added for the core message types.  Any other message types will have to explicitly set question_list as a valid shortcode.
290
+		$include_with = array(
291
+			'registration',
292
+			'cancelled_registration',
293
+			'declined_registration',
294
+			'not_approved_registration',
295
+			'payment_declined',
296
+			'payment_failed',
297
+			'payment_cancelled',
298
+			'payment',
299
+			'payment_reminder',
300
+			'pending_approval',
301
+			'registration_summary',
302
+			'invoice',
303
+			'receipt'
304
+		);
305
+		if ($msg instanceof EE_message_type && in_array($msg->name, $include_with)) {
306
+			$contexts = array_keys($msg->get_contexts());
307
+			foreach ($contexts as $context) {
308
+				$valid_shortcodes[$context][] = 'question_list';
309
+				$valid_shortcodes[$context][] = 'question';
310
+			}
311
+		}
312
+        
313
+		return $valid_shortcodes;
314
+	}
315
+    
316
+    
317
+	public function additional_attendee_shortcodes($shortcodes, $shortcode_parser)
318
+	{
319
+		$shortcodes['[ANSWER_*]'] = __('This is a special dynamic shortcode. Right after the "*", add the exact text of a existing question, and if there is an answer for that question for this registrant, that will take the place of this shortcode.',
320
+			'event_espresso');
321
+        
322
+		return $shortcodes;
323
+	}
324
+    
325
+    
326
+	public function additional_attendee_parser($parsed, $shortcode, $data, $extra_data, $shortcode_parser)
327
+	{
328
+        
329
+		if (strpos($shortcode,
330
+				'[ANSWER_*') === false || ! isset($extra_data['data']->questions) || ! isset($extra_data['data']->registrations)
331
+		) {
332
+			return $parsed;
333
+		}
334
+        
335
+		//let's get the question from the code.
336
+		$shortcode = str_replace('[ANSWER_*', '', $shortcode);
337
+		$shortcode = trim(str_replace(']', '', $shortcode));
338
+        
339
+		$registration = $data instanceof EE_Registration ? $data : null;
340
+		$registration = ! $registration instanceof EE_Registration && is_array($extra_data) && isset($extra_data['data']) && $extra_data['data'] instanceof EE_Registration ? $extra_data['data'] : $registration;
341
+        
342
+		$aee = $data instanceof EE_Messages_Addressee ? $data : null;
343
+		$aee = ! $aee instanceof EE_Messages_Addressee && is_array($extra_data) && isset($extra_data['data']) ? $extra_data['data'] : $aee;
344
+        
345
+		if ( ! $registration instanceof EE_Registration || ! $aee instanceof EE_Messages_Addressee) {
346
+			return $parsed;
347
+		}
348
+        
349
+		//now let's figure out which question has this text.
350
+		foreach ($aee->questions as $ansid => $question) {
351
+			if (
352
+				$question instanceof EE_Question
353
+				&& trim($question->display_text()) == trim($shortcode)
354
+				&& isset($aee->registrations[$registration->ID()]['ans_objs'][$ansid])
355
+			) {
356
+				return $aee->registrations[$registration->ID()]['ans_objs'][$ansid]->get_pretty('ANS_value',
357
+					'no_wpautop');
358
+			}
359
+		}
360
+        
361
+		//nothing!
362
+		return $parsed;
363
+	}
364
+    
365
+    
366
+	/**
367
+	 * Callback for additional shortcodes filter for adding additional datetime shortcodes.
368
+	 *
369
+	 * @since  4.2
370
+	 *
371
+	 * @param  array                  $shortcodes         array of shortcodes and
372
+	 *                                                    descriptions
373
+	 * @param  EE_Datetime_Shortcodes $shortcode_parser   EE_Shortcodes object
374
+	 *
375
+	 * @return array                                        array of shortcodes and
376
+	 *                                                        descriptions
377
+	 */
378
+	public function additional_datetime_shortcodes($shortcodes, $shortcode_parser)
379
+	{
380
+		$shortcodes['[DTT_NAME]']          = __('This will be parsed to the Title given for a Datetime',
381
+			'event_espresso');
382
+		$shortcodes['[DTT_DESCRIPTION]']   = __('This will be parsed to the description for a Datetime',
383
+			'event_espresso');
384
+		$shortcodes['[DTT_NAME_OR_DATES]'] = __('When parsed, if the Datetime has a name, it is used, otherwise a formatted string including the start date and end date will be used.',
385
+			'event_espresso');
386
+        
387
+		return $shortcodes;
388
+	}
389
+    
390
+    
391
+	/**
392
+	 * Callback for additional shortcodes parser filter used for adding parser for new
393
+	 * Datetime shortcodes
394
+	 *
395
+	 * @since  4.2
396
+	 *
397
+	 * @param  string                 $parsed     The finished parsed string for the given shortcode.
398
+	 * @param  string                 $shortcode  The shortcode being parsed.
399
+	 * @param  object                 $data       The incoming data object for the Shortcode Parser.
400
+	 * @param  object                 $extra_data The incoming extra date object for the Shortcode
401
+	 *                                            Parser.
402
+	 * @param  EE_Datetime_Shortcodes $shortcode_parser
403
+	 *
404
+	 * @return string                   The new parsed string.
405
+	 */
406
+	public function additional_datetime_parser($parsed, $shortcode, $data, $extra_data, $shortcode_parser)
407
+	{
408
+        
409
+		if ( ! $data instanceof EE_Datetime) {
410
+			return ''; //get out because we can only parse with the datetime object.
411
+		}
412
+        
413
+		switch ($shortcode) {
414
+			case '[DTT_NAME]' :
415
+				return $data->name();
416
+				break;
417
+			case '[DTT_DESCRIPTION]' :
418
+				return $data->description();
419
+				break;
420
+			case '[DTT_NAME_OR_DATES]' :
421
+				return $data->get_dtt_display_name(true);
422
+				break;
423
+			default :
424
+				return $parsed;
425
+				break;
426
+		}
427
+	}
428
+    
429
+    
430
+	public function additional_recipient_details_shortcodes($shortcodes, $shortcode_parser)
431
+	{
432
+		$shortcodes['[RECIPIENT_QUESTION_LIST]'] = __('This is used to indicate where you want the list of questions and answers to show for the person receiving the message.',
433
+			'event_espresso');
434
+        
435
+		return $shortcodes;
436
+	}
437
+    
438
+    
439
+	/**
440
+	 * Callback for FHEE__EE_Recipient_List_Shortcodes__parser_after filter (dynamic filter).
441
+	 *
442
+	 * @param string         $parsed           The original parsed content for the shortcode
443
+	 * @param string         $shortcode        The shortcode being parsed
444
+	 * @param array          $data             The shortcode parser data array
445
+	 * @param array          $extra_data       The shortcode parser extra data array
446
+	 * @param \EE_Shortcodes $shortcode_parser Shortcode parser.
447
+	 *
448
+	 * @return string
449
+	 */
450
+	public function additional_recipient_details_parser($parsed, $shortcode, $data, $extra_data, $shortcode_parser)
451
+	{
452
+        
453
+		if (array($data) && ! isset($data['data'])) {
454
+			return $parsed;
455
+		}
456
+        
457
+		$recipient = $data['data'] instanceof EE_Messages_Addressee ? $data['data'] : null;
458
+		$recipient = ! $recipient instanceof EE_Messages_Addressee && array($extra_data) && isset($extra_data['data']) && $extra_data['data'] instanceof EE_Messages_Addressee ? $extra_data['data'] : $recipient;
459
+        
460
+		if ( ! $recipient instanceof EE_Messages_Addressee) {
461
+			return $parsed;
462
+		}
463
+        
464
+		switch ($shortcode) {
465
+			case '[RECIPIENT_QUESTION_LIST]' :
466
+				$att                       = $recipient->att_obj;
467
+				$registrations_on_attendee = $att instanceof EE_Attendee ? $recipient->attendees[$att->ID()]['reg_objs'] : array();
468
+				$registrations_on_attendee = empty($registrations_on_attendee) && $recipient->reg_obj instanceof EE_Registration ? array($recipient->reg_obj) : $registrations_on_attendee;
469
+				$answers                   = array();
470 470
                 
471
-                $template         = is_array($data['template']) && isset($data['template']['question_list']) ? $data['template']['question_list'] : $extra_data['template']['question_list'];
472
-                $valid_shortcodes = array('question');
471
+				$template         = is_array($data['template']) && isset($data['template']['question_list']) ? $data['template']['question_list'] : $extra_data['template']['question_list'];
472
+				$valid_shortcodes = array('question');
473 473
                 
474
-                //if the context is main_content then get all answers for all registrations on this attendee
475
-                if ($data['data'] instanceof EE_Messages_Addressee) {
474
+				//if the context is main_content then get all answers for all registrations on this attendee
475
+				if ($data['data'] instanceof EE_Messages_Addressee) {
476 476
                     
477
-                    foreach ($registrations_on_attendee as $reg) {
478
-                        if ($reg instanceof EE_Registration) {
479
-                            $anss = ! empty($recipient->registrations[$reg->ID()]['ans_objs']) ? $recipient->registrations[$reg->ID()]['ans_objs'] : array();
480
-                            foreach ($anss as $ans) {
481
-                                if ($ans instanceof EE_Answer) {
482
-                                    $answers[$ans->ID()] = $ans;
483
-                                }
484
-                            }
485
-                        }
486
-                    }
487
-                }
477
+					foreach ($registrations_on_attendee as $reg) {
478
+						if ($reg instanceof EE_Registration) {
479
+							$anss = ! empty($recipient->registrations[$reg->ID()]['ans_objs']) ? $recipient->registrations[$reg->ID()]['ans_objs'] : array();
480
+							foreach ($anss as $ans) {
481
+								if ($ans instanceof EE_Answer) {
482
+									$answers[$ans->ID()] = $ans;
483
+								}
484
+							}
485
+						}
486
+					}
487
+				}
488 488
                 
489
-                //if the context is the event list parser, then let's return just the answers for all registrations attached to the recipient for that event.
490
-                if ($data['data'] instanceof EE_Event) {
491
-                    $event = $data['data'];
492
-                    foreach ($registrations_on_attendee as $reg) {
493
-                        if ($reg instanceof EE_Registration && $reg->event_ID() == $event->ID()) {
494
-                            $anss = ! empty($recipient->registrations[$reg->ID()]['ans_objs']) ? $recipient->registrations[$reg->ID()]['ans_objs'] : array();
495
-                            foreach ($anss as $ans) {
496
-                                if ($ans instanceof EE_Answer) {
497
-                                    $answers[$ans->ID()] = $ans;
498
-                                }
499
-                            }
500
-                        }
501
-                    }
502
-                }
489
+				//if the context is the event list parser, then let's return just the answers for all registrations attached to the recipient for that event.
490
+				if ($data['data'] instanceof EE_Event) {
491
+					$event = $data['data'];
492
+					foreach ($registrations_on_attendee as $reg) {
493
+						if ($reg instanceof EE_Registration && $reg->event_ID() == $event->ID()) {
494
+							$anss = ! empty($recipient->registrations[$reg->ID()]['ans_objs']) ? $recipient->registrations[$reg->ID()]['ans_objs'] : array();
495
+							foreach ($anss as $ans) {
496
+								if ($ans instanceof EE_Answer) {
497
+									$answers[$ans->ID()] = $ans;
498
+								}
499
+							}
500
+						}
501
+					}
502
+				}
503 503
                 
504
-                $questions = $questions = isset($recipient->questions) ? $recipient->questions : array();
504
+				$questions = $questions = isset($recipient->questions) ? $recipient->questions : array();
505 505
                 
506
-                //if $extra_data does not have a 'data' key then let's make sure we add it and set the EE_Messages_Addressee
507
-                //object on it.
508
-                if ( ! isset( $extra_data['data'] ) ) {
509
-                    $extra_data['data'] = $recipient;
510
-                }
506
+				//if $extra_data does not have a 'data' key then let's make sure we add it and set the EE_Messages_Addressee
507
+				//object on it.
508
+				if ( ! isset( $extra_data['data'] ) ) {
509
+					$extra_data['data'] = $recipient;
510
+				}
511 511
                 
512
-                return $this->_parse_question_list_for_primary_or_recipient_registration(
513
-                    $shortcode_parser,
514
-                    $questions,
515
-                    $answers,
516
-                    $template,
517
-                    $valid_shortcodes,
518
-                    $extra_data
519
-                );
520
-                break;
512
+				return $this->_parse_question_list_for_primary_or_recipient_registration(
513
+					$shortcode_parser,
514
+					$questions,
515
+					$answers,
516
+					$template,
517
+					$valid_shortcodes,
518
+					$extra_data
519
+				);
520
+				break;
521 521
             
522
-            default :
523
-                return $parsed;
524
-                break;
525
-        }
526
-    }
527
-    
528
-    
529
-    public function additional_primary_registration_details_shortcodes($shortcodes, $shortcode_parser)
530
-    {
531
-        $shortcodes['[PRIMARY_REGISTRANT_QUESTION_LIST]'] = __('This is used to indicate the questions and answers for the primary_registrant. It should be placed in the "[attendee_list]" field',
532
-            'event_espresso');
533
-        
534
-        return $shortcodes;
535
-    }
536
-    
537
-    
538
-    /**
539
-     * Callback for FHEE__EE_Primary_Registration_List_Shortcodes__parser_after filter (dynamic filter).
540
-     *
541
-     * @param string         $parsed           The original parsed content for the shortcode
542
-     * @param string         $shortcode        The shortcode being parsed
543
-     * @param array          $data             The shortcode parser data array
544
-     * @param array          $extra_data       The shortcode parser extra data array
545
-     * @param \EE_Shortcodes $shortcode_parser Shortcode parser.
546
-     *
547
-     * @return string
548
-     */
549
-    public function additional_primary_registration_details_parser(
550
-        $parsed,
551
-        $shortcode,
552
-        $data,
553
-        $extra_data,
554
-        $shortcode_parser
555
-    ) {
556
-        if (array($data) && ! isset($data['data'])) {
557
-            return $parsed;
558
-        }
559
-        
560
-        $recipient = $data['data'] instanceof EE_Messages_Addressee ? $data['data'] : null;
561
-        $recipient = ! $recipient instanceof EE_Messages_Addressee && array($extra_data) && isset($extra_data['data']) && $extra_data['data'] instanceof EE_Messages_Addressee ? $extra_data['data'] : $recipient;
562
-        
563
-        if ( ! $recipient instanceof EE_Messages_Addressee) {
564
-            return $parsed;
565
-        }
566
-        
567
-        switch ($shortcode) {
568
-            case '[PRIMARY_REGISTRANT_QUESTION_LIST]' :
569
-                if ( ! $recipient->primary_att_obj instanceof EE_Attendee || ! $recipient->primary_reg_obj instanceof EE_Registration) {
570
-                    return '';
571
-                }
572
-                $registration     = $recipient->primary_reg_obj;
573
-                $answers = isset($recipient->registrations[$registration->ID()]['ans_objs'])
574
-                    ? $recipient->registrations[$registration->ID()]['ans_objs']
575
-                    : array();
576
-                if (empty($answers)) {
577
-                    return '';
578
-                }
579
-                $template         = is_array($data['template']) && isset($data['template']['question_list']) ? $data['template']['question_list'] : $extra_data['template']['question_list'];
580
-                $valid_shortcodes = array('question');
581
-                $answers          = $recipient->registrations[$registration->ID()]['ans_objs'];
582
-                $questions = isset($recipient->questions) ? $recipient->questions : array();
583
-                //if $extra_data does not have a 'data' key then let's make sure we add it and set the EE_Messages_Addressee
584
-                //object on it.
585
-                if ( ! isset( $extra_data['data'] ) ){
586
-                    $extra_data['data'] = $recipient;
587
-                }
588
-                return $this->_parse_question_list_for_primary_or_recipient_registration(
589
-                    $shortcode_parser,
590
-                    $questions,
591
-                    $answers,
592
-                    $template,
593
-                    $valid_shortcodes,
594
-                    $extra_data
595
-                );
596
-                break;
522
+			default :
523
+				return $parsed;
524
+				break;
525
+		}
526
+	}
527
+    
528
+    
529
+	public function additional_primary_registration_details_shortcodes($shortcodes, $shortcode_parser)
530
+	{
531
+		$shortcodes['[PRIMARY_REGISTRANT_QUESTION_LIST]'] = __('This is used to indicate the questions and answers for the primary_registrant. It should be placed in the "[attendee_list]" field',
532
+			'event_espresso');
533
+        
534
+		return $shortcodes;
535
+	}
536
+    
537
+    
538
+	/**
539
+	 * Callback for FHEE__EE_Primary_Registration_List_Shortcodes__parser_after filter (dynamic filter).
540
+	 *
541
+	 * @param string         $parsed           The original parsed content for the shortcode
542
+	 * @param string         $shortcode        The shortcode being parsed
543
+	 * @param array          $data             The shortcode parser data array
544
+	 * @param array          $extra_data       The shortcode parser extra data array
545
+	 * @param \EE_Shortcodes $shortcode_parser Shortcode parser.
546
+	 *
547
+	 * @return string
548
+	 */
549
+	public function additional_primary_registration_details_parser(
550
+		$parsed,
551
+		$shortcode,
552
+		$data,
553
+		$extra_data,
554
+		$shortcode_parser
555
+	) {
556
+		if (array($data) && ! isset($data['data'])) {
557
+			return $parsed;
558
+		}
559
+        
560
+		$recipient = $data['data'] instanceof EE_Messages_Addressee ? $data['data'] : null;
561
+		$recipient = ! $recipient instanceof EE_Messages_Addressee && array($extra_data) && isset($extra_data['data']) && $extra_data['data'] instanceof EE_Messages_Addressee ? $extra_data['data'] : $recipient;
562
+        
563
+		if ( ! $recipient instanceof EE_Messages_Addressee) {
564
+			return $parsed;
565
+		}
566
+        
567
+		switch ($shortcode) {
568
+			case '[PRIMARY_REGISTRANT_QUESTION_LIST]' :
569
+				if ( ! $recipient->primary_att_obj instanceof EE_Attendee || ! $recipient->primary_reg_obj instanceof EE_Registration) {
570
+					return '';
571
+				}
572
+				$registration     = $recipient->primary_reg_obj;
573
+				$answers = isset($recipient->registrations[$registration->ID()]['ans_objs'])
574
+					? $recipient->registrations[$registration->ID()]['ans_objs']
575
+					: array();
576
+				if (empty($answers)) {
577
+					return '';
578
+				}
579
+				$template         = is_array($data['template']) && isset($data['template']['question_list']) ? $data['template']['question_list'] : $extra_data['template']['question_list'];
580
+				$valid_shortcodes = array('question');
581
+				$answers          = $recipient->registrations[$registration->ID()]['ans_objs'];
582
+				$questions = isset($recipient->questions) ? $recipient->questions : array();
583
+				//if $extra_data does not have a 'data' key then let's make sure we add it and set the EE_Messages_Addressee
584
+				//object on it.
585
+				if ( ! isset( $extra_data['data'] ) ){
586
+					$extra_data['data'] = $recipient;
587
+				}
588
+				return $this->_parse_question_list_for_primary_or_recipient_registration(
589
+					$shortcode_parser,
590
+					$questions,
591
+					$answers,
592
+					$template,
593
+					$valid_shortcodes,
594
+					$extra_data
595
+				);
596
+				break;
597 597
             
598
-            default :
599
-                return $parsed;
600
-                break;
601
-        }
602
-    }
603
-    
604
-    
605
-    /**
606
-     * Takes care of registering the  message types that are only available in caffeinated EE.
607
-     *
608
-     * @since   4.3.2
609
-     *
610
-     * @return  void
611
-     */
612
-    public function register_caf_message_types()
613
-    {
614
-        //register newsletter message type
615
-        $setup_args = array(
616
-            'mtfilename'                  => 'EE_Newsletter_message_type.class.php',
617
-            'autoloadpaths'               => array(
618
-                EE_CAF_LIBRARIES . 'messages/message_type/newsletter/'
619
-            ),
620
-            'messengers_to_activate_with' => array('email'),
621
-            'messengers_to_validate_with' => array('email'),
622
-            'messengers_supporting_default_template_pack_with' => array('email')
623
-        );
624
-        EE_Register_Message_Type::register('newsletter', $setup_args);
625
-        
626
-        //register payment reminder message type
627
-        $setup_args = array(
628
-            'mtfilename'                  => 'EE_Payment_Reminder_message_type.class.php',
629
-            'autoloadpaths'               => array(EE_CAF_LIBRARIES . 'messages/message_type/payment_reminder/'),
630
-            'messengers_to_activate_with' => array('email'),
631
-            'messengers_to_validate_with' => array('email'),
632
-            'messengers_supporting_default_template_pack_with' => array('email')
633
-        );
634
-        EE_Register_Message_Type::register('payment_reminder', $setup_args);
635
-        
636
-        //register payment declined message type
637
-        $setup_args = array(
638
-            'mtfilename'                  => 'EE_Payment_Declined_message_type.class.php',
639
-            'autoloadpaths'               => array(EE_CAF_LIBRARIES . 'messages/message_type/payment_declined/'),
640
-            'messengers_to_activate_with' => array('email'),
641
-            'messengers_to_validate_with' => array('email'),
642
-            'messengers_supporting_default_template_pack_with' => array('email')
643
-        );
644
-        EE_Register_Message_Type::register('payment_declined', $setup_args);
645
-        
646
-        //register registration declined message type
647
-        $setup_args = array(
648
-            'mtfilename'                  => 'EE_Declined_Registration_message_type.class.php',
649
-            'autoloadpaths'               => array(EE_CAF_LIBRARIES . 'messages/message_type/declined_registration/'),
650
-            'messengers_to_activate_with' => array('email'),
651
-            'messengers_to_validate_with' => array('email'),
652
-            'messengers_supporting_default_template_pack_with' => array('email')
653
-        );
654
-        EE_Register_Message_Type::register('declined_registration', $setup_args);
655
-        
656
-        //register registration cancelled message type
657
-        $setup_args = array(
658
-            'mtfilename'                  => 'EE_Cancelled_Registration_message_type.class.php',
659
-            'autoloadpaths'               => array(EE_CAF_LIBRARIES . 'messages/message_type/cancelled_registration/'),
660
-            'messengers_to_activate_with' => array('email'),
661
-            'messengers_to_validate_with' => array('email'),
662
-            'messengers_supporting_default_template_pack_with' => array('email')
663
-        );
664
-        EE_Register_Message_Type::register('cancelled_registration', $setup_args);
665
-        
666
-        
667
-        //register payment failed message type
668
-        $setup_args = array(
669
-            'mtfilename'                  => 'EE_Payment_Failed_message_type.class.php',
670
-            'autoloadpaths'               => array(EE_CAF_LIBRARIES . 'messages/message_type/payment_failed/'),
671
-            'messengers_to_activate_with' => array('email'),
672
-            'messengers_to_validate_with' => array('email'),
673
-            'messengers_supporting_default_template_pack_with' => array('email')
674
-        );
675
-        EE_Register_Message_Type::register('payment_failed', $setup_args);
676
-        
677
-        //register payment declined message type
678
-        $setup_args = array(
679
-            'mtfilename'                  => 'EE_Payment_Cancelled_message_type.class.php',
680
-            'autoloadpaths'               => array(EE_CAF_LIBRARIES . 'messages/message_type/payment_cancelled/'),
681
-            'messengers_to_activate_with' => array('email'),
682
-            'messengers_to_validate_with' => array('email'),
683
-            'messengers_supporting_default_template_pack_with' => array('email')
684
-        );
685
-        EE_Register_Message_Type::register('payment_cancelled', $setup_args);
686
-    }
687
-    
688
-    
689
-    /**
690
-     * Takes care of registering the  shortcode libraries implemented with caffeinated EE and set up related items.
691
-     *
692
-     * @since   4.3.2
693
-     *
694
-     * @return void
695
-     */
696
-    public function register_caf_shortcodes()
697
-    {
698
-        $setup_args = array(
699
-            'autoloadpaths'                 => array(
700
-                EE_CAF_LIBRARIES . 'shortcodes/'
701
-            ),
702
-            'msgr_validator_callback'       => array('EE_Newsletter_Shortcodes', 'messenger_validator_config'),
703
-            'msgr_template_fields_callback' => array('EE_Newsletter_Shortcodes', 'messenger_template_fields'),
704
-            'list_type_shortcodes'          => array('[NEWSLETTER_CONTENT]')
705
-        );
706
-        EE_Register_Messages_Shortcode_Library::register('newsletter', $setup_args);
707
-    }
708
-    
709
-    
710
-    /**
711
-     * Parses a question list shortcode using given data and template
712
-     *
713
-     * @param \EE_Shortcodes $shortcode_parser
714
-     * @param EE_Question[]  $questions        An array of questions indexed by answer id.
715
-     * @param EE_Answer[]    $answers          An array of answer objects
716
-     * @param string         $template         Template content to be parsed.
717
-     * @param array          $valid_shortcodes Valid shortcodes for the template being parsed.
718
-     * @param array          $extra_data       Extra data that might be used when parsing the template.
719
-     */
720
-    protected function _parse_question_list_for_primary_or_recipient_registration(
721
-        $shortcode_parser,
722
-        $questions,
723
-        $answers,
724
-        $template,
725
-        $valid_shortcodes,
726
-        $extra_data
727
-    ) {
728
-        $question_list = '';
729
-        /** @var EEH_Parse_Shortcodes $shortcode_helper */
730
-        $shortcode_helper = $shortcode_parser->get_shortcode_helper();
731
-        foreach ($answers as $answer) {
732
-            if ($answer instanceof EE_Answer) {
733
-                //first see if the question is in our $questions array. If not then try to get from answer object.
734
-                $question = isset($questions[$answer->ID()]) ? $questions[$answer->ID()] : null;
735
-                $question = ! $question instanceof EE_Question ? $answer->question() : $question;
736
-                if (
737
-                    ! $question instanceof EE_Question
738
-                    || (
739
-                        $question instanceof EE_Question
740
-                        && $question->admin_only()
741
-                    )
742
-                ) {
743
-                    continue;
744
-                }
745
-                $question_list .= $shortcode_helper->parse_question_list_template(
746
-                    $template,
747
-                    $answer,
748
-                    $valid_shortcodes,
749
-                    $extra_data
750
-                );
751
-            }
752
-        }
753
-        
754
-        return $question_list;
755
-    }
598
+			default :
599
+				return $parsed;
600
+				break;
601
+		}
602
+	}
603
+    
604
+    
605
+	/**
606
+	 * Takes care of registering the  message types that are only available in caffeinated EE.
607
+	 *
608
+	 * @since   4.3.2
609
+	 *
610
+	 * @return  void
611
+	 */
612
+	public function register_caf_message_types()
613
+	{
614
+		//register newsletter message type
615
+		$setup_args = array(
616
+			'mtfilename'                  => 'EE_Newsletter_message_type.class.php',
617
+			'autoloadpaths'               => array(
618
+				EE_CAF_LIBRARIES . 'messages/message_type/newsletter/'
619
+			),
620
+			'messengers_to_activate_with' => array('email'),
621
+			'messengers_to_validate_with' => array('email'),
622
+			'messengers_supporting_default_template_pack_with' => array('email')
623
+		);
624
+		EE_Register_Message_Type::register('newsletter', $setup_args);
625
+        
626
+		//register payment reminder message type
627
+		$setup_args = array(
628
+			'mtfilename'                  => 'EE_Payment_Reminder_message_type.class.php',
629
+			'autoloadpaths'               => array(EE_CAF_LIBRARIES . 'messages/message_type/payment_reminder/'),
630
+			'messengers_to_activate_with' => array('email'),
631
+			'messengers_to_validate_with' => array('email'),
632
+			'messengers_supporting_default_template_pack_with' => array('email')
633
+		);
634
+		EE_Register_Message_Type::register('payment_reminder', $setup_args);
635
+        
636
+		//register payment declined message type
637
+		$setup_args = array(
638
+			'mtfilename'                  => 'EE_Payment_Declined_message_type.class.php',
639
+			'autoloadpaths'               => array(EE_CAF_LIBRARIES . 'messages/message_type/payment_declined/'),
640
+			'messengers_to_activate_with' => array('email'),
641
+			'messengers_to_validate_with' => array('email'),
642
+			'messengers_supporting_default_template_pack_with' => array('email')
643
+		);
644
+		EE_Register_Message_Type::register('payment_declined', $setup_args);
645
+        
646
+		//register registration declined message type
647
+		$setup_args = array(
648
+			'mtfilename'                  => 'EE_Declined_Registration_message_type.class.php',
649
+			'autoloadpaths'               => array(EE_CAF_LIBRARIES . 'messages/message_type/declined_registration/'),
650
+			'messengers_to_activate_with' => array('email'),
651
+			'messengers_to_validate_with' => array('email'),
652
+			'messengers_supporting_default_template_pack_with' => array('email')
653
+		);
654
+		EE_Register_Message_Type::register('declined_registration', $setup_args);
655
+        
656
+		//register registration cancelled message type
657
+		$setup_args = array(
658
+			'mtfilename'                  => 'EE_Cancelled_Registration_message_type.class.php',
659
+			'autoloadpaths'               => array(EE_CAF_LIBRARIES . 'messages/message_type/cancelled_registration/'),
660
+			'messengers_to_activate_with' => array('email'),
661
+			'messengers_to_validate_with' => array('email'),
662
+			'messengers_supporting_default_template_pack_with' => array('email')
663
+		);
664
+		EE_Register_Message_Type::register('cancelled_registration', $setup_args);
665
+        
666
+        
667
+		//register payment failed message type
668
+		$setup_args = array(
669
+			'mtfilename'                  => 'EE_Payment_Failed_message_type.class.php',
670
+			'autoloadpaths'               => array(EE_CAF_LIBRARIES . 'messages/message_type/payment_failed/'),
671
+			'messengers_to_activate_with' => array('email'),
672
+			'messengers_to_validate_with' => array('email'),
673
+			'messengers_supporting_default_template_pack_with' => array('email')
674
+		);
675
+		EE_Register_Message_Type::register('payment_failed', $setup_args);
676
+        
677
+		//register payment declined message type
678
+		$setup_args = array(
679
+			'mtfilename'                  => 'EE_Payment_Cancelled_message_type.class.php',
680
+			'autoloadpaths'               => array(EE_CAF_LIBRARIES . 'messages/message_type/payment_cancelled/'),
681
+			'messengers_to_activate_with' => array('email'),
682
+			'messengers_to_validate_with' => array('email'),
683
+			'messengers_supporting_default_template_pack_with' => array('email')
684
+		);
685
+		EE_Register_Message_Type::register('payment_cancelled', $setup_args);
686
+	}
687
+    
688
+    
689
+	/**
690
+	 * Takes care of registering the  shortcode libraries implemented with caffeinated EE and set up related items.
691
+	 *
692
+	 * @since   4.3.2
693
+	 *
694
+	 * @return void
695
+	 */
696
+	public function register_caf_shortcodes()
697
+	{
698
+		$setup_args = array(
699
+			'autoloadpaths'                 => array(
700
+				EE_CAF_LIBRARIES . 'shortcodes/'
701
+			),
702
+			'msgr_validator_callback'       => array('EE_Newsletter_Shortcodes', 'messenger_validator_config'),
703
+			'msgr_template_fields_callback' => array('EE_Newsletter_Shortcodes', 'messenger_template_fields'),
704
+			'list_type_shortcodes'          => array('[NEWSLETTER_CONTENT]')
705
+		);
706
+		EE_Register_Messages_Shortcode_Library::register('newsletter', $setup_args);
707
+	}
708
+    
709
+    
710
+	/**
711
+	 * Parses a question list shortcode using given data and template
712
+	 *
713
+	 * @param \EE_Shortcodes $shortcode_parser
714
+	 * @param EE_Question[]  $questions        An array of questions indexed by answer id.
715
+	 * @param EE_Answer[]    $answers          An array of answer objects
716
+	 * @param string         $template         Template content to be parsed.
717
+	 * @param array          $valid_shortcodes Valid shortcodes for the template being parsed.
718
+	 * @param array          $extra_data       Extra data that might be used when parsing the template.
719
+	 */
720
+	protected function _parse_question_list_for_primary_or_recipient_registration(
721
+		$shortcode_parser,
722
+		$questions,
723
+		$answers,
724
+		$template,
725
+		$valid_shortcodes,
726
+		$extra_data
727
+	) {
728
+		$question_list = '';
729
+		/** @var EEH_Parse_Shortcodes $shortcode_helper */
730
+		$shortcode_helper = $shortcode_parser->get_shortcode_helper();
731
+		foreach ($answers as $answer) {
732
+			if ($answer instanceof EE_Answer) {
733
+				//first see if the question is in our $questions array. If not then try to get from answer object.
734
+				$question = isset($questions[$answer->ID()]) ? $questions[$answer->ID()] : null;
735
+				$question = ! $question instanceof EE_Question ? $answer->question() : $question;
736
+				if (
737
+					! $question instanceof EE_Question
738
+					|| (
739
+						$question instanceof EE_Question
740
+						&& $question->admin_only()
741
+					)
742
+				) {
743
+					continue;
744
+				}
745
+				$question_list .= $shortcode_helper->parse_question_list_template(
746
+					$template,
747
+					$answer,
748
+					$valid_shortcodes,
749
+					$extra_data
750
+				);
751
+			}
752
+		}
753
+        
754
+		return $question_list;
755
+	}
756 756
 }
Please login to merge, or discard this patch.
Spacing   +23 added lines, -23 removed lines patch added patch discarded remove patch
@@ -95,7 +95,7 @@  discard block
 block discarded – undo
95 95
      */
96 96
     public function messages_autoload_paths($dir_ref)
97 97
     {
98
-        $dir_ref[] = EE_CAF_LIBRARIES . 'shortcodes/';
98
+        $dir_ref[] = EE_CAF_LIBRARIES.'shortcodes/';
99 99
         
100 100
         return $dir_ref;
101 101
     }
@@ -216,10 +216,10 @@  discard block
 block discarded – undo
216 216
         }
217 217
         
218 218
         //the template file name we're replacing contents for.
219
-        $template_file_prefix = $field . '_' . $context;
220
-        $msg_prefix           = $messenger->name . '_' . $message_type->name . '_';
219
+        $template_file_prefix = $field.'_'.$context;
220
+        $msg_prefix           = $messenger->name.'_'.$message_type->name.'_';
221 221
         
222
-        $base_path = EE_CAF_LIBRARIES . 'messages/defaults/default/';
222
+        $base_path = EE_CAF_LIBRARIES.'messages/defaults/default/';
223 223
         
224 224
         if ($messenger->name == 'email' && $message_type->name == 'registration') {
225 225
             
@@ -228,17 +228,17 @@  discard block
 block discarded – undo
228 228
                 case 'question_list_admin' :
229 229
                 case 'question_list_attendee' :
230 230
                 case 'question_list_primary_attendee' :
231
-                    $path     = $base_path . $msg_prefix . 'question_list.template.php';
231
+                    $path     = $base_path.$msg_prefix.'question_list.template.php';
232 232
                     $contents = EEH_Template::display_template($path, array(), true);
233 233
                     break;
234 234
                 
235 235
                 case 'attendee_list_primary_attendee' :
236
-                    $path     = $base_path . $msg_prefix . 'attendee_list.template.php';
236
+                    $path     = $base_path.$msg_prefix.'attendee_list.template.php';
237 237
                     $contents = EEH_Template::display_template($path, array(), true);
238 238
                     break;
239 239
                 
240 240
                 case 'attendee_list_admin' :
241
-                    $path     = $base_path . $msg_prefix . 'attendee_list_admin.template.php';
241
+                    $path     = $base_path.$msg_prefix.'attendee_list_admin.template.php';
242 242
                     $contents = EEH_Template::display_template($path,
243 243
                         array(), true);
244 244
                     break;
@@ -248,7 +248,7 @@  discard block
 block discarded – undo
248 248
                     break;
249 249
                 
250 250
                 case 'event_list_attendee' :
251
-                    $path     = $base_path . $msg_prefix . 'event_list_attendee.template.php';
251
+                    $path     = $base_path.$msg_prefix.'event_list_attendee.template.php';
252 252
                     $contents = EEH_Template::display_template($path, array(), true);
253 253
                     break;
254 254
             }
@@ -256,24 +256,24 @@  discard block
 block discarded – undo
256 256
             switch ($template_file_prefix) {
257 257
                 
258 258
                 case 'content_attendee' :
259
-                    $path     = $base_path . $msg_prefix . 'content.template.php';
259
+                    $path     = $base_path.$msg_prefix.'content.template.php';
260 260
                     $contents = EEH_Template::display_template($path, array(), true);
261 261
                     break;
262 262
                 
263 263
                 case 'newsletter_content_attendee' :
264
-                    $path     = $base_path . $msg_prefix . 'newsletter_content.template.php';
264
+                    $path     = $base_path.$msg_prefix.'newsletter_content.template.php';
265 265
                     $contents = EEH_Template::display_template($path, array(), true);
266 266
                     break;
267 267
                 
268 268
                 case 'newsletter_subject_attendee' :
269
-                    $path     = $base_path . $msg_prefix . 'subject.template.php';
269
+                    $path     = $base_path.$msg_prefix.'subject.template.php';
270 270
                     $contents = EEH_Template::display_template($path, array(), true);
271 271
                     break;
272 272
             }
273 273
         } elseif ($messenger->name == 'html' && $message_type->name == 'receipt') {
274 274
             switch ($template_file_prefix) {
275 275
                 case 'attendee_list_purchaser' :
276
-                    $path     = $base_path . $msg_prefix . 'attendee_list.template.php';
276
+                    $path     = $base_path.$msg_prefix.'attendee_list.template.php';
277 277
                     $contents = EEH_Template::display_template($path, array(), true);
278 278
                     break;
279 279
             }
@@ -505,7 +505,7 @@  discard block
 block discarded – undo
505 505
                 
506 506
                 //if $extra_data does not have a 'data' key then let's make sure we add it and set the EE_Messages_Addressee
507 507
                 //object on it.
508
-                if ( ! isset( $extra_data['data'] ) ) {
508
+                if ( ! isset($extra_data['data'])) {
509 509
                     $extra_data['data'] = $recipient;
510 510
                 }
511 511
                 
@@ -569,7 +569,7 @@  discard block
 block discarded – undo
569 569
                 if ( ! $recipient->primary_att_obj instanceof EE_Attendee || ! $recipient->primary_reg_obj instanceof EE_Registration) {
570 570
                     return '';
571 571
                 }
572
-                $registration     = $recipient->primary_reg_obj;
572
+                $registration = $recipient->primary_reg_obj;
573 573
                 $answers = isset($recipient->registrations[$registration->ID()]['ans_objs'])
574 574
                     ? $recipient->registrations[$registration->ID()]['ans_objs']
575 575
                     : array();
@@ -582,7 +582,7 @@  discard block
 block discarded – undo
582 582
                 $questions = isset($recipient->questions) ? $recipient->questions : array();
583 583
                 //if $extra_data does not have a 'data' key then let's make sure we add it and set the EE_Messages_Addressee
584 584
                 //object on it.
585
-                if ( ! isset( $extra_data['data'] ) ){
585
+                if ( ! isset($extra_data['data'])) {
586 586
                     $extra_data['data'] = $recipient;
587 587
                 }
588 588
                 return $this->_parse_question_list_for_primary_or_recipient_registration(
@@ -615,7 +615,7 @@  discard block
 block discarded – undo
615 615
         $setup_args = array(
616 616
             'mtfilename'                  => 'EE_Newsletter_message_type.class.php',
617 617
             'autoloadpaths'               => array(
618
-                EE_CAF_LIBRARIES . 'messages/message_type/newsletter/'
618
+                EE_CAF_LIBRARIES.'messages/message_type/newsletter/'
619 619
             ),
620 620
             'messengers_to_activate_with' => array('email'),
621 621
             'messengers_to_validate_with' => array('email'),
@@ -626,7 +626,7 @@  discard block
 block discarded – undo
626 626
         //register payment reminder message type
627 627
         $setup_args = array(
628 628
             'mtfilename'                  => 'EE_Payment_Reminder_message_type.class.php',
629
-            'autoloadpaths'               => array(EE_CAF_LIBRARIES . 'messages/message_type/payment_reminder/'),
629
+            'autoloadpaths'               => array(EE_CAF_LIBRARIES.'messages/message_type/payment_reminder/'),
630 630
             'messengers_to_activate_with' => array('email'),
631 631
             'messengers_to_validate_with' => array('email'),
632 632
             'messengers_supporting_default_template_pack_with' => array('email')
@@ -636,7 +636,7 @@  discard block
 block discarded – undo
636 636
         //register payment declined message type
637 637
         $setup_args = array(
638 638
             'mtfilename'                  => 'EE_Payment_Declined_message_type.class.php',
639
-            'autoloadpaths'               => array(EE_CAF_LIBRARIES . 'messages/message_type/payment_declined/'),
639
+            'autoloadpaths'               => array(EE_CAF_LIBRARIES.'messages/message_type/payment_declined/'),
640 640
             'messengers_to_activate_with' => array('email'),
641 641
             'messengers_to_validate_with' => array('email'),
642 642
             'messengers_supporting_default_template_pack_with' => array('email')
@@ -646,7 +646,7 @@  discard block
 block discarded – undo
646 646
         //register registration declined message type
647 647
         $setup_args = array(
648 648
             'mtfilename'                  => 'EE_Declined_Registration_message_type.class.php',
649
-            'autoloadpaths'               => array(EE_CAF_LIBRARIES . 'messages/message_type/declined_registration/'),
649
+            'autoloadpaths'               => array(EE_CAF_LIBRARIES.'messages/message_type/declined_registration/'),
650 650
             'messengers_to_activate_with' => array('email'),
651 651
             'messengers_to_validate_with' => array('email'),
652 652
             'messengers_supporting_default_template_pack_with' => array('email')
@@ -656,7 +656,7 @@  discard block
 block discarded – undo
656 656
         //register registration cancelled message type
657 657
         $setup_args = array(
658 658
             'mtfilename'                  => 'EE_Cancelled_Registration_message_type.class.php',
659
-            'autoloadpaths'               => array(EE_CAF_LIBRARIES . 'messages/message_type/cancelled_registration/'),
659
+            'autoloadpaths'               => array(EE_CAF_LIBRARIES.'messages/message_type/cancelled_registration/'),
660 660
             'messengers_to_activate_with' => array('email'),
661 661
             'messengers_to_validate_with' => array('email'),
662 662
             'messengers_supporting_default_template_pack_with' => array('email')
@@ -667,7 +667,7 @@  discard block
 block discarded – undo
667 667
         //register payment failed message type
668 668
         $setup_args = array(
669 669
             'mtfilename'                  => 'EE_Payment_Failed_message_type.class.php',
670
-            'autoloadpaths'               => array(EE_CAF_LIBRARIES . 'messages/message_type/payment_failed/'),
670
+            'autoloadpaths'               => array(EE_CAF_LIBRARIES.'messages/message_type/payment_failed/'),
671 671
             'messengers_to_activate_with' => array('email'),
672 672
             'messengers_to_validate_with' => array('email'),
673 673
             'messengers_supporting_default_template_pack_with' => array('email')
@@ -677,7 +677,7 @@  discard block
 block discarded – undo
677 677
         //register payment declined message type
678 678
         $setup_args = array(
679 679
             'mtfilename'                  => 'EE_Payment_Cancelled_message_type.class.php',
680
-            'autoloadpaths'               => array(EE_CAF_LIBRARIES . 'messages/message_type/payment_cancelled/'),
680
+            'autoloadpaths'               => array(EE_CAF_LIBRARIES.'messages/message_type/payment_cancelled/'),
681 681
             'messengers_to_activate_with' => array('email'),
682 682
             'messengers_to_validate_with' => array('email'),
683 683
             'messengers_supporting_default_template_pack_with' => array('email')
@@ -697,7 +697,7 @@  discard block
 block discarded – undo
697 697
     {
698 698
         $setup_args = array(
699 699
             'autoloadpaths'                 => array(
700
-                EE_CAF_LIBRARIES . 'shortcodes/'
700
+                EE_CAF_LIBRARIES.'shortcodes/'
701 701
             ),
702 702
             'msgr_validator_callback'       => array('EE_Newsletter_Shortcodes', 'messenger_validator_config'),
703 703
             'msgr_template_fields_callback' => array('EE_Newsletter_Shortcodes', 'messenger_template_fields'),
Please login to merge, or discard this patch.
libraries/messages/data_class/EE_Messages_Preview_incoming_data.class.php 2 patches
Indentation   +553 added lines, -553 removed lines patch added patch discarded remove patch
@@ -1,7 +1,7 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 
3 3
 if ( ! defined('EVENT_ESPRESSO_VERSION')) {
4
-    exit('NO direct script access allowed');
4
+	exit('NO direct script access allowed');
5 5
 }
6 6
 
7 7
 /**
@@ -24,585 +24,585 @@  discard block
 block discarded – undo
24 24
 class EE_Messages_Preview_incoming_data extends EE_Messages_incoming_data
25 25
 {
26 26
     
27
-    //some specific properties we need for this class
28
-    private $_events = array();
29
-    private $_attendees = array();
30
-    private $_registrations = array();
27
+	//some specific properties we need for this class
28
+	private $_events = array();
29
+	private $_attendees = array();
30
+	private $_registrations = array();
31 31
     
32 32
     
33
-    /**
34
-     * For the constructor of this special preview class.  We're either looking for an event id or empty data.  If we
35
-     * have an event id (or ids) then we'll use that as the source for the "dummy" data.  If the data is empty then
36
-     * we'll get the first three published events from the users database and use that as a source.
37
-     *
38
-     * @param array $data
39
-     */
40
-    public function __construct($data = array())
41
-    {
42
-        $this->_data = isset($data['event_ids']) ? $data['event_ids'] : array();
43
-        $this->_setup_attendees_events();
44
-        parent::__construct($data);
45
-    }
33
+	/**
34
+	 * For the constructor of this special preview class.  We're either looking for an event id or empty data.  If we
35
+	 * have an event id (or ids) then we'll use that as the source for the "dummy" data.  If the data is empty then
36
+	 * we'll get the first three published events from the users database and use that as a source.
37
+	 *
38
+	 * @param array $data
39
+	 */
40
+	public function __construct($data = array())
41
+	{
42
+		$this->_data = isset($data['event_ids']) ? $data['event_ids'] : array();
43
+		$this->_setup_attendees_events();
44
+		parent::__construct($data);
45
+	}
46 46
     
47 47
     
48
-    /**
49
-     * Returns database safe representation of the data later used to when instantiating this object.
50
-     *
51
-     * @param array $data The incoming data to be prepped.
52
-     *
53
-     * @return array   The prepped data for db
54
-     */
55
-    static public function convert_data_for_persistent_storage($data)
56
-    {
57
-        return $data;
58
-    }
48
+	/**
49
+	 * Returns database safe representation of the data later used to when instantiating this object.
50
+	 *
51
+	 * @param array $data The incoming data to be prepped.
52
+	 *
53
+	 * @return array   The prepped data for db
54
+	 */
55
+	static public function convert_data_for_persistent_storage($data)
56
+	{
57
+		return $data;
58
+	}
59 59
     
60 60
     
61
-    /**
62
-     * Data that has been stored in persistent storage that was prepped by _convert_data_for_persistent_storage
63
-     * can be sent into this method and converted back into the format used for instantiating with this data handler.
64
-     *
65
-     * @param array $data
66
-     *
67
-     * @return array
68
-     */
69
-    static public function convert_data_from_persistent_storage($data)
70
-    {
71
-        return $data;
72
-    }
61
+	/**
62
+	 * Data that has been stored in persistent storage that was prepped by _convert_data_for_persistent_storage
63
+	 * can be sent into this method and converted back into the format used for instantiating with this data handler.
64
+	 *
65
+	 * @param array $data
66
+	 *
67
+	 * @return array
68
+	 */
69
+	static public function convert_data_from_persistent_storage($data)
70
+	{
71
+		return $data;
72
+	}
73 73
     
74 74
     
75
-    /**
76
-     * This will just setup the _events property in the expected format.
77
-     *
78
-     * @throws \EE_Error
79
-     */
80
-    private function _setup_attendees_events()
81
-    {
82
-        
83
-        //setup some attendee objects
84
-        $attendees = $this->_get_some_attendees();
85
-        
86
-        //if empty $data we'll do a query to get some events from the server. otherwise we'll retrieve the event data for the given ids.
87
-        $events = $this->_get_some_events($this->_data);
88
-        
89
-        $answers_n_questions = $this->_get_some_q_and_as();
90
-        
91
-        if (count($events) < 1) {
92
-            throw new EE_Error(__('We can\'t generate a preview for you because there are no active events in your database',
93
-                'event_espresso'));
94
-        }
95
-        
96
-        
97
-        //now let's loop and set up the _events property.  At the same time we'll set up attendee properties.
98
-        
99
-        
100
-        //we'll actually use the generated line_item identifiers for our loop
101
-        $dtts = $tkts = array();
102
-        foreach ($events as $id => $event) {
103
-            if ( ! $event instanceof EE_Event) {
104
-                continue;
105
-            }
106
-            $this->_events[$id]['ID']       = $id;
107
-            $this->_events[$id]['name']     = $event->get('EVT_name');
108
-            $datetime                       = $event->get_first_related('Datetime');
109
-            $tickets                        = $datetime instanceof EE_Datetime ? $datetime->get_many_related('Ticket',
110
-                array('default_where_conditions' => 'none')) : array();
111
-            $this->_events[$id]['event']    = $event;
112
-            $this->_events[$id]['reg_objs'] = array();
113
-            $this->_events[$id]['tkt_objs'] = $tickets;
114
-            $this->_events[$id]['dtt_objs'] = array();
75
+	/**
76
+	 * This will just setup the _events property in the expected format.
77
+	 *
78
+	 * @throws \EE_Error
79
+	 */
80
+	private function _setup_attendees_events()
81
+	{
82
+        
83
+		//setup some attendee objects
84
+		$attendees = $this->_get_some_attendees();
85
+        
86
+		//if empty $data we'll do a query to get some events from the server. otherwise we'll retrieve the event data for the given ids.
87
+		$events = $this->_get_some_events($this->_data);
88
+        
89
+		$answers_n_questions = $this->_get_some_q_and_as();
90
+        
91
+		if (count($events) < 1) {
92
+			throw new EE_Error(__('We can\'t generate a preview for you because there are no active events in your database',
93
+				'event_espresso'));
94
+		}
95
+        
96
+        
97
+		//now let's loop and set up the _events property.  At the same time we'll set up attendee properties.
98
+        
99
+        
100
+		//we'll actually use the generated line_item identifiers for our loop
101
+		$dtts = $tkts = array();
102
+		foreach ($events as $id => $event) {
103
+			if ( ! $event instanceof EE_Event) {
104
+				continue;
105
+			}
106
+			$this->_events[$id]['ID']       = $id;
107
+			$this->_events[$id]['name']     = $event->get('EVT_name');
108
+			$datetime                       = $event->get_first_related('Datetime');
109
+			$tickets                        = $datetime instanceof EE_Datetime ? $datetime->get_many_related('Ticket',
110
+				array('default_where_conditions' => 'none')) : array();
111
+			$this->_events[$id]['event']    = $event;
112
+			$this->_events[$id]['reg_objs'] = array();
113
+			$this->_events[$id]['tkt_objs'] = $tickets;
114
+			$this->_events[$id]['dtt_objs'] = array();
115 115
             
116
-            $dttcache = array();
117
-            $tkts     = array();
118
-            foreach ($tickets as $ticket) {
119
-                if ( ! $ticket instanceof EE_Ticket) {
120
-                    continue;
121
-                }
122
-                $reldatetime                     = $ticket->datetimes();
123
-                $tkts[$ticket->ID()]             = array();
124
-                $tkts[$ticket->ID()]['ticket']   = $ticket;
125
-                $tkts[$ticket->ID()]['dtt_objs'] = $reldatetime;
126
-                $tkts[$ticket->ID()]['att_objs'] = $attendees;
127
-                $tkts[$ticket->ID()]['count']    = count($attendees);
128
-                $tkts[$ticket->ID()]['EE_Event'] = $event;
129
-                foreach ($reldatetime as $datetime) {
130
-                    if ($datetime instanceof EE_Datetime && ! isset($dtts[$datetime->ID()])) {
131
-                        $this->_events[$id]['dtt_objs'][$datetime->ID()] = $datetime;
132
-                        $dtts[$datetime->ID()]['datetime']               = $datetime;
133
-                        $dtts[$datetime->ID()]['tkt_objs'][]             = $ticket;
134
-                        $dtts[$datetime->ID()]['evt_objs'][]             = $event;
135
-                        $dttcache[$datetime->ID()]                       = $datetime;
136
-                    }
137
-                }
138
-            }
116
+			$dttcache = array();
117
+			$tkts     = array();
118
+			foreach ($tickets as $ticket) {
119
+				if ( ! $ticket instanceof EE_Ticket) {
120
+					continue;
121
+				}
122
+				$reldatetime                     = $ticket->datetimes();
123
+				$tkts[$ticket->ID()]             = array();
124
+				$tkts[$ticket->ID()]['ticket']   = $ticket;
125
+				$tkts[$ticket->ID()]['dtt_objs'] = $reldatetime;
126
+				$tkts[$ticket->ID()]['att_objs'] = $attendees;
127
+				$tkts[$ticket->ID()]['count']    = count($attendees);
128
+				$tkts[$ticket->ID()]['EE_Event'] = $event;
129
+				foreach ($reldatetime as $datetime) {
130
+					if ($datetime instanceof EE_Datetime && ! isset($dtts[$datetime->ID()])) {
131
+						$this->_events[$id]['dtt_objs'][$datetime->ID()] = $datetime;
132
+						$dtts[$datetime->ID()]['datetime']               = $datetime;
133
+						$dtts[$datetime->ID()]['tkt_objs'][]             = $ticket;
134
+						$dtts[$datetime->ID()]['evt_objs'][]             = $event;
135
+						$dttcache[$datetime->ID()]                       = $datetime;
136
+					}
137
+				}
138
+			}
139 139
             
140
-            $this->_events[$id]['total_attendees'] = count($attendees);
141
-            $this->_events[$id]['att_objs']        = $attendees;
140
+			$this->_events[$id]['total_attendees'] = count($attendees);
141
+			$this->_events[$id]['att_objs']        = $attendees;
142 142
             
143
-            //let's also setup the dummy attendees property!
144
-            foreach ($attendees as $att_key => $attendee) {
145
-                if ( ! $attendee instanceof EE_Attendee) {
146
-                    continue;
147
-                }
148
-                $this->_attendees[$att_key]['line_ref'][] = $id;  //so later it can be determined what events this attendee registered for!
149
-                $this->_attendees[$att_key]['evt_objs'][] = $event;
150
-                $this->_attendees[$att_key]['att_obj']    = $attendee;
151
-                //$this->_attendees[$att_key]['registration_id'] = 0;
152
-                $this->_attendees[$att_key]['attendee_email'] = $attendee->email();
153
-                $this->_attendees[$att_key]['tkt_objs']       = $tickets;
154
-                if ($att_key == 999999991) {
155
-                    $this->_attendees[$att_key]['ans_objs'][999]  = $answers_n_questions['answers'][999];
156
-                    $this->_attendees[$att_key]['ans_objs'][1002] = $answers_n_questions['answers'][1002];
157
-                    $this->_attendees[$att_key]['ans_objs'][1005] = $answers_n_questions['answers'][1005];
158
-                } elseif ($att_key == 999999992) {
159
-                    $this->_attendees[$att_key]['ans_objs'][1000] = $answers_n_questions['answers'][1000];
160
-                    $this->_attendees[$att_key]['ans_objs'][1003] = $answers_n_questions['answers'][1003];
161
-                    $this->_attendees[$att_key]['ans_objs'][1006] = $answers_n_questions['answers'][1006];
162
-                } elseif ($att_key == 999999993) {
163
-                    $this->_attendees[$att_key]['ans_objs'][1001] = $answers_n_questions['answers'][1001];
164
-                    $this->_attendees[$att_key]['ans_objs'][1004] = $answers_n_questions['answers'][1004];
165
-                    $this->_attendees[$att_key]['ans_objs'][1007] = $answers_n_questions['answers'][1007];
166
-                }
167
-            }
168
-        }
169
-        
170
-        $this->tickets            = $tkts;
171
-        $this->datetimes          = $dtts;
172
-        $this->answers            = $answers_n_questions['answers'];
173
-        $this->questions          = $answers_n_questions['questions'];
174
-        $this->total_ticket_count = count($tkts) * count($this->_attendees);
175
-        
176
-    }
143
+			//let's also setup the dummy attendees property!
144
+			foreach ($attendees as $att_key => $attendee) {
145
+				if ( ! $attendee instanceof EE_Attendee) {
146
+					continue;
147
+				}
148
+				$this->_attendees[$att_key]['line_ref'][] = $id;  //so later it can be determined what events this attendee registered for!
149
+				$this->_attendees[$att_key]['evt_objs'][] = $event;
150
+				$this->_attendees[$att_key]['att_obj']    = $attendee;
151
+				//$this->_attendees[$att_key]['registration_id'] = 0;
152
+				$this->_attendees[$att_key]['attendee_email'] = $attendee->email();
153
+				$this->_attendees[$att_key]['tkt_objs']       = $tickets;
154
+				if ($att_key == 999999991) {
155
+					$this->_attendees[$att_key]['ans_objs'][999]  = $answers_n_questions['answers'][999];
156
+					$this->_attendees[$att_key]['ans_objs'][1002] = $answers_n_questions['answers'][1002];
157
+					$this->_attendees[$att_key]['ans_objs'][1005] = $answers_n_questions['answers'][1005];
158
+				} elseif ($att_key == 999999992) {
159
+					$this->_attendees[$att_key]['ans_objs'][1000] = $answers_n_questions['answers'][1000];
160
+					$this->_attendees[$att_key]['ans_objs'][1003] = $answers_n_questions['answers'][1003];
161
+					$this->_attendees[$att_key]['ans_objs'][1006] = $answers_n_questions['answers'][1006];
162
+				} elseif ($att_key == 999999993) {
163
+					$this->_attendees[$att_key]['ans_objs'][1001] = $answers_n_questions['answers'][1001];
164
+					$this->_attendees[$att_key]['ans_objs'][1004] = $answers_n_questions['answers'][1004];
165
+					$this->_attendees[$att_key]['ans_objs'][1007] = $answers_n_questions['answers'][1007];
166
+				}
167
+			}
168
+		}
169
+        
170
+		$this->tickets            = $tkts;
171
+		$this->datetimes          = $dtts;
172
+		$this->answers            = $answers_n_questions['answers'];
173
+		$this->questions          = $answers_n_questions['questions'];
174
+		$this->total_ticket_count = count($tkts) * count($this->_attendees);
175
+        
176
+	}
177 177
     
178 178
     
179
-    /**
180
-     * This just returns an array of dummy attendee objects that we'll use to attach to events for our preview data
181
-     *
182
-     * @access private
183
-     * @return array an array of attendee objects
184
-     */
185
-    private function _get_some_attendees()
186
-    {
187
-        //let's just setup a dummy array of various attendee details
188
-        $dummy_attendees = array(
189
-            0 => array(
190
-                'Luke',
191
-                'Skywalker',
192
-                '[email protected]',
193
-                '804 Bantha Dr.',
194
-                'Complex 8',
195
-                'Mos Eisley',
196
-                32,
197
-                'US',
198
-                'f0r3e',
199
-                '222-333-4763',
200
-                false,
201
-                '999999991'
202
-            ),
203
-            1 => array(
204
-                'Princess',
205
-                'Leia',
206
-                '[email protected]',
207
-                '1456 Valley Way Boulevard',
208
-                'Suite 9',
209
-                'Alderaan',
210
-                15,
211
-                'US',
212
-                'c1h2c',
213
-                '78-123-111-1111',
214
-                false,
215
-                '999999992'
216
-            ),
217
-            2 => array(
218
-                'Yoda',
219
-                'I Am',
220
-                '[email protected]',
221
-                '4th Tree',
222
-                '5th Knot',
223
-                'Marsh',
224
-                22,
225
-                'US',
226
-                'l18n',
227
-                '999-999-9999',
228
-                false,
229
-                '999999993'
230
-            ),
231
-        );
232
-        
233
-        //let's generate the attendee objects
234
-        $attendees = array();
235
-        $var_array = array(
236
-            'fname',
237
-            'lname',
238
-            'email',
239
-            'address',
240
-            'address2',
241
-            'city',
242
-            'staid',
243
-            'cntry',
244
-            'zip',
245
-            'phone',
246
-            'deleted',
247
-            'attid'
248
-        );
249
-        
250
-        //EE_Registry::instance()->load_class( 'Attendee', array(), FALSE, false, TRUE );
251
-        foreach ($dummy_attendees as $dummy) {
252
-            $att = array_combine($var_array, $dummy);
253
-            extract($att);
254
-            /** @var $fname string */
255
-            /** @var $lname string */
256
-            /** @var $address string */
257
-            /** @var $address2 string */
258
-            /** @var $city string */
259
-            /** @var $staid string */
260
-            /** @var $cntry string */
261
-            /** @var $zip string */
262
-            /** @var $email string */
263
-            /** @var $phone string */
264
-            /** @var $attid string */
265
-            $attendees[$attid] = EE_Attendee::new_instance(
266
-                array(
267
-                    'ATT_fname'    => $fname,
268
-                    'ATT_lname'    => $lname,
269
-                    'ATT_address'  => $address,
270
-                    'ATT_address2' => $address2,
271
-                    'ATT_city'     => $city,
272
-                    'STA_ID'       => $staid,
273
-                    'CNT_ISO'      => $cntry,
274
-                    'ATT_zip'      => $zip,
275
-                    'ATT_email'    => $email,
276
-                    'ATT_phone'    => $phone,
277
-                    'ATT_ID'       => $attid
278
-                )
279
-            );
280
-        }
281
-        
282
-        return $attendees;
283
-    }
179
+	/**
180
+	 * This just returns an array of dummy attendee objects that we'll use to attach to events for our preview data
181
+	 *
182
+	 * @access private
183
+	 * @return array an array of attendee objects
184
+	 */
185
+	private function _get_some_attendees()
186
+	{
187
+		//let's just setup a dummy array of various attendee details
188
+		$dummy_attendees = array(
189
+			0 => array(
190
+				'Luke',
191
+				'Skywalker',
192
+				'[email protected]',
193
+				'804 Bantha Dr.',
194
+				'Complex 8',
195
+				'Mos Eisley',
196
+				32,
197
+				'US',
198
+				'f0r3e',
199
+				'222-333-4763',
200
+				false,
201
+				'999999991'
202
+			),
203
+			1 => array(
204
+				'Princess',
205
+				'Leia',
206
+				'[email protected]',
207
+				'1456 Valley Way Boulevard',
208
+				'Suite 9',
209
+				'Alderaan',
210
+				15,
211
+				'US',
212
+				'c1h2c',
213
+				'78-123-111-1111',
214
+				false,
215
+				'999999992'
216
+			),
217
+			2 => array(
218
+				'Yoda',
219
+				'I Am',
220
+				'[email protected]',
221
+				'4th Tree',
222
+				'5th Knot',
223
+				'Marsh',
224
+				22,
225
+				'US',
226
+				'l18n',
227
+				'999-999-9999',
228
+				false,
229
+				'999999993'
230
+			),
231
+		);
232
+        
233
+		//let's generate the attendee objects
234
+		$attendees = array();
235
+		$var_array = array(
236
+			'fname',
237
+			'lname',
238
+			'email',
239
+			'address',
240
+			'address2',
241
+			'city',
242
+			'staid',
243
+			'cntry',
244
+			'zip',
245
+			'phone',
246
+			'deleted',
247
+			'attid'
248
+		);
249
+        
250
+		//EE_Registry::instance()->load_class( 'Attendee', array(), FALSE, false, TRUE );
251
+		foreach ($dummy_attendees as $dummy) {
252
+			$att = array_combine($var_array, $dummy);
253
+			extract($att);
254
+			/** @var $fname string */
255
+			/** @var $lname string */
256
+			/** @var $address string */
257
+			/** @var $address2 string */
258
+			/** @var $city string */
259
+			/** @var $staid string */
260
+			/** @var $cntry string */
261
+			/** @var $zip string */
262
+			/** @var $email string */
263
+			/** @var $phone string */
264
+			/** @var $attid string */
265
+			$attendees[$attid] = EE_Attendee::new_instance(
266
+				array(
267
+					'ATT_fname'    => $fname,
268
+					'ATT_lname'    => $lname,
269
+					'ATT_address'  => $address,
270
+					'ATT_address2' => $address2,
271
+					'ATT_city'     => $city,
272
+					'STA_ID'       => $staid,
273
+					'CNT_ISO'      => $cntry,
274
+					'ATT_zip'      => $zip,
275
+					'ATT_email'    => $email,
276
+					'ATT_phone'    => $phone,
277
+					'ATT_ID'       => $attid
278
+				)
279
+			);
280
+		}
281
+        
282
+		return $attendees;
283
+	}
284 284
     
285 285
     
286
-    /**
287
-     * Return an array of dummy question objects indexed by answer id and dummy answer objects indexed by answer id.
288
-     * This will be used in our dummy data setup
289
-     * @return array
290
-     */
291
-    private function _get_some_q_and_as()
292
-    {
293
-        
294
-        
295
-        $quests_array = array(
296
-            0 => array(
297
-                555,
298
-                __('What is your favorite planet?', 'event_espresso'),
299
-                0
300
-            ),
301
-            1 => array(
302
-                556,
303
-                __('What is your favorite food?', 'event_espresso'),
304
-                0
305
-            ),
306
-            2 => array(
307
-                557,
308
-                __('How many lightyears have you travelled', 'event_espresso'),
309
-                0
310
-            )
311
-        );
312
-        
313
-        
314
-        $ans_array = array(
315
-            0 => array(
316
-                999,
317
-                555,
318
-                'Tattoine'
319
-            ),
320
-            1 => array(
321
-                1000,
322
-                555,
323
-                'Alderaan'
324
-            ),
325
-            2 => array(
326
-                1001,
327
-                555,
328
-                'Dantooine'
329
-            ),
330
-            3 => array(
331
-                1002,
332
-                556,
333
-                'Fish Fingers'
334
-            ),
335
-            4 => array(
336
-                1003,
337
-                556,
338
-                'Sushi'
339
-            ),
340
-            5 => array(
341
-                1004,
342
-                556,
343
-                'Water'
344
-            ),
345
-            6 => array(
346
-                1005,
347
-                557,
348
-                'A lot',
349
-            ),
350
-            7 => array(
351
-                1006,
352
-                557,
353
-                "That's none of your business."
354
-            ),
355
-            8 => array(
356
-                1007,
357
-                557,
358
-                "People less travel me then."
359
-            )
360
-        );
361
-        
362
-        $qst_columns = array('QST_ID', 'QST_display_text', 'QST_system');
363
-        $ans_columns = array('ANS_ID', 'QST_ID', 'ANS_value');
364
-        
365
-        //EE_Registry::instance()->load_class( 'Question', array(), FALSE, TRUE, TRUE );
366
-        //EE_Registry::instance()->load_class( 'Answer', array(), FALSE, TRUE, TRUE );
367
-        
368
-        $qsts = array();
369
-        //first the questions
370
-        foreach ($quests_array as $qst) {
371
-            $qstobj                  = array_combine($qst_columns, $qst);
372
-            $qsts[$qstobj['QST_ID']] = EE_Question::new_instance($qstobj);
373
-        }
374
-        
375
-        //now the answers (and we'll setup our arrays)
376
-        $q_n_as = array();
377
-        foreach ($ans_array as $ans) {
378
-            $ansobj                             = array_combine($ans_columns, $ans);
379
-            $ansobj                             = EE_Answer::new_instance($ansobj);
380
-            $q_n_as['answers'][$ansobj->ID()]   = $ansobj;
381
-            $q_n_as['questions'][$ansobj->ID()] = $qsts[$ansobj->get('QST_ID')];
382
-        }
383
-        
384
-        return $q_n_as;
385
-        
386
-    }
286
+	/**
287
+	 * Return an array of dummy question objects indexed by answer id and dummy answer objects indexed by answer id.
288
+	 * This will be used in our dummy data setup
289
+	 * @return array
290
+	 */
291
+	private function _get_some_q_and_as()
292
+	{
293
+        
294
+        
295
+		$quests_array = array(
296
+			0 => array(
297
+				555,
298
+				__('What is your favorite planet?', 'event_espresso'),
299
+				0
300
+			),
301
+			1 => array(
302
+				556,
303
+				__('What is your favorite food?', 'event_espresso'),
304
+				0
305
+			),
306
+			2 => array(
307
+				557,
308
+				__('How many lightyears have you travelled', 'event_espresso'),
309
+				0
310
+			)
311
+		);
312
+        
313
+        
314
+		$ans_array = array(
315
+			0 => array(
316
+				999,
317
+				555,
318
+				'Tattoine'
319
+			),
320
+			1 => array(
321
+				1000,
322
+				555,
323
+				'Alderaan'
324
+			),
325
+			2 => array(
326
+				1001,
327
+				555,
328
+				'Dantooine'
329
+			),
330
+			3 => array(
331
+				1002,
332
+				556,
333
+				'Fish Fingers'
334
+			),
335
+			4 => array(
336
+				1003,
337
+				556,
338
+				'Sushi'
339
+			),
340
+			5 => array(
341
+				1004,
342
+				556,
343
+				'Water'
344
+			),
345
+			6 => array(
346
+				1005,
347
+				557,
348
+				'A lot',
349
+			),
350
+			7 => array(
351
+				1006,
352
+				557,
353
+				"That's none of your business."
354
+			),
355
+			8 => array(
356
+				1007,
357
+				557,
358
+				"People less travel me then."
359
+			)
360
+		);
361
+        
362
+		$qst_columns = array('QST_ID', 'QST_display_text', 'QST_system');
363
+		$ans_columns = array('ANS_ID', 'QST_ID', 'ANS_value');
364
+        
365
+		//EE_Registry::instance()->load_class( 'Question', array(), FALSE, TRUE, TRUE );
366
+		//EE_Registry::instance()->load_class( 'Answer', array(), FALSE, TRUE, TRUE );
367
+        
368
+		$qsts = array();
369
+		//first the questions
370
+		foreach ($quests_array as $qst) {
371
+			$qstobj                  = array_combine($qst_columns, $qst);
372
+			$qsts[$qstobj['QST_ID']] = EE_Question::new_instance($qstobj);
373
+		}
374
+        
375
+		//now the answers (and we'll setup our arrays)
376
+		$q_n_as = array();
377
+		foreach ($ans_array as $ans) {
378
+			$ansobj                             = array_combine($ans_columns, $ans);
379
+			$ansobj                             = EE_Answer::new_instance($ansobj);
380
+			$q_n_as['answers'][$ansobj->ID()]   = $ansobj;
381
+			$q_n_as['questions'][$ansobj->ID()] = $qsts[$ansobj->get('QST_ID')];
382
+		}
383
+        
384
+		return $q_n_as;
385
+        
386
+	}
387 387
     
388 388
     
389
-    /**
390
-     * Return an array of event objects from the database
391
-     *
392
-     * If event ids are not included then we'll just retrieve the first published event from the database.
393
-     *
394
-     * @param  array $event_ids if set, this will be an array of event ids to obtain events for.
395
-     *
396
-     * @return array    An array of event objects from the db.
397
-     */
398
-    private function _get_some_events($event_ids = array())
399
-    {
400
-        
401
-        //HEY, if we have an evt_id then we want to make sure we use that for the preview (because a specific event template is being viewed);
402
-        $event_ids = isset($_REQUEST['evt_id']) && ! empty($_REQUEST['evt_id'])
403
-            ? array($_REQUEST['evt_id'])
404
-            : $event_ids;
405
-        
406
-        $limit = ! empty($event_ids)
407
-            ? null
408
-            : apply_filters('FHEE__EE_Messages_Preview_incoming_data___get_some_events__limit', '0,1');
409
-        
410
-        $where = ! empty($event_ids)
411
-            ? array(
412
-                'EVT_ID'                 => array('IN', $event_ids),
413
-                'Datetime.Ticket.TKT_ID' => array('>', 1)
414
-            )
415
-            : array('Datetime.Ticket.TKT_ID' => array('>', 1));
416
-        
417
-        $events = EE_Registry::instance()->load_model('Event')->get_all(array($where, 'limit' => $limit));
418
-        
419
-        return $events;
420
-    }
389
+	/**
390
+	 * Return an array of event objects from the database
391
+	 *
392
+	 * If event ids are not included then we'll just retrieve the first published event from the database.
393
+	 *
394
+	 * @param  array $event_ids if set, this will be an array of event ids to obtain events for.
395
+	 *
396
+	 * @return array    An array of event objects from the db.
397
+	 */
398
+	private function _get_some_events($event_ids = array())
399
+	{
400
+        
401
+		//HEY, if we have an evt_id then we want to make sure we use that for the preview (because a specific event template is being viewed);
402
+		$event_ids = isset($_REQUEST['evt_id']) && ! empty($_REQUEST['evt_id'])
403
+			? array($_REQUEST['evt_id'])
404
+			: $event_ids;
405
+        
406
+		$limit = ! empty($event_ids)
407
+			? null
408
+			: apply_filters('FHEE__EE_Messages_Preview_incoming_data___get_some_events__limit', '0,1');
409
+        
410
+		$where = ! empty($event_ids)
411
+			? array(
412
+				'EVT_ID'                 => array('IN', $event_ids),
413
+				'Datetime.Ticket.TKT_ID' => array('>', 1)
414
+			)
415
+			: array('Datetime.Ticket.TKT_ID' => array('>', 1));
416
+        
417
+		$events = EE_Registry::instance()->load_model('Event')->get_all(array($where, 'limit' => $limit));
418
+        
419
+		return $events;
420
+	}
421 421
     
422 422
     
423
-    protected function _setup_data()
424
-    {
425
-        
426
-        //need to figure out the running total for test purposes so... we're going to create a temp cart and add the tickets to it!
427
-        if (EE_Registry::instance()->SSN instanceof EE_Session) {
428
-            EE_Registry::instance()->SSN->clear_session(__CLASS__, __FUNCTION__);
429
-            $session = EE_Registry::instance()->SSN;
430
-        } else {
431
-            $session = EE_Registry::instance()->load_core('Session');
432
-        }
433
-        $cart = EE_Cart::instance(null, $session);
434
-        
435
-        
436
-        //add tickets to cart
437
-        foreach ($this->tickets as $ticket) {
438
-            $cart->add_ticket_to_cart($ticket['ticket']);
439
-        }
440
-        
441
-        
442
-        //setup txn property
443
-        $this->txn = EE_Transaction::new_instance(
444
-            array(
445
-                'TXN_timestamp'    => time(), //unix timestamp
446
-                'TXN_total'        => 0, //txn_total
447
-                'TXN_paid'         => 0, //txn_paid
448
-                'STS_ID'           => EEM_Transaction::incomplete_status_code, //sts_id
449
-                'TXN_session_data' => null, //dump of txn session object (we're just going to leave blank here)
450
-                'TXN_hash_salt'    => null, //hash salt blank as well
451
-                'TXN_ID'           => 999999
452
-            )
453
-        );
454
-        
455
-        
456
-        //setup reg_objects
457
-        //note we're setting up a reg object for each attendee in each event but ALSO adding to the reg_object array.
458
-        $this->reg_objs = array();
459
-        $regid          = 9999990;
460
-        foreach ($this->_attendees as $key => $attendee) {
461
-            //note we need to setup reg_objects for each event this attendee belongs to
462
-            $regatt = $attendee['att_obj'] instanceof EE_Attendee ? $attendee['att_obj']->ID() : null;
463
-            $regtxn = $this->txn->ID();
464
-            $regcnt = 1;
465
-            foreach ($attendee['line_ref'] as $evtid) {
466
-                foreach ($this->_events[$evtid]['tkt_objs'] as $ticket) {
467
-                    if ( ! $ticket instanceof EE_Ticket) {
468
-                        continue;
469
-                    }
470
-                    $reg_array                                        = array(
471
-                        'EVT_ID'           => $evtid,
472
-                        'ATT_ID'           => $regatt,
473
-                        'TXN_ID'           => $regtxn,
474
-                        'TKT_ID'           => $ticket->ID(),
475
-                        'STS_ID'           => EEM_Registration::status_id_pending_payment,
476
-                        'REG_date'         => time(),
477
-                        'REG_final_price'  => $ticket->get('TKT_price'),
478
-                        'REG_session'      => 'dummy_session_id',
479
-                        'REG_code'         => $regid . '-dummy-generated-code',
480
-                        'REG_url_link'     => $regcnt . '-daafpapasdlfakasdfpqasdfasdf',
481
-                        'REG_count'        => $regcnt,
482
-                        'REG_group_size'   => $this->_events[$evtid]['total_attendees'],
483
-                        'REG_att_is_going' => true,
484
-                        'REG_ID'           => $regid
485
-                    );
486
-                    $REG_OBJ                                          = EE_Registration::new_instance($reg_array);
487
-                    $this->_attendees[$key]['reg_objs'][$regid]       = $REG_OBJ;
488
-                    $this->_events[$evtid]['reg_objs'][]              = $REG_OBJ;
489
-                    $this->reg_objs[]                                 = $REG_OBJ;
490
-                    $this->tickets[$ticket->ID()]['reg_objs'][$regid] = $REG_OBJ;
423
+	protected function _setup_data()
424
+	{
425
+        
426
+		//need to figure out the running total for test purposes so... we're going to create a temp cart and add the tickets to it!
427
+		if (EE_Registry::instance()->SSN instanceof EE_Session) {
428
+			EE_Registry::instance()->SSN->clear_session(__CLASS__, __FUNCTION__);
429
+			$session = EE_Registry::instance()->SSN;
430
+		} else {
431
+			$session = EE_Registry::instance()->load_core('Session');
432
+		}
433
+		$cart = EE_Cart::instance(null, $session);
434
+        
435
+        
436
+		//add tickets to cart
437
+		foreach ($this->tickets as $ticket) {
438
+			$cart->add_ticket_to_cart($ticket['ticket']);
439
+		}
440
+        
441
+        
442
+		//setup txn property
443
+		$this->txn = EE_Transaction::new_instance(
444
+			array(
445
+				'TXN_timestamp'    => time(), //unix timestamp
446
+				'TXN_total'        => 0, //txn_total
447
+				'TXN_paid'         => 0, //txn_paid
448
+				'STS_ID'           => EEM_Transaction::incomplete_status_code, //sts_id
449
+				'TXN_session_data' => null, //dump of txn session object (we're just going to leave blank here)
450
+				'TXN_hash_salt'    => null, //hash salt blank as well
451
+				'TXN_ID'           => 999999
452
+			)
453
+		);
454
+        
455
+        
456
+		//setup reg_objects
457
+		//note we're setting up a reg object for each attendee in each event but ALSO adding to the reg_object array.
458
+		$this->reg_objs = array();
459
+		$regid          = 9999990;
460
+		foreach ($this->_attendees as $key => $attendee) {
461
+			//note we need to setup reg_objects for each event this attendee belongs to
462
+			$regatt = $attendee['att_obj'] instanceof EE_Attendee ? $attendee['att_obj']->ID() : null;
463
+			$regtxn = $this->txn->ID();
464
+			$regcnt = 1;
465
+			foreach ($attendee['line_ref'] as $evtid) {
466
+				foreach ($this->_events[$evtid]['tkt_objs'] as $ticket) {
467
+					if ( ! $ticket instanceof EE_Ticket) {
468
+						continue;
469
+					}
470
+					$reg_array                                        = array(
471
+						'EVT_ID'           => $evtid,
472
+						'ATT_ID'           => $regatt,
473
+						'TXN_ID'           => $regtxn,
474
+						'TKT_ID'           => $ticket->ID(),
475
+						'STS_ID'           => EEM_Registration::status_id_pending_payment,
476
+						'REG_date'         => time(),
477
+						'REG_final_price'  => $ticket->get('TKT_price'),
478
+						'REG_session'      => 'dummy_session_id',
479
+						'REG_code'         => $regid . '-dummy-generated-code',
480
+						'REG_url_link'     => $regcnt . '-daafpapasdlfakasdfpqasdfasdf',
481
+						'REG_count'        => $regcnt,
482
+						'REG_group_size'   => $this->_events[$evtid]['total_attendees'],
483
+						'REG_att_is_going' => true,
484
+						'REG_ID'           => $regid
485
+					);
486
+					$REG_OBJ                                          = EE_Registration::new_instance($reg_array);
487
+					$this->_attendees[$key]['reg_objs'][$regid]       = $REG_OBJ;
488
+					$this->_events[$evtid]['reg_objs'][]              = $REG_OBJ;
489
+					$this->reg_objs[]                                 = $REG_OBJ;
490
+					$this->tickets[$ticket->ID()]['reg_objs'][$regid] = $REG_OBJ;
491 491
                     
492
-                    $regcnt++;
493
-                    $regid++;
494
-                }
495
-            }
496
-        }
497
-        
498
-        
499
-        //setup line items!
500
-        $line_item_total = EEH_Line_Item::create_total_line_item($this->txn);
501
-        
502
-        //add tickets
503
-        foreach ($this->tickets as $tktid => $item) {
504
-            $qty    = $item['count'];
505
-            $ticket = $item['ticket'];
506
-            EEH_Line_Item::add_ticket_purchase($line_item_total, $ticket, $qty);
507
-        }
508
-        
509
-        $shipping_line_item = EE_Line_Item::new_instance(array(
510
-            'LIN_name'       => __('Shipping Surcharge', 'event_espresso'),
511
-            'LIN_desc'       => __('Sent via Millenium Falcon', 'event_espresso'),
512
-            'LIN_unit_price' => 20,
513
-            'LIN_quantity'   => 1,
514
-            'LIN_is_taxable' => true,
515
-            'LIN_total'      => 20,
516
-            'LIN_type'       => EEM_Line_Item::type_line_item
517
-        ));
518
-        EEH_Line_Item::add_item($line_item_total, $shipping_line_item);
519
-        $this->additional_line_items = array($shipping_line_item);
520
-        
521
-        //now let's add taxes
522
-        EEH_Line_Item::apply_taxes($line_item_total);
523
-        
524
-        //now we should be able to get the items we need from this object
525
-        $event_line_items = EEH_Line_Item::get_pre_tax_subtotal($line_item_total)->children();
526
-        $line_items       = array();
527
-        foreach ($event_line_items as $line_id => $line_item) {
528
-            if ( ! $line_item instanceof EE_Line_Item || $line_item->OBJ_type() !== 'Event') {
529
-                continue;
530
-            }
531
-            $ticket_line_items = EEH_Line_Item::get_ticket_line_items($line_item);
532
-            foreach ($ticket_line_items as $ticket_line_id => $ticket_line_item) {
533
-                if ( ! $ticket_line_item instanceof EE_Line_Item) {
534
-                    continue;
535
-                }
536
-                $this->tickets[$ticket_line_item->OBJ_ID()]['line_item']      = $ticket_line_item;
537
-                $this->tickets[$ticket_line_item->OBJ_ID()]['sub_line_items'] = $ticket_line_item->children();
538
-                $line_items[$ticket_line_item->ID()]['children']              = $ticket_line_item->children();
539
-                $line_items[$ticket_line_item->ID()]['EE_Ticket']             = $this->tickets[$ticket_line_item->OBJ_ID()]['ticket'];
540
-            }
541
-        }
542
-        
543
-        $this->line_items_with_children = $line_items;
544
-        $this->tax_line_items           = $line_item_total->tax_descendants();
545
-        
546
-        //add proper total to transaction object.
547
-        $grand_total                 = $line_item_total->recalculate_total_including_taxes();
548
-        $this->grand_total_line_item = $line_item_total;
549
-        $this->txn->set_total($grand_total);
550
-        
551
-        
552
-        //add additional details for each registration
553
-        foreach ($this->reg_objs as $reg) {
554
-            if ( ! $reg instanceof EE_Registration) {
555
-                continue;
556
-            }
557
-            $this->_registrations[$reg->ID()]['tkt_obj']  = $this->tickets[$reg->get('TKT_ID')]['ticket'];
558
-            $this->_registrations[$reg->ID()]['evt_obj']  = $this->_events[$reg->get('EVT_ID')]['event'];
559
-            $this->_registrations[$reg->ID()]['reg_obj']  = $reg;
560
-            $this->_registrations[$reg->ID()]['ans_objs'] = $this->_attendees[$reg->get('ATT_ID')]['ans_objs'];
561
-            $this->_registrations[$reg->ID()]['att_obj']  = $this->_attendees[$reg->get('ATT_ID')]['att_obj'];
562
-            $this->_registrations[$reg->ID()]['dtt_objs'] = $this->tickets[$reg->get('TKT_ID')]['dtt_objs'];
563
-        }
564
-        
565
-        
566
-        //events and attendees
567
-        $this->events        = $this->_events;
568
-        $this->attendees     = $this->_attendees;
569
-        $this->registrations = $this->_registrations;
570
-        
571
-        $attendees_to_shift = $this->_attendees;
572
-        
573
-        //setup primary attendee property
574
-        $this->primary_attendee_data = array(
575
-            'fname' => $this->_attendees[999999991]['att_obj'] instanceof EE_Attendee
576
-                ? $this->_attendees[999999991]['att_obj']->fname()
577
-                : '',
492
+					$regcnt++;
493
+					$regid++;
494
+				}
495
+			}
496
+		}
497
+        
498
+        
499
+		//setup line items!
500
+		$line_item_total = EEH_Line_Item::create_total_line_item($this->txn);
501
+        
502
+		//add tickets
503
+		foreach ($this->tickets as $tktid => $item) {
504
+			$qty    = $item['count'];
505
+			$ticket = $item['ticket'];
506
+			EEH_Line_Item::add_ticket_purchase($line_item_total, $ticket, $qty);
507
+		}
508
+        
509
+		$shipping_line_item = EE_Line_Item::new_instance(array(
510
+			'LIN_name'       => __('Shipping Surcharge', 'event_espresso'),
511
+			'LIN_desc'       => __('Sent via Millenium Falcon', 'event_espresso'),
512
+			'LIN_unit_price' => 20,
513
+			'LIN_quantity'   => 1,
514
+			'LIN_is_taxable' => true,
515
+			'LIN_total'      => 20,
516
+			'LIN_type'       => EEM_Line_Item::type_line_item
517
+		));
518
+		EEH_Line_Item::add_item($line_item_total, $shipping_line_item);
519
+		$this->additional_line_items = array($shipping_line_item);
520
+        
521
+		//now let's add taxes
522
+		EEH_Line_Item::apply_taxes($line_item_total);
523
+        
524
+		//now we should be able to get the items we need from this object
525
+		$event_line_items = EEH_Line_Item::get_pre_tax_subtotal($line_item_total)->children();
526
+		$line_items       = array();
527
+		foreach ($event_line_items as $line_id => $line_item) {
528
+			if ( ! $line_item instanceof EE_Line_Item || $line_item->OBJ_type() !== 'Event') {
529
+				continue;
530
+			}
531
+			$ticket_line_items = EEH_Line_Item::get_ticket_line_items($line_item);
532
+			foreach ($ticket_line_items as $ticket_line_id => $ticket_line_item) {
533
+				if ( ! $ticket_line_item instanceof EE_Line_Item) {
534
+					continue;
535
+				}
536
+				$this->tickets[$ticket_line_item->OBJ_ID()]['line_item']      = $ticket_line_item;
537
+				$this->tickets[$ticket_line_item->OBJ_ID()]['sub_line_items'] = $ticket_line_item->children();
538
+				$line_items[$ticket_line_item->ID()]['children']              = $ticket_line_item->children();
539
+				$line_items[$ticket_line_item->ID()]['EE_Ticket']             = $this->tickets[$ticket_line_item->OBJ_ID()]['ticket'];
540
+			}
541
+		}
542
+        
543
+		$this->line_items_with_children = $line_items;
544
+		$this->tax_line_items           = $line_item_total->tax_descendants();
545
+        
546
+		//add proper total to transaction object.
547
+		$grand_total                 = $line_item_total->recalculate_total_including_taxes();
548
+		$this->grand_total_line_item = $line_item_total;
549
+		$this->txn->set_total($grand_total);
550
+        
551
+        
552
+		//add additional details for each registration
553
+		foreach ($this->reg_objs as $reg) {
554
+			if ( ! $reg instanceof EE_Registration) {
555
+				continue;
556
+			}
557
+			$this->_registrations[$reg->ID()]['tkt_obj']  = $this->tickets[$reg->get('TKT_ID')]['ticket'];
558
+			$this->_registrations[$reg->ID()]['evt_obj']  = $this->_events[$reg->get('EVT_ID')]['event'];
559
+			$this->_registrations[$reg->ID()]['reg_obj']  = $reg;
560
+			$this->_registrations[$reg->ID()]['ans_objs'] = $this->_attendees[$reg->get('ATT_ID')]['ans_objs'];
561
+			$this->_registrations[$reg->ID()]['att_obj']  = $this->_attendees[$reg->get('ATT_ID')]['att_obj'];
562
+			$this->_registrations[$reg->ID()]['dtt_objs'] = $this->tickets[$reg->get('TKT_ID')]['dtt_objs'];
563
+		}
564
+        
565
+        
566
+		//events and attendees
567
+		$this->events        = $this->_events;
568
+		$this->attendees     = $this->_attendees;
569
+		$this->registrations = $this->_registrations;
570
+        
571
+		$attendees_to_shift = $this->_attendees;
572
+        
573
+		//setup primary attendee property
574
+		$this->primary_attendee_data = array(
575
+			'fname' => $this->_attendees[999999991]['att_obj'] instanceof EE_Attendee
576
+				? $this->_attendees[999999991]['att_obj']->fname()
577
+				: '',
578 578
             
579
-            'lname' => $this->_attendees[999999991]['att_obj'] instanceof EE_Attendee
580
-                ? $this->_attendees[999999991]['att_obj']->lname()
581
-                : '',
579
+			'lname' => $this->_attendees[999999991]['att_obj'] instanceof EE_Attendee
580
+				? $this->_attendees[999999991]['att_obj']->lname()
581
+				: '',
582 582
             
583
-            'email' => $this->_attendees[999999991]['att_obj'] instanceof EE_Attendee
584
-                ? $this->_attendees[999999991]['att_obj']->email()
585
-                : '',
583
+			'email' => $this->_attendees[999999991]['att_obj'] instanceof EE_Attendee
584
+				? $this->_attendees[999999991]['att_obj']->email()
585
+				: '',
586 586
             
587
-            'att_obj' => $this->_attendees[999999991]['att_obj'],
587
+			'att_obj' => $this->_attendees[999999991]['att_obj'],
588 588
             
589
-            'reg_obj' => array_shift($attendees_to_shift[999999991]['reg_objs'])
590
-        );
589
+			'reg_obj' => array_shift($attendees_to_shift[999999991]['reg_objs'])
590
+		);
591 591
         
592
-        //reg_info property
593
-        //note this isn't referenced by any shortcode parsers so we'll ignore for now.
594
-        $this->reg_info = array();
592
+		//reg_info property
593
+		//note this isn't referenced by any shortcode parsers so we'll ignore for now.
594
+		$this->reg_info = array();
595 595
         
596
-        //let's set a reg_obj for messengers expecting one.
597
-        $this->reg_obj = array_pop($this->_attendees[999999991]['reg_objs']);
596
+		//let's set a reg_obj for messengers expecting one.
597
+		$this->reg_obj = array_pop($this->_attendees[999999991]['reg_objs']);
598 598
         
599 599
         
600
-        //the below are just dummy items.
601
-        $this->user_id     = 1;
602
-        $this->ip_address  = '192.0.2.1';
603
-        $this->user_agent  = '';
604
-        $this->init_access = time();
605
-        $this->last_access = time();
606
-    }
600
+		//the below are just dummy items.
601
+		$this->user_id     = 1;
602
+		$this->ip_address  = '192.0.2.1';
603
+		$this->user_agent  = '';
604
+		$this->init_access = time();
605
+		$this->last_access = time();
606
+	}
607 607
     
608 608
 } //end EE_Messages_Preview_incoming_data class
Please login to merge, or discard this patch.
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -145,7 +145,7 @@  discard block
 block discarded – undo
145 145
                 if ( ! $attendee instanceof EE_Attendee) {
146 146
                     continue;
147 147
                 }
148
-                $this->_attendees[$att_key]['line_ref'][] = $id;  //so later it can be determined what events this attendee registered for!
148
+                $this->_attendees[$att_key]['line_ref'][] = $id; //so later it can be determined what events this attendee registered for!
149 149
                 $this->_attendees[$att_key]['evt_objs'][] = $event;
150 150
                 $this->_attendees[$att_key]['att_obj']    = $attendee;
151 151
                 //$this->_attendees[$att_key]['registration_id'] = 0;
@@ -467,7 +467,7 @@  discard block
 block discarded – undo
467 467
                     if ( ! $ticket instanceof EE_Ticket) {
468 468
                         continue;
469 469
                     }
470
-                    $reg_array                                        = array(
470
+                    $reg_array = array(
471 471
                         'EVT_ID'           => $evtid,
472 472
                         'ATT_ID'           => $regatt,
473 473
                         'TXN_ID'           => $regtxn,
@@ -476,8 +476,8 @@  discard block
 block discarded – undo
476 476
                         'REG_date'         => time(),
477 477
                         'REG_final_price'  => $ticket->get('TKT_price'),
478 478
                         'REG_session'      => 'dummy_session_id',
479
-                        'REG_code'         => $regid . '-dummy-generated-code',
480
-                        'REG_url_link'     => $regcnt . '-daafpapasdlfakasdfpqasdfasdf',
479
+                        'REG_code'         => $regid.'-dummy-generated-code',
480
+                        'REG_url_link'     => $regcnt.'-daafpapasdlfakasdfpqasdfasdf',
481 481
                         'REG_count'        => $regcnt,
482 482
                         'REG_group_size'   => $this->_events[$evtid]['total_attendees'],
483 483
                         'REG_att_is_going' => true,
Please login to merge, or discard this patch.
caffeinated/core/libraries/shortcodes/EE_Question_List_Shortcodes.lib.php 2 patches
Indentation   +62 added lines, -62 removed lines patch added patch discarded remove patch
@@ -1,7 +1,7 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 
3 3
 if ( ! defined('EVENT_ESPRESSO_VERSION')) {
4
-    exit('NO direct script access allowed');
4
+	exit('NO direct script access allowed');
5 5
 }
6 6
 
7 7
 /**
@@ -36,80 +36,80 @@  discard block
 block discarded – undo
36 36
 {
37 37
     
38 38
     
39
-    public function __construct()
40
-    {
41
-        parent::__construct();
42
-    }
39
+	public function __construct()
40
+	{
41
+		parent::__construct();
42
+	}
43 43
     
44 44
     
45
-    protected function _init_props()
46
-    {
47
-        $this->label       = __('Questions and Answers Shortcodes', 'event_espresso');
48
-        $this->description = __('All shortcodes related to custom questions and answers', 'event_espresso');
49
-        $this->_shortcodes = array(
50
-            '[QUESTION_LIST]' => __('This is used to indicate where you want the list of questions and answers to show for the registrant.  You place this within the "[attendee_list]" field.',
51
-                'event_espresso')
52
-        );
53
-    }
45
+	protected function _init_props()
46
+	{
47
+		$this->label       = __('Questions and Answers Shortcodes', 'event_espresso');
48
+		$this->description = __('All shortcodes related to custom questions and answers', 'event_espresso');
49
+		$this->_shortcodes = array(
50
+			'[QUESTION_LIST]' => __('This is used to indicate where you want the list of questions and answers to show for the registrant.  You place this within the "[attendee_list]" field.',
51
+				'event_espresso')
52
+		);
53
+	}
54 54
     
55 55
     
56
-    protected function _parser($shortcode)
57
-    {
56
+	protected function _parser($shortcode)
57
+	{
58 58
         
59 59
         
60
-        switch ($shortcode) {
61
-            case '[QUESTION_LIST]' :
62
-                return $this->_get_question_list();
63
-                break;
64
-        }
60
+		switch ($shortcode) {
61
+			case '[QUESTION_LIST]' :
62
+				return $this->_get_question_list();
63
+				break;
64
+		}
65 65
         
66
-        return '';
67
-    }
66
+		return '';
67
+	}
68 68
     
69 69
     
70
-    protected function _get_question_list()
71
-    {
72
-        $this->_validate_list_requirements();
70
+	protected function _get_question_list()
71
+	{
72
+		$this->_validate_list_requirements();
73 73
         
74
-        //for when [QUESTION_LIST] is used in the [attendee_list] field.
75
-        if ($this->_data['data'] instanceof EE_Registration) {
76
-            return $this->_get_question_answer_list_for_attendee();
77
-        } //for when [QUESTION_LIST] is used in the main content field.
78
-        else if ($this->_data['data'] instanceof EE_Messages_Addressee && $this->_data['data']->reg_obj instanceof EE_Registration) {
79
-            return $this->_get_question_answer_list_for_attendee($this->_data['data']->reg_obj);
80
-        } else {
81
-            return '';
82
-        }
83
-    }
74
+		//for when [QUESTION_LIST] is used in the [attendee_list] field.
75
+		if ($this->_data['data'] instanceof EE_Registration) {
76
+			return $this->_get_question_answer_list_for_attendee();
77
+		} //for when [QUESTION_LIST] is used in the main content field.
78
+		else if ($this->_data['data'] instanceof EE_Messages_Addressee && $this->_data['data']->reg_obj instanceof EE_Registration) {
79
+			return $this->_get_question_answer_list_for_attendee($this->_data['data']->reg_obj);
80
+		} else {
81
+			return '';
82
+		}
83
+	}
84 84
     
85 85
     
86
-    /**
87
-     * Note when we parse the "[question_list]" shortcode for attendees we're actually going to retrieve the list of
88
-     * answers for that attendee since that is what we really need (we can derive the questions from the answers);
89
-     * @return string parsed template.
90
-     */
91
-    private function _get_question_answer_list_for_attendee($reg_obj = null)
92
-    {
93
-        $valid_shortcodes = array('question');
94
-        $reg_obj          = $reg_obj instanceof EE_Registration ? $reg_obj : $this->_data['data'];
95
-        $template         = is_array($this->_data['template']) && isset($this->_data['template']['question_list']) ? $this->_data['template']['question_list'] : '';
96
-        $template         = empty($template) && isset($this->_extra_data['template']['question_list']) ? $this->_extra_data['template']['question_list'] : $template;
97
-        $ans_result       = '';
98
-        $answers          = ! empty($this->_extra_data['data']->registrations[$reg_obj->ID()]['ans_objs']) ? $this->_extra_data['data']->registrations[$reg_obj->ID()]['ans_objs'] : array();
99
-        $questions        = ! empty($this->_extra_data['data']->questions) ? $this->_extra_data['data']->questions : array();
100
-        foreach ($answers as $answer) {
101
-            //first see if the question is in our $questions array.  If not then try to get from answer object
102
-            $question = isset($questions[ $answer->ID() ]) ? $questions[ $answer->ID() ] : null;
103
-            $question = ! $question instanceof EE_Question ? $answer->question() : $question;
104
-            if ($question instanceof EE_Question and $question->admin_only()) {
105
-                continue;
106
-            }
107
-            $ans_result .= $this->_shortcode_helper->parse_question_list_template($template, $answer, $valid_shortcodes,
108
-                $this->_extra_data);
109
-        }
86
+	/**
87
+	 * Note when we parse the "[question_list]" shortcode for attendees we're actually going to retrieve the list of
88
+	 * answers for that attendee since that is what we really need (we can derive the questions from the answers);
89
+	 * @return string parsed template.
90
+	 */
91
+	private function _get_question_answer_list_for_attendee($reg_obj = null)
92
+	{
93
+		$valid_shortcodes = array('question');
94
+		$reg_obj          = $reg_obj instanceof EE_Registration ? $reg_obj : $this->_data['data'];
95
+		$template         = is_array($this->_data['template']) && isset($this->_data['template']['question_list']) ? $this->_data['template']['question_list'] : '';
96
+		$template         = empty($template) && isset($this->_extra_data['template']['question_list']) ? $this->_extra_data['template']['question_list'] : $template;
97
+		$ans_result       = '';
98
+		$answers          = ! empty($this->_extra_data['data']->registrations[$reg_obj->ID()]['ans_objs']) ? $this->_extra_data['data']->registrations[$reg_obj->ID()]['ans_objs'] : array();
99
+		$questions        = ! empty($this->_extra_data['data']->questions) ? $this->_extra_data['data']->questions : array();
100
+		foreach ($answers as $answer) {
101
+			//first see if the question is in our $questions array.  If not then try to get from answer object
102
+			$question = isset($questions[ $answer->ID() ]) ? $questions[ $answer->ID() ] : null;
103
+			$question = ! $question instanceof EE_Question ? $answer->question() : $question;
104
+			if ($question instanceof EE_Question and $question->admin_only()) {
105
+				continue;
106
+			}
107
+			$ans_result .= $this->_shortcode_helper->parse_question_list_template($template, $answer, $valid_shortcodes,
108
+				$this->_extra_data);
109
+		}
110 110
         
111
-        return $ans_result;
112
-    }
111
+		return $ans_result;
112
+	}
113 113
     
114 114
     
115 115
 } //end EE_Question_List_Shortcodes class
Please login to merge, or discard this patch.
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -99,7 +99,7 @@
 block discarded – undo
99 99
         $questions        = ! empty($this->_extra_data['data']->questions) ? $this->_extra_data['data']->questions : array();
100 100
         foreach ($answers as $answer) {
101 101
             //first see if the question is in our $questions array.  If not then try to get from answer object
102
-            $question = isset($questions[ $answer->ID() ]) ? $questions[ $answer->ID() ] : null;
102
+            $question = isset($questions[$answer->ID()]) ? $questions[$answer->ID()] : null;
103 103
             $question = ! $question instanceof EE_Question ? $answer->question() : $question;
104 104
             if ($question instanceof EE_Question and $question->admin_only()) {
105 105
                 continue;
Please login to merge, or discard this patch.
templates/reg_admin_details_side_meta_box_registrant.template.php 2 patches
Indentation   +8 added lines, -8 removed lines patch added patch discarded remove patch
@@ -26,13 +26,13 @@  discard block
 block discarded – undo
26 26
 
27 27
 <p class="contact-details-buttons">
28 28
     <?php if (
29
-        $att_check instanceof EE_Attendee
30
-        && EE_Registry::instance()->CAP->current_user_can(
31
-            'ee_edit_contact',
32
-            'view_or_edit_contact_button',
33
-            $att_check->ID()
34
-        )
35
-    ) : ?>
29
+		$att_check instanceof EE_Attendee
30
+		&& EE_Registry::instance()->CAP->current_user_can(
31
+			'ee_edit_contact',
32
+			'view_or_edit_contact_button',
33
+			$att_check->ID()
34
+		)
35
+	) : ?>
36 36
     <a class="button button-small" href="<?php echo $att_edit_link; ?>"
37 37
        title="<?php echo esc_attr($att_edit_label); ?>">
38 38
         <span class="ee-icon ee-icon-user-edit"></span><?php echo $att_edit_label; ?>
@@ -40,7 +40,7 @@  discard block
 block discarded – undo
40 40
     <?php if (! empty($create_link)) : ?>
41 41
         <a class="button button-small" href="<?php echo $create_link; ?>"
42 42
            title="<?php esc_attr_e('This registration shares the contact details for the primary registration in this group.  If you\'d like this registration to have its own details, you can do so by clicking this button',
43
-               'event_espresso'); ?>">
43
+			   'event_espresso'); ?>">
44 44
             <span class="ee-icon ee-icon-user-add-new"></span><?php echo $create_label; ?>
45 45
         </a>
46 46
     <?php endif; ?>
Please login to merge, or discard this patch.
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -2,7 +2,7 @@  discard block
 block discarded – undo
2 2
     <p class="clearfix">
3 3
         <span class="admin-side-mbox-label-spn lt-grey-txt float-left">
4 4
             <?php _e('Name', 'event_espresso'); ?>
5
-        </span><?php echo $fname . ' ' . $lname; ?>
5
+        </span><?php echo $fname.' '.$lname; ?>
6 6
     </p>
7 7
     <p class="clearfix">
8 8
         <span class="admin-side-mbox-label-spn lt-grey-txt float-left"><?php _e('Email', 'event_espresso'); ?></span><a
@@ -37,7 +37,7 @@  discard block
 block discarded – undo
37 37
        title="<?php echo esc_attr($att_edit_label); ?>">
38 38
         <span class="ee-icon ee-icon-user-edit"></span><?php echo $att_edit_label; ?>
39 39
     </a>
40
-    <?php if (! empty($create_link)) : ?>
40
+    <?php if ( ! empty($create_link)) : ?>
41 41
         <a class="button button-small" href="<?php echo $create_link; ?>"
42 42
            title="<?php esc_attr_e('This registration shares the contact details for the primary registration in this group.  If you\'d like this registration to have its own details, you can do so by clicking this button',
43 43
                'event_espresso'); ?>">
Please login to merge, or discard this patch.
help_tours/Registration_Form_Question_Groups_Help_Tour.class.php 2 patches
Indentation   +114 added lines, -114 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
 /**
@@ -18,130 +18,130 @@  discard block
 block discarded – undo
18 18
 class Registration_Form_Question_Groups_Help_Tour extends EE_Help_Tour
19 19
 {
20 20
     
21
-    protected function _set_tour_properties()
22
-    {
23
-        $this->_label = __('Question Groups Tour', 'event_espresso');
24
-        $this->_slug  = $this->_is_caf ? 'question-groups-caf-overview-joyride' : 'question-groups-overview-joyride';
25
-    }
21
+	protected function _set_tour_properties()
22
+	{
23
+		$this->_label = __('Question Groups Tour', 'event_espresso');
24
+		$this->_slug  = $this->_is_caf ? 'question-groups-caf-overview-joyride' : 'question-groups-overview-joyride';
25
+	}
26 26
     
27 27
     
28
-    protected function _set_tour_stops()
29
-    {
30
-        $this->_stops = array(
31
-            10 => array(
32
-                'content' => $this->_start(),
33
-            )
34
-        );
28
+	protected function _set_tour_stops()
29
+	{
30
+		$this->_stops = array(
31
+			10 => array(
32
+				'content' => $this->_start(),
33
+			)
34
+		);
35 35
         
36
-        if ($this->_is_caf) {
37
-            $this->_stops[20] = array(
38
-                'id'      => 'name',
39
-                'content' => $this->_name_stop(),
40
-                'options' => array(
41
-                    'tipLocation'    => 'top',
42
-                    'tipAdjustmentY' => -30,
43
-                    'tipAdjustmentX' => 25
44
-                )
45
-            );
46
-            $this->_stops[30] = array(
47
-                'id'      => 'description',
48
-                'content' => $this->_description_stop(),
49
-                'options' => array(
50
-                    'tipLocation'    => 'top',
51
-                    'tipAdjustmentY' => -30,
52
-                    'tipAdjustmentX' => 20
53
-                )
54
-            );
55
-            $this->_stops[40] = array(
56
-                'id'      => 'show_group_name',
57
-                'content' => $this->_show_group_name_stop(),
58
-                'options' => array(
59
-                    'tipLocation'    => 'top',
60
-                    'tipAdjustmentY' => -30,
61
-                    'tipAdjustmentX' => 20
62
-                )
63
-            );
64
-            $this->_stops[50] = array(
65
-                'id'      => 'show_group_desc',
66
-                'content' => $this->_show_group_description_stop(),
67
-                'options' => array(
68
-                    'tipLocation'    => 'top',
69
-                    'tipAdjustmentY' => -30,
70
-                    'tipAdjustmentX' => 20
71
-                )
72
-            );
73
-            $this->_stops[60] = array(
74
-                'class'   => 'bulkactions',
75
-                'content' => $this->_bulk_actions_stop(),
76
-                'options' => array(
77
-                    'tipLocation'    => 'left',
78
-                    'tipAdjustmentY' => -50,
79
-                    'tipAdjustmentX' => -80
80
-                )
81
-            );
82
-            $this->_stops[70] = array(
83
-                'id'      => 'add-new-question-group',
84
-                'content' => $this->_add_new_question_group_stop(),
85
-                'options' => array(
86
-                    'tipLocation'    => 'right',
87
-                    'tipAdjustmentY' => -50,
88
-                    'tipAdjustmentX' => 15
89
-                )
90
-            );
91
-        }
92
-    }
36
+		if ($this->_is_caf) {
37
+			$this->_stops[20] = array(
38
+				'id'      => 'name',
39
+				'content' => $this->_name_stop(),
40
+				'options' => array(
41
+					'tipLocation'    => 'top',
42
+					'tipAdjustmentY' => -30,
43
+					'tipAdjustmentX' => 25
44
+				)
45
+			);
46
+			$this->_stops[30] = array(
47
+				'id'      => 'description',
48
+				'content' => $this->_description_stop(),
49
+				'options' => array(
50
+					'tipLocation'    => 'top',
51
+					'tipAdjustmentY' => -30,
52
+					'tipAdjustmentX' => 20
53
+				)
54
+			);
55
+			$this->_stops[40] = array(
56
+				'id'      => 'show_group_name',
57
+				'content' => $this->_show_group_name_stop(),
58
+				'options' => array(
59
+					'tipLocation'    => 'top',
60
+					'tipAdjustmentY' => -30,
61
+					'tipAdjustmentX' => 20
62
+				)
63
+			);
64
+			$this->_stops[50] = array(
65
+				'id'      => 'show_group_desc',
66
+				'content' => $this->_show_group_description_stop(),
67
+				'options' => array(
68
+					'tipLocation'    => 'top',
69
+					'tipAdjustmentY' => -30,
70
+					'tipAdjustmentX' => 20
71
+				)
72
+			);
73
+			$this->_stops[60] = array(
74
+				'class'   => 'bulkactions',
75
+				'content' => $this->_bulk_actions_stop(),
76
+				'options' => array(
77
+					'tipLocation'    => 'left',
78
+					'tipAdjustmentY' => -50,
79
+					'tipAdjustmentX' => -80
80
+				)
81
+			);
82
+			$this->_stops[70] = array(
83
+				'id'      => 'add-new-question-group',
84
+				'content' => $this->_add_new_question_group_stop(),
85
+				'options' => array(
86
+					'tipLocation'    => 'right',
87
+					'tipAdjustmentY' => -50,
88
+					'tipAdjustmentX' => 15
89
+				)
90
+			);
91
+		}
92
+	}
93 93
     
94 94
     
95
-    protected function _start()
96
-    {
97
-        $content = '<h3>' . __('Question Groups', 'event_espresso') . '</h3>';
98
-        if ($this->_is_caf) {
99
-            $content .= '<p>' . __('This tour of the Question Groups page will go over different areas of the screen to help you understand what they are used for.',
100
-                    'event_espresso') . '</p>';
101
-        } else {
102
-            $content .= '<p>' . __('Sorry, Event Espresso Decaf does not have this feature. Please purchase a support license to get access to this feature.',
103
-                    'event_espresso') . '</p>';
104
-        }
95
+	protected function _start()
96
+	{
97
+		$content = '<h3>' . __('Question Groups', 'event_espresso') . '</h3>';
98
+		if ($this->_is_caf) {
99
+			$content .= '<p>' . __('This tour of the Question Groups page will go over different areas of the screen to help you understand what they are used for.',
100
+					'event_espresso') . '</p>';
101
+		} else {
102
+			$content .= '<p>' . __('Sorry, Event Espresso Decaf does not have this feature. Please purchase a support license to get access to this feature.',
103
+					'event_espresso') . '</p>';
104
+		}
105 105
         
106
-        return $content;
107
-    }
106
+		return $content;
107
+	}
108 108
     
109
-    protected function _name_stop()
110
-    {
111
-        return '<p>' . __('View available questions groups. You can reorder your questions by dragging and dropping them.',
112
-            'event_espresso') . '</p>';
113
-    }
109
+	protected function _name_stop()
110
+	{
111
+		return '<p>' . __('View available questions groups. You can reorder your questions by dragging and dropping them.',
112
+			'event_espresso') . '</p>';
113
+	}
114 114
     
115
-    protected function _description_stop()
116
-    {
117
-        return '<p>' . __('View the question group description.', 'event_espresso') . '</p>';
118
-    }
115
+	protected function _description_stop()
116
+	{
117
+		return '<p>' . __('View the question group description.', 'event_espresso') . '</p>';
118
+	}
119 119
     
120
-    protected function _show_group_name_stop()
121
-    {
122
-        return '<p>' . __('View if the name of the question group should be shown to customers.',
123
-            'event_espresso') . '</p>';
124
-    }
120
+	protected function _show_group_name_stop()
121
+	{
122
+		return '<p>' . __('View if the name of the question group should be shown to customers.',
123
+			'event_espresso') . '</p>';
124
+	}
125 125
     
126
-    protected function _show_group_description_stop()
127
-    {
128
-        return '<p>' . __('View if the description of the question group should be shown to customers.',
129
-            'event_espresso') . '</p>';
130
-    }
126
+	protected function _show_group_description_stop()
127
+	{
128
+		return '<p>' . __('View if the description of the question group should be shown to customers.',
129
+			'event_espresso') . '</p>';
130
+	}
131 131
     
132
-    protected function _bulk_actions_stop()
133
-    {
134
-        return '<p>' . __('Perform bulk actions to multiple question groups.', 'event_espresso') . '</p>';
135
-    }
132
+	protected function _bulk_actions_stop()
133
+	{
134
+		return '<p>' . __('Perform bulk actions to multiple question groups.', 'event_espresso') . '</p>';
135
+	}
136 136
     
137
-    protected function _search_stop()
138
-    {
139
-        return '<p>' . __('Search through questions. The following sources will be searched: question group name and question group description.',
140
-            'event_espresso') . '</p>';
141
-    }
137
+	protected function _search_stop()
138
+	{
139
+		return '<p>' . __('Search through questions. The following sources will be searched: question group name and question group description.',
140
+			'event_espresso') . '</p>';
141
+	}
142 142
     
143
-    protected function _add_new_question_group_stop()
144
-    {
145
-        return '<p>' . __('Click here to create a new question group.', 'event_espresso') . '</p>';
146
-    }
143
+	protected function _add_new_question_group_stop()
144
+	{
145
+		return '<p>' . __('Click here to create a new question group.', 'event_espresso') . '</p>';
146
+	}
147 147
 }
148 148
\ No newline at end of file
Please login to merge, or discard this patch.
Spacing   +16 added lines, -16 removed lines patch added patch discarded remove patch
@@ -94,13 +94,13 @@  discard block
 block discarded – undo
94 94
     
95 95
     protected function _start()
96 96
     {
97
-        $content = '<h3>' . __('Question Groups', 'event_espresso') . '</h3>';
97
+        $content = '<h3>'.__('Question Groups', 'event_espresso').'</h3>';
98 98
         if ($this->_is_caf) {
99
-            $content .= '<p>' . __('This tour of the Question Groups page will go over different areas of the screen to help you understand what they are used for.',
100
-                    'event_espresso') . '</p>';
99
+            $content .= '<p>'.__('This tour of the Question Groups page will go over different areas of the screen to help you understand what they are used for.',
100
+                    'event_espresso').'</p>';
101 101
         } else {
102
-            $content .= '<p>' . __('Sorry, Event Espresso Decaf does not have this feature. Please purchase a support license to get access to this feature.',
103
-                    'event_espresso') . '</p>';
102
+            $content .= '<p>'.__('Sorry, Event Espresso Decaf does not have this feature. Please purchase a support license to get access to this feature.',
103
+                    'event_espresso').'</p>';
104 104
         }
105 105
         
106 106
         return $content;
@@ -108,40 +108,40 @@  discard block
 block discarded – undo
108 108
     
109 109
     protected function _name_stop()
110 110
     {
111
-        return '<p>' . __('View available questions groups. You can reorder your questions by dragging and dropping them.',
112
-            'event_espresso') . '</p>';
111
+        return '<p>'.__('View available questions groups. You can reorder your questions by dragging and dropping them.',
112
+            'event_espresso').'</p>';
113 113
     }
114 114
     
115 115
     protected function _description_stop()
116 116
     {
117
-        return '<p>' . __('View the question group description.', 'event_espresso') . '</p>';
117
+        return '<p>'.__('View the question group description.', 'event_espresso').'</p>';
118 118
     }
119 119
     
120 120
     protected function _show_group_name_stop()
121 121
     {
122
-        return '<p>' . __('View if the name of the question group should be shown to customers.',
123
-            'event_espresso') . '</p>';
122
+        return '<p>'.__('View if the name of the question group should be shown to customers.',
123
+            'event_espresso').'</p>';
124 124
     }
125 125
     
126 126
     protected function _show_group_description_stop()
127 127
     {
128
-        return '<p>' . __('View if the description of the question group should be shown to customers.',
129
-            'event_espresso') . '</p>';
128
+        return '<p>'.__('View if the description of the question group should be shown to customers.',
129
+            'event_espresso').'</p>';
130 130
     }
131 131
     
132 132
     protected function _bulk_actions_stop()
133 133
     {
134
-        return '<p>' . __('Perform bulk actions to multiple question groups.', 'event_espresso') . '</p>';
134
+        return '<p>'.__('Perform bulk actions to multiple question groups.', 'event_espresso').'</p>';
135 135
     }
136 136
     
137 137
     protected function _search_stop()
138 138
     {
139
-        return '<p>' . __('Search through questions. The following sources will be searched: question group name and question group description.',
140
-            'event_espresso') . '</p>';
139
+        return '<p>'.__('Search through questions. The following sources will be searched: question group name and question group description.',
140
+            'event_espresso').'</p>';
141 141
     }
142 142
     
143 143
     protected function _add_new_question_group_stop()
144 144
     {
145
-        return '<p>' . __('Click here to create a new question group.', 'event_espresso') . '</p>';
145
+        return '<p>'.__('Click here to create a new question group.', 'event_espresso').'</p>';
146 146
     }
147 147
 }
148 148
\ No newline at end of file
Please login to merge, or discard this patch.
general_settings/help_tours/Your_Organization_Help_Tour.class.php 2 patches
Indentation   +106 added lines, -106 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
 /**
@@ -18,121 +18,121 @@  discard block
 block discarded – undo
18 18
 class Your_Organization_Help_Tour extends EE_Help_Tour
19 19
 {
20 20
     
21
-    protected function _set_tour_properties()
22
-    {
23
-        $this->_label = __('Your Organization Tour', 'event_espresso');
24
-        $this->_slug  = 'your-organization-joyride';
25
-    }
21
+	protected function _set_tour_properties()
22
+	{
23
+		$this->_label = __('Your Organization Tour', 'event_espresso');
24
+		$this->_slug  = 'your-organization-joyride';
25
+	}
26 26
     
27 27
     
28
-    protected function _set_tour_stops()
29
-    {
30
-        $this->_stops = array(
31
-            10 => array(
32
-                'content' => $this->_start(),
33
-            ),
34
-            30 => array(
35
-                'id'      => 'contact_info_h4',
36
-                'content' => $this->_contact_information_stop(),
37
-                'options' => array(
38
-                    'tipLocation'    => 'left',
39
-                    'tipAdjustmentY' => -50,
40
-                    'tipAdjustmentX' => 15
41
-                )
42
-            ),
43
-            40 => array(
44
-                'id'      => 'upload_image',
45
-                'content' => $this->_upload_image_stop(),
46
-                'options' => array(
47
-                    'tipLocation'    => 'right',
48
-                    'tipAdjustmentY' => -50,
49
-                    'tipAdjustmentX' => 15
50
-                )
51
-            ),
52
-            50 => array(
53
-                'id'      => 'organization_facebook',
54
-                'content' => $this->_organization_facebook_stop(),
55
-                'options' => array(
56
-                    'tipLocation'    => 'right',
57
-                    'tipAdjustmentY' => -50,
58
-                    'tipAdjustmentX' => 15
59
-                )
60
-            ),
61
-            60 => array(
62
-                'id'      => 'ueip_optin',
63
-                'content' => $this->_ueip_option_stop(),
64
-                'options' => array(
65
-                    'tipLocation'    => 'right',
66
-                    'tipAdjustmentY' => -50,
67
-                    'tipAdjustmentX' => 15
68
-                )
69
-            ),
70
-            70 => array(
71
-                'id'      => 'espresso_major_buttons_wrapper',
72
-                'content' => $this->_end_tour_stop(),
73
-                'options' => array(
74
-                    'tipLocation'    => 'right',
75
-                    'tipAdjustmentY' => -50,
76
-                    'tipAdjustmentX' => 185
77
-                )
78
-            )
79
-        );
28
+	protected function _set_tour_stops()
29
+	{
30
+		$this->_stops = array(
31
+			10 => array(
32
+				'content' => $this->_start(),
33
+			),
34
+			30 => array(
35
+				'id'      => 'contact_info_h4',
36
+				'content' => $this->_contact_information_stop(),
37
+				'options' => array(
38
+					'tipLocation'    => 'left',
39
+					'tipAdjustmentY' => -50,
40
+					'tipAdjustmentX' => 15
41
+				)
42
+			),
43
+			40 => array(
44
+				'id'      => 'upload_image',
45
+				'content' => $this->_upload_image_stop(),
46
+				'options' => array(
47
+					'tipLocation'    => 'right',
48
+					'tipAdjustmentY' => -50,
49
+					'tipAdjustmentX' => 15
50
+				)
51
+			),
52
+			50 => array(
53
+				'id'      => 'organization_facebook',
54
+				'content' => $this->_organization_facebook_stop(),
55
+				'options' => array(
56
+					'tipLocation'    => 'right',
57
+					'tipAdjustmentY' => -50,
58
+					'tipAdjustmentX' => 15
59
+				)
60
+			),
61
+			60 => array(
62
+				'id'      => 'ueip_optin',
63
+				'content' => $this->_ueip_option_stop(),
64
+				'options' => array(
65
+					'tipLocation'    => 'right',
66
+					'tipAdjustmentY' => -50,
67
+					'tipAdjustmentX' => 15
68
+				)
69
+			),
70
+			70 => array(
71
+				'id'      => 'espresso_major_buttons_wrapper',
72
+				'content' => $this->_end_tour_stop(),
73
+				'options' => array(
74
+					'tipLocation'    => 'right',
75
+					'tipAdjustmentY' => -50,
76
+					'tipAdjustmentX' => 185
77
+				)
78
+			)
79
+		);
80 80
         
81
-        if (is_main_site()) {
82
-            $this->_stops[20] = array(
83
-                'id' => 'site_license_key',
84
-                'content' => $this->_site_license_key_stop(),
85
-                'options' => array(
86
-                    'tipLocation' => 'right',
87
-                    'tipAdjustmentY' => -50,
88
-                    'tipAdjustmentX' => 15
89
-                )
90
-            );
91
-        }
92
-        ksort( $this->_stops );
93
-    }
81
+		if (is_main_site()) {
82
+			$this->_stops[20] = array(
83
+				'id' => 'site_license_key',
84
+				'content' => $this->_site_license_key_stop(),
85
+				'options' => array(
86
+					'tipLocation' => 'right',
87
+					'tipAdjustmentY' => -50,
88
+					'tipAdjustmentX' => 15
89
+				)
90
+			);
91
+		}
92
+		ksort( $this->_stops );
93
+	}
94 94
     
95 95
     
96
-    protected function _start()
97
-    {
98
-        $content = '<h3>' . __('Organization Settings', 'event_espresso') . '</h3>';
99
-        $content .= '<p>' . __('This tour of the Your Organization page will go over different areas of the screen to help you understand what they are used for.',
100
-                'event_espresso') . '</p>';
96
+	protected function _start()
97
+	{
98
+		$content = '<h3>' . __('Organization Settings', 'event_espresso') . '</h3>';
99
+		$content .= '<p>' . __('This tour of the Your Organization page will go over different areas of the screen to help you understand what they are used for.',
100
+				'event_espresso') . '</p>';
101 101
         
102
-        return $content;
103
-    }
102
+		return $content;
103
+	}
104 104
     
105
-    protected function _site_license_key_stop()
106
-    {
107
-        return '<p>' . __('Enter your support license key here to enable one-click updates.',
108
-            'event_espresso') . '</p>';
109
-    }
105
+	protected function _site_license_key_stop()
106
+	{
107
+		return '<p>' . __('Enter your support license key here to enable one-click updates.',
108
+			'event_espresso') . '</p>';
109
+	}
110 110
     
111
-    protected function _contact_information_stop()
112
-    {
113
-        return '<p>' . __('You can change your business / organization information below. Be sure to keep this information updated as it is used in other areas of the site. Adjusting the country option here will update your currency settings. More options are available in the Countries tab.',
114
-            'event_espresso') . '</p>';
115
-    }
111
+	protected function _contact_information_stop()
112
+	{
113
+		return '<p>' . __('You can change your business / organization information below. Be sure to keep this information updated as it is used in other areas of the site. Adjusting the country option here will update your currency settings. More options are available in the Countries tab.',
114
+			'event_espresso') . '</p>';
115
+	}
116 116
     
117
-    protected function _upload_image_stop()
118
-    {
119
-        return '<p>' . __('Add a logo. This can be used for invoices and tickets.', 'event_espresso') . '</p>';
120
-    }
117
+	protected function _upload_image_stop()
118
+	{
119
+		return '<p>' . __('Add a logo. This can be used for invoices and tickets.', 'event_espresso') . '</p>';
120
+	}
121 121
     
122
-    protected function _organization_facebook_stop()
123
-    {
124
-        return '<p>' . __('Add links to various social media networks.', 'event_espresso') . '</p>';
125
-    }
122
+	protected function _organization_facebook_stop()
123
+	{
124
+		return '<p>' . __('Add links to various social media networks.', 'event_espresso') . '</p>';
125
+	}
126 126
     
127
-    protected function _ueip_option_stop()
128
-    {
129
-        return '<p>' . __('Help us to help you! Sign up to the User eXperience Improvement Program and send us anonymous data that will help us improve Event Espresso.',
130
-            'event_espresso') . '</p>';
131
-    }
127
+	protected function _ueip_option_stop()
128
+	{
129
+		return '<p>' . __('Help us to help you! Sign up to the User eXperience Improvement Program and send us anonymous data that will help us improve Event Espresso.',
130
+			'event_espresso') . '</p>';
131
+	}
132 132
     
133
-    protected function _end_tour_stop()
134
-    {
135
-        return '<p>' . __('You are almost done updating Your Organization information. Click on the Save button to save changes and then go to the Payment Methods screen so you can setup a payment gateway.',
136
-            'event_espresso') . '</p>';
137
-    }
133
+	protected function _end_tour_stop()
134
+	{
135
+		return '<p>' . __('You are almost done updating Your Organization information. Click on the Save button to save changes and then go to the Payment Methods screen so you can setup a payment gateway.',
136
+			'event_espresso') . '</p>';
137
+	}
138 138
 }
139 139
\ No newline at end of file
Please login to merge, or discard this patch.
Spacing   +14 added lines, -14 removed lines patch added patch discarded remove patch
@@ -89,50 +89,50 @@
 block discarded – undo
89 89
                 )
90 90
             );
91 91
         }
92
-        ksort( $this->_stops );
92
+        ksort($this->_stops);
93 93
     }
94 94
     
95 95
     
96 96
     protected function _start()
97 97
     {
98
-        $content = '<h3>' . __('Organization Settings', 'event_espresso') . '</h3>';
99
-        $content .= '<p>' . __('This tour of the Your Organization page will go over different areas of the screen to help you understand what they are used for.',
100
-                'event_espresso') . '</p>';
98
+        $content = '<h3>'.__('Organization Settings', 'event_espresso').'</h3>';
99
+        $content .= '<p>'.__('This tour of the Your Organization page will go over different areas of the screen to help you understand what they are used for.',
100
+                'event_espresso').'</p>';
101 101
         
102 102
         return $content;
103 103
     }
104 104
     
105 105
     protected function _site_license_key_stop()
106 106
     {
107
-        return '<p>' . __('Enter your support license key here to enable one-click updates.',
108
-            'event_espresso') . '</p>';
107
+        return '<p>'.__('Enter your support license key here to enable one-click updates.',
108
+            'event_espresso').'</p>';
109 109
     }
110 110
     
111 111
     protected function _contact_information_stop()
112 112
     {
113
-        return '<p>' . __('You can change your business / organization information below. Be sure to keep this information updated as it is used in other areas of the site. Adjusting the country option here will update your currency settings. More options are available in the Countries tab.',
114
-            'event_espresso') . '</p>';
113
+        return '<p>'.__('You can change your business / organization information below. Be sure to keep this information updated as it is used in other areas of the site. Adjusting the country option here will update your currency settings. More options are available in the Countries tab.',
114
+            'event_espresso').'</p>';
115 115
     }
116 116
     
117 117
     protected function _upload_image_stop()
118 118
     {
119
-        return '<p>' . __('Add a logo. This can be used for invoices and tickets.', 'event_espresso') . '</p>';
119
+        return '<p>'.__('Add a logo. This can be used for invoices and tickets.', 'event_espresso').'</p>';
120 120
     }
121 121
     
122 122
     protected function _organization_facebook_stop()
123 123
     {
124
-        return '<p>' . __('Add links to various social media networks.', 'event_espresso') . '</p>';
124
+        return '<p>'.__('Add links to various social media networks.', 'event_espresso').'</p>';
125 125
     }
126 126
     
127 127
     protected function _ueip_option_stop()
128 128
     {
129
-        return '<p>' . __('Help us to help you! Sign up to the User eXperience Improvement Program and send us anonymous data that will help us improve Event Espresso.',
130
-            'event_espresso') . '</p>';
129
+        return '<p>'.__('Help us to help you! Sign up to the User eXperience Improvement Program and send us anonymous data that will help us improve Event Espresso.',
130
+            'event_espresso').'</p>';
131 131
     }
132 132
     
133 133
     protected function _end_tour_stop()
134 134
     {
135
-        return '<p>' . __('You are almost done updating Your Organization information. Click on the Save button to save changes and then go to the Payment Methods screen so you can setup a payment gateway.',
136
-            'event_espresso') . '</p>';
135
+        return '<p>'.__('You are almost done updating Your Organization information. Click on the Save button to save changes and then go to the Payment Methods screen so you can setup a payment gateway.',
136
+            'event_espresso').'</p>';
137 137
     }
138 138
 }
139 139
\ No newline at end of file
Please login to merge, or discard this patch.
admin_pages/maintenance/templates/migration_options_from_ee3.template.php 1 patch
Indentation   +48 added lines, -48 removed lines patch added patch discarded remove patch
@@ -26,7 +26,7 @@  discard block
 block discarded – undo
26 26
         <span class="dashicons dashicons-admin-tools"></span>
27 27
         <?php esc_html_e("Migration Options", "event_espresso"); ?>
28 28
         <span class="tiny-text lt-grey-text"> &nbsp; <?php esc_html_e(' to migrate or not to migrate?',
29
-                    "event_espresso"); ?></span>
29
+					"event_espresso"); ?></span>
30 30
     </h2>
31 31
     <div class="ee-table-wrap">
32 32
         <table>
@@ -35,24 +35,24 @@  discard block
 block discarded – undo
35 35
                 <td><h3><?php esc_html_e('1', 'event_espresso'); ?></h3></td>
36 36
                 <td>
37 37
                     <?php
38
-                    echo apply_filters(
39
-                            'FHEE__ee_migration_page__option_1_main',
40
-                            sprintf(
41
-                                    esc_html__('%1$sYes. I have backed up my database%2$s, %3$sunderstand the risks involved%4$s, and am ready to migrate my existing %5$s data to %6$s.',
42
-                                            "event_espresso"),
43
-                                    '<strong>',
44
-                                    '</strong>',
45
-                                    '<a id="migration-risks" class="" title="'
46
-                                    . esc_attr__('click for more details', "event_espresso")
47
-                                    . '">',
48
-                                    '</a>',
49
-                                    $current_db_state,
50
-                                    $next_db_state
51
-                            ),
52
-                            $current_db_state,
53
-                            $next_db_state
54
-                    );
55
-                    ?>
38
+					echo apply_filters(
39
+							'FHEE__ee_migration_page__option_1_main',
40
+							sprintf(
41
+									esc_html__('%1$sYes. I have backed up my database%2$s, %3$sunderstand the risks involved%4$s, and am ready to migrate my existing %5$s data to %6$s.',
42
+											"event_espresso"),
43
+									'<strong>',
44
+									'</strong>',
45
+									'<a id="migration-risks" class="" title="'
46
+									. esc_attr__('click for more details', "event_espresso")
47
+									. '">',
48
+									'</a>',
49
+									$current_db_state,
50
+									$next_db_state
51
+							),
52
+							$current_db_state,
53
+							$next_db_state
54
+					);
55
+					?>
56 56
                     <a id="display-migration-details"
57 57
                        class="display-the-hidden lt-grey-text smaller-text hide-if-no-js"
58 58
                        rel="migration-details"><?php esc_html_e('click for more details', "event_espresso"); ?>
@@ -61,37 +61,37 @@  discard block
 block discarded – undo
61 61
                        class="hide-the-displayed lt-grey-text smaller-text hide-if-no-js"
62 62
                        rel="migration-details"
63 63
                        style="display:none;"><?php echo sprintf(esc_html__('hide%1$sdetails%1$s-',
64
-                                'event_espresso'), '&nbsp;'); ?></a>
64
+								'event_espresso'), '&nbsp;'); ?></a>
65 65
                 </td>
66 66
                 <td>
67 67
                     <a id="db-backed-up"
68 68
                        class="toggle-migration-monitor button-primary"><?php echo apply_filters('FHEE__ee_migration_page__option_1_button_text',
69
-                                sprintf(esc_html__("Migrate My %s Data to %s", "event_espresso"), $current_db_state,
70
-                                        $next_db_state), $current_db_state, $next_db_state); ?></a>
69
+								sprintf(esc_html__("Migrate My %s Data to %s", "event_espresso"), $current_db_state,
70
+										$next_db_state), $current_db_state, $next_db_state); ?></a>
71 71
                 </td>
72 72
             </tr>
73 73
             <tr>
74 74
                 <td colspan="3" style="padding: 0">
75 75
                     <div id="migration-details-dv" style="display: none; padding: 1em;">
76 76
 <span class="reminder-spn"><?php printf(esc_html__("%s Important: %s Before migrating, please back up your database and files.",
77
-            "event_espresso"), "<b>", "</b>"); ?></span>
77
+			"event_espresso"), "<b>", "</b>"); ?></span>
78 78
                         <p>
79 79
                             <?php
80
-                            printf(
81
-                                    esc_html__('%1$sNot sure how to backup your existing data?%2$s Here is %3$sWordPress\'s explanation%7$s, and here\'s %6$sour explanation%7$s.%8$sYou can also search the WordPress plugin database for %4$s database backup plugins %7$s,%8$sor have one of our dedicated support technicians help you by purchasing a %5$sPriority Support Token%7$s.',
82
-                                            "event_espresso"),
83
-                                    '<b>',
84
-                                    '</b>',
85
-                                    "<a href='http://codex.wordpress.org/Backing_Up_Your_Database'>",
86
-                                    "<a href='"
87
-                                    . admin_url('plugin-install.php?tab=search&type=term&s=database+backup&plugin-search-input=Search+Plugins')
88
-                                    . "'>",
89
-                                    "<a href='http://eventespresso.com/product/priority-support-tokens/'>",
90
-                                    '<a href="http://eventespresso.com/wiki/how-to-back-up-your-site/">',
91
-                                    "</a>",
92
-                                    '<br/>'
93
-                            );
94
-                            ?>
80
+							printf(
81
+									esc_html__('%1$sNot sure how to backup your existing data?%2$s Here is %3$sWordPress\'s explanation%7$s, and here\'s %6$sour explanation%7$s.%8$sYou can also search the WordPress plugin database for %4$s database backup plugins %7$s,%8$sor have one of our dedicated support technicians help you by purchasing a %5$sPriority Support Token%7$s.',
82
+											"event_espresso"),
83
+									'<b>',
84
+									'</b>',
85
+									"<a href='http://codex.wordpress.org/Backing_Up_Your_Database'>",
86
+									"<a href='"
87
+									. admin_url('plugin-install.php?tab=search&type=term&s=database+backup&plugin-search-input=Search+Plugins')
88
+									. "'>",
89
+									"<a href='http://eventespresso.com/product/priority-support-tokens/'>",
90
+									'<a href="http://eventespresso.com/wiki/how-to-back-up-your-site/">',
91
+									"</a>",
92
+									'<br/>'
93
+							);
94
+							?>
95 95
                         </p>
96 96
                         <?php do_action('AHEE__ee_migration_page__option_1_extra_details'); ?>
97 97
                     </div>
@@ -101,12 +101,12 @@  discard block
 block discarded – undo
101 101
                 <td><h3><?php esc_html_e('2', 'event_espresso'); ?></h3></td>
102 102
                 <td>
103 103
                     <?php echo apply_filters('FHEE__ee_migration_page__option_2_main',
104
-                            sprintf(esc_html__('I do NOT want to migrate my %1$s data to %2$s at this time and just want to use %3$s without migrating data.',
105
-                                    "event_espresso"), $current_db_state, $next_db_state,
106
-                                    $ultimate_db_state), $current_db_state, $next_db_state,
107
-                            $ultimate_db_state); ?><br/>
104
+							sprintf(esc_html__('I do NOT want to migrate my %1$s data to %2$s at this time and just want to use %3$s without migrating data.',
105
+									"event_espresso"), $current_db_state, $next_db_state,
106
+									$ultimate_db_state), $current_db_state, $next_db_state,
107
+							$ultimate_db_state); ?><br/>
108 108
                     <span class="reminder-spn"><?php esc_html_e('Please Note: In order to avoid errors, any existing Event Espresso data (events, ticket, registrations, etc) in your db will be erased! Regular WP data will NOT be affected.',
109
-                                'event_espresso'); ?></span>
109
+								'event_espresso'); ?></span>
110 110
                     <a id="display-no-migration-details"
111 111
                        class="display-the-hidden lt-grey-text smaller-text hide-if-no-js"
112 112
                        rel="no-migration-details"><?php esc_html_e('click for more details', "event_espresso"); ?>
@@ -115,13 +115,13 @@  discard block
 block discarded – undo
115 115
                        class="hide-the-displayed lt-grey-text smaller-text hide-if-no-js"
116 116
                        rel="no-migration-details"
117 117
                        style="display:none;"><?php echo sprintf(esc_html__('hide%1$sdetails%1$s-',
118
-                                'event_espresso'), '&nbsp;'); ?></a>
118
+								'event_espresso'), '&nbsp;'); ?></a>
119 119
                 </td>
120 120
                 <td>
121 121
                     <a id="do-not-migrate" class="do-not-migrate button-primary"
122 122
                        href="<?php echo $reset_db_page_link; ?>"><?php echo apply_filters('FHEE__ee_migration_page__option_2_button_text',
123
-                                sprintf(esc_html__("Just Start %s and Delete Existing Data", "event_espresso"),
124
-                                        $ultimate_db_state), $ultimate_db_state); ?></a>
123
+								sprintf(esc_html__("Just Start %s and Delete Existing Data", "event_espresso"),
124
+										$ultimate_db_state), $ultimate_db_state); ?></a>
125 125
                 </td>
126 126
             </tr>
127 127
             <tr>
@@ -129,8 +129,8 @@  discard block
 block discarded – undo
129 129
                     <div id="no-migration-details-dv" style="display: none; padding: 1em;">
130 130
                         <p>
131 131
                             <?php echo apply_filters('FHEE__ee_migration_page__option_2_details',
132
-                                    sprintf(esc_html__("If your existing Event and Registration Data is no longer relevant nor required, you can just start up %s without performing a data migration.",
133
-                                            "event_espresso"), $ultimate_db_state), $ultimate_db_state); ?>
132
+									sprintf(esc_html__("If your existing Event and Registration Data is no longer relevant nor required, you can just start up %s without performing a data migration.",
133
+											"event_espresso"), $ultimate_db_state), $ultimate_db_state); ?>
134 134
                         </p>
135 135
                     </div>
136 136
                 </td>
Please login to merge, or discard this patch.