Completed
Branch FET/reg-form-builder/main (d0d867)
by
unknown
09:57 queued 24s
created
modules/single_page_checkout/inc/EE_SPCO_Reg_Step.class.php 1 patch
Indentation   +636 added lines, -636 removed lines patch added patch discarded remove patch
@@ -12,640 +12,640 @@
 block discarded – undo
12 12
 abstract class EE_SPCO_Reg_Step
13 13
 {
14 14
 
15
-    /**
16
-     *    $_completed - TRUE if this step has fully completed it's duties
17
-     *
18
-     * @access protected
19
-     * @type bool $_completed
20
-     */
21
-    protected $_completed = false;
22
-
23
-    /**
24
-     *    $_is_current_step - TRUE if this is the current step
25
-     *
26
-     * @access protected
27
-     * @type bool $_is_current_step
28
-     */
29
-    protected $_is_current_step = false;
30
-
31
-    /**
32
-     *    $_order - when the reg step should be run relative to other steps
33
-     *
34
-     * @access protected
35
-     * @type int $_template
36
-     */
37
-    protected $_order = 0;
38
-
39
-    /**
40
-     *    $_slug - URL param for this step
41
-     *
42
-     * @access protected
43
-     * @type string $_slug
44
-     */
45
-    protected $_slug;
46
-
47
-    /**
48
-     *    $_name - Step Name - translatable string
49
-     *
50
-     * @access protected
51
-     * @type string $_slug
52
-     */
53
-    protected $_name;
54
-
55
-    /**
56
-     *    $_submit_button_text - translatable string that appears on this step's submit button
57
-     *
58
-     * @access protected
59
-     * @type string $_slug
60
-     */
61
-    protected $_submit_button_text;
62
-
63
-    /**
64
-     *    $_template - template name
65
-     *
66
-     * @access protected
67
-     * @type string $_template
68
-     */
69
-    protected $_template;
70
-
71
-    /**
72
-     *    $_reg_form_name - the form input name and id attribute
73
-     *
74
-     * @access protected
75
-     * @var string $_reg_form_name
76
-     */
77
-    protected $_reg_form_name;
78
-
79
-    /**
80
-     *    $_success_message - text to display upon successful form submission
81
-     *
82
-     * @access private
83
-     * @var string $_success_message
84
-     */
85
-    protected $_success_message;
86
-
87
-    /**
88
-     *    $_instructions - a brief description of how to complete the reg step.
89
-     *    Usually displayed in conjunction with the previous step's success message.
90
-     *
91
-     * @access private
92
-     * @var string $_instructions
93
-     */
94
-    protected $_instructions;
95
-
96
-    /**
97
-     *    $_valid_data - the normalized and validated data for this step
98
-     *
99
-     * @access public
100
-     * @var array $_valid_data
101
-     */
102
-    protected $_valid_data = array();
103
-
104
-    /**
105
-     *    $reg_form - the registration form for this step
106
-     *
107
-     * @access public
108
-     * @var EE_Form_Section_Proper $reg_form
109
-     */
110
-    public $reg_form;
111
-
112
-    /**
113
-     *    $checkout - EE_Checkout object for handling the properties of the current checkout process
114
-     *
115
-     * @access public
116
-     * @var EE_Checkout $checkout
117
-     */
118
-    public $checkout;
119
-
120
-
121
-    /**
122
-     * @return void
123
-     */
124
-    abstract public function translate_js_strings();
125
-
126
-
127
-    /**
128
-     * @return void
129
-     */
130
-    abstract public function enqueue_styles_and_scripts();
131
-
132
-
133
-    /**
134
-     * @return boolean
135
-     */
136
-    abstract public function initialize_reg_step();
137
-
138
-
139
-    /**
140
-     * @return string
141
-     */
142
-    abstract public function generate_reg_form();
143
-
144
-
145
-    /**
146
-     * @return boolean
147
-     */
148
-    abstract public function process_reg_step();
149
-
150
-
151
-    /**
152
-     * @return boolean
153
-     */
154
-    abstract public function update_reg_step();
155
-
156
-
157
-    /**
158
-     * @return boolean
159
-     */
160
-    public function completed()
161
-    {
162
-        return $this->_completed;
163
-    }
164
-
165
-
166
-    /**
167
-     * set_completed - toggles $_completed to TRUE
168
-     */
169
-    public function set_completed()
170
-    {
171
-        // DEBUG LOG
172
-        // $this->checkout->log( __CLASS__, __FUNCTION__, __LINE__ );
173
-        $this->_completed = apply_filters('FHEE__EE_SPCO_Reg_Step__set_completed___completed', true, $this);
174
-    }
175
-
176
-
177
-    /**
178
-     * set_completed - toggles $_completed to FALSE
179
-     */
180
-    public function set_not_completed()
181
-    {
182
-        $this->_completed = false;
183
-    }
184
-
185
-
186
-    /**
187
-     * @return string
188
-     */
189
-    public function name()
190
-    {
191
-        return $this->_name;
192
-    }
193
-
194
-
195
-    /**
196
-     * @return string
197
-     */
198
-    public function slug()
199
-    {
200
-        return $this->_slug;
201
-    }
202
-
203
-
204
-    /**
205
-     * submit_button_text
206
-     * the text that appears on the reg step form submit button
207
-     *
208
-     * @return string
209
-     */
210
-    public function submit_button_text()
211
-    {
212
-        return $this->_submit_button_text;
213
-    }
214
-
215
-
216
-    /**
217
-     * set_submit_button_text
218
-     * sets the text that appears on the reg step form submit button
219
-     *
220
-     * @param string $submit_button_text
221
-     */
222
-    public function set_submit_button_text($submit_button_text = '')
223
-    {
224
-        if (! empty($submit_button_text)) {
225
-            $this->_submit_button_text = $submit_button_text;
226
-        } elseif ($this->checkout->next_step instanceof EE_SPCO_Reg_Step) {
227
-            if ($this->checkout->revisit) {
228
-                $this->_submit_button_text = sprintf(
229
-                    __('Update %s', 'event_espresso'),
230
-                    $this->checkout->current_step->name()
231
-                );
232
-            } else {
233
-                $this->_submit_button_text = sprintf(
234
-                    __('Proceed to %s', 'event_espresso'),
235
-                    $this->checkout->next_step->name()
236
-                );
237
-            }
238
-        }
239
-        // filters the submit button text
240
-        $this->_submit_button_text = apply_filters(
241
-            'FHEE__EE_SPCO_Reg_Step__set_submit_button_text___submit_button_text',
242
-            $this->_submit_button_text,
243
-            $this->checkout
244
-        );
245
-    }
246
-
247
-
248
-    /**
249
-     * @param boolean $is_current_step
250
-     */
251
-    public function set_is_current_step($is_current_step)
252
-    {
253
-        $this->_is_current_step = $is_current_step;
254
-    }
255
-
256
-
257
-    /**
258
-     * @return boolean
259
-     */
260
-    public function is_current_step()
261
-    {
262
-        return $this->_is_current_step;
263
-    }
264
-
265
-
266
-    /**
267
-     * @return boolean
268
-     */
269
-    public function is_final_step()
270
-    {
271
-        return $this instanceof EE_SPCO_Reg_Step_Finalize_Registration ? true : false;
272
-    }
273
-
274
-
275
-    /**
276
-     * @param int $order
277
-     */
278
-    public function set_order($order)
279
-    {
280
-        $this->_order = $order;
281
-    }
282
-
283
-
284
-    /**
285
-     * @return int
286
-     */
287
-    public function order()
288
-    {
289
-        return $this->_order;
290
-    }
291
-
292
-
293
-    /**
294
-     * @return string
295
-     */
296
-    public function template(): string
297
-    {
298
-        return $this->_template;
299
-    }
300
-
301
-
302
-    /**
303
-     * @param string $template
304
-     */
305
-    public function setTemplate(string $template): void
306
-    {
307
-        $this->_template = $template;
308
-    }
309
-
310
-
311
-    /**
312
-     * @return string
313
-     */
314
-    public function success_message()
315
-    {
316
-        return $this->_success_message;
317
-    }
318
-
319
-
320
-    /**
321
-     * _set_success_message
322
-     *
323
-     * @param string $success_message
324
-     */
325
-    protected function _set_success_message($success_message)
326
-    {
327
-        $this->_success_message = $success_message;
328
-    }
329
-
330
-
331
-    /**
332
-     * _reset_success_message
333
-     *
334
-     * @return void
335
-     */
336
-    protected function _reset_success_message()
337
-    {
338
-        $this->_success_message = '';
339
-    }
340
-
341
-
342
-    /**
343
-     * @return string
344
-     */
345
-    public function _instructions()
346
-    {
347
-        return $this->_instructions;
348
-    }
349
-
350
-
351
-    /**
352
-     * @param string $instructions
353
-     */
354
-    public function set_instructions($instructions)
355
-    {
356
-        $this->_instructions = apply_filters(
357
-            'FHEE__EE_SPCO_Reg_Step__set_instructions__instructions',
358
-            $instructions,
359
-            $this
360
-        );
361
-    }
362
-
363
-
364
-    /**
365
-     * @param array $valid_data
366
-     */
367
-    public function set_valid_data($valid_data)
368
-    {
369
-        $this->_valid_data = $valid_data;
370
-    }
371
-
372
-
373
-    /**
374
-     * @return array
375
-     */
376
-    public function valid_data()
377
-    {
378
-        if (empty($this->_valid_data)) {
379
-            $this->_valid_data = $this->reg_form->valid_data();
380
-        }
381
-        return $this->_valid_data;
382
-    }
383
-
384
-
385
-    /**
386
-     * @return string
387
-     */
388
-    public function reg_form_name()
389
-    {
390
-        if (empty($this->_reg_form_name)) {
391
-            $this->set_reg_form_name('ee-spco-' . $this->slug() . '-reg-step-form');
392
-        }
393
-        return $this->_reg_form_name;
394
-    }
395
-
396
-
397
-    /**
398
-     * @param string $reg_form_name
399
-     */
400
-    protected function set_reg_form_name($reg_form_name)
401
-    {
402
-        $this->_reg_form_name = $reg_form_name;
403
-    }
404
-
405
-
406
-    /**
407
-     * reg_step_url
408
-     *
409
-     * @param string $action
410
-     * @return string
411
-     */
412
-    public function reg_step_url($action = '')
413
-    {
414
-        $query_args = array('step' => $this->slug());
415
-        if (! empty($action)) {
416
-            $query_args['action'] = $action;
417
-        }
418
-        // final step has no display
419
-        if ($this instanceof EE_SPCO_Reg_Step_Finalize_Registration && $action === 'display_spco_reg_step') {
420
-            $query_args['action'] = 'process_reg_step';
421
-        }
422
-        if ($this->checkout->revisit) {
423
-            $query_args['revisit'] = true;
424
-        }
425
-        if ($this->checkout->reg_url_link) {
426
-            $query_args['e_reg_url_link'] = $this->checkout->reg_url_link;
427
-        }
428
-        return add_query_arg($query_args, $this->checkout->reg_page_base_url);
429
-    }
430
-
431
-
432
-    /**
433
-     * creates the default hidden inputs section
434
-     *
435
-     * @return EE_Form_Section_Proper
436
-     * @throws \EE_Error
437
-     */
438
-    public function reg_step_hidden_inputs()
439
-    {
440
-        // hidden inputs for admin registrations
441
-        if ($this->checkout->admin_request) {
442
-            return new EE_Form_Section_Proper(
443
-                array(
444
-                    'layout_strategy' => new EE_Div_Per_Section_Layout(),
445
-                    'html_id'         => 'ee-' . $this->slug() . '-hidden-inputs',
446
-                    'subsections'     => array(
447
-                        'next_step' => new EE_Fixed_Hidden_Input(
448
-                            array(
449
-                                'html_name' => 'next_step',
450
-                                'html_id'   => 'spco-' . $this->slug() . '-next-step',
451
-                                'default'   => $this->checkout->next_step instanceof EE_SPCO_Reg_Step
452
-                                    ? $this->checkout->next_step->slug()
453
-                                    : '',
454
-                            )
455
-                        ),
456
-                    ),
457
-                )
458
-            );
459
-        }
460
-        // hidden inputs for frontend registrations
461
-        return new EE_Form_Section_Proper(
462
-            array(
463
-                'layout_strategy' => new EE_Div_Per_Section_Layout(),
464
-                'html_id'         => 'ee-' . $this->slug() . '-hidden-inputs',
465
-                'subsections'     => array(
466
-                    'action'         => new EE_Fixed_Hidden_Input(
467
-                        array(
468
-                            'html_name' => 'action',
469
-                            'html_id'   => 'spco-' . $this->slug() . '-action',
470
-                            'default'   => apply_filters(
471
-                                'FHEE__EE_SPCO_Reg_Step__reg_step_hidden_inputs__default_form_action',
472
-                                empty($this->checkout->reg_url_link)
473
-                                    ? 'process_reg_step'
474
-                                    : 'update_reg_step',
475
-                                $this
476
-                            ),
477
-                        )
478
-                    ),
479
-                    'next_step'      => new EE_Fixed_Hidden_Input(
480
-                        array(
481
-                            'html_name' => 'next_step',
482
-                            'html_id'   => 'spco-' . $this->slug() . '-next-step',
483
-                            'default'   => $this->checkout->next_step instanceof EE_SPCO_Reg_Step
484
-                                ? $this->checkout->next_step->slug()
485
-                                : '',
486
-                        )
487
-                    ),
488
-                    'e_reg_url_link' => new EE_Fixed_Hidden_Input(
489
-                        array(
490
-                            'html_name' => 'e_reg_url_link',
491
-                            'html_id'   => 'spco-reg_url_link',
492
-                            'default'   => $this->checkout->reg_url_link,
493
-                        )
494
-                    ),
495
-                    'revisit'        => new EE_Fixed_Hidden_Input(
496
-                        array(
497
-                            'html_name' => 'revisit',
498
-                            'html_id'   => 'spco-revisit',
499
-                            'default'   => $this->checkout->revisit,
500
-                        )
501
-                    ),
502
-                ),
503
-            )
504
-        );
505
-    }
506
-
507
-
508
-    /**
509
-     * generate_reg_form_for_actions
510
-     *
511
-     * @param array $actions
512
-     * @return void
513
-     */
514
-    public function generate_reg_form_for_actions($actions = array())
515
-    {
516
-        $actions = array_merge(
517
-            array(
518
-                'generate_reg_form',
519
-                'display_spco_reg_step',
520
-                'process_reg_step',
521
-                'update_reg_step',
522
-            ),
523
-            $actions
524
-        );
525
-        $this->checkout->generate_reg_form = in_array($this->checkout->action, $actions, true) ? true : false;
526
-    }
527
-
528
-
529
-    /**
530
-     * @return string
531
-     * @throws \EE_Error
532
-     */
533
-    public function display_reg_form()
534
-    {
535
-        $html = '';
536
-        if ($this->reg_form instanceof EE_Form_Section_Proper) {
537
-            do_action('AHEE__EE_SPCO_Reg_Step__display_reg_form__reg_form', $this->reg_form, $this);
538
-            $html .= ! $this->checkout->admin_request ? $this->reg_form->form_open($this->reg_step_url()) : '';
539
-            if (EE_Registry::instance()->REQ->ajax) {
540
-                $this->reg_form->localize_validation_rules();
541
-                $this->checkout->json_response->add_validation_rules(EE_Form_Section_Proper::js_localization());
542
-            }
543
-            $html .= $this->reg_form->get_html();
544
-            $html .= ! $this->checkout->admin_request ? $this->reg_step_submit_button() : '';
545
-            $html .= ! $this->checkout->admin_request ? $this->reg_form->form_close() : '';
546
-        }
547
-        return $html;
548
-    }
549
-
550
-
551
-    /**
552
-     * div_class - returns nothing for current step, but a css class of "hidden" for others
553
-     *
554
-     * @return string
555
-     * @throws \EE_Error
556
-     */
557
-    public function reg_step_submit_button()
558
-    {
559
-        if (! $this->checkout->next_step instanceof EE_SPCO_Reg_Step) {
560
-            return '';
561
-        }
562
-        ob_start();
563
-        do_action(
564
-            'AHEE__before_spco_whats_next_buttons',
565
-            $this->slug(),
566
-            $this->checkout->next_step->slug(),
567
-            $this->checkout
568
-        );
569
-        $html = ob_get_clean();
570
-        // generate submit button
571
-        $sbmt_btn = new EE_Submit_Input(
572
-            array(
573
-                'html_name'             => 'spco-go-to-step-' . $this->checkout->next_step->slug(),
574
-                'html_id'               => 'spco-go-to-step-' . $this->checkout->next_step->slug(),
575
-                'html_class'            => 'spco-next-step-btn',
576
-                'other_html_attributes' => ' rel="' . $this->slug() . '"',
577
-                'default'               => $this->submit_button_text(),
578
-            )
579
-        );
580
-        $sbmt_btn->set_button_css_attributes(true, 'large');
581
-        $sbmt_btn_html = $sbmt_btn->get_html_for_input();
582
-        $html .= EEH_HTML::div(
583
-            apply_filters('FHEE__EE_SPCO_Reg_Step__reg_step_submit_button__sbmt_btn_html', $sbmt_btn_html, $this),
584
-            'spco-' . $this->slug() . '-whats-next-buttons-dv',
585
-            'spco-whats-next-buttons'
586
-        );
587
-        return $html;
588
-    }
589
-
590
-
591
-    /**
592
-     * div_class - returns nothing for current step, but a css class of "hidden" for others
593
-     *
594
-     * @return string
595
-     */
596
-    public function div_class()
597
-    {
598
-        return $this->is_current_step() ? '' : ' hidden';
599
-    }
600
-
601
-
602
-    /**
603
-     * div_class - returns  a css class of "hidden" for current step, but nothing for others
604
-     *
605
-     * @return string
606
-     */
607
-    public function edit_lnk_url()
608
-    {
609
-        return add_query_arg(array('step' => $this->slug()), $this->checkout->reg_page_base_url);
610
-    }
611
-
612
-
613
-    /**
614
-     * div_class - returns  a css class of "hidden" for current step, but nothing for others
615
-     *
616
-     * @return string
617
-     */
618
-    public function edit_link_class()
619
-    {
620
-        return $this->is_current_step() ? ' hidden' : '';
621
-    }
622
-
623
-
624
-    /**
625
-     * update_checkout with changes that have been made to the cart
626
-     *
627
-     * @return void
628
-     * @throws \EE_Error
629
-     */
630
-    public function update_checkout()
631
-    {
632
-        // grab the cart grand total and reset TXN total
633
-        $this->checkout->transaction->set_total($this->checkout->cart->get_cart_grand_total());
634
-        $this->checkout->stash_transaction_and_checkout();
635
-    }
636
-
637
-
638
-    /**
639
-     *    __sleep
640
-     * to conserve db space, let's remove the reg_form and the EE_Checkout object from EE_SPCO_Reg_Step objects upon
641
-     * serialization EE_Checkout will handle the reimplementation of itself upon waking, but we won't bother with the
642
-     * reg form, because if needed, it will be regenerated anyways
643
-     *
644
-     * @return array
645
-     */
646
-    public function __sleep()
647
-    {
648
-        // remove the reg form and the checkout
649
-        return array_diff(array_keys(get_object_vars($this)), array('reg_form', 'checkout'));
650
-    }
15
+	/**
16
+	 *    $_completed - TRUE if this step has fully completed it's duties
17
+	 *
18
+	 * @access protected
19
+	 * @type bool $_completed
20
+	 */
21
+	protected $_completed = false;
22
+
23
+	/**
24
+	 *    $_is_current_step - TRUE if this is the current step
25
+	 *
26
+	 * @access protected
27
+	 * @type bool $_is_current_step
28
+	 */
29
+	protected $_is_current_step = false;
30
+
31
+	/**
32
+	 *    $_order - when the reg step should be run relative to other steps
33
+	 *
34
+	 * @access protected
35
+	 * @type int $_template
36
+	 */
37
+	protected $_order = 0;
38
+
39
+	/**
40
+	 *    $_slug - URL param for this step
41
+	 *
42
+	 * @access protected
43
+	 * @type string $_slug
44
+	 */
45
+	protected $_slug;
46
+
47
+	/**
48
+	 *    $_name - Step Name - translatable string
49
+	 *
50
+	 * @access protected
51
+	 * @type string $_slug
52
+	 */
53
+	protected $_name;
54
+
55
+	/**
56
+	 *    $_submit_button_text - translatable string that appears on this step's submit button
57
+	 *
58
+	 * @access protected
59
+	 * @type string $_slug
60
+	 */
61
+	protected $_submit_button_text;
62
+
63
+	/**
64
+	 *    $_template - template name
65
+	 *
66
+	 * @access protected
67
+	 * @type string $_template
68
+	 */
69
+	protected $_template;
70
+
71
+	/**
72
+	 *    $_reg_form_name - the form input name and id attribute
73
+	 *
74
+	 * @access protected
75
+	 * @var string $_reg_form_name
76
+	 */
77
+	protected $_reg_form_name;
78
+
79
+	/**
80
+	 *    $_success_message - text to display upon successful form submission
81
+	 *
82
+	 * @access private
83
+	 * @var string $_success_message
84
+	 */
85
+	protected $_success_message;
86
+
87
+	/**
88
+	 *    $_instructions - a brief description of how to complete the reg step.
89
+	 *    Usually displayed in conjunction with the previous step's success message.
90
+	 *
91
+	 * @access private
92
+	 * @var string $_instructions
93
+	 */
94
+	protected $_instructions;
95
+
96
+	/**
97
+	 *    $_valid_data - the normalized and validated data for this step
98
+	 *
99
+	 * @access public
100
+	 * @var array $_valid_data
101
+	 */
102
+	protected $_valid_data = array();
103
+
104
+	/**
105
+	 *    $reg_form - the registration form for this step
106
+	 *
107
+	 * @access public
108
+	 * @var EE_Form_Section_Proper $reg_form
109
+	 */
110
+	public $reg_form;
111
+
112
+	/**
113
+	 *    $checkout - EE_Checkout object for handling the properties of the current checkout process
114
+	 *
115
+	 * @access public
116
+	 * @var EE_Checkout $checkout
117
+	 */
118
+	public $checkout;
119
+
120
+
121
+	/**
122
+	 * @return void
123
+	 */
124
+	abstract public function translate_js_strings();
125
+
126
+
127
+	/**
128
+	 * @return void
129
+	 */
130
+	abstract public function enqueue_styles_and_scripts();
131
+
132
+
133
+	/**
134
+	 * @return boolean
135
+	 */
136
+	abstract public function initialize_reg_step();
137
+
138
+
139
+	/**
140
+	 * @return string
141
+	 */
142
+	abstract public function generate_reg_form();
143
+
144
+
145
+	/**
146
+	 * @return boolean
147
+	 */
148
+	abstract public function process_reg_step();
149
+
150
+
151
+	/**
152
+	 * @return boolean
153
+	 */
154
+	abstract public function update_reg_step();
155
+
156
+
157
+	/**
158
+	 * @return boolean
159
+	 */
160
+	public function completed()
161
+	{
162
+		return $this->_completed;
163
+	}
164
+
165
+
166
+	/**
167
+	 * set_completed - toggles $_completed to TRUE
168
+	 */
169
+	public function set_completed()
170
+	{
171
+		// DEBUG LOG
172
+		// $this->checkout->log( __CLASS__, __FUNCTION__, __LINE__ );
173
+		$this->_completed = apply_filters('FHEE__EE_SPCO_Reg_Step__set_completed___completed', true, $this);
174
+	}
175
+
176
+
177
+	/**
178
+	 * set_completed - toggles $_completed to FALSE
179
+	 */
180
+	public function set_not_completed()
181
+	{
182
+		$this->_completed = false;
183
+	}
184
+
185
+
186
+	/**
187
+	 * @return string
188
+	 */
189
+	public function name()
190
+	{
191
+		return $this->_name;
192
+	}
193
+
194
+
195
+	/**
196
+	 * @return string
197
+	 */
198
+	public function slug()
199
+	{
200
+		return $this->_slug;
201
+	}
202
+
203
+
204
+	/**
205
+	 * submit_button_text
206
+	 * the text that appears on the reg step form submit button
207
+	 *
208
+	 * @return string
209
+	 */
210
+	public function submit_button_text()
211
+	{
212
+		return $this->_submit_button_text;
213
+	}
214
+
215
+
216
+	/**
217
+	 * set_submit_button_text
218
+	 * sets the text that appears on the reg step form submit button
219
+	 *
220
+	 * @param string $submit_button_text
221
+	 */
222
+	public function set_submit_button_text($submit_button_text = '')
223
+	{
224
+		if (! empty($submit_button_text)) {
225
+			$this->_submit_button_text = $submit_button_text;
226
+		} elseif ($this->checkout->next_step instanceof EE_SPCO_Reg_Step) {
227
+			if ($this->checkout->revisit) {
228
+				$this->_submit_button_text = sprintf(
229
+					__('Update %s', 'event_espresso'),
230
+					$this->checkout->current_step->name()
231
+				);
232
+			} else {
233
+				$this->_submit_button_text = sprintf(
234
+					__('Proceed to %s', 'event_espresso'),
235
+					$this->checkout->next_step->name()
236
+				);
237
+			}
238
+		}
239
+		// filters the submit button text
240
+		$this->_submit_button_text = apply_filters(
241
+			'FHEE__EE_SPCO_Reg_Step__set_submit_button_text___submit_button_text',
242
+			$this->_submit_button_text,
243
+			$this->checkout
244
+		);
245
+	}
246
+
247
+
248
+	/**
249
+	 * @param boolean $is_current_step
250
+	 */
251
+	public function set_is_current_step($is_current_step)
252
+	{
253
+		$this->_is_current_step = $is_current_step;
254
+	}
255
+
256
+
257
+	/**
258
+	 * @return boolean
259
+	 */
260
+	public function is_current_step()
261
+	{
262
+		return $this->_is_current_step;
263
+	}
264
+
265
+
266
+	/**
267
+	 * @return boolean
268
+	 */
269
+	public function is_final_step()
270
+	{
271
+		return $this instanceof EE_SPCO_Reg_Step_Finalize_Registration ? true : false;
272
+	}
273
+
274
+
275
+	/**
276
+	 * @param int $order
277
+	 */
278
+	public function set_order($order)
279
+	{
280
+		$this->_order = $order;
281
+	}
282
+
283
+
284
+	/**
285
+	 * @return int
286
+	 */
287
+	public function order()
288
+	{
289
+		return $this->_order;
290
+	}
291
+
292
+
293
+	/**
294
+	 * @return string
295
+	 */
296
+	public function template(): string
297
+	{
298
+		return $this->_template;
299
+	}
300
+
301
+
302
+	/**
303
+	 * @param string $template
304
+	 */
305
+	public function setTemplate(string $template): void
306
+	{
307
+		$this->_template = $template;
308
+	}
309
+
310
+
311
+	/**
312
+	 * @return string
313
+	 */
314
+	public function success_message()
315
+	{
316
+		return $this->_success_message;
317
+	}
318
+
319
+
320
+	/**
321
+	 * _set_success_message
322
+	 *
323
+	 * @param string $success_message
324
+	 */
325
+	protected function _set_success_message($success_message)
326
+	{
327
+		$this->_success_message = $success_message;
328
+	}
329
+
330
+
331
+	/**
332
+	 * _reset_success_message
333
+	 *
334
+	 * @return void
335
+	 */
336
+	protected function _reset_success_message()
337
+	{
338
+		$this->_success_message = '';
339
+	}
340
+
341
+
342
+	/**
343
+	 * @return string
344
+	 */
345
+	public function _instructions()
346
+	{
347
+		return $this->_instructions;
348
+	}
349
+
350
+
351
+	/**
352
+	 * @param string $instructions
353
+	 */
354
+	public function set_instructions($instructions)
355
+	{
356
+		$this->_instructions = apply_filters(
357
+			'FHEE__EE_SPCO_Reg_Step__set_instructions__instructions',
358
+			$instructions,
359
+			$this
360
+		);
361
+	}
362
+
363
+
364
+	/**
365
+	 * @param array $valid_data
366
+	 */
367
+	public function set_valid_data($valid_data)
368
+	{
369
+		$this->_valid_data = $valid_data;
370
+	}
371
+
372
+
373
+	/**
374
+	 * @return array
375
+	 */
376
+	public function valid_data()
377
+	{
378
+		if (empty($this->_valid_data)) {
379
+			$this->_valid_data = $this->reg_form->valid_data();
380
+		}
381
+		return $this->_valid_data;
382
+	}
383
+
384
+
385
+	/**
386
+	 * @return string
387
+	 */
388
+	public function reg_form_name()
389
+	{
390
+		if (empty($this->_reg_form_name)) {
391
+			$this->set_reg_form_name('ee-spco-' . $this->slug() . '-reg-step-form');
392
+		}
393
+		return $this->_reg_form_name;
394
+	}
395
+
396
+
397
+	/**
398
+	 * @param string $reg_form_name
399
+	 */
400
+	protected function set_reg_form_name($reg_form_name)
401
+	{
402
+		$this->_reg_form_name = $reg_form_name;
403
+	}
404
+
405
+
406
+	/**
407
+	 * reg_step_url
408
+	 *
409
+	 * @param string $action
410
+	 * @return string
411
+	 */
412
+	public function reg_step_url($action = '')
413
+	{
414
+		$query_args = array('step' => $this->slug());
415
+		if (! empty($action)) {
416
+			$query_args['action'] = $action;
417
+		}
418
+		// final step has no display
419
+		if ($this instanceof EE_SPCO_Reg_Step_Finalize_Registration && $action === 'display_spco_reg_step') {
420
+			$query_args['action'] = 'process_reg_step';
421
+		}
422
+		if ($this->checkout->revisit) {
423
+			$query_args['revisit'] = true;
424
+		}
425
+		if ($this->checkout->reg_url_link) {
426
+			$query_args['e_reg_url_link'] = $this->checkout->reg_url_link;
427
+		}
428
+		return add_query_arg($query_args, $this->checkout->reg_page_base_url);
429
+	}
430
+
431
+
432
+	/**
433
+	 * creates the default hidden inputs section
434
+	 *
435
+	 * @return EE_Form_Section_Proper
436
+	 * @throws \EE_Error
437
+	 */
438
+	public function reg_step_hidden_inputs()
439
+	{
440
+		// hidden inputs for admin registrations
441
+		if ($this->checkout->admin_request) {
442
+			return new EE_Form_Section_Proper(
443
+				array(
444
+					'layout_strategy' => new EE_Div_Per_Section_Layout(),
445
+					'html_id'         => 'ee-' . $this->slug() . '-hidden-inputs',
446
+					'subsections'     => array(
447
+						'next_step' => new EE_Fixed_Hidden_Input(
448
+							array(
449
+								'html_name' => 'next_step',
450
+								'html_id'   => 'spco-' . $this->slug() . '-next-step',
451
+								'default'   => $this->checkout->next_step instanceof EE_SPCO_Reg_Step
452
+									? $this->checkout->next_step->slug()
453
+									: '',
454
+							)
455
+						),
456
+					),
457
+				)
458
+			);
459
+		}
460
+		// hidden inputs for frontend registrations
461
+		return new EE_Form_Section_Proper(
462
+			array(
463
+				'layout_strategy' => new EE_Div_Per_Section_Layout(),
464
+				'html_id'         => 'ee-' . $this->slug() . '-hidden-inputs',
465
+				'subsections'     => array(
466
+					'action'         => new EE_Fixed_Hidden_Input(
467
+						array(
468
+							'html_name' => 'action',
469
+							'html_id'   => 'spco-' . $this->slug() . '-action',
470
+							'default'   => apply_filters(
471
+								'FHEE__EE_SPCO_Reg_Step__reg_step_hidden_inputs__default_form_action',
472
+								empty($this->checkout->reg_url_link)
473
+									? 'process_reg_step'
474
+									: 'update_reg_step',
475
+								$this
476
+							),
477
+						)
478
+					),
479
+					'next_step'      => new EE_Fixed_Hidden_Input(
480
+						array(
481
+							'html_name' => 'next_step',
482
+							'html_id'   => 'spco-' . $this->slug() . '-next-step',
483
+							'default'   => $this->checkout->next_step instanceof EE_SPCO_Reg_Step
484
+								? $this->checkout->next_step->slug()
485
+								: '',
486
+						)
487
+					),
488
+					'e_reg_url_link' => new EE_Fixed_Hidden_Input(
489
+						array(
490
+							'html_name' => 'e_reg_url_link',
491
+							'html_id'   => 'spco-reg_url_link',
492
+							'default'   => $this->checkout->reg_url_link,
493
+						)
494
+					),
495
+					'revisit'        => new EE_Fixed_Hidden_Input(
496
+						array(
497
+							'html_name' => 'revisit',
498
+							'html_id'   => 'spco-revisit',
499
+							'default'   => $this->checkout->revisit,
500
+						)
501
+					),
502
+				),
503
+			)
504
+		);
505
+	}
506
+
507
+
508
+	/**
509
+	 * generate_reg_form_for_actions
510
+	 *
511
+	 * @param array $actions
512
+	 * @return void
513
+	 */
514
+	public function generate_reg_form_for_actions($actions = array())
515
+	{
516
+		$actions = array_merge(
517
+			array(
518
+				'generate_reg_form',
519
+				'display_spco_reg_step',
520
+				'process_reg_step',
521
+				'update_reg_step',
522
+			),
523
+			$actions
524
+		);
525
+		$this->checkout->generate_reg_form = in_array($this->checkout->action, $actions, true) ? true : false;
526
+	}
527
+
528
+
529
+	/**
530
+	 * @return string
531
+	 * @throws \EE_Error
532
+	 */
533
+	public function display_reg_form()
534
+	{
535
+		$html = '';
536
+		if ($this->reg_form instanceof EE_Form_Section_Proper) {
537
+			do_action('AHEE__EE_SPCO_Reg_Step__display_reg_form__reg_form', $this->reg_form, $this);
538
+			$html .= ! $this->checkout->admin_request ? $this->reg_form->form_open($this->reg_step_url()) : '';
539
+			if (EE_Registry::instance()->REQ->ajax) {
540
+				$this->reg_form->localize_validation_rules();
541
+				$this->checkout->json_response->add_validation_rules(EE_Form_Section_Proper::js_localization());
542
+			}
543
+			$html .= $this->reg_form->get_html();
544
+			$html .= ! $this->checkout->admin_request ? $this->reg_step_submit_button() : '';
545
+			$html .= ! $this->checkout->admin_request ? $this->reg_form->form_close() : '';
546
+		}
547
+		return $html;
548
+	}
549
+
550
+
551
+	/**
552
+	 * div_class - returns nothing for current step, but a css class of "hidden" for others
553
+	 *
554
+	 * @return string
555
+	 * @throws \EE_Error
556
+	 */
557
+	public function reg_step_submit_button()
558
+	{
559
+		if (! $this->checkout->next_step instanceof EE_SPCO_Reg_Step) {
560
+			return '';
561
+		}
562
+		ob_start();
563
+		do_action(
564
+			'AHEE__before_spco_whats_next_buttons',
565
+			$this->slug(),
566
+			$this->checkout->next_step->slug(),
567
+			$this->checkout
568
+		);
569
+		$html = ob_get_clean();
570
+		// generate submit button
571
+		$sbmt_btn = new EE_Submit_Input(
572
+			array(
573
+				'html_name'             => 'spco-go-to-step-' . $this->checkout->next_step->slug(),
574
+				'html_id'               => 'spco-go-to-step-' . $this->checkout->next_step->slug(),
575
+				'html_class'            => 'spco-next-step-btn',
576
+				'other_html_attributes' => ' rel="' . $this->slug() . '"',
577
+				'default'               => $this->submit_button_text(),
578
+			)
579
+		);
580
+		$sbmt_btn->set_button_css_attributes(true, 'large');
581
+		$sbmt_btn_html = $sbmt_btn->get_html_for_input();
582
+		$html .= EEH_HTML::div(
583
+			apply_filters('FHEE__EE_SPCO_Reg_Step__reg_step_submit_button__sbmt_btn_html', $sbmt_btn_html, $this),
584
+			'spco-' . $this->slug() . '-whats-next-buttons-dv',
585
+			'spco-whats-next-buttons'
586
+		);
587
+		return $html;
588
+	}
589
+
590
+
591
+	/**
592
+	 * div_class - returns nothing for current step, but a css class of "hidden" for others
593
+	 *
594
+	 * @return string
595
+	 */
596
+	public function div_class()
597
+	{
598
+		return $this->is_current_step() ? '' : ' hidden';
599
+	}
600
+
601
+
602
+	/**
603
+	 * div_class - returns  a css class of "hidden" for current step, but nothing for others
604
+	 *
605
+	 * @return string
606
+	 */
607
+	public function edit_lnk_url()
608
+	{
609
+		return add_query_arg(array('step' => $this->slug()), $this->checkout->reg_page_base_url);
610
+	}
611
+
612
+
613
+	/**
614
+	 * div_class - returns  a css class of "hidden" for current step, but nothing for others
615
+	 *
616
+	 * @return string
617
+	 */
618
+	public function edit_link_class()
619
+	{
620
+		return $this->is_current_step() ? ' hidden' : '';
621
+	}
622
+
623
+
624
+	/**
625
+	 * update_checkout with changes that have been made to the cart
626
+	 *
627
+	 * @return void
628
+	 * @throws \EE_Error
629
+	 */
630
+	public function update_checkout()
631
+	{
632
+		// grab the cart grand total and reset TXN total
633
+		$this->checkout->transaction->set_total($this->checkout->cart->get_cart_grand_total());
634
+		$this->checkout->stash_transaction_and_checkout();
635
+	}
636
+
637
+
638
+	/**
639
+	 *    __sleep
640
+	 * to conserve db space, let's remove the reg_form and the EE_Checkout object from EE_SPCO_Reg_Step objects upon
641
+	 * serialization EE_Checkout will handle the reimplementation of itself upon waking, but we won't bother with the
642
+	 * reg form, because if needed, it will be regenerated anyways
643
+	 *
644
+	 * @return array
645
+	 */
646
+	public function __sleep()
647
+	{
648
+		// remove the reg form and the checkout
649
+		return array_diff(array_keys(get_object_vars($this)), array('reg_form', 'checkout'));
650
+	}
651 651
 }
Please login to merge, or discard this patch.
attendee_information/EE_SPCO_Reg_Step_Attendee_Information.class.php 2 patches
Indentation   +931 added lines, -931 removed lines patch added patch discarded remove patch
@@ -21,938 +21,938 @@
 block discarded – undo
21 21
 class EE_SPCO_Reg_Step_Attendee_Information extends EE_SPCO_Reg_Step
22 22
 {
23 23
 
24
-    /**
25
-     * @var bool
26
-     */
27
-    private $_print_copy_info = false;
28
-
29
-    /**
30
-     * @var array
31
-     */
32
-    private $_attendee_data = array();
33
-
34
-    /**
35
-     * @var array
36
-     */
37
-    private $_required_questions = array();
38
-
39
-    /**
40
-     * @var array
41
-     */
42
-    private $_registration_answers = array();
43
-
44
-    /**
45
-     * @var int
46
-     */
47
-    protected $reg_form_count = 0;
48
-
49
-    /**
50
-     *    class constructor
51
-     *
52
-     * @access    public
53
-     * @param    EE_Checkout $checkout
54
-     */
55
-    public function __construct(EE_Checkout $checkout)
56
-    {
57
-        $this->_slug = 'attendee_information';
58
-        $this->_name = esc_html__('Attendee Information', 'event_espresso');
59
-        $this->checkout = $checkout;
60
-        $this->_reset_success_message();
61
-        $this->set_instructions(
62
-            esc_html__('Please answer the following registration questions before proceeding.', 'event_espresso')
63
-        );
64
-    }
65
-
66
-
67
-    public function translate_js_strings()
68
-    {
69
-        EE_Registry::$i18n_js_strings['required_field'] = esc_html__(
70
-            ' is a required question.',
71
-            'event_espresso'
72
-        );
73
-        EE_Registry::$i18n_js_strings['required_multi_field'] = esc_html__(
74
-            ' is a required question. Please enter a value for at least one of the options.',
75
-            'event_espresso'
76
-        );
77
-        EE_Registry::$i18n_js_strings['answer_required_questions'] = esc_html__(
78
-            'Please answer all required questions correctly before proceeding.',
79
-            'event_espresso'
80
-        );
81
-        EE_Registry::$i18n_js_strings['attendee_info_copied'] = sprintf(
82
-            esc_html_x(
83
-                'The attendee information was successfully copied.%sPlease ensure the rest of the registration form is completed before proceeding.',
84
-                'The attendee information was successfully copied.(line break)Please ensure the rest of the registration form is completed before proceeding.',
85
-                'event_espresso'
86
-            ),
87
-            '<br/>'
88
-        );
89
-        EE_Registry::$i18n_js_strings['attendee_info_copy_error'] = esc_html__(
90
-            'An unknown error occurred on the server while attempting to copy the attendee information. Please refresh the page and try again.',
91
-            'event_espresso'
92
-        );
93
-        EE_Registry::$i18n_js_strings['enter_valid_email'] = esc_html__(
94
-            'You must enter a valid email address.',
95
-            'event_espresso'
96
-        );
97
-        EE_Registry::$i18n_js_strings['valid_email_and_questions'] = esc_html__(
98
-            'You must enter a valid email address and answer all other required questions before you can proceed.',
99
-            'event_espresso'
100
-        );
101
-    }
102
-
103
-
104
-    public function enqueue_styles_and_scripts()
105
-    {
106
-    }
107
-
108
-
109
-    /**
110
-     * @return boolean
111
-     */
112
-    public function initialize_reg_step(): bool
113
-    {
114
-        return true;
115
-    }
116
-
117
-
118
-    /**
119
-     * @return LegacyRegistrationForm
120
-     * @throws DomainException
121
-     * @throws InvalidArgumentException
122
-     * @throws EntityNotFoundException
123
-     * @throws InvalidDataTypeException
124
-     * @throws InvalidInterfaceException
125
-     */
126
-    public function generate_reg_form(): LegacyRegistrationForm
127
-    {
128
-        // TODO detect if event has a reg form UUID and swap this out for new reg form builder generated form
129
-        return LoaderFactory::getLoader()->getShared(LegacyRegistrationForm::class, [$this]);
130
-    }
131
-
132
-
133
-    /**
134
-     * looking for hooks?
135
-     * this method has been replaced by:
136
-     * EventEspresso\core\domain\services\registration\form\LegacyRegistrationForm::getRegForm()
137
-     *
138
-     * @deprecated   $VID:$
139
-     */
140
-    private function _registrations_reg_form()
141
-    {
142
-    }
143
-
144
-
145
-    /**
146
-     * looking for hooks?
147
-     * this method has been replaced by:
148
-     * EventEspresso\core\domain\services\registration\form\LegacyRegistrationForm::additionalAttendeeRegInfoInput()
149
-     *
150
-     * @deprecated   $VID:$
151
-     */
152
-    private function _additional_attendee_reg_info_input() {
153
-    }
154
-
155
-
156
-    /**
157
-     * looking for hooks?
158
-     * this method has been replaced by:
159
-     * EventEspresso\core\domain\services\registration\form\LegacyRegistrationForm::questionGroupRegForm()
160
-     *
161
-     * @deprecated   $VID:$
162
-     */
163
-    private function _question_group_reg_form()
164
-    {
165
-    }
166
-
167
-
168
-    /**
169
-     * looking for hooks?
170
-     * this method has been replaced by:
171
-     * EventEspresso\core\domain\services\registration\form\LegacyRegistrationForm::questionGroupHeader()
172
-     *
173
-     * @deprecated   $VID:$
174
-     */
175
-    private function _question_group_header()
176
-    {
177
-    }
178
-
179
-
180
-    /**
181
-     * looking for hooks?
182
-     * this method has been replaced by:
183
-     * EventEspresso\core\domain\services\registration\form\LegacyCopyAttendeeInfoForm
184
-     *
185
-     * @deprecated   $VID:$
186
-     */
187
-    private function _copy_attendee_info_form()
188
-    {
189
-    }
190
-
191
-
192
-    /**
193
-     * looking for hooks?
194
-     * this method has been replaced by:
195
-     * EventEspresso\core\domain\services\registration\form\LegacyAutoCopyAttendeeInfoForm
196
-     *
197
-     * @deprecated   $VID:$
198
-     */
199
-    private function _auto_copy_attendee_info()
200
-    {
201
-    }
202
-
203
-
204
-    /**
205
-     * looking for hooks?
206
-     * this method has been replaced by:
207
-     * EventEspresso\core\domain\services\registration\form\LegacyCopyAttendeeInfoForm
208
-     *
209
-     * @deprecated   $VID:$
210
-     */
211
-    private function _copy_attendee_info_inputs()
212
-    {
213
-    }
214
-
215
-
216
-    /**
217
-     * looking for hooks?
218
-     * this method has been replaced by:
219
-     * EventEspresso\core\domain\services\registration\form\LegacyRegistrationForm::additionalPrimaryRegistrantInputs()
220
-     *
221
-     * @deprecated   $VID:$
222
-     */
223
-    private function _additional_primary_registrant_inputs()
224
-    {
225
-    }
226
-
227
-
228
-    /**
229
-     * looking for hooks?
230
-     * this method has been replaced by:
231
-     * EventEspresso\core\domain\services\registration\form\LegacyRegistrationForm::regFormQuestion()
232
-     *
233
-     * @param EE_Registration $registration
234
-     * @param EE_Question     $question
235
-     * @return EE_Form_Input_Base
236
-     * @throws EE_Error
237
-     * @throws InvalidArgumentException
238
-     * @throws InvalidDataTypeException
239
-     * @throws InvalidInterfaceException
240
-     * @throws OutOfRangeException
241
-     * @throws ReflectionException
242
-     * @deprecated   $VID:$
243
-     */
244
-    public function reg_form_question(EE_Registration $registration, EE_Question $question): EE_Form_Input_Base
245
-    {
246
-        $legacy_reg_form = $this->legacy_reg_forms[ $registration->reg_url_link() ] ?? null;
247
-        if ($legacy_reg_form instanceof LegacyRegistrationForm) {
248
-            return $legacy_reg_form->regFormQuestion($registration, $question);
249
-        }
250
-        throw new OutOfRangeException();
251
-    }
252
-
253
-
254
-    /**
255
-     * looking for hooks?
256
-     * this method has been replaced by:
257
-     * EventEspresso\core\domain\services\registration\form\LegacyRegistrationForm::generateQuestionInput()
258
-     *
259
-     * @deprecated   $VID:$
260
-     */
261
-    private function _generate_question_input()
262
-    {
263
-    }
264
-
265
-
266
-    /**
267
-     * looking for hooks?
268
-     * this method has been replaced by:
269
-     * EventEspresso\core\domain\services\registration\form\CountryOptions::forLegacyFormInput()
270
-     *
271
-     * @param array|null           $countries_list
272
-     * @param EE_Question|null     $question
273
-     * @param EE_Registration|null $registration
274
-     * @param EE_Answer|null       $answer
275
-     * @return array 2d keys are country IDs, values are their names
276
-     * @throws EE_Error
277
-     * @throws ReflectionException
278
-     * @deprecated   $VID:$
279
-     */
280
-    public function use_cached_countries_for_form_input(
281
-        array $countries_list = null,
282
-        EE_Question $question = null,
283
-        EE_Registration $registration = null,
284
-        EE_Answer $answer = null
285
-    ): array {
286
-        /** @var CountryOptions $country_options */
287
-        $country_options = LoaderFactory::getLoader()->getShared(CountryOptions::class, [$this->checkout->action]);
288
-        return $country_options->forLegacyFormInput($countries_list, $question, $registration, $answer);
289
-    }
290
-
291
-
292
-    /**
293
-     * looking for hooks?
294
-     * this method has been replaced by:
295
-     * EventEspresso\core\domain\services\registration\form\StateOptions::forLegacyFormInput()
296
-     *
297
-     * @param array|null           $states_list
298
-     * @param EE_Question|null     $question
299
-     * @param EE_Registration|null $registration
300
-     * @param EE_Answer|null       $answer
301
-     * @return array 2d keys are state IDs, values are their names
302
-     * @throws EE_Error
303
-     * @throws ReflectionException
304
-     * @deprecated   $VID:$
305
-     */
306
-    public function use_cached_states_for_form_input(
307
-        array $states_list = null,
308
-        EE_Question $question = null,
309
-        EE_Registration $registration = null,
310
-        EE_Answer $answer = null
311
-    ): array {
312
-        /** @var StateOptions $state_options */
313
-        $state_options = LoaderFactory::getLoader()->getShared(StateOptions::class, [$this->checkout->action]);
314
-        return $state_options->forLegacyFormInput($states_list, $question, $registration, $answer);
315
-    }
316
-
317
-
318
-    /********************************************************************************************************/
319
-    /****************************************  PROCESS REG STEP  ****************************************/
320
-    /********************************************************************************************************/
321
-
322
-
323
-    /**
324
-     * @return bool
325
-     * @throws EE_Error
326
-     * @throws InvalidArgumentException
327
-     * @throws ReflectionException
328
-     * @throws RuntimeException
329
-     * @throws InvalidDataTypeException
330
-     * @throws InvalidInterfaceException
331
-     */
332
-    public function process_reg_step()
333
-    {
334
-        do_action('AHEE_log', __FILE__, __FUNCTION__, '');
335
-        // grab validated data from form
336
-        $valid_data = $this->checkout->current_step->valid_data();
337
-        // EEH_Debug_Tools::printr( $_REQUEST, '$_REQUEST', __FILE__, __LINE__ );
338
-        // EEH_Debug_Tools::printr( $valid_data, '$valid_data', __FILE__, __LINE__ );
339
-        // if we don't have any $valid_data then something went TERRIBLY WRONG !!!
340
-        if (empty($valid_data)) {
341
-            EE_Error::add_error(
342
-                esc_html__('No valid question responses were received.', 'event_espresso'),
343
-                __FILE__,
344
-                __FUNCTION__,
345
-                __LINE__
346
-            );
347
-            return false;
348
-        }
349
-        if (! $this->checkout->transaction instanceof EE_Transaction || ! $this->checkout->continue_reg) {
350
-            EE_Error::add_error(
351
-                esc_html__(
352
-                    'A valid transaction could not be initiated for processing your registrations.',
353
-                    'event_espresso'
354
-                ),
355
-                __FILE__,
356
-                __FUNCTION__,
357
-                __LINE__
358
-            );
359
-            return false;
360
-        }
361
-        // get cached registrations
362
-        $registrations = $this->checkout->transaction->registrations($this->checkout->reg_cache_where_params);
363
-        // verify we got the goods
364
-        if (empty($registrations)) {
365
-            // combine the old translated string with a new one, in order to not break translations
366
-            $error_message = esc_html__(
367
-                'Your form data could not be applied to any valid registrations.',
368
-                'event_espresso'
369
-            )
370
-            . sprintf(
371
-                esc_html_x(
372
-                    '%3$sThis can sometimes happen if too much time has been taken to complete the registration process.%3$sPlease return to the %1$sEvent List%2$s and reselect your tickets. If the problem continues, please contact the site administrator.',
373
-                    '(line break)This can sometimes happen if too much time has been taken to complete the registration process.(line break)Please return to the (link)Event List(end link) and reselect your tickets. If the problem continues, please contact the site administrator.',
374
-                    'event_espresso'
375
-                ),
376
-                '<a href="' . get_post_type_archive_link('espresso_events') . '" >',
377
-                '</a>',
378
-                '<br />'
379
-            );
380
-            EE_Error::add_error(
381
-                $error_message,
382
-                __FILE__,
383
-                __FUNCTION__,
384
-                __LINE__
385
-            );
386
-            return false;
387
-        }
388
-        // extract attendee info from form data and save to model objects
389
-        $registrations_processed = $this->_process_registrations($registrations, $valid_data);
390
-        // if first pass thru SPCO,
391
-        // then let's check processed registrations against the total number of tickets in the cart
392
-        if ($registrations_processed === false) {
393
-            // but return immediately if the previous step exited early due to errors
394
-            return false;
395
-        }
396
-        if (! $this->checkout->revisit && $registrations_processed !== $this->checkout->total_ticket_count) {
397
-            // generate a correctly translated string for all possible singular/plural combinations
398
-            if ($this->checkout->total_ticket_count === 1 && $registrations_processed !== 1) {
399
-                $error_msg = sprintf(
400
-                    esc_html_x(
401
-                        'There was %1$d ticket in the Event Queue, but %2$ds registrations were processed',
402
-                        'There was 1 ticket in the Event Queue, but 2 registrations were processed',
403
-                        'event_espresso'
404
-                    ),
405
-                    $this->checkout->total_ticket_count,
406
-                    $registrations_processed
407
-                );
408
-            } elseif ($this->checkout->total_ticket_count !== 1 && $registrations_processed === 1) {
409
-                $error_msg = sprintf(
410
-                    esc_html_x(
411
-                        'There was a total of %1$d tickets in the Event Queue, but only %2$ds registration was processed',
412
-                        'There was a total of 2 tickets in the Event Queue, but only 1 registration was processed',
413
-                        'event_espresso'
414
-                    ),
415
-                    $this->checkout->total_ticket_count,
416
-                    $registrations_processed
417
-                );
418
-            } else {
419
-                $error_msg = sprintf(
420
-                    esc_html__(
421
-                        'There was a total of 2 tickets in the Event Queue, but 2 registrations were processed',
422
-                        'event_espresso'
423
-                    ),
424
-                    $this->checkout->total_ticket_count,
425
-                    $registrations_processed
426
-                );
427
-            }
428
-            EE_Error::add_error($error_msg, __FILE__, __FUNCTION__, __LINE__);
429
-            return false;
430
-        }
431
-        // mark this reg step as completed
432
-        $this->set_completed();
433
-        $this->_set_success_message(
434
-            esc_html__('The Attendee Information Step has been successfully completed.', 'event_espresso')
435
-        );
436
-        // do action in case a plugin wants to do something with the data submitted in step 1.
437
-        // passes EE_Single_Page_Checkout, and it's posted data
438
-        do_action('AHEE__EE_Single_Page_Checkout__process_attendee_information__end', $this, $valid_data);
439
-        return true;
440
-    }
441
-
442
-
443
-    /**
444
-     *    _process_registrations
445
-     *
446
-     * @param EE_Registration[] $registrations
447
-     * @param array[][]         $valid_data
448
-     * @return bool|int
449
-     * @throws EntityNotFoundException
450
-     * @throws EE_Error
451
-     * @throws InvalidArgumentException
452
-     * @throws ReflectionException
453
-     * @throws RuntimeException
454
-     * @throws InvalidDataTypeException
455
-     * @throws InvalidInterfaceException
456
-     */
457
-    private function _process_registrations($registrations = array(), $valid_data = array())
458
-    {
459
-        // load resources and set some defaults
460
-        EE_Registry::instance()->load_model('Attendee');
461
-        // holder for primary registrant attendee object
462
-        $this->checkout->primary_attendee_obj = null;
463
-        // array for tracking reg form data for the primary registrant
464
-        $primary_registrant = array(
465
-            'line_item_id' => null,
466
-        );
467
-        $copy_primary = false;
468
-        // reg form sections that do not contain inputs
469
-        $non_input_form_sections = array(
470
-            'primary_registrant',
471
-            'additional_attendee_reg_info',
472
-            'spco_copy_attendee_chk',
473
-        );
474
-        // attendee counter
475
-        $att_nmbr = 0;
476
-        // grab the saved registrations from the transaction
477
-        foreach ($registrations as $registration) {
478
-            // verify EE_Registration object
479
-            if (! $registration instanceof EE_Registration) {
480
-                EE_Error::add_error(
481
-                    esc_html__(
482
-                        'An invalid Registration object was discovered when attempting to process your registration information.',
483
-                        'event_espresso'
484
-                    ),
485
-                    __FILE__,
486
-                    __FUNCTION__,
487
-                    __LINE__
488
-                );
489
-                return false;
490
-            }
491
-            /** @var string $reg_url_link */
492
-            $reg_url_link = $registration->reg_url_link();
493
-            // reg_url_link exists ?
494
-            if (! empty($reg_url_link)) {
495
-                // should this registration be processed during this visit ?
496
-                if ($this->checkout->visit_allows_processing_of_this_registration($registration)) {
497
-                    // if NOT revisiting, then let's save the registration now,
498
-                    // so that we have a REG_ID to use when generating other objects
499
-                    if (! $this->checkout->revisit) {
500
-                        $registration->save();
501
-                    }
502
-                    /**
503
-                     * This allows plugins to trigger a fail on processing of a
504
-                     * registration for any conditions they may have for it to pass.
505
-                     *
506
-                     * @var bool   if true is returned by the plugin then the
507
-                     *            registration processing is halted.
508
-                     */
509
-                    if (
510
-                        apply_filters(
511
-                            'FHEE__EE_SPCO_Reg_Step_Attendee_Information___process_registrations__pre_registration_process',
512
-                            false,
513
-                            $att_nmbr,
514
-                            $registration,
515
-                            $registrations,
516
-                            $valid_data,
517
-                            $this
518
-                        )
519
-                    ) {
520
-                        return false;
521
-                    }
522
-
523
-                    // Houston, we have a registration!
524
-                    $att_nmbr++;
525
-                    $this->_attendee_data[ $reg_url_link ] = array();
526
-                    // grab any existing related answer objects
527
-                    $this->_registration_answers = $registration->answers();
528
-                    // unset( $valid_data[ $reg_url_link ]['additional_attendee_reg_info'] );
529
-                    if (isset($valid_data[ $reg_url_link ])) {
530
-                        // do we need to copy basic info from primary attendee ?
531
-                        $copy_primary = isset($valid_data[ $reg_url_link ]['additional_attendee_reg_info'])
532
-                                        && absint($valid_data[ $reg_url_link ]['additional_attendee_reg_info']) === 0;
533
-                        // filter form input data for this registration
534
-                        $valid_data[ $reg_url_link ] = (array) apply_filters(
535
-                            'FHEE__EE_Single_Page_Checkout__process_attendee_information__valid_data_line_item',
536
-                            $valid_data[ $reg_url_link ]
537
-                        );
538
-                        if (isset($valid_data['primary_attendee'])) {
539
-                            $primary_registrant['line_item_id'] = ! empty($valid_data['primary_attendee'])
540
-                                ? $valid_data['primary_attendee']
541
-                                : false;
542
-                            unset($valid_data['primary_attendee']);
543
-                        }
544
-                        // now loop through our array of valid post data && process attendee reg forms
545
-                        foreach ($valid_data[ $reg_url_link ] as $form_section => $form_inputs) {
546
-                            if (! in_array($form_section, $non_input_form_sections, true)) {
547
-                                foreach ($form_inputs as $form_input => $input_value) {
548
-                                    // \EEH_Debug_Tools::printr( $input_value, $form_input, __FILE__, __LINE__ );
549
-                                    // check for critical inputs
550
-                                    if (
551
-                                        ! $this->_verify_critical_attendee_details_are_set_and_validate_email(
552
-                                            $form_input,
553
-                                            $input_value
554
-                                        )
555
-                                    ) {
556
-                                        return false;
557
-                                    }
558
-                                    // store a bit of data about the primary attendee
559
-                                    if (
560
-                                        $att_nmbr === 1
561
-                                        && ! empty($input_value)
562
-                                        && $reg_url_link === $primary_registrant['line_item_id']
563
-                                    ) {
564
-                                        $primary_registrant[ $form_input ] = $input_value;
565
-                                    } elseif (
566
-                                        $copy_primary
567
-                                              && $input_value === null
568
-                                              && isset($primary_registrant[ $form_input ])
569
-                                    ) {
570
-                                        $input_value = $primary_registrant[ $form_input ];
571
-                                    }
572
-                                    // now attempt to save the input data
573
-                                    if (
574
-                                        ! $this->_save_registration_form_input(
575
-                                            $registration,
576
-                                            $form_input,
577
-                                            $input_value
578
-                                        )
579
-                                    ) {
580
-                                        EE_Error::add_error(
581
-                                            sprintf(
582
-                                                esc_html_x(
583
-                                                    'Unable to save registration form data for the form input: "%1$s" with the submitted value: "%2$s"',
584
-                                                    'Unable to save registration form data for the form input: "form input name" with the submitted value: "form input value"',
585
-                                                    'event_espresso'
586
-                                                ),
587
-                                                $form_input,
588
-                                                $input_value
589
-                                            ),
590
-                                            __FILE__,
591
-                                            __FUNCTION__,
592
-                                            __LINE__
593
-                                        );
594
-                                        return false;
595
-                                    }
596
-                                }
597
-                            }
598
-                        }  // end of foreach ( $valid_data[ $reg_url_link ] as $form_section => $form_inputs )
599
-                    }
600
-                    // EEH_Debug_Tools::printr( $this->_attendee_data, '$this->_attendee_data', __FILE__, __LINE__ );
601
-                    // this registration does not require additional attendee information ?
602
-                    if (
603
-                        $copy_primary
604
-                        && $att_nmbr > 1
605
-                        && $this->checkout->primary_attendee_obj instanceof EE_Attendee
606
-                    ) {
607
-                        // just copy the primary registrant
608
-                        $attendee = $this->checkout->primary_attendee_obj;
609
-                    } else {
610
-                        // ensure critical details are set for additional attendees
611
-                        $this->_attendee_data[ $reg_url_link ] = $att_nmbr > 1
612
-                            ? $this->_copy_critical_attendee_details_from_primary_registrant(
613
-                                $this->_attendee_data[ $reg_url_link ]
614
-                            )
615
-                            : $this->_attendee_data[ $reg_url_link ];
616
-                        // execute create attendee command (which may return an existing attendee)
617
-                        $attendee = EE_Registry::instance()->BUS->execute(
618
-                            new CreateAttendeeCommand(
619
-                                $this->_attendee_data[ $reg_url_link ],
620
-                                $registration
621
-                            )
622
-                        );
623
-                        // who's #1 ?
624
-                        if ($att_nmbr === 1) {
625
-                            $this->checkout->primary_attendee_obj = $attendee;
626
-                        }
627
-                    }
628
-                    // EEH_Debug_Tools::printr( $attendee, '$attendee', __FILE__, __LINE__ );
629
-                    // add relation to registration, set attendee ID, and cache attendee
630
-                    $this->_associate_attendee_with_registration($registration, $attendee);
631
-                    // \EEH_Debug_Tools::printr( $registration, '$registration', __FILE__, __LINE__ );
632
-                    if (! $registration->attendee() instanceof EE_Attendee) {
633
-                        EE_Error::add_error(
634
-                            sprintf(
635
-                                esc_html_x(
636
-                                    'Registration %s has an invalid or missing Attendee object.',
637
-                                    'Registration 123-456-789 has an invalid or missing Attendee object.',
638
-                                    'event_espresso'
639
-                                ),
640
-                                $reg_url_link
641
-                            ),
642
-                            __FILE__,
643
-                            __FUNCTION__,
644
-                            __LINE__
645
-                        );
646
-                        return false;
647
-                    }
648
-                    /** @type EE_Registration_Processor $registration_processor */
649
-                    $registration_processor = EE_Registry::instance()->load_class('Registration_Processor');
650
-                    // at this point, we should have enough details about the registrant to consider the registration
651
-                    // NOT incomplete
652
-                    $registration_processor->toggle_incomplete_registration_status_to_default(
653
-                        $registration,
654
-                        false,
655
-                        new Context(
656
-                            'spco_reg_step_attendee_information_process_registrations',
657
-                            esc_html__(
658
-                                'Finished populating registration with details from the registration form after submitting the Attendee Information Reg Step.',
659
-                                'event_espresso'
660
-                            )
661
-                        )
662
-                    );
663
-                    // we can also consider the TXN to not have been failed, so temporarily upgrade it's status to
664
-                    // abandoned
665
-                    $this->checkout->transaction->toggle_failed_transaction_status();
666
-                    // if we've gotten this far, then let's save what we have
667
-                    $registration->save();
668
-                    // add relation between TXN and registration
669
-                    $this->_associate_registration_with_transaction($registration);
670
-                }
671
-            } else {
672
-                EE_Error::add_error(
673
-                    esc_html__(
674
-                        'An invalid or missing line item ID was encountered while attempting to process the registration form.',
675
-                        'event_espresso'
676
-                    ),
677
-                    __FILE__,
678
-                    __FUNCTION__,
679
-                    __LINE__
680
-                );
681
-                // remove malformed data
682
-                unset($valid_data[ $reg_url_link ]);
683
-                return false;
684
-            }
685
-        } // end of foreach ( $this->checkout->transaction->registrations()  as $registration )
686
-        return $att_nmbr;
687
-    }
688
-
689
-
690
-    /**
691
-     *    _save_registration_form_input
692
-     *
693
-     * @param EE_Registration $registration
694
-     * @param string          $form_input
695
-     * @param string          $input_value
696
-     * @return bool
697
-     * @throws EE_Error
698
-     * @throws InvalidArgumentException
699
-     * @throws InvalidDataTypeException
700
-     * @throws InvalidInterfaceException
701
-     * @throws ReflectionException
702
-     */
703
-    private function _save_registration_form_input(
704
-        EE_Registration $registration,
705
-        $form_input = '',
706
-        $input_value = ''
707
-    ) {
708
-        // If email_confirm is sent it's not saved
709
-        if ((string) $form_input === 'email_confirm') {
710
-            return true;
711
-        }
712
-
713
-        // \EEH_Debug_Tools::printr( __FUNCTION__, __CLASS__, __FILE__, __LINE__, 2 );
714
-        // \EEH_Debug_Tools::printr( $form_input, '$form_input', __FILE__, __LINE__ );
715
-        // \EEH_Debug_Tools::printr( $input_value, '$input_value', __FILE__, __LINE__ );
716
-        // allow for plugins to hook in and do their own processing of the form input.
717
-        // For plugins to bypass normal processing here, they just need to return a boolean value.
718
-        if (
719
-            apply_filters(
720
-                'FHEE__EE_SPCO_Reg_Step_Attendee_Information___save_registration_form_input',
721
-                false,
722
-                $registration,
723
-                $form_input,
724
-                $input_value,
725
-                $this
726
-            )
727
-        ) {
728
-            return true;
729
-        }
730
-        /*
24
+	/**
25
+	 * @var bool
26
+	 */
27
+	private $_print_copy_info = false;
28
+
29
+	/**
30
+	 * @var array
31
+	 */
32
+	private $_attendee_data = array();
33
+
34
+	/**
35
+	 * @var array
36
+	 */
37
+	private $_required_questions = array();
38
+
39
+	/**
40
+	 * @var array
41
+	 */
42
+	private $_registration_answers = array();
43
+
44
+	/**
45
+	 * @var int
46
+	 */
47
+	protected $reg_form_count = 0;
48
+
49
+	/**
50
+	 *    class constructor
51
+	 *
52
+	 * @access    public
53
+	 * @param    EE_Checkout $checkout
54
+	 */
55
+	public function __construct(EE_Checkout $checkout)
56
+	{
57
+		$this->_slug = 'attendee_information';
58
+		$this->_name = esc_html__('Attendee Information', 'event_espresso');
59
+		$this->checkout = $checkout;
60
+		$this->_reset_success_message();
61
+		$this->set_instructions(
62
+			esc_html__('Please answer the following registration questions before proceeding.', 'event_espresso')
63
+		);
64
+	}
65
+
66
+
67
+	public function translate_js_strings()
68
+	{
69
+		EE_Registry::$i18n_js_strings['required_field'] = esc_html__(
70
+			' is a required question.',
71
+			'event_espresso'
72
+		);
73
+		EE_Registry::$i18n_js_strings['required_multi_field'] = esc_html__(
74
+			' is a required question. Please enter a value for at least one of the options.',
75
+			'event_espresso'
76
+		);
77
+		EE_Registry::$i18n_js_strings['answer_required_questions'] = esc_html__(
78
+			'Please answer all required questions correctly before proceeding.',
79
+			'event_espresso'
80
+		);
81
+		EE_Registry::$i18n_js_strings['attendee_info_copied'] = sprintf(
82
+			esc_html_x(
83
+				'The attendee information was successfully copied.%sPlease ensure the rest of the registration form is completed before proceeding.',
84
+				'The attendee information was successfully copied.(line break)Please ensure the rest of the registration form is completed before proceeding.',
85
+				'event_espresso'
86
+			),
87
+			'<br/>'
88
+		);
89
+		EE_Registry::$i18n_js_strings['attendee_info_copy_error'] = esc_html__(
90
+			'An unknown error occurred on the server while attempting to copy the attendee information. Please refresh the page and try again.',
91
+			'event_espresso'
92
+		);
93
+		EE_Registry::$i18n_js_strings['enter_valid_email'] = esc_html__(
94
+			'You must enter a valid email address.',
95
+			'event_espresso'
96
+		);
97
+		EE_Registry::$i18n_js_strings['valid_email_and_questions'] = esc_html__(
98
+			'You must enter a valid email address and answer all other required questions before you can proceed.',
99
+			'event_espresso'
100
+		);
101
+	}
102
+
103
+
104
+	public function enqueue_styles_and_scripts()
105
+	{
106
+	}
107
+
108
+
109
+	/**
110
+	 * @return boolean
111
+	 */
112
+	public function initialize_reg_step(): bool
113
+	{
114
+		return true;
115
+	}
116
+
117
+
118
+	/**
119
+	 * @return LegacyRegistrationForm
120
+	 * @throws DomainException
121
+	 * @throws InvalidArgumentException
122
+	 * @throws EntityNotFoundException
123
+	 * @throws InvalidDataTypeException
124
+	 * @throws InvalidInterfaceException
125
+	 */
126
+	public function generate_reg_form(): LegacyRegistrationForm
127
+	{
128
+		// TODO detect if event has a reg form UUID and swap this out for new reg form builder generated form
129
+		return LoaderFactory::getLoader()->getShared(LegacyRegistrationForm::class, [$this]);
130
+	}
131
+
132
+
133
+	/**
134
+	 * looking for hooks?
135
+	 * this method has been replaced by:
136
+	 * EventEspresso\core\domain\services\registration\form\LegacyRegistrationForm::getRegForm()
137
+	 *
138
+	 * @deprecated   $VID:$
139
+	 */
140
+	private function _registrations_reg_form()
141
+	{
142
+	}
143
+
144
+
145
+	/**
146
+	 * looking for hooks?
147
+	 * this method has been replaced by:
148
+	 * EventEspresso\core\domain\services\registration\form\LegacyRegistrationForm::additionalAttendeeRegInfoInput()
149
+	 *
150
+	 * @deprecated   $VID:$
151
+	 */
152
+	private function _additional_attendee_reg_info_input() {
153
+	}
154
+
155
+
156
+	/**
157
+	 * looking for hooks?
158
+	 * this method has been replaced by:
159
+	 * EventEspresso\core\domain\services\registration\form\LegacyRegistrationForm::questionGroupRegForm()
160
+	 *
161
+	 * @deprecated   $VID:$
162
+	 */
163
+	private function _question_group_reg_form()
164
+	{
165
+	}
166
+
167
+
168
+	/**
169
+	 * looking for hooks?
170
+	 * this method has been replaced by:
171
+	 * EventEspresso\core\domain\services\registration\form\LegacyRegistrationForm::questionGroupHeader()
172
+	 *
173
+	 * @deprecated   $VID:$
174
+	 */
175
+	private function _question_group_header()
176
+	{
177
+	}
178
+
179
+
180
+	/**
181
+	 * looking for hooks?
182
+	 * this method has been replaced by:
183
+	 * EventEspresso\core\domain\services\registration\form\LegacyCopyAttendeeInfoForm
184
+	 *
185
+	 * @deprecated   $VID:$
186
+	 */
187
+	private function _copy_attendee_info_form()
188
+	{
189
+	}
190
+
191
+
192
+	/**
193
+	 * looking for hooks?
194
+	 * this method has been replaced by:
195
+	 * EventEspresso\core\domain\services\registration\form\LegacyAutoCopyAttendeeInfoForm
196
+	 *
197
+	 * @deprecated   $VID:$
198
+	 */
199
+	private function _auto_copy_attendee_info()
200
+	{
201
+	}
202
+
203
+
204
+	/**
205
+	 * looking for hooks?
206
+	 * this method has been replaced by:
207
+	 * EventEspresso\core\domain\services\registration\form\LegacyCopyAttendeeInfoForm
208
+	 *
209
+	 * @deprecated   $VID:$
210
+	 */
211
+	private function _copy_attendee_info_inputs()
212
+	{
213
+	}
214
+
215
+
216
+	/**
217
+	 * looking for hooks?
218
+	 * this method has been replaced by:
219
+	 * EventEspresso\core\domain\services\registration\form\LegacyRegistrationForm::additionalPrimaryRegistrantInputs()
220
+	 *
221
+	 * @deprecated   $VID:$
222
+	 */
223
+	private function _additional_primary_registrant_inputs()
224
+	{
225
+	}
226
+
227
+
228
+	/**
229
+	 * looking for hooks?
230
+	 * this method has been replaced by:
231
+	 * EventEspresso\core\domain\services\registration\form\LegacyRegistrationForm::regFormQuestion()
232
+	 *
233
+	 * @param EE_Registration $registration
234
+	 * @param EE_Question     $question
235
+	 * @return EE_Form_Input_Base
236
+	 * @throws EE_Error
237
+	 * @throws InvalidArgumentException
238
+	 * @throws InvalidDataTypeException
239
+	 * @throws InvalidInterfaceException
240
+	 * @throws OutOfRangeException
241
+	 * @throws ReflectionException
242
+	 * @deprecated   $VID:$
243
+	 */
244
+	public function reg_form_question(EE_Registration $registration, EE_Question $question): EE_Form_Input_Base
245
+	{
246
+		$legacy_reg_form = $this->legacy_reg_forms[ $registration->reg_url_link() ] ?? null;
247
+		if ($legacy_reg_form instanceof LegacyRegistrationForm) {
248
+			return $legacy_reg_form->regFormQuestion($registration, $question);
249
+		}
250
+		throw new OutOfRangeException();
251
+	}
252
+
253
+
254
+	/**
255
+	 * looking for hooks?
256
+	 * this method has been replaced by:
257
+	 * EventEspresso\core\domain\services\registration\form\LegacyRegistrationForm::generateQuestionInput()
258
+	 *
259
+	 * @deprecated   $VID:$
260
+	 */
261
+	private function _generate_question_input()
262
+	{
263
+	}
264
+
265
+
266
+	/**
267
+	 * looking for hooks?
268
+	 * this method has been replaced by:
269
+	 * EventEspresso\core\domain\services\registration\form\CountryOptions::forLegacyFormInput()
270
+	 *
271
+	 * @param array|null           $countries_list
272
+	 * @param EE_Question|null     $question
273
+	 * @param EE_Registration|null $registration
274
+	 * @param EE_Answer|null       $answer
275
+	 * @return array 2d keys are country IDs, values are their names
276
+	 * @throws EE_Error
277
+	 * @throws ReflectionException
278
+	 * @deprecated   $VID:$
279
+	 */
280
+	public function use_cached_countries_for_form_input(
281
+		array $countries_list = null,
282
+		EE_Question $question = null,
283
+		EE_Registration $registration = null,
284
+		EE_Answer $answer = null
285
+	): array {
286
+		/** @var CountryOptions $country_options */
287
+		$country_options = LoaderFactory::getLoader()->getShared(CountryOptions::class, [$this->checkout->action]);
288
+		return $country_options->forLegacyFormInput($countries_list, $question, $registration, $answer);
289
+	}
290
+
291
+
292
+	/**
293
+	 * looking for hooks?
294
+	 * this method has been replaced by:
295
+	 * EventEspresso\core\domain\services\registration\form\StateOptions::forLegacyFormInput()
296
+	 *
297
+	 * @param array|null           $states_list
298
+	 * @param EE_Question|null     $question
299
+	 * @param EE_Registration|null $registration
300
+	 * @param EE_Answer|null       $answer
301
+	 * @return array 2d keys are state IDs, values are their names
302
+	 * @throws EE_Error
303
+	 * @throws ReflectionException
304
+	 * @deprecated   $VID:$
305
+	 */
306
+	public function use_cached_states_for_form_input(
307
+		array $states_list = null,
308
+		EE_Question $question = null,
309
+		EE_Registration $registration = null,
310
+		EE_Answer $answer = null
311
+	): array {
312
+		/** @var StateOptions $state_options */
313
+		$state_options = LoaderFactory::getLoader()->getShared(StateOptions::class, [$this->checkout->action]);
314
+		return $state_options->forLegacyFormInput($states_list, $question, $registration, $answer);
315
+	}
316
+
317
+
318
+	/********************************************************************************************************/
319
+	/****************************************  PROCESS REG STEP  ****************************************/
320
+	/********************************************************************************************************/
321
+
322
+
323
+	/**
324
+	 * @return bool
325
+	 * @throws EE_Error
326
+	 * @throws InvalidArgumentException
327
+	 * @throws ReflectionException
328
+	 * @throws RuntimeException
329
+	 * @throws InvalidDataTypeException
330
+	 * @throws InvalidInterfaceException
331
+	 */
332
+	public function process_reg_step()
333
+	{
334
+		do_action('AHEE_log', __FILE__, __FUNCTION__, '');
335
+		// grab validated data from form
336
+		$valid_data = $this->checkout->current_step->valid_data();
337
+		// EEH_Debug_Tools::printr( $_REQUEST, '$_REQUEST', __FILE__, __LINE__ );
338
+		// EEH_Debug_Tools::printr( $valid_data, '$valid_data', __FILE__, __LINE__ );
339
+		// if we don't have any $valid_data then something went TERRIBLY WRONG !!!
340
+		if (empty($valid_data)) {
341
+			EE_Error::add_error(
342
+				esc_html__('No valid question responses were received.', 'event_espresso'),
343
+				__FILE__,
344
+				__FUNCTION__,
345
+				__LINE__
346
+			);
347
+			return false;
348
+		}
349
+		if (! $this->checkout->transaction instanceof EE_Transaction || ! $this->checkout->continue_reg) {
350
+			EE_Error::add_error(
351
+				esc_html__(
352
+					'A valid transaction could not be initiated for processing your registrations.',
353
+					'event_espresso'
354
+				),
355
+				__FILE__,
356
+				__FUNCTION__,
357
+				__LINE__
358
+			);
359
+			return false;
360
+		}
361
+		// get cached registrations
362
+		$registrations = $this->checkout->transaction->registrations($this->checkout->reg_cache_where_params);
363
+		// verify we got the goods
364
+		if (empty($registrations)) {
365
+			// combine the old translated string with a new one, in order to not break translations
366
+			$error_message = esc_html__(
367
+				'Your form data could not be applied to any valid registrations.',
368
+				'event_espresso'
369
+			)
370
+			. sprintf(
371
+				esc_html_x(
372
+					'%3$sThis can sometimes happen if too much time has been taken to complete the registration process.%3$sPlease return to the %1$sEvent List%2$s and reselect your tickets. If the problem continues, please contact the site administrator.',
373
+					'(line break)This can sometimes happen if too much time has been taken to complete the registration process.(line break)Please return to the (link)Event List(end link) and reselect your tickets. If the problem continues, please contact the site administrator.',
374
+					'event_espresso'
375
+				),
376
+				'<a href="' . get_post_type_archive_link('espresso_events') . '" >',
377
+				'</a>',
378
+				'<br />'
379
+			);
380
+			EE_Error::add_error(
381
+				$error_message,
382
+				__FILE__,
383
+				__FUNCTION__,
384
+				__LINE__
385
+			);
386
+			return false;
387
+		}
388
+		// extract attendee info from form data and save to model objects
389
+		$registrations_processed = $this->_process_registrations($registrations, $valid_data);
390
+		// if first pass thru SPCO,
391
+		// then let's check processed registrations against the total number of tickets in the cart
392
+		if ($registrations_processed === false) {
393
+			// but return immediately if the previous step exited early due to errors
394
+			return false;
395
+		}
396
+		if (! $this->checkout->revisit && $registrations_processed !== $this->checkout->total_ticket_count) {
397
+			// generate a correctly translated string for all possible singular/plural combinations
398
+			if ($this->checkout->total_ticket_count === 1 && $registrations_processed !== 1) {
399
+				$error_msg = sprintf(
400
+					esc_html_x(
401
+						'There was %1$d ticket in the Event Queue, but %2$ds registrations were processed',
402
+						'There was 1 ticket in the Event Queue, but 2 registrations were processed',
403
+						'event_espresso'
404
+					),
405
+					$this->checkout->total_ticket_count,
406
+					$registrations_processed
407
+				);
408
+			} elseif ($this->checkout->total_ticket_count !== 1 && $registrations_processed === 1) {
409
+				$error_msg = sprintf(
410
+					esc_html_x(
411
+						'There was a total of %1$d tickets in the Event Queue, but only %2$ds registration was processed',
412
+						'There was a total of 2 tickets in the Event Queue, but only 1 registration was processed',
413
+						'event_espresso'
414
+					),
415
+					$this->checkout->total_ticket_count,
416
+					$registrations_processed
417
+				);
418
+			} else {
419
+				$error_msg = sprintf(
420
+					esc_html__(
421
+						'There was a total of 2 tickets in the Event Queue, but 2 registrations were processed',
422
+						'event_espresso'
423
+					),
424
+					$this->checkout->total_ticket_count,
425
+					$registrations_processed
426
+				);
427
+			}
428
+			EE_Error::add_error($error_msg, __FILE__, __FUNCTION__, __LINE__);
429
+			return false;
430
+		}
431
+		// mark this reg step as completed
432
+		$this->set_completed();
433
+		$this->_set_success_message(
434
+			esc_html__('The Attendee Information Step has been successfully completed.', 'event_espresso')
435
+		);
436
+		// do action in case a plugin wants to do something with the data submitted in step 1.
437
+		// passes EE_Single_Page_Checkout, and it's posted data
438
+		do_action('AHEE__EE_Single_Page_Checkout__process_attendee_information__end', $this, $valid_data);
439
+		return true;
440
+	}
441
+
442
+
443
+	/**
444
+	 *    _process_registrations
445
+	 *
446
+	 * @param EE_Registration[] $registrations
447
+	 * @param array[][]         $valid_data
448
+	 * @return bool|int
449
+	 * @throws EntityNotFoundException
450
+	 * @throws EE_Error
451
+	 * @throws InvalidArgumentException
452
+	 * @throws ReflectionException
453
+	 * @throws RuntimeException
454
+	 * @throws InvalidDataTypeException
455
+	 * @throws InvalidInterfaceException
456
+	 */
457
+	private function _process_registrations($registrations = array(), $valid_data = array())
458
+	{
459
+		// load resources and set some defaults
460
+		EE_Registry::instance()->load_model('Attendee');
461
+		// holder for primary registrant attendee object
462
+		$this->checkout->primary_attendee_obj = null;
463
+		// array for tracking reg form data for the primary registrant
464
+		$primary_registrant = array(
465
+			'line_item_id' => null,
466
+		);
467
+		$copy_primary = false;
468
+		// reg form sections that do not contain inputs
469
+		$non_input_form_sections = array(
470
+			'primary_registrant',
471
+			'additional_attendee_reg_info',
472
+			'spco_copy_attendee_chk',
473
+		);
474
+		// attendee counter
475
+		$att_nmbr = 0;
476
+		// grab the saved registrations from the transaction
477
+		foreach ($registrations as $registration) {
478
+			// verify EE_Registration object
479
+			if (! $registration instanceof EE_Registration) {
480
+				EE_Error::add_error(
481
+					esc_html__(
482
+						'An invalid Registration object was discovered when attempting to process your registration information.',
483
+						'event_espresso'
484
+					),
485
+					__FILE__,
486
+					__FUNCTION__,
487
+					__LINE__
488
+				);
489
+				return false;
490
+			}
491
+			/** @var string $reg_url_link */
492
+			$reg_url_link = $registration->reg_url_link();
493
+			// reg_url_link exists ?
494
+			if (! empty($reg_url_link)) {
495
+				// should this registration be processed during this visit ?
496
+				if ($this->checkout->visit_allows_processing_of_this_registration($registration)) {
497
+					// if NOT revisiting, then let's save the registration now,
498
+					// so that we have a REG_ID to use when generating other objects
499
+					if (! $this->checkout->revisit) {
500
+						$registration->save();
501
+					}
502
+					/**
503
+					 * This allows plugins to trigger a fail on processing of a
504
+					 * registration for any conditions they may have for it to pass.
505
+					 *
506
+					 * @var bool   if true is returned by the plugin then the
507
+					 *            registration processing is halted.
508
+					 */
509
+					if (
510
+						apply_filters(
511
+							'FHEE__EE_SPCO_Reg_Step_Attendee_Information___process_registrations__pre_registration_process',
512
+							false,
513
+							$att_nmbr,
514
+							$registration,
515
+							$registrations,
516
+							$valid_data,
517
+							$this
518
+						)
519
+					) {
520
+						return false;
521
+					}
522
+
523
+					// Houston, we have a registration!
524
+					$att_nmbr++;
525
+					$this->_attendee_data[ $reg_url_link ] = array();
526
+					// grab any existing related answer objects
527
+					$this->_registration_answers = $registration->answers();
528
+					// unset( $valid_data[ $reg_url_link ]['additional_attendee_reg_info'] );
529
+					if (isset($valid_data[ $reg_url_link ])) {
530
+						// do we need to copy basic info from primary attendee ?
531
+						$copy_primary = isset($valid_data[ $reg_url_link ]['additional_attendee_reg_info'])
532
+										&& absint($valid_data[ $reg_url_link ]['additional_attendee_reg_info']) === 0;
533
+						// filter form input data for this registration
534
+						$valid_data[ $reg_url_link ] = (array) apply_filters(
535
+							'FHEE__EE_Single_Page_Checkout__process_attendee_information__valid_data_line_item',
536
+							$valid_data[ $reg_url_link ]
537
+						);
538
+						if (isset($valid_data['primary_attendee'])) {
539
+							$primary_registrant['line_item_id'] = ! empty($valid_data['primary_attendee'])
540
+								? $valid_data['primary_attendee']
541
+								: false;
542
+							unset($valid_data['primary_attendee']);
543
+						}
544
+						// now loop through our array of valid post data && process attendee reg forms
545
+						foreach ($valid_data[ $reg_url_link ] as $form_section => $form_inputs) {
546
+							if (! in_array($form_section, $non_input_form_sections, true)) {
547
+								foreach ($form_inputs as $form_input => $input_value) {
548
+									// \EEH_Debug_Tools::printr( $input_value, $form_input, __FILE__, __LINE__ );
549
+									// check for critical inputs
550
+									if (
551
+										! $this->_verify_critical_attendee_details_are_set_and_validate_email(
552
+											$form_input,
553
+											$input_value
554
+										)
555
+									) {
556
+										return false;
557
+									}
558
+									// store a bit of data about the primary attendee
559
+									if (
560
+										$att_nmbr === 1
561
+										&& ! empty($input_value)
562
+										&& $reg_url_link === $primary_registrant['line_item_id']
563
+									) {
564
+										$primary_registrant[ $form_input ] = $input_value;
565
+									} elseif (
566
+										$copy_primary
567
+											  && $input_value === null
568
+											  && isset($primary_registrant[ $form_input ])
569
+									) {
570
+										$input_value = $primary_registrant[ $form_input ];
571
+									}
572
+									// now attempt to save the input data
573
+									if (
574
+										! $this->_save_registration_form_input(
575
+											$registration,
576
+											$form_input,
577
+											$input_value
578
+										)
579
+									) {
580
+										EE_Error::add_error(
581
+											sprintf(
582
+												esc_html_x(
583
+													'Unable to save registration form data for the form input: "%1$s" with the submitted value: "%2$s"',
584
+													'Unable to save registration form data for the form input: "form input name" with the submitted value: "form input value"',
585
+													'event_espresso'
586
+												),
587
+												$form_input,
588
+												$input_value
589
+											),
590
+											__FILE__,
591
+											__FUNCTION__,
592
+											__LINE__
593
+										);
594
+										return false;
595
+									}
596
+								}
597
+							}
598
+						}  // end of foreach ( $valid_data[ $reg_url_link ] as $form_section => $form_inputs )
599
+					}
600
+					// EEH_Debug_Tools::printr( $this->_attendee_data, '$this->_attendee_data', __FILE__, __LINE__ );
601
+					// this registration does not require additional attendee information ?
602
+					if (
603
+						$copy_primary
604
+						&& $att_nmbr > 1
605
+						&& $this->checkout->primary_attendee_obj instanceof EE_Attendee
606
+					) {
607
+						// just copy the primary registrant
608
+						$attendee = $this->checkout->primary_attendee_obj;
609
+					} else {
610
+						// ensure critical details are set for additional attendees
611
+						$this->_attendee_data[ $reg_url_link ] = $att_nmbr > 1
612
+							? $this->_copy_critical_attendee_details_from_primary_registrant(
613
+								$this->_attendee_data[ $reg_url_link ]
614
+							)
615
+							: $this->_attendee_data[ $reg_url_link ];
616
+						// execute create attendee command (which may return an existing attendee)
617
+						$attendee = EE_Registry::instance()->BUS->execute(
618
+							new CreateAttendeeCommand(
619
+								$this->_attendee_data[ $reg_url_link ],
620
+								$registration
621
+							)
622
+						);
623
+						// who's #1 ?
624
+						if ($att_nmbr === 1) {
625
+							$this->checkout->primary_attendee_obj = $attendee;
626
+						}
627
+					}
628
+					// EEH_Debug_Tools::printr( $attendee, '$attendee', __FILE__, __LINE__ );
629
+					// add relation to registration, set attendee ID, and cache attendee
630
+					$this->_associate_attendee_with_registration($registration, $attendee);
631
+					// \EEH_Debug_Tools::printr( $registration, '$registration', __FILE__, __LINE__ );
632
+					if (! $registration->attendee() instanceof EE_Attendee) {
633
+						EE_Error::add_error(
634
+							sprintf(
635
+								esc_html_x(
636
+									'Registration %s has an invalid or missing Attendee object.',
637
+									'Registration 123-456-789 has an invalid or missing Attendee object.',
638
+									'event_espresso'
639
+								),
640
+								$reg_url_link
641
+							),
642
+							__FILE__,
643
+							__FUNCTION__,
644
+							__LINE__
645
+						);
646
+						return false;
647
+					}
648
+					/** @type EE_Registration_Processor $registration_processor */
649
+					$registration_processor = EE_Registry::instance()->load_class('Registration_Processor');
650
+					// at this point, we should have enough details about the registrant to consider the registration
651
+					// NOT incomplete
652
+					$registration_processor->toggle_incomplete_registration_status_to_default(
653
+						$registration,
654
+						false,
655
+						new Context(
656
+							'spco_reg_step_attendee_information_process_registrations',
657
+							esc_html__(
658
+								'Finished populating registration with details from the registration form after submitting the Attendee Information Reg Step.',
659
+								'event_espresso'
660
+							)
661
+						)
662
+					);
663
+					// we can also consider the TXN to not have been failed, so temporarily upgrade it's status to
664
+					// abandoned
665
+					$this->checkout->transaction->toggle_failed_transaction_status();
666
+					// if we've gotten this far, then let's save what we have
667
+					$registration->save();
668
+					// add relation between TXN and registration
669
+					$this->_associate_registration_with_transaction($registration);
670
+				}
671
+			} else {
672
+				EE_Error::add_error(
673
+					esc_html__(
674
+						'An invalid or missing line item ID was encountered while attempting to process the registration form.',
675
+						'event_espresso'
676
+					),
677
+					__FILE__,
678
+					__FUNCTION__,
679
+					__LINE__
680
+				);
681
+				// remove malformed data
682
+				unset($valid_data[ $reg_url_link ]);
683
+				return false;
684
+			}
685
+		} // end of foreach ( $this->checkout->transaction->registrations()  as $registration )
686
+		return $att_nmbr;
687
+	}
688
+
689
+
690
+	/**
691
+	 *    _save_registration_form_input
692
+	 *
693
+	 * @param EE_Registration $registration
694
+	 * @param string          $form_input
695
+	 * @param string          $input_value
696
+	 * @return bool
697
+	 * @throws EE_Error
698
+	 * @throws InvalidArgumentException
699
+	 * @throws InvalidDataTypeException
700
+	 * @throws InvalidInterfaceException
701
+	 * @throws ReflectionException
702
+	 */
703
+	private function _save_registration_form_input(
704
+		EE_Registration $registration,
705
+		$form_input = '',
706
+		$input_value = ''
707
+	) {
708
+		// If email_confirm is sent it's not saved
709
+		if ((string) $form_input === 'email_confirm') {
710
+			return true;
711
+		}
712
+
713
+		// \EEH_Debug_Tools::printr( __FUNCTION__, __CLASS__, __FILE__, __LINE__, 2 );
714
+		// \EEH_Debug_Tools::printr( $form_input, '$form_input', __FILE__, __LINE__ );
715
+		// \EEH_Debug_Tools::printr( $input_value, '$input_value', __FILE__, __LINE__ );
716
+		// allow for plugins to hook in and do their own processing of the form input.
717
+		// For plugins to bypass normal processing here, they just need to return a boolean value.
718
+		if (
719
+			apply_filters(
720
+				'FHEE__EE_SPCO_Reg_Step_Attendee_Information___save_registration_form_input',
721
+				false,
722
+				$registration,
723
+				$form_input,
724
+				$input_value,
725
+				$this
726
+			)
727
+		) {
728
+			return true;
729
+		}
730
+		/*
731 731
          * $answer_cache_id is the key used to find the EE_Answer we want
732 732
          * @see https://events.codebasehq.com/projects/event-espresso/tickets/10477
733 733
          */
734
-        $answer_cache_id = $this->checkout->reg_url_link
735
-            ? $form_input . '-' . $registration->reg_url_link()
736
-            : $form_input;
737
-        $answer_is_obj = isset($this->_registration_answers[ $answer_cache_id ])
738
-                         && $this->_registration_answers[ $answer_cache_id ] instanceof EE_Answer;
739
-        // rename form_inputs if they are EE_Attendee properties
740
-        switch ((string) $form_input) {
741
-            case 'state':
742
-            case 'STA_ID':
743
-                $attendee_property = true;
744
-                $form_input = 'STA_ID';
745
-                break;
746
-
747
-            case 'country':
748
-            case 'CNT_ISO':
749
-                $attendee_property = true;
750
-                $form_input = 'CNT_ISO';
751
-                break;
752
-
753
-            default:
754
-                $ATT_input = 'ATT_' . $form_input;
755
-                // EEH_Debug_Tools::printr( $ATT_input, '$ATT_input', __FILE__, __LINE__ );
756
-                $attendee_property = EEM_Attendee::instance()->has_field($ATT_input) ? true : false;
757
-                $form_input = $attendee_property ? 'ATT_' . $form_input : $form_input;
758
-        }
759
-        // EEH_Debug_Tools::printr( $answer_cache_id, '$answer_cache_id', __FILE__, __LINE__ );
760
-        // EEH_Debug_Tools::printr( $attendee_property, '$attendee_property', __FILE__, __LINE__ );
761
-        // EEH_Debug_Tools::printr( $answer_is_obj, '$answer_is_obj', __FILE__, __LINE__ );
762
-        // if this form input has a corresponding attendee property
763
-        if ($attendee_property) {
764
-            $this->_attendee_data[ $registration->reg_url_link() ][ $form_input ] = $input_value;
765
-            if ($answer_is_obj) {
766
-                // and delete the corresponding answer since we won't be storing this data in that object
767
-                $registration->_remove_relation_to($this->_registration_answers[ $answer_cache_id ], 'Answer');
768
-                $this->_registration_answers[ $answer_cache_id ]->delete_permanently();
769
-            }
770
-            return true;
771
-        }
772
-        if ($answer_is_obj) {
773
-            // save this data to the answer object
774
-            $this->_registration_answers[ $answer_cache_id ]->set_value($input_value);
775
-            $result = $this->_registration_answers[ $answer_cache_id ]->save();
776
-            return $result !== false;
777
-        }
778
-        foreach ($this->_registration_answers as $answer) {
779
-            if ($answer instanceof EE_Answer && $answer->question_ID() === $answer_cache_id) {
780
-                $answer->set_value($input_value);
781
-                $result = $answer->save();
782
-                return $result !== false;
783
-            }
784
-        }
785
-        return false;
786
-    }
787
-
788
-
789
-    /**
790
-     *    _verify_critical_attendee_details_are_set
791
-     *
792
-     * @param string $form_input
793
-     * @param string $input_value
794
-     * @return boolean
795
-     */
796
-    private function _verify_critical_attendee_details_are_set_and_validate_email(
797
-        $form_input = '',
798
-        $input_value = ''
799
-    ) {
800
-        if (empty($input_value)) {
801
-            // if the form input isn't marked as being required, then just return
802
-            if (! isset($this->_required_questions[ $form_input ]) || ! $this->_required_questions[ $form_input ]) {
803
-                return true;
804
-            }
805
-            switch ($form_input) {
806
-                case 'fname':
807
-                    EE_Error::add_error(
808
-                        esc_html__('First Name is a required value.', 'event_espresso'),
809
-                        __FILE__,
810
-                        __FUNCTION__,
811
-                        __LINE__
812
-                    );
813
-                    return false;
814
-                    break;
815
-                case 'lname':
816
-                    EE_Error::add_error(
817
-                        esc_html__('Last Name is a required value.', 'event_espresso'),
818
-                        __FILE__,
819
-                        __FUNCTION__,
820
-                        __LINE__
821
-                    );
822
-                    return false;
823
-                    break;
824
-                case 'email':
825
-                    EE_Error::add_error(
826
-                        esc_html__('Please enter a valid email address.', 'event_espresso'),
827
-                        __FILE__,
828
-                        __FUNCTION__,
829
-                        __LINE__
830
-                    );
831
-                    return false;
832
-                    break;
833
-            }
834
-        }
835
-        return true;
836
-    }
837
-
838
-
839
-    /**
840
-     *    _associate_attendee_with_registration
841
-     *
842
-     * @param EE_Registration $registration
843
-     * @param EE_Attendee     $attendee
844
-     * @return void
845
-     * @throws EE_Error
846
-     * @throws InvalidArgumentException
847
-     * @throws ReflectionException
848
-     * @throws RuntimeException
849
-     * @throws InvalidDataTypeException
850
-     * @throws InvalidInterfaceException
851
-     */
852
-    private function _associate_attendee_with_registration(EE_Registration $registration, EE_Attendee $attendee)
853
-    {
854
-        // add relation to attendee
855
-        $registration->_add_relation_to($attendee, 'Attendee');
856
-        $registration->set_attendee_id($attendee->ID());
857
-        $registration->update_cache_after_object_save('Attendee', $attendee);
858
-    }
859
-
860
-
861
-    /**
862
-     *    _associate_registration_with_transaction
863
-     *
864
-     * @param EE_Registration $registration
865
-     * @return void
866
-     * @throws EE_Error
867
-     * @throws InvalidArgumentException
868
-     * @throws ReflectionException
869
-     * @throws InvalidDataTypeException
870
-     * @throws InvalidInterfaceException
871
-     */
872
-    private function _associate_registration_with_transaction(EE_Registration $registration)
873
-    {
874
-        // add relation to registration
875
-        $this->checkout->transaction->_add_relation_to($registration, 'Registration');
876
-        $this->checkout->transaction->update_cache_after_object_save('Registration', $registration);
877
-    }
878
-
879
-
880
-    /**
881
-     *    _copy_critical_attendee_details_from_primary_registrant
882
-     *    ensures that all attendees at least have data for first name, last name, and email address
883
-     *
884
-     * @param array $attendee_data
885
-     * @return array
886
-     * @throws EE_Error
887
-     * @throws InvalidArgumentException
888
-     * @throws ReflectionException
889
-     * @throws InvalidDataTypeException
890
-     * @throws InvalidInterfaceException
891
-     */
892
-    private function _copy_critical_attendee_details_from_primary_registrant($attendee_data = array())
893
-    {
894
-        // bare minimum critical details include first name, last name, email address
895
-        $critical_attendee_details = array('ATT_fname', 'ATT_lname', 'ATT_email');
896
-        // add address info to critical details?
897
-        if (
898
-            apply_filters(
899
-                'FHEE__EE_SPCO_Reg_Step_Attendee_Information__merge_address_details_with_critical_attendee_details',
900
-                false
901
-            )
902
-        ) {
903
-            $address_details = array(
904
-                'ATT_address',
905
-                'ATT_address2',
906
-                'ATT_city',
907
-                'STA_ID',
908
-                'CNT_ISO',
909
-                'ATT_zip',
910
-                'ATT_phone',
911
-            );
912
-            $critical_attendee_details = array_merge($critical_attendee_details, $address_details);
913
-        }
914
-        foreach ($critical_attendee_details as $critical_attendee_detail) {
915
-            if (
916
-                ! isset($attendee_data[ $critical_attendee_detail ])
917
-                || empty($attendee_data[ $critical_attendee_detail ])
918
-            ) {
919
-                $attendee_data[ $critical_attendee_detail ] = $this->checkout->primary_attendee_obj->get(
920
-                    $critical_attendee_detail
921
-                );
922
-            }
923
-        }
924
-        return $attendee_data;
925
-    }
926
-
927
-
928
-    /**
929
-     *    update_reg_step
930
-     *    this is the final step after a user  revisits the site to edit their attendee information
931
-     *    this gets called AFTER the process_reg_step() method above
932
-     *
933
-     * @return bool
934
-     * @throws EE_Error
935
-     * @throws InvalidArgumentException
936
-     * @throws ReflectionException
937
-     * @throws RuntimeException
938
-     * @throws InvalidDataTypeException
939
-     * @throws InvalidInterfaceException
940
-     */
941
-    public function update_reg_step()
942
-    {
943
-        // save everything
944
-        if ($this->process_reg_step()) {
945
-            $this->checkout->redirect = true;
946
-            $this->checkout->redirect_url = add_query_arg(
947
-                array(
948
-                    'e_reg_url_link' => $this->checkout->reg_url_link,
949
-                    'revisit'        => true,
950
-                ),
951
-                $this->checkout->thank_you_page_url
952
-            );
953
-            $this->checkout->json_response->set_redirect_url($this->checkout->redirect_url);
954
-            return true;
955
-        }
956
-        return false;
957
-    }
734
+		$answer_cache_id = $this->checkout->reg_url_link
735
+			? $form_input . '-' . $registration->reg_url_link()
736
+			: $form_input;
737
+		$answer_is_obj = isset($this->_registration_answers[ $answer_cache_id ])
738
+						 && $this->_registration_answers[ $answer_cache_id ] instanceof EE_Answer;
739
+		// rename form_inputs if they are EE_Attendee properties
740
+		switch ((string) $form_input) {
741
+			case 'state':
742
+			case 'STA_ID':
743
+				$attendee_property = true;
744
+				$form_input = 'STA_ID';
745
+				break;
746
+
747
+			case 'country':
748
+			case 'CNT_ISO':
749
+				$attendee_property = true;
750
+				$form_input = 'CNT_ISO';
751
+				break;
752
+
753
+			default:
754
+				$ATT_input = 'ATT_' . $form_input;
755
+				// EEH_Debug_Tools::printr( $ATT_input, '$ATT_input', __FILE__, __LINE__ );
756
+				$attendee_property = EEM_Attendee::instance()->has_field($ATT_input) ? true : false;
757
+				$form_input = $attendee_property ? 'ATT_' . $form_input : $form_input;
758
+		}
759
+		// EEH_Debug_Tools::printr( $answer_cache_id, '$answer_cache_id', __FILE__, __LINE__ );
760
+		// EEH_Debug_Tools::printr( $attendee_property, '$attendee_property', __FILE__, __LINE__ );
761
+		// EEH_Debug_Tools::printr( $answer_is_obj, '$answer_is_obj', __FILE__, __LINE__ );
762
+		// if this form input has a corresponding attendee property
763
+		if ($attendee_property) {
764
+			$this->_attendee_data[ $registration->reg_url_link() ][ $form_input ] = $input_value;
765
+			if ($answer_is_obj) {
766
+				// and delete the corresponding answer since we won't be storing this data in that object
767
+				$registration->_remove_relation_to($this->_registration_answers[ $answer_cache_id ], 'Answer');
768
+				$this->_registration_answers[ $answer_cache_id ]->delete_permanently();
769
+			}
770
+			return true;
771
+		}
772
+		if ($answer_is_obj) {
773
+			// save this data to the answer object
774
+			$this->_registration_answers[ $answer_cache_id ]->set_value($input_value);
775
+			$result = $this->_registration_answers[ $answer_cache_id ]->save();
776
+			return $result !== false;
777
+		}
778
+		foreach ($this->_registration_answers as $answer) {
779
+			if ($answer instanceof EE_Answer && $answer->question_ID() === $answer_cache_id) {
780
+				$answer->set_value($input_value);
781
+				$result = $answer->save();
782
+				return $result !== false;
783
+			}
784
+		}
785
+		return false;
786
+	}
787
+
788
+
789
+	/**
790
+	 *    _verify_critical_attendee_details_are_set
791
+	 *
792
+	 * @param string $form_input
793
+	 * @param string $input_value
794
+	 * @return boolean
795
+	 */
796
+	private function _verify_critical_attendee_details_are_set_and_validate_email(
797
+		$form_input = '',
798
+		$input_value = ''
799
+	) {
800
+		if (empty($input_value)) {
801
+			// if the form input isn't marked as being required, then just return
802
+			if (! isset($this->_required_questions[ $form_input ]) || ! $this->_required_questions[ $form_input ]) {
803
+				return true;
804
+			}
805
+			switch ($form_input) {
806
+				case 'fname':
807
+					EE_Error::add_error(
808
+						esc_html__('First Name is a required value.', 'event_espresso'),
809
+						__FILE__,
810
+						__FUNCTION__,
811
+						__LINE__
812
+					);
813
+					return false;
814
+					break;
815
+				case 'lname':
816
+					EE_Error::add_error(
817
+						esc_html__('Last Name is a required value.', 'event_espresso'),
818
+						__FILE__,
819
+						__FUNCTION__,
820
+						__LINE__
821
+					);
822
+					return false;
823
+					break;
824
+				case 'email':
825
+					EE_Error::add_error(
826
+						esc_html__('Please enter a valid email address.', 'event_espresso'),
827
+						__FILE__,
828
+						__FUNCTION__,
829
+						__LINE__
830
+					);
831
+					return false;
832
+					break;
833
+			}
834
+		}
835
+		return true;
836
+	}
837
+
838
+
839
+	/**
840
+	 *    _associate_attendee_with_registration
841
+	 *
842
+	 * @param EE_Registration $registration
843
+	 * @param EE_Attendee     $attendee
844
+	 * @return void
845
+	 * @throws EE_Error
846
+	 * @throws InvalidArgumentException
847
+	 * @throws ReflectionException
848
+	 * @throws RuntimeException
849
+	 * @throws InvalidDataTypeException
850
+	 * @throws InvalidInterfaceException
851
+	 */
852
+	private function _associate_attendee_with_registration(EE_Registration $registration, EE_Attendee $attendee)
853
+	{
854
+		// add relation to attendee
855
+		$registration->_add_relation_to($attendee, 'Attendee');
856
+		$registration->set_attendee_id($attendee->ID());
857
+		$registration->update_cache_after_object_save('Attendee', $attendee);
858
+	}
859
+
860
+
861
+	/**
862
+	 *    _associate_registration_with_transaction
863
+	 *
864
+	 * @param EE_Registration $registration
865
+	 * @return void
866
+	 * @throws EE_Error
867
+	 * @throws InvalidArgumentException
868
+	 * @throws ReflectionException
869
+	 * @throws InvalidDataTypeException
870
+	 * @throws InvalidInterfaceException
871
+	 */
872
+	private function _associate_registration_with_transaction(EE_Registration $registration)
873
+	{
874
+		// add relation to registration
875
+		$this->checkout->transaction->_add_relation_to($registration, 'Registration');
876
+		$this->checkout->transaction->update_cache_after_object_save('Registration', $registration);
877
+	}
878
+
879
+
880
+	/**
881
+	 *    _copy_critical_attendee_details_from_primary_registrant
882
+	 *    ensures that all attendees at least have data for first name, last name, and email address
883
+	 *
884
+	 * @param array $attendee_data
885
+	 * @return array
886
+	 * @throws EE_Error
887
+	 * @throws InvalidArgumentException
888
+	 * @throws ReflectionException
889
+	 * @throws InvalidDataTypeException
890
+	 * @throws InvalidInterfaceException
891
+	 */
892
+	private function _copy_critical_attendee_details_from_primary_registrant($attendee_data = array())
893
+	{
894
+		// bare minimum critical details include first name, last name, email address
895
+		$critical_attendee_details = array('ATT_fname', 'ATT_lname', 'ATT_email');
896
+		// add address info to critical details?
897
+		if (
898
+			apply_filters(
899
+				'FHEE__EE_SPCO_Reg_Step_Attendee_Information__merge_address_details_with_critical_attendee_details',
900
+				false
901
+			)
902
+		) {
903
+			$address_details = array(
904
+				'ATT_address',
905
+				'ATT_address2',
906
+				'ATT_city',
907
+				'STA_ID',
908
+				'CNT_ISO',
909
+				'ATT_zip',
910
+				'ATT_phone',
911
+			);
912
+			$critical_attendee_details = array_merge($critical_attendee_details, $address_details);
913
+		}
914
+		foreach ($critical_attendee_details as $critical_attendee_detail) {
915
+			if (
916
+				! isset($attendee_data[ $critical_attendee_detail ])
917
+				|| empty($attendee_data[ $critical_attendee_detail ])
918
+			) {
919
+				$attendee_data[ $critical_attendee_detail ] = $this->checkout->primary_attendee_obj->get(
920
+					$critical_attendee_detail
921
+				);
922
+			}
923
+		}
924
+		return $attendee_data;
925
+	}
926
+
927
+
928
+	/**
929
+	 *    update_reg_step
930
+	 *    this is the final step after a user  revisits the site to edit their attendee information
931
+	 *    this gets called AFTER the process_reg_step() method above
932
+	 *
933
+	 * @return bool
934
+	 * @throws EE_Error
935
+	 * @throws InvalidArgumentException
936
+	 * @throws ReflectionException
937
+	 * @throws RuntimeException
938
+	 * @throws InvalidDataTypeException
939
+	 * @throws InvalidInterfaceException
940
+	 */
941
+	public function update_reg_step()
942
+	{
943
+		// save everything
944
+		if ($this->process_reg_step()) {
945
+			$this->checkout->redirect = true;
946
+			$this->checkout->redirect_url = add_query_arg(
947
+				array(
948
+					'e_reg_url_link' => $this->checkout->reg_url_link,
949
+					'revisit'        => true,
950
+				),
951
+				$this->checkout->thank_you_page_url
952
+			);
953
+			$this->checkout->json_response->set_redirect_url($this->checkout->redirect_url);
954
+			return true;
955
+		}
956
+		return false;
957
+	}
958 958
 }
Please login to merge, or discard this patch.
Spacing   +38 added lines, -38 removed lines patch added patch discarded remove patch
@@ -243,7 +243,7 @@  discard block
 block discarded – undo
243 243
      */
244 244
     public function reg_form_question(EE_Registration $registration, EE_Question $question): EE_Form_Input_Base
245 245
     {
246
-        $legacy_reg_form = $this->legacy_reg_forms[ $registration->reg_url_link() ] ?? null;
246
+        $legacy_reg_form = $this->legacy_reg_forms[$registration->reg_url_link()] ?? null;
247 247
         if ($legacy_reg_form instanceof LegacyRegistrationForm) {
248 248
             return $legacy_reg_form->regFormQuestion($registration, $question);
249 249
         }
@@ -346,7 +346,7 @@  discard block
 block discarded – undo
346 346
             );
347 347
             return false;
348 348
         }
349
-        if (! $this->checkout->transaction instanceof EE_Transaction || ! $this->checkout->continue_reg) {
349
+        if ( ! $this->checkout->transaction instanceof EE_Transaction || ! $this->checkout->continue_reg) {
350 350
             EE_Error::add_error(
351 351
                 esc_html__(
352 352
                     'A valid transaction could not be initiated for processing your registrations.',
@@ -373,7 +373,7 @@  discard block
 block discarded – undo
373 373
                     '(line break)This can sometimes happen if too much time has been taken to complete the registration process.(line break)Please return to the (link)Event List(end link) and reselect your tickets. If the problem continues, please contact the site administrator.',
374 374
                     'event_espresso'
375 375
                 ),
376
-                '<a href="' . get_post_type_archive_link('espresso_events') . '" >',
376
+                '<a href="'.get_post_type_archive_link('espresso_events').'" >',
377 377
                 '</a>',
378 378
                 '<br />'
379 379
             );
@@ -393,7 +393,7 @@  discard block
 block discarded – undo
393 393
             // but return immediately if the previous step exited early due to errors
394 394
             return false;
395 395
         }
396
-        if (! $this->checkout->revisit && $registrations_processed !== $this->checkout->total_ticket_count) {
396
+        if ( ! $this->checkout->revisit && $registrations_processed !== $this->checkout->total_ticket_count) {
397 397
             // generate a correctly translated string for all possible singular/plural combinations
398 398
             if ($this->checkout->total_ticket_count === 1 && $registrations_processed !== 1) {
399 399
                 $error_msg = sprintf(
@@ -476,7 +476,7 @@  discard block
 block discarded – undo
476 476
         // grab the saved registrations from the transaction
477 477
         foreach ($registrations as $registration) {
478 478
             // verify EE_Registration object
479
-            if (! $registration instanceof EE_Registration) {
479
+            if ( ! $registration instanceof EE_Registration) {
480 480
                 EE_Error::add_error(
481 481
                     esc_html__(
482 482
                         'An invalid Registration object was discovered when attempting to process your registration information.',
@@ -491,12 +491,12 @@  discard block
 block discarded – undo
491 491
             /** @var string $reg_url_link */
492 492
             $reg_url_link = $registration->reg_url_link();
493 493
             // reg_url_link exists ?
494
-            if (! empty($reg_url_link)) {
494
+            if ( ! empty($reg_url_link)) {
495 495
                 // should this registration be processed during this visit ?
496 496
                 if ($this->checkout->visit_allows_processing_of_this_registration($registration)) {
497 497
                     // if NOT revisiting, then let's save the registration now,
498 498
                     // so that we have a REG_ID to use when generating other objects
499
-                    if (! $this->checkout->revisit) {
499
+                    if ( ! $this->checkout->revisit) {
500 500
                         $registration->save();
501 501
                     }
502 502
                     /**
@@ -522,18 +522,18 @@  discard block
 block discarded – undo
522 522
 
523 523
                     // Houston, we have a registration!
524 524
                     $att_nmbr++;
525
-                    $this->_attendee_data[ $reg_url_link ] = array();
525
+                    $this->_attendee_data[$reg_url_link] = array();
526 526
                     // grab any existing related answer objects
527 527
                     $this->_registration_answers = $registration->answers();
528 528
                     // unset( $valid_data[ $reg_url_link ]['additional_attendee_reg_info'] );
529
-                    if (isset($valid_data[ $reg_url_link ])) {
529
+                    if (isset($valid_data[$reg_url_link])) {
530 530
                         // do we need to copy basic info from primary attendee ?
531
-                        $copy_primary = isset($valid_data[ $reg_url_link ]['additional_attendee_reg_info'])
532
-                                        && absint($valid_data[ $reg_url_link ]['additional_attendee_reg_info']) === 0;
531
+                        $copy_primary = isset($valid_data[$reg_url_link]['additional_attendee_reg_info'])
532
+                                        && absint($valid_data[$reg_url_link]['additional_attendee_reg_info']) === 0;
533 533
                         // filter form input data for this registration
534
-                        $valid_data[ $reg_url_link ] = (array) apply_filters(
534
+                        $valid_data[$reg_url_link] = (array) apply_filters(
535 535
                             'FHEE__EE_Single_Page_Checkout__process_attendee_information__valid_data_line_item',
536
-                            $valid_data[ $reg_url_link ]
536
+                            $valid_data[$reg_url_link]
537 537
                         );
538 538
                         if (isset($valid_data['primary_attendee'])) {
539 539
                             $primary_registrant['line_item_id'] = ! empty($valid_data['primary_attendee'])
@@ -542,8 +542,8 @@  discard block
 block discarded – undo
542 542
                             unset($valid_data['primary_attendee']);
543 543
                         }
544 544
                         // now loop through our array of valid post data && process attendee reg forms
545
-                        foreach ($valid_data[ $reg_url_link ] as $form_section => $form_inputs) {
546
-                            if (! in_array($form_section, $non_input_form_sections, true)) {
545
+                        foreach ($valid_data[$reg_url_link] as $form_section => $form_inputs) {
546
+                            if ( ! in_array($form_section, $non_input_form_sections, true)) {
547 547
                                 foreach ($form_inputs as $form_input => $input_value) {
548 548
                                     // \EEH_Debug_Tools::printr( $input_value, $form_input, __FILE__, __LINE__ );
549 549
                                     // check for critical inputs
@@ -561,13 +561,13 @@  discard block
 block discarded – undo
561 561
                                         && ! empty($input_value)
562 562
                                         && $reg_url_link === $primary_registrant['line_item_id']
563 563
                                     ) {
564
-                                        $primary_registrant[ $form_input ] = $input_value;
564
+                                        $primary_registrant[$form_input] = $input_value;
565 565
                                     } elseif (
566 566
                                         $copy_primary
567 567
                                               && $input_value === null
568
-                                              && isset($primary_registrant[ $form_input ])
568
+                                              && isset($primary_registrant[$form_input])
569 569
                                     ) {
570
-                                        $input_value = $primary_registrant[ $form_input ];
570
+                                        $input_value = $primary_registrant[$form_input];
571 571
                                     }
572 572
                                     // now attempt to save the input data
573 573
                                     if (
@@ -608,15 +608,15 @@  discard block
 block discarded – undo
608 608
                         $attendee = $this->checkout->primary_attendee_obj;
609 609
                     } else {
610 610
                         // ensure critical details are set for additional attendees
611
-                        $this->_attendee_data[ $reg_url_link ] = $att_nmbr > 1
611
+                        $this->_attendee_data[$reg_url_link] = $att_nmbr > 1
612 612
                             ? $this->_copy_critical_attendee_details_from_primary_registrant(
613
-                                $this->_attendee_data[ $reg_url_link ]
613
+                                $this->_attendee_data[$reg_url_link]
614 614
                             )
615
-                            : $this->_attendee_data[ $reg_url_link ];
615
+                            : $this->_attendee_data[$reg_url_link];
616 616
                         // execute create attendee command (which may return an existing attendee)
617 617
                         $attendee = EE_Registry::instance()->BUS->execute(
618 618
                             new CreateAttendeeCommand(
619
-                                $this->_attendee_data[ $reg_url_link ],
619
+                                $this->_attendee_data[$reg_url_link],
620 620
                                 $registration
621 621
                             )
622 622
                         );
@@ -629,7 +629,7 @@  discard block
 block discarded – undo
629 629
                     // add relation to registration, set attendee ID, and cache attendee
630 630
                     $this->_associate_attendee_with_registration($registration, $attendee);
631 631
                     // \EEH_Debug_Tools::printr( $registration, '$registration', __FILE__, __LINE__ );
632
-                    if (! $registration->attendee() instanceof EE_Attendee) {
632
+                    if ( ! $registration->attendee() instanceof EE_Attendee) {
633 633
                         EE_Error::add_error(
634 634
                             sprintf(
635 635
                                 esc_html_x(
@@ -679,7 +679,7 @@  discard block
 block discarded – undo
679 679
                     __LINE__
680 680
                 );
681 681
                 // remove malformed data
682
-                unset($valid_data[ $reg_url_link ]);
682
+                unset($valid_data[$reg_url_link]);
683 683
                 return false;
684 684
             }
685 685
         } // end of foreach ( $this->checkout->transaction->registrations()  as $registration )
@@ -732,10 +732,10 @@  discard block
 block discarded – undo
732 732
          * @see https://events.codebasehq.com/projects/event-espresso/tickets/10477
733 733
          */
734 734
         $answer_cache_id = $this->checkout->reg_url_link
735
-            ? $form_input . '-' . $registration->reg_url_link()
735
+            ? $form_input.'-'.$registration->reg_url_link()
736 736
             : $form_input;
737
-        $answer_is_obj = isset($this->_registration_answers[ $answer_cache_id ])
738
-                         && $this->_registration_answers[ $answer_cache_id ] instanceof EE_Answer;
737
+        $answer_is_obj = isset($this->_registration_answers[$answer_cache_id])
738
+                         && $this->_registration_answers[$answer_cache_id] instanceof EE_Answer;
739 739
         // rename form_inputs if they are EE_Attendee properties
740 740
         switch ((string) $form_input) {
741 741
             case 'state':
@@ -751,28 +751,28 @@  discard block
 block discarded – undo
751 751
                 break;
752 752
 
753 753
             default:
754
-                $ATT_input = 'ATT_' . $form_input;
754
+                $ATT_input = 'ATT_'.$form_input;
755 755
                 // EEH_Debug_Tools::printr( $ATT_input, '$ATT_input', __FILE__, __LINE__ );
756 756
                 $attendee_property = EEM_Attendee::instance()->has_field($ATT_input) ? true : false;
757
-                $form_input = $attendee_property ? 'ATT_' . $form_input : $form_input;
757
+                $form_input = $attendee_property ? 'ATT_'.$form_input : $form_input;
758 758
         }
759 759
         // EEH_Debug_Tools::printr( $answer_cache_id, '$answer_cache_id', __FILE__, __LINE__ );
760 760
         // EEH_Debug_Tools::printr( $attendee_property, '$attendee_property', __FILE__, __LINE__ );
761 761
         // EEH_Debug_Tools::printr( $answer_is_obj, '$answer_is_obj', __FILE__, __LINE__ );
762 762
         // if this form input has a corresponding attendee property
763 763
         if ($attendee_property) {
764
-            $this->_attendee_data[ $registration->reg_url_link() ][ $form_input ] = $input_value;
764
+            $this->_attendee_data[$registration->reg_url_link()][$form_input] = $input_value;
765 765
             if ($answer_is_obj) {
766 766
                 // and delete the corresponding answer since we won't be storing this data in that object
767
-                $registration->_remove_relation_to($this->_registration_answers[ $answer_cache_id ], 'Answer');
768
-                $this->_registration_answers[ $answer_cache_id ]->delete_permanently();
767
+                $registration->_remove_relation_to($this->_registration_answers[$answer_cache_id], 'Answer');
768
+                $this->_registration_answers[$answer_cache_id]->delete_permanently();
769 769
             }
770 770
             return true;
771 771
         }
772 772
         if ($answer_is_obj) {
773 773
             // save this data to the answer object
774
-            $this->_registration_answers[ $answer_cache_id ]->set_value($input_value);
775
-            $result = $this->_registration_answers[ $answer_cache_id ]->save();
774
+            $this->_registration_answers[$answer_cache_id]->set_value($input_value);
775
+            $result = $this->_registration_answers[$answer_cache_id]->save();
776 776
             return $result !== false;
777 777
         }
778 778
         foreach ($this->_registration_answers as $answer) {
@@ -799,7 +799,7 @@  discard block
 block discarded – undo
799 799
     ) {
800 800
         if (empty($input_value)) {
801 801
             // if the form input isn't marked as being required, then just return
802
-            if (! isset($this->_required_questions[ $form_input ]) || ! $this->_required_questions[ $form_input ]) {
802
+            if ( ! isset($this->_required_questions[$form_input]) || ! $this->_required_questions[$form_input]) {
803 803
                 return true;
804 804
             }
805 805
             switch ($form_input) {
@@ -913,10 +913,10 @@  discard block
 block discarded – undo
913 913
         }
914 914
         foreach ($critical_attendee_details as $critical_attendee_detail) {
915 915
             if (
916
-                ! isset($attendee_data[ $critical_attendee_detail ])
917
-                || empty($attendee_data[ $critical_attendee_detail ])
916
+                ! isset($attendee_data[$critical_attendee_detail])
917
+                || empty($attendee_data[$critical_attendee_detail])
918 918
             ) {
919
-                $attendee_data[ $critical_attendee_detail ] = $this->checkout->primary_attendee_obj->get(
919
+                $attendee_data[$critical_attendee_detail] = $this->checkout->primary_attendee_obj->get(
920 920
                     $critical_attendee_detail
921 921
                 );
922 922
             }
Please login to merge, or discard this patch.
core/domain/services/registration/form/LegacyRegistrationForm.php 2 patches
Indentation   +610 added lines, -610 removed lines patch added patch discarded remove patch
@@ -45,614 +45,614 @@
 block discarded – undo
45 45
 {
46 46
 
47 47
 
48
-    /**
49
-     * @var bool
50
-     */
51
-    private $print_copy_info;
52
-
53
-    /**
54
-     * @var EE_Registration_Config
55
-     */
56
-    public $reg_config;
57
-
58
-    /**
59
-     * @var int
60
-     */
61
-    protected $reg_form_count = 0;
62
-
63
-
64
-    /**
65
-     * @var EE_SPCO_Reg_Step_Attendee_Information
66
-     */
67
-    public $reg_step;
68
-
69
-    /**
70
-     * @var array
71
-     */
72
-    private $required_questions = [];
73
-
74
-    /**
75
-     * @var array
76
-     */
77
-    private $template_args = [];
78
-
79
-
80
-    /**
81
-     * LegacyRegistrationForm constructor.
82
-     *
83
-     * @param EE_SPCO_Reg_Step_Attendee_Information $reg_step
84
-     * @param EE_Registration_Config                $reg_config
85
-     * @throws ReflectionException
86
-     * @throws EE_Error
87
-     */
88
-    public function __construct(EE_SPCO_Reg_Step_Attendee_Information $reg_step, EE_Registration_Config $reg_config)
89
-    {
90
-        $this->reg_step        = $reg_step;
91
-        $this->reg_config      = $reg_config;
92
-        $this->print_copy_info = $reg_config->copyAttendeeInfo();
93
-        LoaderFactory::getLoader()->getShared(CountryOptions::class, [$this->reg_step->checkout->action]);
94
-        LoaderFactory::getLoader()->getShared(StateOptions::class, [$this->reg_step->checkout->action]);
95
-        parent::__construct(
96
-            [
97
-                'name'            => $this->reg_step->reg_form_name(),
98
-                'html_id'         => $this->reg_step->reg_form_name(),
99
-                'subsections'     => $this->generateSubsections(),
100
-                'layout_strategy' => new EE_Template_Layout(
101
-                    [
102
-                        'layout_template_file' => $this->reg_step->template(), // layout_template
103
-                        'template_args'        => $this->template_args,
104
-                    ]
105
-                ),
106
-            ]
107
-        );
108
-    }
109
-
110
-
111
-    /**
112
-     * @return bool
113
-     */
114
-    public function printCopyInfo(): bool
115
-    {
116
-        return $this->print_copy_info;
117
-    }
118
-
119
-
120
-    /**
121
-     * @return int
122
-     */
123
-    public function regFormCount(): int
124
-    {
125
-        return $this->reg_form_count;
126
-    }
127
-
128
-
129
-    /**
130
-     * @return array
131
-     */
132
-    public function requiredQuestions(): array
133
-    {
134
-        return $this->required_questions;
135
-    }
136
-
137
-
138
-    /**
139
-     * @return EE_Form_Section_Proper[]
140
-     * @throws DomainException
141
-     * @throws EE_Error
142
-     * @throws InvalidArgumentException
143
-     * @throws ReflectionException
144
-     * @throws EntityNotFoundException
145
-     * @throws InvalidDataTypeException
146
-     * @throws InvalidInterfaceException
147
-     */
148
-    public function generateSubsections(): array
149
-    {
150
-        // Init reg forms count.
151
-        $this->reg_form_count = 0;
152
-
153
-        $primary_registrant = null;
154
-        // autoload Line_Item_Display classes
155
-        EEH_Autoloader::register_line_item_display_autoloaders();
156
-        $Line_Item_Display = new EE_Line_Item_Display();
157
-        // calculate taxes
158
-        $Line_Item_Display->display_line_item(
159
-            $this->reg_step->checkout->cart->get_grand_total(),
160
-            ['set_tax_rate' => true]
161
-        );
162
-        $extra_inputs_section = $this->reg_step->reg_step_hidden_inputs();
163
-        $this->addPrivacyConsentCheckbox($extra_inputs_section);
164
-        $subsections = [
165
-            'default_hidden_inputs' => $extra_inputs_section,
166
-        ];
167
-
168
-        $this->template_args = [
169
-            'revisit'       => $this->reg_step->checkout->revisit,
170
-            'registrations' => [],
171
-            'ticket_count'  => [],
172
-        ];
173
-        // grab the saved registrations from the transaction
174
-        $registrations
175
-            = $this->reg_step->checkout->transaction->registrations($this->reg_step->checkout->reg_cache_where_params);
176
-        if ($registrations) {
177
-            foreach ($registrations as $registration) {
178
-                // can this registration be processed during this visit ?
179
-                if (
180
-                    $registration instanceof EE_Registration
181
-                    && $this->reg_step->checkout->visit_allows_processing_of_this_registration($registration)
182
-                ) {
183
-                    $reg_url_link                                                         = $registration->reg_url_link();
184
-                    $subsections[ $reg_url_link ]
185
-                                                                                          = $this->getRegForm($registration);
186
-                    $this->template_args['registrations'][ $reg_url_link ]                = $registration;
187
-                    $this->template_args['ticket_count'][ $registration->ticket()->ID() ] = isset(
188
-                        $this->template_args['ticket_count'][ $registration->ticket()->ID() ]
189
-                    )
190
-                        ? $this->template_args['ticket_count'][ $registration->ticket()->ID() ] + 1
191
-                        : 1;
192
-                    $ticket_line_item
193
-                                                                                          = EEH_Line_Item::get_line_items_by_object_type_and_IDs(
194
-                        $this->reg_step->checkout->cart->get_grand_total(),
195
-                        'Ticket',
196
-                        [$registration->ticket()->ID()]
197
-                    );
198
-                    $ticket_line_item                                                     = is_array($ticket_line_item)
199
-                        ? reset($ticket_line_item)
200
-                        : $ticket_line_item;
201
-                    $this->template_args['ticket_line_item'][ $registration->ticket()->ID() ]
202
-                                                                                          = $Line_Item_Display->display_line_item($ticket_line_item);
203
-                    if ($registration->is_primary_registrant()) {
204
-                        $primary_registrant = $reg_url_link;
205
-                    }
206
-                }
207
-            }
208
-
209
-            if ($primary_registrant && count($registrations) > 1) {
210
-                $copy_options['spco_copy_attendee_chk'] = $this->print_copy_info
211
-                    ? new LegacyCopyAttendeeInfoForm($registrations, $this->reg_step->slug())
212
-                    : new LegacyAutoCopyAttendeeInfoForm($this->reg_step->slug());
213
-                // generate hidden input
214
-                if (
215
-                    isset($subsections[ $primary_registrant ])
216
-                    && $subsections[ $primary_registrant ] instanceof EE_Form_Section_Proper
217
-                ) {
218
-                    $subsections[ $primary_registrant ]->add_subsections(
219
-                        $copy_options,
220
-                        'primary_registrant',
221
-                        false
222
-                    );
223
-                }
224
-            }
225
-        }
226
-
227
-        // Set the registration form template (default: one form per ticket details table).
228
-        // We decide the template to used based on the number of forms.
229
-        $template = $this->reg_form_count > 1
230
-            ? SPCO_REG_STEPS_PATH . $this->reg_step->slug() . '/attendee_info_main.template.php'
231
-            : SPCO_REG_STEPS_PATH . $this->reg_step->slug() . '/attendee_info_single.template.php';
232
-        $this->reg_step->setTemplate($template);
233
-
234
-        return $subsections;
235
-    }
236
-
237
-
238
-    /**
239
-     * @param EE_Form_Section_Proper $extra_inputs_section
240
-     * @throws EE_Error
241
-     */
242
-    private function addPrivacyConsentCheckbox(EE_Form_Section_Proper $extra_inputs_section)
243
-    {
244
-        // if this isn't a revisit, and they have the privacy consent box enabled, add it
245
-        if (! $this->reg_step->checkout->revisit && $this->reg_config->isConsentCheckboxEnabled()) {
246
-            $extra_inputs_section->add_subsections(
247
-                [
248
-                    'consent_box' => new EE_Form_Section_Proper(
249
-                        [
250
-                            'layout_strategy' =>
251
-                                new EE_Template_Layout(
252
-                                    [
253
-                                        'input_template_file' => SPCO_REG_STEPS_PATH
254
-                                                                 . $this->reg_step->slug()
255
-                                                                 . '/privacy_consent.template.php',
256
-                                    ]
257
-                                ),
258
-                            'subsections'     => [
259
-                                'consent' => new EE_Checkbox_Multi_Input(
260
-                                    [
261
-                                        'consent' => $this->reg_config->getConsentCheckboxLabelText(),
262
-                                    ],
263
-                                    [
264
-                                        'required'                          => true,
265
-                                        'required_validation_error_message' => esc_html__(
266
-                                            'You must consent to these terms in order to register.',
267
-                                            'event_espresso'
268
-                                        ),
269
-                                        'html_label_text'                   => '',
270
-                                    ]
271
-                                ),
272
-                            ],
273
-                        ]
274
-                    ),
275
-                ],
276
-                null,
277
-                false
278
-            );
279
-        }
280
-    }
281
-
282
-
283
-    /**
284
-     * @param EE_Registration $registration
285
-     * @return EE_Form_Section_Base
286
-     * @throws EE_Error
287
-     * @throws InvalidArgumentException
288
-     * @throws EntityNotFoundException
289
-     * @throws InvalidDataTypeException
290
-     * @throws InvalidInterfaceException
291
-     * @throws ReflectionException
292
-     */
293
-    public function getRegForm(EE_Registration $registration)
294
-    {
295
-        static $attendee_nmbr = 1;
296
-        $form_args = [];
297
-        // verify that registration has valid event
298
-        if ($registration->event() instanceof EE_Event) {
299
-            $field_name      = 'Event_Question_Group.'
300
-                               . EEM_Event_Question_Group::instance()->fieldNameForContext(
301
-                    $registration->is_primary_registrant()
302
-                );
303
-            $question_groups = $registration->event()->question_groups(
304
-                apply_filters(
305
-                // @codingStandardsIgnoreStart
306
-                    'FHEE__EE_SPCO_Reg_Step_Attendee_Information___registrations_reg_form__question_groups_query_parameters',
307
-                    // @codingStandardsIgnoreEnd
308
-                    [
309
-                        [
310
-                            'Event.EVT_ID' => $registration->event()->ID(),
311
-                            $field_name    => true,
312
-                        ],
313
-                        'order_by' => ['QSG_order' => 'ASC'],
314
-                    ],
315
-                    $registration,
316
-                    $this
317
-                )
318
-            );
319
-            if ($question_groups) {
320
-                // array of params to pass to parent constructor
321
-                $form_args = [
322
-                    'html_id'         => 'ee-registration-' . $registration->reg_url_link(),
323
-                    'html_class'      => 'ee-reg-form-attendee-dv',
324
-                    'html_style'      => $this->reg_step->checkout->admin_request
325
-                        ? 'padding:0em 2em 1em; margin:3em 0 0; border:1px solid #ddd;'
326
-                        : '',
327
-                    'subsections'     => [],
328
-                    'layout_strategy' => new EE_Fieldset_Section_Layout(
329
-                        [
330
-                            'legend_class' => 'spco-attendee-lgnd smaller-text lt-grey-text',
331
-                            'legend_text'  => sprintf(
332
-                                esc_html_x(
333
-                                    'Attendee %d',
334
-                                    'Attendee 123',
335
-                                    'event_espresso'
336
-                                ),
337
-                                $attendee_nmbr
338
-                            ),
339
-                        ]
340
-                    ),
341
-                ];
342
-                foreach ($question_groups as $question_group) {
343
-                    if ($question_group instanceof EE_Question_Group) {
344
-                        $form_args['subsections'][ $question_group->identifier() ] = $this->questionGroupRegForm(
345
-                            $registration,
346
-                            $question_group
347
-                        );
348
-                    }
349
-                }
350
-                // add hidden input
351
-                $form_args['subsections']['additional_attendee_reg_info'] = $this->additionalAttendeeRegInfoInput(
352
-                    $registration
353
-                );
354
-
355
-                /**
356
-                 * @var $reg_config EE_Registration_Config
357
-                 */
358
-                $reg_config = LoaderFactory::getLoader()->getShared('EE_Registration_Config');
359
-
360
-                // If we have question groups for additional attendees, then display the copy options
361
-                $this->print_copy_info = apply_filters(
362
-                    'FHEE__EE_SPCO_Reg_Step_Attendee_Information___registrations_reg_form___printCopyInfo',
363
-                    $attendee_nmbr > 1 && $reg_config->copyAttendeeInfo(),
364
-                    $attendee_nmbr
365
-                );
366
-
367
-                if ($registration->is_primary_registrant()) {
368
-                    // generate hidden input
369
-                    $form_args['subsections']['primary_registrant'] = $this->additionalPrimaryRegistrantInputs(
370
-                        $registration
371
-                    );
372
-                }
373
-            }
374
-        }
375
-        $attendee_nmbr++;
376
-
377
-        // Increment the reg forms number if form is valid.
378
-        if (! empty($form_args)) {
379
-            $this->reg_form_count++;
380
-        }
381
-
382
-        return ! empty($form_args)
383
-            ? new EE_Form_Section_Proper($form_args)
384
-            : new EE_Form_Section_HTML();
385
-    }
386
-
387
-
388
-    /**
389
-     * @param EE_Registration $registration
390
-     * @return EE_Form_Input_Base
391
-     * @throws EE_Error
392
-     */
393
-    private function additionalAttendeeRegInfoInput(EE_Registration $registration)
394
-    {
395
-        // generate hidden input
396
-        return new EE_Hidden_Input(
397
-            [
398
-                'html_id' => 'additional-attendee-reg-info-' . $registration->reg_url_link(),
399
-                'default' => true,
400
-            ]
401
-        );
402
-    }
403
-
404
-
405
-    /**
406
-     * @param EE_Registration   $registration
407
-     * @param EE_Question_Group $question_group
408
-     * @return EE_Form_Section_Proper
409
-     * @throws EE_Error
410
-     * @throws InvalidArgumentException
411
-     * @throws InvalidDataTypeException
412
-     * @throws InvalidInterfaceException
413
-     * @throws ReflectionException
414
-     */
415
-    private function questionGroupRegForm(
416
-        EE_Registration $registration,
417
-        EE_Question_Group $question_group
418
-    ): EE_Form_Section_Proper {
419
-        // array of params to pass to parent constructor
420
-        $form_args = [
421
-            'html_id'         => 'ee-reg-form-qstn-grp-' . $question_group->identifier() . '-' . $registration->ID(),
422
-            'html_class'      => $this->reg_step->checkout->admin_request
423
-                ? 'form-table ee-reg-form-qstn-grp-dv'
424
-                : 'ee-reg-form-qstn-grp-dv',
425
-            'html_label_id'   => 'ee-reg-form-qstn-grp-' . $question_group->identifier() . '-'
426
-                                 . $registration->ID() . '-lbl',
427
-            'subsections'     => [
428
-                'reg_form_qstn_grp_hdr' => $this->questionGroupHeader($question_group),
429
-            ],
430
-            'layout_strategy' => $this->reg_step->checkout->admin_request
431
-                ? new EE_Admin_Two_Column_Layout()
432
-                : new EE_Div_Per_Section_Layout(),
433
-        ];
434
-        // where params
435
-        $query_params = ['QST_deleted' => 0];
436
-        // don't load admin only questions on the frontend
437
-        if (! $this->reg_step->checkout->admin_request) {
438
-            $query_params['QST_admin_only'] = ['!=', true];
439
-        }
440
-        $questions = $question_group->get_many_related(
441
-            'Question',
442
-            apply_filters(
443
-                'FHEE__EE_SPCO_Reg_Step_Attendee_Information___question_group_reg_form__related_questions_query_params',
444
-                [
445
-                    $query_params,
446
-                    'order_by' => [
447
-                        'Question_Group_Question.QGQ_order' => 'ASC',
448
-                    ],
449
-                ],
450
-                $question_group,
451
-                $registration,
452
-                $this
453
-            )
454
-        );
455
-        // filter for additional content before questions
456
-        $form_args['subsections']['reg_form_questions_before'] = new EE_Form_Section_HTML(
457
-            apply_filters(
458
-                'FHEE__EEH_Form_Fields__generate_question_groups_html__before_question_group_questions',
459
-                '',
460
-                $registration,
461
-                $question_group,
462
-                $this
463
-            )
464
-        );
465
-        // loop thru questions
466
-        foreach ($questions as $question) {
467
-            if ($question instanceof EE_Question) {
468
-                $identifier                              = $question->is_system_question()
469
-                    ? $question->system_ID()
470
-                    : $question->ID();
471
-                $form_args['subsections'][ $identifier ] = $this->regFormQuestion($registration, $question);
472
-            }
473
-        }
474
-        $form_args['subsections'] = apply_filters(
475
-            'FHEE__EE_SPCO_Reg_Step_Attendee_Information__question_group_reg_form__subsections_array',
476
-            $form_args['subsections'],
477
-            $registration,
478
-            $question_group,
479
-            $this
480
-        );
481
-        // filter for additional content after questions
482
-        $form_args['subsections']['reg_form_questions_after'] = new EE_Form_Section_HTML(
483
-            apply_filters(
484
-                'FHEE__EEH_Form_Fields__generate_question_groups_html__after_question_group_questions',
485
-                '',
486
-                $registration,
487
-                $question_group,
488
-                $this
489
-            )
490
-        );
491
-        // d($form_args);
492
-        $question_group_reg_form = new EE_Form_Section_Proper($form_args);
493
-        return apply_filters(
494
-            'FHEE__EE_SPCO_Reg_Step_Attendee_Information___question_group_reg_form__question_group_reg_form',
495
-            $question_group_reg_form,
496
-            $registration,
497
-            $question_group,
498
-            $this
499
-        );
500
-    }
501
-
502
-
503
-    /**
504
-     * @param EE_Question_Group $question_group
505
-     * @return    EE_Form_Section_HTML
506
-     */
507
-    private function questionGroupHeader(EE_Question_Group $question_group): EE_Form_Section_HTML
508
-    {
509
-        $html = '';
510
-        // group_name
511
-        if ($question_group->show_group_name() && $question_group->name() !== '') {
512
-            if ($this->reg_step->checkout->admin_request) {
513
-                $html .= EEH_HTML::br();
514
-                $html .= EEH_HTML::h3(
515
-                    $question_group->name(),
516
-                    '',
517
-                    'ee-reg-form-qstn-grp-title title',
518
-                    'font-size: 1.3em; padding-left:0;'
519
-                );
520
-            } else {
521
-                $html .= EEH_HTML::h4(
522
-                    $question_group->name(),
523
-                    '',
524
-                    'ee-reg-form-qstn-grp-title section-title'
525
-                );
526
-            }
527
-        }
528
-        // group_desc
529
-        if ($question_group->show_group_desc() && $question_group->desc() !== '') {
530
-            $html .= EEH_HTML::p(
531
-                $question_group->desc(),
532
-                '',
533
-                $this->reg_step->checkout->admin_request
534
-                    ? 'ee-reg-form-qstn-grp-desc-pg'
535
-                    : 'ee-reg-form-qstn-grp-desc-pg small-text lt-grey-text'
536
-            );
537
-        }
538
-        return new EE_Form_Section_HTML($html);
539
-    }
540
-
541
-
542
-    /**
543
-     * @param EE_Registration $registration
544
-     * @return    EE_Form_Input_Base
545
-     * @throws EE_Error
546
-     */
547
-    private function additionalPrimaryRegistrantInputs(EE_Registration $registration)
548
-    {
549
-        // generate hidden input
550
-        return new EE_Hidden_Input(
551
-            [
552
-                'html_id' => 'primary_registrant',
553
-                'default' => $registration->reg_url_link(),
554
-            ]
555
-        );
556
-    }
557
-
558
-
559
-    /**
560
-     * @param EE_Registration $registration
561
-     * @param EE_Question     $question
562
-     * @return EE_Form_Input_Base
563
-     * @throws EE_Error
564
-     * @throws InvalidArgumentException
565
-     * @throws InvalidDataTypeException
566
-     * @throws InvalidInterfaceException
567
-     * @throws ReflectionException
568
-     */
569
-    public function regFormQuestion(EE_Registration $registration, EE_Question $question): EE_Form_Input_Base
570
-    {
571
-
572
-        // if this question was for an attendee detail, then check for that answer
573
-        $answer_value = EEM_Answer::instance()->get_attendee_property_answer_value(
574
-            $registration,
575
-            $question->system_ID()
576
-        );
577
-        $answer       = $answer_value === null
578
-            ? EEM_Answer::instance()->get_one(
579
-                [['QST_ID' => $question->ID(), 'REG_ID' => $registration->ID()]]
580
-            )
581
-            : null;
582
-        // if NOT returning to edit an existing registration
583
-        // OR if this question is for an attendee property
584
-        // OR we still don't have an EE_Answer object
585
-        if ($answer_value || ! $answer instanceof EE_Answer || ! $registration->reg_url_link()) {
586
-            // create an EE_Answer object for storing everything in
587
-            $answer = EE_Answer::new_instance(
588
-                [
589
-                    'QST_ID' => $question->ID(),
590
-                    'REG_ID' => $registration->ID(),
591
-                ]
592
-            );
593
-        }
594
-        // verify instance
595
-        if ($answer instanceof EE_Answer) {
596
-            if (! empty($answer_value)) {
597
-                $answer->set('ANS_value', $answer_value);
598
-            }
599
-            $answer->cache('Question', $question);
600
-            // remember system ID had a bug where sometimes it could be null
601
-            $answer_cache_id = $question->is_system_question()
602
-                ? $question->system_ID() . '-' . $registration->reg_url_link()
603
-                : $question->ID() . '-' . $registration->reg_url_link();
604
-            $registration->cache('Answer', $answer, $answer_cache_id);
605
-        }
606
-        return $this->generateQuestionInput($registration, $question, $answer);
607
-    }
608
-
609
-
610
-    /**
611
-     * @param EE_Registration $registration
612
-     * @param EE_Question     $question
613
-     * @param                 $answer
614
-     * @return EE_Form_Input_Base
615
-     * @throws EE_Error
616
-     * @throws InvalidArgumentException
617
-     * @throws ReflectionException
618
-     * @throws InvalidDataTypeException
619
-     * @throws InvalidInterfaceException
620
-     */
621
-    private function generateQuestionInput(
622
-        EE_Registration $registration,
623
-        EE_Question $question,
624
-        $answer
625
-    ): EE_Form_Input_Base {
626
-        $identifier                              = $question->is_system_question()
627
-            ? $question->system_ID()
628
-            : $question->ID();
629
-        $this->required_questions[ $identifier ] = $question->required();
630
-        $input_constructor_args                  = [
631
-            'html_name'        => 'ee_reg_qstn[' . $registration->ID() . '][' . $identifier . ']',
632
-            'html_id'          => 'ee_reg_qstn-' . $registration->ID() . '-' . $identifier,
633
-            'html_class'       => 'ee-reg-qstn ee-reg-qstn-' . $identifier,
634
-            'html_label_id'    => 'ee_reg_qstn-' . $registration->ID() . '-' . $identifier,
635
-            'html_label_class' => 'ee-reg-qstn',
636
-        ];
637
-        $input_constructor_args['html_label_id'] .= '-lbl';
638
-        if ($answer instanceof EE_Answer && $answer->ID()) {
639
-            $input_constructor_args['html_name']     .= '[' . $answer->ID() . ']';
640
-            $input_constructor_args['html_id']       .= '-' . $answer->ID();
641
-            $input_constructor_args['html_label_id'] .= '-' . $answer->ID();
642
-        }
643
-        $form_input = $question->generate_form_input(
644
-            $registration,
645
-            $answer,
646
-            $input_constructor_args
647
-        );
648
-        remove_filter(
649
-            'FHEE__EE_Question__generate_form_input__country_options',
650
-            [$this, 'use_cached_countries_for_form_input']
651
-        );
652
-        remove_filter(
653
-            'FHEE__EE_Question__generate_form_input__state_options',
654
-            [$this, 'use_cached_states_for_form_input']
655
-        );
656
-        return $form_input;
657
-    }
48
+	/**
49
+	 * @var bool
50
+	 */
51
+	private $print_copy_info;
52
+
53
+	/**
54
+	 * @var EE_Registration_Config
55
+	 */
56
+	public $reg_config;
57
+
58
+	/**
59
+	 * @var int
60
+	 */
61
+	protected $reg_form_count = 0;
62
+
63
+
64
+	/**
65
+	 * @var EE_SPCO_Reg_Step_Attendee_Information
66
+	 */
67
+	public $reg_step;
68
+
69
+	/**
70
+	 * @var array
71
+	 */
72
+	private $required_questions = [];
73
+
74
+	/**
75
+	 * @var array
76
+	 */
77
+	private $template_args = [];
78
+
79
+
80
+	/**
81
+	 * LegacyRegistrationForm constructor.
82
+	 *
83
+	 * @param EE_SPCO_Reg_Step_Attendee_Information $reg_step
84
+	 * @param EE_Registration_Config                $reg_config
85
+	 * @throws ReflectionException
86
+	 * @throws EE_Error
87
+	 */
88
+	public function __construct(EE_SPCO_Reg_Step_Attendee_Information $reg_step, EE_Registration_Config $reg_config)
89
+	{
90
+		$this->reg_step        = $reg_step;
91
+		$this->reg_config      = $reg_config;
92
+		$this->print_copy_info = $reg_config->copyAttendeeInfo();
93
+		LoaderFactory::getLoader()->getShared(CountryOptions::class, [$this->reg_step->checkout->action]);
94
+		LoaderFactory::getLoader()->getShared(StateOptions::class, [$this->reg_step->checkout->action]);
95
+		parent::__construct(
96
+			[
97
+				'name'            => $this->reg_step->reg_form_name(),
98
+				'html_id'         => $this->reg_step->reg_form_name(),
99
+				'subsections'     => $this->generateSubsections(),
100
+				'layout_strategy' => new EE_Template_Layout(
101
+					[
102
+						'layout_template_file' => $this->reg_step->template(), // layout_template
103
+						'template_args'        => $this->template_args,
104
+					]
105
+				),
106
+			]
107
+		);
108
+	}
109
+
110
+
111
+	/**
112
+	 * @return bool
113
+	 */
114
+	public function printCopyInfo(): bool
115
+	{
116
+		return $this->print_copy_info;
117
+	}
118
+
119
+
120
+	/**
121
+	 * @return int
122
+	 */
123
+	public function regFormCount(): int
124
+	{
125
+		return $this->reg_form_count;
126
+	}
127
+
128
+
129
+	/**
130
+	 * @return array
131
+	 */
132
+	public function requiredQuestions(): array
133
+	{
134
+		return $this->required_questions;
135
+	}
136
+
137
+
138
+	/**
139
+	 * @return EE_Form_Section_Proper[]
140
+	 * @throws DomainException
141
+	 * @throws EE_Error
142
+	 * @throws InvalidArgumentException
143
+	 * @throws ReflectionException
144
+	 * @throws EntityNotFoundException
145
+	 * @throws InvalidDataTypeException
146
+	 * @throws InvalidInterfaceException
147
+	 */
148
+	public function generateSubsections(): array
149
+	{
150
+		// Init reg forms count.
151
+		$this->reg_form_count = 0;
152
+
153
+		$primary_registrant = null;
154
+		// autoload Line_Item_Display classes
155
+		EEH_Autoloader::register_line_item_display_autoloaders();
156
+		$Line_Item_Display = new EE_Line_Item_Display();
157
+		// calculate taxes
158
+		$Line_Item_Display->display_line_item(
159
+			$this->reg_step->checkout->cart->get_grand_total(),
160
+			['set_tax_rate' => true]
161
+		);
162
+		$extra_inputs_section = $this->reg_step->reg_step_hidden_inputs();
163
+		$this->addPrivacyConsentCheckbox($extra_inputs_section);
164
+		$subsections = [
165
+			'default_hidden_inputs' => $extra_inputs_section,
166
+		];
167
+
168
+		$this->template_args = [
169
+			'revisit'       => $this->reg_step->checkout->revisit,
170
+			'registrations' => [],
171
+			'ticket_count'  => [],
172
+		];
173
+		// grab the saved registrations from the transaction
174
+		$registrations
175
+			= $this->reg_step->checkout->transaction->registrations($this->reg_step->checkout->reg_cache_where_params);
176
+		if ($registrations) {
177
+			foreach ($registrations as $registration) {
178
+				// can this registration be processed during this visit ?
179
+				if (
180
+					$registration instanceof EE_Registration
181
+					&& $this->reg_step->checkout->visit_allows_processing_of_this_registration($registration)
182
+				) {
183
+					$reg_url_link                                                         = $registration->reg_url_link();
184
+					$subsections[ $reg_url_link ]
185
+																						  = $this->getRegForm($registration);
186
+					$this->template_args['registrations'][ $reg_url_link ]                = $registration;
187
+					$this->template_args['ticket_count'][ $registration->ticket()->ID() ] = isset(
188
+						$this->template_args['ticket_count'][ $registration->ticket()->ID() ]
189
+					)
190
+						? $this->template_args['ticket_count'][ $registration->ticket()->ID() ] + 1
191
+						: 1;
192
+					$ticket_line_item
193
+																						  = EEH_Line_Item::get_line_items_by_object_type_and_IDs(
194
+						$this->reg_step->checkout->cart->get_grand_total(),
195
+						'Ticket',
196
+						[$registration->ticket()->ID()]
197
+					);
198
+					$ticket_line_item                                                     = is_array($ticket_line_item)
199
+						? reset($ticket_line_item)
200
+						: $ticket_line_item;
201
+					$this->template_args['ticket_line_item'][ $registration->ticket()->ID() ]
202
+																						  = $Line_Item_Display->display_line_item($ticket_line_item);
203
+					if ($registration->is_primary_registrant()) {
204
+						$primary_registrant = $reg_url_link;
205
+					}
206
+				}
207
+			}
208
+
209
+			if ($primary_registrant && count($registrations) > 1) {
210
+				$copy_options['spco_copy_attendee_chk'] = $this->print_copy_info
211
+					? new LegacyCopyAttendeeInfoForm($registrations, $this->reg_step->slug())
212
+					: new LegacyAutoCopyAttendeeInfoForm($this->reg_step->slug());
213
+				// generate hidden input
214
+				if (
215
+					isset($subsections[ $primary_registrant ])
216
+					&& $subsections[ $primary_registrant ] instanceof EE_Form_Section_Proper
217
+				) {
218
+					$subsections[ $primary_registrant ]->add_subsections(
219
+						$copy_options,
220
+						'primary_registrant',
221
+						false
222
+					);
223
+				}
224
+			}
225
+		}
226
+
227
+		// Set the registration form template (default: one form per ticket details table).
228
+		// We decide the template to used based on the number of forms.
229
+		$template = $this->reg_form_count > 1
230
+			? SPCO_REG_STEPS_PATH . $this->reg_step->slug() . '/attendee_info_main.template.php'
231
+			: SPCO_REG_STEPS_PATH . $this->reg_step->slug() . '/attendee_info_single.template.php';
232
+		$this->reg_step->setTemplate($template);
233
+
234
+		return $subsections;
235
+	}
236
+
237
+
238
+	/**
239
+	 * @param EE_Form_Section_Proper $extra_inputs_section
240
+	 * @throws EE_Error
241
+	 */
242
+	private function addPrivacyConsentCheckbox(EE_Form_Section_Proper $extra_inputs_section)
243
+	{
244
+		// if this isn't a revisit, and they have the privacy consent box enabled, add it
245
+		if (! $this->reg_step->checkout->revisit && $this->reg_config->isConsentCheckboxEnabled()) {
246
+			$extra_inputs_section->add_subsections(
247
+				[
248
+					'consent_box' => new EE_Form_Section_Proper(
249
+						[
250
+							'layout_strategy' =>
251
+								new EE_Template_Layout(
252
+									[
253
+										'input_template_file' => SPCO_REG_STEPS_PATH
254
+																 . $this->reg_step->slug()
255
+																 . '/privacy_consent.template.php',
256
+									]
257
+								),
258
+							'subsections'     => [
259
+								'consent' => new EE_Checkbox_Multi_Input(
260
+									[
261
+										'consent' => $this->reg_config->getConsentCheckboxLabelText(),
262
+									],
263
+									[
264
+										'required'                          => true,
265
+										'required_validation_error_message' => esc_html__(
266
+											'You must consent to these terms in order to register.',
267
+											'event_espresso'
268
+										),
269
+										'html_label_text'                   => '',
270
+									]
271
+								),
272
+							],
273
+						]
274
+					),
275
+				],
276
+				null,
277
+				false
278
+			);
279
+		}
280
+	}
281
+
282
+
283
+	/**
284
+	 * @param EE_Registration $registration
285
+	 * @return EE_Form_Section_Base
286
+	 * @throws EE_Error
287
+	 * @throws InvalidArgumentException
288
+	 * @throws EntityNotFoundException
289
+	 * @throws InvalidDataTypeException
290
+	 * @throws InvalidInterfaceException
291
+	 * @throws ReflectionException
292
+	 */
293
+	public function getRegForm(EE_Registration $registration)
294
+	{
295
+		static $attendee_nmbr = 1;
296
+		$form_args = [];
297
+		// verify that registration has valid event
298
+		if ($registration->event() instanceof EE_Event) {
299
+			$field_name      = 'Event_Question_Group.'
300
+							   . EEM_Event_Question_Group::instance()->fieldNameForContext(
301
+					$registration->is_primary_registrant()
302
+				);
303
+			$question_groups = $registration->event()->question_groups(
304
+				apply_filters(
305
+				// @codingStandardsIgnoreStart
306
+					'FHEE__EE_SPCO_Reg_Step_Attendee_Information___registrations_reg_form__question_groups_query_parameters',
307
+					// @codingStandardsIgnoreEnd
308
+					[
309
+						[
310
+							'Event.EVT_ID' => $registration->event()->ID(),
311
+							$field_name    => true,
312
+						],
313
+						'order_by' => ['QSG_order' => 'ASC'],
314
+					],
315
+					$registration,
316
+					$this
317
+				)
318
+			);
319
+			if ($question_groups) {
320
+				// array of params to pass to parent constructor
321
+				$form_args = [
322
+					'html_id'         => 'ee-registration-' . $registration->reg_url_link(),
323
+					'html_class'      => 'ee-reg-form-attendee-dv',
324
+					'html_style'      => $this->reg_step->checkout->admin_request
325
+						? 'padding:0em 2em 1em; margin:3em 0 0; border:1px solid #ddd;'
326
+						: '',
327
+					'subsections'     => [],
328
+					'layout_strategy' => new EE_Fieldset_Section_Layout(
329
+						[
330
+							'legend_class' => 'spco-attendee-lgnd smaller-text lt-grey-text',
331
+							'legend_text'  => sprintf(
332
+								esc_html_x(
333
+									'Attendee %d',
334
+									'Attendee 123',
335
+									'event_espresso'
336
+								),
337
+								$attendee_nmbr
338
+							),
339
+						]
340
+					),
341
+				];
342
+				foreach ($question_groups as $question_group) {
343
+					if ($question_group instanceof EE_Question_Group) {
344
+						$form_args['subsections'][ $question_group->identifier() ] = $this->questionGroupRegForm(
345
+							$registration,
346
+							$question_group
347
+						);
348
+					}
349
+				}
350
+				// add hidden input
351
+				$form_args['subsections']['additional_attendee_reg_info'] = $this->additionalAttendeeRegInfoInput(
352
+					$registration
353
+				);
354
+
355
+				/**
356
+				 * @var $reg_config EE_Registration_Config
357
+				 */
358
+				$reg_config = LoaderFactory::getLoader()->getShared('EE_Registration_Config');
359
+
360
+				// If we have question groups for additional attendees, then display the copy options
361
+				$this->print_copy_info = apply_filters(
362
+					'FHEE__EE_SPCO_Reg_Step_Attendee_Information___registrations_reg_form___printCopyInfo',
363
+					$attendee_nmbr > 1 && $reg_config->copyAttendeeInfo(),
364
+					$attendee_nmbr
365
+				);
366
+
367
+				if ($registration->is_primary_registrant()) {
368
+					// generate hidden input
369
+					$form_args['subsections']['primary_registrant'] = $this->additionalPrimaryRegistrantInputs(
370
+						$registration
371
+					);
372
+				}
373
+			}
374
+		}
375
+		$attendee_nmbr++;
376
+
377
+		// Increment the reg forms number if form is valid.
378
+		if (! empty($form_args)) {
379
+			$this->reg_form_count++;
380
+		}
381
+
382
+		return ! empty($form_args)
383
+			? new EE_Form_Section_Proper($form_args)
384
+			: new EE_Form_Section_HTML();
385
+	}
386
+
387
+
388
+	/**
389
+	 * @param EE_Registration $registration
390
+	 * @return EE_Form_Input_Base
391
+	 * @throws EE_Error
392
+	 */
393
+	private function additionalAttendeeRegInfoInput(EE_Registration $registration)
394
+	{
395
+		// generate hidden input
396
+		return new EE_Hidden_Input(
397
+			[
398
+				'html_id' => 'additional-attendee-reg-info-' . $registration->reg_url_link(),
399
+				'default' => true,
400
+			]
401
+		);
402
+	}
403
+
404
+
405
+	/**
406
+	 * @param EE_Registration   $registration
407
+	 * @param EE_Question_Group $question_group
408
+	 * @return EE_Form_Section_Proper
409
+	 * @throws EE_Error
410
+	 * @throws InvalidArgumentException
411
+	 * @throws InvalidDataTypeException
412
+	 * @throws InvalidInterfaceException
413
+	 * @throws ReflectionException
414
+	 */
415
+	private function questionGroupRegForm(
416
+		EE_Registration $registration,
417
+		EE_Question_Group $question_group
418
+	): EE_Form_Section_Proper {
419
+		// array of params to pass to parent constructor
420
+		$form_args = [
421
+			'html_id'         => 'ee-reg-form-qstn-grp-' . $question_group->identifier() . '-' . $registration->ID(),
422
+			'html_class'      => $this->reg_step->checkout->admin_request
423
+				? 'form-table ee-reg-form-qstn-grp-dv'
424
+				: 'ee-reg-form-qstn-grp-dv',
425
+			'html_label_id'   => 'ee-reg-form-qstn-grp-' . $question_group->identifier() . '-'
426
+								 . $registration->ID() . '-lbl',
427
+			'subsections'     => [
428
+				'reg_form_qstn_grp_hdr' => $this->questionGroupHeader($question_group),
429
+			],
430
+			'layout_strategy' => $this->reg_step->checkout->admin_request
431
+				? new EE_Admin_Two_Column_Layout()
432
+				: new EE_Div_Per_Section_Layout(),
433
+		];
434
+		// where params
435
+		$query_params = ['QST_deleted' => 0];
436
+		// don't load admin only questions on the frontend
437
+		if (! $this->reg_step->checkout->admin_request) {
438
+			$query_params['QST_admin_only'] = ['!=', true];
439
+		}
440
+		$questions = $question_group->get_many_related(
441
+			'Question',
442
+			apply_filters(
443
+				'FHEE__EE_SPCO_Reg_Step_Attendee_Information___question_group_reg_form__related_questions_query_params',
444
+				[
445
+					$query_params,
446
+					'order_by' => [
447
+						'Question_Group_Question.QGQ_order' => 'ASC',
448
+					],
449
+				],
450
+				$question_group,
451
+				$registration,
452
+				$this
453
+			)
454
+		);
455
+		// filter for additional content before questions
456
+		$form_args['subsections']['reg_form_questions_before'] = new EE_Form_Section_HTML(
457
+			apply_filters(
458
+				'FHEE__EEH_Form_Fields__generate_question_groups_html__before_question_group_questions',
459
+				'',
460
+				$registration,
461
+				$question_group,
462
+				$this
463
+			)
464
+		);
465
+		// loop thru questions
466
+		foreach ($questions as $question) {
467
+			if ($question instanceof EE_Question) {
468
+				$identifier                              = $question->is_system_question()
469
+					? $question->system_ID()
470
+					: $question->ID();
471
+				$form_args['subsections'][ $identifier ] = $this->regFormQuestion($registration, $question);
472
+			}
473
+		}
474
+		$form_args['subsections'] = apply_filters(
475
+			'FHEE__EE_SPCO_Reg_Step_Attendee_Information__question_group_reg_form__subsections_array',
476
+			$form_args['subsections'],
477
+			$registration,
478
+			$question_group,
479
+			$this
480
+		);
481
+		// filter for additional content after questions
482
+		$form_args['subsections']['reg_form_questions_after'] = new EE_Form_Section_HTML(
483
+			apply_filters(
484
+				'FHEE__EEH_Form_Fields__generate_question_groups_html__after_question_group_questions',
485
+				'',
486
+				$registration,
487
+				$question_group,
488
+				$this
489
+			)
490
+		);
491
+		// d($form_args);
492
+		$question_group_reg_form = new EE_Form_Section_Proper($form_args);
493
+		return apply_filters(
494
+			'FHEE__EE_SPCO_Reg_Step_Attendee_Information___question_group_reg_form__question_group_reg_form',
495
+			$question_group_reg_form,
496
+			$registration,
497
+			$question_group,
498
+			$this
499
+		);
500
+	}
501
+
502
+
503
+	/**
504
+	 * @param EE_Question_Group $question_group
505
+	 * @return    EE_Form_Section_HTML
506
+	 */
507
+	private function questionGroupHeader(EE_Question_Group $question_group): EE_Form_Section_HTML
508
+	{
509
+		$html = '';
510
+		// group_name
511
+		if ($question_group->show_group_name() && $question_group->name() !== '') {
512
+			if ($this->reg_step->checkout->admin_request) {
513
+				$html .= EEH_HTML::br();
514
+				$html .= EEH_HTML::h3(
515
+					$question_group->name(),
516
+					'',
517
+					'ee-reg-form-qstn-grp-title title',
518
+					'font-size: 1.3em; padding-left:0;'
519
+				);
520
+			} else {
521
+				$html .= EEH_HTML::h4(
522
+					$question_group->name(),
523
+					'',
524
+					'ee-reg-form-qstn-grp-title section-title'
525
+				);
526
+			}
527
+		}
528
+		// group_desc
529
+		if ($question_group->show_group_desc() && $question_group->desc() !== '') {
530
+			$html .= EEH_HTML::p(
531
+				$question_group->desc(),
532
+				'',
533
+				$this->reg_step->checkout->admin_request
534
+					? 'ee-reg-form-qstn-grp-desc-pg'
535
+					: 'ee-reg-form-qstn-grp-desc-pg small-text lt-grey-text'
536
+			);
537
+		}
538
+		return new EE_Form_Section_HTML($html);
539
+	}
540
+
541
+
542
+	/**
543
+	 * @param EE_Registration $registration
544
+	 * @return    EE_Form_Input_Base
545
+	 * @throws EE_Error
546
+	 */
547
+	private function additionalPrimaryRegistrantInputs(EE_Registration $registration)
548
+	{
549
+		// generate hidden input
550
+		return new EE_Hidden_Input(
551
+			[
552
+				'html_id' => 'primary_registrant',
553
+				'default' => $registration->reg_url_link(),
554
+			]
555
+		);
556
+	}
557
+
558
+
559
+	/**
560
+	 * @param EE_Registration $registration
561
+	 * @param EE_Question     $question
562
+	 * @return EE_Form_Input_Base
563
+	 * @throws EE_Error
564
+	 * @throws InvalidArgumentException
565
+	 * @throws InvalidDataTypeException
566
+	 * @throws InvalidInterfaceException
567
+	 * @throws ReflectionException
568
+	 */
569
+	public function regFormQuestion(EE_Registration $registration, EE_Question $question): EE_Form_Input_Base
570
+	{
571
+
572
+		// if this question was for an attendee detail, then check for that answer
573
+		$answer_value = EEM_Answer::instance()->get_attendee_property_answer_value(
574
+			$registration,
575
+			$question->system_ID()
576
+		);
577
+		$answer       = $answer_value === null
578
+			? EEM_Answer::instance()->get_one(
579
+				[['QST_ID' => $question->ID(), 'REG_ID' => $registration->ID()]]
580
+			)
581
+			: null;
582
+		// if NOT returning to edit an existing registration
583
+		// OR if this question is for an attendee property
584
+		// OR we still don't have an EE_Answer object
585
+		if ($answer_value || ! $answer instanceof EE_Answer || ! $registration->reg_url_link()) {
586
+			// create an EE_Answer object for storing everything in
587
+			$answer = EE_Answer::new_instance(
588
+				[
589
+					'QST_ID' => $question->ID(),
590
+					'REG_ID' => $registration->ID(),
591
+				]
592
+			);
593
+		}
594
+		// verify instance
595
+		if ($answer instanceof EE_Answer) {
596
+			if (! empty($answer_value)) {
597
+				$answer->set('ANS_value', $answer_value);
598
+			}
599
+			$answer->cache('Question', $question);
600
+			// remember system ID had a bug where sometimes it could be null
601
+			$answer_cache_id = $question->is_system_question()
602
+				? $question->system_ID() . '-' . $registration->reg_url_link()
603
+				: $question->ID() . '-' . $registration->reg_url_link();
604
+			$registration->cache('Answer', $answer, $answer_cache_id);
605
+		}
606
+		return $this->generateQuestionInput($registration, $question, $answer);
607
+	}
608
+
609
+
610
+	/**
611
+	 * @param EE_Registration $registration
612
+	 * @param EE_Question     $question
613
+	 * @param                 $answer
614
+	 * @return EE_Form_Input_Base
615
+	 * @throws EE_Error
616
+	 * @throws InvalidArgumentException
617
+	 * @throws ReflectionException
618
+	 * @throws InvalidDataTypeException
619
+	 * @throws InvalidInterfaceException
620
+	 */
621
+	private function generateQuestionInput(
622
+		EE_Registration $registration,
623
+		EE_Question $question,
624
+		$answer
625
+	): EE_Form_Input_Base {
626
+		$identifier                              = $question->is_system_question()
627
+			? $question->system_ID()
628
+			: $question->ID();
629
+		$this->required_questions[ $identifier ] = $question->required();
630
+		$input_constructor_args                  = [
631
+			'html_name'        => 'ee_reg_qstn[' . $registration->ID() . '][' . $identifier . ']',
632
+			'html_id'          => 'ee_reg_qstn-' . $registration->ID() . '-' . $identifier,
633
+			'html_class'       => 'ee-reg-qstn ee-reg-qstn-' . $identifier,
634
+			'html_label_id'    => 'ee_reg_qstn-' . $registration->ID() . '-' . $identifier,
635
+			'html_label_class' => 'ee-reg-qstn',
636
+		];
637
+		$input_constructor_args['html_label_id'] .= '-lbl';
638
+		if ($answer instanceof EE_Answer && $answer->ID()) {
639
+			$input_constructor_args['html_name']     .= '[' . $answer->ID() . ']';
640
+			$input_constructor_args['html_id']       .= '-' . $answer->ID();
641
+			$input_constructor_args['html_label_id'] .= '-' . $answer->ID();
642
+		}
643
+		$form_input = $question->generate_form_input(
644
+			$registration,
645
+			$answer,
646
+			$input_constructor_args
647
+		);
648
+		remove_filter(
649
+			'FHEE__EE_Question__generate_form_input__country_options',
650
+			[$this, 'use_cached_countries_for_form_input']
651
+		);
652
+		remove_filter(
653
+			'FHEE__EE_Question__generate_form_input__state_options',
654
+			[$this, 'use_cached_states_for_form_input']
655
+		);
656
+		return $form_input;
657
+	}
658 658
 }
Please login to merge, or discard this patch.
Spacing   +35 added lines, -35 removed lines patch added patch discarded remove patch
@@ -181,13 +181,13 @@  discard block
 block discarded – undo
181 181
                     && $this->reg_step->checkout->visit_allows_processing_of_this_registration($registration)
182 182
                 ) {
183 183
                     $reg_url_link                                                         = $registration->reg_url_link();
184
-                    $subsections[ $reg_url_link ]
184
+                    $subsections[$reg_url_link]
185 185
                                                                                           = $this->getRegForm($registration);
186
-                    $this->template_args['registrations'][ $reg_url_link ]                = $registration;
187
-                    $this->template_args['ticket_count'][ $registration->ticket()->ID() ] = isset(
188
-                        $this->template_args['ticket_count'][ $registration->ticket()->ID() ]
186
+                    $this->template_args['registrations'][$reg_url_link]                = $registration;
187
+                    $this->template_args['ticket_count'][$registration->ticket()->ID()] = isset(
188
+                        $this->template_args['ticket_count'][$registration->ticket()->ID()]
189 189
                     )
190
-                        ? $this->template_args['ticket_count'][ $registration->ticket()->ID() ] + 1
190
+                        ? $this->template_args['ticket_count'][$registration->ticket()->ID()] + 1
191 191
                         : 1;
192 192
                     $ticket_line_item
193 193
                                                                                           = EEH_Line_Item::get_line_items_by_object_type_and_IDs(
@@ -195,10 +195,10 @@  discard block
 block discarded – undo
195 195
                         'Ticket',
196 196
                         [$registration->ticket()->ID()]
197 197
                     );
198
-                    $ticket_line_item                                                     = is_array($ticket_line_item)
198
+                    $ticket_line_item = is_array($ticket_line_item)
199 199
                         ? reset($ticket_line_item)
200 200
                         : $ticket_line_item;
201
-                    $this->template_args['ticket_line_item'][ $registration->ticket()->ID() ]
201
+                    $this->template_args['ticket_line_item'][$registration->ticket()->ID()]
202 202
                                                                                           = $Line_Item_Display->display_line_item($ticket_line_item);
203 203
                     if ($registration->is_primary_registrant()) {
204 204
                         $primary_registrant = $reg_url_link;
@@ -212,10 +212,10 @@  discard block
 block discarded – undo
212 212
                     : new LegacyAutoCopyAttendeeInfoForm($this->reg_step->slug());
213 213
                 // generate hidden input
214 214
                 if (
215
-                    isset($subsections[ $primary_registrant ])
216
-                    && $subsections[ $primary_registrant ] instanceof EE_Form_Section_Proper
215
+                    isset($subsections[$primary_registrant])
216
+                    && $subsections[$primary_registrant] instanceof EE_Form_Section_Proper
217 217
                 ) {
218
-                    $subsections[ $primary_registrant ]->add_subsections(
218
+                    $subsections[$primary_registrant]->add_subsections(
219 219
                         $copy_options,
220 220
                         'primary_registrant',
221 221
                         false
@@ -227,8 +227,8 @@  discard block
 block discarded – undo
227 227
         // Set the registration form template (default: one form per ticket details table).
228 228
         // We decide the template to used based on the number of forms.
229 229
         $template = $this->reg_form_count > 1
230
-            ? SPCO_REG_STEPS_PATH . $this->reg_step->slug() . '/attendee_info_main.template.php'
231
-            : SPCO_REG_STEPS_PATH . $this->reg_step->slug() . '/attendee_info_single.template.php';
230
+            ? SPCO_REG_STEPS_PATH . $this->reg_step->slug().'/attendee_info_main.template.php'
231
+            : SPCO_REG_STEPS_PATH.$this->reg_step->slug().'/attendee_info_single.template.php';
232 232
         $this->reg_step->setTemplate($template);
233 233
 
234 234
         return $subsections;
@@ -242,7 +242,7 @@  discard block
 block discarded – undo
242 242
     private function addPrivacyConsentCheckbox(EE_Form_Section_Proper $extra_inputs_section)
243 243
     {
244 244
         // if this isn't a revisit, and they have the privacy consent box enabled, add it
245
-        if (! $this->reg_step->checkout->revisit && $this->reg_config->isConsentCheckboxEnabled()) {
245
+        if ( ! $this->reg_step->checkout->revisit && $this->reg_config->isConsentCheckboxEnabled()) {
246 246
             $extra_inputs_section->add_subsections(
247 247
                 [
248 248
                     'consent_box' => new EE_Form_Section_Proper(
@@ -296,7 +296,7 @@  discard block
 block discarded – undo
296 296
         $form_args = [];
297 297
         // verify that registration has valid event
298 298
         if ($registration->event() instanceof EE_Event) {
299
-            $field_name      = 'Event_Question_Group.'
299
+            $field_name = 'Event_Question_Group.'
300 300
                                . EEM_Event_Question_Group::instance()->fieldNameForContext(
301 301
                     $registration->is_primary_registrant()
302 302
                 );
@@ -319,7 +319,7 @@  discard block
 block discarded – undo
319 319
             if ($question_groups) {
320 320
                 // array of params to pass to parent constructor
321 321
                 $form_args = [
322
-                    'html_id'         => 'ee-registration-' . $registration->reg_url_link(),
322
+                    'html_id'         => 'ee-registration-'.$registration->reg_url_link(),
323 323
                     'html_class'      => 'ee-reg-form-attendee-dv',
324 324
                     'html_style'      => $this->reg_step->checkout->admin_request
325 325
                         ? 'padding:0em 2em 1em; margin:3em 0 0; border:1px solid #ddd;'
@@ -341,7 +341,7 @@  discard block
 block discarded – undo
341 341
                 ];
342 342
                 foreach ($question_groups as $question_group) {
343 343
                     if ($question_group instanceof EE_Question_Group) {
344
-                        $form_args['subsections'][ $question_group->identifier() ] = $this->questionGroupRegForm(
344
+                        $form_args['subsections'][$question_group->identifier()] = $this->questionGroupRegForm(
345 345
                             $registration,
346 346
                             $question_group
347 347
                         );
@@ -375,7 +375,7 @@  discard block
 block discarded – undo
375 375
         $attendee_nmbr++;
376 376
 
377 377
         // Increment the reg forms number if form is valid.
378
-        if (! empty($form_args)) {
378
+        if ( ! empty($form_args)) {
379 379
             $this->reg_form_count++;
380 380
         }
381 381
 
@@ -395,7 +395,7 @@  discard block
 block discarded – undo
395 395
         // generate hidden input
396 396
         return new EE_Hidden_Input(
397 397
             [
398
-                'html_id' => 'additional-attendee-reg-info-' . $registration->reg_url_link(),
398
+                'html_id' => 'additional-attendee-reg-info-'.$registration->reg_url_link(),
399 399
                 'default' => true,
400 400
             ]
401 401
         );
@@ -418,12 +418,12 @@  discard block
 block discarded – undo
418 418
     ): EE_Form_Section_Proper {
419 419
         // array of params to pass to parent constructor
420 420
         $form_args = [
421
-            'html_id'         => 'ee-reg-form-qstn-grp-' . $question_group->identifier() . '-' . $registration->ID(),
421
+            'html_id'         => 'ee-reg-form-qstn-grp-'.$question_group->identifier().'-'.$registration->ID(),
422 422
             'html_class'      => $this->reg_step->checkout->admin_request
423 423
                 ? 'form-table ee-reg-form-qstn-grp-dv'
424 424
                 : 'ee-reg-form-qstn-grp-dv',
425
-            'html_label_id'   => 'ee-reg-form-qstn-grp-' . $question_group->identifier() . '-'
426
-                                 . $registration->ID() . '-lbl',
425
+            'html_label_id'   => 'ee-reg-form-qstn-grp-'.$question_group->identifier().'-'
426
+                                 . $registration->ID().'-lbl',
427 427
             'subsections'     => [
428 428
                 'reg_form_qstn_grp_hdr' => $this->questionGroupHeader($question_group),
429 429
             ],
@@ -434,7 +434,7 @@  discard block
 block discarded – undo
434 434
         // where params
435 435
         $query_params = ['QST_deleted' => 0];
436 436
         // don't load admin only questions on the frontend
437
-        if (! $this->reg_step->checkout->admin_request) {
437
+        if ( ! $this->reg_step->checkout->admin_request) {
438 438
             $query_params['QST_admin_only'] = ['!=', true];
439 439
         }
440 440
         $questions = $question_group->get_many_related(
@@ -468,7 +468,7 @@  discard block
 block discarded – undo
468 468
                 $identifier                              = $question->is_system_question()
469 469
                     ? $question->system_ID()
470 470
                     : $question->ID();
471
-                $form_args['subsections'][ $identifier ] = $this->regFormQuestion($registration, $question);
471
+                $form_args['subsections'][$identifier] = $this->regFormQuestion($registration, $question);
472 472
             }
473 473
         }
474 474
         $form_args['subsections'] = apply_filters(
@@ -574,7 +574,7 @@  discard block
 block discarded – undo
574 574
             $registration,
575 575
             $question->system_ID()
576 576
         );
577
-        $answer       = $answer_value === null
577
+        $answer = $answer_value === null
578 578
             ? EEM_Answer::instance()->get_one(
579 579
                 [['QST_ID' => $question->ID(), 'REG_ID' => $registration->ID()]]
580 580
             )
@@ -593,14 +593,14 @@  discard block
 block discarded – undo
593 593
         }
594 594
         // verify instance
595 595
         if ($answer instanceof EE_Answer) {
596
-            if (! empty($answer_value)) {
596
+            if ( ! empty($answer_value)) {
597 597
                 $answer->set('ANS_value', $answer_value);
598 598
             }
599 599
             $answer->cache('Question', $question);
600 600
             // remember system ID had a bug where sometimes it could be null
601 601
             $answer_cache_id = $question->is_system_question()
602
-                ? $question->system_ID() . '-' . $registration->reg_url_link()
603
-                : $question->ID() . '-' . $registration->reg_url_link();
602
+                ? $question->system_ID().'-'.$registration->reg_url_link()
603
+                : $question->ID().'-'.$registration->reg_url_link();
604 604
             $registration->cache('Answer', $answer, $answer_cache_id);
605 605
         }
606 606
         return $this->generateQuestionInput($registration, $question, $answer);
@@ -626,19 +626,19 @@  discard block
 block discarded – undo
626 626
         $identifier                              = $question->is_system_question()
627 627
             ? $question->system_ID()
628 628
             : $question->ID();
629
-        $this->required_questions[ $identifier ] = $question->required();
629
+        $this->required_questions[$identifier] = $question->required();
630 630
         $input_constructor_args                  = [
631
-            'html_name'        => 'ee_reg_qstn[' . $registration->ID() . '][' . $identifier . ']',
632
-            'html_id'          => 'ee_reg_qstn-' . $registration->ID() . '-' . $identifier,
633
-            'html_class'       => 'ee-reg-qstn ee-reg-qstn-' . $identifier,
634
-            'html_label_id'    => 'ee_reg_qstn-' . $registration->ID() . '-' . $identifier,
631
+            'html_name'        => 'ee_reg_qstn['.$registration->ID().']['.$identifier.']',
632
+            'html_id'          => 'ee_reg_qstn-'.$registration->ID().'-'.$identifier,
633
+            'html_class'       => 'ee-reg-qstn ee-reg-qstn-'.$identifier,
634
+            'html_label_id'    => 'ee_reg_qstn-'.$registration->ID().'-'.$identifier,
635 635
             'html_label_class' => 'ee-reg-qstn',
636 636
         ];
637 637
         $input_constructor_args['html_label_id'] .= '-lbl';
638 638
         if ($answer instanceof EE_Answer && $answer->ID()) {
639
-            $input_constructor_args['html_name']     .= '[' . $answer->ID() . ']';
640
-            $input_constructor_args['html_id']       .= '-' . $answer->ID();
641
-            $input_constructor_args['html_label_id'] .= '-' . $answer->ID();
639
+            $input_constructor_args['html_name']     .= '['.$answer->ID().']';
640
+            $input_constructor_args['html_id']       .= '-'.$answer->ID();
641
+            $input_constructor_args['html_label_id'] .= '-'.$answer->ID();
642 642
         }
643 643
         $form_input = $question->generate_form_input(
644 644
             $registration,
Please login to merge, or discard this patch.
languages/event_espresso-translations-js.php 1 patch
Spacing   +591 added lines, -591 removed lines patch added patch discarded remove patch
@@ -2,226 +2,226 @@  discard block
 block discarded – undo
2 2
 /* THIS IS A GENERATED FILE. DO NOT EDIT DIRECTLY. */
3 3
 $generated_i18n_strings = array(
4 4
 	// Reference: packages/ui-components/src/Pagination/constants.ts:6
5
-	__( '2', 'event_espresso' ),
5
+	__('2', 'event_espresso'),
6 6
 
7 7
 	// Reference: packages/ui-components/src/Pagination/constants.ts:7
8
-	__( '6', 'event_espresso' ),
8
+	__('6', 'event_espresso'),
9 9
 
10 10
 	// Reference: packages/ui-components/src/Pagination/constants.ts:8
11
-	__( '12', 'event_espresso' ),
11
+	__('12', 'event_espresso'),
12 12
 
13 13
 	// Reference: packages/ui-components/src/Pagination/constants.ts:9
14
-	__( '24', 'event_espresso' ),
14
+	__('24', 'event_espresso'),
15 15
 
16 16
 	// Reference: packages/ui-components/src/Pagination/constants.ts:10
17
-	__( '48', 'event_espresso' ),
17
+	__('48', 'event_espresso'),
18 18
 
19 19
 	// Reference: domains/core/admin/blocks/src/components/AvatarImage.tsx:27
20
-	__( 'contact avatar', 'event_espresso' ),
20
+	__('contact avatar', 'event_espresso'),
21 21
 
22 22
 	// Reference: domains/core/admin/blocks/src/components/OrderByControl.tsx:12
23
-	__( 'Order by', 'event_espresso' ),
23
+	__('Order by', 'event_espresso'),
24 24
 
25 25
 	// Reference: domains/core/admin/blocks/src/components/RegStatusControl.tsx:17
26 26
 	// Reference: domains/core/admin/blocks/src/event-attendees/controls/SelectStatus.tsx:13
27
-	__( 'Select Registration Status', 'event_espresso' ),
27
+	__('Select Registration Status', 'event_espresso'),
28 28
 
29 29
 	// Reference: domains/core/admin/blocks/src/components/SortOrderControl.tsx:14
30
-	__( 'Ascending', 'event_espresso' ),
30
+	__('Ascending', 'event_espresso'),
31 31
 
32 32
 	// Reference: domains/core/admin/blocks/src/components/SortOrderControl.tsx:18
33
-	__( 'Descending', 'event_espresso' ),
33
+	__('Descending', 'event_espresso'),
34 34
 
35 35
 	// Reference: domains/core/admin/blocks/src/components/SortOrderControl.tsx:24
36
-	__( 'Sort order:', 'event_espresso' ),
36
+	__('Sort order:', 'event_espresso'),
37 37
 
38 38
 	// Reference: domains/core/admin/blocks/src/event-attendees/AttendeesDisplay.tsx:41
39
-	__( 'There was some error fetching attendees list', 'event_espresso' ),
39
+	__('There was some error fetching attendees list', 'event_espresso'),
40 40
 
41 41
 	// Reference: domains/core/admin/blocks/src/event-attendees/AttendeesDisplay.tsx:47
42
-	__( 'To get started, select what event you want to show attendees from in the block settings.', 'event_espresso' ),
42
+	__('To get started, select what event you want to show attendees from in the block settings.', 'event_espresso'),
43 43
 
44 44
 	// Reference: domains/core/admin/blocks/src/event-attendees/AttendeesDisplay.tsx:53
45
-	__( 'There are no attendees for selected options.', 'event_espresso' ),
45
+	__('There are no attendees for selected options.', 'event_espresso'),
46 46
 
47 47
 	// Reference: domains/core/admin/blocks/src/event-attendees/controls/ArchiveSettings.tsx:12
48
-	__( 'Display on Archives', 'event_espresso' ),
48
+	__('Display on Archives', 'event_espresso'),
49 49
 
50 50
 	// Reference: domains/core/admin/blocks/src/event-attendees/controls/ArchiveSettings.tsx:17
51
-	__( 'Attendees are shown whenever this post is listed in an archive view.', 'event_espresso' ),
51
+	__('Attendees are shown whenever this post is listed in an archive view.', 'event_espresso'),
52 52
 
53 53
 	// Reference: domains/core/admin/blocks/src/event-attendees/controls/ArchiveSettings.tsx:18
54
-	__( 'Attendees are hidden whenever this post is listed in an archive view.', 'event_espresso' ),
54
+	__('Attendees are hidden whenever this post is listed in an archive view.', 'event_espresso'),
55 55
 
56 56
 	// Reference: domains/core/admin/blocks/src/event-attendees/controls/AttendeeLimit.tsx:29
57
-	__( 'Number of Attendees to Display:', 'event_espresso' ),
57
+	__('Number of Attendees to Display:', 'event_espresso'),
58 58
 
59 59
 	// Reference: domains/core/admin/blocks/src/event-attendees/controls/AttendeeLimit.tsx:34
60 60
 	/* translators: %d attendees count */
61
-	_n_noop( 'Used to adjust the number of attendees displayed (There is %d total attendee for the current filter settings).', 'Used to adjust the number of attendees displayed (There are %d total attendees for the current filter settings).', 'event_espresso' ),
61
+	_n_noop('Used to adjust the number of attendees displayed (There is %d total attendee for the current filter settings).', 'Used to adjust the number of attendees displayed (There are %d total attendees for the current filter settings).', 'event_espresso'),
62 62
 
63 63
 	// Reference: domains/core/admin/blocks/src/event-attendees/controls/GravatarSettings.tsx:27
64
-	__( 'Display Gravatar', 'event_espresso' ),
64
+	__('Display Gravatar', 'event_espresso'),
65 65
 
66 66
 	// Reference: domains/core/admin/blocks/src/event-attendees/controls/GravatarSettings.tsx:32
67
-	__( 'Gravatar images are shown for each attendee.', 'event_espresso' ),
67
+	__('Gravatar images are shown for each attendee.', 'event_espresso'),
68 68
 
69 69
 	// Reference: domains/core/admin/blocks/src/event-attendees/controls/GravatarSettings.tsx:33
70
-	__( 'No gravatar images are shown for each attendee.', 'event_espresso' ),
70
+	__('No gravatar images are shown for each attendee.', 'event_espresso'),
71 71
 
72 72
 	// Reference: domains/core/admin/blocks/src/event-attendees/controls/GravatarSettings.tsx:38
73
-	__( 'Size of Gravatar', 'event_espresso' ),
73
+	__('Size of Gravatar', 'event_espresso'),
74 74
 
75 75
 	// Reference: domains/core/admin/blocks/src/event-attendees/controls/SelectDatetime.tsx:22
76
-	__( 'Select Datetime', 'event_espresso' ),
76
+	__('Select Datetime', 'event_espresso'),
77 77
 
78 78
 	// Reference: domains/core/admin/blocks/src/event-attendees/controls/SelectEvent.tsx:22
79
-	__( 'Select Event', 'event_espresso' ),
79
+	__('Select Event', 'event_espresso'),
80 80
 
81 81
 	// Reference: domains/core/admin/blocks/src/event-attendees/controls/SelectOrderBy.tsx:11
82
-	__( 'Attendee id', 'event_espresso' ),
82
+	__('Attendee id', 'event_espresso'),
83 83
 
84 84
 	// Reference: domains/core/admin/blocks/src/event-attendees/controls/SelectOrderBy.tsx:15
85
-	__( 'Last name only', 'event_espresso' ),
85
+	__('Last name only', 'event_espresso'),
86 86
 
87 87
 	// Reference: domains/core/admin/blocks/src/event-attendees/controls/SelectOrderBy.tsx:19
88
-	__( 'First name only', 'event_espresso' ),
88
+	__('First name only', 'event_espresso'),
89 89
 
90 90
 	// Reference: domains/core/admin/blocks/src/event-attendees/controls/SelectOrderBy.tsx:23
91
-	__( 'First, then Last name', 'event_espresso' ),
91
+	__('First, then Last name', 'event_espresso'),
92 92
 
93 93
 	// Reference: domains/core/admin/blocks/src/event-attendees/controls/SelectOrderBy.tsx:27
94
-	__( 'Last, then First name', 'event_espresso' ),
94
+	__('Last, then First name', 'event_espresso'),
95 95
 
96 96
 	// Reference: domains/core/admin/blocks/src/event-attendees/controls/SelectOrderBy.tsx:41
97
-	__( 'Order Attendees by:', 'event_espresso' ),
97
+	__('Order Attendees by:', 'event_espresso'),
98 98
 
99 99
 	// Reference: domains/core/admin/blocks/src/event-attendees/controls/SelectTicket.tsx:22
100
-	__( 'Select Ticket', 'event_espresso' ),
100
+	__('Select Ticket', 'event_espresso'),
101 101
 
102 102
 	// Reference: domains/core/admin/blocks/src/event-attendees/controls/index.tsx:21
103
-	__( 'Filter By Settings', 'event_espresso' ),
103
+	__('Filter By Settings', 'event_espresso'),
104 104
 
105 105
 	// Reference: domains/core/admin/blocks/src/event-attendees/controls/index.tsx:36
106
-	__( 'Gravatar Setttings', 'event_espresso' ),
106
+	__('Gravatar Setttings', 'event_espresso'),
107 107
 
108 108
 	// Reference: domains/core/admin/blocks/src/event-attendees/controls/index.tsx:39
109
-	__( 'Archive Settings', 'event_espresso' ),
109
+	__('Archive Settings', 'event_espresso'),
110 110
 
111 111
 	// Reference: domains/core/admin/blocks/src/event-attendees/index.tsx:10
112
-	__( 'Event Attendees', 'event_espresso' ),
112
+	__('Event Attendees', 'event_espresso'),
113 113
 
114 114
 	// Reference: domains/core/admin/blocks/src/event-attendees/index.tsx:11
115
-	__( 'Displays a list of people that have registered for the specified event', 'event_espresso' ),
115
+	__('Displays a list of people that have registered for the specified event', 'event_espresso'),
116 116
 
117 117
 	// Reference: domains/core/admin/blocks/src/event-attendees/index.tsx:14
118
-	__( 'event', 'event_espresso' ),
118
+	__('event', 'event_espresso'),
119 119
 
120 120
 	// Reference: domains/core/admin/blocks/src/event-attendees/index.tsx:14
121
-	__( 'attendees', 'event_espresso' ),
121
+	__('attendees', 'event_espresso'),
122 122
 
123 123
 	// Reference: domains/core/admin/blocks/src/event-attendees/index.tsx:14
124
-	__( 'list', 'event_espresso' ),
124
+	__('list', 'event_espresso'),
125 125
 
126 126
 	// Reference: domains/core/admin/blocks/src/services/utils.ts:17
127
-	__( 'Error', 'event_espresso' ),
127
+	__('Error', 'event_espresso'),
128 128
 
129 129
 	// Reference: domains/core/admin/blocks/src/services/utils.ts:24
130 130
 	// Reference: packages/ui-components/src/SimpleEntityList/EntityTemplate.tsx:16
131
-	__( 'Select…', 'event_espresso' ),
131
+	__('Select…', 'event_espresso'),
132 132
 
133 133
 	// Reference: domains/core/admin/blocks/src/services/utils.ts:9
134
-	__( 'Loading…', 'event_espresso' ),
134
+	__('Loading…', 'event_espresso'),
135 135
 
136 136
 	// Reference: domains/core/admin/eventEditor/src/ui/EventDescription.tsx:33
137
-	__( 'Event Description', 'event_espresso' ),
137
+	__('Event Description', 'event_espresso'),
138 138
 
139 139
 	// Reference: domains/core/admin/eventEditor/src/ui/EventRegistrationOptions/ActiveStatus.tsx:22
140
-	__( 'Active status', 'event_espresso' ),
140
+	__('Active status', 'event_espresso'),
141 141
 
142 142
 	// Reference: domains/core/admin/eventEditor/src/ui/EventRegistrationOptions/AltRegPage.tsx:14
143
-	__( 'Alternative Registration Page', 'event_espresso' ),
143
+	__('Alternative Registration Page', 'event_espresso'),
144 144
 
145 145
 	// Reference: domains/core/admin/eventEditor/src/ui/EventRegistrationOptions/DefaultRegistrationStatus.tsx:15
146
-	__( 'Default Registration Status', 'event_espresso' ),
146
+	__('Default Registration Status', 'event_espresso'),
147 147
 
148 148
 	// Reference: domains/core/admin/eventEditor/src/ui/EventRegistrationOptions/Donations.tsx:9
149
-	__( 'Donations Enabled', 'event_espresso' ),
149
+	__('Donations Enabled', 'event_espresso'),
150 150
 
151 151
 	// Reference: domains/core/admin/eventEditor/src/ui/EventRegistrationOptions/Donations.tsx:9
152
-	__( 'Donations Disabled', 'event_espresso' ),
152
+	__('Donations Disabled', 'event_espresso'),
153 153
 
154 154
 	// Reference: domains/core/admin/eventEditor/src/ui/EventRegistrationOptions/EventManager.tsx:16
155
-	__( 'Event Manager', 'event_espresso' ),
155
+	__('Event Manager', 'event_espresso'),
156 156
 
157 157
 	// Reference: domains/core/admin/eventEditor/src/ui/EventRegistrationOptions/EventPhoneNumber.tsx:11
158
-	__( 'Event Phone Number', 'event_espresso' ),
158
+	__('Event Phone Number', 'event_espresso'),
159 159
 
160 160
 	// Reference: domains/core/admin/eventEditor/src/ui/EventRegistrationOptions/MaxRegistrations.tsx:12
161
-	__( 'Max Registrations per Transaction', 'event_espresso' ),
161
+	__('Max Registrations per Transaction', 'event_espresso'),
162 162
 
163 163
 	// Reference: domains/core/admin/eventEditor/src/ui/EventRegistrationOptions/TicketSelector.tsx:9
164
-	__( 'Ticket Selector Enabled', 'event_espresso' ),
164
+	__('Ticket Selector Enabled', 'event_espresso'),
165 165
 
166 166
 	// Reference: domains/core/admin/eventEditor/src/ui/EventRegistrationOptions/TicketSelector.tsx:9
167
-	__( 'Ticket Selector Disabled', 'event_espresso' ),
167
+	__('Ticket Selector Disabled', 'event_espresso'),
168 168
 
169 169
 	// Reference: domains/core/admin/eventEditor/src/ui/EventRegistrationOptions/index.tsx:43
170
-	__( 'Registration Options', 'event_espresso' ),
170
+	__('Registration Options', 'event_espresso'),
171 171
 
172 172
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/DateRegistrationsLink.tsx:13
173
-	__( 'view ALL registrations for this date.', 'event_espresso' ),
173
+	__('view ALL registrations for this date.', 'event_espresso'),
174 174
 
175 175
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/dateForm/multiStep/DateFormSteps.tsx:10
176
-	__( 'primary information about the date', 'event_espresso' ),
176
+	__('primary information about the date', 'event_espresso'),
177 177
 
178 178
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/dateForm/multiStep/DateFormSteps.tsx:10
179
-	__( 'Date Details', 'event_espresso' ),
179
+	__('Date Details', 'event_espresso'),
180 180
 
181 181
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/dateForm/multiStep/DateFormSteps.tsx:11
182 182
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/defaultTickets/multiStep/TicketFormSteps.tsx:16
183 183
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketForm/multiStep/TicketFormSteps.tsx:16
184
-	__( 'relations between tickets and dates', 'event_espresso' ),
184
+	__('relations between tickets and dates', 'event_espresso'),
185 185
 
186 186
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/dateForm/multiStep/DateFormSteps.tsx:11
187
-	__( 'Assign Tickets', 'event_espresso' ),
187
+	__('Assign Tickets', 'event_espresso'),
188 188
 
189 189
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/dateForm/multiStep/FooterButtons.tsx:22
190
-	__( 'Save and assign tickets', 'event_espresso' ),
190
+	__('Save and assign tickets', 'event_espresso'),
191 191
 
192 192
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/dateForm/multiStep/Modal.tsx:27
193 193
 	/* translators: %s datetime id */
194
-	__( 'Edit datetime %s', 'event_espresso' ),
194
+	__('Edit datetime %s', 'event_espresso'),
195 195
 
196 196
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/dateForm/multiStep/Modal.tsx:30
197
-	__( 'New Datetime', 'event_espresso' ),
197
+	__('New Datetime', 'event_espresso'),
198 198
 
199 199
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/dateForm/useDateFormConfig.ts:110
200 200
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/bulkEdit/details/useBulkEditFormConfig.ts:108
201 201
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketForm/useTicketFormConfig.ts:126
202 202
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/bulkEdit/details/useBulkEditFormConfig.ts:108
203
-	__( 'Details', 'event_espresso' ),
203
+	__('Details', 'event_espresso'),
204 204
 
205 205
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/dateForm/useDateFormConfig.ts:114
206 206
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/bulkEdit/details/useBulkEditFormConfig.ts:112
207 207
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/tableView/useHeaderRowGenerator.tsx:81
208
-	__( 'Capacity', 'event_espresso' ),
208
+	__('Capacity', 'event_espresso'),
209 209
 
210 210
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/dateForm/useDateFormConfig.ts:119
211
-	__( 'The maximum number of registrants that can attend the event at this particular date.', 'event_espresso' ),
211
+	__('The maximum number of registrants that can attend the event at this particular date.', 'event_espresso'),
212 212
 
213 213
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/dateForm/useDateFormConfig.ts:123
214
-	__( 'Set to 0 to close registration or leave blank for no limit.', 'event_espresso' ),
214
+	__('Set to 0 to close registration or leave blank for no limit.', 'event_espresso'),
215 215
 
216 216
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/dateForm/useDateFormConfig.ts:129
217 217
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketForm/useTicketFormConfig.ts:203
218
-	__( 'Trash', 'event_espresso' ),
218
+	__('Trash', 'event_espresso'),
219 219
 
220 220
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/dateForm/useDateFormConfig.ts:71
221 221
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/bulkEdit/details/useBulkEditFormConfig.ts:45
222 222
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketForm/useTicketFormConfig.ts:87
223 223
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/bulkEdit/details/useBulkEditFormConfig.ts:45
224
-	__( 'Basics', 'event_espresso' ),
224
+	__('Basics', 'event_espresso'),
225 225
 
226 226
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/dateForm/useDateFormConfig.ts:75
227 227
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/bulkEdit/details/useBulkEditFormConfig.ts:49
@@ -229,250 +229,250 @@  discard block
 block discarded – undo
229 229
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketForm/useTicketFormConfig.ts:91
230 230
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/bulkEdit/details/useBulkEditFormConfig.ts:49
231 231
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/tableView/useHeaderRowGenerator.tsx:40
232
-	__( 'Name', 'event_espresso' ),
232
+	__('Name', 'event_espresso'),
233 233
 
234 234
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/dateForm/useDateFormConfig.ts:80
235 235
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/bulkEdit/details/useBulkEditFormConfig.ts:55
236 236
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketForm/useTicketFormConfig.ts:96
237 237
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/bulkEdit/details/useBulkEditFormConfig.ts:55
238 238
 	// Reference: packages/tpc/src/components/table/useHeaderRowGenerator.ts:47
239
-	__( 'Description', 'event_espresso' ),
239
+	__('Description', 'event_espresso'),
240 240
 
241 241
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/dateForm/useDateFormConfig.ts:88
242 242
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/bulkEdit/details/useBulkEditFormConfig.ts:63
243 243
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/bulkEdit/details/useBulkEditFormConfig.ts:63
244
-	__( 'Dates', 'event_espresso' ),
244
+	__('Dates', 'event_espresso'),
245 245
 
246 246
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/dateForm/useDateFormConfig.ts:92
247 247
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/tableView/useHeaderRowGenerator.tsx:51
248 248
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketForm/useTicketFormConfig.ts:108
249
-	__( 'Start Date', 'event_espresso' ),
249
+	__('Start Date', 'event_espresso'),
250 250
 
251 251
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/dateForm/useDateFormConfig.ts:99
252 252
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/tableView/useHeaderRowGenerator.tsx:65
253 253
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketForm/useTicketFormConfig.ts:115
254
-	__( 'End Date', 'event_espresso' ),
254
+	__('End Date', 'event_espresso'),
255 255
 
256 256
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/DatesList.tsx:34
257 257
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/tableView/TableView.tsx:33
258
-	__( 'Event Dates', 'event_espresso' ),
258
+	__('Event Dates', 'event_espresso'),
259 259
 
260 260
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/DatesList.tsx:37
261
-	__( 'loading event dates…', 'event_espresso' ),
261
+	__('loading event dates…', 'event_espresso'),
262 262
 
263 263
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/DatesListButtons.tsx:20
264
-	__( 'Add a date or a ticket in order to use Ticket Assignment Manager', 'event_espresso' ),
264
+	__('Add a date or a ticket in order to use Ticket Assignment Manager', 'event_espresso'),
265 265
 
266 266
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/DatesListButtons.tsx:30
267
-	__( 'Ticket Assignments', 'event_espresso' ),
267
+	__('Ticket Assignments', 'event_espresso'),
268 268
 
269 269
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/actionsMenu/AssignTicketsButton.tsx:25
270
-	__( 'Number of related tickets', 'event_espresso' ),
270
+	__('Number of related tickets', 'event_espresso'),
271 271
 
272 272
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/actionsMenu/AssignTicketsButton.tsx:26
273
-	__( 'There are no tickets assigned to this datetime. Please click the ticket icon to update the assignments.', 'event_espresso' ),
273
+	__('There are no tickets assigned to this datetime. Please click the ticket icon to update the assignments.', 'event_espresso'),
274 274
 
275 275
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/actionsMenu/AssignTicketsButton.tsx:34
276
-	__( 'assign tickets', 'event_espresso' ),
276
+	__('assign tickets', 'event_espresso'),
277 277
 
278 278
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/actionsMenu/dropdown/DateMainMenu.tsx:25
279
-	__( 'Permanently delete Datetime?', 'event_espresso' ),
279
+	__('Permanently delete Datetime?', 'event_espresso'),
280 280
 
281 281
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/actionsMenu/dropdown/DateMainMenu.tsx:25
282
-	__( 'Move Datetime to Trash?', 'event_espresso' ),
282
+	__('Move Datetime to Trash?', 'event_espresso'),
283 283
 
284 284
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/actionsMenu/dropdown/DateMainMenu.tsx:27
285
-	__( 'Are you sure you want to permanently delete this datetime? This action is permanent and can not be undone.', 'event_espresso' ),
285
+	__('Are you sure you want to permanently delete this datetime? This action is permanent and can not be undone.', 'event_espresso'),
286 286
 
287 287
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/actionsMenu/dropdown/DateMainMenu.tsx:30
288
-	__( 'Are you sure you want to move this datetime to the trash? You can "untrash" this datetime later if you need to.', 'event_espresso' ),
288
+	__('Are you sure you want to move this datetime to the trash? You can "untrash" this datetime later if you need to.', 'event_espresso'),
289 289
 
290 290
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/actionsMenu/dropdown/DateMainMenu.tsx:39
291 291
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/actionsMenu/dropdown/DeleteTicket.tsx:44
292
-	__( 'delete permanently', 'event_espresso' ),
292
+	__('delete permanently', 'event_espresso'),
293 293
 
294 294
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/actionsMenu/dropdown/DateMainMenu.tsx:39
295
-	__( 'trash datetime', 'event_espresso' ),
295
+	__('trash datetime', 'event_espresso'),
296 296
 
297 297
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/actionsMenu/dropdown/DateMainMenu.tsx:45
298
-	__( 'event date main menu', 'event_espresso' ),
298
+	__('event date main menu', 'event_espresso'),
299 299
 
300 300
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/actionsMenu/dropdown/DateMainMenu.tsx:59
301
-	__( 'edit datetime', 'event_espresso' ),
301
+	__('edit datetime', 'event_espresso'),
302 302
 
303 303
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/actionsMenu/dropdown/DateMainMenu.tsx:60
304
-	__( 'copy datetime', 'event_espresso' ),
304
+	__('copy datetime', 'event_espresso'),
305 305
 
306 306
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/bulkEdit/actions/Actions.tsx:36
307 307
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/bulkEdit/actions/Actions.tsx:39
308 308
 	// Reference: packages/ui-components/src/bulkEdit/BulkActions.tsx:43
309
-	__( 'bulk actions', 'event_espresso' ),
309
+	__('bulk actions', 'event_espresso'),
310 310
 
311 311
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/bulkEdit/actions/Actions.tsx:40
312
-	__( 'edit datetime details', 'event_espresso' ),
312
+	__('edit datetime details', 'event_espresso'),
313 313
 
314 314
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/bulkEdit/actions/Actions.tsx:44
315
-	__( 'delete datetimes', 'event_espresso' ),
315
+	__('delete datetimes', 'event_espresso'),
316 316
 
317 317
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/bulkEdit/actions/Actions.tsx:44
318
-	__( 'trash datetimes', 'event_espresso' ),
318
+	__('trash datetimes', 'event_espresso'),
319 319
 
320 320
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/bulkEdit/delete/Delete.tsx:14
321
-	__( 'Are you sure you want to permanently delete these datetimes? This action can NOT be undone!', 'event_espresso' ),
321
+	__('Are you sure you want to permanently delete these datetimes? This action can NOT be undone!', 'event_espresso'),
322 322
 
323 323
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/bulkEdit/delete/Delete.tsx:15
324
-	__( 'Are you sure you want to trash these datetimes?', 'event_espresso' ),
324
+	__('Are you sure you want to trash these datetimes?', 'event_espresso'),
325 325
 
326 326
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/bulkEdit/delete/Delete.tsx:16
327
-	__( 'Delete datetimes permanently', 'event_espresso' ),
327
+	__('Delete datetimes permanently', 'event_espresso'),
328 328
 
329 329
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/bulkEdit/delete/Delete.tsx:16
330
-	__( 'Trash datetimes', 'event_espresso' ),
330
+	__('Trash datetimes', 'event_espresso'),
331 331
 
332 332
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/bulkEdit/details/EditDetails.tsx:21
333
-	__( 'Bulk edit date details', 'event_espresso' ),
333
+	__('Bulk edit date details', 'event_espresso'),
334 334
 
335 335
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/bulkEdit/details/EditDetails.tsx:22
336
-	__( 'any changes will be applied to ALL of the selected dates.', 'event_espresso' ),
336
+	__('any changes will be applied to ALL of the selected dates.', 'event_espresso'),
337 337
 
338 338
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/bulkEdit/details/formValidation.ts:12
339 339
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/bulkEdit/details/formValidation.ts:12
340
-	__( 'Name must be at least three characters', 'event_espresso' ),
340
+	__('Name must be at least three characters', 'event_espresso'),
341 341
 
342 342
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/bulkEdit/details/useBulkEditFormConfig.ts:67
343 343
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/bulkEdit/details/useBulkEditFormConfig.ts:67
344
-	__( 'Shift dates', 'event_espresso' ),
344
+	__('Shift dates', 'event_espresso'),
345 345
 
346 346
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/bulkEdit/details/useBulkEditFormConfig.ts:92
347 347
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/bulkEdit/details/useBulkEditFormConfig.ts:92
348
-	__( 'earlier', 'event_espresso' ),
348
+	__('earlier', 'event_espresso'),
349 349
 
350 350
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/bulkEdit/details/useBulkEditFormConfig.ts:96
351 351
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/bulkEdit/details/useBulkEditFormConfig.ts:96
352
-	__( 'later', 'event_espresso' ),
352
+	__('later', 'event_espresso'),
353 353
 
354 354
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/cardView/DateCapacity.tsx:37
355
-	__( 'edit capacity (registration limit)…', 'event_espresso' ),
355
+	__('edit capacity (registration limit)…', 'event_espresso'),
356 356
 
357 357
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/cardView/DateCardSidebar.tsx:38
358
-	__( 'Edit Event Date', 'event_espresso' ),
358
+	__('Edit Event Date', 'event_espresso'),
359 359
 
360 360
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/cardView/DateCardSidebar.tsx:42
361
-	__( 'edit start and end dates', 'event_espresso' ),
361
+	__('edit start and end dates', 'event_espresso'),
362 362
 
363 363
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/cardView/DateDetailsPanel.tsx:15
364 364
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/cardView/TicketDetailsPanel.tsx:15
365
-	__( 'sold', 'event_espresso' ),
365
+	__('sold', 'event_espresso'),
366 366
 
367 367
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/cardView/DateDetailsPanel.tsx:28
368
-	__( 'capacity', 'event_espresso' ),
368
+	__('capacity', 'event_espresso'),
369 369
 
370 370
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/cardView/DateDetailsPanel.tsx:34
371 371
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/cardView/TicketDetailsPanel.tsx:33
372
-	__( 'reg list', 'event_espresso' ),
372
+	__('reg list', 'event_espresso'),
373 373
 
374 374
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/cardView/Details.tsx:46
375 375
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/cardView/Details.tsx:45
376
-	__( 'Edit description', 'event_espresso' ),
376
+	__('Edit description', 'event_espresso'),
377 377
 
378 378
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/cardView/Details.tsx:47
379 379
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/cardView/Details.tsx:46
380
-	__( 'edit description…', 'event_espresso' ),
380
+	__('edit description…', 'event_espresso'),
381 381
 
382 382
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/config.ts:10
383
-	__( 'Move Date to Trash', 'event_espresso' ),
383
+	__('Move Date to Trash', 'event_espresso'),
384 384
 
385 385
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/config.ts:13
386 386
 	// Reference: packages/constants/src/datetime.ts:6
387
-	__( 'Active', 'event_espresso' ),
387
+	__('Active', 'event_espresso'),
388 388
 
389 389
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/config.ts:14
390 390
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/config.ts:13
391
-	__( 'Trashed', 'event_espresso' ),
391
+	__('Trashed', 'event_espresso'),
392 392
 
393 393
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/config.ts:15
394 394
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/config.ts:14
395 395
 	// Reference: packages/constants/src/datetime.ts:8
396
-	__( 'Expired', 'event_espresso' ),
396
+	__('Expired', 'event_espresso'),
397 397
 
398 398
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/config.ts:16
399 399
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/config.ts:16
400
-	__( 'Sold Out', 'event_espresso' ),
400
+	__('Sold Out', 'event_espresso'),
401 401
 
402 402
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/config.ts:17
403 403
 	// Reference: packages/constants/src/datetime.ts:12
404
-	__( 'Upcoming', 'event_espresso' ),
404
+	__('Upcoming', 'event_espresso'),
405 405
 
406 406
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/config.ts:7
407
-	__( 'Edit Event Date Details', 'event_espresso' ),
407
+	__('Edit Event Date Details', 'event_espresso'),
408 408
 
409 409
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/config.ts:8
410
-	__( 'View Registrations for this Date', 'event_espresso' ),
410
+	__('View Registrations for this Date', 'event_espresso'),
411 411
 
412 412
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/config.ts:9
413
-	__( 'Manage Ticket Assignments', 'event_espresso' ),
413
+	__('Manage Ticket Assignments', 'event_espresso'),
414 414
 
415 415
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/editable/EditableName.tsx:23
416 416
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/editable/EditableName.tsx:34
417
-	__( 'edit title…', 'event_espresso' ),
417
+	__('edit title…', 'event_espresso'),
418 418
 
419 419
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/filterBar/ActiveDatesFilters.tsx:25
420 420
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/filterBar/ActiveTicketsFilters.tsx:25
421
-	__( 'ON', 'event_espresso' ),
421
+	__('ON', 'event_espresso'),
422 422
 
423 423
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/filterBar/controls/options.ts:10
424
-	__( 'end dates only', 'event_espresso' ),
424
+	__('end dates only', 'event_espresso'),
425 425
 
426 426
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/filterBar/controls/options.ts:11
427
-	__( 'start and end dates', 'event_espresso' ),
427
+	__('start and end dates', 'event_espresso'),
428 428
 
429 429
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/filterBar/controls/options.ts:16
430
-	__( 'dates above 90% capacity', 'event_espresso' ),
430
+	__('dates above 90% capacity', 'event_espresso'),
431 431
 
432 432
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/filterBar/controls/options.ts:17
433
-	__( 'dates above 75% capacity', 'event_espresso' ),
433
+	__('dates above 75% capacity', 'event_espresso'),
434 434
 
435 435
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/filterBar/controls/options.ts:18
436
-	__( 'dates above 50% capacity', 'event_espresso' ),
436
+	__('dates above 50% capacity', 'event_espresso'),
437 437
 
438 438
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/filterBar/controls/options.ts:19
439
-	__( 'dates below 50% capacity', 'event_espresso' ),
439
+	__('dates below 50% capacity', 'event_espresso'),
440 440
 
441 441
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/filterBar/controls/options.ts:23
442
-	__( 'all dates', 'event_espresso' ),
442
+	__('all dates', 'event_espresso'),
443 443
 
444 444
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/filterBar/controls/options.ts:24
445
-	__( 'all active and upcoming', 'event_espresso' ),
445
+	__('all active and upcoming', 'event_espresso'),
446 446
 
447 447
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/filterBar/controls/options.ts:25
448
-	__( 'active dates only', 'event_espresso' ),
448
+	__('active dates only', 'event_espresso'),
449 449
 
450 450
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/filterBar/controls/options.ts:26
451
-	__( 'upcoming dates only', 'event_espresso' ),
451
+	__('upcoming dates only', 'event_espresso'),
452 452
 
453 453
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/filterBar/controls/options.ts:27
454
-	__( 'next active or upcoming only', 'event_espresso' ),
454
+	__('next active or upcoming only', 'event_espresso'),
455 455
 
456 456
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/filterBar/controls/options.ts:28
457
-	__( 'sold out dates only', 'event_espresso' ),
457
+	__('sold out dates only', 'event_espresso'),
458 458
 
459 459
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/filterBar/controls/options.ts:29
460
-	__( 'recently expired dates', 'event_espresso' ),
460
+	__('recently expired dates', 'event_espresso'),
461 461
 
462 462
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/filterBar/controls/options.ts:30
463
-	__( 'all expired dates', 'event_espresso' ),
463
+	__('all expired dates', 'event_espresso'),
464 464
 
465 465
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/filterBar/controls/options.ts:31
466
-	__( 'trashed dates only', 'event_espresso' ),
466
+	__('trashed dates only', 'event_espresso'),
467 467
 
468 468
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/filterBar/controls/options.ts:35
469 469
 	// Reference: packages/dates/src/components/DateRangePicker/DateRangePickerLegend.tsx:9
470 470
 	// Reference: packages/dates/src/components/DateRangePicker/index.tsx:61
471
-	__( 'start date', 'event_espresso' ),
471
+	__('start date', 'event_espresso'),
472 472
 
473 473
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/filterBar/controls/options.ts:36
474 474
 	// Reference: packages/ui-components/src/FormBuilder/FormSection/Tabs/Settings.tsx:26
475
-	__( 'name', 'event_espresso' ),
475
+	__('name', 'event_espresso'),
476 476
 
477 477
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/filterBar/controls/options.ts:37
478 478
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/tableView/useHeaderRowGenerator.tsx:31
@@ -480,141 +480,141 @@  discard block
 block discarded – undo
480 480
 	// Reference: domains/core/admin/eventEditor/src/ui/ticketAssignmentsManager/components/table/HeaderCell.tsx:27
481 481
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/tableView/useHeaderRowGenerator.tsx:31
482 482
 	// Reference: packages/tpc/src/components/table/useHeaderRowGenerator.ts:23
483
-	__( 'ID', 'event_espresso' ),
483
+	__('ID', 'event_espresso'),
484 484
 
485 485
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/filterBar/controls/options.ts:38
486 486
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/filterBar/controls/options.ts:47
487
-	__( 'custom order', 'event_espresso' ),
487
+	__('custom order', 'event_espresso'),
488 488
 
489 489
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/filterBar/controls/options.ts:42
490 490
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/filterBar/controls/options.ts:51
491
-	__( 'display', 'event_espresso' ),
491
+	__('display', 'event_espresso'),
492 492
 
493 493
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/filterBar/controls/options.ts:43
494
-	__( 'recurrence', 'event_espresso' ),
494
+	__('recurrence', 'event_espresso'),
495 495
 
496 496
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/filterBar/controls/options.ts:44
497 497
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/filterBar/controls/options.ts:53
498
-	__( 'sales', 'event_espresso' ),
498
+	__('sales', 'event_espresso'),
499 499
 
500 500
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/filterBar/controls/options.ts:45
501 501
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/filterBar/controls/options.ts:55
502
-	__( 'sort by', 'event_espresso' ),
502
+	__('sort by', 'event_espresso'),
503 503
 
504 504
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/filterBar/controls/options.ts:46
505 505
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/filterBar/controls/options.ts:54
506 506
 	// Reference: packages/ee-components/src/EntityList/EntityListFilterBar.tsx:53
507
-	__( 'search', 'event_espresso' ),
507
+	__('search', 'event_espresso'),
508 508
 
509 509
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/filterBar/controls/options.ts:47
510 510
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/filterBar/controls/options.ts:56
511
-	__( 'status', 'event_espresso' ),
511
+	__('status', 'event_espresso'),
512 512
 
513 513
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/filterBar/controls/options.ts:9
514
-	__( 'start dates only', 'event_espresso' ),
514
+	__('start dates only', 'event_espresso'),
515 515
 
516 516
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/newDateOptions/AddSingleDate.tsx:26
517 517
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/newDateOptions/NewDateModal.tsx:12
518 518
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/newDateOptions/OptionsModalButton.tsx:16
519
-	__( 'Add New Date', 'event_espresso' ),
519
+	__('Add New Date', 'event_espresso'),
520 520
 
521 521
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/newDateOptions/AddSingleDate.tsx:26
522
-	__( 'Add Single Date', 'event_espresso' ),
522
+	__('Add Single Date', 'event_espresso'),
523 523
 
524 524
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/newDateOptions/AddSingleDate.tsx:43
525
-	__( 'Add a single date that only occurs once', 'event_espresso' ),
525
+	__('Add a single date that only occurs once', 'event_espresso'),
526 526
 
527 527
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/newDateOptions/AddSingleDate.tsx:45
528
-	__( 'Single Date', 'event_espresso' ),
528
+	__('Single Date', 'event_espresso'),
529 529
 
530 530
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/tableView/useHeaderRowGenerator.tsx:106
531
-	__( 'Reg list', 'event_espresso' ),
531
+	__('Reg list', 'event_espresso'),
532 532
 
533 533
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/tableView/useHeaderRowGenerator.tsx:107
534 534
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/tableView/useHeaderRowGenerator.tsx:111
535
-	__( 'Regs', 'event_espresso' ),
535
+	__('Regs', 'event_espresso'),
536 536
 
537 537
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/tableView/useHeaderRowGenerator.tsx:122
538 538
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/tableView/useHeaderRowGenerator.tsx:126
539 539
 	// Reference: packages/tpc/src/components/table/useHeaderRowGenerator.ts:59
540
-	__( 'Actions', 'event_espresso' ),
540
+	__('Actions', 'event_espresso'),
541 541
 
542 542
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/tableView/useHeaderRowGenerator.tsx:52
543
-	__( 'Start', 'event_espresso' ),
543
+	__('Start', 'event_espresso'),
544 544
 
545 545
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/tableView/useHeaderRowGenerator.tsx:66
546
-	__( 'End', 'event_espresso' ),
546
+	__('End', 'event_espresso'),
547 547
 
548 548
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/tableView/useHeaderRowGenerator.tsx:82
549
-	__( 'Cap', 'event_espresso' ),
549
+	__('Cap', 'event_espresso'),
550 550
 
551 551
 	// Reference: domains/core/admin/eventEditor/src/ui/datetimes/datesList/tableView/useHeaderRowGenerator.tsx:94
552 552
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/tableView/useHeaderRowGenerator.tsx:98
553
-	__( 'Sold', 'event_espresso' ),
553
+	__('Sold', 'event_espresso'),
554 554
 
555 555
 	// Reference: domains/core/admin/eventEditor/src/ui/registrationForm/RegistrationForm.tsx:248
556
-	__( 'Registration Form Builder', 'event_espresso' ),
556
+	__('Registration Form Builder', 'event_espresso'),
557 557
 
558 558
 	// Reference: domains/core/admin/eventEditor/src/ui/ticketAssignmentsManager/components/ErrorMessage.tsx:18
559
-	__( 'Tickets must always have at least one date assigned to them but one or more of the tickets below does not have any. 
560
-Please correct the assignments for the highlighted cells.', 'event_espresso' ),
559
+	__('Tickets must always have at least one date assigned to them but one or more of the tickets below does not have any. 
560
+Please correct the assignments for the highlighted cells.', 'event_espresso'),
561 561
 
562 562
 	// Reference: domains/core/admin/eventEditor/src/ui/ticketAssignmentsManager/components/ErrorMessage.tsx:22
563
-	__( 'Event Dates must always have at least one Ticket assigned to them but one or more of the Event Dates below does not have any. 
564
-Please correct the assignments for the highlighted cells.', 'event_espresso' ),
563
+	__('Event Dates must always have at least one Ticket assigned to them but one or more of the Event Dates below does not have any. 
564
+Please correct the assignments for the highlighted cells.', 'event_espresso'),
565 565
 
566 566
 	// Reference: domains/core/admin/eventEditor/src/ui/ticketAssignmentsManager/components/ErrorMessage.tsx:32
567
-	__( 'Please Update Assignments', 'event_espresso' ),
567
+	__('Please Update Assignments', 'event_espresso'),
568 568
 
569 569
 	// Reference: domains/core/admin/eventEditor/src/ui/ticketAssignmentsManager/components/ModalContainer.tsx:26
570
-	__( 'There seem to be some dates/tickets which have no tickets/dates assigned. Do you want to fix them now?', 'event_espresso' ),
570
+	__('There seem to be some dates/tickets which have no tickets/dates assigned. Do you want to fix them now?', 'event_espresso'),
571 571
 
572 572
 	// Reference: domains/core/admin/eventEditor/src/ui/ticketAssignmentsManager/components/ModalContainer.tsx:29
573 573
 	// Reference: packages/tpc/src/hooks/useLockedTicketAction.ts:74
574 574
 	// Reference: packages/ui-components/src/Modal/ModalWithAlert.tsx:21
575
-	__( 'Alert!', 'event_espresso' ),
575
+	__('Alert!', 'event_espresso'),
576 576
 
577 577
 	// Reference: domains/core/admin/eventEditor/src/ui/ticketAssignmentsManager/components/ModalContainer.tsx:42
578 578
 	/* translators: 1 entity id, 2 entity name */
579
-	__( 'Ticket Assignment Manager for Datetime: %1$s - %2$s', 'event_espresso' ),
579
+	__('Ticket Assignment Manager for Datetime: %1$s - %2$s', 'event_espresso'),
580 580
 
581 581
 	// Reference: domains/core/admin/eventEditor/src/ui/ticketAssignmentsManager/components/ModalContainer.tsx:49
582 582
 	/* translators: 1 entity id, 2 entity name */
583
-	__( 'Ticket Assignment Manager for Ticket: %1$s - %2$s', 'event_espresso' ),
583
+	__('Ticket Assignment Manager for Ticket: %1$s - %2$s', 'event_espresso'),
584 584
 
585 585
 	// Reference: domains/core/admin/eventEditor/src/ui/ticketAssignmentsManager/components/TicketAssignmentsManagerModal.tsx:28
586 586
 	// Reference: domains/core/admin/eventEditor/src/ui/ticketAssignmentsManager/components/table/Table.tsx:13
587
-	__( 'Ticket Assignment Manager', 'event_espresso' ),
587
+	__('Ticket Assignment Manager', 'event_espresso'),
588 588
 
589 589
 	// Reference: domains/core/admin/eventEditor/src/ui/ticketAssignmentsManager/components/config.ts:10
590
-	__( 'existing relation', 'event_espresso' ),
590
+	__('existing relation', 'event_espresso'),
591 591
 
592 592
 	// Reference: domains/core/admin/eventEditor/src/ui/ticketAssignmentsManager/components/config.ts:15
593
-	__( 'remove existing relation', 'event_espresso' ),
593
+	__('remove existing relation', 'event_espresso'),
594 594
 
595 595
 	// Reference: domains/core/admin/eventEditor/src/ui/ticketAssignmentsManager/components/config.ts:20
596
-	__( 'add new relation', 'event_espresso' ),
596
+	__('add new relation', 'event_espresso'),
597 597
 
598 598
 	// Reference: domains/core/admin/eventEditor/src/ui/ticketAssignmentsManager/components/config.ts:25
599
-	__( 'invalid relation', 'event_espresso' ),
599
+	__('invalid relation', 'event_espresso'),
600 600
 
601 601
 	// Reference: domains/core/admin/eventEditor/src/ui/ticketAssignmentsManager/components/config.ts:29
602
-	__( 'no relation', 'event_espresso' ),
602
+	__('no relation', 'event_espresso'),
603 603
 
604 604
 	// Reference: domains/core/admin/eventEditor/src/ui/ticketAssignmentsManager/components/table/BodyCell.tsx:24
605
-	__( 'assign ticket', 'event_espresso' ),
605
+	__('assign ticket', 'event_espresso'),
606 606
 
607 607
 	// Reference: domains/core/admin/eventEditor/src/ui/ticketAssignmentsManager/components/table/useGetHeaderRows.tsx:15
608
-	__( 'Assignments', 'event_espresso' ),
608
+	__('Assignments', 'event_espresso'),
609 609
 
610 610
 	// Reference: domains/core/admin/eventEditor/src/ui/ticketAssignmentsManager/components/table/useGetHeaderRows.tsx:16
611
-	__( 'Event Dates are listed below', 'event_espresso' ),
611
+	__('Event Dates are listed below', 'event_espresso'),
612 612
 
613 613
 	// Reference: domains/core/admin/eventEditor/src/ui/ticketAssignmentsManager/components/table/useGetHeaderRows.tsx:17
614
-	__( 'Tickets are listed along the top', 'event_espresso' ),
614
+	__('Tickets are listed along the top', 'event_espresso'),
615 615
 
616 616
 	// Reference: domains/core/admin/eventEditor/src/ui/ticketAssignmentsManager/components/table/useGetHeaderRows.tsx:18
617
-	__( 'Click the cell buttons to toggle assigments', 'event_espresso' ),
617
+	__('Click the cell buttons to toggle assigments', 'event_espresso'),
618 618
 
619 619
 	// Reference: domains/core/admin/eventEditor/src/ui/ticketAssignmentsManager/components/useSubmitButtonProps.ts:29
620 620
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/bulkEdit/prices/buttons/FooterButtons.tsx:16
@@ -623,1292 +623,1292 @@  discard block
 block discarded – undo
623 623
 	// Reference: packages/tpc/src/buttons/useSubmitButtonProps.tsx:29
624 624
 	// Reference: packages/ui-components/src/Modal/useSubmitButtonProps.tsx:13
625 625
 	// Reference: packages/ui-components/src/Stepper/buttons/Submit.tsx:7
626
-	__( 'Submit', 'event_espresso' ),
626
+	__('Submit', 'event_espresso'),
627 627
 
628 628
 	// Reference: domains/core/admin/eventEditor/src/ui/ticketAssignmentsManager/filters/controls/DatesByMonthControl.tsx:19
629
-	__( 'All Dates', 'event_espresso' ),
629
+	__('All Dates', 'event_espresso'),
630 630
 
631 631
 	// Reference: domains/core/admin/eventEditor/src/ui/ticketAssignmentsManager/filters/controls/DatesByMonthControl.tsx:26
632
-	__( 'dates by month', 'event_espresso' ),
632
+	__('dates by month', 'event_espresso'),
633 633
 
634 634
 	// Reference: domains/core/admin/eventEditor/src/ui/ticketAssignmentsManager/filters/controls/ShowExpiredTicketsControl.tsx:16
635
-	__( 'show expired tickets', 'event_espresso' ),
635
+	__('show expired tickets', 'event_espresso'),
636 636
 
637 637
 	// Reference: domains/core/admin/eventEditor/src/ui/ticketAssignmentsManager/filters/controls/ShowTrashedDatesControl.tsx:13
638
-	__( 'show trashed dates', 'event_espresso' ),
638
+	__('show trashed dates', 'event_espresso'),
639 639
 
640 640
 	// Reference: domains/core/admin/eventEditor/src/ui/ticketAssignmentsManager/filters/controls/ShowTrashedTicketsControl.tsx:16
641
-	__( 'show trashed tickets', 'event_espresso' ),
641
+	__('show trashed tickets', 'event_espresso'),
642 642
 
643 643
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/TicketRegistrationsLink.tsx:13
644
-	__( 'total registrations.', 'event_espresso' ),
644
+	__('total registrations.', 'event_espresso'),
645 645
 
646 646
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/TicketRegistrationsLink.tsx:14
647
-	__( 'view ALL registrations for this ticket.', 'event_espresso' ),
647
+	__('view ALL registrations for this ticket.', 'event_espresso'),
648 648
 
649 649
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/defaultTickets/Container.tsx:38
650 650
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/actions/Actions.tsx:21
651
-	__( 'Default tickets', 'event_espresso' ),
651
+	__('Default tickets', 'event_espresso'),
652 652
 
653 653
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/defaultTickets/multiStep/FooterButtons.tsx:26
654 654
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketForm/multiStep/FooterButtons.tsx:33
655
-	__( 'Set ticket prices', 'event_espresso' ),
655
+	__('Set ticket prices', 'event_espresso'),
656 656
 
657 657
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/defaultTickets/multiStep/FooterButtons.tsx:31
658
-	__( 'Skip prices - Save', 'event_espresso' ),
658
+	__('Skip prices - Save', 'event_espresso'),
659 659
 
660 660
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/defaultTickets/multiStep/FooterButtons.tsx:37
661 661
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketForm/multiStep/FooterButtons.tsx:57
662
-	__( 'Ticket details', 'event_espresso' ),
662
+	__('Ticket details', 'event_espresso'),
663 663
 
664 664
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/defaultTickets/multiStep/FooterButtons.tsx:38
665
-	__( 'Save', 'event_espresso' ),
665
+	__('Save', 'event_espresso'),
666 666
 
667 667
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/defaultTickets/multiStep/Modal.tsx:22
668 668
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketForm/multiStep/Modal.tsx:26
669 669
 	/* translators: %s ticket id */
670
-	__( 'Edit ticket %s', 'event_espresso' ),
670
+	__('Edit ticket %s', 'event_espresso'),
671 671
 
672 672
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/defaultTickets/multiStep/Modal.tsx:25
673 673
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketForm/multiStep/Modal.tsx:29
674
-	__( 'New Ticket Details', 'event_espresso' ),
674
+	__('New Ticket Details', 'event_espresso'),
675 675
 
676 676
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/defaultTickets/multiStep/TicketFormSteps.tsx:10
677 677
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketForm/multiStep/TicketFormSteps.tsx:10
678
-	__( 'primary information about the ticket', 'event_espresso' ),
678
+	__('primary information about the ticket', 'event_espresso'),
679 679
 
680 680
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/defaultTickets/multiStep/TicketFormSteps.tsx:10
681 681
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketForm/multiStep/TicketFormSteps.tsx:10
682
-	__( 'Ticket Details', 'event_espresso' ),
682
+	__('Ticket Details', 'event_espresso'),
683 683
 
684 684
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/defaultTickets/multiStep/TicketFormSteps.tsx:12
685 685
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketForm/multiStep/TicketFormSteps.tsx:12
686
-	__( 'apply ticket price modifiers and taxes', 'event_espresso' ),
686
+	__('apply ticket price modifiers and taxes', 'event_espresso'),
687 687
 
688 688
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/defaultTickets/multiStep/TicketFormSteps.tsx:14
689 689
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketForm/multiStep/TicketFormSteps.tsx:14
690
-	__( 'Price Calculator', 'event_espresso' ),
690
+	__('Price Calculator', 'event_espresso'),
691 691
 
692 692
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/defaultTickets/multiStep/TicketFormSteps.tsx:16
693 693
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketForm/multiStep/TicketFormSteps.tsx:16
694
-	__( 'Assign Dates', 'event_espresso' ),
694
+	__('Assign Dates', 'event_espresso'),
695 695
 
696 696
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketForm/multiStep/FooterButtons.tsx:39
697
-	__( 'Skip prices - assign dates', 'event_espresso' ),
697
+	__('Skip prices - assign dates', 'event_espresso'),
698 698
 
699 699
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketForm/multiStep/FooterButtons.tsx:50
700
-	__( 'Save and assign dates', 'event_espresso' ),
700
+	__('Save and assign dates', 'event_espresso'),
701 701
 
702 702
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketForm/useTicketFormConfig.ts:104
703
-	__( 'Ticket Sales', 'event_espresso' ),
703
+	__('Ticket Sales', 'event_espresso'),
704 704
 
705 705
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketForm/useTicketFormConfig.ts:130
706 706
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/bulkEdit/details/useBulkEditFormConfig.ts:112
707
-	__( 'Quantity For Sale', 'event_espresso' ),
707
+	__('Quantity For Sale', 'event_espresso'),
708 708
 
709 709
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketForm/useTicketFormConfig.ts:136
710
-	__( 'The maximum number of this ticket available for sale.', 'event_espresso' ),
710
+	__('The maximum number of this ticket available for sale.', 'event_espresso'),
711 711
 
712 712
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketForm/useTicketFormConfig.ts:138
713
-	__( 'Set to 0 to stop sales, or leave blank for no limit.', 'event_espresso' ),
713
+	__('Set to 0 to stop sales, or leave blank for no limit.', 'event_espresso'),
714 714
 
715 715
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketForm/useTicketFormConfig.ts:144
716 716
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/bulkEdit/details/useBulkEditFormConfig.ts:121
717
-	__( 'Number of Uses', 'event_espresso' ),
717
+	__('Number of Uses', 'event_espresso'),
718 718
 
719 719
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketForm/useTicketFormConfig.ts:150
720
-	__( 'Controls the total number of times this ticket can be used, regardless of the number of dates it is assigned to.', 'event_espresso' ),
720
+	__('Controls the total number of times this ticket can be used, regardless of the number of dates it is assigned to.', 'event_espresso'),
721 721
 
722 722
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketForm/useTicketFormConfig.ts:154
723
-	__( 'Example: A ticket might have access to 4 different dates, but setting this field to 2 would mean that the ticket could only be used twice. Leave blank for no limit.', 'event_espresso' ),
723
+	__('Example: A ticket might have access to 4 different dates, but setting this field to 2 would mean that the ticket could only be used twice. Leave blank for no limit.', 'event_espresso'),
724 724
 
725 725
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketForm/useTicketFormConfig.ts:162
726 726
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/bulkEdit/details/useBulkEditFormConfig.ts:129
727
-	__( 'Minimum Quantity', 'event_espresso' ),
727
+	__('Minimum Quantity', 'event_espresso'),
728 728
 
729 729
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketForm/useTicketFormConfig.ts:167
730
-	__( 'The minimum quantity that can be selected for this ticket. Use this to create ticket bundles or graduated pricing.', 'event_espresso' ),
730
+	__('The minimum quantity that can be selected for this ticket. Use this to create ticket bundles or graduated pricing.', 'event_espresso'),
731 731
 
732 732
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketForm/useTicketFormConfig.ts:171
733
-	__( 'Leave blank for no minimum.', 'event_espresso' ),
733
+	__('Leave blank for no minimum.', 'event_espresso'),
734 734
 
735 735
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketForm/useTicketFormConfig.ts:177
736 736
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/bulkEdit/details/useBulkEditFormConfig.ts:137
737
-	__( 'Maximum Quantity', 'event_espresso' ),
737
+	__('Maximum Quantity', 'event_espresso'),
738 738
 
739 739
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketForm/useTicketFormConfig.ts:183
740
-	__( 'The maximum quantity that can be selected for this ticket. Use this to create ticket bundles or graduated pricing.', 'event_espresso' ),
740
+	__('The maximum quantity that can be selected for this ticket. Use this to create ticket bundles or graduated pricing.', 'event_espresso'),
741 741
 
742 742
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketForm/useTicketFormConfig.ts:187
743
-	__( 'Leave blank for no maximum.', 'event_espresso' ),
743
+	__('Leave blank for no maximum.', 'event_espresso'),
744 744
 
745 745
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketForm/useTicketFormConfig.ts:193
746 746
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/bulkEdit/details/useBulkEditFormConfig.ts:146
747
-	__( 'Required Ticket', 'event_espresso' ),
747
+	__('Required Ticket', 'event_espresso'),
748 748
 
749 749
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketForm/useTicketFormConfig.ts:195
750
-	__( 'If enabled, the ticket must be selected and will appear first in frontend ticket lists.', 'event_espresso' ),
750
+	__('If enabled, the ticket must be selected and will appear first in frontend ticket lists.', 'event_espresso'),
751 751
 
752 752
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketForm/useTicketFormConfig.ts:209
753
-	__( 'Visibility', 'event_espresso' ),
753
+	__('Visibility', 'event_espresso'),
754 754
 
755 755
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketForm/useTicketFormConfig.ts:211
756
-	__( 'Where the ticket can be viewed throughout the UI.', 'event_espresso' ),
756
+	__('Where the ticket can be viewed throughout the UI.', 'event_espresso'),
757 757
 
758 758
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/TicketsList.tsx:35
759
-	__( 'Available Tickets', 'event_espresso' ),
759
+	__('Available Tickets', 'event_espresso'),
760 760
 
761 761
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/TicketsList.tsx:38
762
-	__( 'loading tickets…', 'event_espresso' ),
762
+	__('loading tickets…', 'event_espresso'),
763 763
 
764 764
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/actionsMenu/AssignDatesButton.tsx:26
765
-	__( 'Number of related dates', 'event_espresso' ),
765
+	__('Number of related dates', 'event_espresso'),
766 766
 
767 767
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/actionsMenu/AssignDatesButton.tsx:27
768
-	__( 'There are no event dates assigned to this ticket. Please click the calendar icon to update the assignments.', 'event_espresso' ),
768
+	__('There are no event dates assigned to this ticket. Please click the calendar icon to update the assignments.', 'event_espresso'),
769 769
 
770 770
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/actionsMenu/AssignDatesButton.tsx:37
771
-	__( 'assign dates', 'event_espresso' ),
771
+	__('assign dates', 'event_espresso'),
772 772
 
773 773
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/actionsMenu/dropdown/DeleteTicket.tsx:18
774
-	__( 'Permanently delete Ticket?', 'event_espresso' ),
774
+	__('Permanently delete Ticket?', 'event_espresso'),
775 775
 
776 776
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/actionsMenu/dropdown/DeleteTicket.tsx:18
777
-	__( 'Move Ticket to Trash?', 'event_espresso' ),
777
+	__('Move Ticket to Trash?', 'event_espresso'),
778 778
 
779 779
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/actionsMenu/dropdown/DeleteTicket.tsx:21
780
-	__( 'Are you sure you want to permanently delete this ticket? This action is permanent and can not be undone.', 'event_espresso' ),
780
+	__('Are you sure you want to permanently delete this ticket? This action is permanent and can not be undone.', 'event_espresso'),
781 781
 
782 782
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/actionsMenu/dropdown/DeleteTicket.tsx:22
783
-	__( 'Are you sure you want to move this ticket to the trash? You can "untrash" this ticket later if you need to.', 'event_espresso' ),
783
+	__('Are you sure you want to move this ticket to the trash? You can "untrash" this ticket later if you need to.', 'event_espresso'),
784 784
 
785 785
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/actionsMenu/dropdown/DeleteTicket.tsx:44
786 786
 	// Reference: packages/ee-components/src/SimpleTicketCard/actions/Trash.tsx:6
787
-	__( 'trash ticket', 'event_espresso' ),
787
+	__('trash ticket', 'event_espresso'),
788 788
 
789 789
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/actionsMenu/dropdown/TicketMainMenu.tsx:25
790
-	__( 'ticket main menu', 'event_espresso' ),
790
+	__('ticket main menu', 'event_espresso'),
791 791
 
792 792
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/actionsMenu/dropdown/TicketMainMenu.tsx:38
793 793
 	// Reference: packages/ee-components/src/SimpleTicketCard/actions/Edit.tsx:15
794
-	__( 'edit ticket', 'event_espresso' ),
794
+	__('edit ticket', 'event_espresso'),
795 795
 
796 796
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/actionsMenu/dropdown/TicketMainMenu.tsx:39
797
-	__( 'copy ticket', 'event_espresso' ),
797
+	__('copy ticket', 'event_espresso'),
798 798
 
799 799
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/bulkEdit/actions/Actions.tsx:43
800
-	__( 'edit ticket details', 'event_espresso' ),
800
+	__('edit ticket details', 'event_espresso'),
801 801
 
802 802
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/bulkEdit/actions/Actions.tsx:47
803
-	__( 'delete tickets', 'event_espresso' ),
803
+	__('delete tickets', 'event_espresso'),
804 804
 
805 805
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/bulkEdit/actions/Actions.tsx:47
806
-	__( 'trash tickets', 'event_espresso' ),
806
+	__('trash tickets', 'event_espresso'),
807 807
 
808 808
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/bulkEdit/actions/Actions.tsx:51
809
-	__( 'edit ticket prices', 'event_espresso' ),
809
+	__('edit ticket prices', 'event_espresso'),
810 810
 
811 811
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/bulkEdit/delete/Delete.tsx:14
812
-	__( 'Are you sure you want to permanently delete these tickets? This action can NOT be undone!', 'event_espresso' ),
812
+	__('Are you sure you want to permanently delete these tickets? This action can NOT be undone!', 'event_espresso'),
813 813
 
814 814
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/bulkEdit/delete/Delete.tsx:15
815
-	__( 'Are you sure you want to trash these tickets?', 'event_espresso' ),
815
+	__('Are you sure you want to trash these tickets?', 'event_espresso'),
816 816
 
817 817
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/bulkEdit/delete/Delete.tsx:16
818
-	__( 'Delete tickets permanently', 'event_espresso' ),
818
+	__('Delete tickets permanently', 'event_espresso'),
819 819
 
820 820
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/bulkEdit/delete/Delete.tsx:16
821
-	__( 'Trash tickets', 'event_espresso' ),
821
+	__('Trash tickets', 'event_espresso'),
822 822
 
823 823
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/bulkEdit/details/EditDetails.tsx:21
824
-	__( 'Bulk edit ticket details', 'event_espresso' ),
824
+	__('Bulk edit ticket details', 'event_espresso'),
825 825
 
826 826
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/bulkEdit/details/EditDetails.tsx:22
827
-	__( 'any changes will be applied to ALL of the selected tickets.', 'event_espresso' ),
827
+	__('any changes will be applied to ALL of the selected tickets.', 'event_espresso'),
828 828
 
829 829
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/bulkEdit/prices/EditPrices.tsx:19
830
-	__( 'Bulk edit ticket prices', 'event_espresso' ),
830
+	__('Bulk edit ticket prices', 'event_espresso'),
831 831
 
832 832
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/bulkEdit/prices/buttons/EditModeButtons.tsx:20
833
-	__( 'Edit all prices together', 'event_espresso' ),
833
+	__('Edit all prices together', 'event_espresso'),
834 834
 
835 835
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/bulkEdit/prices/buttons/EditModeButtons.tsx:21
836
-	__( 'Edit all the selected ticket prices dynamically', 'event_espresso' ),
836
+	__('Edit all the selected ticket prices dynamically', 'event_espresso'),
837 837
 
838 838
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/bulkEdit/prices/buttons/EditModeButtons.tsx:25
839
-	__( 'Edit prices individually', 'event_espresso' ),
839
+	__('Edit prices individually', 'event_espresso'),
840 840
 
841 841
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/bulkEdit/prices/buttons/EditModeButtons.tsx:26
842
-	__( 'Edit prices for each ticket individually', 'event_espresso' ),
842
+	__('Edit prices for each ticket individually', 'event_espresso'),
843 843
 
844 844
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/bulkEdit/prices/buttons/FooterButtons.tsx:14
845 845
 	// Reference: packages/ee-components/src/bulkEdit/details/Submit.tsx:34
846 846
 	// Reference: packages/form/src/ResetButton.tsx:18
847 847
 	// Reference: packages/tpc/src/buttons/useResetButtonProps.tsx:12
848
-	__( 'Reset', 'event_espresso' ),
848
+	__('Reset', 'event_espresso'),
849 849
 
850 850
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/bulkEdit/prices/buttons/FooterButtons.tsx:15
851 851
 	// Reference: packages/tpc/src/hooks/useLockedTicketAction.ts:76
852 852
 	// Reference: packages/ui-components/src/FormBuilder/FormSection/FormSectionSidebar.tsx:138
853 853
 	// Reference: packages/ui-components/src/Modal/useCancelButtonProps.tsx:10
854
-	__( 'Cancel', 'event_espresso' ),
854
+	__('Cancel', 'event_espresso'),
855 855
 
856 856
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/bulkEdit/prices/editSeparately/TPCInstance.tsx:26
857 857
 	/* translators: %s ticket name */
858
-	__( 'Edit prices for Ticket: %s', 'event_espresso' ),
858
+	__('Edit prices for Ticket: %s', 'event_espresso'),
859 859
 
860 860
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/cardView/TicketCardSidebar.tsx:37
861
-	__( 'Edit Ticket Sale Dates', 'event_espresso' ),
861
+	__('Edit Ticket Sale Dates', 'event_espresso'),
862 862
 
863 863
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/cardView/TicketCardSidebar.tsx:41
864
-	__( 'edit ticket sales start and end dates', 'event_espresso' ),
864
+	__('edit ticket sales start and end dates', 'event_espresso'),
865 865
 
866 866
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/cardView/TicketDetailsPanel.tsx:28
867
-	__( 'quantity', 'event_espresso' ),
867
+	__('quantity', 'event_espresso'),
868 868
 
869 869
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/cardView/TicketQuantity.tsx:27
870
-	__( 'edit quantity of tickets available…', 'event_espresso' ),
870
+	__('edit quantity of tickets available…', 'event_espresso'),
871 871
 
872 872
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/config.ts:10
873
-	__( 'Move Ticket to Trash', 'event_espresso' ),
873
+	__('Move Ticket to Trash', 'event_espresso'),
874 874
 
875 875
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/config.ts:15
876 876
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/tableView/useHeaderRowGenerator.tsx:52
877
-	__( 'On Sale', 'event_espresso' ),
877
+	__('On Sale', 'event_espresso'),
878 878
 
879 879
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/config.ts:17
880
-	__( 'Pending', 'event_espresso' ),
880
+	__('Pending', 'event_espresso'),
881 881
 
882 882
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/config.ts:7
883
-	__( 'Edit Ticket Details', 'event_espresso' ),
883
+	__('Edit Ticket Details', 'event_espresso'),
884 884
 
885 885
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/config.ts:8
886
-	__( 'Manage Date Assignments', 'event_espresso' ),
886
+	__('Manage Date Assignments', 'event_espresso'),
887 887
 
888 888
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/config.ts:9
889 889
 	// Reference: packages/tpc/src/components/table/Table.tsx:44
890
-	__( 'Ticket Price Calculator', 'event_espresso' ),
890
+	__('Ticket Price Calculator', 'event_espresso'),
891 891
 
892 892
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/editable/EditablePrice.tsx:39
893
-	__( 'edit ticket total…', 'event_espresso' ),
893
+	__('edit ticket total…', 'event_espresso'),
894 894
 
895 895
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/editable/EditablePrice.tsx:53
896
-	__( 'set price…', 'event_espresso' ),
896
+	__('set price…', 'event_espresso'),
897 897
 
898 898
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/filterBar/controls/IsChainedButton.tsx:23
899
-	__( 'tickets list is linked to dates list and is showing tickets for above dates only', 'event_espresso' ),
899
+	__('tickets list is linked to dates list and is showing tickets for above dates only', 'event_espresso'),
900 900
 
901 901
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/filterBar/controls/IsChainedButton.tsx:24
902
-	__( 'tickets list is unlinked and is showing tickets for all event dates', 'event_espresso' ),
902
+	__('tickets list is unlinked and is showing tickets for all event dates', 'event_espresso'),
903 903
 
904 904
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/filterBar/controls/options.ts:10
905
-	__( 'ticket sales start and end dates', 'event_espresso' ),
905
+	__('ticket sales start and end dates', 'event_espresso'),
906 906
 
907 907
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/filterBar/controls/options.ts:15
908
-	__( 'tickets with 90% or more sold', 'event_espresso' ),
908
+	__('tickets with 90% or more sold', 'event_espresso'),
909 909
 
910 910
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/filterBar/controls/options.ts:16
911
-	__( 'tickets with 75% or more sold', 'event_espresso' ),
911
+	__('tickets with 75% or more sold', 'event_espresso'),
912 912
 
913 913
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/filterBar/controls/options.ts:17
914
-	__( 'tickets with 50% or more sold', 'event_espresso' ),
914
+	__('tickets with 50% or more sold', 'event_espresso'),
915 915
 
916 916
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/filterBar/controls/options.ts:19
917
-	__( 'tickets with less than 50% sold', 'event_espresso' ),
917
+	__('tickets with less than 50% sold', 'event_espresso'),
918 918
 
919 919
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/filterBar/controls/options.ts:28
920
-	__( 'all tickets for all dates', 'event_espresso' ),
920
+	__('all tickets for all dates', 'event_espresso'),
921 921
 
922 922
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/filterBar/controls/options.ts:29
923
-	__( 'all on sale and sale pending', 'event_espresso' ),
923
+	__('all on sale and sale pending', 'event_espresso'),
924 924
 
925 925
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/filterBar/controls/options.ts:30
926
-	__( 'on sale tickets only', 'event_espresso' ),
926
+	__('on sale tickets only', 'event_espresso'),
927 927
 
928 928
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/filterBar/controls/options.ts:31
929
-	__( 'sale pending tickets only', 'event_espresso' ),
929
+	__('sale pending tickets only', 'event_espresso'),
930 930
 
931 931
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/filterBar/controls/options.ts:32
932
-	__( 'next on sale or sale pending only', 'event_espresso' ),
932
+	__('next on sale or sale pending only', 'event_espresso'),
933 933
 
934 934
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/filterBar/controls/options.ts:33
935
-	__( 'sold out tickets only', 'event_espresso' ),
935
+	__('sold out tickets only', 'event_espresso'),
936 936
 
937 937
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/filterBar/controls/options.ts:34
938
-	__( 'expired tickets only', 'event_espresso' ),
938
+	__('expired tickets only', 'event_espresso'),
939 939
 
940 940
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/filterBar/controls/options.ts:35
941
-	__( 'trashed tickets only', 'event_espresso' ),
941
+	__('trashed tickets only', 'event_espresso'),
942 942
 
943 943
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/filterBar/controls/options.ts:40
944
-	__( 'all tickets for above dates', 'event_espresso' ),
944
+	__('all tickets for above dates', 'event_espresso'),
945 945
 
946 946
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/filterBar/controls/options.ts:44
947
-	__( 'ticket sale date', 'event_espresso' ),
947
+	__('ticket sale date', 'event_espresso'),
948 948
 
949 949
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/filterBar/controls/options.ts:45
950
-	__( 'ticket name', 'event_espresso' ),
950
+	__('ticket name', 'event_espresso'),
951 951
 
952 952
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/filterBar/controls/options.ts:46
953
-	__( 'ticket ID', 'event_espresso' ),
953
+	__('ticket ID', 'event_espresso'),
954 954
 
955 955
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/filterBar/controls/options.ts:52
956
-	__( 'link', 'event_espresso' ),
956
+	__('link', 'event_espresso'),
957 957
 
958 958
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/filterBar/controls/options.ts:8
959
-	__( 'ticket sales start date only', 'event_espresso' ),
959
+	__('ticket sales start date only', 'event_espresso'),
960 960
 
961 961
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/filterBar/controls/options.ts:9
962
-	__( 'ticket sales end date only', 'event_espresso' ),
962
+	__('ticket sales end date only', 'event_espresso'),
963 963
 
964 964
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/newTicketOptions/AddSingleTicket.tsx:18
965
-	__( 'Add New Ticket', 'event_espresso' ),
965
+	__('Add New Ticket', 'event_espresso'),
966 966
 
967 967
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/newTicketOptions/AddSingleTicket.tsx:32
968
-	__( 'Add a single ticket and assign the dates to it', 'event_espresso' ),
968
+	__('Add a single ticket and assign the dates to it', 'event_espresso'),
969 969
 
970 970
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/newTicketOptions/AddSingleTicket.tsx:34
971
-	__( 'Single Ticket', 'event_espresso' ),
971
+	__('Single Ticket', 'event_espresso'),
972 972
 
973 973
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/tableView/TableView.tsx:39
974
-	__( 'Tickets', 'event_espresso' ),
974
+	__('Tickets', 'event_espresso'),
975 975
 
976 976
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/tableView/useHeaderRowGenerator.tsx:110
977
-	__( 'Registrations', 'event_espresso' ),
977
+	__('Registrations', 'event_espresso'),
978 978
 
979 979
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/tableView/useHeaderRowGenerator.tsx:51
980
-	__( 'Goes on Sale', 'event_espresso' ),
980
+	__('Goes on Sale', 'event_espresso'),
981 981
 
982 982
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/tableView/useHeaderRowGenerator.tsx:65
983
-	__( 'Sale Ends', 'event_espresso' ),
983
+	__('Sale Ends', 'event_espresso'),
984 984
 
985 985
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/tableView/useHeaderRowGenerator.tsx:66
986
-	__( 'Ends', 'event_espresso' ),
986
+	__('Ends', 'event_espresso'),
987 987
 
988 988
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/tableView/useHeaderRowGenerator.tsx:78
989
-	__( 'Price', 'event_espresso' ),
989
+	__('Price', 'event_espresso'),
990 990
 
991 991
 	// Reference: domains/core/admin/eventEditor/src/ui/tickets/ticketsList/tableView/useHeaderRowGenerator.tsx:88
992
-	__( 'Quantity', 'event_espresso' ),
992
+	__('Quantity', 'event_espresso'),
993 993
 
994 994
 	// Reference: domains/core/admin/wpPluginsPage/src/exitSurvey/Popup.tsx:29
995
-	__( 'Do you have a moment to share why you are deactivating Event Espresso?', 'event_espresso' ),
995
+	__('Do you have a moment to share why you are deactivating Event Espresso?', 'event_espresso'),
996 996
 
997 997
 	// Reference: domains/core/admin/wpPluginsPage/src/exitSurvey/Popup.tsx:40
998
-	__( 'Skip', 'event_espresso' ),
998
+	__('Skip', 'event_espresso'),
999 999
 
1000 1000
 	// Reference: domains/core/admin/wpPluginsPage/src/exitSurvey/Popup.tsx:42
1001
-	__( 'Sure I\'ll help', 'event_espresso' ),
1001
+	__('Sure I\'ll help', 'event_espresso'),
1002 1002
 
1003 1003
 	// Reference: packages/adapters/src/Pagination/Pagination.tsx:23
1004
-	__( 'pagination', 'event_espresso' ),
1004
+	__('pagination', 'event_espresso'),
1005 1005
 
1006 1006
 	// Reference: packages/adapters/src/TagSelector/TagSelector.tsx:117
1007
-	__( 'toggle menu', 'event_espresso' ),
1007
+	__('toggle menu', 'event_espresso'),
1008 1008
 
1009 1009
 	// Reference: packages/constants/src/datetime.ts:10
1010
-	__( 'Postponed', 'event_espresso' ),
1010
+	__('Postponed', 'event_espresso'),
1011 1011
 
1012 1012
 	// Reference: packages/constants/src/datetime.ts:11
1013
-	__( 'SoldOut', 'event_espresso' ),
1013
+	__('SoldOut', 'event_espresso'),
1014 1014
 
1015 1015
 	// Reference: packages/constants/src/datetime.ts:7
1016 1016
 	// Reference: packages/predicates/src/registration/statusOptions.ts:10
1017
-	__( 'Cancelled', 'event_espresso' ),
1017
+	__('Cancelled', 'event_espresso'),
1018 1018
 
1019 1019
 	// Reference: packages/constants/src/datetime.ts:9
1020
-	__( 'Inactive', 'event_espresso' ),
1020
+	__('Inactive', 'event_espresso'),
1021 1021
 
1022 1022
 	// Reference: packages/dates/src/components/DateRangePicker/DateRangePickerLegend.tsx:13
1023
-	__( 'day in range', 'event_espresso' ),
1023
+	__('day in range', 'event_espresso'),
1024 1024
 
1025 1025
 	// Reference: packages/dates/src/components/DateRangePicker/DateRangePickerLegend.tsx:17
1026 1026
 	// Reference: packages/dates/src/components/DateRangePicker/index.tsx:79
1027
-	__( 'end date', 'event_espresso' ),
1027
+	__('end date', 'event_espresso'),
1028 1028
 
1029 1029
 	// Reference: packages/dates/src/components/DateTimePicker.tsx:13
1030 1030
 	// Reference: packages/dates/src/components/TimePicker.tsx:13
1031
-	__( 'time', 'event_espresso' ),
1031
+	__('time', 'event_espresso'),
1032 1032
 
1033 1033
 	// Reference: packages/dates/src/constants.ts:5
1034
-	__( 'End Date & Time must be set later than the Start Date & Time', 'event_espresso' ),
1034
+	__('End Date & Time must be set later than the Start Date & Time', 'event_espresso'),
1035 1035
 
1036 1036
 	// Reference: packages/dates/src/constants.ts:7
1037
-	__( 'Start Date & Time must be set before the End Date & Time', 'event_espresso' ),
1037
+	__('Start Date & Time must be set before the End Date & Time', 'event_espresso'),
1038 1038
 
1039 1039
 	// Reference: packages/dates/src/utils/misc.ts:15
1040
-	__( 'month(s)', 'event_espresso' ),
1040
+	__('month(s)', 'event_espresso'),
1041 1041
 
1042 1042
 	// Reference: packages/dates/src/utils/misc.ts:16
1043
-	__( 'week(s)', 'event_espresso' ),
1043
+	__('week(s)', 'event_espresso'),
1044 1044
 
1045 1045
 	// Reference: packages/dates/src/utils/misc.ts:17
1046
-	__( 'day(s)', 'event_espresso' ),
1046
+	__('day(s)', 'event_espresso'),
1047 1047
 
1048 1048
 	// Reference: packages/dates/src/utils/misc.ts:18
1049
-	__( 'hour(s)', 'event_espresso' ),
1049
+	__('hour(s)', 'event_espresso'),
1050 1050
 
1051 1051
 	// Reference: packages/dates/src/utils/misc.ts:19
1052
-	__( 'minute(s)', 'event_espresso' ),
1052
+	__('minute(s)', 'event_espresso'),
1053 1053
 
1054 1054
 	// Reference: packages/edtr-services/src/apollo/initialization/useCacheRehydration.ts:105
1055
-	__( 'datetimes initialized', 'event_espresso' ),
1055
+	__('datetimes initialized', 'event_espresso'),
1056 1056
 
1057 1057
 	// Reference: packages/edtr-services/src/apollo/initialization/useCacheRehydration.ts:115
1058
-	__( 'tickets initialized', 'event_espresso' ),
1058
+	__('tickets initialized', 'event_espresso'),
1059 1059
 
1060 1060
 	// Reference: packages/edtr-services/src/apollo/initialization/useCacheRehydration.ts:125
1061
-	__( 'prices initialized', 'event_espresso' ),
1061
+	__('prices initialized', 'event_espresso'),
1062 1062
 
1063 1063
 	// Reference: packages/edtr-services/src/apollo/initialization/useCacheRehydration.ts:95
1064
-	__( 'price types initialized', 'event_espresso' ),
1064
+	__('price types initialized', 'event_espresso'),
1065 1065
 
1066 1066
 	// Reference: packages/edtr-services/src/apollo/mutations/useReorderEntities.ts:72
1067
-	__( 'reordering has been applied', 'event_espresso' ),
1067
+	__('reordering has been applied', 'event_espresso'),
1068 1068
 
1069 1069
 	// Reference: packages/edtr-services/src/utils/dateAndTime.ts:38
1070 1070
 	// Reference: packages/ui-components/src/EditDateRangeButton/EditDateRangeButton.tsx:39
1071
-	__( 'End date has been adjusted', 'event_espresso' ),
1071
+	__('End date has been adjusted', 'event_espresso'),
1072 1072
 
1073 1073
 	// Reference: packages/edtr-services/src/utils/dateAndTime.ts:59
1074
-	__( 'Required', 'event_espresso' ),
1074
+	__('Required', 'event_espresso'),
1075 1075
 
1076 1076
 	// Reference: packages/edtr-services/src/utils/dateAndTime.ts:64
1077
-	__( 'Start Date is required', 'event_espresso' ),
1077
+	__('Start Date is required', 'event_espresso'),
1078 1078
 
1079 1079
 	// Reference: packages/edtr-services/src/utils/dateAndTime.ts:68
1080
-	__( 'End Date is required', 'event_espresso' ),
1080
+	__('End Date is required', 'event_espresso'),
1081 1081
 
1082 1082
 	// Reference: packages/ee-components/src/EntityList/EntityList.tsx:31
1083
-	__( 'no results found', 'event_espresso' ),
1083
+	__('no results found', 'event_espresso'),
1084 1084
 
1085 1085
 	// Reference: packages/ee-components/src/EntityList/EntityList.tsx:32
1086
-	__( 'try changing filter settings', 'event_espresso' ),
1086
+	__('try changing filter settings', 'event_espresso'),
1087 1087
 
1088 1088
 	// Reference: packages/ee-components/src/SimpleTicketCard/SimpleTicketCard.tsx:27
1089 1089
 	// Reference: packages/ui-components/src/CalendarDateSwitcher/CalendarDateSwitcher.tsx:34
1090
-	__( 'starts', 'event_espresso' ),
1090
+	__('starts', 'event_espresso'),
1091 1091
 
1092 1092
 	// Reference: packages/ee-components/src/SimpleTicketCard/SimpleTicketCard.tsx:34
1093 1093
 	// Reference: packages/ui-components/src/CalendarDateSwitcher/CalendarDateSwitcher.tsx:47
1094
-	__( 'ends', 'event_espresso' ),
1094
+	__('ends', 'event_espresso'),
1095 1095
 
1096 1096
 	// Reference: packages/ee-components/src/bulkEdit/ActionCheckbox.tsx:38
1097 1097
 	/* translators: %d entity id */
1098
-	__( 'select entity with id %d', 'event_espresso' ),
1098
+	__('select entity with id %d', 'event_espresso'),
1099 1099
 
1100 1100
 	// Reference: packages/ee-components/src/bulkEdit/ActionCheckbox.tsx:41
1101
-	__( 'select all entities', 'event_espresso' ),
1101
+	__('select all entities', 'event_espresso'),
1102 1102
 
1103 1103
 	// Reference: packages/ee-components/src/bulkEdit/details/BulkEditDetails.tsx:20
1104
-	__( 'Note: ', 'event_espresso' ),
1104
+	__('Note: ', 'event_espresso'),
1105 1105
 
1106 1106
 	// Reference: packages/ee-components/src/bulkEdit/details/BulkEditDetails.tsx:20
1107
-	__( 'any changes will be applied to ALL of the selected entities.', 'event_espresso' ),
1107
+	__('any changes will be applied to ALL of the selected entities.', 'event_espresso'),
1108 1108
 
1109 1109
 	// Reference: packages/ee-components/src/bulkEdit/details/BulkEditDetails.tsx:26
1110
-	__( 'Bulk edit details', 'event_espresso' ),
1110
+	__('Bulk edit details', 'event_espresso'),
1111 1111
 
1112 1112
 	// Reference: packages/ee-components/src/bulkEdit/details/Submit.tsx:17
1113
-	__( 'Are you sure you want to bulk update the details?', 'event_espresso' ),
1113
+	__('Are you sure you want to bulk update the details?', 'event_espresso'),
1114 1114
 
1115 1115
 	// Reference: packages/ee-components/src/bulkEdit/details/Submit.tsx:18
1116
-	__( 'Bulk update details', 'event_espresso' ),
1116
+	__('Bulk update details', 'event_espresso'),
1117 1117
 
1118 1118
 	// Reference: packages/ee-components/src/filterBar/SortByControl/index.tsx:26
1119
-	__( 'reorder dates', 'event_espresso' ),
1119
+	__('reorder dates', 'event_espresso'),
1120 1120
 
1121 1121
 	// Reference: packages/ee-components/src/filterBar/SortByControl/index.tsx:26
1122
-	__( 'reorder tickets', 'event_espresso' ),
1122
+	__('reorder tickets', 'event_espresso'),
1123 1123
 
1124 1124
 	// Reference: packages/form/src/adapters/WPMediaImage.tsx:12
1125
-	__( 'Select Image', 'event_espresso' ),
1125
+	__('Select Image', 'event_espresso'),
1126 1126
 
1127 1127
 	// Reference: packages/form/src/adapters/WPMediaImage.tsx:44
1128 1128
 	// Reference: packages/rich-text-editor/src/components/AdvancedTextEditor/toolbarButtons/WPMedia.tsx:11
1129 1129
 	// Reference: packages/rich-text-editor/src/rte-old/components/toolbarButtons/WPMedia.tsx:12
1130
-	__( 'Select', 'event_espresso' ),
1130
+	__('Select', 'event_espresso'),
1131 1131
 
1132 1132
 	// Reference: packages/form/src/renderers/RepeatableRenderer.tsx:36
1133 1133
 	/* translators: %d the entry number */
1134
-	__( 'Entry %d', 'event_espresso' ),
1134
+	__('Entry %d', 'event_espresso'),
1135 1135
 
1136 1136
 	// Reference: packages/form/src/renderers/RepeatableRenderer.tsx:52
1137 1137
 	// Reference: packages/ui-components/src/FormBuilder/FormSection/FormSectionSidebar.tsx:130
1138 1138
 	// Reference: packages/ui-components/src/SimpleEntityList/EntityTemplate.tsx:27
1139
-	__( 'Add', 'event_espresso' ),
1139
+	__('Add', 'event_espresso'),
1140 1140
 
1141 1141
 	// Reference: packages/helpers/src/datetimes/getStatusTextLabel.ts:11
1142 1142
 	// Reference: packages/helpers/src/tickets/getStatusTextLabel.ts:17
1143
-	__( 'sold out', 'event_espresso' ),
1143
+	__('sold out', 'event_espresso'),
1144 1144
 
1145 1145
 	// Reference: packages/helpers/src/datetimes/getStatusTextLabel.ts:14
1146 1146
 	// Reference: packages/helpers/src/tickets/getStatusTextLabel.ts:14
1147
-	__( 'expired', 'event_espresso' ),
1147
+	__('expired', 'event_espresso'),
1148 1148
 
1149 1149
 	// Reference: packages/helpers/src/datetimes/getStatusTextLabel.ts:17
1150
-	__( 'upcoming', 'event_espresso' ),
1150
+	__('upcoming', 'event_espresso'),
1151 1151
 
1152 1152
 	// Reference: packages/helpers/src/datetimes/getStatusTextLabel.ts:20
1153
-	__( 'active', 'event_espresso' ),
1153
+	__('active', 'event_espresso'),
1154 1154
 
1155 1155
 	// Reference: packages/helpers/src/datetimes/getStatusTextLabel.ts:23
1156 1156
 	// Reference: packages/helpers/src/tickets/getStatusTextLabel.ts:11
1157
-	__( 'trashed', 'event_espresso' ),
1157
+	__('trashed', 'event_espresso'),
1158 1158
 
1159 1159
 	// Reference: packages/helpers/src/datetimes/getStatusTextLabel.ts:26
1160
-	__( 'cancelled', 'event_espresso' ),
1160
+	__('cancelled', 'event_espresso'),
1161 1161
 
1162 1162
 	// Reference: packages/helpers/src/datetimes/getStatusTextLabel.ts:29
1163
-	__( 'postponed', 'event_espresso' ),
1163
+	__('postponed', 'event_espresso'),
1164 1164
 
1165 1165
 	// Reference: packages/helpers/src/datetimes/getStatusTextLabel.ts:33
1166
-	__( 'inactive', 'event_espresso' ),
1166
+	__('inactive', 'event_espresso'),
1167 1167
 
1168 1168
 	// Reference: packages/helpers/src/tickets/getStatusTextLabel.ts:20
1169
-	__( 'pending', 'event_espresso' ),
1169
+	__('pending', 'event_espresso'),
1170 1170
 
1171 1171
 	// Reference: packages/helpers/src/tickets/getStatusTextLabel.ts:23
1172
-	__( 'on sale', 'event_espresso' ),
1172
+	__('on sale', 'event_espresso'),
1173 1173
 
1174 1174
 	// Reference: packages/predicates/src/registration/statusOptions.ts:14
1175
-	__( 'Declined', 'event_espresso' ),
1175
+	__('Declined', 'event_espresso'),
1176 1176
 
1177 1177
 	// Reference: packages/predicates/src/registration/statusOptions.ts:18
1178
-	__( 'Incomplete', 'event_espresso' ),
1178
+	__('Incomplete', 'event_espresso'),
1179 1179
 
1180 1180
 	// Reference: packages/predicates/src/registration/statusOptions.ts:22
1181
-	__( 'Not Approved', 'event_espresso' ),
1181
+	__('Not Approved', 'event_espresso'),
1182 1182
 
1183 1183
 	// Reference: packages/predicates/src/registration/statusOptions.ts:26
1184
-	__( 'Pending Payment', 'event_espresso' ),
1184
+	__('Pending Payment', 'event_espresso'),
1185 1185
 
1186 1186
 	// Reference: packages/predicates/src/registration/statusOptions.ts:30
1187
-	__( 'Wait List', 'event_espresso' ),
1187
+	__('Wait List', 'event_espresso'),
1188 1188
 
1189 1189
 	// Reference: packages/predicates/src/registration/statusOptions.ts:6
1190
-	__( 'Approved', 'event_espresso' ),
1190
+	__('Approved', 'event_espresso'),
1191 1191
 
1192 1192
 	// Reference: packages/rich-text-editor/src/components/AdvancedTextEditor/toolbarButtons/WPMedia.tsx:9
1193 1193
 	// Reference: packages/rich-text-editor/src/rte-old/components/toolbarButtons/WPMedia.tsx:10
1194
-	__( 'Select media', 'event_espresso' ),
1194
+	__('Select media', 'event_espresso'),
1195 1195
 
1196 1196
 	// Reference: packages/rich-text-editor/src/components/RichTextEditor/RichTextEditor.tsx:84
1197
-	__( 'Write something…', 'event_espresso' ),
1197
+	__('Write something…', 'event_espresso'),
1198 1198
 
1199 1199
 	// Reference: packages/rich-text-editor/src/components/RichTextEditor/Toolbar/Toolbar.tsx:20
1200
-	__( 'RTE Toolbar', 'event_espresso' ),
1200
+	__('RTE Toolbar', 'event_espresso'),
1201 1201
 
1202 1202
 	// Reference: packages/rich-text-editor/src/components/RichTextEditor/Toolbar/controls/blockType/Component.tsx:11
1203
-	__( 'Normal', 'event_espresso' ),
1203
+	__('Normal', 'event_espresso'),
1204 1204
 
1205 1205
 	// Reference: packages/rich-text-editor/src/components/RichTextEditor/Toolbar/controls/blockType/Component.tsx:12
1206
-	__( 'H1', 'event_espresso' ),
1206
+	__('H1', 'event_espresso'),
1207 1207
 
1208 1208
 	// Reference: packages/rich-text-editor/src/components/RichTextEditor/Toolbar/controls/blockType/Component.tsx:13
1209
-	__( 'H2', 'event_espresso' ),
1209
+	__('H2', 'event_espresso'),
1210 1210
 
1211 1211
 	// Reference: packages/rich-text-editor/src/components/RichTextEditor/Toolbar/controls/blockType/Component.tsx:14
1212
-	__( 'H3', 'event_espresso' ),
1212
+	__('H3', 'event_espresso'),
1213 1213
 
1214 1214
 	// Reference: packages/rich-text-editor/src/components/RichTextEditor/Toolbar/controls/blockType/Component.tsx:15
1215
-	__( 'H4', 'event_espresso' ),
1215
+	__('H4', 'event_espresso'),
1216 1216
 
1217 1217
 	// Reference: packages/rich-text-editor/src/components/RichTextEditor/Toolbar/controls/blockType/Component.tsx:16
1218
-	__( 'H5', 'event_espresso' ),
1218
+	__('H5', 'event_espresso'),
1219 1219
 
1220 1220
 	// Reference: packages/rich-text-editor/src/components/RichTextEditor/Toolbar/controls/blockType/Component.tsx:17
1221
-	__( 'H6', 'event_espresso' ),
1221
+	__('H6', 'event_espresso'),
1222 1222
 
1223 1223
 	// Reference: packages/rich-text-editor/src/components/RichTextEditor/Toolbar/controls/blockType/Component.tsx:18
1224
-	__( 'Block quote', 'event_espresso' ),
1224
+	__('Block quote', 'event_espresso'),
1225 1225
 
1226 1226
 	// Reference: packages/rich-text-editor/src/components/RichTextEditor/Toolbar/controls/blockType/Component.tsx:19
1227
-	__( 'Code', 'event_espresso' ),
1227
+	__('Code', 'event_espresso'),
1228 1228
 
1229 1229
 	// Reference: packages/rich-text-editor/src/components/RichTextEditor/Toolbar/controls/colorPicker/Component.tsx:36
1230
-	__( 'Set color', 'event_espresso' ),
1230
+	__('Set color', 'event_espresso'),
1231 1231
 
1232 1232
 	// Reference: packages/rich-text-editor/src/components/RichTextEditor/Toolbar/controls/colorPicker/Component.tsx:45
1233
-	__( 'Text color', 'event_espresso' ),
1233
+	__('Text color', 'event_espresso'),
1234 1234
 
1235 1235
 	// Reference: packages/rich-text-editor/src/components/RichTextEditor/Toolbar/controls/colorPicker/Component.tsx:47
1236
-	__( 'Background color', 'event_espresso' ),
1236
+	__('Background color', 'event_espresso'),
1237 1237
 
1238 1238
 	// Reference: packages/rich-text-editor/src/components/RichTextEditor/Toolbar/controls/image/Component.tsx:35
1239
-	__( 'Add image', 'event_espresso' ),
1239
+	__('Add image', 'event_espresso'),
1240 1240
 
1241 1241
 	// Reference: packages/rich-text-editor/src/components/RichTextEditor/Toolbar/controls/image/Component.tsx:47
1242
-	__( 'Image URL', 'event_espresso' ),
1242
+	__('Image URL', 'event_espresso'),
1243 1243
 
1244 1244
 	// Reference: packages/rich-text-editor/src/components/RichTextEditor/Toolbar/controls/image/Component.tsx:51
1245
-	__( 'Alt text', 'event_espresso' ),
1245
+	__('Alt text', 'event_espresso'),
1246 1246
 
1247 1247
 	// Reference: packages/rich-text-editor/src/components/RichTextEditor/Toolbar/controls/image/Component.tsx:52
1248
-	__( 'Width', 'event_espresso' ),
1248
+	__('Width', 'event_espresso'),
1249 1249
 
1250 1250
 	// Reference: packages/rich-text-editor/src/components/RichTextEditor/Toolbar/controls/image/Component.tsx:56
1251
-	__( 'Height', 'event_espresso' ),
1251
+	__('Height', 'event_espresso'),
1252 1252
 
1253 1253
 	// Reference: packages/rich-text-editor/src/components/RichTextEditor/Toolbar/controls/link/Component.tsx:50
1254
-	__( 'Edit link', 'event_espresso' ),
1254
+	__('Edit link', 'event_espresso'),
1255 1255
 
1256 1256
 	// Reference: packages/rich-text-editor/src/components/RichTextEditor/Toolbar/controls/link/Component.tsx:60
1257
-	__( 'URL title', 'event_espresso' ),
1257
+	__('URL title', 'event_espresso'),
1258 1258
 
1259 1259
 	// Reference: packages/rich-text-editor/src/components/RichTextEditor/Toolbar/controls/list/Component.tsx:11
1260
-	__( 'Unordered list', 'event_espresso' ),
1260
+	__('Unordered list', 'event_espresso'),
1261 1261
 
1262 1262
 	// Reference: packages/rich-text-editor/src/components/RichTextEditor/Toolbar/controls/list/Component.tsx:12
1263
-	__( 'Ordered list', 'event_espresso' ),
1263
+	__('Ordered list', 'event_espresso'),
1264 1264
 
1265 1265
 	// Reference: packages/rich-text-editor/src/components/RichTextEditor/Toolbar/controls/list/Component.tsx:13
1266 1266
 	// Reference: packages/rich-text-editor/src/components/RichTextEditor/Toolbar/controls/textAlign/Component.tsx:13
1267
-	__( 'Indent', 'event_espresso' ),
1267
+	__('Indent', 'event_espresso'),
1268 1268
 
1269 1269
 	// Reference: packages/rich-text-editor/src/components/RichTextEditor/Toolbar/controls/list/Component.tsx:14
1270 1270
 	// Reference: packages/rich-text-editor/src/components/RichTextEditor/Toolbar/controls/textAlign/Component.tsx:14
1271
-	__( 'Outdent', 'event_espresso' ),
1271
+	__('Outdent', 'event_espresso'),
1272 1272
 
1273 1273
 	// Reference: packages/rich-text-editor/src/components/RichTextEditor/Toolbar/controls/textAlign/Component.tsx:11
1274
-	__( 'Unordered textalign', 'event_espresso' ),
1274
+	__('Unordered textalign', 'event_espresso'),
1275 1275
 
1276 1276
 	// Reference: packages/rich-text-editor/src/components/RichTextEditor/Toolbar/controls/textAlign/Component.tsx:12
1277
-	__( 'Ordered textalign', 'event_espresso' ),
1277
+	__('Ordered textalign', 'event_espresso'),
1278 1278
 
1279 1279
 	// Reference: packages/rich-text-editor/src/components/RichTextEditor/render/Image/Toolbar.tsx:31
1280
-	__( 'Image toolbar', 'event_espresso' ),
1280
+	__('Image toolbar', 'event_espresso'),
1281 1281
 
1282 1282
 	// Reference: packages/rich-text-editor/src/components/WithEditMode/WithEditMode.tsx:62
1283 1283
 	// Reference: packages/rich-text-editor/src/rte-old/components/RTEWithEditMode/RTEWithEditMode.tsx:35
1284
-	__( 'Visual editor', 'event_espresso' ),
1284
+	__('Visual editor', 'event_espresso'),
1285 1285
 
1286 1286
 	// Reference: packages/rich-text-editor/src/components/WithEditMode/WithEditMode.tsx:66
1287 1287
 	// Reference: packages/rich-text-editor/src/rte-old/components/RTEWithEditMode/RTEWithEditMode.tsx:39
1288
-	__( 'HTML editor', 'event_espresso' ),
1288
+	__('HTML editor', 'event_espresso'),
1289 1289
 
1290 1290
 	// Reference: packages/rich-text-editor/src/rte-old/components/toolbarButtons/WPMedia.tsx:68
1291
-	__( 'Add Media', 'event_espresso' ),
1291
+	__('Add Media', 'event_espresso'),
1292 1292
 
1293 1293
 	// Reference: packages/tpc/src/buttons/AddPriceModifierButton.tsx:14
1294
-	__( 'add new price modifier after this row', 'event_espresso' ),
1294
+	__('add new price modifier after this row', 'event_espresso'),
1295 1295
 
1296 1296
 	// Reference: packages/tpc/src/buttons/DeleteAllPricesButton.tsx:14
1297
-	__( 'Delete all prices', 'event_espresso' ),
1297
+	__('Delete all prices', 'event_espresso'),
1298 1298
 
1299 1299
 	// Reference: packages/tpc/src/buttons/DeleteAllPricesButton.tsx:27
1300
-	__( 'Are you sure you want to delete all of this ticket\'s prices and make it free? This action is permanent and can not be undone.', 'event_espresso' ),
1300
+	__('Are you sure you want to delete all of this ticket\'s prices and make it free? This action is permanent and can not be undone.', 'event_espresso'),
1301 1301
 
1302 1302
 	// Reference: packages/tpc/src/buttons/DeleteAllPricesButton.tsx:31
1303
-	__( 'Delete all prices?', 'event_espresso' ),
1303
+	__('Delete all prices?', 'event_espresso'),
1304 1304
 
1305 1305
 	// Reference: packages/tpc/src/buttons/DeletePriceModifierButton.tsx:12
1306
-	__( 'delete price modifier', 'event_espresso' ),
1306
+	__('delete price modifier', 'event_espresso'),
1307 1307
 
1308 1308
 	// Reference: packages/tpc/src/buttons/ReverseCalculateButton.tsx:14
1309
-	__( 'Ticket base price is being reverse calculated from bottom to top starting with the ticket total. Entering a new ticket total will reverse calculate the ticket base price after applying all price modifiers in reverse. Click to turn off reverse calculations', 'event_espresso' ),
1309
+	__('Ticket base price is being reverse calculated from bottom to top starting with the ticket total. Entering a new ticket total will reverse calculate the ticket base price after applying all price modifiers in reverse. Click to turn off reverse calculations', 'event_espresso'),
1310 1310
 
1311 1311
 	// Reference: packages/tpc/src/buttons/ReverseCalculateButton.tsx:17
1312
-	__( 'Ticket total is being calculated normally from top to bottom starting from the base price. Entering a new ticket base price will recalculate the ticket total after applying all price modifiers. Click to turn on reverse calculations', 'event_espresso' ),
1312
+	__('Ticket total is being calculated normally from top to bottom starting from the base price. Entering a new ticket base price will recalculate the ticket total after applying all price modifiers. Click to turn on reverse calculations', 'event_espresso'),
1313 1313
 
1314 1314
 	// Reference: packages/tpc/src/buttons/ReverseCalculateButton.tsx:21
1315
-	__( 'Disable reverse calculate', 'event_espresso' ),
1315
+	__('Disable reverse calculate', 'event_espresso'),
1316 1316
 
1317 1317
 	// Reference: packages/tpc/src/buttons/ReverseCalculateButton.tsx:21
1318
-	__( 'Enable reverse calculate', 'event_espresso' ),
1318
+	__('Enable reverse calculate', 'event_espresso'),
1319 1319
 
1320 1320
 	// Reference: packages/tpc/src/buttons/TicketPriceCalculatorButton.tsx:28
1321
-	__( 'ticket price calculator', 'event_espresso' ),
1321
+	__('ticket price calculator', 'event_espresso'),
1322 1322
 
1323 1323
 	// Reference: packages/tpc/src/buttons/taxes/AddDefaultTaxesButton.tsx:9
1324
-	__( 'Add default taxes', 'event_espresso' ),
1324
+	__('Add default taxes', 'event_espresso'),
1325 1325
 
1326 1326
 	// Reference: packages/tpc/src/buttons/taxes/RemoveTaxesButton.tsx:10
1327
-	__( 'Are you sure you want to remove all of this ticket\'s taxes?', 'event_espresso' ),
1327
+	__('Are you sure you want to remove all of this ticket\'s taxes?', 'event_espresso'),
1328 1328
 
1329 1329
 	// Reference: packages/tpc/src/buttons/taxes/RemoveTaxesButton.tsx:14
1330
-	__( 'Remove all taxes?', 'event_espresso' ),
1330
+	__('Remove all taxes?', 'event_espresso'),
1331 1331
 
1332 1332
 	// Reference: packages/tpc/src/buttons/taxes/RemoveTaxesButton.tsx:7
1333
-	__( 'Remove taxes', 'event_espresso' ),
1333
+	__('Remove taxes', 'event_espresso'),
1334 1334
 
1335 1335
 	// Reference: packages/tpc/src/components/DefaultPricesInfo.tsx:29
1336
-	__( 'Modify default prices.', 'event_espresso' ),
1336
+	__('Modify default prices.', 'event_espresso'),
1337 1337
 
1338 1338
 	// Reference: packages/tpc/src/components/DefaultTaxesInfo.tsx:29
1339
-	__( 'New default taxes are available. Click the - Add default taxes - button to add them now.', 'event_espresso' ),
1339
+	__('New default taxes are available. Click the - Add default taxes - button to add them now.', 'event_espresso'),
1340 1340
 
1341 1341
 	// Reference: packages/tpc/src/components/LockedTicketsBanner.tsx:12
1342
-	__( 'Editing of prices is disabled', 'event_espresso' ),
1342
+	__('Editing of prices is disabled', 'event_espresso'),
1343 1343
 
1344 1344
 	// Reference: packages/tpc/src/components/NoPricesBanner/AddDefaultPricesButton.tsx:9
1345
-	__( 'Add default prices', 'event_espresso' ),
1345
+	__('Add default prices', 'event_espresso'),
1346 1346
 
1347 1347
 	// Reference: packages/tpc/src/components/NoPricesBanner/index.tsx:13
1348
-	__( 'This Ticket is Currently Free', 'event_espresso' ),
1348
+	__('This Ticket is Currently Free', 'event_espresso'),
1349 1349
 
1350 1350
 	// Reference: packages/tpc/src/components/NoPricesBanner/index.tsx:21
1351 1351
 	/* translators: %s default prices */
1352
-	__( 'Click the button below to load your %s into the calculator.', 'event_espresso' ),
1352
+	__('Click the button below to load your %s into the calculator.', 'event_espresso'),
1353 1353
 
1354 1354
 	// Reference: packages/tpc/src/components/NoPricesBanner/index.tsx:22
1355
-	__( 'default prices', 'event_espresso' ),
1355
+	__('default prices', 'event_espresso'),
1356 1356
 
1357 1357
 	// Reference: packages/tpc/src/components/NoPricesBanner/index.tsx:29
1358
-	__( 'Additional ticket price modifiers can be added or removed.', 'event_espresso' ),
1358
+	__('Additional ticket price modifiers can be added or removed.', 'event_espresso'),
1359 1359
 
1360 1360
 	// Reference: packages/tpc/src/components/NoPricesBanner/index.tsx:32
1361
-	__( 'Click the save button below to assign which dates this ticket will be available for purchase on.', 'event_espresso' ),
1361
+	__('Click the save button below to assign which dates this ticket will be available for purchase on.', 'event_espresso'),
1362 1362
 
1363 1363
 	// Reference: packages/tpc/src/components/TicketPriceCalculatorModal.tsx:32
1364 1364
 	/* translators: %s ticket name */
1365
-	__( 'Price Calculator for Ticket: %s', 'event_espresso' ),
1365
+	__('Price Calculator for Ticket: %s', 'event_espresso'),
1366 1366
 
1367 1367
 	// Reference: packages/tpc/src/components/table/useFooterRowGenerator.tsx:48
1368
-	__( 'Total', 'event_espresso' ),
1368
+	__('Total', 'event_espresso'),
1369 1369
 
1370 1370
 	// Reference: packages/tpc/src/components/table/useFooterRowGenerator.tsx:57
1371
-	__( 'ticket total', 'event_espresso' ),
1371
+	__('ticket total', 'event_espresso'),
1372 1372
 
1373 1373
 	// Reference: packages/tpc/src/components/table/useHeaderRowGenerator.ts:29
1374
-	__( 'Order', 'event_espresso' ),
1374
+	__('Order', 'event_espresso'),
1375 1375
 
1376 1376
 	// Reference: packages/tpc/src/components/table/useHeaderRowGenerator.ts:35
1377
-	__( 'Price Type', 'event_espresso' ),
1377
+	__('Price Type', 'event_espresso'),
1378 1378
 
1379 1379
 	// Reference: packages/tpc/src/components/table/useHeaderRowGenerator.ts:41
1380
-	__( 'Label', 'event_espresso' ),
1380
+	__('Label', 'event_espresso'),
1381 1381
 
1382 1382
 	// Reference: packages/tpc/src/components/table/useHeaderRowGenerator.ts:53
1383
-	__( 'Amount', 'event_espresso' ),
1383
+	__('Amount', 'event_espresso'),
1384 1384
 
1385 1385
 	// Reference: packages/tpc/src/hooks/useLockedTicketAction.ts:22
1386
-	__( 'Copy ticket', 'event_espresso' ),
1386
+	__('Copy ticket', 'event_espresso'),
1387 1387
 
1388 1388
 	// Reference: packages/tpc/src/hooks/useLockedTicketAction.ts:26
1389
-	__( 'Copy and archive this ticket', 'event_espresso' ),
1389
+	__('Copy and archive this ticket', 'event_espresso'),
1390 1390
 
1391 1391
 	// Reference: packages/tpc/src/hooks/useLockedTicketAction.ts:29
1392
-	__( 'OK', 'event_espresso' ),
1392
+	__('OK', 'event_espresso'),
1393 1393
 
1394 1394
 	// Reference: packages/tpc/src/inputs/PriceAmountInput.tsx:30
1395
-	__( 'amount', 'event_espresso' ),
1395
+	__('amount', 'event_espresso'),
1396 1396
 
1397 1397
 	// Reference: packages/tpc/src/inputs/PriceAmountInput.tsx:42
1398
-	__( 'amount…', 'event_espresso' ),
1398
+	__('amount…', 'event_espresso'),
1399 1399
 
1400 1400
 	// Reference: packages/tpc/src/inputs/PriceDescriptionInput.tsx:14
1401
-	__( 'description…', 'event_espresso' ),
1401
+	__('description…', 'event_espresso'),
1402 1402
 
1403 1403
 	// Reference: packages/tpc/src/inputs/PriceDescriptionInput.tsx:9
1404
-	__( 'price description', 'event_espresso' ),
1404
+	__('price description', 'event_espresso'),
1405 1405
 
1406 1406
 	// Reference: packages/tpc/src/inputs/PriceIdInput.tsx:5
1407
-	__( 'price id', 'event_espresso' ),
1407
+	__('price id', 'event_espresso'),
1408 1408
 
1409 1409
 	// Reference: packages/tpc/src/inputs/PriceNameInput.tsx:13
1410
-	__( 'label…', 'event_espresso' ),
1410
+	__('label…', 'event_espresso'),
1411 1411
 
1412 1412
 	// Reference: packages/tpc/src/inputs/PriceNameInput.tsx:8
1413
-	__( 'price name', 'event_espresso' ),
1413
+	__('price name', 'event_espresso'),
1414 1414
 
1415 1415
 	// Reference: packages/tpc/src/inputs/PriceOrderInput.tsx:14
1416
-	__( 'price order', 'event_espresso' ),
1416
+	__('price order', 'event_espresso'),
1417 1417
 
1418 1418
 	// Reference: packages/tpc/src/inputs/PriceTypeInput.tsx:19
1419
-	__( 'price type', 'event_espresso' ),
1419
+	__('price type', 'event_espresso'),
1420 1420
 
1421 1421
 	// Reference: packages/tpc/src/utils/constants.ts:8
1422
-	__( 'Ticket price modifications are blocked for Tickets that have already been sold to registrants, because doing so would negatively affect internal accounting for the event. If you still need to modify ticket prices, then create a copy of those tickets, edit the prices for the new tickets, and then trash the old tickets.', 'event_espresso' ),
1422
+	__('Ticket price modifications are blocked for Tickets that have already been sold to registrants, because doing so would negatively affect internal accounting for the event. If you still need to modify ticket prices, then create a copy of those tickets, edit the prices for the new tickets, and then trash the old tickets.', 'event_espresso'),
1423 1423
 
1424 1424
 	// Reference: packages/ui-components/src/ActiveFilters/ActiveFilters.tsx:8
1425
-	__( 'active filters:', 'event_espresso' ),
1425
+	__('active filters:', 'event_espresso'),
1426 1426
 
1427 1427
 	// Reference: packages/ui-components/src/ActiveFilters/FilterTag/index.tsx:15
1428 1428
 	/* translators: %s filter name */
1429
-	__( 'remove filter - %s', 'event_espresso' ),
1429
+	__('remove filter - %s', 'event_espresso'),
1430 1430
 
1431 1431
 	// Reference: packages/ui-components/src/CalendarDateRange/CalendarDateRange.tsx:37
1432
-	__( 'to', 'event_espresso' ),
1432
+	__('to', 'event_espresso'),
1433 1433
 
1434 1434
 	// Reference: packages/ui-components/src/CalendarPageDate/CalendarPageDate.tsx:54
1435
-	__( 'TO', 'event_espresso' ),
1435
+	__('TO', 'event_espresso'),
1436 1436
 
1437 1437
 	// Reference: packages/ui-components/src/ColorPicker/ColorPicker.tsx:60
1438
-	__( 'Custom color', 'event_espresso' ),
1438
+	__('Custom color', 'event_espresso'),
1439 1439
 
1440 1440
 	// Reference: packages/ui-components/src/ColorPicker/Swatch.tsx:23
1441 1441
 	/* translators: color name */
1442
-	__( 'Color: %s', 'event_espresso' ),
1442
+	__('Color: %s', 'event_espresso'),
1443 1443
 
1444 1444
 	// Reference: packages/ui-components/src/ColorPicker/constants.ts:13
1445
-	__( 'Cyan bluish gray', 'event_espresso' ),
1445
+	__('Cyan bluish gray', 'event_espresso'),
1446 1446
 
1447 1447
 	// Reference: packages/ui-components/src/ColorPicker/constants.ts:17
1448
-	__( 'White', 'event_espresso' ),
1448
+	__('White', 'event_espresso'),
1449 1449
 
1450 1450
 	// Reference: packages/ui-components/src/ColorPicker/constants.ts:21
1451
-	__( 'Pale pink', 'event_espresso' ),
1451
+	__('Pale pink', 'event_espresso'),
1452 1452
 
1453 1453
 	// Reference: packages/ui-components/src/ColorPicker/constants.ts:25
1454
-	__( 'Vivid red', 'event_espresso' ),
1454
+	__('Vivid red', 'event_espresso'),
1455 1455
 
1456 1456
 	// Reference: packages/ui-components/src/ColorPicker/constants.ts:29
1457
-	__( 'Luminous vivid orange', 'event_espresso' ),
1457
+	__('Luminous vivid orange', 'event_espresso'),
1458 1458
 
1459 1459
 	// Reference: packages/ui-components/src/ColorPicker/constants.ts:33
1460
-	__( 'Luminous vivid amber', 'event_espresso' ),
1460
+	__('Luminous vivid amber', 'event_espresso'),
1461 1461
 
1462 1462
 	// Reference: packages/ui-components/src/ColorPicker/constants.ts:37
1463
-	__( 'Light green cyan', 'event_espresso' ),
1463
+	__('Light green cyan', 'event_espresso'),
1464 1464
 
1465 1465
 	// Reference: packages/ui-components/src/ColorPicker/constants.ts:41
1466
-	__( 'Vivid green cyan', 'event_espresso' ),
1466
+	__('Vivid green cyan', 'event_espresso'),
1467 1467
 
1468 1468
 	// Reference: packages/ui-components/src/ColorPicker/constants.ts:45
1469
-	__( 'Pale cyan blue', 'event_espresso' ),
1469
+	__('Pale cyan blue', 'event_espresso'),
1470 1470
 
1471 1471
 	// Reference: packages/ui-components/src/ColorPicker/constants.ts:49
1472
-	__( 'Vivid cyan blue', 'event_espresso' ),
1472
+	__('Vivid cyan blue', 'event_espresso'),
1473 1473
 
1474 1474
 	// Reference: packages/ui-components/src/ColorPicker/constants.ts:53
1475
-	__( 'Vivid purple', 'event_espresso' ),
1475
+	__('Vivid purple', 'event_espresso'),
1476 1476
 
1477 1477
 	// Reference: packages/ui-components/src/ColorPicker/constants.ts:9
1478
-	__( 'Black', 'event_espresso' ),
1478
+	__('Black', 'event_espresso'),
1479 1479
 
1480 1480
 	// Reference: packages/ui-components/src/Confirm/ConfirmClose.tsx:7
1481 1481
 	// Reference: packages/ui-components/src/Modal/ModalWithAlert.tsx:22
1482
-	__( 'Are you sure you want to close this?', 'event_espresso' ),
1482
+	__('Are you sure you want to close this?', 'event_espresso'),
1483 1483
 
1484 1484
 	// Reference: packages/ui-components/src/Confirm/ConfirmDelete.tsx:7
1485
-	__( 'Are you sure you want to delete this?', 'event_espresso' ),
1485
+	__('Are you sure you want to delete this?', 'event_espresso'),
1486 1486
 
1487 1487
 	// Reference: packages/ui-components/src/Confirm/useConfirmWithButton.tsx:10
1488
-	__( 'Please confirm this action.', 'event_espresso' ),
1488
+	__('Please confirm this action.', 'event_espresso'),
1489 1489
 
1490 1490
 	// Reference: packages/ui-components/src/Confirm/useConfirmationDialog.tsx:32
1491
-	__( 'No', 'event_espresso' ),
1491
+	__('No', 'event_espresso'),
1492 1492
 
1493 1493
 	// Reference: packages/ui-components/src/Confirm/useConfirmationDialog.tsx:33
1494
-	__( 'Yes', 'event_espresso' ),
1494
+	__('Yes', 'event_espresso'),
1495 1495
 
1496 1496
 	// Reference: packages/ui-components/src/CurrencyDisplay/CurrencyDisplay.tsx:34
1497
-	__( 'free', 'event_espresso' ),
1497
+	__('free', 'event_espresso'),
1498 1498
 
1499 1499
 	// Reference: packages/ui-components/src/DateTimeRangePicker/DateTimeRangePicker.tsx:117
1500 1500
 	// Reference: packages/ui-components/src/Popover/PopoverForm/PopoverForm.tsx:44
1501
-	__( 'save', 'event_espresso' ),
1501
+	__('save', 'event_espresso'),
1502 1502
 
1503 1503
 	// Reference: packages/ui-components/src/DebugInfo/DebugInfo.tsx:36
1504
-	__( 'Hide Debug Info', 'event_espresso' ),
1504
+	__('Hide Debug Info', 'event_espresso'),
1505 1505
 
1506 1506
 	// Reference: packages/ui-components/src/DebugInfo/DebugInfo.tsx:36
1507
-	__( 'Show Debug Info', 'event_espresso' ),
1507
+	__('Show Debug Info', 'event_espresso'),
1508 1508
 
1509 1509
 	// Reference: packages/ui-components/src/EditDateRangeButton/EditDateRangeButton.tsx:49
1510
-	__( 'Edit Start and End Dates and Times', 'event_espresso' ),
1510
+	__('Edit Start and End Dates and Times', 'event_espresso'),
1511 1511
 
1512 1512
 	// Reference: packages/ui-components/src/EntityActionsMenu/entityMenuItems/Copy.tsx:8
1513
-	__( 'copy', 'event_espresso' ),
1513
+	__('copy', 'event_espresso'),
1514 1514
 
1515 1515
 	// Reference: packages/ui-components/src/EntityActionsMenu/entityMenuItems/Edit.tsx:8
1516
-	__( 'edit', 'event_espresso' ),
1516
+	__('edit', 'event_espresso'),
1517 1517
 
1518 1518
 	// Reference: packages/ui-components/src/EntityActionsMenu/entityMenuItems/Trash.tsx:8
1519
-	__( 'trash', 'event_espresso' ),
1519
+	__('trash', 'event_espresso'),
1520 1520
 
1521 1521
 	// Reference: packages/ui-components/src/EntityActionsMenu/entityMenuItems/Untrash.tsx:8
1522
-	__( 'untrash', 'event_espresso' ),
1522
+	__('untrash', 'event_espresso'),
1523 1523
 
1524 1524
 	// Reference: packages/ui-components/src/EntityDetailsPanel/EntityDetailsPanelSold.tsx:37
1525
-	__( 'view approved registrations for this date.', 'event_espresso' ),
1525
+	__('view approved registrations for this date.', 'event_espresso'),
1526 1526
 
1527 1527
 	// Reference: packages/ui-components/src/EntityDetailsPanel/EntityDetailsPanelSold.tsx:38
1528
-	__( 'view approved registrations for this ticket.', 'event_espresso' ),
1528
+	__('view approved registrations for this ticket.', 'event_espresso'),
1529 1529
 
1530 1530
 	// Reference: packages/ui-components/src/EntityList/filterBar/buttons/CardViewFilterButton.tsx:21
1531
-	__( 'card view', 'event_espresso' ),
1531
+	__('card view', 'event_espresso'),
1532 1532
 
1533 1533
 	// Reference: packages/ui-components/src/EntityList/filterBar/buttons/TableViewFilterButton.tsx:20
1534
-	__( 'table view', 'event_espresso' ),
1534
+	__('table view', 'event_espresso'),
1535 1535
 
1536 1536
 	// Reference: packages/ui-components/src/EntityList/filterBar/buttons/ToggleBulkActionsButton.tsx:8
1537
-	__( 'hide bulk actions', 'event_espresso' ),
1537
+	__('hide bulk actions', 'event_espresso'),
1538 1538
 
1539 1539
 	// Reference: packages/ui-components/src/EntityList/filterBar/buttons/ToggleBulkActionsButton.tsx:8
1540
-	__( 'show bulk actions', 'event_espresso' ),
1540
+	__('show bulk actions', 'event_espresso'),
1541 1541
 
1542 1542
 	// Reference: packages/ui-components/src/EntityList/filterBar/buttons/ToggleFiltersButton.tsx:9
1543
-	__( 'hide filters', 'event_espresso' ),
1543
+	__('hide filters', 'event_espresso'),
1544 1544
 
1545 1545
 	// Reference: packages/ui-components/src/EntityList/filterBar/buttons/ToggleFiltersButton.tsx:9
1546
-	__( 'show filters', 'event_espresso' ),
1546
+	__('show filters', 'event_espresso'),
1547 1547
 
1548 1548
 	// Reference: packages/ui-components/src/FormBuilder/FormElement/FormElementToolbar.tsx:35
1549
-	__( 'form element settings', 'event_espresso' ),
1549
+	__('form element settings', 'event_espresso'),
1550 1550
 
1551 1551
 	// Reference: packages/ui-components/src/FormBuilder/FormElement/FormElementToolbar.tsx:45
1552
-	__( 'copy form element', 'event_espresso' ),
1552
+	__('copy form element', 'event_espresso'),
1553 1553
 
1554 1554
 	// Reference: packages/ui-components/src/FormBuilder/FormElement/FormElementToolbar.tsx:55
1555
-	__( 'delete form element', 'event_espresso' ),
1555
+	__('delete form element', 'event_espresso'),
1556 1556
 
1557 1557
 	// Reference: packages/ui-components/src/FormBuilder/FormElement/FormElementToolbar.tsx:64
1558
-	__( 'click, hold, and drag to reorder form element', 'event_espresso' ),
1558
+	__('click, hold, and drag to reorder form element', 'event_espresso'),
1559 1559
 
1560 1560
 	// Reference: packages/ui-components/src/FormBuilder/FormElement/Tabs/FormElementTabs.tsx:21
1561 1561
 	// Reference: packages/ui-components/src/FormBuilder/FormSection/Tabs/FormSectionTabs.tsx:19
1562
-	__( 'Settings', 'event_espresso' ),
1562
+	__('Settings', 'event_espresso'),
1563 1563
 
1564 1564
 	// Reference: packages/ui-components/src/FormBuilder/FormElement/Tabs/FormElementTabs.tsx:25
1565 1565
 	// Reference: packages/ui-components/src/FormBuilder/FormSection/Tabs/FormSectionTabs.tsx:23
1566
-	__( 'Styles', 'event_espresso' ),
1566
+	__('Styles', 'event_espresso'),
1567 1567
 
1568 1568
 	// Reference: packages/ui-components/src/FormBuilder/FormElement/Tabs/FormElementTabs.tsx:29
1569
-	__( 'Validation', 'event_espresso' ),
1569
+	__('Validation', 'event_espresso'),
1570 1570
 
1571 1571
 	// Reference: packages/ui-components/src/FormBuilder/FormElement/Tabs/FormElementTabs.tsx:33
1572 1572
 	// Reference: packages/ui-components/src/FormBuilder/FormSection/Tabs/FormSectionTabs.tsx:27
1573
-	__( 'Rules', 'event_espresso' ),
1573
+	__('Rules', 'event_espresso'),
1574 1574
 
1575 1575
 	// Reference: packages/ui-components/src/FormBuilder/FormElement/Tabs/Settings.tsx:24
1576 1576
 	// Reference: packages/ui-components/src/FormBuilder/FormSection/Tabs/Settings.tsx:28
1577
-	__( 'admin label', 'event_espresso' ),
1577
+	__('admin label', 'event_espresso'),
1578 1578
 
1579 1579
 	// Reference: packages/ui-components/src/FormBuilder/FormElement/Tabs/Settings.tsx:29
1580
-	__( 'public label', 'event_espresso' ),
1580
+	__('public label', 'event_espresso'),
1581 1581
 
1582 1582
 	// Reference: packages/ui-components/src/FormBuilder/FormElement/Tabs/Settings.tsx:34
1583
-	__( 'placeholder', 'event_espresso' ),
1583
+	__('placeholder', 'event_espresso'),
1584 1584
 
1585 1585
 	// Reference: packages/ui-components/src/FormBuilder/FormElement/Tabs/Settings.tsx:38
1586
-	__( 'help text', 'event_espresso' ),
1586
+	__('help text', 'event_espresso'),
1587 1587
 
1588 1588
 	// Reference: packages/ui-components/src/FormBuilder/FormElement/Tabs/Styles.tsx:28
1589
-	__( 'label css class', 'event_espresso' ),
1589
+	__('label css class', 'event_espresso'),
1590 1590
 
1591 1591
 	// Reference: packages/ui-components/src/FormBuilder/FormElement/Tabs/Styles.tsx:33
1592
-	__( 'input css class', 'event_espresso' ),
1592
+	__('input css class', 'event_espresso'),
1593 1593
 
1594 1594
 	// Reference: packages/ui-components/src/FormBuilder/FormElement/Tabs/Styles.tsx:38
1595
-	__( 'help text css class', 'event_espresso' ),
1595
+	__('help text css class', 'event_espresso'),
1596 1596
 
1597 1597
 	// Reference: packages/ui-components/src/FormBuilder/FormElement/Tabs/Styles.tsx:43
1598 1598
 	// Reference: packages/ui-components/src/FormBuilder/FormSection/Tabs/Styles.tsx:28
1599
-	__( 'custom css', 'event_espresso' ),
1599
+	__('custom css', 'event_espresso'),
1600 1600
 
1601 1601
 	// Reference: packages/ui-components/src/FormBuilder/FormElement/Tabs/Validation.tsx:29
1602
-	__( 'required', 'event_espresso' ),
1602
+	__('required', 'event_espresso'),
1603 1603
 
1604 1604
 	// Reference: packages/ui-components/src/FormBuilder/FormElement/Tabs/Validation.tsx:31
1605
-	__( 'required text', 'event_espresso' ),
1605
+	__('required text', 'event_espresso'),
1606 1606
 
1607 1607
 	// Reference: packages/ui-components/src/FormBuilder/FormElement/Tabs/Validation.tsx:37
1608
-	__( 'min', 'event_espresso' ),
1608
+	__('min', 'event_espresso'),
1609 1609
 
1610 1610
 	// Reference: packages/ui-components/src/FormBuilder/FormElement/Tabs/Validation.tsx:38
1611
-	__( 'max', 'event_espresso' ),
1611
+	__('max', 'event_espresso'),
1612 1612
 
1613 1613
 	// Reference: packages/ui-components/src/FormBuilder/FormSection/FormSectionSidebar.tsx:106
1614
-	__( 'load existing form section', 'event_espresso' ),
1614
+	__('load existing form section', 'event_espresso'),
1615 1615
 
1616 1616
 	// Reference: packages/ui-components/src/FormBuilder/FormSection/FormSectionSidebar.tsx:123
1617
-	__( 'add new form element', 'event_espresso' ),
1617
+	__('add new form element', 'event_espresso'),
1618 1618
 
1619 1619
 	// Reference: packages/ui-components/src/FormBuilder/FormSection/FormSectionSidebar.tsx:147
1620
-	__( 'Add Form Element', 'event_espresso' ),
1620
+	__('Add Form Element', 'event_espresso'),
1621 1621
 
1622 1622
 	// Reference: packages/ui-components/src/FormBuilder/FormSection/FormSectionSidebar.tsx:99
1623
-	__( 'form element order can be changed after adding by using the drag handles in the form element toolbar', 'event_espresso' ),
1623
+	__('form element order can be changed after adding by using the drag handles in the form element toolbar', 'event_espresso'),
1624 1624
 
1625 1625
 	// Reference: packages/ui-components/src/FormBuilder/FormSection/FormSectionToolbar.tsx:33
1626
-	__( 'form section settings', 'event_espresso' ),
1626
+	__('form section settings', 'event_espresso'),
1627 1627
 
1628 1628
 	// Reference: packages/ui-components/src/FormBuilder/FormSection/FormSectionToolbar.tsx:43
1629
-	__( 'copy form section', 'event_espresso' ),
1629
+	__('copy form section', 'event_espresso'),
1630 1630
 
1631 1631
 	// Reference: packages/ui-components/src/FormBuilder/FormSection/FormSectionToolbar.tsx:54
1632
-	__( 'delete form section', 'event_espresso' ),
1632
+	__('delete form section', 'event_espresso'),
1633 1633
 
1634 1634
 	// Reference: packages/ui-components/src/FormBuilder/FormSection/FormSectionToolbar.tsx:63
1635
-	__( 'click, hold, and drag to reorder form section', 'event_espresso' ),
1635
+	__('click, hold, and drag to reorder form section', 'event_espresso'),
1636 1636
 
1637 1637
 	// Reference: packages/ui-components/src/FormBuilder/FormSection/SaveSection.tsx:45
1638
-	__( 'save form section for use in other forms', 'event_espresso' ),
1638
+	__('save form section for use in other forms', 'event_espresso'),
1639 1639
 
1640 1640
 	// Reference: packages/ui-components/src/FormBuilder/FormSection/SaveSection.tsx:49
1641
-	__( 'save as', 'event_espresso' ),
1641
+	__('save as', 'event_espresso'),
1642 1642
 
1643 1643
 	// Reference: packages/ui-components/src/FormBuilder/FormSection/SaveSection.tsx:53
1644
-	__( 'default', 'event_espresso' ),
1644
+	__('default', 'event_espresso'),
1645 1645
 
1646 1646
 	// Reference: packages/ui-components/src/FormBuilder/FormSection/SaveSection.tsx:56
1647
-	__( ' a copy of this form section will be automatically added to ALL new events', 'event_espresso' ),
1647
+	__(' a copy of this form section will be automatically added to ALL new events', 'event_espresso'),
1648 1648
 
1649 1649
 	// Reference: packages/ui-components/src/FormBuilder/FormSection/SaveSection.tsx:59
1650
-	__( 'shared', 'event_espresso' ),
1650
+	__('shared', 'event_espresso'),
1651 1651
 
1652 1652
 	// Reference: packages/ui-components/src/FormBuilder/FormSection/SaveSection.tsx:62
1653
-	__( 'a copy of this form section will be saved for use in other events but not loaded by default', 'event_espresso' ),
1653
+	__('a copy of this form section will be saved for use in other events but not loaded by default', 'event_espresso'),
1654 1654
 
1655 1655
 	// Reference: packages/ui-components/src/FormBuilder/FormSection/Tabs/Settings.tsx:33
1656
-	__( 'show name', 'event_espresso' ),
1656
+	__('show name', 'event_espresso'),
1657 1657
 
1658 1658
 	// Reference: packages/ui-components/src/FormBuilder/FormSection/Tabs/Styles.tsx:26
1659
-	__( 'css class', 'event_espresso' ),
1659
+	__('css class', 'event_espresso'),
1660 1660
 
1661 1661
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:100
1662
-	__( 'Day Selector', 'event_espresso' ),
1662
+	__('Day Selector', 'event_espresso'),
1663 1663
 
1664 1664
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:102
1665
-	__( 'adds a dropdown selector that allows users to select the day of the month (01 to 31)', 'event_espresso' ),
1665
+	__('adds a dropdown selector that allows users to select the day of the month (01 to 31)', 'event_espresso'),
1666 1666
 
1667 1667
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:105
1668
-	__( 'Month Selector', 'event_espresso' ),
1668
+	__('Month Selector', 'event_espresso'),
1669 1669
 
1670 1670
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:107
1671
-	__( 'adds a dropdown selector that allows users to select the month of the year (01 to 12)', 'event_espresso' ),
1671
+	__('adds a dropdown selector that allows users to select the month of the year (01 to 12)', 'event_espresso'),
1672 1672
 
1673 1673
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:110
1674
-	__( 'Year Selector', 'event_espresso' ),
1674
+	__('Year Selector', 'event_espresso'),
1675 1675
 
1676 1676
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:112
1677
-	__( 'adds a dropdown selector that allows users to select the year from a configurable range', 'event_espresso' ),
1677
+	__('adds a dropdown selector that allows users to select the year from a configurable range', 'event_espresso'),
1678 1678
 
1679 1679
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:115
1680
-	__( 'Radio Buttons', 'event_espresso' ),
1680
+	__('Radio Buttons', 'event_espresso'),
1681 1681
 
1682 1682
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:117
1683
-	__( 'adds one or more radio buttons that allow users to only select one option from those provided', 'event_espresso' ),
1683
+	__('adds one or more radio buttons that allow users to only select one option from those provided', 'event_espresso'),
1684 1684
 
1685 1685
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:120
1686
-	__( 'Decimal Number', 'event_espresso' ),
1686
+	__('Decimal Number', 'event_espresso'),
1687 1687
 
1688 1688
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:122
1689
-	__( 'adds a text input that only accepts numbers whose value is a decimal (float)', 'event_espresso' ),
1689
+	__('adds a text input that only accepts numbers whose value is a decimal (float)', 'event_espresso'),
1690 1690
 
1691 1691
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:125
1692
-	__( 'Whole Number', 'event_espresso' ),
1692
+	__('Whole Number', 'event_espresso'),
1693 1693
 
1694 1694
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:127
1695
-	__( 'adds a text input that only accepts numbers whose value is an integer (whole number)', 'event_espresso' ),
1695
+	__('adds a text input that only accepts numbers whose value is an integer (whole number)', 'event_espresso'),
1696 1696
 
1697 1697
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:130
1698
-	__( 'Number Range', 'event_espresso' ),
1698
+	__('Number Range', 'event_espresso'),
1699 1699
 
1700 1700
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:136
1701
-	__( 'Phone Number', 'event_espresso' ),
1701
+	__('Phone Number', 'event_espresso'),
1702 1702
 
1703 1703
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:142
1704
-	__( 'Dropdown', 'event_espresso' ),
1704
+	__('Dropdown', 'event_espresso'),
1705 1705
 
1706 1706
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:144
1707
-	__( 'adds a dropdown selector that accepts a single value', 'event_espresso' ),
1707
+	__('adds a dropdown selector that accepts a single value', 'event_espresso'),
1708 1708
 
1709 1709
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:147
1710
-	__( 'Multi Select', 'event_espresso' ),
1710
+	__('Multi Select', 'event_espresso'),
1711 1711
 
1712 1712
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:149
1713
-	__( 'adds a dropdown selector that accepts multiple values', 'event_espresso' ),
1713
+	__('adds a dropdown selector that accepts multiple values', 'event_espresso'),
1714 1714
 
1715 1715
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:152
1716
-	__( 'Toggle/Switch', 'event_espresso' ),
1716
+	__('Toggle/Switch', 'event_espresso'),
1717 1717
 
1718 1718
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:154
1719
-	__( 'adds a toggle or a switch to accept true or false value', 'event_espresso' ),
1719
+	__('adds a toggle or a switch to accept true or false value', 'event_espresso'),
1720 1720
 
1721 1721
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:157
1722
-	__( 'Multi Checkbox', 'event_espresso' ),
1722
+	__('Multi Checkbox', 'event_espresso'),
1723 1723
 
1724 1724
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:159
1725
-	__( 'adds checkboxes that allow users to select zero or more options from those provided', 'event_espresso' ),
1725
+	__('adds checkboxes that allow users to select zero or more options from those provided', 'event_espresso'),
1726 1726
 
1727 1727
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:162
1728
-	__( 'Country Selector', 'event_espresso' ),
1728
+	__('Country Selector', 'event_espresso'),
1729 1729
 
1730 1730
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:164
1731
-	__( 'adds a dropdown selector populated with names of countries that are enabled for the site', 'event_espresso' ),
1731
+	__('adds a dropdown selector populated with names of countries that are enabled for the site', 'event_espresso'),
1732 1732
 
1733 1733
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:167
1734
-	__( 'State Selector', 'event_espresso' ),
1734
+	__('State Selector', 'event_espresso'),
1735 1735
 
1736 1736
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:173
1737
-	__( 'Button', 'event_espresso' ),
1737
+	__('Button', 'event_espresso'),
1738 1738
 
1739 1739
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:175
1740
-	__( 'adds a button to the form that can be used for triggering fucntionality (requires custom coding)', 'event_espresso' ),
1740
+	__('adds a button to the form that can be used for triggering fucntionality (requires custom coding)', 'event_espresso'),
1741 1741
 
1742 1742
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:178
1743
-	__( 'Reset Button', 'event_espresso' ),
1743
+	__('Reset Button', 'event_espresso'),
1744 1744
 
1745 1745
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:180
1746
-	__( 'adds a button that will reset the form back to its orginial state.', 'event_espresso' ),
1746
+	__('adds a button that will reset the form back to its orginial state.', 'event_espresso'),
1747 1747
 
1748 1748
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:26
1749
-	__( 'Form Section', 'event_espresso' ),
1749
+	__('Form Section', 'event_espresso'),
1750 1750
 
1751 1751
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:28
1752
-	__( 'Used for creating logical groupings for questions and form elements. Need to add a heading or description? Use the HTML form element.', 'event_espresso' ),
1752
+	__('Used for creating logical groupings for questions and form elements. Need to add a heading or description? Use the HTML form element.', 'event_espresso'),
1753 1753
 
1754 1754
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:33
1755
-	__( 'HTML Block', 'event_espresso' ),
1755
+	__('HTML Block', 'event_espresso'),
1756 1756
 
1757 1757
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:35
1758
-	__( 'allows you to add HTML like headings or text paragraphs to your form', 'event_espresso' ),
1758
+	__('allows you to add HTML like headings or text paragraphs to your form', 'event_espresso'),
1759 1759
 
1760 1760
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:38
1761
-	__( 'Text Input', 'event_espresso' ),
1761
+	__('Text Input', 'event_espresso'),
1762 1762
 
1763 1763
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:40
1764
-	__( 'adds a text input that only accepts plain text', 'event_espresso' ),
1764
+	__('adds a text input that only accepts plain text', 'event_espresso'),
1765 1765
 
1766 1766
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:43
1767
-	__( 'Plain Text Area', 'event_espresso' ),
1767
+	__('Plain Text Area', 'event_espresso'),
1768 1768
 
1769 1769
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:45
1770
-	__( 'adds a textarea block that only accepts plain text', 'event_espresso' ),
1770
+	__('adds a textarea block that only accepts plain text', 'event_espresso'),
1771 1771
 
1772 1772
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:48
1773
-	__( 'HTML Text Area', 'event_espresso' ),
1773
+	__('HTML Text Area', 'event_espresso'),
1774 1774
 
1775 1775
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:50
1776
-	__( 'adds a textarea block that accepts text including simple HTML markup', 'event_espresso' ),
1776
+	__('adds a textarea block that accepts text including simple HTML markup', 'event_espresso'),
1777 1777
 
1778 1778
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:53
1779
-	__( 'Email Address', 'event_espresso' ),
1779
+	__('Email Address', 'event_espresso'),
1780 1780
 
1781 1781
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:55
1782
-	__( 'adds a text input that only accets a valid email address', 'event_espresso' ),
1782
+	__('adds a text input that only accets a valid email address', 'event_espresso'),
1783 1783
 
1784 1784
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:58
1785
-	__( 'Email Confirmation', 'event_espresso' ),
1785
+	__('Email Confirmation', 'event_espresso'),
1786 1786
 
1787 1787
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:64
1788
-	__( 'Password', 'event_espresso' ),
1788
+	__('Password', 'event_espresso'),
1789 1789
 
1790 1790
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:66
1791
-	__( 'adds a text input that accepts text but masks what the user enters', 'event_espresso' ),
1791
+	__('adds a text input that accepts text but masks what the user enters', 'event_espresso'),
1792 1792
 
1793 1793
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:69
1794
-	__( 'URL', 'event_espresso' ),
1794
+	__('URL', 'event_espresso'),
1795 1795
 
1796 1796
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:71
1797
-	__( 'adds a text input for entering a URL address', 'event_espresso' ),
1797
+	__('adds a text input for entering a URL address', 'event_espresso'),
1798 1798
 
1799 1799
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:74
1800
-	__( 'Date', 'event_espresso' ),
1800
+	__('Date', 'event_espresso'),
1801 1801
 
1802 1802
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:76
1803
-	__( 'adds a text input that allows users to enter a date directly via keyboard or a datepicker', 'event_espresso' ),
1803
+	__('adds a text input that allows users to enter a date directly via keyboard or a datepicker', 'event_espresso'),
1804 1804
 
1805 1805
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:79
1806
-	__( 'Local Date', 'event_espresso' ),
1806
+	__('Local Date', 'event_espresso'),
1807 1807
 
1808 1808
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:85
1809
-	__( 'Month', 'event_espresso' ),
1809
+	__('Month', 'event_espresso'),
1810 1810
 
1811 1811
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:87
1812
-	__( 'adds a text input that allows users to enter a month and year directly via keyboard or a datepicker', 'event_espresso' ),
1812
+	__('adds a text input that allows users to enter a month and year directly via keyboard or a datepicker', 'event_espresso'),
1813 1813
 
1814 1814
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:90
1815
-	__( 'Time', 'event_espresso' ),
1815
+	__('Time', 'event_espresso'),
1816 1816
 
1817 1817
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:92
1818
-	__( 'adds a text input that allows users to enter a time directly via keyboard or a timepicker', 'event_espresso' ),
1818
+	__('adds a text input that allows users to enter a time directly via keyboard or a timepicker', 'event_espresso'),
1819 1819
 
1820 1820
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:95
1821
-	__( 'Week', 'event_espresso' ),
1821
+	__('Week', 'event_espresso'),
1822 1822
 
1823 1823
 	// Reference: packages/ui-components/src/FormBuilder/constants.ts:97
1824
-	__( 'adds a text input that allows users to enter a week and year directly via keyboard or a datepicker', 'event_espresso' ),
1824
+	__('adds a text input that allows users to enter a week and year directly via keyboard or a datepicker', 'event_espresso'),
1825 1825
 
1826 1826
 	// Reference: packages/ui-components/src/Legend/ToggleLegendButton.tsx:26
1827
-	__( 'hide legend', 'event_espresso' ),
1827
+	__('hide legend', 'event_espresso'),
1828 1828
 
1829 1829
 	// Reference: packages/ui-components/src/Legend/ToggleLegendButton.tsx:26
1830
-	__( 'show legend', 'event_espresso' ),
1830
+	__('show legend', 'event_espresso'),
1831 1831
 
1832 1832
 	// Reference: packages/ui-components/src/LoadingNotice/LoadingNotice.tsx:11
1833
-	__( 'loading…', 'event_espresso' ),
1833
+	__('loading…', 'event_espresso'),
1834 1834
 
1835 1835
 	// Reference: packages/ui-components/src/Modal/Modal.tsx:58
1836
-	__( 'close modal', 'event_espresso' ),
1836
+	__('close modal', 'event_espresso'),
1837 1837
 
1838 1838
 	// Reference: packages/ui-components/src/Pagination/ItemRender.tsx:10
1839
-	__( 'jump to previous', 'event_espresso' ),
1839
+	__('jump to previous', 'event_espresso'),
1840 1840
 
1841 1841
 	// Reference: packages/ui-components/src/Pagination/ItemRender.tsx:11
1842
-	__( 'jump to next', 'event_espresso' ),
1842
+	__('jump to next', 'event_espresso'),
1843 1843
 
1844 1844
 	// Reference: packages/ui-components/src/Pagination/ItemRender.tsx:12
1845
-	__( 'page', 'event_espresso' ),
1845
+	__('page', 'event_espresso'),
1846 1846
 
1847 1847
 	// Reference: packages/ui-components/src/Pagination/ItemRender.tsx:8
1848
-	__( 'previous', 'event_espresso' ),
1848
+	__('previous', 'event_espresso'),
1849 1849
 
1850 1850
 	// Reference: packages/ui-components/src/Pagination/ItemRender.tsx:9
1851
-	__( 'next', 'event_espresso' ),
1851
+	__('next', 'event_espresso'),
1852 1852
 
1853 1853
 	// Reference: packages/ui-components/src/Pagination/PerPage.tsx:37
1854
-	__( 'items per page', 'event_espresso' ),
1854
+	__('items per page', 'event_espresso'),
1855 1855
 
1856 1856
 	// Reference: packages/ui-components/src/Pagination/constants.ts:10
1857 1857
 	/* translators: %s is per page value */
1858
-	__( '%s / page', 'event_espresso' ),
1858
+	__('%s / page', 'event_espresso'),
1859 1859
 
1860 1860
 	// Reference: packages/ui-components/src/Pagination/constants.ts:13
1861
-	__( 'Next Page', 'event_espresso' ),
1861
+	__('Next Page', 'event_espresso'),
1862 1862
 
1863 1863
 	// Reference: packages/ui-components/src/Pagination/constants.ts:14
1864
-	__( 'Previous Page', 'event_espresso' ),
1864
+	__('Previous Page', 'event_espresso'),
1865 1865
 
1866 1866
 	// Reference: packages/ui-components/src/PercentSign/index.tsx:10
1867
-	__( '%', 'event_espresso' ),
1867
+	__('%', 'event_espresso'),
1868 1868
 
1869 1869
 	// Reference: packages/ui-components/src/SimpleEntityList/EntityOptionsRow/index.tsx:23
1870
-	__( 'Select an existing one to use as a template.', 'event_espresso' ),
1870
+	__('Select an existing one to use as a template.', 'event_espresso'),
1871 1871
 
1872 1872
 	// Reference: packages/ui-components/src/SimpleEntityList/EntityOptionsRow/index.tsx:27
1873
-	__( 'or', 'event_espresso' ),
1873
+	__('or', 'event_espresso'),
1874 1874
 
1875 1875
 	// Reference: packages/ui-components/src/SimpleEntityList/EntityOptionsRow/index.tsx:30
1876
-	__( 'Add new and insert details manually', 'event_espresso' ),
1876
+	__('Add new and insert details manually', 'event_espresso'),
1877 1877
 
1878 1878
 	// Reference: packages/ui-components/src/SimpleEntityList/EntityOptionsRow/index.tsx:34
1879
-	__( 'Add New', 'event_espresso' ),
1879
+	__('Add New', 'event_espresso'),
1880 1880
 
1881 1881
 	// Reference: packages/ui-components/src/Stepper/buttons/Next.tsx:8
1882
-	__( 'Next', 'event_espresso' ),
1882
+	__('Next', 'event_espresso'),
1883 1883
 
1884 1884
 	// Reference: packages/ui-components/src/Stepper/buttons/Previous.tsx:8
1885
-	__( 'Previous', 'event_espresso' ),
1885
+	__('Previous', 'event_espresso'),
1886 1886
 
1887 1887
 	// Reference: packages/ui-components/src/Steps/Steps.tsx:31
1888
-	__( 'Steps', 'event_espresso' ),
1888
+	__('Steps', 'event_espresso'),
1889 1889
 
1890 1890
 	// Reference: packages/ui-components/src/TabbableText/index.tsx:19
1891
-	__( 'Click to edit…', 'event_espresso' ),
1891
+	__('Click to edit…', 'event_espresso'),
1892 1892
 
1893 1893
 	// Reference: packages/ui-components/src/TimezoneTimeInfo/Content.tsx:14
1894
-	__( 'The Website\'s Time Zone', 'event_espresso' ),
1894
+	__('The Website\'s Time Zone', 'event_espresso'),
1895 1895
 
1896 1896
 	// Reference: packages/ui-components/src/TimezoneTimeInfo/Content.tsx:19
1897
-	__( 'UTC (Greenwich Mean Time)', 'event_espresso' ),
1897
+	__('UTC (Greenwich Mean Time)', 'event_espresso'),
1898 1898
 
1899 1899
 	// Reference: packages/ui-components/src/TimezoneTimeInfo/Content.tsx:9
1900
-	__( 'Your Local Time Zone', 'event_espresso' ),
1900
+	__('Your Local Time Zone', 'event_espresso'),
1901 1901
 
1902 1902
 	// Reference: packages/ui-components/src/TimezoneTimeInfo/TimezoneTimeInfo.tsx:27
1903
-	__( 'click for timezone information', 'event_espresso' ),
1903
+	__('click for timezone information', 'event_espresso'),
1904 1904
 
1905 1905
 	// Reference: packages/ui-components/src/TimezoneTimeInfo/TimezoneTimeInfo.tsx:32
1906
-	__( 'This Date Converted To:', 'event_espresso' ),
1906
+	__('This Date Converted To:', 'event_espresso'),
1907 1907
 
1908 1908
 	// Reference: packages/ui-components/src/bulkEdit/BulkActions.tsx:51
1909
-	__( 'select all', 'event_espresso' ),
1909
+	__('select all', 'event_espresso'),
1910 1910
 
1911 1911
 	// Reference: packages/ui-components/src/bulkEdit/BulkActions.tsx:54
1912
-	__( 'apply', 'event_espresso' )
1912
+	__('apply', 'event_espresso')
1913 1913
 );
1914 1914
 /* THIS IS THE END OF THE GENERATED FILE */
Please login to merge, or discard this patch.