@@ -31,361 +31,361 @@ |
||
31 | 31 | class RecaptchaAdminSettings |
32 | 32 | { |
33 | 33 | |
34 | - /** |
|
35 | - * @var EE_Registration_Config $config |
|
36 | - */ |
|
37 | - private $config; |
|
34 | + /** |
|
35 | + * @var EE_Registration_Config $config |
|
36 | + */ |
|
37 | + private $config; |
|
38 | 38 | |
39 | 39 | |
40 | - /** |
|
41 | - * RecaptchaAdminSettings constructor. |
|
42 | - * |
|
43 | - * @param EE_Registration_Config $registration_config |
|
44 | - */ |
|
45 | - public function __construct(EE_Registration_Config $registration_config) |
|
46 | - { |
|
47 | - $this->config = $registration_config; |
|
48 | - } |
|
40 | + /** |
|
41 | + * RecaptchaAdminSettings constructor. |
|
42 | + * |
|
43 | + * @param EE_Registration_Config $registration_config |
|
44 | + */ |
|
45 | + public function __construct(EE_Registration_Config $registration_config) |
|
46 | + { |
|
47 | + $this->config = $registration_config; |
|
48 | + } |
|
49 | 49 | |
50 | 50 | |
51 | - /** |
|
52 | - * @throws InvalidArgumentException |
|
53 | - * @throws InvalidInterfaceException |
|
54 | - * @throws InvalidDataTypeException |
|
55 | - * @throws EE_Error |
|
56 | - */ |
|
57 | - public function adminSettings() |
|
58 | - { |
|
59 | - echo $this->settingsForm()->get_html_and_js(); |
|
60 | - } |
|
51 | + /** |
|
52 | + * @throws InvalidArgumentException |
|
53 | + * @throws InvalidInterfaceException |
|
54 | + * @throws InvalidDataTypeException |
|
55 | + * @throws EE_Error |
|
56 | + */ |
|
57 | + public function adminSettings() |
|
58 | + { |
|
59 | + echo $this->settingsForm()->get_html_and_js(); |
|
60 | + } |
|
61 | 61 | |
62 | 62 | |
63 | - /** |
|
64 | - * @return EE_Form_Section_Proper |
|
65 | - * @throws EE_Error |
|
66 | - */ |
|
67 | - protected function settingsForm() |
|
68 | - { |
|
69 | - return new EE_Form_Section_Proper( |
|
70 | - array( |
|
71 | - 'name' => 'recaptcha_settings_form', |
|
72 | - 'html_id' => 'recaptcha_settings_form', |
|
73 | - 'layout_strategy' => new EE_Div_Per_Section_Layout(), |
|
74 | - 'subsections' => apply_filters( |
|
75 | - 'FHEE__EED_Recaptcha___recaptcha_settings_form__form_subsections', |
|
76 | - array( |
|
77 | - 'main_settings_hdr' => new EE_Form_Section_HTML( |
|
78 | - EEH_HTML::h2( |
|
79 | - esc_html__('reCAPTCHA Anti-spam Settings', 'event_espresso') |
|
80 | - . EEH_Template::get_help_tab_link('recaptcha_info') |
|
81 | - ) |
|
82 | - ), |
|
83 | - 'main_settings' => $this->mainSettings(), |
|
84 | - 'appearance_settings_hdr' => new EE_Form_Section_HTML( |
|
85 | - EEH_HTML::h2(esc_html__('reCAPTCHA Appearance', 'event_espresso')) |
|
86 | - ), |
|
87 | - 'appearance_settings' => $this->appearanceSettings(), |
|
88 | - 'required_fields_note' => new EE_Form_Section_HTML( |
|
89 | - EEH_HTML::p( |
|
90 | - esc_html__('All fields marked with a * are required fields', 'event_espresso'), |
|
91 | - '', |
|
92 | - 'grey-text' |
|
93 | - ) |
|
94 | - ), |
|
95 | - ) |
|
96 | - ), |
|
97 | - ) |
|
98 | - ); |
|
99 | - } |
|
63 | + /** |
|
64 | + * @return EE_Form_Section_Proper |
|
65 | + * @throws EE_Error |
|
66 | + */ |
|
67 | + protected function settingsForm() |
|
68 | + { |
|
69 | + return new EE_Form_Section_Proper( |
|
70 | + array( |
|
71 | + 'name' => 'recaptcha_settings_form', |
|
72 | + 'html_id' => 'recaptcha_settings_form', |
|
73 | + 'layout_strategy' => new EE_Div_Per_Section_Layout(), |
|
74 | + 'subsections' => apply_filters( |
|
75 | + 'FHEE__EED_Recaptcha___recaptcha_settings_form__form_subsections', |
|
76 | + array( |
|
77 | + 'main_settings_hdr' => new EE_Form_Section_HTML( |
|
78 | + EEH_HTML::h2( |
|
79 | + esc_html__('reCAPTCHA Anti-spam Settings', 'event_espresso') |
|
80 | + . EEH_Template::get_help_tab_link('recaptcha_info') |
|
81 | + ) |
|
82 | + ), |
|
83 | + 'main_settings' => $this->mainSettings(), |
|
84 | + 'appearance_settings_hdr' => new EE_Form_Section_HTML( |
|
85 | + EEH_HTML::h2(esc_html__('reCAPTCHA Appearance', 'event_espresso')) |
|
86 | + ), |
|
87 | + 'appearance_settings' => $this->appearanceSettings(), |
|
88 | + 'required_fields_note' => new EE_Form_Section_HTML( |
|
89 | + EEH_HTML::p( |
|
90 | + esc_html__('All fields marked with a * are required fields', 'event_espresso'), |
|
91 | + '', |
|
92 | + 'grey-text' |
|
93 | + ) |
|
94 | + ), |
|
95 | + ) |
|
96 | + ), |
|
97 | + ) |
|
98 | + ); |
|
99 | + } |
|
100 | 100 | |
101 | 101 | |
102 | - /** |
|
103 | - * @return EE_Form_Section_Proper |
|
104 | - * @throws EE_Error |
|
105 | - */ |
|
106 | - protected function mainSettings() |
|
107 | - { |
|
108 | - return new EE_Form_Section_Proper( |
|
109 | - array( |
|
110 | - 'name' => 'recaptcha_settings_tbl', |
|
111 | - 'html_id' => 'recaptcha_settings_tbl', |
|
112 | - 'html_class' => 'form-table', |
|
113 | - 'layout_strategy' => new EE_Admin_Two_Column_Layout(), |
|
114 | - 'subsections' => apply_filters( |
|
115 | - 'FHEE__EED_Recaptcha___recaptcha_main_settings__form_subsections', |
|
116 | - array( |
|
117 | - 'use_captcha' => new EE_Yes_No_Input( |
|
118 | - array( |
|
119 | - 'html_label_text' => esc_html__('Use reCAPTCHA', 'event_espresso'), |
|
120 | - 'html_help_text' => sprintf( |
|
121 | - esc_html__( |
|
122 | - 'reCAPTCHA is a free service that protects your website from spam and abuse. It employs advanced risk analysis technology to separate humans from abusive actors. Sign up %1$shere%2$s to receive your Public and Private keys.', |
|
123 | - 'event_espresso' |
|
124 | - ), |
|
125 | - '<a href="https://www.google.com/recaptcha/intro/index.html">', |
|
126 | - '</a>' |
|
127 | - ), |
|
128 | - 'default' => $this->config->use_captcha !== null |
|
129 | - ? $this->config->use_captcha : false, |
|
130 | - 'display_html_label_text' => false, |
|
131 | - ) |
|
132 | - ), |
|
133 | - 'recaptcha_publickey' => new EE_Text_Input( |
|
134 | - array( |
|
135 | - 'html_label_text' => esc_html__('Site Key', 'event_espresso'), |
|
136 | - 'html_help_text' => esc_html__( |
|
137 | - 'The site key is used to display the widget on your site.', |
|
138 | - 'event_espresso' |
|
139 | - ), |
|
140 | - 'default' => $this->config->recaptcha_publickey !== null |
|
141 | - ? stripslashes($this->config->recaptcha_publickey) : '', |
|
142 | - ) |
|
143 | - ), |
|
144 | - 'recaptcha_privatekey' => new EE_Text_Input( |
|
145 | - array( |
|
146 | - 'html_label_text' => esc_html__('Secret Key', 'event_espresso'), |
|
147 | - 'html_help_text' => esc_html__( |
|
148 | - 'The secret key authorizes communication between your application backend and the reCAPTCHA server to verify the user\'s response. The secret key needs to be kept safe for security purposes.', |
|
149 | - 'event_espresso' |
|
150 | - ), |
|
151 | - 'default' => $this->config->recaptcha_privatekey !== null |
|
152 | - ? stripslashes($this->config->recaptcha_privatekey) |
|
153 | - : '', |
|
154 | - ) |
|
155 | - ), |
|
156 | - 'recaptcha_protected_forms' => new EE_Checkbox_Multi_Input( |
|
157 | - array( |
|
158 | - 'ticket_selector' => esc_html__('Ticket Selector', 'event_espresso'), |
|
159 | - 'registration_form' => esc_html__('Registration Form', 'event_espresso'), |
|
160 | - ), |
|
161 | - array( |
|
162 | - 'html_label_text' => esc_html__( |
|
163 | - 'Invisible reCAPTCHA Protection', |
|
164 | - 'event_espresso' |
|
165 | - ), |
|
166 | - 'html_help_text' => esc_html__( |
|
167 | - 'Select which Event Espresso forms you would like to enable Invisible reCAPTCHA on.', |
|
168 | - 'event_espresso' |
|
169 | - ), |
|
170 | - 'default' => is_array($this->config->recaptcha_protected_forms) |
|
171 | - ? $this->config->recaptcha_protected_forms |
|
172 | - : array(), |
|
173 | - 'display_html_label_text' => false, |
|
174 | - ) |
|
175 | - ), |
|
176 | - ) |
|
177 | - ), |
|
178 | - ) |
|
179 | - ); |
|
180 | - } |
|
102 | + /** |
|
103 | + * @return EE_Form_Section_Proper |
|
104 | + * @throws EE_Error |
|
105 | + */ |
|
106 | + protected function mainSettings() |
|
107 | + { |
|
108 | + return new EE_Form_Section_Proper( |
|
109 | + array( |
|
110 | + 'name' => 'recaptcha_settings_tbl', |
|
111 | + 'html_id' => 'recaptcha_settings_tbl', |
|
112 | + 'html_class' => 'form-table', |
|
113 | + 'layout_strategy' => new EE_Admin_Two_Column_Layout(), |
|
114 | + 'subsections' => apply_filters( |
|
115 | + 'FHEE__EED_Recaptcha___recaptcha_main_settings__form_subsections', |
|
116 | + array( |
|
117 | + 'use_captcha' => new EE_Yes_No_Input( |
|
118 | + array( |
|
119 | + 'html_label_text' => esc_html__('Use reCAPTCHA', 'event_espresso'), |
|
120 | + 'html_help_text' => sprintf( |
|
121 | + esc_html__( |
|
122 | + 'reCAPTCHA is a free service that protects your website from spam and abuse. It employs advanced risk analysis technology to separate humans from abusive actors. Sign up %1$shere%2$s to receive your Public and Private keys.', |
|
123 | + 'event_espresso' |
|
124 | + ), |
|
125 | + '<a href="https://www.google.com/recaptcha/intro/index.html">', |
|
126 | + '</a>' |
|
127 | + ), |
|
128 | + 'default' => $this->config->use_captcha !== null |
|
129 | + ? $this->config->use_captcha : false, |
|
130 | + 'display_html_label_text' => false, |
|
131 | + ) |
|
132 | + ), |
|
133 | + 'recaptcha_publickey' => new EE_Text_Input( |
|
134 | + array( |
|
135 | + 'html_label_text' => esc_html__('Site Key', 'event_espresso'), |
|
136 | + 'html_help_text' => esc_html__( |
|
137 | + 'The site key is used to display the widget on your site.', |
|
138 | + 'event_espresso' |
|
139 | + ), |
|
140 | + 'default' => $this->config->recaptcha_publickey !== null |
|
141 | + ? stripslashes($this->config->recaptcha_publickey) : '', |
|
142 | + ) |
|
143 | + ), |
|
144 | + 'recaptcha_privatekey' => new EE_Text_Input( |
|
145 | + array( |
|
146 | + 'html_label_text' => esc_html__('Secret Key', 'event_espresso'), |
|
147 | + 'html_help_text' => esc_html__( |
|
148 | + 'The secret key authorizes communication between your application backend and the reCAPTCHA server to verify the user\'s response. The secret key needs to be kept safe for security purposes.', |
|
149 | + 'event_espresso' |
|
150 | + ), |
|
151 | + 'default' => $this->config->recaptcha_privatekey !== null |
|
152 | + ? stripslashes($this->config->recaptcha_privatekey) |
|
153 | + : '', |
|
154 | + ) |
|
155 | + ), |
|
156 | + 'recaptcha_protected_forms' => new EE_Checkbox_Multi_Input( |
|
157 | + array( |
|
158 | + 'ticket_selector' => esc_html__('Ticket Selector', 'event_espresso'), |
|
159 | + 'registration_form' => esc_html__('Registration Form', 'event_espresso'), |
|
160 | + ), |
|
161 | + array( |
|
162 | + 'html_label_text' => esc_html__( |
|
163 | + 'Invisible reCAPTCHA Protection', |
|
164 | + 'event_espresso' |
|
165 | + ), |
|
166 | + 'html_help_text' => esc_html__( |
|
167 | + 'Select which Event Espresso forms you would like to enable Invisible reCAPTCHA on.', |
|
168 | + 'event_espresso' |
|
169 | + ), |
|
170 | + 'default' => is_array($this->config->recaptcha_protected_forms) |
|
171 | + ? $this->config->recaptcha_protected_forms |
|
172 | + : array(), |
|
173 | + 'display_html_label_text' => false, |
|
174 | + ) |
|
175 | + ), |
|
176 | + ) |
|
177 | + ), |
|
178 | + ) |
|
179 | + ); |
|
180 | + } |
|
181 | 181 | |
182 | 182 | |
183 | - /** |
|
184 | - * @return EE_Form_Section_Proper |
|
185 | - * @throws EE_Error |
|
186 | - */ |
|
187 | - protected function appearanceSettings() |
|
188 | - { |
|
189 | - return new EE_Form_Section_Proper( |
|
190 | - array( |
|
191 | - 'name' => 'recaptcha_appearance_settings_tbl', |
|
192 | - 'html_id' => 'recaptcha_appearance_settings_tbl', |
|
193 | - 'html_class' => 'form-table', |
|
194 | - 'layout_strategy' => new EE_Admin_Two_Column_Layout(), |
|
195 | - 'subsections' => apply_filters( |
|
196 | - 'FHEE__EED_Recaptcha___recaptcha_appearance_settings__form_subsections', |
|
197 | - array( |
|
198 | - 'recaptcha_theme' => new EE_Radio_Button_Input( |
|
199 | - array( |
|
200 | - 'invisible' => esc_html__('Invisible', 'event_espresso'), |
|
201 | - 'light' => esc_html__('Light', 'event_espresso'), |
|
202 | - 'dark' => esc_html__('Dark', 'event_espresso'), |
|
203 | - ), |
|
204 | - array( |
|
205 | - 'html_label_text' => esc_html__('Theme', 'event_espresso'), |
|
206 | - 'html_help_text' => esc_html__( |
|
207 | - 'The color theme of the widget.', |
|
208 | - 'event_espresso' |
|
209 | - ), |
|
210 | - 'default' => $this->config->recaptcha_theme !== null |
|
211 | - ? $this->config->recaptcha_theme |
|
212 | - : 'invisible', |
|
213 | - 'display_html_label_text' => false, |
|
214 | - ) |
|
215 | - ), |
|
216 | - 'recaptcha_badge' => new EE_Radio_Button_Input( |
|
217 | - array( |
|
218 | - 'bottomleft' => esc_html__('Bottom Left', 'event_espresso'), |
|
219 | - 'bottomright' => esc_html__('Bottom Right', 'event_espresso'), |
|
220 | - 'inline' => esc_html__('Inline', 'event_espresso'), |
|
221 | - ), |
|
222 | - array( |
|
223 | - 'html_label_text' => esc_html__( |
|
224 | - 'Invisible reCAPTCHA Badge Position', |
|
225 | - 'event_espresso' |
|
226 | - ), |
|
227 | - 'html_help_text' => esc_html__( |
|
228 | - 'If using Invisible reCAPTCHA, then this determines the position of the reCAPTCHA badge. "Bottom Left" and "Bottom Right" both will float at the bottom of the screen. "Inline" appears beside the submit button but allows you to control the CSS.', |
|
229 | - 'event_espresso' |
|
230 | - ), |
|
231 | - 'default' => $this->config->recaptcha_badge !== null |
|
232 | - ? $this->config->recaptcha_badge |
|
233 | - : 'bottomleft', |
|
234 | - 'display_html_label_text' => false, |
|
235 | - ) |
|
236 | - ), |
|
237 | - 'recaptcha_type' => new EE_Radio_Button_Input( |
|
238 | - array( |
|
239 | - 'image' => esc_html__('Image', 'event_espresso'), |
|
240 | - 'audio' => esc_html__('Audio', 'event_espresso'), |
|
241 | - ), |
|
242 | - array( |
|
243 | - 'html_label_text' => esc_html__('Type', 'event_espresso'), |
|
244 | - 'html_help_text' => esc_html__( |
|
245 | - 'The type of CAPTCHA to serve.', |
|
246 | - 'event_espresso' |
|
247 | - ), |
|
248 | - 'default' => $this->config->recaptcha_type !== null |
|
249 | - ? $this->config->recaptcha_type |
|
250 | - : 'image', |
|
251 | - 'display_html_label_text' => false, |
|
252 | - ) |
|
253 | - ), |
|
254 | - 'recaptcha_language' => new EE_Select_Input( |
|
255 | - array( |
|
256 | - 'ar' => esc_html__('Arabic', 'event_espresso'), |
|
257 | - 'bg' => esc_html__('Bulgarian', 'event_espresso'), |
|
258 | - 'ca' => esc_html__('Catalan', 'event_espresso'), |
|
259 | - 'zh-CN' => esc_html__('Chinese (Simplified)', 'event_espresso'), |
|
260 | - 'zh-TW' => esc_html__('Chinese (Traditional) ', 'event_espresso'), |
|
261 | - 'hr' => esc_html__('Croatian', 'event_espresso'), |
|
262 | - 'cs' => esc_html__('Czech', 'event_espresso'), |
|
263 | - 'da' => esc_html__('Danish', 'event_espresso'), |
|
264 | - 'nl' => esc_html__('Dutch', 'event_espresso'), |
|
265 | - 'en-GB' => esc_html__('English (UK)', 'event_espresso'), |
|
266 | - 'en' => esc_html__('English (US)', 'event_espresso'), |
|
267 | - 'fil' => esc_html__('Filipino', 'event_espresso'), |
|
268 | - 'fi' => esc_html__('Finnish', 'event_espresso'), |
|
269 | - 'fr' => esc_html__('French', 'event_espresso'), |
|
270 | - 'fr-CA' => esc_html__('French (Canadian)', 'event_espresso'), |
|
271 | - 'de' => esc_html__('German', 'event_espresso'), |
|
272 | - 'de-AT' => esc_html__('German (Austria)', 'event_espresso'), |
|
273 | - 'de-CH' => esc_html__('German (Switzerland)', 'event_espresso'), |
|
274 | - 'el' => esc_html__('Greek', 'event_espresso'), |
|
275 | - 'iw' => esc_html__('Hebrew', 'event_espresso'), |
|
276 | - 'hi' => esc_html__('Hindi', 'event_espresso'), |
|
277 | - 'hu' => esc_html__('Hungarian', 'event_espresso'), |
|
278 | - 'id' => esc_html__('Indonesian', 'event_espresso'), |
|
279 | - 'it' => esc_html__('Italian', 'event_espresso'), |
|
280 | - 'ja' => esc_html__('Japanese', 'event_espresso'), |
|
281 | - 'ko' => esc_html__('Korean', 'event_espresso'), |
|
282 | - 'lv' => esc_html__('Latvian', 'event_espresso'), |
|
283 | - 'lt' => esc_html__('Lithuanian', 'event_espresso'), |
|
284 | - 'no' => esc_html__('Norwegian', 'event_espresso'), |
|
285 | - 'fa' => esc_html__('Persian', 'event_espresso'), |
|
286 | - 'pl' => esc_html__('Polish', 'event_espresso'), |
|
287 | - 'pt' => esc_html__('Portuguese', 'event_espresso'), |
|
288 | - 'pt-BR' => esc_html__('Portuguese (Brazil)', 'event_espresso'), |
|
289 | - 'pt-PT' => esc_html__('Portuguese (Portugal)', 'event_espresso'), |
|
290 | - 'ro' => esc_html__('Romanian', 'event_espresso'), |
|
291 | - 'ru' => esc_html__('Russian', 'event_espresso'), |
|
292 | - 'sr' => esc_html__('Serbian', 'event_espresso'), |
|
293 | - 'sk' => esc_html__('Slovak', 'event_espresso'), |
|
294 | - 'sl' => esc_html__('Slovenian', 'event_espresso'), |
|
295 | - 'es' => esc_html__('Spanish', 'event_espresso'), |
|
296 | - 'es-419' => esc_html__('Spanish (Latin America)', 'event_espresso'), |
|
297 | - 'sv' => esc_html__('Swedish', 'event_espresso'), |
|
298 | - 'th' => esc_html__('Thai', 'event_espresso'), |
|
299 | - 'tr' => esc_html__('Turkish', 'event_espresso'), |
|
300 | - 'uk' => esc_html__('Ukrainian', 'event_espresso'), |
|
301 | - 'vi' => esc_html__('Vietnamese', 'event_espresso'), |
|
302 | - ), |
|
303 | - array( |
|
304 | - 'html_label_text' => esc_html__('Language', 'event_espresso'), |
|
305 | - 'html_help_text' => esc_html__( |
|
306 | - 'Forces the widget to render in a specific language.', |
|
307 | - 'event_espresso' |
|
308 | - ), |
|
309 | - 'default' => $this->config->recaptcha_language !== null |
|
310 | - ? $this->config->recaptcha_language : 'en', |
|
311 | - ) |
|
312 | - ), |
|
313 | - ) |
|
314 | - ), |
|
315 | - ) |
|
316 | - ); |
|
317 | - } |
|
183 | + /** |
|
184 | + * @return EE_Form_Section_Proper |
|
185 | + * @throws EE_Error |
|
186 | + */ |
|
187 | + protected function appearanceSettings() |
|
188 | + { |
|
189 | + return new EE_Form_Section_Proper( |
|
190 | + array( |
|
191 | + 'name' => 'recaptcha_appearance_settings_tbl', |
|
192 | + 'html_id' => 'recaptcha_appearance_settings_tbl', |
|
193 | + 'html_class' => 'form-table', |
|
194 | + 'layout_strategy' => new EE_Admin_Two_Column_Layout(), |
|
195 | + 'subsections' => apply_filters( |
|
196 | + 'FHEE__EED_Recaptcha___recaptcha_appearance_settings__form_subsections', |
|
197 | + array( |
|
198 | + 'recaptcha_theme' => new EE_Radio_Button_Input( |
|
199 | + array( |
|
200 | + 'invisible' => esc_html__('Invisible', 'event_espresso'), |
|
201 | + 'light' => esc_html__('Light', 'event_espresso'), |
|
202 | + 'dark' => esc_html__('Dark', 'event_espresso'), |
|
203 | + ), |
|
204 | + array( |
|
205 | + 'html_label_text' => esc_html__('Theme', 'event_espresso'), |
|
206 | + 'html_help_text' => esc_html__( |
|
207 | + 'The color theme of the widget.', |
|
208 | + 'event_espresso' |
|
209 | + ), |
|
210 | + 'default' => $this->config->recaptcha_theme !== null |
|
211 | + ? $this->config->recaptcha_theme |
|
212 | + : 'invisible', |
|
213 | + 'display_html_label_text' => false, |
|
214 | + ) |
|
215 | + ), |
|
216 | + 'recaptcha_badge' => new EE_Radio_Button_Input( |
|
217 | + array( |
|
218 | + 'bottomleft' => esc_html__('Bottom Left', 'event_espresso'), |
|
219 | + 'bottomright' => esc_html__('Bottom Right', 'event_espresso'), |
|
220 | + 'inline' => esc_html__('Inline', 'event_espresso'), |
|
221 | + ), |
|
222 | + array( |
|
223 | + 'html_label_text' => esc_html__( |
|
224 | + 'Invisible reCAPTCHA Badge Position', |
|
225 | + 'event_espresso' |
|
226 | + ), |
|
227 | + 'html_help_text' => esc_html__( |
|
228 | + 'If using Invisible reCAPTCHA, then this determines the position of the reCAPTCHA badge. "Bottom Left" and "Bottom Right" both will float at the bottom of the screen. "Inline" appears beside the submit button but allows you to control the CSS.', |
|
229 | + 'event_espresso' |
|
230 | + ), |
|
231 | + 'default' => $this->config->recaptcha_badge !== null |
|
232 | + ? $this->config->recaptcha_badge |
|
233 | + : 'bottomleft', |
|
234 | + 'display_html_label_text' => false, |
|
235 | + ) |
|
236 | + ), |
|
237 | + 'recaptcha_type' => new EE_Radio_Button_Input( |
|
238 | + array( |
|
239 | + 'image' => esc_html__('Image', 'event_espresso'), |
|
240 | + 'audio' => esc_html__('Audio', 'event_espresso'), |
|
241 | + ), |
|
242 | + array( |
|
243 | + 'html_label_text' => esc_html__('Type', 'event_espresso'), |
|
244 | + 'html_help_text' => esc_html__( |
|
245 | + 'The type of CAPTCHA to serve.', |
|
246 | + 'event_espresso' |
|
247 | + ), |
|
248 | + 'default' => $this->config->recaptcha_type !== null |
|
249 | + ? $this->config->recaptcha_type |
|
250 | + : 'image', |
|
251 | + 'display_html_label_text' => false, |
|
252 | + ) |
|
253 | + ), |
|
254 | + 'recaptcha_language' => new EE_Select_Input( |
|
255 | + array( |
|
256 | + 'ar' => esc_html__('Arabic', 'event_espresso'), |
|
257 | + 'bg' => esc_html__('Bulgarian', 'event_espresso'), |
|
258 | + 'ca' => esc_html__('Catalan', 'event_espresso'), |
|
259 | + 'zh-CN' => esc_html__('Chinese (Simplified)', 'event_espresso'), |
|
260 | + 'zh-TW' => esc_html__('Chinese (Traditional) ', 'event_espresso'), |
|
261 | + 'hr' => esc_html__('Croatian', 'event_espresso'), |
|
262 | + 'cs' => esc_html__('Czech', 'event_espresso'), |
|
263 | + 'da' => esc_html__('Danish', 'event_espresso'), |
|
264 | + 'nl' => esc_html__('Dutch', 'event_espresso'), |
|
265 | + 'en-GB' => esc_html__('English (UK)', 'event_espresso'), |
|
266 | + 'en' => esc_html__('English (US)', 'event_espresso'), |
|
267 | + 'fil' => esc_html__('Filipino', 'event_espresso'), |
|
268 | + 'fi' => esc_html__('Finnish', 'event_espresso'), |
|
269 | + 'fr' => esc_html__('French', 'event_espresso'), |
|
270 | + 'fr-CA' => esc_html__('French (Canadian)', 'event_espresso'), |
|
271 | + 'de' => esc_html__('German', 'event_espresso'), |
|
272 | + 'de-AT' => esc_html__('German (Austria)', 'event_espresso'), |
|
273 | + 'de-CH' => esc_html__('German (Switzerland)', 'event_espresso'), |
|
274 | + 'el' => esc_html__('Greek', 'event_espresso'), |
|
275 | + 'iw' => esc_html__('Hebrew', 'event_espresso'), |
|
276 | + 'hi' => esc_html__('Hindi', 'event_espresso'), |
|
277 | + 'hu' => esc_html__('Hungarian', 'event_espresso'), |
|
278 | + 'id' => esc_html__('Indonesian', 'event_espresso'), |
|
279 | + 'it' => esc_html__('Italian', 'event_espresso'), |
|
280 | + 'ja' => esc_html__('Japanese', 'event_espresso'), |
|
281 | + 'ko' => esc_html__('Korean', 'event_espresso'), |
|
282 | + 'lv' => esc_html__('Latvian', 'event_espresso'), |
|
283 | + 'lt' => esc_html__('Lithuanian', 'event_espresso'), |
|
284 | + 'no' => esc_html__('Norwegian', 'event_espresso'), |
|
285 | + 'fa' => esc_html__('Persian', 'event_espresso'), |
|
286 | + 'pl' => esc_html__('Polish', 'event_espresso'), |
|
287 | + 'pt' => esc_html__('Portuguese', 'event_espresso'), |
|
288 | + 'pt-BR' => esc_html__('Portuguese (Brazil)', 'event_espresso'), |
|
289 | + 'pt-PT' => esc_html__('Portuguese (Portugal)', 'event_espresso'), |
|
290 | + 'ro' => esc_html__('Romanian', 'event_espresso'), |
|
291 | + 'ru' => esc_html__('Russian', 'event_espresso'), |
|
292 | + 'sr' => esc_html__('Serbian', 'event_espresso'), |
|
293 | + 'sk' => esc_html__('Slovak', 'event_espresso'), |
|
294 | + 'sl' => esc_html__('Slovenian', 'event_espresso'), |
|
295 | + 'es' => esc_html__('Spanish', 'event_espresso'), |
|
296 | + 'es-419' => esc_html__('Spanish (Latin America)', 'event_espresso'), |
|
297 | + 'sv' => esc_html__('Swedish', 'event_espresso'), |
|
298 | + 'th' => esc_html__('Thai', 'event_espresso'), |
|
299 | + 'tr' => esc_html__('Turkish', 'event_espresso'), |
|
300 | + 'uk' => esc_html__('Ukrainian', 'event_espresso'), |
|
301 | + 'vi' => esc_html__('Vietnamese', 'event_espresso'), |
|
302 | + ), |
|
303 | + array( |
|
304 | + 'html_label_text' => esc_html__('Language', 'event_espresso'), |
|
305 | + 'html_help_text' => esc_html__( |
|
306 | + 'Forces the widget to render in a specific language.', |
|
307 | + 'event_espresso' |
|
308 | + ), |
|
309 | + 'default' => $this->config->recaptcha_language !== null |
|
310 | + ? $this->config->recaptcha_language : 'en', |
|
311 | + ) |
|
312 | + ), |
|
313 | + ) |
|
314 | + ), |
|
315 | + ) |
|
316 | + ); |
|
317 | + } |
|
318 | 318 | |
319 | 319 | |
320 | - /** |
|
321 | - * @param EE_Registration_Config $EE_Registration_Config |
|
322 | - * @return EE_Registration_Config |
|
323 | - * @throws InvalidArgumentException |
|
324 | - * @throws InvalidInterfaceException |
|
325 | - * @throws InvalidDataTypeException |
|
326 | - * @throws EE_Error |
|
327 | - * @throws ReflectionException |
|
328 | - */ |
|
329 | - public function updateAdminSettings(EE_Registration_Config $EE_Registration_Config) |
|
330 | - { |
|
331 | - try { |
|
332 | - $recaptcha_settings_form = $this->settingsForm(); |
|
333 | - // if not displaying a form, then check for form submission |
|
334 | - if ($recaptcha_settings_form->was_submitted()) { |
|
335 | - // capture form data |
|
336 | - $recaptcha_settings_form->receive_form_submission(); |
|
337 | - // validate form data |
|
338 | - if ($recaptcha_settings_form->is_valid()) { |
|
339 | - // grab validated data from form |
|
340 | - $valid_data = $recaptcha_settings_form->valid_data(); |
|
341 | - // user proofing recaptcha: If Use reCAPTCHA is set to yes but we dont' have site or secret keys then set Use reCAPTCHA to FALSE and give error message. |
|
342 | - if ($valid_data['main_settings']['use_captcha'] |
|
343 | - && ( |
|
344 | - ! $EE_Registration_Config->use_captcha |
|
345 | - && ( |
|
346 | - empty($valid_data['main_settings']['recaptcha_publickey']) |
|
347 | - || empty($valid_data['main_settings']['recaptcha_privatekey']) |
|
348 | - ) |
|
349 | - ) |
|
350 | - && apply_filters( |
|
351 | - 'FHEE__Extend_Registration_Form_Admin_Page__check_for_recaptcha_keys', |
|
352 | - true, |
|
353 | - $EE_Registration_Config |
|
354 | - ) |
|
355 | - ) { |
|
356 | - $valid_data['main_settings']['use_captcha'] = false; |
|
357 | - EE_Error::add_error( |
|
358 | - esc_html__( |
|
359 | - 'The use reCAPTCHA setting has been reset to "no". In order to enable the reCAPTCHA service, you must enter a Site Key and Secret Key.', |
|
360 | - 'event_espresso' |
|
361 | - ), |
|
362 | - __FILE__, |
|
363 | - __FUNCTION__, |
|
364 | - __LINE__ |
|
365 | - ); |
|
366 | - } |
|
367 | - $EE_Registration_Config->use_captcha = $valid_data['main_settings']['use_captcha']; |
|
368 | - $EE_Registration_Config->recaptcha_publickey = $valid_data['main_settings']['recaptcha_publickey']; |
|
369 | - $EE_Registration_Config->recaptcha_protected_forms = $valid_data['main_settings']['recaptcha_protected_forms']; |
|
370 | - $EE_Registration_Config->recaptcha_privatekey = $valid_data['main_settings']['recaptcha_privatekey']; |
|
371 | - $EE_Registration_Config->recaptcha_type = $valid_data['appearance_settings']['recaptcha_type']; |
|
372 | - $EE_Registration_Config->recaptcha_theme = $valid_data['appearance_settings']['recaptcha_theme']; |
|
373 | - $EE_Registration_Config->recaptcha_badge = $valid_data['appearance_settings']['recaptcha_badge']; |
|
374 | - $EE_Registration_Config->recaptcha_language = $valid_data['appearance_settings']['recaptcha_language']; |
|
375 | - } else { |
|
376 | - if ($recaptcha_settings_form->submission_error_message() !== '') { |
|
377 | - EE_Error::add_error( |
|
378 | - $recaptcha_settings_form->submission_error_message(), |
|
379 | - __FILE__, |
|
380 | - __FUNCTION__, |
|
381 | - __LINE__ |
|
382 | - ); |
|
383 | - } |
|
384 | - } |
|
385 | - } |
|
386 | - } catch (EE_Error $e) { |
|
387 | - $e->get_error(); |
|
388 | - } |
|
389 | - return $EE_Registration_Config; |
|
390 | - } |
|
320 | + /** |
|
321 | + * @param EE_Registration_Config $EE_Registration_Config |
|
322 | + * @return EE_Registration_Config |
|
323 | + * @throws InvalidArgumentException |
|
324 | + * @throws InvalidInterfaceException |
|
325 | + * @throws InvalidDataTypeException |
|
326 | + * @throws EE_Error |
|
327 | + * @throws ReflectionException |
|
328 | + */ |
|
329 | + public function updateAdminSettings(EE_Registration_Config $EE_Registration_Config) |
|
330 | + { |
|
331 | + try { |
|
332 | + $recaptcha_settings_form = $this->settingsForm(); |
|
333 | + // if not displaying a form, then check for form submission |
|
334 | + if ($recaptcha_settings_form->was_submitted()) { |
|
335 | + // capture form data |
|
336 | + $recaptcha_settings_form->receive_form_submission(); |
|
337 | + // validate form data |
|
338 | + if ($recaptcha_settings_form->is_valid()) { |
|
339 | + // grab validated data from form |
|
340 | + $valid_data = $recaptcha_settings_form->valid_data(); |
|
341 | + // user proofing recaptcha: If Use reCAPTCHA is set to yes but we dont' have site or secret keys then set Use reCAPTCHA to FALSE and give error message. |
|
342 | + if ($valid_data['main_settings']['use_captcha'] |
|
343 | + && ( |
|
344 | + ! $EE_Registration_Config->use_captcha |
|
345 | + && ( |
|
346 | + empty($valid_data['main_settings']['recaptcha_publickey']) |
|
347 | + || empty($valid_data['main_settings']['recaptcha_privatekey']) |
|
348 | + ) |
|
349 | + ) |
|
350 | + && apply_filters( |
|
351 | + 'FHEE__Extend_Registration_Form_Admin_Page__check_for_recaptcha_keys', |
|
352 | + true, |
|
353 | + $EE_Registration_Config |
|
354 | + ) |
|
355 | + ) { |
|
356 | + $valid_data['main_settings']['use_captcha'] = false; |
|
357 | + EE_Error::add_error( |
|
358 | + esc_html__( |
|
359 | + 'The use reCAPTCHA setting has been reset to "no". In order to enable the reCAPTCHA service, you must enter a Site Key and Secret Key.', |
|
360 | + 'event_espresso' |
|
361 | + ), |
|
362 | + __FILE__, |
|
363 | + __FUNCTION__, |
|
364 | + __LINE__ |
|
365 | + ); |
|
366 | + } |
|
367 | + $EE_Registration_Config->use_captcha = $valid_data['main_settings']['use_captcha']; |
|
368 | + $EE_Registration_Config->recaptcha_publickey = $valid_data['main_settings']['recaptcha_publickey']; |
|
369 | + $EE_Registration_Config->recaptcha_protected_forms = $valid_data['main_settings']['recaptcha_protected_forms']; |
|
370 | + $EE_Registration_Config->recaptcha_privatekey = $valid_data['main_settings']['recaptcha_privatekey']; |
|
371 | + $EE_Registration_Config->recaptcha_type = $valid_data['appearance_settings']['recaptcha_type']; |
|
372 | + $EE_Registration_Config->recaptcha_theme = $valid_data['appearance_settings']['recaptcha_theme']; |
|
373 | + $EE_Registration_Config->recaptcha_badge = $valid_data['appearance_settings']['recaptcha_badge']; |
|
374 | + $EE_Registration_Config->recaptcha_language = $valid_data['appearance_settings']['recaptcha_language']; |
|
375 | + } else { |
|
376 | + if ($recaptcha_settings_form->submission_error_message() !== '') { |
|
377 | + EE_Error::add_error( |
|
378 | + $recaptcha_settings_form->submission_error_message(), |
|
379 | + __FILE__, |
|
380 | + __FUNCTION__, |
|
381 | + __LINE__ |
|
382 | + ); |
|
383 | + } |
|
384 | + } |
|
385 | + } |
|
386 | + } catch (EE_Error $e) { |
|
387 | + $e->get_error(); |
|
388 | + } |
|
389 | + return $EE_Registration_Config; |
|
390 | + } |
|
391 | 391 | } |
@@ -6,33 +6,33 @@ |
||
6 | 6 | */ |
7 | 7 | |
8 | 8 | spl_autoload_register(function ($class) { |
9 | - if (substr($class, 0, 10) !== 'ReCaptcha\\') { |
|
10 | - /* If the class does not lie under the "ReCaptcha" namespace, |
|
9 | + if (substr($class, 0, 10) !== 'ReCaptcha\\') { |
|
10 | + /* If the class does not lie under the "ReCaptcha" namespace, |
|
11 | 11 | * then we can exit immediately. |
12 | 12 | */ |
13 | - return; |
|
14 | - } |
|
13 | + return; |
|
14 | + } |
|
15 | 15 | |
16 | - /* All of the classes have names like "ReCaptcha\Foo", so we need |
|
16 | + /* All of the classes have names like "ReCaptcha\Foo", so we need |
|
17 | 17 | * to replace the backslashes with frontslashes if we want the |
18 | 18 | * name to map directly to a location in the filesystem. |
19 | 19 | */ |
20 | - $class = str_replace('\\', '/', $class); |
|
20 | + $class = str_replace('\\', '/', $class); |
|
21 | 21 | |
22 | - /* First, check under the current directory. It is important that |
|
22 | + /* First, check under the current directory. It is important that |
|
23 | 23 | * we look here first, so that we don't waste time searching for |
24 | 24 | * test classes in the common case. |
25 | 25 | */ |
26 | - $path = dirname(__FILE__).'/'.$class.'.php'; |
|
27 | - if (is_readable($path)) { |
|
28 | - require_once $path; |
|
29 | - } |
|
26 | + $path = dirname(__FILE__).'/'.$class.'.php'; |
|
27 | + if (is_readable($path)) { |
|
28 | + require_once $path; |
|
29 | + } |
|
30 | 30 | |
31 | - /* If we didn't find what we're looking for already, maybe it's |
|
31 | + /* If we didn't find what we're looking for already, maybe it's |
|
32 | 32 | * a test class? |
33 | 33 | */ |
34 | - $path = dirname(__FILE__).'/../tests/'.$class.'.php'; |
|
35 | - if (is_readable($path)) { |
|
36 | - require_once $path; |
|
37 | - } |
|
34 | + $path = dirname(__FILE__).'/../tests/'.$class.'.php'; |
|
35 | + if (is_readable($path)) { |
|
36 | + require_once $path; |
|
37 | + } |
|
38 | 38 | }); |
@@ -5,7 +5,7 @@ |
||
5 | 5 | * classes. |
6 | 6 | */ |
7 | 7 | |
8 | -spl_autoload_register(function ($class) { |
|
8 | +spl_autoload_register(function($class) { |
|
9 | 9 | if (substr($class, 0, 10) !== 'ReCaptcha\\') { |
10 | 10 | /* If the class does not lie under the "ReCaptcha" namespace, |
11 | 11 | * then we can exit immediately. |
@@ -33,87 +33,87 @@ |
||
33 | 33 | */ |
34 | 34 | class SocketPost implements RequestMethod |
35 | 35 | { |
36 | - /** |
|
37 | - * reCAPTCHA service host. |
|
38 | - * |
|
39 | - * @const string |
|
40 | - */ |
|
41 | - const RECAPTCHA_HOST = 'www.google.com'; |
|
42 | - |
|
43 | - /** |
|
44 | - * @const string reCAPTCHA service path |
|
45 | - */ |
|
46 | - const SITE_VERIFY_PATH = '/recaptcha/api/siteverify'; |
|
47 | - |
|
48 | - /** |
|
49 | - * @const string Bad request error |
|
50 | - */ |
|
51 | - const BAD_REQUEST = '{"success": false, "error-codes": ["invalid-request"]}'; |
|
52 | - |
|
53 | - /** |
|
54 | - * @const string Bad response error |
|
55 | - */ |
|
56 | - const BAD_RESPONSE = '{"success": false, "error-codes": ["invalid-response"]}'; |
|
57 | - |
|
58 | - /** |
|
59 | - * Socket to the reCAPTCHA service |
|
60 | - * |
|
61 | - * @var Socket |
|
62 | - */ |
|
63 | - private $socket; |
|
64 | - |
|
65 | - /** |
|
66 | - * Constructor |
|
67 | - * |
|
68 | - * @param \ReCaptcha\RequestMethod\Socket $socket optional socket, injectable for testing |
|
69 | - */ |
|
70 | - public function __construct(Socket $socket = null) |
|
71 | - { |
|
72 | - if (! is_null($socket)) { |
|
73 | - $this->socket = $socket; |
|
74 | - } else { |
|
75 | - $this->socket = new Socket(); |
|
76 | - } |
|
77 | - } |
|
78 | - |
|
79 | - /** |
|
80 | - * Submit the POST request with the specified parameters. |
|
81 | - * |
|
82 | - * @param RequestParameters $params Request parameters |
|
83 | - * @return string Body of the reCAPTCHA response |
|
84 | - */ |
|
85 | - public function submit(RequestParameters $params) |
|
86 | - { |
|
87 | - $errno = 0; |
|
88 | - $errstr = ''; |
|
89 | - |
|
90 | - if ($this->socket->fsockopen('ssl://' . self::RECAPTCHA_HOST, 443, $errno, $errstr, 30) !== false) { |
|
91 | - $content = $params->toQueryString(); |
|
92 | - |
|
93 | - $request = "POST " . self::SITE_VERIFY_PATH . " HTTP/1.1\r\n"; |
|
94 | - $request .= "Host: " . self::RECAPTCHA_HOST . "\r\n"; |
|
95 | - $request .= "Content-Type: application/x-www-form-urlencoded\r\n"; |
|
96 | - $request .= "Content-length: " . strlen($content) . "\r\n"; |
|
97 | - $request .= "Connection: close\r\n\r\n"; |
|
98 | - $request .= $content . "\r\n\r\n"; |
|
99 | - |
|
100 | - $this->socket->fwrite($request); |
|
101 | - $response = ''; |
|
102 | - |
|
103 | - while (! $this->socket->feof()) { |
|
104 | - $response .= $this->socket->fgets(4096); |
|
105 | - } |
|
106 | - |
|
107 | - $this->socket->fclose(); |
|
108 | - |
|
109 | - if (0 === strpos($response, 'HTTP/1.1 200 OK')) { |
|
110 | - $parts = preg_split("#\n\s*\n#Uis", $response); |
|
111 | - return $parts[1]; |
|
112 | - } |
|
113 | - |
|
114 | - return self::BAD_RESPONSE; |
|
115 | - } |
|
116 | - |
|
117 | - return self::BAD_REQUEST; |
|
118 | - } |
|
36 | + /** |
|
37 | + * reCAPTCHA service host. |
|
38 | + * |
|
39 | + * @const string |
|
40 | + */ |
|
41 | + const RECAPTCHA_HOST = 'www.google.com'; |
|
42 | + |
|
43 | + /** |
|
44 | + * @const string reCAPTCHA service path |
|
45 | + */ |
|
46 | + const SITE_VERIFY_PATH = '/recaptcha/api/siteverify'; |
|
47 | + |
|
48 | + /** |
|
49 | + * @const string Bad request error |
|
50 | + */ |
|
51 | + const BAD_REQUEST = '{"success": false, "error-codes": ["invalid-request"]}'; |
|
52 | + |
|
53 | + /** |
|
54 | + * @const string Bad response error |
|
55 | + */ |
|
56 | + const BAD_RESPONSE = '{"success": false, "error-codes": ["invalid-response"]}'; |
|
57 | + |
|
58 | + /** |
|
59 | + * Socket to the reCAPTCHA service |
|
60 | + * |
|
61 | + * @var Socket |
|
62 | + */ |
|
63 | + private $socket; |
|
64 | + |
|
65 | + /** |
|
66 | + * Constructor |
|
67 | + * |
|
68 | + * @param \ReCaptcha\RequestMethod\Socket $socket optional socket, injectable for testing |
|
69 | + */ |
|
70 | + public function __construct(Socket $socket = null) |
|
71 | + { |
|
72 | + if (! is_null($socket)) { |
|
73 | + $this->socket = $socket; |
|
74 | + } else { |
|
75 | + $this->socket = new Socket(); |
|
76 | + } |
|
77 | + } |
|
78 | + |
|
79 | + /** |
|
80 | + * Submit the POST request with the specified parameters. |
|
81 | + * |
|
82 | + * @param RequestParameters $params Request parameters |
|
83 | + * @return string Body of the reCAPTCHA response |
|
84 | + */ |
|
85 | + public function submit(RequestParameters $params) |
|
86 | + { |
|
87 | + $errno = 0; |
|
88 | + $errstr = ''; |
|
89 | + |
|
90 | + if ($this->socket->fsockopen('ssl://' . self::RECAPTCHA_HOST, 443, $errno, $errstr, 30) !== false) { |
|
91 | + $content = $params->toQueryString(); |
|
92 | + |
|
93 | + $request = "POST " . self::SITE_VERIFY_PATH . " HTTP/1.1\r\n"; |
|
94 | + $request .= "Host: " . self::RECAPTCHA_HOST . "\r\n"; |
|
95 | + $request .= "Content-Type: application/x-www-form-urlencoded\r\n"; |
|
96 | + $request .= "Content-length: " . strlen($content) . "\r\n"; |
|
97 | + $request .= "Connection: close\r\n\r\n"; |
|
98 | + $request .= $content . "\r\n\r\n"; |
|
99 | + |
|
100 | + $this->socket->fwrite($request); |
|
101 | + $response = ''; |
|
102 | + |
|
103 | + while (! $this->socket->feof()) { |
|
104 | + $response .= $this->socket->fgets(4096); |
|
105 | + } |
|
106 | + |
|
107 | + $this->socket->fclose(); |
|
108 | + |
|
109 | + if (0 === strpos($response, 'HTTP/1.1 200 OK')) { |
|
110 | + $parts = preg_split("#\n\s*\n#Uis", $response); |
|
111 | + return $parts[1]; |
|
112 | + } |
|
113 | + |
|
114 | + return self::BAD_RESPONSE; |
|
115 | + } |
|
116 | + |
|
117 | + return self::BAD_REQUEST; |
|
118 | + } |
|
119 | 119 | } |
@@ -69,7 +69,7 @@ discard block |
||
69 | 69 | */ |
70 | 70 | public function __construct(Socket $socket = null) |
71 | 71 | { |
72 | - if (! is_null($socket)) { |
|
72 | + if ( ! is_null($socket)) { |
|
73 | 73 | $this->socket = $socket; |
74 | 74 | } else { |
75 | 75 | $this->socket = new Socket(); |
@@ -87,20 +87,20 @@ discard block |
||
87 | 87 | $errno = 0; |
88 | 88 | $errstr = ''; |
89 | 89 | |
90 | - if ($this->socket->fsockopen('ssl://' . self::RECAPTCHA_HOST, 443, $errno, $errstr, 30) !== false) { |
|
90 | + if ($this->socket->fsockopen('ssl://'.self::RECAPTCHA_HOST, 443, $errno, $errstr, 30) !== false) { |
|
91 | 91 | $content = $params->toQueryString(); |
92 | 92 | |
93 | - $request = "POST " . self::SITE_VERIFY_PATH . " HTTP/1.1\r\n"; |
|
94 | - $request .= "Host: " . self::RECAPTCHA_HOST . "\r\n"; |
|
93 | + $request = "POST ".self::SITE_VERIFY_PATH." HTTP/1.1\r\n"; |
|
94 | + $request .= "Host: ".self::RECAPTCHA_HOST."\r\n"; |
|
95 | 95 | $request .= "Content-Type: application/x-www-form-urlencoded\r\n"; |
96 | - $request .= "Content-length: " . strlen($content) . "\r\n"; |
|
96 | + $request .= "Content-length: ".strlen($content)."\r\n"; |
|
97 | 97 | $request .= "Connection: close\r\n\r\n"; |
98 | - $request .= $content . "\r\n\r\n"; |
|
98 | + $request .= $content."\r\n\r\n"; |
|
99 | 99 | |
100 | 100 | $this->socket->fwrite($request); |
101 | 101 | $response = ''; |
102 | 102 | |
103 | - while (! $this->socket->feof()) { |
|
103 | + while ( ! $this->socket->feof()) { |
|
104 | 104 | $response .= $this->socket->fgets(4096); |
105 | 105 | } |
106 | 106 |
@@ -29,79 +29,79 @@ |
||
29 | 29 | */ |
30 | 30 | class Socket |
31 | 31 | { |
32 | - private $handle = null; |
|
32 | + private $handle = null; |
|
33 | 33 | |
34 | - /** |
|
35 | - * fsockopen |
|
36 | - * |
|
37 | - * @see http://php.net/fsockopen |
|
38 | - * @param string $hostname |
|
39 | - * @param int $port |
|
40 | - * @param int $errno |
|
41 | - * @param string $errstr |
|
42 | - * @param float $timeout |
|
43 | - * @return resource |
|
44 | - */ |
|
45 | - public function fsockopen($hostname, $port = -1, &$errno = 0, &$errstr = '', $timeout = null) |
|
46 | - { |
|
47 | - $this->handle = fsockopen( |
|
48 | - $hostname, |
|
49 | - $port, |
|
50 | - $errno, |
|
51 | - $errstr, |
|
52 | - (is_null($timeout) ? ini_get("default_socket_timeout") : $timeout) |
|
53 | - ); |
|
34 | + /** |
|
35 | + * fsockopen |
|
36 | + * |
|
37 | + * @see http://php.net/fsockopen |
|
38 | + * @param string $hostname |
|
39 | + * @param int $port |
|
40 | + * @param int $errno |
|
41 | + * @param string $errstr |
|
42 | + * @param float $timeout |
|
43 | + * @return resource |
|
44 | + */ |
|
45 | + public function fsockopen($hostname, $port = -1, &$errno = 0, &$errstr = '', $timeout = null) |
|
46 | + { |
|
47 | + $this->handle = fsockopen( |
|
48 | + $hostname, |
|
49 | + $port, |
|
50 | + $errno, |
|
51 | + $errstr, |
|
52 | + (is_null($timeout) ? ini_get("default_socket_timeout") : $timeout) |
|
53 | + ); |
|
54 | 54 | |
55 | - if ($this->handle != false && $errno === 0 && $errstr === '') { |
|
56 | - return $this->handle; |
|
57 | - } else { |
|
58 | - return false; |
|
59 | - } |
|
60 | - } |
|
55 | + if ($this->handle != false && $errno === 0 && $errstr === '') { |
|
56 | + return $this->handle; |
|
57 | + } else { |
|
58 | + return false; |
|
59 | + } |
|
60 | + } |
|
61 | 61 | |
62 | - /** |
|
63 | - * fwrite |
|
64 | - * |
|
65 | - * @see http://php.net/fwrite |
|
66 | - * @param string $string |
|
67 | - * @param int $length |
|
68 | - * @return int | bool |
|
69 | - */ |
|
70 | - public function fwrite($string, $length = null) |
|
71 | - { |
|
72 | - return fwrite($this->handle, $string, (is_null($length) ? strlen($string) : $length)); |
|
73 | - } |
|
62 | + /** |
|
63 | + * fwrite |
|
64 | + * |
|
65 | + * @see http://php.net/fwrite |
|
66 | + * @param string $string |
|
67 | + * @param int $length |
|
68 | + * @return int | bool |
|
69 | + */ |
|
70 | + public function fwrite($string, $length = null) |
|
71 | + { |
|
72 | + return fwrite($this->handle, $string, (is_null($length) ? strlen($string) : $length)); |
|
73 | + } |
|
74 | 74 | |
75 | - /** |
|
76 | - * fgets |
|
77 | - * |
|
78 | - * @see http://php.net/fgets |
|
79 | - * @param int $length |
|
80 | - */ |
|
81 | - public function fgets($length = null) |
|
82 | - { |
|
83 | - return fgets($this->handle, $length); |
|
84 | - } |
|
75 | + /** |
|
76 | + * fgets |
|
77 | + * |
|
78 | + * @see http://php.net/fgets |
|
79 | + * @param int $length |
|
80 | + */ |
|
81 | + public function fgets($length = null) |
|
82 | + { |
|
83 | + return fgets($this->handle, $length); |
|
84 | + } |
|
85 | 85 | |
86 | - /** |
|
87 | - * feof |
|
88 | - * |
|
89 | - * @see http://php.net/feof |
|
90 | - * @return bool |
|
91 | - */ |
|
92 | - public function feof() |
|
93 | - { |
|
94 | - return feof($this->handle); |
|
95 | - } |
|
86 | + /** |
|
87 | + * feof |
|
88 | + * |
|
89 | + * @see http://php.net/feof |
|
90 | + * @return bool |
|
91 | + */ |
|
92 | + public function feof() |
|
93 | + { |
|
94 | + return feof($this->handle); |
|
95 | + } |
|
96 | 96 | |
97 | - /** |
|
98 | - * fclose |
|
99 | - * |
|
100 | - * @see http://php.net/fclose |
|
101 | - * @return bool |
|
102 | - */ |
|
103 | - public function fclose() |
|
104 | - { |
|
105 | - return fclose($this->handle); |
|
106 | - } |
|
97 | + /** |
|
98 | + * fclose |
|
99 | + * |
|
100 | + * @see http://php.net/fclose |
|
101 | + * @return bool |
|
102 | + */ |
|
103 | + public function fclose() |
|
104 | + { |
|
105 | + return fclose($this->handle); |
|
106 | + } |
|
107 | 107 | } |
@@ -17,98 +17,98 @@ |
||
17 | 17 | class CheckinStatusDashicon |
18 | 18 | { |
19 | 19 | |
20 | - /** |
|
21 | - * @var int $checkin_status |
|
22 | - */ |
|
23 | - private $checkin_status; |
|
20 | + /** |
|
21 | + * @var int $checkin_status |
|
22 | + */ |
|
23 | + private $checkin_status; |
|
24 | 24 | |
25 | 25 | |
26 | - /** |
|
27 | - * CheckinStatusDashicon constructor. |
|
28 | - * |
|
29 | - * @param int $checkin_status |
|
30 | - */ |
|
31 | - public function __construct($checkin_status = EE_Checkin::status_checked_never) |
|
32 | - { |
|
33 | - $this->checkin_status = $checkin_status; |
|
34 | - } |
|
26 | + /** |
|
27 | + * CheckinStatusDashicon constructor. |
|
28 | + * |
|
29 | + * @param int $checkin_status |
|
30 | + */ |
|
31 | + public function __construct($checkin_status = EE_Checkin::status_checked_never) |
|
32 | + { |
|
33 | + $this->checkin_status = $checkin_status; |
|
34 | + } |
|
35 | 35 | |
36 | 36 | |
37 | - /** |
|
38 | - * @param EE_Checkin $checkin |
|
39 | - * @return CheckinStatusDashicon |
|
40 | - * @throws EE_Error |
|
41 | - */ |
|
42 | - public static function fromCheckin(EE_Checkin $checkin) |
|
43 | - { |
|
44 | - return new CheckinStatusDashicon( |
|
45 | - $checkin->status() |
|
46 | - ? EE_Checkin::status_checked_in |
|
47 | - : EE_Checkin::status_checked_out |
|
48 | - ); |
|
49 | - } |
|
37 | + /** |
|
38 | + * @param EE_Checkin $checkin |
|
39 | + * @return CheckinStatusDashicon |
|
40 | + * @throws EE_Error |
|
41 | + */ |
|
42 | + public static function fromCheckin(EE_Checkin $checkin) |
|
43 | + { |
|
44 | + return new CheckinStatusDashicon( |
|
45 | + $checkin->status() |
|
46 | + ? EE_Checkin::status_checked_in |
|
47 | + : EE_Checkin::status_checked_out |
|
48 | + ); |
|
49 | + } |
|
50 | 50 | |
51 | 51 | |
52 | - /** |
|
53 | - * @param EE_Registration $registration |
|
54 | - * @param EE_Datetime $datetime |
|
55 | - * @return CheckinStatusDashicon |
|
56 | - * @throws EE_Error |
|
57 | - */ |
|
58 | - public static function fromRegistrationAndDatetime(EE_Registration $registration, EE_Datetime $datetime) |
|
59 | - { |
|
60 | - return new CheckinStatusDashicon( |
|
61 | - $registration->check_in_status_for_datetime( |
|
62 | - $datetime->ID() |
|
63 | - ) |
|
64 | - ); |
|
65 | - } |
|
52 | + /** |
|
53 | + * @param EE_Registration $registration |
|
54 | + * @param EE_Datetime $datetime |
|
55 | + * @return CheckinStatusDashicon |
|
56 | + * @throws EE_Error |
|
57 | + */ |
|
58 | + public static function fromRegistrationAndDatetime(EE_Registration $registration, EE_Datetime $datetime) |
|
59 | + { |
|
60 | + return new CheckinStatusDashicon( |
|
61 | + $registration->check_in_status_for_datetime( |
|
62 | + $datetime->ID() |
|
63 | + ) |
|
64 | + ); |
|
65 | + } |
|
66 | 66 | |
67 | 67 | |
68 | - /** |
|
69 | - * @param EE_Registration $registration |
|
70 | - * @param int $DTT_ID |
|
71 | - * @return CheckinStatusDashicon |
|
72 | - * @throws EE_Error |
|
73 | - */ |
|
74 | - public static function fromRegistrationAndDatetimeId(EE_Registration $registration, $DTT_ID = 0) |
|
75 | - { |
|
76 | - return new CheckinStatusDashicon( |
|
77 | - $registration->check_in_status_for_datetime( |
|
78 | - absint($DTT_ID) |
|
79 | - ) |
|
80 | - ); |
|
81 | - } |
|
68 | + /** |
|
69 | + * @param EE_Registration $registration |
|
70 | + * @param int $DTT_ID |
|
71 | + * @return CheckinStatusDashicon |
|
72 | + * @throws EE_Error |
|
73 | + */ |
|
74 | + public static function fromRegistrationAndDatetimeId(EE_Registration $registration, $DTT_ID = 0) |
|
75 | + { |
|
76 | + return new CheckinStatusDashicon( |
|
77 | + $registration->check_in_status_for_datetime( |
|
78 | + absint($DTT_ID) |
|
79 | + ) |
|
80 | + ); |
|
81 | + } |
|
82 | 82 | |
83 | - /** |
|
84 | - * Will return the correct set of dashicon css classes for the set checkin status |
|
85 | - * |
|
86 | - * @return string |
|
87 | - */ |
|
88 | - public function cssClasses() |
|
89 | - { |
|
90 | - if ($this->checkin_status === EE_Checkin::status_checked_in) { |
|
91 | - return "ee-dashicons ee-icon-check-in checkin-icons checkedin-status-{$this->checkin_status}"; |
|
92 | - } |
|
93 | - if ($this->checkin_status === EE_Checkin::status_checked_out) { |
|
94 | - return "ee-dashicons ee-icon-check-out checkin-icons checkedin-status-{$this->checkin_status}"; |
|
95 | - } |
|
96 | - return "dashicons dashicons-no checkin-icons checkedin-status-{$this->checkin_status}"; |
|
97 | - } |
|
83 | + /** |
|
84 | + * Will return the correct set of dashicon css classes for the set checkin status |
|
85 | + * |
|
86 | + * @return string |
|
87 | + */ |
|
88 | + public function cssClasses() |
|
89 | + { |
|
90 | + if ($this->checkin_status === EE_Checkin::status_checked_in) { |
|
91 | + return "ee-dashicons ee-icon-check-in checkin-icons checkedin-status-{$this->checkin_status}"; |
|
92 | + } |
|
93 | + if ($this->checkin_status === EE_Checkin::status_checked_out) { |
|
94 | + return "ee-dashicons ee-icon-check-out checkin-icons checkedin-status-{$this->checkin_status}"; |
|
95 | + } |
|
96 | + return "dashicons dashicons-no checkin-icons checkedin-status-{$this->checkin_status}"; |
|
97 | + } |
|
98 | 98 | |
99 | - /** |
|
100 | - * returns a description for the Checkin Status Dashicon that can be used in List Table Legends |
|
101 | - * |
|
102 | - * @return string |
|
103 | - */ |
|
104 | - public function legendLabel() |
|
105 | - { |
|
106 | - if ($this->checkin_status === EE_Checkin::status_checked_in) { |
|
107 | - return esc_html__('This Registrant has been Checked In', 'event_espresso'); |
|
108 | - } |
|
109 | - if ($this->checkin_status === EE_Checkin::status_checked_out) { |
|
110 | - return esc_html__('This Registrant has been Checked Out', 'event_espresso'); |
|
111 | - } |
|
112 | - return esc_html__('No Check-in Record has been Created for this Registrant', 'event_espresso'); |
|
113 | - } |
|
99 | + /** |
|
100 | + * returns a description for the Checkin Status Dashicon that can be used in List Table Legends |
|
101 | + * |
|
102 | + * @return string |
|
103 | + */ |
|
104 | + public function legendLabel() |
|
105 | + { |
|
106 | + if ($this->checkin_status === EE_Checkin::status_checked_in) { |
|
107 | + return esc_html__('This Registrant has been Checked In', 'event_espresso'); |
|
108 | + } |
|
109 | + if ($this->checkin_status === EE_Checkin::status_checked_out) { |
|
110 | + return esc_html__('This Registrant has been Checked Out', 'event_espresso'); |
|
111 | + } |
|
112 | + return esc_html__('No Check-in Record has been Created for this Registrant', 'event_espresso'); |
|
113 | + } |
|
114 | 114 | } |
@@ -15,27 +15,27 @@ |
||
15 | 15 | { |
16 | 16 | |
17 | 17 | |
18 | - /** |
|
19 | - * EntityNotFoundException constructor |
|
20 | - * |
|
21 | - * @param string $identifier_type the name of the identifier used (ie: ID, Name, etc) |
|
22 | - * @param string $identifier the actual data value used to retrieve the entity |
|
23 | - * @param string $message |
|
24 | - * @param int $code |
|
25 | - * @param \Exception $previous |
|
26 | - */ |
|
27 | - public function __construct($identifier_type, $identifier, $message = '', $code = 0, \Exception $previous = null) |
|
28 | - { |
|
29 | - if (empty($message)) { |
|
30 | - $message = sprintf( |
|
31 | - __( |
|
32 | - 'The requested entity with %1$s="%2$s" was not found.', |
|
33 | - 'event_espresso' |
|
34 | - ), |
|
35 | - $identifier_type, |
|
36 | - $identifier |
|
37 | - ); |
|
38 | - } |
|
39 | - parent::__construct($message, $code, $previous); |
|
40 | - } |
|
18 | + /** |
|
19 | + * EntityNotFoundException constructor |
|
20 | + * |
|
21 | + * @param string $identifier_type the name of the identifier used (ie: ID, Name, etc) |
|
22 | + * @param string $identifier the actual data value used to retrieve the entity |
|
23 | + * @param string $message |
|
24 | + * @param int $code |
|
25 | + * @param \Exception $previous |
|
26 | + */ |
|
27 | + public function __construct($identifier_type, $identifier, $message = '', $code = 0, \Exception $previous = null) |
|
28 | + { |
|
29 | + if (empty($message)) { |
|
30 | + $message = sprintf( |
|
31 | + __( |
|
32 | + 'The requested entity with %1$s="%2$s" was not found.', |
|
33 | + 'event_espresso' |
|
34 | + ), |
|
35 | + $identifier_type, |
|
36 | + $identifier |
|
37 | + ); |
|
38 | + } |
|
39 | + parent::__construct($message, $code, $previous); |
|
40 | + } |
|
41 | 41 | } |
@@ -13,25 +13,25 @@ |
||
13 | 13 | { |
14 | 14 | |
15 | 15 | |
16 | - /** |
|
17 | - * InvalidFormSubmissionException constructor |
|
18 | - * |
|
19 | - * @param string $form_name |
|
20 | - * @param string $message |
|
21 | - * @param int $code |
|
22 | - * @param \Exception $previous |
|
23 | - */ |
|
24 | - public function __construct($form_name, $message = '', $code = 0, \Exception $previous = null) |
|
25 | - { |
|
26 | - if (empty($message)) { |
|
27 | - $message = sprintf( |
|
28 | - __( |
|
29 | - 'The data for the "%1$s" form, is either missing or was not submitted properly.', |
|
30 | - 'event_espresso' |
|
31 | - ), |
|
32 | - $form_name |
|
33 | - ); |
|
34 | - } |
|
35 | - parent::__construct($message, $code, $previous); |
|
36 | - } |
|
16 | + /** |
|
17 | + * InvalidFormSubmissionException constructor |
|
18 | + * |
|
19 | + * @param string $form_name |
|
20 | + * @param string $message |
|
21 | + * @param int $code |
|
22 | + * @param \Exception $previous |
|
23 | + */ |
|
24 | + public function __construct($form_name, $message = '', $code = 0, \Exception $previous = null) |
|
25 | + { |
|
26 | + if (empty($message)) { |
|
27 | + $message = sprintf( |
|
28 | + __( |
|
29 | + 'The data for the "%1$s" form, is either missing or was not submitted properly.', |
|
30 | + 'event_espresso' |
|
31 | + ), |
|
32 | + $form_name |
|
33 | + ); |
|
34 | + } |
|
35 | + parent::__construct($message, $code, $previous); |
|
36 | + } |
|
37 | 37 | } |
@@ -15,22 +15,22 @@ |
||
15 | 15 | class InvalidClassException extends DomainException |
16 | 16 | { |
17 | 17 | |
18 | - /** |
|
19 | - * InvalidClassException constructor. |
|
20 | - * |
|
21 | - * @param string $class_name |
|
22 | - * @param string $message |
|
23 | - * @param int $code |
|
24 | - * @param \Exception $previous |
|
25 | - */ |
|
26 | - public function __construct($class_name, $message = '', $code = 0, \Exception $previous = null) |
|
27 | - { |
|
28 | - if (empty($message)) { |
|
29 | - $message = sprintf( |
|
30 | - __('The "%1$s" Class is either missing or invalid.', 'event_espresso'), |
|
31 | - $class_name |
|
32 | - ); |
|
33 | - } |
|
34 | - parent::__construct($message, $code, $previous); |
|
35 | - } |
|
18 | + /** |
|
19 | + * InvalidClassException constructor. |
|
20 | + * |
|
21 | + * @param string $class_name |
|
22 | + * @param string $message |
|
23 | + * @param int $code |
|
24 | + * @param \Exception $previous |
|
25 | + */ |
|
26 | + public function __construct($class_name, $message = '', $code = 0, \Exception $previous = null) |
|
27 | + { |
|
28 | + if (empty($message)) { |
|
29 | + $message = sprintf( |
|
30 | + __('The "%1$s" Class is either missing or invalid.', 'event_espresso'), |
|
31 | + $class_name |
|
32 | + ); |
|
33 | + } |
|
34 | + parent::__construct($message, $code, $previous); |
|
35 | + } |
|
36 | 36 | } |
@@ -15,66 +15,66 @@ |
||
15 | 15 | class IpnException extends \LogicException |
16 | 16 | { |
17 | 17 | |
18 | - const DUPLICATE = 1; |
|
18 | + const DUPLICATE = 1; |
|
19 | 19 | |
20 | - const UNABLE_TO_VALIDATE = 2; |
|
20 | + const UNABLE_TO_VALIDATE = 2; |
|
21 | 21 | |
22 | - const UNSUPPORTED = 3; |
|
22 | + const UNSUPPORTED = 3; |
|
23 | 23 | |
24 | - /** |
|
25 | - * @var \EE_Payment |
|
26 | - */ |
|
27 | - protected $payment; |
|
24 | + /** |
|
25 | + * @var \EE_Payment |
|
26 | + */ |
|
27 | + protected $payment; |
|
28 | 28 | |
29 | - /** |
|
30 | - * @var mixed IPN data, usually an array or object |
|
31 | - */ |
|
32 | - protected $ipn_data; |
|
29 | + /** |
|
30 | + * @var mixed IPN data, usually an array or object |
|
31 | + */ |
|
32 | + protected $ipn_data; |
|
33 | 33 | |
34 | 34 | |
35 | - public function __construct( |
|
36 | - $message, |
|
37 | - $code = 0, |
|
38 | - \Exception $previous = null, |
|
39 | - \EE_Payment $payment = null, |
|
40 | - $ipn_data = array() |
|
41 | - ) { |
|
42 | - parent::__construct($message, $code, $previous); |
|
43 | - $this->payment = $payment; |
|
44 | - $this->ipn_data = $ipn_data; |
|
45 | - } |
|
35 | + public function __construct( |
|
36 | + $message, |
|
37 | + $code = 0, |
|
38 | + \Exception $previous = null, |
|
39 | + \EE_Payment $payment = null, |
|
40 | + $ipn_data = array() |
|
41 | + ) { |
|
42 | + parent::__construct($message, $code, $previous); |
|
43 | + $this->payment = $payment; |
|
44 | + $this->ipn_data = $ipn_data; |
|
45 | + } |
|
46 | 46 | |
47 | 47 | |
48 | - /** |
|
49 | - * Gets the payment associated with this IPN, if known |
|
50 | - * |
|
51 | - * @return \EE_Payment |
|
52 | - */ |
|
53 | - public function getPayment() |
|
54 | - { |
|
55 | - return $this->payment; |
|
56 | - } |
|
48 | + /** |
|
49 | + * Gets the payment associated with this IPN, if known |
|
50 | + * |
|
51 | + * @return \EE_Payment |
|
52 | + */ |
|
53 | + public function getPayment() |
|
54 | + { |
|
55 | + return $this->payment; |
|
56 | + } |
|
57 | 57 | |
58 | 58 | |
59 | - /** |
|
60 | - * Returns the payment's properties as an array (even if there is no payment, in which case it's an empty array) |
|
61 | - * |
|
62 | - * @return array |
|
63 | - * @throws \EE_Error |
|
64 | - */ |
|
65 | - public function getPaymentProperties() |
|
66 | - { |
|
67 | - return $this->getPayment() instanceof \EE_Payment ? $this->getPayment()->model_field_array() : array(); |
|
68 | - } |
|
59 | + /** |
|
60 | + * Returns the payment's properties as an array (even if there is no payment, in which case it's an empty array) |
|
61 | + * |
|
62 | + * @return array |
|
63 | + * @throws \EE_Error |
|
64 | + */ |
|
65 | + public function getPaymentProperties() |
|
66 | + { |
|
67 | + return $this->getPayment() instanceof \EE_Payment ? $this->getPayment()->model_field_array() : array(); |
|
68 | + } |
|
69 | 69 | |
70 | 70 | |
71 | - /** |
|
72 | - * Returns an array, object, or string, however, the IPN data was received |
|
73 | - * |
|
74 | - * @return mixed |
|
75 | - */ |
|
76 | - public function getIpnData() |
|
77 | - { |
|
78 | - return $this->ipn_data; |
|
79 | - } |
|
71 | + /** |
|
72 | + * Returns an array, object, or string, however, the IPN data was received |
|
73 | + * |
|
74 | + * @return mixed |
|
75 | + */ |
|
76 | + public function getIpnData() |
|
77 | + { |
|
78 | + return $this->ipn_data; |
|
79 | + } |
|
80 | 80 | } |