Completed
Branch dependabot/npm_and_yarn/wordpr... (839ddb)
by
unknown
16:10 queued 14:20
created
templates/registration_page_registration_questions.template.php 2 patches
Indentation   +99 added lines, -99 removed lines patch added patch discarded remove patch
@@ -1,82 +1,82 @@  discard block
 block discarded – undo
1 1
 <div id="single-page-checkout" class="ui-widget">
2 2
     <?php do_action(
3
-        'AHEE__registration_page_registration_questions__template__after_spco_attendee_information_header'
4
-    ) ?>
3
+		'AHEE__registration_page_registration_questions__template__after_spco_attendee_information_header'
4
+	) ?>
5 5
     <div id="spco-attendee_information-dv" class="spco-step-dv">
6 6
 
7 7
         <p id="spco-attendee_information-pg" class="spco-steps-pg small-text drk-grey-text">
8 8
             <?php printf(
9
-                __(
10
-                    'In order to process your registration, we ask you to provide the following information.%1$sPlease note that all fields marked with an asterisk (%2$s) are required.',
11
-                    'event_espresso'
12
-                ),
13
-                '<br />',
14
-                '<span class="asterisk">*</span>'
15
-            ); ?>
9
+				__(
10
+					'In order to process your registration, we ask you to provide the following information.%1$sPlease note that all fields marked with an asterisk (%2$s) are required.',
11
+					'event_espresso'
12
+				),
13
+				'<br />',
14
+				'<span class="asterisk">*</span>'
15
+			); ?>
16 16
         </p>
17 17
 
18 18
         <?php
19
-        global $css_class;
20
-        $att_nmbr = 0;
21
-        $prev_event = '';
19
+		global $css_class;
20
+		$att_nmbr = 0;
21
+		$prev_event = '';
22 22
 
23
-        if ($event_queue['total_items'] > 0) {
24
-            foreach ($event_queue['items'] as $line_item => $item) {
25
-                $att_nmbr++;
26
-                if ($item['attendee_questions'] != '') {
27
-                    ?>
23
+		if ($event_queue['total_items'] > 0) {
24
+			foreach ($event_queue['items'] as $line_item => $item) {
25
+				$att_nmbr++;
26
+				if ($item['attendee_questions'] != '') {
27
+					?>
28 28
 
29 29
                     <div id="spco-attendee-panel-dv-<?php echo $line_item; ?>" class="spco-attendee-panel-dv">
30 30
 
31 31
                         <?php
32
-                        if ($item['ticket']->name() != $prev_event) { ?>
32
+						if ($item['ticket']->name() != $prev_event) { ?>
33 33
                             <p class="spco-ticket-info-pg">
34 34
                                 <?php
35
-                                echo $item['ticket']->name() . ':  '
36
-                                     . EEH_Template::format_currency(
37
-                                         $item['ticket']->price(),
38
-                                         false,
39
-                                         false
40
-                                     );
41
-                                echo $item['ticket']->qty()
42
-                                    ? ' &nbsp; x &nbsp; ' . $ticket_count[ $item['ticket']->ID() ]
43
-                                                              . __(
44
-                                                                  ' tickets',
45
-                                                                  'event_espresso'
46
-                                                              ) . ' &nbsp; = &nbsp; '
47
-                                                              . EEH_Template::format_currency(
48
-                                                                  $item['ticket']->price() * $ticket_count[ $item['ticket']->ID() ]
49
-                                                              )
50
-                                    : '';
51
-                                echo $item['ticket']->description()
52
-                                    ? '<br/>' . __(
53
-                                        'Ticket Details: ',
54
-                                        'event_espresso'
55
-                                    ) . $item['ticket']->description() : '';
56
-                                ?>
35
+								echo $item['ticket']->name() . ':  '
36
+									 . EEH_Template::format_currency(
37
+										 $item['ticket']->price(),
38
+										 false,
39
+										 false
40
+									 );
41
+								echo $item['ticket']->qty()
42
+									? ' &nbsp; x &nbsp; ' . $ticket_count[ $item['ticket']->ID() ]
43
+															  . __(
44
+																  ' tickets',
45
+																  'event_espresso'
46
+															  ) . ' &nbsp; = &nbsp; '
47
+															  . EEH_Template::format_currency(
48
+																  $item['ticket']->price() * $ticket_count[ $item['ticket']->ID() ]
49
+															  )
50
+									: '';
51
+								echo $item['ticket']->description()
52
+									? '<br/>' . __(
53
+										'Ticket Details: ',
54
+										'event_espresso'
55
+									) . $item['ticket']->description() : '';
56
+								?>
57 57
                             </p>
58 58
 
59 59
                             <?php
60
-                        }
61
-                        ?>
60
+						}
61
+						?>
62 62
 
63 63
                         <fieldset id="spco-attendee-wrap-<?php echo $line_item; ?>" class="spco-attendee-wrap-fs">
64 64
                             <legend class="spco-attendee-lgnd smaller-text lt-grey-text">
65 65
                                 <?php echo __(
66
-                                    'Registrant #',
67
-                                    'event_espresso'
68
-                                ) . $att_nmbr; ?></legend>
66
+									'Registrant #',
67
+									'event_espresso'
68
+								) . $att_nmbr; ?></legend>
69 69
 
70 70
                             <?php
71
-                            // do an action before the questions output, including the item and count
72
-                            echo do_action(
73
-                                'AHEE__registration_page_registration_questions__template___before_questions',
74
-                                $item,
75
-                                $att_nmbr
76
-                            );
77
-                            echo $item['attendee_questions'];
78
-
79
-                            if ($att_nmbr == 1 && $print_copy_info) { ?>
71
+							// do an action before the questions output, including the item and count
72
+							echo do_action(
73
+								'AHEE__registration_page_registration_questions__template___before_questions',
74
+								$item,
75
+								$att_nmbr
76
+							);
77
+							echo $item['attendee_questions'];
78
+
79
+							if ($att_nmbr == 1 && $print_copy_info) { ?>
80 80
                                 <input type="hidden" id="primary-attendee" name="qstn[primary_attendee]"
81 81
                                        value="<?php echo $prmy_att_input_name ?>"/>
82 82
 
@@ -85,9 +85,9 @@  discard block
 block discarded – undo
85 85
                                     <p class="spco-copy-all-attendee-pg">
86 86
                                         <label class="wide">
87 87
                                             <?php _e(
88
-                                                'Use Registrant #1\'s information for ALL registrants',
89
-                                                'event_espresso'
90
-                                            ); ?>
88
+												'Use Registrant #1\'s information for ALL registrants',
89
+												'event_espresso'
90
+											); ?>
91 91
                                             <input id="spco-copy-all-attendee-chk"
92 92
                                                    class="spco-copy-all-attendee-chk ui-widget-content ui-corner-all"
93 93
                                                    type="checkbox" value="copy-all">
@@ -96,46 +96,46 @@  discard block
 block discarded – undo
96 96
 
97 97
                                     <p class="spco-copy-attendee-pg">
98 98
                                         <?php _e(
99
-                                            'This option allows you to use the above information for all additional registrant question fields. <span>(&nbsp;Please note that some events may have additional questions that you may still be required to answer in order to complete your registration.&nbsp;)</span>',
100
-                                            'event_espresso'
101
-                                        ); ?></p>
99
+											'This option allows you to use the above information for all additional registrant question fields. <span>(&nbsp;Please note that some events may have additional questions that you may still be required to answer in order to complete your registration.&nbsp;)</span>',
100
+											'event_espresso'
101
+										); ?></p>
102 102
 
103 103
                                     <a id="display-more-attendee-copy-options"
104 104
                                        class="display-the-hidden smaller-text float-right"
105 105
                                        rel="more-attendee-copy-options">
106 106
                                         <?php _e(
107
-                                            'more options',
108
-                                            'event_espresso'
109
-                                        ); ?></a>
107
+											'more options',
108
+											'event_espresso'
109
+										); ?></a>
110 110
 
111 111
                                     <div id="more-attendee-copy-options-dv" class="">
112 112
                                         <a id="hide-more-attendee-copy-options"
113 113
                                            class="hide-the-displayed smaller-text float-right"
114 114
                                            rel="more-attendee-copy-options">
115 115
                                             <?php _e(
116
-                                                'less options',
117
-                                                'event_espresso'
118
-                                            ); ?></a>
116
+												'less options',
117
+												'event_espresso'
118
+											); ?></a>
119 119
                                         <p class="spco-copy-attendee-pg">
120 120
                                             <?php _e(
121
-                                                'The following checkboxes allow you to use the above information for only the selected additional event registrants.',
122
-                                                'event_espresso'
123
-                                            ); ?>
121
+												'The following checkboxes allow you to use the above information for only the selected additional event registrants.',
122
+												'event_espresso'
123
+											); ?>
124 124
                                         </p>
125 125
 
126 126
                                         <?php
127
-                                        foreach ($additional_event_attendees as $event_attendees) {
128
-                                            foreach ($event_attendees as $attendee) {
129
-                                                if ($attendee['event_hdr']) { ?>
127
+										foreach ($additional_event_attendees as $event_attendees) {
128
+											foreach ($event_attendees as $attendee) {
129
+												if ($attendee['event_hdr']) { ?>
130 130
                                                     <h6 class="spco-copy-attendee-event-hdr"><?php echo $attendee['event_hdr']; ?></h6>
131 131
                                                 <?php } ?>
132 132
 
133 133
                                                 <p class="event_form_field spco-copy-attendee-chk-pg">
134 134
                                                     <label>
135 135
                                                         <?php echo __(
136
-                                                            'Attendee #',
137
-                                                            'event_espresso'
138
-                                                        ) . $attendee['att_nmbr']; ?>
136
+															'Attendee #',
137
+															'event_espresso'
138
+														) . $attendee['att_nmbr']; ?>
139 139
                                                         <input type="checkbox"
140 140
                                                                id="spco-copy-attendee-chk-<?php echo $attendee['input_id']; ?>"
141 141
                                                                class="spco-copy-attendee-chk <?php echo $css_class; ?>"
@@ -153,25 +153,25 @@  discard block
 block discarded – undo
153 153
                                     <div class="clear-float"></div>
154 154
                                 </div>
155 155
                                 <?php
156
-                                $print_copy_info = false;
157
-                            } elseif ($att_nmbr == 1) {
158
-                                ?>
156
+								$print_copy_info = false;
157
+							} elseif ($att_nmbr == 1) {
158
+								?>
159 159
                                 <p id="spco-auto-copy-attendee-pg" class="smaller-text lt-grey-text">
160 160
                                     <?php _e(
161
-                                        'The above information will be used for any additional tickets/registrants.',
162
-                                        'event_espresso'
163
-                                    ); ?>
161
+										'The above information will be used for any additional tickets/registrants.',
162
+										'event_espresso'
163
+									); ?>
164 164
                                 </p>
165 165
                                 <?php
166
-                            }
167
-                            ?>
166
+							}
167
+							?>
168 168
                         </fieldset>
169 169
 
170 170
                     </div>
171 171
                     <?php
172
-                } else {
173
-                    if ($att_nmbr == 1) {
174
-                        ?>
172
+				} else {
173
+					if ($att_nmbr == 1) {
174
+						?>
175 175
                         <div id="spco-attendee-panel-dv-<?php echo $line_item; ?>" class="spco-attendee-panel-dv">
176 176
                             <h3 id="event_title-<?php echo $item['ticket']->ID() ?>" class="big-event-title-hdr">
177 177
                                 <?php echo $item['event']->name(); ?>
@@ -179,24 +179,24 @@  discard block
 block discarded – undo
179 179
                             <fieldset id="spco-attendee-wrap-<?php echo $line_item; ?>" class="spco-attendee-wrap-fs">
180 180
                                 <h6>
181 181
                                     <?php _e(
182
-                                        'No information is required to attend this event. Please proceed to the next Step',
183
-                                        'event_espresso'
184
-                                    ); ?></h6>
182
+										'No information is required to attend this event. Please proceed to the next Step',
183
+										'event_espresso'
184
+									); ?></h6>
185 185
                                 <input type="hidden" id="no-questions" name="qstn[]" value="0"/>
186 186
                             </fieldset>
187 187
                         </div>
188 188
                         <?php
189
-                    }
190
-                }
191
-                echo $item['additional_attendee_reg_info'];
192
-                $prev_event = $item['ticket']->name();
193
-            } // $event_queue['items'] as $line_item
194
-        } // $event_queue['total_items']
195
-        ?>
189
+					}
190
+				}
191
+				echo $item['additional_attendee_reg_info'];
192
+				$prev_event = $item['ticket']->name();
193
+			} // $event_queue['items'] as $line_item
194
+		} // $event_queue['total_items']
195
+		?>
196 196
         <div><a id="spco-display-event-questions-lnk"
197 197
                 class="act-like-link smaller-text hidden hide-if-no-js float-right"><?php _e(
198
-                    'show&nbsp;event&nbsp;questions',
199
-                    'event_espresso'
200
-                ); ?></a></div>
198
+					'show&nbsp;event&nbsp;questions',
199
+					'event_espresso'
200
+				); ?></a></div>
201 201
     </div>
202 202
 </div> <!-- #single-page-checkout -->
203 203
\ No newline at end of file
Please login to merge, or discard this patch.
Spacing   +8 added lines, -8 removed lines patch added patch discarded remove patch
@@ -32,27 +32,27 @@  discard block
 block discarded – undo
32 32
                         if ($item['ticket']->name() != $prev_event) { ?>
33 33
                             <p class="spco-ticket-info-pg">
34 34
                                 <?php
35
-                                echo $item['ticket']->name() . ':  '
35
+                                echo $item['ticket']->name().':  '
36 36
                                      . EEH_Template::format_currency(
37 37
                                          $item['ticket']->price(),
38 38
                                          false,
39 39
                                          false
40 40
                                      );
41 41
                                 echo $item['ticket']->qty()
42
-                                    ? ' &nbsp; x &nbsp; ' . $ticket_count[ $item['ticket']->ID() ]
42
+                                    ? ' &nbsp; x &nbsp; '.$ticket_count[$item['ticket']->ID()]
43 43
                                                               . __(
44 44
                                                                   ' tickets',
45 45
                                                                   'event_espresso'
46
-                                                              ) . ' &nbsp; = &nbsp; '
46
+                                                              ).' &nbsp; = &nbsp; '
47 47
                                                               . EEH_Template::format_currency(
48
-                                                                  $item['ticket']->price() * $ticket_count[ $item['ticket']->ID() ]
48
+                                                                  $item['ticket']->price() * $ticket_count[$item['ticket']->ID()]
49 49
                                                               )
50 50
                                     : '';
51 51
                                 echo $item['ticket']->description()
52
-                                    ? '<br/>' . __(
52
+                                    ? '<br/>'.__(
53 53
                                         'Ticket Details: ',
54 54
                                         'event_espresso'
55
-                                    ) . $item['ticket']->description() : '';
55
+                                    ).$item['ticket']->description() : '';
56 56
                                 ?>
57 57
                             </p>
58 58
 
@@ -65,7 +65,7 @@  discard block
 block discarded – undo
65 65
                                 <?php echo __(
66 66
                                     'Registrant #',
67 67
                                     'event_espresso'
68
-                                ) . $att_nmbr; ?></legend>
68
+                                ).$att_nmbr; ?></legend>
69 69
 
70 70
                             <?php
71 71
                             // do an action before the questions output, including the item and count
@@ -135,7 +135,7 @@  discard block
 block discarded – undo
135 135
                                                         <?php echo __(
136 136
                                                             'Attendee #',
137 137
                                                             'event_espresso'
138
-                                                        ) . $attendee['att_nmbr']; ?>
138
+                                                        ).$attendee['att_nmbr']; ?>
139 139
                                                         <input type="checkbox"
140 140
                                                                id="spco-copy-attendee-chk-<?php echo $attendee['input_id']; ?>"
141 141
                                                                class="spco-copy-attendee-chk <?php echo $css_class; ?>"
Please login to merge, or discard this patch.
admin_pages/registrations/templates/reg_status_change_buttons.template.php 1 patch
Indentation   +11 added lines, -11 removed lines patch added patch discarded remove patch
@@ -17,17 +17,17 @@  discard block
 block discarded – undo
17 17
         <?php echo $nonce; ?>
18 18
         <?php echo $status_buttons; ?>
19 19
         <?php
20
-        if ($attendee instanceof EE_Attendee
21
-            && EE_Registry::instance()->CAP->current_user_can(
22
-                'ee_send_message',
23
-                'registration_message_type'
24
-            )) : ?>
20
+		if ($attendee instanceof EE_Attendee
21
+			&& EE_Registry::instance()->CAP->current_user_can(
22
+				'ee_send_message',
23
+				'registration_message_type'
24
+			)) : ?>
25 25
             <span id="send-related-messages-dv">
26 26
                 <label for="txn-reg-status-send-notifications-inp" class="important-notice">
27 27
                 <?php _e(
28
-                    '...and send related messages ?',
29
-                    'event_espresso'
30
-                ); ?>
28
+					'...and send related messages ?',
29
+					'event_espresso'
30
+				); ?>
31 31
                 <input type="checkbox" value="1" id="txn-reg-status-send-notifications-inp"
32 32
                        name="txn_reg_status_change[send_notifications]">
33 33
                 </label>
@@ -36,9 +36,9 @@  discard block
 block discarded – undo
36 36
             <br/>
37 37
             <p class="description">
38 38
                 <?php _e(
39
-                    'If the "send related messages"checkbox is checked when changing status, then the related messages will be sent to the registrant.',
40
-                    'event_espresso'
41
-                ); ?></p>
39
+					'If the "send related messages"checkbox is checked when changing status, then the related messages will be sent to the registrant.',
40
+					'event_espresso'
41
+				); ?></p>
42 42
         <?php endif; ?>
43 43
     </form>
44 44
 </div>
Please login to merge, or discard this patch.
registrations/templates/attendee_details_main_meta_box.template.php 1 patch
Indentation   +15 added lines, -15 removed lines patch added patch discarded remove patch
@@ -23,16 +23,16 @@  discard block
 block discarded – undo
23 23
             <td>
24 24
                 <div class="validation-notice-dv">
25 25
                     <?php _e(
26
-                        'The following is  a required field',
27
-                        'event_espresso'
28
-                    ); ?></div>
26
+						'The following is  a required field',
27
+						'event_espresso'
28
+					); ?></div>
29 29
                 <input class="regular-text required" type="text" id="ATT_fname" name="ATT_fname"
30 30
                        value="<?php echo $attendee->fname(); ?>"/><br/>
31 31
                 <p class="description">
32 32
                     <?php _e(
33
-                        'The registrant\'s given name. ( required value )',
34
-                        'event_espresso'
35
-                    ); ?></p>
33
+						'The registrant\'s given name. ( required value )',
34
+						'event_espresso'
35
+					); ?></p>
36 36
             </td>
37 37
         </tr>
38 38
 
@@ -44,16 +44,16 @@  discard block
 block discarded – undo
44 44
             <td>
45 45
                 <div class="validation-notice-dv">
46 46
                     <?php _e(
47
-                        'The following is  a required field',
48
-                        'event_espresso'
49
-                    ); ?></div>
47
+						'The following is  a required field',
48
+						'event_espresso'
49
+					); ?></div>
50 50
                 <input class="regular-text required" type="text" id="ATT_lname" name="ATT_lname"
51 51
                        value="<?php echo $attendee->lname(); ?>"/><br/>
52 52
                 <p class="description">
53 53
                     <?php _e(
54
-                        'The registrant\'s family name. ( required value )',
55
-                        'event_espresso'
56
-                    ); ?></p>
54
+						'The registrant\'s family name. ( required value )',
55
+						'event_espresso'
56
+					); ?></p>
57 57
             </td>
58 58
         </tr>
59 59
 
@@ -65,9 +65,9 @@  discard block
 block discarded – undo
65 65
             <td>
66 66
                 <div class="validation-notice-dv">
67 67
                     <?php _e(
68
-                        'The following is  a required field',
69
-                        'event_espresso'
70
-                    ); ?></div>
68
+						'The following is  a required field',
69
+						'event_espresso'
70
+					); ?></div>
71 71
                 <input class="regular-text required" type="text" id="ATT_email" name="ATT_email"
72 72
                        value="<?php $attendee->f('ATT_email'); ?>"/><br/>
73 73
                 <p class="description"><?php _e('( required value )', 'event_espresso'); ?></p>
Please login to merge, or discard this patch.
registrations/templates/reg_admin_register_new_attendee.template.php 1 patch
Indentation   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -1,6 +1,6 @@
 block discarded – undo
1 1
 <h1><span class="small-text not-bold">
2 2
         <?php _e(
3
-            'Adding Registration For: ',
4
-            'event_espresso'
5
-        ); ?></span><?php echo $event_name; ?></h1>
3
+			'Adding Registration For: ',
4
+			'event_espresso'
5
+		); ?></span><?php echo $event_name; ?></h1>
6 6
 <?php echo $step_content;
Please login to merge, or discard this patch.
admin_pages/registrations/templates/reg_admin_details_header.template.php 2 patches
Indentation   +11 added lines, -11 removed lines patch added patch discarded remove patch
@@ -1,23 +1,23 @@
 block discarded – undo
1 1
 <div style="float:right">
2 2
     <?php printf(
3
-        __('View %1$sRegistrations%4$s /  %2$sTransactions%4$s for this %3$sevent%4$s.', 'event_espresso'),
4
-        '<a href="' . $filtered_registrations_link . '">',
5
-        '<a href="' . $filtered_transactions_link . '">',
6
-        '<a href="' . $event_link . '">',
7
-        '</a>'
8
-    ); ?>
3
+		__('View %1$sRegistrations%4$s /  %2$sTransactions%4$s for this %3$sevent%4$s.', 'event_espresso'),
4
+		'<a href="' . $filtered_registrations_link . '">',
5
+		'<a href="' . $filtered_transactions_link . '">',
6
+		'<a href="' . $event_link . '">',
7
+		'</a>'
8
+	); ?>
9 9
 </div>
10 10
 <h3 id="reg-admin-reg-details-reg-nmbr-hdr"><?php echo $previous_registration . '&nbsp;';
11
-    echo __('Registration # ', 'event_espresso') . $reg_nmbr['value'];
12
-    echo '&nbsp;' . $next_registration; ?></h3>
11
+	echo __('Registration # ', 'event_espresso') . $reg_nmbr['value'];
12
+	echo '&nbsp;' . $next_registration; ?></h3>
13 13
 <h2 id="reg-admin-reg-details-reg-date-hdr"><?php echo $reg_datetime['value']; ?></h2>
14 14
 
15 15
 <?php if ($registration->group_size() > 1) : ?>
16 16
     <a id="scroll-to-other-attendees" class="scroll-to" href="#other-attendees">
17 17
         <?php echo __(
18
-            'Scroll to Other Registrations in the Same Transaction',
19
-            'event_espresso'
20
-        ); ?></a>
18
+			'Scroll to Other Registrations in the Same Transaction',
19
+			'event_espresso'
20
+		); ?></a>
21 21
 <?php endif; ?>
22 22
 
23 23
 <?php do_action('AHEE__reg_status_change_buttons__after_header', $REG_ID); ?>
Please login to merge, or discard this patch.
Spacing   +6 added lines, -6 removed lines patch added patch discarded remove patch
@@ -1,15 +1,15 @@
 block discarded – undo
1 1
 <div style="float:right">
2 2
     <?php printf(
3 3
         __('View %1$sRegistrations%4$s /  %2$sTransactions%4$s for this %3$sevent%4$s.', 'event_espresso'),
4
-        '<a href="' . $filtered_registrations_link . '">',
5
-        '<a href="' . $filtered_transactions_link . '">',
6
-        '<a href="' . $event_link . '">',
4
+        '<a href="'.$filtered_registrations_link.'">',
5
+        '<a href="'.$filtered_transactions_link.'">',
6
+        '<a href="'.$event_link.'">',
7 7
         '</a>'
8 8
     ); ?>
9 9
 </div>
10
-<h3 id="reg-admin-reg-details-reg-nmbr-hdr"><?php echo $previous_registration . '&nbsp;';
11
-    echo __('Registration # ', 'event_espresso') . $reg_nmbr['value'];
12
-    echo '&nbsp;' . $next_registration; ?></h3>
10
+<h3 id="reg-admin-reg-details-reg-nmbr-hdr"><?php echo $previous_registration.'&nbsp;';
11
+    echo __('Registration # ', 'event_espresso').$reg_nmbr['value'];
12
+    echo '&nbsp;'.$next_registration; ?></h3>
13 13
 <h2 id="reg-admin-reg-details-reg-date-hdr"><?php echo $reg_datetime['value']; ?></h2>
14 14
 
15 15
 <?php if ($registration->group_size() > 1) : ?>
Please login to merge, or discard this patch.
registrations/templates/attendee_registrations_main_meta_box.template.php 2 patches
Indentation   +48 added lines, -48 removed lines patch added patch discarded remove patch
@@ -17,62 +17,62 @@
 block discarded – undo
17 17
                 <tr>
18 18
                     <td class="jst-left">
19 19
                         <?php
20
-                        $event_url = add_query_arg(
21
-                            array('action' => 'edit', 'post' => $registration->event_ID()),
22
-                            admin_url('admin.php?page=espresso_events')
23
-                        );
24
-                        echo EE_Registry::instance()->CAP->current_user_can(
25
-                            'ee_edit_event',
26
-                            'espresso_events_edit',
27
-                            $registration->event_ID()
28
-                        ) ? '<a href="' . $event_url . '"  title="'
29
-                            . esc_attr__(
30
-                                'Edit Event',
31
-                                'event_espresso'
32
-                            ) . '">' . $registration->event_name() . '</a>' : $registration->event_name();
33
-                        ?>
20
+						$event_url = add_query_arg(
21
+							array('action' => 'edit', 'post' => $registration->event_ID()),
22
+							admin_url('admin.php?page=espresso_events')
23
+						);
24
+						echo EE_Registry::instance()->CAP->current_user_can(
25
+							'ee_edit_event',
26
+							'espresso_events_edit',
27
+							$registration->event_ID()
28
+						) ? '<a href="' . $event_url . '"  title="'
29
+							. esc_attr__(
30
+								'Edit Event',
31
+								'event_espresso'
32
+							) . '">' . $registration->event_name() . '</a>' : $registration->event_name();
33
+						?>
34 34
                     </td>
35 35
                     <td class="jst-left">
36 36
                         <?php
37
-                        $reg_url = EE_Admin_Page::add_query_args_and_nonce(
38
-                            array('action' => 'view_registration', '_REG_ID' => $registration->ID()),
39
-                            REG_ADMIN_URL
40
-                        );
41
-                        echo EE_Registry::instance()->CAP->current_user_can(
42
-                            'ee_read_registration',
43
-                            'espresso_registrations_view_registration',
44
-                            $registration->ID()
45
-                        ) ? '
37
+						$reg_url = EE_Admin_Page::add_query_args_and_nonce(
38
+							array('action' => 'view_registration', '_REG_ID' => $registration->ID()),
39
+							REG_ADMIN_URL
40
+						);
41
+						echo EE_Registry::instance()->CAP->current_user_can(
42
+							'ee_read_registration',
43
+							'espresso_registrations_view_registration',
44
+							$registration->ID()
45
+						) ? '
46 46
 							<a href="' . $reg_url . '" title="'
47
-                            . esc_attr__(
48
-                                'View Registration Details',
49
-                                'event_espresso'
50
-                            ) . '">' .
51
-                            esc_html__('View Registration', 'event_espresso') .
52
-                            '</a>' : $registration->ID();
53
-                        ?>
47
+							. esc_attr__(
48
+								'View Registration Details',
49
+								'event_espresso'
50
+							) . '">' .
51
+							esc_html__('View Registration', 'event_espresso') .
52
+							'</a>' : $registration->ID();
53
+						?>
54 54
                     </td>
55 55
                     <td class="jst-left">
56 56
                         <?php
57
-                        $txn_url = EE_Admin_Page::add_query_args_and_nonce(
58
-                            array('action' => 'view_transaction', 'TXN_ID' => $registration->transaction_ID()),
59
-                            TXN_ADMIN_URL
60
-                        );
61
-                        echo EE_Registry::instance()->CAP->current_user_can(
62
-                            'ee_read_transaction',
63
-                            'espresso_transactions_view_transaction'
64
-                        ) ? '
57
+						$txn_url = EE_Admin_Page::add_query_args_and_nonce(
58
+							array('action' => 'view_transaction', 'TXN_ID' => $registration->transaction_ID()),
59
+							TXN_ADMIN_URL
60
+						);
61
+						echo EE_Registry::instance()->CAP->current_user_can(
62
+							'ee_read_transaction',
63
+							'espresso_transactions_view_transaction'
64
+						) ? '
65 65
 						<a href="' . $txn_url . '" title="'
66
-                            . esc_attr__(
67
-                                'View Transaction Details',
68
-                                'event_espresso'
69
-                            ) . '">' .
70
-                            sprintf(
71
-                                esc_html__('View Transaction %d', 'event_espresso'),
72
-                                $registration->transaction_ID()
73
-                            ) .
74
-                            '</a>' : $registration->transaction_ID();
75
-                        ?>
66
+							. esc_attr__(
67
+								'View Transaction Details',
68
+								'event_espresso'
69
+							) . '">' .
70
+							sprintf(
71
+								esc_html__('View Transaction %d', 'event_espresso'),
72
+								$registration->transaction_ID()
73
+							) .
74
+							'</a>' : $registration->transaction_ID();
75
+						?>
76 76
                     </td>
77 77
                     <td class="jst-left"><?php echo $registration->reg_code(); ?></td>
78 78
                     <td class="jst-rght"><?php echo EEH_Template::format_currency($registration->final_price()); ?></td>
Please login to merge, or discard this patch.
Spacing   +8 added lines, -8 removed lines patch added patch discarded remove patch
@@ -25,11 +25,11 @@  discard block
 block discarded – undo
25 25
                             'ee_edit_event',
26 26
                             'espresso_events_edit',
27 27
                             $registration->event_ID()
28
-                        ) ? '<a href="' . $event_url . '"  title="'
28
+                        ) ? '<a href="'.$event_url.'"  title="'
29 29
                             . esc_attr__(
30 30
                                 'Edit Event',
31 31
                                 'event_espresso'
32
-                            ) . '">' . $registration->event_name() . '</a>' : $registration->event_name();
32
+                            ).'">'.$registration->event_name().'</a>' : $registration->event_name();
33 33
                         ?>
34 34
                     </td>
35 35
                     <td class="jst-left">
@@ -43,12 +43,12 @@  discard block
 block discarded – undo
43 43
                             'espresso_registrations_view_registration',
44 44
                             $registration->ID()
45 45
                         ) ? '
46
-							<a href="' . $reg_url . '" title="'
46
+							<a href="' . $reg_url.'" title="'
47 47
                             . esc_attr__(
48 48
                                 'View Registration Details',
49 49
                                 'event_espresso'
50
-                            ) . '">' .
51
-                            esc_html__('View Registration', 'event_espresso') .
50
+                            ).'">'.
51
+                            esc_html__('View Registration', 'event_espresso').
52 52
                             '</a>' : $registration->ID();
53 53
                         ?>
54 54
                     </td>
@@ -62,15 +62,15 @@  discard block
 block discarded – undo
62 62
                             'ee_read_transaction',
63 63
                             'espresso_transactions_view_transaction'
64 64
                         ) ? '
65
-						<a href="' . $txn_url . '" title="'
65
+						<a href="' . $txn_url.'" title="'
66 66
                             . esc_attr__(
67 67
                                 'View Transaction Details',
68 68
                                 'event_espresso'
69
-                            ) . '">' .
69
+                            ).'">'.
70 70
                             sprintf(
71 71
                                 esc_html__('View Transaction %d', 'event_espresso'),
72 72
                                 $registration->transaction_ID()
73
-                            ) .
73
+                            ).
74 74
                             '</a>' : $registration->transaction_ID();
75 75
                         ?>
76 76
                     </td>
Please login to merge, or discard this patch.
admin_pages/payments/help_tabs/payment_methods_overview.help_tab.php 2 patches
Indentation   +35 added lines, -35 removed lines patch added patch discarded remove patch
@@ -7,80 +7,80 @@
 block discarded – undo
7 7
     <li>
8 8
         <strong><?php _e('Name', 'event_espresso'); ?></strong><br>
9 9
         <?php _e(
10
-            'The name of the payment method as customers see it in the registration form, in emails, in receipts, etc.',
11
-            'event_espresso'
12
-        ); ?>
10
+			'The name of the payment method as customers see it in the registration form, in emails, in receipts, etc.',
11
+			'event_espresso'
12
+		); ?>
13 13
     </li>
14 14
     <li>
15 15
         <strong><?php _e('Description', 'event_espresso'); ?></strong><br/>
16 16
         <?php _e(
17
-            'The description of how to use the payment method as customers will see it. This is mostly only seen during registration.',
18
-            'event_espresso'
19
-        ); ?>
17
+			'The description of how to use the payment method as customers will see it. This is mostly only seen during registration.',
18
+			'event_espresso'
19
+		); ?>
20 20
     </li>
21 21
     <li><strong><?php _e('Admin-Only Name', 'event_espresso'); ?></strong><br/>
22 22
         <?php _e(
23
-            'The name of the payment method as seen internally by site administrators and staff.',
24
-            'event_espresso'
25
-        ); ?>
23
+			'The name of the payment method as seen internally by site administrators and staff.',
24
+			'event_espresso'
25
+		); ?>
26 26
     </li>
27 27
     <li>
28 28
         <strong><?php _e('Admin-Only Description', 'event_espresso'); ?></strong><br/>
29 29
         <?php _e(
30
-            'The description of the payment method as seen internally by site administrators and staff.',
31
-            'event_espresso'
32
-        ); ?>
30
+			'The description of the payment method as seen internally by site administrators and staff.',
31
+			'event_espresso'
32
+		); ?>
33 33
     </li>
34 34
     <li>
35 35
         <strong><?php _e('Debug (sandbox) Mode', 'event_espresso'); ?></strong><br/>
36 36
         <?php _e(
37
-            'Many payment methods have a debug/sandbox mode where payments are not processed but are only simulated. This is helpful when setup and debugging.',
38
-            'event_espresso'
39
-        ); ?>
37
+			'Many payment methods have a debug/sandbox mode where payments are not processed but are only simulated. This is helpful when setup and debugging.',
38
+			'event_espresso'
39
+		); ?>
40 40
     </li>
41 41
     <li>
42 42
         <strong><?php _e('Open by Default', 'event_espresso'); ?></strong><br/>
43 43
         <?php _e(
44
-            'If checked, this payment method will be selected by default (assuming no other valid payment methods are also marked as open by default.)',
45
-            'event_espresso'
46
-        ); ?>
44
+			'If checked, this payment method will be selected by default (assuming no other valid payment methods are also marked as open by default.)',
45
+			'event_espresso'
46
+		); ?>
47 47
     </li>
48 48
     <li>
49 49
         <strong><?php _e('Button URL', 'event_espresso'); ?></strong><br/>
50 50
         <?php printf(
51
-            __(
52
-                'The URL of the button image for this payment method in the registration process. You may use any uploaded image on your website (click %s next to the field to select). If left blank, the default button image will be used.',
53
-                'event_espresso'
54
-            ),
55
-            '<img src="' . admin_url('images/media-button-image.gif') . '">'
56
-        ); ?>
51
+			__(
52
+				'The URL of the button image for this payment method in the registration process. You may use any uploaded image on your website (click %s next to the field to select). If left blank, the default button image will be used.',
53
+				'event_espresso'
54
+			),
55
+			'<img src="' . admin_url('images/media-button-image.gif') . '">'
56
+		); ?>
57 57
     </li>
58 58
     <li><strong><?php _e('Usable From', 'event_espresso'); ?></strong><br/>
59 59
         <?php _e('Where this payment method can be used from.', 'event_espresso'); ?>
60 60
         <ul>
61 61
             <li>
62 62
                 <?php _e(
63
-                    'Front-end Registration Page: the payment method will appear as an option during the normal registration process to customers and they can use it to process payments.',
64
-                    'event_espresso'
65
-                ); ?></li>
63
+					'Front-end Registration Page: the payment method will appear as an option during the normal registration process to customers and they can use it to process payments.',
64
+					'event_espresso'
65
+				); ?></li>
66 66
             <li>
67 67
                 <?php _e(
68
-                    'Admin Registration Page: when recording payments made from the transaction admin page, the payment method will appear as an option. Note: currently payments can only be RECORDED from the admin, they cannot be PROCESSED.',
69
-                    'event_espresso'
70
-                ); ?></li>
68
+					'Admin Registration Page: when recording payments made from the transaction admin page, the payment method will appear as an option. Note: currently payments can only be RECORDED from the admin, they cannot be PROCESSED.',
69
+					'event_espresso'
70
+				); ?></li>
71 71
         </ul>
72 72
     </li>
73 73
 </ul>
74 74
 <strong><?php _e('Recommendations', 'event_espresso'); ?></strong><br/>
75 75
 <?php _e(
76
-    'Want to see a tour of this screen? Click on the Payment Methods Overview Tour button which appears on the right side of the page. <br />To learn more about the options on this page, take a look at the different tabs that appear on the left side of the page.',
77
-    'event_espresso'
76
+	'Want to see a tour of this screen? Click on the Payment Methods Overview Tour button which appears on the right side of the page. <br />To learn more about the options on this page, take a look at the different tabs that appear on the left side of the page.',
77
+	'event_espresso'
78 78
 ); ?>
79 79
 </p>
80 80
 <p>
81 81
     <strong><?php _e('Screen Options', 'event_espresso'); ?></strong><br/>
82 82
     <?php _e(
83
-        'You can customize the information that is shown on this page by toggling the Screen Options tab. Then you can add or remove checkmarks to hide or show certain content.',
84
-        'event_espresso'
85
-    ); ?>
83
+		'You can customize the information that is shown on this page by toggling the Screen Options tab. Then you can add or remove checkmarks to hide or show certain content.',
84
+		'event_espresso'
85
+	); ?>
86 86
 </p>
87 87
\ No newline at end of file
Please login to merge, or discard this patch.
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -52,7 +52,7 @@
 block discarded – undo
52 52
                 'The URL of the button image for this payment method in the registration process. You may use any uploaded image on your website (click %s next to the field to select). If left blank, the default button image will be used.',
53 53
                 'event_espresso'
54 54
             ),
55
-            '<img src="' . admin_url('images/media-button-image.gif') . '">'
55
+            '<img src="'.admin_url('images/media-button-image.gif').'">'
56 56
         ); ?>
57 57
     </li>
58 58
     <li><strong><?php _e('Usable From', 'event_espresso'); ?></strong><br/>
Please login to merge, or discard this patch.
admin_pages/payments/templates/payment_log_details.template.php 2 patches
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -65,7 +65,7 @@
 block discarded – undo
65 65
                     <?php echo $payment_log->e(
66 66
                         'LOG_message',
67 67
                         'as_table'
68
-                    );// EEH_Template::layout_array_as_table($payment_log->content())?>
68
+                    ); // EEH_Template::layout_array_as_table($payment_log->content())?>
69 69
                 </td>
70 70
             </tr>
71 71
             </tbody>
Please login to merge, or discard this patch.
Indentation   +14 added lines, -14 removed lines patch added patch discarded remove patch
@@ -36,17 +36,17 @@  discard block
 block discarded – undo
36 36
                 </th>
37 37
                 <td>
38 38
                     <?php
39
-                    if ($payment_log->object() instanceof EE_Transaction) {
40
-                        esc_html_e('Unknown', 'event_espresso');
41
-                    } else {
42
-                        echo $payment_method
43
-                        ? $payment_method->admin_name()
44
-                        : esc_html__(
45
-                            "No Longer Exists",
46
-                            'event_espresso'
47
-                        );
48
-                    }
49
-                    ?>
39
+					if ($payment_log->object() instanceof EE_Transaction) {
40
+						esc_html_e('Unknown', 'event_espresso');
41
+					} else {
42
+						echo $payment_method
43
+						? $payment_method->admin_name()
44
+						: esc_html__(
45
+							"No Longer Exists",
46
+							'event_espresso'
47
+						);
48
+					}
49
+					?>
50 50
 
51 51
                 </td>
52 52
             </tr>
@@ -69,9 +69,9 @@  discard block
 block discarded – undo
69 69
                 </th>
70 70
                 <td>
71 71
                     <?php echo $payment_log->e(
72
-                        'LOG_message',
73
-                        'as_table'
74
-                    );// EEH_Template::layout_array_as_table($payment_log->content())?>
72
+						'LOG_message',
73
+						'as_table'
74
+					);// EEH_Template::layout_array_as_table($payment_log->content())?>
75 75
                 </td>
76 76
             </tr>
77 77
             </tbody>
Please login to merge, or discard this patch.
admin_pages/maintenance/Maintenance_Admin_Page.core.php 2 patches
Spacing   +19 added lines, -19 removed lines patch added patch discarded remove patch
@@ -221,7 +221,7 @@  discard block
 block discarded – undo
221 221
                     $current_script = null;
222 222
                     foreach ($scripts_needing_to_run as $script) {
223 223
                         if ($script instanceof EE_Data_Migration_Script_Base) {
224
-                            if (! $current_script) {
224
+                            if ( ! $current_script) {
225 225
                                 $current_script = $script;
226 226
                                 $current_script->migration_page_hooks();
227 227
                             }
@@ -248,7 +248,7 @@  discard block
 block discarded – undo
248 248
                 && $most_recent_migration->is_broken()
249 249
             )
250 250
         ) {
251
-            $this->_template_path = EE_MAINTENANCE_TEMPLATE_PATH . 'ee_migration_was_borked_page.template.php';
251
+            $this->_template_path = EE_MAINTENANCE_TEMPLATE_PATH.'ee_migration_was_borked_page.template.php';
252 252
             $this->_template_args['support_url'] = 'http://eventespresso.com/support/forums/';
253 253
             $this->_template_args['next_url'] = EEH_URL::add_query_args_and_nonce(
254 254
                 array(
@@ -258,7 +258,7 @@  discard block
 block discarded – undo
258 258
                 EE_MAINTENANCE_ADMIN_URL
259 259
             );
260 260
         } elseif ($addons_should_be_upgraded_first) {
261
-            $this->_template_path = EE_MAINTENANCE_TEMPLATE_PATH . 'ee_upgrade_addons_before_migrating.template.php';
261
+            $this->_template_path = EE_MAINTENANCE_TEMPLATE_PATH.'ee_upgrade_addons_before_migrating.template.php';
262 262
         } else {
263 263
             if ($most_recent_migration
264 264
                 && $most_recent_migration instanceof EE_Data_Migration_Script_Base
@@ -283,7 +283,7 @@  discard block
 block discarded – undo
283 283
                     array(
284 284
                         'current_db_state' => sprintf(
285 285
                             __("EE%s (%s)", "event_espresso"),
286
-                            isset($current_db_state[ $plugin_slug ]) ? $current_db_state[ $plugin_slug ] : 3,
286
+                            isset($current_db_state[$plugin_slug]) ? $current_db_state[$plugin_slug] : 3,
287 287
                             $plugin_slug
288 288
                         ),
289 289
                         'next_db_state'    => isset($current_script) ? sprintf(
@@ -297,7 +297,7 @@  discard block
 block discarded – undo
297 297
                 $this->_template_args['current_db_state'] = null;
298 298
                 $this->_template_args['next_db_state'] = null;
299 299
             }
300
-            $this->_template_path = EE_MAINTENANCE_TEMPLATE_PATH . 'ee_migration_page.template.php';
300
+            $this->_template_path = EE_MAINTENANCE_TEMPLATE_PATH.'ee_migration_page.template.php';
301 301
             $this->_template_args = array_merge(
302 302
                 $this->_template_args,
303 303
                 array(
@@ -333,11 +333,11 @@  discard block
 block discarded – undo
333 333
             );
334 334
             // make sure we have the form fields helper available. It usually is, but sometimes it isn't
335 335
         }
336
-        $this->_template_args['most_recent_migration'] = $most_recent_migration;// the actual most recently ran migration
336
+        $this->_template_args['most_recent_migration'] = $most_recent_migration; // the actual most recently ran migration
337 337
         // now render the migration options part, and put it in a variable
338 338
         $migration_options_template_file = apply_filters(
339 339
             'FHEE__ee_migration_page__migration_options_template',
340
-            EE_MAINTENANCE_TEMPLATE_PATH . 'migration_options_from_ee4.template.php'
340
+            EE_MAINTENANCE_TEMPLATE_PATH.'migration_options_from_ee4.template.php'
341 341
         );
342 342
         $migration_options_html = EEH_Template::display_template(
343 343
             $migration_options_template_file,
@@ -382,7 +382,7 @@  discard block
 block discarded – undo
382 382
     public function _change_maintenance_level()
383 383
     {
384 384
         $new_level = absint($this->_req_data['maintenance_mode_level']);
385
-        if (! EE_Data_Migration_Manager::instance()->check_for_applicable_data_migration_scripts()) {
385
+        if ( ! EE_Data_Migration_Manager::instance()->check_for_applicable_data_migration_scripts()) {
386 386
             EE_Maintenance_Mode::instance()->set_maintenance_level($new_level);
387 387
             $success = true;
388 388
         } else {
@@ -401,7 +401,7 @@  discard block
 block discarded – undo
401 401
      */
402 402
     public function _data_reset_and_delete()
403 403
     {
404
-        $this->_template_path = EE_MAINTENANCE_TEMPLATE_PATH . 'ee_data_reset_and_delete.template.php';
404
+        $this->_template_path = EE_MAINTENANCE_TEMPLATE_PATH.'ee_data_reset_and_delete.template.php';
405 405
         $this->_template_args['reset_reservations_button'] = $this->get_action_link_or_button(
406 406
             'reset_reservations',
407 407
             'reset_reservations',
@@ -486,7 +486,7 @@  discard block
 block discarded – undo
486 486
      */
487 487
     public function _system_status()
488 488
     {
489
-        $this->_template_path = EE_MAINTENANCE_TEMPLATE_PATH . 'ee_system_stati_page.template.php';
489
+        $this->_template_path = EE_MAINTENANCE_TEMPLATE_PATH.'ee_system_stati_page.template.php';
490 490
         $this->_template_args['system_stati'] = EEM_System_Status::instance()->get_system_stati();
491 491
         $this->_template_args['download_system_status_url'] = EE_Admin_Page::add_query_args_and_nonce(
492 492
             array(
@@ -509,9 +509,9 @@  discard block
 block discarded – undo
509 509
     {
510 510
         $status_info = EEM_System_Status::instance()->get_system_stati();
511 511
         header('Content-Disposition: attachment');
512
-        header("Content-Disposition: attachment; filename=system_status_" . sanitize_key(site_url()) . ".html");
512
+        header("Content-Disposition: attachment; filename=system_status_".sanitize_key(site_url()).".html");
513 513
         echo "<style>table{border:1px solid darkgrey;}td{vertical-align:top}</style>";
514
-        echo "<h1>System Information for " . site_url() . "</h1>";
514
+        echo "<h1>System Information for ".site_url()."</h1>";
515 515
         echo EEH_Template::layout_array_as_table($status_info);
516 516
         die;
517 517
     }
@@ -526,7 +526,7 @@  discard block
 block discarded – undo
526 526
             $success = wp_mail(
527 527
                 EE_SUPPORT_EMAIL,
528 528
                 'Migration Crash Report',
529
-                $body . "/r/n<br>" . print_r(EEM_System_Status::instance()->get_system_stati(), true),
529
+                $body."/r/n<br>".print_r(EEM_System_Status::instance()->get_system_stati(), true),
530 530
                 array(
531 531
                     "from:$from_name<$from>",
532 532
                 )
@@ -569,7 +569,7 @@  discard block
 block discarded – undo
569 569
             array('action' => 'reattempt_migration'),
570 570
             EE_MAINTENANCE_ADMIN_URL
571 571
         );
572
-        $this->_template_path = EE_MAINTENANCE_TEMPLATE_PATH . 'ee_confirm_migration_crash_report_sent.template.php';
572
+        $this->_template_path = EE_MAINTENANCE_TEMPLATE_PATH.'ee_confirm_migration_crash_report_sent.template.php';
573 573
         $this->_template_args['admin_page_content'] = EEH_Template::display_template(
574 574
             $this->_template_path,
575 575
             $this->_template_args,
@@ -668,14 +668,14 @@  discard block
 block discarded – undo
668 668
         wp_enqueue_script('ee_admin_js');
669 669
         wp_enqueue_script(
670 670
             'ee-maintenance',
671
-            EE_MAINTENANCE_ASSETS_URL . 'ee-maintenance.js',
671
+            EE_MAINTENANCE_ASSETS_URL.'ee-maintenance.js',
672 672
             array('jquery'),
673 673
             EVENT_ESPRESSO_VERSION,
674 674
             true
675 675
         );
676 676
         wp_register_style(
677 677
             'espresso_maintenance',
678
-            EE_MAINTENANCE_ASSETS_URL . 'ee-maintenance.css',
678
+            EE_MAINTENANCE_ASSETS_URL.'ee-maintenance.css',
679 679
             array(),
680 680
             EVENT_ESPRESSO_VERSION
681 681
         );
@@ -742,7 +742,7 @@  discard block
 block discarded – undo
742 742
 
743 743
     protected function _get_datetime_offset_fix_form()
744 744
     {
745
-        if (! $this->datetime_fix_offset_form instanceof EE_Form_Section_Proper) {
745
+        if ( ! $this->datetime_fix_offset_form instanceof EE_Form_Section_Proper) {
746 746
             $this->datetime_fix_offset_form = new EE_Form_Section_Proper(
747 747
                 array(
748 748
                     'name'            => 'datetime_offset_fix_option',
@@ -848,12 +848,12 @@  discard block
 block discarded – undo
848 848
                 $utc_timezone = new DateTimeZone('UTC');
849 849
                 $date_range_start_date = DateTime::createFromFormat(
850 850
                     'm/d/Y H:i:s',
851
-                    $form->get_input_value('date_range_start_date') . ' 00:00:00',
851
+                    $form->get_input_value('date_range_start_date').' 00:00:00',
852 852
                     $utc_timezone
853 853
                 );
854 854
                 $date_range_end_date = DateTime::createFromFormat(
855 855
                     'm/d/Y H:i:s',
856
-                    $form->get_input_value('date_range_end_date') . ' 23:59:59',
856
+                    $form->get_input_value('date_range_end_date').' 23:59:59',
857 857
                     $utc_timezone
858 858
                 );
859 859
                 if ($date_range_start_date instanceof DateTime) {
Please login to merge, or discard this patch.
Indentation   +876 added lines, -876 removed lines patch added patch discarded remove patch
@@ -17,880 +17,880 @@
 block discarded – undo
17 17
 {
18 18
 
19 19
 
20
-    /**
21
-     * @var EE_Form_Section_Proper
22
-     */
23
-    protected $datetime_fix_offset_form;
24
-
25
-
26
-    protected function _init_page_props()
27
-    {
28
-        $this->page_slug = EE_MAINTENANCE_PG_SLUG;
29
-        $this->page_label = EE_MAINTENANCE_LABEL;
30
-        $this->_admin_base_url = EE_MAINTENANCE_ADMIN_URL;
31
-        $this->_admin_base_path = EE_MAINTENANCE_ADMIN;
32
-    }
33
-
34
-
35
-    protected function _ajax_hooks()
36
-    {
37
-        add_action('wp_ajax_migration_step', array($this, 'migration_step'));
38
-        add_action('wp_ajax_add_error_to_migrations_ran', array($this, 'add_error_to_migrations_ran'));
39
-    }
40
-
41
-
42
-    protected function _define_page_props()
43
-    {
44
-        $this->_admin_page_title = EE_MAINTENANCE_LABEL;
45
-        $this->_labels = array(
46
-            'buttons' => array(
47
-                'reset_reservations' => esc_html__('Reset Ticket and Datetime Reserved Counts', 'event_espresso'),
48
-                'reset_capabilities' => esc_html__('Reset Event Espresso Capabilities', 'event_espresso'),
49
-            ),
50
-        );
51
-    }
52
-
53
-
54
-    protected function _set_page_routes()
55
-    {
56
-        $this->_page_routes = array(
57
-            'default'                             => array(
58
-                'func'       => '_maintenance',
59
-                'capability' => 'manage_options',
60
-            ),
61
-            'change_maintenance_level'            => array(
62
-                'func'       => '_change_maintenance_level',
63
-                'capability' => 'manage_options',
64
-                'noheader'   => true,
65
-            ),
66
-            'system_status'                       => array(
67
-                'func'       => '_system_status',
68
-                'capability' => 'manage_options',
69
-            ),
70
-            'download_system_status'              => array(
71
-                'func'       => '_download_system_status',
72
-                'capability' => 'manage_options',
73
-                'noheader'   => true,
74
-            ),
75
-            'send_migration_crash_report'         => array(
76
-                'func'       => '_send_migration_crash_report',
77
-                'capability' => 'manage_options',
78
-                'noheader'   => true,
79
-            ),
80
-            'confirm_migration_crash_report_sent' => array(
81
-                'func'       => '_confirm_migration_crash_report_sent',
82
-                'capability' => 'manage_options',
83
-            ),
84
-            'data_reset'                          => array(
85
-                'func'       => '_data_reset_and_delete',
86
-                'capability' => 'manage_options',
87
-            ),
88
-            'reset_db'                            => array(
89
-                'func'       => '_reset_db',
90
-                'capability' => 'manage_options',
91
-                'noheader'   => true,
92
-                'args'       => array('nuke_old_ee4_data' => true),
93
-            ),
94
-            'start_with_fresh_ee4_db'             => array(
95
-                'func'       => '_reset_db',
96
-                'capability' => 'manage_options',
97
-                'noheader'   => true,
98
-                'args'       => array('nuke_old_ee4_data' => false),
99
-            ),
100
-            'delete_db'                           => array(
101
-                'func'       => '_delete_db',
102
-                'capability' => 'manage_options',
103
-                'noheader'   => true,
104
-            ),
105
-            'rerun_migration_from_ee3'            => array(
106
-                'func'       => '_rerun_migration_from_ee3',
107
-                'capability' => 'manage_options',
108
-                'noheader'   => true,
109
-            ),
110
-            'reset_reservations'                  => array(
111
-                'func'       => '_reset_reservations',
112
-                'capability' => 'manage_options',
113
-                'noheader'   => true,
114
-            ),
115
-            'reset_capabilities'                  => array(
116
-                'func'       => '_reset_capabilities',
117
-                'capability' => 'manage_options',
118
-                'noheader'   => true,
119
-            ),
120
-            'reattempt_migration'                 => array(
121
-                'func'       => '_reattempt_migration',
122
-                'capability' => 'manage_options',
123
-                'noheader'   => true,
124
-            ),
125
-            'datetime_tools'                      => array(
126
-                'func'       => '_datetime_tools',
127
-                'capability' => 'manage_options',
128
-            ),
129
-            'run_datetime_offset_fix'             => array(
130
-                'func'               => '_apply_datetime_offset',
131
-                'noheader'           => true,
132
-                'headers_sent_route' => 'datetime_tools',
133
-                'capability'         => 'manage_options',
134
-            ),
135
-        );
136
-    }
137
-
138
-
139
-    protected function _set_page_config()
140
-    {
141
-        $this->_page_config = array(
142
-            'default'        => array(
143
-                'nav'           => array(
144
-                    'label' => esc_html__('Maintenance', 'event_espresso'),
145
-                    'order' => 10,
146
-                ),
147
-                'require_nonce' => false,
148
-            ),
149
-            'data_reset'     => array(
150
-                'nav'           => array(
151
-                    'label' => esc_html__('Reset/Delete Data', 'event_espresso'),
152
-                    'order' => 20,
153
-                ),
154
-                'require_nonce' => false,
155
-            ),
156
-            'datetime_tools' => array(
157
-                'nav'           => array(
158
-                    'label' => esc_html__('Datetime Utilities', 'event_espresso'),
159
-                    'order' => 25,
160
-                ),
161
-                'require_nonce' => false,
162
-            ),
163
-            'system_status'  => array(
164
-                'nav'           => array(
165
-                    'label' => esc_html__("System Information", "event_espresso"),
166
-                    'order' => 30,
167
-                ),
168
-                'require_nonce' => false,
169
-            ),
170
-        );
171
-    }
172
-
173
-
174
-    /**
175
-     * default maintenance page. If we're in maintenance mode level 2, then we need to show
176
-     * the migration scripts and all that UI.
177
-     */
178
-    public function _maintenance()
179
-    {
180
-        // it all depends if we're in maintenance model level 1 (frontend-only) or
181
-        // level 2 (everything except maintenance page)
182
-        try {
183
-            // get the current maintenance level and check if
184
-            // we are removed
185
-            $mm = EE_Maintenance_Mode::instance()->level();
186
-            $placed_in_mm = EE_Maintenance_Mode::instance()->set_maintenance_mode_if_db_old();
187
-            if ($mm == EE_Maintenance_Mode::level_2_complete_maintenance && ! $placed_in_mm) {
188
-                // we just took the site out of maintenance mode, so notify the user.
189
-                // unfortunately this message appears to be echoed on the NEXT page load...
190
-                // oh well, we should really be checking for this on addon deactivation anyways
191
-                EE_Error::add_attention(
192
-                    __(
193
-                        'Site taken out of maintenance mode because no data migration scripts are required',
194
-                        'event_espresso'
195
-                    )
196
-                );
197
-                $this->_process_notices(array('page' => 'espresso_maintenance_settings'), false);
198
-            }
199
-            // in case an exception is thrown while trying to handle migrations
200
-            switch (EE_Maintenance_Mode::instance()->level()) {
201
-                case EE_Maintenance_Mode::level_0_not_in_maintenance:
202
-                case EE_Maintenance_Mode::level_1_frontend_only_maintenance:
203
-                    $show_maintenance_switch = true;
204
-                    $show_backup_db_text = false;
205
-                    $show_migration_progress = false;
206
-                    $script_names = array();
207
-                    $addons_should_be_upgraded_first = false;
208
-                    break;
209
-                case EE_Maintenance_Mode::level_2_complete_maintenance:
210
-                    $show_maintenance_switch = false;
211
-                    $show_migration_progress = true;
212
-                    if (isset($this->_req_data['continue_migration'])) {
213
-                        $show_backup_db_text = false;
214
-                    } else {
215
-                        $show_backup_db_text = true;
216
-                    }
217
-                    $scripts_needing_to_run = EE_Data_Migration_Manager::instance()
218
-                                                                       ->check_for_applicable_data_migration_scripts();
219
-                    $addons_should_be_upgraded_first = EE_Data_Migration_Manager::instance()->addons_need_updating();
220
-                    $script_names = array();
221
-                    $current_script = null;
222
-                    foreach ($scripts_needing_to_run as $script) {
223
-                        if ($script instanceof EE_Data_Migration_Script_Base) {
224
-                            if (! $current_script) {
225
-                                $current_script = $script;
226
-                                $current_script->migration_page_hooks();
227
-                            }
228
-                            $script_names[] = $script->pretty_name();
229
-                        }
230
-                    }
231
-                    break;
232
-            }
233
-            $most_recent_migration = EE_Data_Migration_Manager::instance()->get_last_ran_script(true);
234
-            $exception_thrown = false;
235
-        } catch (EE_Error $e) {
236
-            EE_Data_Migration_Manager::instance()->add_error_to_migrations_ran($e->getMessage());
237
-            // now, just so we can display the page correctly, make a error migration script stage object
238
-            // and also put the error on it. It only persists for the duration of this request
239
-            $most_recent_migration = new EE_DMS_Unknown_1_0_0();
240
-            $most_recent_migration->add_error($e->getMessage());
241
-            $exception_thrown = true;
242
-        }
243
-        $current_db_state = EE_Data_Migration_Manager::instance()->ensure_current_database_state_is_set();
244
-        $current_db_state = str_replace('.decaf', '', $current_db_state);
245
-        if ($exception_thrown
246
-            || ($most_recent_migration
247
-                && $most_recent_migration instanceof EE_Data_Migration_Script_Base
248
-                && $most_recent_migration->is_broken()
249
-            )
250
-        ) {
251
-            $this->_template_path = EE_MAINTENANCE_TEMPLATE_PATH . 'ee_migration_was_borked_page.template.php';
252
-            $this->_template_args['support_url'] = 'http://eventespresso.com/support/forums/';
253
-            $this->_template_args['next_url'] = EEH_URL::add_query_args_and_nonce(
254
-                array(
255
-                    'action'  => 'confirm_migration_crash_report_sent',
256
-                    'success' => '0',
257
-                ),
258
-                EE_MAINTENANCE_ADMIN_URL
259
-            );
260
-        } elseif ($addons_should_be_upgraded_first) {
261
-            $this->_template_path = EE_MAINTENANCE_TEMPLATE_PATH . 'ee_upgrade_addons_before_migrating.template.php';
262
-        } else {
263
-            if ($most_recent_migration
264
-                && $most_recent_migration instanceof EE_Data_Migration_Script_Base
265
-                && $most_recent_migration->can_continue()
266
-            ) {
267
-                $show_backup_db_text = false;
268
-                $show_continue_current_migration_script = true;
269
-                $show_most_recent_migration = true;
270
-            } elseif (isset($this->_req_data['continue_migration'])) {
271
-                $show_most_recent_migration = true;
272
-                $show_continue_current_migration_script = false;
273
-            } else {
274
-                $show_most_recent_migration = false;
275
-                $show_continue_current_migration_script = false;
276
-            }
277
-            if (isset($current_script)) {
278
-                $migrates_to = $current_script->migrates_to_version();
279
-                $plugin_slug = $migrates_to['slug'];
280
-                $new_version = $migrates_to['version'];
281
-                $this->_template_args = array_merge(
282
-                    $this->_template_args,
283
-                    array(
284
-                        'current_db_state' => sprintf(
285
-                            __("EE%s (%s)", "event_espresso"),
286
-                            isset($current_db_state[ $plugin_slug ]) ? $current_db_state[ $plugin_slug ] : 3,
287
-                            $plugin_slug
288
-                        ),
289
-                        'next_db_state'    => isset($current_script) ? sprintf(
290
-                            __("EE%s (%s)", 'event_espresso'),
291
-                            $new_version,
292
-                            $plugin_slug
293
-                        ) : null,
294
-                    )
295
-                );
296
-            } else {
297
-                $this->_template_args['current_db_state'] = null;
298
-                $this->_template_args['next_db_state'] = null;
299
-            }
300
-            $this->_template_path = EE_MAINTENANCE_TEMPLATE_PATH . 'ee_migration_page.template.php';
301
-            $this->_template_args = array_merge(
302
-                $this->_template_args,
303
-                array(
304
-                    'show_most_recent_migration'             => $show_most_recent_migration,
305
-                    // flag for showing the most recent migration's status and/or errors
306
-                    'show_migration_progress'                => $show_migration_progress,
307
-                    // flag for showing the option to run migrations and see their progress
308
-                    'show_backup_db_text'                    => $show_backup_db_text,
309
-                    // flag for showing text telling the user to backup their DB
310
-                    'show_maintenance_switch'                => $show_maintenance_switch,
311
-                    // flag for showing the option to change maintenance mode between levels 0 and 1
312
-                    'script_names'                           => $script_names,
313
-                    // array of names of scripts that have run
314
-                    'show_continue_current_migration_script' => $show_continue_current_migration_script,
315
-                    // flag to change wording to indicating that we're only CONTINUING a migration script (somehow it got interrupted0
316
-                    'reset_db_page_link'                     => EE_Admin_Page::add_query_args_and_nonce(
317
-                        array('action' => 'reset_db'),
318
-                        EE_MAINTENANCE_ADMIN_URL
319
-                    ),
320
-                    'data_reset_page'                        => EE_Admin_Page::add_query_args_and_nonce(
321
-                        array('action' => 'data_reset'),
322
-                        EE_MAINTENANCE_ADMIN_URL
323
-                    ),
324
-                    'update_migration_script_page_link'      => EE_Admin_Page::add_query_args_and_nonce(
325
-                        array('action' => 'change_maintenance_level'),
326
-                        EE_MAINTENANCE_ADMIN_URL
327
-                    ),
328
-                    'ultimate_db_state'                      => sprintf(
329
-                        __("EE%s", 'event_espresso'),
330
-                        espresso_version()
331
-                    ),
332
-                )
333
-            );
334
-            // make sure we have the form fields helper available. It usually is, but sometimes it isn't
335
-        }
336
-        $this->_template_args['most_recent_migration'] = $most_recent_migration;// the actual most recently ran migration
337
-        // now render the migration options part, and put it in a variable
338
-        $migration_options_template_file = apply_filters(
339
-            'FHEE__ee_migration_page__migration_options_template',
340
-            EE_MAINTENANCE_TEMPLATE_PATH . 'migration_options_from_ee4.template.php'
341
-        );
342
-        $migration_options_html = EEH_Template::display_template(
343
-            $migration_options_template_file,
344
-            $this->_template_args,
345
-            true
346
-        );
347
-        $this->_template_args['migration_options_html'] = $migration_options_html;
348
-        $this->_template_args['admin_page_content'] = EEH_Template::display_template(
349
-            $this->_template_path,
350
-            $this->_template_args,
351
-            true
352
-        );
353
-        $this->display_admin_page_with_sidebar();
354
-    }
355
-
356
-
357
-    /**
358
-     * returns JSON and executes another step of the currently-executing data migration (called via ajax)
359
-     */
360
-    public function migration_step()
361
-    {
362
-        $this->_template_args['data'] = EE_Data_Migration_Manager::instance()->response_to_migration_ajax_request();
363
-        $this->_return_json();
364
-    }
365
-
366
-
367
-    /**
368
-     * Can be used by js when it notices a response with HTML in it in order
369
-     * to log the malformed response
370
-     */
371
-    public function add_error_to_migrations_ran()
372
-    {
373
-        EE_Data_Migration_Manager::instance()->add_error_to_migrations_ran($this->_req_data['message']);
374
-        $this->_template_args['data'] = array('ok' => true);
375
-        $this->_return_json();
376
-    }
377
-
378
-
379
-    /**
380
-     * changes the maintenance level, provided there are still no migration scripts that should run
381
-     */
382
-    public function _change_maintenance_level()
383
-    {
384
-        $new_level = absint($this->_req_data['maintenance_mode_level']);
385
-        if (! EE_Data_Migration_Manager::instance()->check_for_applicable_data_migration_scripts()) {
386
-            EE_Maintenance_Mode::instance()->set_maintenance_level($new_level);
387
-            $success = true;
388
-        } else {
389
-            EE_Maintenance_Mode::instance()->set_maintenance_mode_if_db_old();
390
-            $success = false;
391
-        }
392
-        $this->_redirect_after_action($success, 'Maintenance Mode', esc_html__("Updated", "event_espresso"));
393
-    }
394
-
395
-
396
-    /**
397
-     * a tab with options for resetting and/or deleting EE data
398
-     *
399
-     * @throws \EE_Error
400
-     * @throws \DomainException
401
-     */
402
-    public function _data_reset_and_delete()
403
-    {
404
-        $this->_template_path = EE_MAINTENANCE_TEMPLATE_PATH . 'ee_data_reset_and_delete.template.php';
405
-        $this->_template_args['reset_reservations_button'] = $this->get_action_link_or_button(
406
-            'reset_reservations',
407
-            'reset_reservations',
408
-            array(),
409
-            'button button-primary ee-confirm',
410
-            '',
411
-            false
412
-        );
413
-        $this->_template_args['reset_capabilities_button'] = $this->get_action_link_or_button(
414
-            'reset_capabilities',
415
-            'reset_capabilities',
416
-            array(),
417
-            'button button-primary ee-confirm',
418
-            '',
419
-            false
420
-        );
421
-        $this->_template_args['delete_db_url'] = EE_Admin_Page::add_query_args_and_nonce(
422
-            array('action' => 'delete_db'),
423
-            EE_MAINTENANCE_ADMIN_URL
424
-        );
425
-        $this->_template_args['reset_db_url'] = EE_Admin_Page::add_query_args_and_nonce(
426
-            array('action' => 'reset_db'),
427
-            EE_MAINTENANCE_ADMIN_URL
428
-        );
429
-        $this->_template_args['admin_page_content'] = EEH_Template::display_template(
430
-            $this->_template_path,
431
-            $this->_template_args,
432
-            true
433
-        );
434
-        $this->display_admin_page_with_sidebar();
435
-    }
436
-
437
-
438
-    protected function _reset_reservations()
439
-    {
440
-        if (\EED_Ticket_Sales_Monitor::reset_reservation_counts()) {
441
-            EE_Error::add_success(
442
-                __(
443
-                    'Ticket and datetime reserved counts have been successfully reset.',
444
-                    'event_espresso'
445
-                )
446
-            );
447
-        } else {
448
-            EE_Error::add_success(
449
-                __(
450
-                    'Ticket and datetime reserved counts were correct and did not need resetting.',
451
-                    'event_espresso'
452
-                )
453
-            );
454
-        }
455
-        $this->_redirect_after_action(true, '', '', array('action' => 'data_reset'), true);
456
-    }
457
-
458
-
459
-    protected function _reset_capabilities()
460
-    {
461
-        EE_Registry::instance()->CAP->init_caps(true);
462
-        EE_Error::add_success(
463
-            __(
464
-                'Default Event Espresso capabilities have been restored for all current roles.',
465
-                'event_espresso'
466
-            )
467
-        );
468
-        $this->_redirect_after_action(false, '', '', array('action' => 'data_reset'), true);
469
-    }
470
-
471
-
472
-    /**
473
-     * resets the DMSs so we can attempt to continue migrating after a fatal error
474
-     * (only a good idea when someone has somehow tried ot fix whatever caused
475
-     * the fatal error in teh first place)
476
-     */
477
-    protected function _reattempt_migration()
478
-    {
479
-        EE_Data_Migration_Manager::instance()->reattempt();
480
-        $this->_redirect_after_action(false, '', '', array('action' => 'default'), true);
481
-    }
482
-
483
-
484
-    /**
485
-     * shows the big ol' System Information page
486
-     */
487
-    public function _system_status()
488
-    {
489
-        $this->_template_path = EE_MAINTENANCE_TEMPLATE_PATH . 'ee_system_stati_page.template.php';
490
-        $this->_template_args['system_stati'] = EEM_System_Status::instance()->get_system_stati();
491
-        $this->_template_args['download_system_status_url'] = EE_Admin_Page::add_query_args_and_nonce(
492
-            array(
493
-                'action' => 'download_system_status',
494
-            ),
495
-            EE_MAINTENANCE_ADMIN_URL
496
-        );
497
-        $this->_template_args['admin_page_content'] = EEH_Template::display_template(
498
-            $this->_template_path,
499
-            $this->_template_args,
500
-            true
501
-        );
502
-        $this->display_admin_page_with_sidebar();
503
-    }
504
-
505
-    /**
506
-     * Downloads an HTML file of the system status that can be easily stored or emailed
507
-     */
508
-    public function _download_system_status()
509
-    {
510
-        $status_info = EEM_System_Status::instance()->get_system_stati();
511
-        header('Content-Disposition: attachment');
512
-        header("Content-Disposition: attachment; filename=system_status_" . sanitize_key(site_url()) . ".html");
513
-        echo "<style>table{border:1px solid darkgrey;}td{vertical-align:top}</style>";
514
-        echo "<h1>System Information for " . site_url() . "</h1>";
515
-        echo EEH_Template::layout_array_as_table($status_info);
516
-        die;
517
-    }
518
-
519
-
520
-    public function _send_migration_crash_report()
521
-    {
522
-        $from = $this->_req_data['from'];
523
-        $from_name = $this->_req_data['from_name'];
524
-        $body = $this->_req_data['body'];
525
-        try {
526
-            $success = wp_mail(
527
-                EE_SUPPORT_EMAIL,
528
-                'Migration Crash Report',
529
-                $body . "/r/n<br>" . print_r(EEM_System_Status::instance()->get_system_stati(), true),
530
-                array(
531
-                    "from:$from_name<$from>",
532
-                )
533
-            );
534
-        } catch (Exception $e) {
535
-            $success = false;
536
-        }
537
-        $this->_redirect_after_action(
538
-            $success,
539
-            esc_html__("Migration Crash Report", "event_espresso"),
540
-            esc_html__("sent", "event_espresso"),
541
-            array('success' => $success, 'action' => 'confirm_migration_crash_report_sent')
542
-        );
543
-    }
544
-
545
-
546
-    public function _confirm_migration_crash_report_sent()
547
-    {
548
-        try {
549
-            $most_recent_migration = EE_Data_Migration_Manager::instance()->get_last_ran_script(true);
550
-        } catch (EE_Error $e) {
551
-            EE_Data_Migration_Manager::instance()->add_error_to_migrations_ran($e->getMessage());
552
-            // now, just so we can display the page correctly, make a error migration script stage object
553
-            // and also put the error on it. It only persists for the duration of this request
554
-            $most_recent_migration = new EE_DMS_Unknown_1_0_0();
555
-            $most_recent_migration->add_error($e->getMessage());
556
-        }
557
-        $success = $this->_req_data['success'] == '1' ? true : false;
558
-        $this->_template_args['success'] = $success;
559
-        $this->_template_args['most_recent_migration'] = $most_recent_migration;
560
-        $this->_template_args['reset_db_action_url'] = EE_Admin_Page::add_query_args_and_nonce(
561
-            array('action' => 'reset_db'),
562
-            EE_MAINTENANCE_ADMIN_URL
563
-        );
564
-        $this->_template_args['reset_db_page_url'] = EE_Admin_Page::add_query_args_and_nonce(
565
-            array('action' => 'data_reset'),
566
-            EE_MAINTENANCE_ADMIN_URL
567
-        );
568
-        $this->_template_args['reattempt_action_url'] = EE_Admin_Page::add_query_args_and_nonce(
569
-            array('action' => 'reattempt_migration'),
570
-            EE_MAINTENANCE_ADMIN_URL
571
-        );
572
-        $this->_template_path = EE_MAINTENANCE_TEMPLATE_PATH . 'ee_confirm_migration_crash_report_sent.template.php';
573
-        $this->_template_args['admin_page_content'] = EEH_Template::display_template(
574
-            $this->_template_path,
575
-            $this->_template_args,
576
-            true
577
-        );
578
-        $this->display_admin_page_with_sidebar();
579
-    }
580
-
581
-
582
-    /**
583
-     * Resets the entire EE4 database.
584
-     * Currently basically only sets up ee4 database for a fresh install- doesn't
585
-     * actually clean out the old wp options, or cpts (although does erase old ee table data)
586
-     *
587
-     * @param boolean $nuke_old_ee4_data controls whether or not we
588
-     *                                   destroy the old ee4 data, or just try initializing ee4 default data
589
-     */
590
-    public function _reset_db($nuke_old_ee4_data = true)
591
-    {
592
-        EE_Maintenance_Mode::instance()->set_maintenance_level(EE_Maintenance_Mode::level_0_not_in_maintenance);
593
-        if ($nuke_old_ee4_data) {
594
-            EEH_Activation::delete_all_espresso_cpt_data();
595
-            EEH_Activation::delete_all_espresso_tables_and_data(false);
596
-            EEH_Activation::remove_cron_tasks();
597
-        }
598
-        // make sure when we reset the registry's config that it
599
-        // switches to using the new singleton
600
-        EE_Registry::instance()->CFG = EE_Registry::instance()->CFG->reset(true);
601
-        EE_System::instance()->initialize_db_if_no_migrations_required(true);
602
-        EE_System::instance()->redirect_to_about_ee();
603
-    }
604
-
605
-
606
-    /**
607
-     * Deletes ALL EE tables, Records, and Options from the database.
608
-     */
609
-    public function _delete_db()
610
-    {
611
-        EE_Maintenance_Mode::instance()->set_maintenance_level(EE_Maintenance_Mode::level_0_not_in_maintenance);
612
-        EEH_Activation::delete_all_espresso_cpt_data();
613
-        EEH_Activation::delete_all_espresso_tables_and_data();
614
-        EEH_Activation::remove_cron_tasks();
615
-        EEH_Activation::deactivate_event_espresso();
616
-        wp_safe_redirect(admin_url('plugins.php'));
617
-        exit;
618
-    }
619
-
620
-
621
-    /**
622
-     * sets up EE4 to rerun the migrations from ee3 to ee4
623
-     */
624
-    public function _rerun_migration_from_ee3()
625
-    {
626
-        EE_Maintenance_Mode::instance()->set_maintenance_level(EE_Maintenance_Mode::level_0_not_in_maintenance);
627
-        EEH_Activation::delete_all_espresso_cpt_data();
628
-        EEH_Activation::delete_all_espresso_tables_and_data(false);
629
-        // set the db state to something that will require migrations
630
-        update_option(EE_Data_Migration_Manager::current_database_state, '3.1.36.0');
631
-        EE_Maintenance_Mode::instance()->set_maintenance_level(EE_Maintenance_Mode::level_2_complete_maintenance);
632
-        $this->_redirect_after_action(
633
-            true,
634
-            esc_html__("Database", 'event_espresso'),
635
-            esc_html__("reset", 'event_espresso')
636
-        );
637
-    }
638
-
639
-
640
-    // none of the below group are currently used for Gateway Settings
641
-    protected function _add_screen_options()
642
-    {
643
-    }
644
-
645
-
646
-    protected function _add_feature_pointers()
647
-    {
648
-    }
649
-
650
-
651
-    public function admin_init()
652
-    {
653
-    }
654
-
655
-
656
-    public function admin_notices()
657
-    {
658
-    }
659
-
660
-
661
-    public function admin_footer_scripts()
662
-    {
663
-    }
664
-
665
-
666
-    public function load_scripts_styles()
667
-    {
668
-        wp_enqueue_script('ee_admin_js');
669
-        wp_enqueue_script(
670
-            'ee-maintenance',
671
-            EE_MAINTENANCE_ASSETS_URL . 'ee-maintenance.js',
672
-            array('jquery'),
673
-            EVENT_ESPRESSO_VERSION,
674
-            true
675
-        );
676
-        wp_register_style(
677
-            'espresso_maintenance',
678
-            EE_MAINTENANCE_ASSETS_URL . 'ee-maintenance.css',
679
-            array(),
680
-            EVENT_ESPRESSO_VERSION
681
-        );
682
-        wp_enqueue_style('espresso_maintenance');
683
-        // localize script stuff
684
-        wp_localize_script(
685
-            'ee-maintenance',
686
-            'ee_maintenance',
687
-            array(
688
-                'migrating'                        => esc_html__("Updating Database...", "event_espresso"),
689
-                'next'                             => esc_html__("Next", "event_espresso"),
690
-                'fatal_error'                      => esc_html__("A Fatal Error Has Occurred", "event_espresso"),
691
-                'click_next_when_ready'            => esc_html__(
692
-                    "The current Database Update has ended. Click 'next' when ready to proceed",
693
-                    "event_espresso"
694
-                ),
695
-                'status_no_more_migration_scripts' => EE_Data_Migration_Manager::status_no_more_migration_scripts,
696
-                'status_fatal_error'               => EE_Data_Migration_Manager::status_fatal_error,
697
-                'status_completed'                 => EE_Data_Migration_Manager::status_completed,
698
-                'confirm'                          => esc_html__(
699
-                    'Are you sure you want to do this? It CANNOT be undone!',
700
-                    'event_espresso'
701
-                ),
702
-                'confirm_skip_migration'           => esc_html__(
703
-                    'You have chosen to NOT migrate your existing data. Are you sure you want to continue?',
704
-                    'event_espresso'
705
-                ),
706
-            )
707
-        );
708
-    }
709
-
710
-
711
-    public function load_scripts_styles_default()
712
-    {
713
-    }
714
-
715
-
716
-    /**
717
-     * Enqueue scripts and styles for the datetime tools page.
718
-     */
719
-    public function load_scripts_styles_datetime_tools()
720
-    {
721
-        EE_Datepicker_Input::enqueue_styles_and_scripts();
722
-    }
723
-
724
-
725
-    protected function _datetime_tools()
726
-    {
727
-        $form_action = EE_Admin_Page::add_query_args_and_nonce(
728
-            array(
729
-                'action'        => 'run_datetime_offset_fix',
730
-                'return_action' => $this->_req_action,
731
-            ),
732
-            EE_MAINTENANCE_ADMIN_URL
733
-        );
734
-        $form = $this->_get_datetime_offset_fix_form();
735
-        $this->_admin_page_title = esc_html__('Datetime Utilities', 'event_espresso');
736
-        $this->_template_args['admin_page_content'] = $form->form_open($form_action, 'post')
737
-                                                      . $form->get_html_and_js()
738
-                                                      . $form->form_close();
739
-        $this->display_admin_page_with_no_sidebar();
740
-    }
741
-
742
-
743
-    protected function _get_datetime_offset_fix_form()
744
-    {
745
-        if (! $this->datetime_fix_offset_form instanceof EE_Form_Section_Proper) {
746
-            $this->datetime_fix_offset_form = new EE_Form_Section_Proper(
747
-                array(
748
-                    'name'            => 'datetime_offset_fix_option',
749
-                    'layout_strategy' => new EE_Admin_Two_Column_Layout(),
750
-                    'subsections'     => array(
751
-                        'title'                  => new EE_Form_Section_HTML(
752
-                            EEH_HTML::h2(
753
-                                esc_html__('Datetime Offset Tool', 'event_espresso')
754
-                            )
755
-                        ),
756
-                        'explanation'            => new EE_Form_Section_HTML(
757
-                            EEH_HTML::p(
758
-                                esc_html__(
759
-                                    'Use this tool to automatically apply the provided offset to all Event Espresso records in your database that involve dates and times.',
760
-                                    'event_espresso'
761
-                                )
762
-                            )
763
-                            . EEH_HTML::p(
764
-                                esc_html__(
765
-                                    'Note: If you enter 1.25, that will result in the offset of 1 hour 15 minutes being applied.  Decimals represent the fraction of hours, not minutes.',
766
-                                    'event_espresso'
767
-                                )
768
-                            )
769
-                        ),
770
-                        'offset_input'           => new EE_Float_Input(
771
-                            array(
772
-                                'html_name'       => 'offset_for_datetimes',
773
-                                'html_label_text' => esc_html__(
774
-                                    'Offset to apply (in hours):',
775
-                                    'event_espresso'
776
-                                ),
777
-                                'min_value'       => '-12',
778
-                                'max_value'       => '14',
779
-                                'step_value'      => '.25',
780
-                                'default'         => DatetimeOffsetFix::getOffset(),
781
-                            )
782
-                        ),
783
-                        'date_range_explanation' => new EE_Form_Section_HTML(
784
-                            EEH_HTML::p(
785
-                                esc_html__(
786
-                                    'Leave the following fields blank if you want the offset to be applied to all dates. If however, you want to just apply the offset to a specific range of dates you can restrict the offset application using these fields.',
787
-                                    'event_espresso'
788
-                                )
789
-                            )
790
-                            . EEH_HTML::p(
791
-                                EEH_HTML::strong(
792
-                                    sprintf(
793
-                                        esc_html__(
794
-                                            'Note: please enter the dates in UTC (You can use %1$sthis online tool%2$s to assist with conversions).',
795
-                                            'event_espresso'
796
-                                        ),
797
-                                        '<a href="https://www.timeanddate.com/worldclock/converter.html">',
798
-                                        '</a>'
799
-                                    )
800
-                                )
801
-                            )
802
-                        ),
803
-                        'date_range_start_date'  => new EE_Datepicker_Input(
804
-                            array(
805
-                                'html_name'       => 'offset_date_start_range',
806
-                                'html_label_text' => esc_html__(
807
-                                    'Start Date for dates the offset applied to:',
808
-                                    'event_espresso'
809
-                                ),
810
-                            )
811
-                        ),
812
-                        'date_range_end_date'    => new EE_Datepicker_Input(
813
-                            array(
814
-                                'html_name'       => 'offset_date_end_range',
815
-                                'html_label_text' => esc_html__(
816
-                                    'End Date for dates the offset is applied to:',
817
-                                    'event_espresso'
818
-                                ),
819
-                            )
820
-                        ),
821
-                        'submit'                 => new EE_Submit_Input(
822
-                            array(
823
-                                'html_label_text' => '',
824
-                                'default'         => esc_html__('Apply Offset', 'event_espresso'),
825
-                            )
826
-                        ),
827
-                    ),
828
-                )
829
-            );
830
-        }
831
-        return $this->datetime_fix_offset_form;
832
-    }
833
-
834
-
835
-    /**
836
-     * Callback for the run_datetime_offset_fix route.
837
-     *
838
-     * @throws EE_Error
839
-     */
840
-    protected function _apply_datetime_offset()
841
-    {
842
-        if ($_SERVER['REQUEST_METHOD'] === 'POST') {
843
-            $form = $this->_get_datetime_offset_fix_form();
844
-            $form->receive_form_submission($this->_req_data);
845
-            if ($form->is_valid()) {
846
-                // save offset data so batch processor can get it.
847
-                DatetimeOffsetFix::updateOffset($form->get_input_value('offset_input'));
848
-                $utc_timezone = new DateTimeZone('UTC');
849
-                $date_range_start_date = DateTime::createFromFormat(
850
-                    'm/d/Y H:i:s',
851
-                    $form->get_input_value('date_range_start_date') . ' 00:00:00',
852
-                    $utc_timezone
853
-                );
854
-                $date_range_end_date = DateTime::createFromFormat(
855
-                    'm/d/Y H:i:s',
856
-                    $form->get_input_value('date_range_end_date') . ' 23:59:59',
857
-                    $utc_timezone
858
-                );
859
-                if ($date_range_start_date instanceof DateTime) {
860
-                    DatetimeOffsetFix::updateStartDateRange(DbSafeDateTime::createFromDateTime($date_range_start_date));
861
-                }
862
-                if ($date_range_end_date instanceof DateTime) {
863
-                    DatetimeOffsetFix::updateEndDateRange(DbSafeDateTime::createFromDateTime($date_range_end_date));
864
-                }
865
-                // redirect to batch tool
866
-                wp_redirect(
867
-                    EE_Admin_Page::add_query_args_and_nonce(
868
-                        array(
869
-                            'page'        => 'espresso_batch',
870
-                            'batch'       => 'job',
871
-                            'label'       => esc_html__('Applying Offset', 'event_espresso'),
872
-                            'job_handler' => urlencode('EventEspressoBatchRequest\JobHandlers\DatetimeOffsetFix'),
873
-                            'return_url'  => urlencode(
874
-                                add_query_arg(
875
-                                    array(
876
-                                        'action' => 'datetime_tools',
877
-                                    ),
878
-                                    EEH_URL::current_url_without_query_paramaters(
879
-                                        array(
880
-                                            'return_action',
881
-                                            'run_datetime_offset_fix_nonce',
882
-                                            'return',
883
-                                            'datetime_tools_nonce',
884
-                                        )
885
-                                    )
886
-                                )
887
-                            ),
888
-                        ),
889
-                        admin_url()
890
-                    )
891
-                );
892
-                exit;
893
-            }
894
-        }
895
-    }
20
+	/**
21
+	 * @var EE_Form_Section_Proper
22
+	 */
23
+	protected $datetime_fix_offset_form;
24
+
25
+
26
+	protected function _init_page_props()
27
+	{
28
+		$this->page_slug = EE_MAINTENANCE_PG_SLUG;
29
+		$this->page_label = EE_MAINTENANCE_LABEL;
30
+		$this->_admin_base_url = EE_MAINTENANCE_ADMIN_URL;
31
+		$this->_admin_base_path = EE_MAINTENANCE_ADMIN;
32
+	}
33
+
34
+
35
+	protected function _ajax_hooks()
36
+	{
37
+		add_action('wp_ajax_migration_step', array($this, 'migration_step'));
38
+		add_action('wp_ajax_add_error_to_migrations_ran', array($this, 'add_error_to_migrations_ran'));
39
+	}
40
+
41
+
42
+	protected function _define_page_props()
43
+	{
44
+		$this->_admin_page_title = EE_MAINTENANCE_LABEL;
45
+		$this->_labels = array(
46
+			'buttons' => array(
47
+				'reset_reservations' => esc_html__('Reset Ticket and Datetime Reserved Counts', 'event_espresso'),
48
+				'reset_capabilities' => esc_html__('Reset Event Espresso Capabilities', 'event_espresso'),
49
+			),
50
+		);
51
+	}
52
+
53
+
54
+	protected function _set_page_routes()
55
+	{
56
+		$this->_page_routes = array(
57
+			'default'                             => array(
58
+				'func'       => '_maintenance',
59
+				'capability' => 'manage_options',
60
+			),
61
+			'change_maintenance_level'            => array(
62
+				'func'       => '_change_maintenance_level',
63
+				'capability' => 'manage_options',
64
+				'noheader'   => true,
65
+			),
66
+			'system_status'                       => array(
67
+				'func'       => '_system_status',
68
+				'capability' => 'manage_options',
69
+			),
70
+			'download_system_status'              => array(
71
+				'func'       => '_download_system_status',
72
+				'capability' => 'manage_options',
73
+				'noheader'   => true,
74
+			),
75
+			'send_migration_crash_report'         => array(
76
+				'func'       => '_send_migration_crash_report',
77
+				'capability' => 'manage_options',
78
+				'noheader'   => true,
79
+			),
80
+			'confirm_migration_crash_report_sent' => array(
81
+				'func'       => '_confirm_migration_crash_report_sent',
82
+				'capability' => 'manage_options',
83
+			),
84
+			'data_reset'                          => array(
85
+				'func'       => '_data_reset_and_delete',
86
+				'capability' => 'manage_options',
87
+			),
88
+			'reset_db'                            => array(
89
+				'func'       => '_reset_db',
90
+				'capability' => 'manage_options',
91
+				'noheader'   => true,
92
+				'args'       => array('nuke_old_ee4_data' => true),
93
+			),
94
+			'start_with_fresh_ee4_db'             => array(
95
+				'func'       => '_reset_db',
96
+				'capability' => 'manage_options',
97
+				'noheader'   => true,
98
+				'args'       => array('nuke_old_ee4_data' => false),
99
+			),
100
+			'delete_db'                           => array(
101
+				'func'       => '_delete_db',
102
+				'capability' => 'manage_options',
103
+				'noheader'   => true,
104
+			),
105
+			'rerun_migration_from_ee3'            => array(
106
+				'func'       => '_rerun_migration_from_ee3',
107
+				'capability' => 'manage_options',
108
+				'noheader'   => true,
109
+			),
110
+			'reset_reservations'                  => array(
111
+				'func'       => '_reset_reservations',
112
+				'capability' => 'manage_options',
113
+				'noheader'   => true,
114
+			),
115
+			'reset_capabilities'                  => array(
116
+				'func'       => '_reset_capabilities',
117
+				'capability' => 'manage_options',
118
+				'noheader'   => true,
119
+			),
120
+			'reattempt_migration'                 => array(
121
+				'func'       => '_reattempt_migration',
122
+				'capability' => 'manage_options',
123
+				'noheader'   => true,
124
+			),
125
+			'datetime_tools'                      => array(
126
+				'func'       => '_datetime_tools',
127
+				'capability' => 'manage_options',
128
+			),
129
+			'run_datetime_offset_fix'             => array(
130
+				'func'               => '_apply_datetime_offset',
131
+				'noheader'           => true,
132
+				'headers_sent_route' => 'datetime_tools',
133
+				'capability'         => 'manage_options',
134
+			),
135
+		);
136
+	}
137
+
138
+
139
+	protected function _set_page_config()
140
+	{
141
+		$this->_page_config = array(
142
+			'default'        => array(
143
+				'nav'           => array(
144
+					'label' => esc_html__('Maintenance', 'event_espresso'),
145
+					'order' => 10,
146
+				),
147
+				'require_nonce' => false,
148
+			),
149
+			'data_reset'     => array(
150
+				'nav'           => array(
151
+					'label' => esc_html__('Reset/Delete Data', 'event_espresso'),
152
+					'order' => 20,
153
+				),
154
+				'require_nonce' => false,
155
+			),
156
+			'datetime_tools' => array(
157
+				'nav'           => array(
158
+					'label' => esc_html__('Datetime Utilities', 'event_espresso'),
159
+					'order' => 25,
160
+				),
161
+				'require_nonce' => false,
162
+			),
163
+			'system_status'  => array(
164
+				'nav'           => array(
165
+					'label' => esc_html__("System Information", "event_espresso"),
166
+					'order' => 30,
167
+				),
168
+				'require_nonce' => false,
169
+			),
170
+		);
171
+	}
172
+
173
+
174
+	/**
175
+	 * default maintenance page. If we're in maintenance mode level 2, then we need to show
176
+	 * the migration scripts and all that UI.
177
+	 */
178
+	public function _maintenance()
179
+	{
180
+		// it all depends if we're in maintenance model level 1 (frontend-only) or
181
+		// level 2 (everything except maintenance page)
182
+		try {
183
+			// get the current maintenance level and check if
184
+			// we are removed
185
+			$mm = EE_Maintenance_Mode::instance()->level();
186
+			$placed_in_mm = EE_Maintenance_Mode::instance()->set_maintenance_mode_if_db_old();
187
+			if ($mm == EE_Maintenance_Mode::level_2_complete_maintenance && ! $placed_in_mm) {
188
+				// we just took the site out of maintenance mode, so notify the user.
189
+				// unfortunately this message appears to be echoed on the NEXT page load...
190
+				// oh well, we should really be checking for this on addon deactivation anyways
191
+				EE_Error::add_attention(
192
+					__(
193
+						'Site taken out of maintenance mode because no data migration scripts are required',
194
+						'event_espresso'
195
+					)
196
+				);
197
+				$this->_process_notices(array('page' => 'espresso_maintenance_settings'), false);
198
+			}
199
+			// in case an exception is thrown while trying to handle migrations
200
+			switch (EE_Maintenance_Mode::instance()->level()) {
201
+				case EE_Maintenance_Mode::level_0_not_in_maintenance:
202
+				case EE_Maintenance_Mode::level_1_frontend_only_maintenance:
203
+					$show_maintenance_switch = true;
204
+					$show_backup_db_text = false;
205
+					$show_migration_progress = false;
206
+					$script_names = array();
207
+					$addons_should_be_upgraded_first = false;
208
+					break;
209
+				case EE_Maintenance_Mode::level_2_complete_maintenance:
210
+					$show_maintenance_switch = false;
211
+					$show_migration_progress = true;
212
+					if (isset($this->_req_data['continue_migration'])) {
213
+						$show_backup_db_text = false;
214
+					} else {
215
+						$show_backup_db_text = true;
216
+					}
217
+					$scripts_needing_to_run = EE_Data_Migration_Manager::instance()
218
+																	   ->check_for_applicable_data_migration_scripts();
219
+					$addons_should_be_upgraded_first = EE_Data_Migration_Manager::instance()->addons_need_updating();
220
+					$script_names = array();
221
+					$current_script = null;
222
+					foreach ($scripts_needing_to_run as $script) {
223
+						if ($script instanceof EE_Data_Migration_Script_Base) {
224
+							if (! $current_script) {
225
+								$current_script = $script;
226
+								$current_script->migration_page_hooks();
227
+							}
228
+							$script_names[] = $script->pretty_name();
229
+						}
230
+					}
231
+					break;
232
+			}
233
+			$most_recent_migration = EE_Data_Migration_Manager::instance()->get_last_ran_script(true);
234
+			$exception_thrown = false;
235
+		} catch (EE_Error $e) {
236
+			EE_Data_Migration_Manager::instance()->add_error_to_migrations_ran($e->getMessage());
237
+			// now, just so we can display the page correctly, make a error migration script stage object
238
+			// and also put the error on it. It only persists for the duration of this request
239
+			$most_recent_migration = new EE_DMS_Unknown_1_0_0();
240
+			$most_recent_migration->add_error($e->getMessage());
241
+			$exception_thrown = true;
242
+		}
243
+		$current_db_state = EE_Data_Migration_Manager::instance()->ensure_current_database_state_is_set();
244
+		$current_db_state = str_replace('.decaf', '', $current_db_state);
245
+		if ($exception_thrown
246
+			|| ($most_recent_migration
247
+				&& $most_recent_migration instanceof EE_Data_Migration_Script_Base
248
+				&& $most_recent_migration->is_broken()
249
+			)
250
+		) {
251
+			$this->_template_path = EE_MAINTENANCE_TEMPLATE_PATH . 'ee_migration_was_borked_page.template.php';
252
+			$this->_template_args['support_url'] = 'http://eventespresso.com/support/forums/';
253
+			$this->_template_args['next_url'] = EEH_URL::add_query_args_and_nonce(
254
+				array(
255
+					'action'  => 'confirm_migration_crash_report_sent',
256
+					'success' => '0',
257
+				),
258
+				EE_MAINTENANCE_ADMIN_URL
259
+			);
260
+		} elseif ($addons_should_be_upgraded_first) {
261
+			$this->_template_path = EE_MAINTENANCE_TEMPLATE_PATH . 'ee_upgrade_addons_before_migrating.template.php';
262
+		} else {
263
+			if ($most_recent_migration
264
+				&& $most_recent_migration instanceof EE_Data_Migration_Script_Base
265
+				&& $most_recent_migration->can_continue()
266
+			) {
267
+				$show_backup_db_text = false;
268
+				$show_continue_current_migration_script = true;
269
+				$show_most_recent_migration = true;
270
+			} elseif (isset($this->_req_data['continue_migration'])) {
271
+				$show_most_recent_migration = true;
272
+				$show_continue_current_migration_script = false;
273
+			} else {
274
+				$show_most_recent_migration = false;
275
+				$show_continue_current_migration_script = false;
276
+			}
277
+			if (isset($current_script)) {
278
+				$migrates_to = $current_script->migrates_to_version();
279
+				$plugin_slug = $migrates_to['slug'];
280
+				$new_version = $migrates_to['version'];
281
+				$this->_template_args = array_merge(
282
+					$this->_template_args,
283
+					array(
284
+						'current_db_state' => sprintf(
285
+							__("EE%s (%s)", "event_espresso"),
286
+							isset($current_db_state[ $plugin_slug ]) ? $current_db_state[ $plugin_slug ] : 3,
287
+							$plugin_slug
288
+						),
289
+						'next_db_state'    => isset($current_script) ? sprintf(
290
+							__("EE%s (%s)", 'event_espresso'),
291
+							$new_version,
292
+							$plugin_slug
293
+						) : null,
294
+					)
295
+				);
296
+			} else {
297
+				$this->_template_args['current_db_state'] = null;
298
+				$this->_template_args['next_db_state'] = null;
299
+			}
300
+			$this->_template_path = EE_MAINTENANCE_TEMPLATE_PATH . 'ee_migration_page.template.php';
301
+			$this->_template_args = array_merge(
302
+				$this->_template_args,
303
+				array(
304
+					'show_most_recent_migration'             => $show_most_recent_migration,
305
+					// flag for showing the most recent migration's status and/or errors
306
+					'show_migration_progress'                => $show_migration_progress,
307
+					// flag for showing the option to run migrations and see their progress
308
+					'show_backup_db_text'                    => $show_backup_db_text,
309
+					// flag for showing text telling the user to backup their DB
310
+					'show_maintenance_switch'                => $show_maintenance_switch,
311
+					// flag for showing the option to change maintenance mode between levels 0 and 1
312
+					'script_names'                           => $script_names,
313
+					// array of names of scripts that have run
314
+					'show_continue_current_migration_script' => $show_continue_current_migration_script,
315
+					// flag to change wording to indicating that we're only CONTINUING a migration script (somehow it got interrupted0
316
+					'reset_db_page_link'                     => EE_Admin_Page::add_query_args_and_nonce(
317
+						array('action' => 'reset_db'),
318
+						EE_MAINTENANCE_ADMIN_URL
319
+					),
320
+					'data_reset_page'                        => EE_Admin_Page::add_query_args_and_nonce(
321
+						array('action' => 'data_reset'),
322
+						EE_MAINTENANCE_ADMIN_URL
323
+					),
324
+					'update_migration_script_page_link'      => EE_Admin_Page::add_query_args_and_nonce(
325
+						array('action' => 'change_maintenance_level'),
326
+						EE_MAINTENANCE_ADMIN_URL
327
+					),
328
+					'ultimate_db_state'                      => sprintf(
329
+						__("EE%s", 'event_espresso'),
330
+						espresso_version()
331
+					),
332
+				)
333
+			);
334
+			// make sure we have the form fields helper available. It usually is, but sometimes it isn't
335
+		}
336
+		$this->_template_args['most_recent_migration'] = $most_recent_migration;// the actual most recently ran migration
337
+		// now render the migration options part, and put it in a variable
338
+		$migration_options_template_file = apply_filters(
339
+			'FHEE__ee_migration_page__migration_options_template',
340
+			EE_MAINTENANCE_TEMPLATE_PATH . 'migration_options_from_ee4.template.php'
341
+		);
342
+		$migration_options_html = EEH_Template::display_template(
343
+			$migration_options_template_file,
344
+			$this->_template_args,
345
+			true
346
+		);
347
+		$this->_template_args['migration_options_html'] = $migration_options_html;
348
+		$this->_template_args['admin_page_content'] = EEH_Template::display_template(
349
+			$this->_template_path,
350
+			$this->_template_args,
351
+			true
352
+		);
353
+		$this->display_admin_page_with_sidebar();
354
+	}
355
+
356
+
357
+	/**
358
+	 * returns JSON and executes another step of the currently-executing data migration (called via ajax)
359
+	 */
360
+	public function migration_step()
361
+	{
362
+		$this->_template_args['data'] = EE_Data_Migration_Manager::instance()->response_to_migration_ajax_request();
363
+		$this->_return_json();
364
+	}
365
+
366
+
367
+	/**
368
+	 * Can be used by js when it notices a response with HTML in it in order
369
+	 * to log the malformed response
370
+	 */
371
+	public function add_error_to_migrations_ran()
372
+	{
373
+		EE_Data_Migration_Manager::instance()->add_error_to_migrations_ran($this->_req_data['message']);
374
+		$this->_template_args['data'] = array('ok' => true);
375
+		$this->_return_json();
376
+	}
377
+
378
+
379
+	/**
380
+	 * changes the maintenance level, provided there are still no migration scripts that should run
381
+	 */
382
+	public function _change_maintenance_level()
383
+	{
384
+		$new_level = absint($this->_req_data['maintenance_mode_level']);
385
+		if (! EE_Data_Migration_Manager::instance()->check_for_applicable_data_migration_scripts()) {
386
+			EE_Maintenance_Mode::instance()->set_maintenance_level($new_level);
387
+			$success = true;
388
+		} else {
389
+			EE_Maintenance_Mode::instance()->set_maintenance_mode_if_db_old();
390
+			$success = false;
391
+		}
392
+		$this->_redirect_after_action($success, 'Maintenance Mode', esc_html__("Updated", "event_espresso"));
393
+	}
394
+
395
+
396
+	/**
397
+	 * a tab with options for resetting and/or deleting EE data
398
+	 *
399
+	 * @throws \EE_Error
400
+	 * @throws \DomainException
401
+	 */
402
+	public function _data_reset_and_delete()
403
+	{
404
+		$this->_template_path = EE_MAINTENANCE_TEMPLATE_PATH . 'ee_data_reset_and_delete.template.php';
405
+		$this->_template_args['reset_reservations_button'] = $this->get_action_link_or_button(
406
+			'reset_reservations',
407
+			'reset_reservations',
408
+			array(),
409
+			'button button-primary ee-confirm',
410
+			'',
411
+			false
412
+		);
413
+		$this->_template_args['reset_capabilities_button'] = $this->get_action_link_or_button(
414
+			'reset_capabilities',
415
+			'reset_capabilities',
416
+			array(),
417
+			'button button-primary ee-confirm',
418
+			'',
419
+			false
420
+		);
421
+		$this->_template_args['delete_db_url'] = EE_Admin_Page::add_query_args_and_nonce(
422
+			array('action' => 'delete_db'),
423
+			EE_MAINTENANCE_ADMIN_URL
424
+		);
425
+		$this->_template_args['reset_db_url'] = EE_Admin_Page::add_query_args_and_nonce(
426
+			array('action' => 'reset_db'),
427
+			EE_MAINTENANCE_ADMIN_URL
428
+		);
429
+		$this->_template_args['admin_page_content'] = EEH_Template::display_template(
430
+			$this->_template_path,
431
+			$this->_template_args,
432
+			true
433
+		);
434
+		$this->display_admin_page_with_sidebar();
435
+	}
436
+
437
+
438
+	protected function _reset_reservations()
439
+	{
440
+		if (\EED_Ticket_Sales_Monitor::reset_reservation_counts()) {
441
+			EE_Error::add_success(
442
+				__(
443
+					'Ticket and datetime reserved counts have been successfully reset.',
444
+					'event_espresso'
445
+				)
446
+			);
447
+		} else {
448
+			EE_Error::add_success(
449
+				__(
450
+					'Ticket and datetime reserved counts were correct and did not need resetting.',
451
+					'event_espresso'
452
+				)
453
+			);
454
+		}
455
+		$this->_redirect_after_action(true, '', '', array('action' => 'data_reset'), true);
456
+	}
457
+
458
+
459
+	protected function _reset_capabilities()
460
+	{
461
+		EE_Registry::instance()->CAP->init_caps(true);
462
+		EE_Error::add_success(
463
+			__(
464
+				'Default Event Espresso capabilities have been restored for all current roles.',
465
+				'event_espresso'
466
+			)
467
+		);
468
+		$this->_redirect_after_action(false, '', '', array('action' => 'data_reset'), true);
469
+	}
470
+
471
+
472
+	/**
473
+	 * resets the DMSs so we can attempt to continue migrating after a fatal error
474
+	 * (only a good idea when someone has somehow tried ot fix whatever caused
475
+	 * the fatal error in teh first place)
476
+	 */
477
+	protected function _reattempt_migration()
478
+	{
479
+		EE_Data_Migration_Manager::instance()->reattempt();
480
+		$this->_redirect_after_action(false, '', '', array('action' => 'default'), true);
481
+	}
482
+
483
+
484
+	/**
485
+	 * shows the big ol' System Information page
486
+	 */
487
+	public function _system_status()
488
+	{
489
+		$this->_template_path = EE_MAINTENANCE_TEMPLATE_PATH . 'ee_system_stati_page.template.php';
490
+		$this->_template_args['system_stati'] = EEM_System_Status::instance()->get_system_stati();
491
+		$this->_template_args['download_system_status_url'] = EE_Admin_Page::add_query_args_and_nonce(
492
+			array(
493
+				'action' => 'download_system_status',
494
+			),
495
+			EE_MAINTENANCE_ADMIN_URL
496
+		);
497
+		$this->_template_args['admin_page_content'] = EEH_Template::display_template(
498
+			$this->_template_path,
499
+			$this->_template_args,
500
+			true
501
+		);
502
+		$this->display_admin_page_with_sidebar();
503
+	}
504
+
505
+	/**
506
+	 * Downloads an HTML file of the system status that can be easily stored or emailed
507
+	 */
508
+	public function _download_system_status()
509
+	{
510
+		$status_info = EEM_System_Status::instance()->get_system_stati();
511
+		header('Content-Disposition: attachment');
512
+		header("Content-Disposition: attachment; filename=system_status_" . sanitize_key(site_url()) . ".html");
513
+		echo "<style>table{border:1px solid darkgrey;}td{vertical-align:top}</style>";
514
+		echo "<h1>System Information for " . site_url() . "</h1>";
515
+		echo EEH_Template::layout_array_as_table($status_info);
516
+		die;
517
+	}
518
+
519
+
520
+	public function _send_migration_crash_report()
521
+	{
522
+		$from = $this->_req_data['from'];
523
+		$from_name = $this->_req_data['from_name'];
524
+		$body = $this->_req_data['body'];
525
+		try {
526
+			$success = wp_mail(
527
+				EE_SUPPORT_EMAIL,
528
+				'Migration Crash Report',
529
+				$body . "/r/n<br>" . print_r(EEM_System_Status::instance()->get_system_stati(), true),
530
+				array(
531
+					"from:$from_name<$from>",
532
+				)
533
+			);
534
+		} catch (Exception $e) {
535
+			$success = false;
536
+		}
537
+		$this->_redirect_after_action(
538
+			$success,
539
+			esc_html__("Migration Crash Report", "event_espresso"),
540
+			esc_html__("sent", "event_espresso"),
541
+			array('success' => $success, 'action' => 'confirm_migration_crash_report_sent')
542
+		);
543
+	}
544
+
545
+
546
+	public function _confirm_migration_crash_report_sent()
547
+	{
548
+		try {
549
+			$most_recent_migration = EE_Data_Migration_Manager::instance()->get_last_ran_script(true);
550
+		} catch (EE_Error $e) {
551
+			EE_Data_Migration_Manager::instance()->add_error_to_migrations_ran($e->getMessage());
552
+			// now, just so we can display the page correctly, make a error migration script stage object
553
+			// and also put the error on it. It only persists for the duration of this request
554
+			$most_recent_migration = new EE_DMS_Unknown_1_0_0();
555
+			$most_recent_migration->add_error($e->getMessage());
556
+		}
557
+		$success = $this->_req_data['success'] == '1' ? true : false;
558
+		$this->_template_args['success'] = $success;
559
+		$this->_template_args['most_recent_migration'] = $most_recent_migration;
560
+		$this->_template_args['reset_db_action_url'] = EE_Admin_Page::add_query_args_and_nonce(
561
+			array('action' => 'reset_db'),
562
+			EE_MAINTENANCE_ADMIN_URL
563
+		);
564
+		$this->_template_args['reset_db_page_url'] = EE_Admin_Page::add_query_args_and_nonce(
565
+			array('action' => 'data_reset'),
566
+			EE_MAINTENANCE_ADMIN_URL
567
+		);
568
+		$this->_template_args['reattempt_action_url'] = EE_Admin_Page::add_query_args_and_nonce(
569
+			array('action' => 'reattempt_migration'),
570
+			EE_MAINTENANCE_ADMIN_URL
571
+		);
572
+		$this->_template_path = EE_MAINTENANCE_TEMPLATE_PATH . 'ee_confirm_migration_crash_report_sent.template.php';
573
+		$this->_template_args['admin_page_content'] = EEH_Template::display_template(
574
+			$this->_template_path,
575
+			$this->_template_args,
576
+			true
577
+		);
578
+		$this->display_admin_page_with_sidebar();
579
+	}
580
+
581
+
582
+	/**
583
+	 * Resets the entire EE4 database.
584
+	 * Currently basically only sets up ee4 database for a fresh install- doesn't
585
+	 * actually clean out the old wp options, or cpts (although does erase old ee table data)
586
+	 *
587
+	 * @param boolean $nuke_old_ee4_data controls whether or not we
588
+	 *                                   destroy the old ee4 data, or just try initializing ee4 default data
589
+	 */
590
+	public function _reset_db($nuke_old_ee4_data = true)
591
+	{
592
+		EE_Maintenance_Mode::instance()->set_maintenance_level(EE_Maintenance_Mode::level_0_not_in_maintenance);
593
+		if ($nuke_old_ee4_data) {
594
+			EEH_Activation::delete_all_espresso_cpt_data();
595
+			EEH_Activation::delete_all_espresso_tables_and_data(false);
596
+			EEH_Activation::remove_cron_tasks();
597
+		}
598
+		// make sure when we reset the registry's config that it
599
+		// switches to using the new singleton
600
+		EE_Registry::instance()->CFG = EE_Registry::instance()->CFG->reset(true);
601
+		EE_System::instance()->initialize_db_if_no_migrations_required(true);
602
+		EE_System::instance()->redirect_to_about_ee();
603
+	}
604
+
605
+
606
+	/**
607
+	 * Deletes ALL EE tables, Records, and Options from the database.
608
+	 */
609
+	public function _delete_db()
610
+	{
611
+		EE_Maintenance_Mode::instance()->set_maintenance_level(EE_Maintenance_Mode::level_0_not_in_maintenance);
612
+		EEH_Activation::delete_all_espresso_cpt_data();
613
+		EEH_Activation::delete_all_espresso_tables_and_data();
614
+		EEH_Activation::remove_cron_tasks();
615
+		EEH_Activation::deactivate_event_espresso();
616
+		wp_safe_redirect(admin_url('plugins.php'));
617
+		exit;
618
+	}
619
+
620
+
621
+	/**
622
+	 * sets up EE4 to rerun the migrations from ee3 to ee4
623
+	 */
624
+	public function _rerun_migration_from_ee3()
625
+	{
626
+		EE_Maintenance_Mode::instance()->set_maintenance_level(EE_Maintenance_Mode::level_0_not_in_maintenance);
627
+		EEH_Activation::delete_all_espresso_cpt_data();
628
+		EEH_Activation::delete_all_espresso_tables_and_data(false);
629
+		// set the db state to something that will require migrations
630
+		update_option(EE_Data_Migration_Manager::current_database_state, '3.1.36.0');
631
+		EE_Maintenance_Mode::instance()->set_maintenance_level(EE_Maintenance_Mode::level_2_complete_maintenance);
632
+		$this->_redirect_after_action(
633
+			true,
634
+			esc_html__("Database", 'event_espresso'),
635
+			esc_html__("reset", 'event_espresso')
636
+		);
637
+	}
638
+
639
+
640
+	// none of the below group are currently used for Gateway Settings
641
+	protected function _add_screen_options()
642
+	{
643
+	}
644
+
645
+
646
+	protected function _add_feature_pointers()
647
+	{
648
+	}
649
+
650
+
651
+	public function admin_init()
652
+	{
653
+	}
654
+
655
+
656
+	public function admin_notices()
657
+	{
658
+	}
659
+
660
+
661
+	public function admin_footer_scripts()
662
+	{
663
+	}
664
+
665
+
666
+	public function load_scripts_styles()
667
+	{
668
+		wp_enqueue_script('ee_admin_js');
669
+		wp_enqueue_script(
670
+			'ee-maintenance',
671
+			EE_MAINTENANCE_ASSETS_URL . 'ee-maintenance.js',
672
+			array('jquery'),
673
+			EVENT_ESPRESSO_VERSION,
674
+			true
675
+		);
676
+		wp_register_style(
677
+			'espresso_maintenance',
678
+			EE_MAINTENANCE_ASSETS_URL . 'ee-maintenance.css',
679
+			array(),
680
+			EVENT_ESPRESSO_VERSION
681
+		);
682
+		wp_enqueue_style('espresso_maintenance');
683
+		// localize script stuff
684
+		wp_localize_script(
685
+			'ee-maintenance',
686
+			'ee_maintenance',
687
+			array(
688
+				'migrating'                        => esc_html__("Updating Database...", "event_espresso"),
689
+				'next'                             => esc_html__("Next", "event_espresso"),
690
+				'fatal_error'                      => esc_html__("A Fatal Error Has Occurred", "event_espresso"),
691
+				'click_next_when_ready'            => esc_html__(
692
+					"The current Database Update has ended. Click 'next' when ready to proceed",
693
+					"event_espresso"
694
+				),
695
+				'status_no_more_migration_scripts' => EE_Data_Migration_Manager::status_no_more_migration_scripts,
696
+				'status_fatal_error'               => EE_Data_Migration_Manager::status_fatal_error,
697
+				'status_completed'                 => EE_Data_Migration_Manager::status_completed,
698
+				'confirm'                          => esc_html__(
699
+					'Are you sure you want to do this? It CANNOT be undone!',
700
+					'event_espresso'
701
+				),
702
+				'confirm_skip_migration'           => esc_html__(
703
+					'You have chosen to NOT migrate your existing data. Are you sure you want to continue?',
704
+					'event_espresso'
705
+				),
706
+			)
707
+		);
708
+	}
709
+
710
+
711
+	public function load_scripts_styles_default()
712
+	{
713
+	}
714
+
715
+
716
+	/**
717
+	 * Enqueue scripts and styles for the datetime tools page.
718
+	 */
719
+	public function load_scripts_styles_datetime_tools()
720
+	{
721
+		EE_Datepicker_Input::enqueue_styles_and_scripts();
722
+	}
723
+
724
+
725
+	protected function _datetime_tools()
726
+	{
727
+		$form_action = EE_Admin_Page::add_query_args_and_nonce(
728
+			array(
729
+				'action'        => 'run_datetime_offset_fix',
730
+				'return_action' => $this->_req_action,
731
+			),
732
+			EE_MAINTENANCE_ADMIN_URL
733
+		);
734
+		$form = $this->_get_datetime_offset_fix_form();
735
+		$this->_admin_page_title = esc_html__('Datetime Utilities', 'event_espresso');
736
+		$this->_template_args['admin_page_content'] = $form->form_open($form_action, 'post')
737
+													  . $form->get_html_and_js()
738
+													  . $form->form_close();
739
+		$this->display_admin_page_with_no_sidebar();
740
+	}
741
+
742
+
743
+	protected function _get_datetime_offset_fix_form()
744
+	{
745
+		if (! $this->datetime_fix_offset_form instanceof EE_Form_Section_Proper) {
746
+			$this->datetime_fix_offset_form = new EE_Form_Section_Proper(
747
+				array(
748
+					'name'            => 'datetime_offset_fix_option',
749
+					'layout_strategy' => new EE_Admin_Two_Column_Layout(),
750
+					'subsections'     => array(
751
+						'title'                  => new EE_Form_Section_HTML(
752
+							EEH_HTML::h2(
753
+								esc_html__('Datetime Offset Tool', 'event_espresso')
754
+							)
755
+						),
756
+						'explanation'            => new EE_Form_Section_HTML(
757
+							EEH_HTML::p(
758
+								esc_html__(
759
+									'Use this tool to automatically apply the provided offset to all Event Espresso records in your database that involve dates and times.',
760
+									'event_espresso'
761
+								)
762
+							)
763
+							. EEH_HTML::p(
764
+								esc_html__(
765
+									'Note: If you enter 1.25, that will result in the offset of 1 hour 15 minutes being applied.  Decimals represent the fraction of hours, not minutes.',
766
+									'event_espresso'
767
+								)
768
+							)
769
+						),
770
+						'offset_input'           => new EE_Float_Input(
771
+							array(
772
+								'html_name'       => 'offset_for_datetimes',
773
+								'html_label_text' => esc_html__(
774
+									'Offset to apply (in hours):',
775
+									'event_espresso'
776
+								),
777
+								'min_value'       => '-12',
778
+								'max_value'       => '14',
779
+								'step_value'      => '.25',
780
+								'default'         => DatetimeOffsetFix::getOffset(),
781
+							)
782
+						),
783
+						'date_range_explanation' => new EE_Form_Section_HTML(
784
+							EEH_HTML::p(
785
+								esc_html__(
786
+									'Leave the following fields blank if you want the offset to be applied to all dates. If however, you want to just apply the offset to a specific range of dates you can restrict the offset application using these fields.',
787
+									'event_espresso'
788
+								)
789
+							)
790
+							. EEH_HTML::p(
791
+								EEH_HTML::strong(
792
+									sprintf(
793
+										esc_html__(
794
+											'Note: please enter the dates in UTC (You can use %1$sthis online tool%2$s to assist with conversions).',
795
+											'event_espresso'
796
+										),
797
+										'<a href="https://www.timeanddate.com/worldclock/converter.html">',
798
+										'</a>'
799
+									)
800
+								)
801
+							)
802
+						),
803
+						'date_range_start_date'  => new EE_Datepicker_Input(
804
+							array(
805
+								'html_name'       => 'offset_date_start_range',
806
+								'html_label_text' => esc_html__(
807
+									'Start Date for dates the offset applied to:',
808
+									'event_espresso'
809
+								),
810
+							)
811
+						),
812
+						'date_range_end_date'    => new EE_Datepicker_Input(
813
+							array(
814
+								'html_name'       => 'offset_date_end_range',
815
+								'html_label_text' => esc_html__(
816
+									'End Date for dates the offset is applied to:',
817
+									'event_espresso'
818
+								),
819
+							)
820
+						),
821
+						'submit'                 => new EE_Submit_Input(
822
+							array(
823
+								'html_label_text' => '',
824
+								'default'         => esc_html__('Apply Offset', 'event_espresso'),
825
+							)
826
+						),
827
+					),
828
+				)
829
+			);
830
+		}
831
+		return $this->datetime_fix_offset_form;
832
+	}
833
+
834
+
835
+	/**
836
+	 * Callback for the run_datetime_offset_fix route.
837
+	 *
838
+	 * @throws EE_Error
839
+	 */
840
+	protected function _apply_datetime_offset()
841
+	{
842
+		if ($_SERVER['REQUEST_METHOD'] === 'POST') {
843
+			$form = $this->_get_datetime_offset_fix_form();
844
+			$form->receive_form_submission($this->_req_data);
845
+			if ($form->is_valid()) {
846
+				// save offset data so batch processor can get it.
847
+				DatetimeOffsetFix::updateOffset($form->get_input_value('offset_input'));
848
+				$utc_timezone = new DateTimeZone('UTC');
849
+				$date_range_start_date = DateTime::createFromFormat(
850
+					'm/d/Y H:i:s',
851
+					$form->get_input_value('date_range_start_date') . ' 00:00:00',
852
+					$utc_timezone
853
+				);
854
+				$date_range_end_date = DateTime::createFromFormat(
855
+					'm/d/Y H:i:s',
856
+					$form->get_input_value('date_range_end_date') . ' 23:59:59',
857
+					$utc_timezone
858
+				);
859
+				if ($date_range_start_date instanceof DateTime) {
860
+					DatetimeOffsetFix::updateStartDateRange(DbSafeDateTime::createFromDateTime($date_range_start_date));
861
+				}
862
+				if ($date_range_end_date instanceof DateTime) {
863
+					DatetimeOffsetFix::updateEndDateRange(DbSafeDateTime::createFromDateTime($date_range_end_date));
864
+				}
865
+				// redirect to batch tool
866
+				wp_redirect(
867
+					EE_Admin_Page::add_query_args_and_nonce(
868
+						array(
869
+							'page'        => 'espresso_batch',
870
+							'batch'       => 'job',
871
+							'label'       => esc_html__('Applying Offset', 'event_espresso'),
872
+							'job_handler' => urlencode('EventEspressoBatchRequest\JobHandlers\DatetimeOffsetFix'),
873
+							'return_url'  => urlencode(
874
+								add_query_arg(
875
+									array(
876
+										'action' => 'datetime_tools',
877
+									),
878
+									EEH_URL::current_url_without_query_paramaters(
879
+										array(
880
+											'return_action',
881
+											'run_datetime_offset_fix_nonce',
882
+											'return',
883
+											'datetime_tools_nonce',
884
+										)
885
+									)
886
+								)
887
+							),
888
+						),
889
+						admin_url()
890
+					)
891
+				);
892
+				exit;
893
+			}
894
+		}
895
+	}
896 896
 }
Please login to merge, or discard this patch.