Version Description
- Tested with Wordpress version 5.3 Fixed XSS vulnerability in GDPR consent message
Download this release
Release Info
Developer | megnicholas |
Plugin | Contact Form Clean and Simple |
Version | 4.7.1 |
Comparing to | |
See all releases |
Code changes from version 4.7.0 to 4.7.1
- class.cscf_settings.php +429 -425
- clean-and-simple-contact-form-by-meg-nicholas.php +78 -78
- readme.txt +431 -428
class.cscf_settings.php
CHANGED
@@ -1,425 +1,429 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/*
|
4 |
-
* creates the settings page for the plugin
|
5 |
-
*/
|
6 |
-
|
7 |
-
class cscf_settings
|
8 |
-
{
|
9 |
-
public
|
10 |
-
function __construct()
|
11 |
-
{
|
12 |
-
|
13 |
-
if (is_admin()) {
|
14 |
-
add_action('admin_menu', array(
|
15 |
-
$this,
|
16 |
-
'add_plugin_page'
|
17 |
-
));
|
18 |
-
add_action('admin_init', array(
|
19 |
-
$this,
|
20 |
-
'page_init'
|
21 |
-
));
|
22 |
-
}
|
23 |
-
}
|
24 |
-
|
25 |
-
public
|
26 |
-
function add_plugin_page()
|
27 |
-
{
|
28 |
-
|
29 |
-
// This page will be under "Settings"
|
30 |
-
add_options_page(__('Contact Form Settings', 'clean-and-simple-contact-form-by-meg-nicholas'), __('Contact Form', 'clean-and-simple-contact-form-by-meg-nicholas'), 'manage_options', 'contact-form-settings', array(
|
31 |
-
$this,
|
32 |
-
'create_admin_page'
|
33 |
-
));
|
34 |
-
}
|
35 |
-
|
36 |
-
public
|
37 |
-
function create_admin_page()
|
38 |
-
{
|
39 |
-
?>
|
40 |
-
|
41 |
-
<h2><?php _e('Clean and Simple Contact Form Settings', 'clean-and-simple-contact-form-by-meg-nicholas'); ?></h2>
|
42 |
-
<hr/>
|
43 |
-
|
44 |
-
<div style="float:right;position: relative;width:250px;">
|
45 |
-
|
46 |
-
<div style="border:1px solid;padding:5px;margin-bottom: 8px;text-align:center;">
|
47 |
-
<h3><?php _e("Donate $10, $20 or $50!", "clean-and-simple-contact-form-by-meg-nicholas"); ?></h3>
|
48 |
-
|
49 |
-
<div>
|
50 |
-
<p><?php _e("If you like this plugin, please donate to support development and maintenance of:", "clean-and-simple-contact-form-by-meg-nicholas"); ?></p>
|
51 |
-
|
52 |
-
<h3><?php _e("Clean and Simple Contact Form!", "clean-and-simple-contact-form-by-meg-nicholas"); ?></h3>
|
53 |
-
|
54 |
-
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
|
55 |
-
<input type="hidden" name="cmd" value="_s-xclick">
|
56 |
-
<input type="hidden" name="hosted_button_id" value="ALAGLZ3APUZMW">
|
57 |
-
<input type="image" src="https://www.paypalobjects.com/en_US/GB/i/btn/btn_donateCC_LG.gif"
|
58 |
-
border="0" name="submit" alt="PayPal – The safer, easier way to pay online.">
|
59 |
-
<img alt="" border="0" src="https://www.paypalobjects.com/en_GB/i/scr/pixel.gif" width="1"
|
60 |
-
height="1">
|
61 |
-
</form>
|
62 |
-
|
63 |
-
</div>
|
64 |
-
</div>
|
65 |
-
</div>
|
66 |
-
<div style="float:left;">
|
67 |
-
<p><?php _e('You are using version', 'clean-and-simple-contact-form-by-meg-nicholas'); ?> <?php echo CSCF_VERSION_NUM; ?></p>
|
68 |
-
|
69 |
-
<p><?php _e('If you find this plugin useful please consider', 'clean-and-simple-contact-form-by-meg-nicholas'); ?>
|
70 |
-
<a target="_blank"
|
71 |
-
href="http://wordpress.org/support/view/plugin-reviews/<?php echo CSCF_PLUGIN_NAME; ?>">
|
72 |
-
<?php _e('leaving a review', 'clean-and-simple-contact-form-by-meg-nicholas'); ?>
|
73 |
-
</a>
|
74 |
-
. <?php _e('Thank you!', 'clean-and-simple-contact-form-by-meg-nicholas'); ?>
|
75 |
-
</p>
|
76 |
-
|
77 |
-
<?php if (cscf_PluginSettings::IsJetPackContactFormEnabled()) { ?>
|
78 |
-
<p class="highlight">
|
79 |
-
<?php _e('NOTICE: You have JetPack\'s Contact Form enabled please deactivate it or use the shortcode [cscf-contact-form] instead.', 'clean-and-simple-contact-form-by-meg-nicholas'); ?>
|
80 |
-
<a target="_blank"
|
81 |
-
href="http://www.megnicholas.co.uk/articles/clean-and-simple-contact-form-and-jetpack/"><?php _e('Read More', 'clean-and-simple-contact-form-by-meg-nicholas'); ?></a>
|
82 |
-
</p>
|
83 |
-
<?php } ?>
|
84 |
-
|
85 |
-
<p class="howto"><?php _e("Please Note: To add the contact form to your page please add the text", "clean-and-simple-contact-form-by-meg-nicholas"); ?>
|
86 |
-
<code>[cscf-contact-form]</code> <?php _e("to your post or page.", "clean-and-simple-contact-form-by-meg-nicholas"); ?></p>
|
87 |
-
|
88 |
-
<form method="post" action="options.php">
|
89 |
-
<?php
|
90 |
-
submit_button();
|
91 |
-
|
92 |
-
/* This prints out all hidden setting fields*/
|
93 |
-
settings_fields('test_option_group');
|
94 |
-
do_settings_sections('contact-form-settings');
|
95 |
-
|
96 |
-
submit_button();
|
97 |
-
?>
|
98 |
-
</form>
|
99 |
-
</div>
|
100 |
-
<?php
|
101 |
-
}
|
102 |
-
|
103 |
-
public
|
104 |
-
function page_init()
|
105 |
-
{
|
106 |
-
add_settings_section('section_recaptcha', '<h3>' . __('ReCAPTCHA Settings', 'clean-and-simple-contact-form-by-meg-nicholas') . '</h3>', array(
|
107 |
-
$this,
|
108 |
-
'print_section_info_recaptcha'
|
109 |
-
), 'contact-form-settings');
|
110 |
-
register_setting('test_option_group', CSCF_OPTIONS_KEY, array(
|
111 |
-
$this,
|
112 |
-
'check_form'
|
113 |
-
));
|
114 |
-
add_settings_field('use_recaptcha', __('Use reCAPTCHA :', 'clean-and-simple-contact-form-by-meg-nicholas'), array(
|
115 |
-
$this,
|
116 |
-
'create_fields'
|
117 |
-
), 'contact-form-settings', 'section_recaptcha', array(
|
118 |
-
'use_recaptcha'
|
119 |
-
));
|
120 |
-
add_settings_field('theme', __('reCAPTCHA Theme :', 'clean-and-simple-contact-form-by-meg-nicholas'), array(
|
121 |
-
$this,
|
122 |
-
'create_fields'
|
123 |
-
), 'contact-form-settings', 'section_recaptcha', array(
|
124 |
-
'theme'
|
125 |
-
));
|
126 |
-
add_settings_field('recaptcha_public_key', __('reCAPTCHA Public Key :', 'clean-and-simple-contact-form-by-meg-nicholas'), array(
|
127 |
-
$this,
|
128 |
-
'create_fields'
|
129 |
-
), 'contact-form-settings', 'section_recaptcha', array(
|
130 |
-
'recaptcha_public_key'
|
131 |
-
));
|
132 |
-
add_settings_field('recaptcha_private_key', __('reCAPTCHA Private Key :', 'clean-and-simple-contact-form-by-meg-nicholas'), array(
|
133 |
-
$this,
|
134 |
-
'create_fields'
|
135 |
-
), 'contact-form-settings', 'section_recaptcha', array(
|
136 |
-
'recaptcha_private_key'
|
137 |
-
));
|
138 |
-
add_settings_section('section_message', '<h3>' . __('Message Settings', 'clean-and-simple-contact-form-by-meg-nicholas') . '</h3>', array(
|
139 |
-
$this,
|
140 |
-
'print_section_info_message'
|
141 |
-
), 'contact-form-settings');
|
142 |
-
add_settings_field('recipient_emails', __('Recipient Emails :', 'clean-and-simple-contact-form-by-meg-nicholas'), array(
|
143 |
-
$this,
|
144 |
-
'create_fields'
|
145 |
-
), 'contact-form-settings', 'section_message', array(
|
146 |
-
'recipient_emails'
|
147 |
-
));
|
148 |
-
add_settings_field('confirm-email', __('Confirm Email Address :', 'clean-and-simple-contact-form-by-meg-nicholas'), array(
|
149 |
-
$this,
|
150 |
-
'create_fields'
|
151 |
-
), 'contact-form-settings', 'section_message', array(
|
152 |
-
'confirm-email'
|
153 |
-
));
|
154 |
-
add_settings_field('email-sender', __('Allow users to email themselves a copy :', 'clean-and-simple-contact-form-by-meg-nicholas'), array(
|
155 |
-
$this,
|
156 |
-
'create_fields'
|
157 |
-
), 'contact-form-settings', 'section_message', array(
|
158 |
-
'email-sender'
|
159 |
-
));
|
160 |
-
add_settings_field('contact-consent', '<span style="color:red;">' . __('*New*','clean-and-simple-contact-form-by-meg-nicholas') . '</span> ' . __('Add a consent checkbox :', 'clean-and-simple-contact-form-by-meg-nicholas'), array(
|
161 |
-
$this,
|
162 |
-
'create_fields'
|
163 |
-
), 'contact-form-settings', 'section_message', array(
|
164 |
-
'contact-consent'
|
165 |
-
));
|
166 |
-
add_settings_field('contact-consent-msg', '<span style="color:red;">' . __('*New*','clean-and-simple-contact-form-by-meg-nicholas') . '</span> ' . __('Consent message :', 'clean-and-simple-contact-form-by-meg-nicholas'), array(
|
167 |
-
$this,
|
168 |
-
'create_fields'
|
169 |
-
), 'contact-form-settings', 'section_message', array(
|
170 |
-
'contact-consent-msg'
|
171 |
-
));
|
172 |
-
add_settings_field('override-from', __('Override \'From\' Address :', 'clean-and-simple-contact-form-by-meg-nicholas'), array(
|
173 |
-
$this,
|
174 |
-
'create_fields'
|
175 |
-
), 'contact-form-settings', 'section_message', array(
|
176 |
-
'override-from'
|
177 |
-
));
|
178 |
-
add_settings_field('from-email', __('\'From\' Email Address :', 'clean-and-simple-contact-form-by-meg-nicholas'), array(
|
179 |
-
$this,
|
180 |
-
'create_fields'
|
181 |
-
), 'contact-form-settings', 'section_message', array(
|
182 |
-
'from-email'
|
183 |
-
));
|
184 |
-
add_settings_field('subject', __('Email Subject :', 'clean-and-simple-contact-form-by-meg-nicholas'), array(
|
185 |
-
$this,
|
186 |
-
'create_fields'
|
187 |
-
), 'contact-form-settings', 'section_message', array(
|
188 |
-
'subject'
|
189 |
-
));
|
190 |
-
add_settings_field('message', __('Message :', 'clean-and-simple-contact-form-by-meg-nicholas'), array(
|
191 |
-
$this,
|
192 |
-
'create_fields'
|
193 |
-
), 'contact-form-settings', 'section_message', array(
|
194 |
-
'message'
|
195 |
-
));
|
196 |
-
add_settings_field('sent_message_heading', __('Message Sent Heading :', 'clean-and-simple-contact-form-by-meg-nicholas'), array(
|
197 |
-
$this,
|
198 |
-
'create_fields'
|
199 |
-
), 'contact-form-settings', 'section_message', array(
|
200 |
-
'sent_message_heading'
|
201 |
-
));
|
202 |
-
add_settings_field('sent_message_body', __('Message Sent Content :', 'clean-and-simple-contact-form-by-meg-nicholas'), array(
|
203 |
-
$this,
|
204 |
-
'create_fields'
|
205 |
-
), 'contact-form-settings', 'section_message', array(
|
206 |
-
'sent_message_body'
|
207 |
-
));
|
208 |
-
add_settings_section('section_styling', '<h3>' . __('Styling and Validation', 'clean-and-simple-contact-form-by-meg-nicholas') . '</h3>', array(
|
209 |
-
$this,
|
210 |
-
'print_section_info_styling'
|
211 |
-
), 'contact-form-settings');
|
212 |
-
add_settings_field('load_stylesheet', __('Use the plugin default stylesheet (un-tick to use your theme style sheet instead) :', 'clean-and-simple-contact-form-by-meg-nicholas'), array(
|
213 |
-
$this,
|
214 |
-
'create_fields'
|
215 |
-
), 'contact-form-settings', 'section_styling', array(
|
216 |
-
'load_stylesheet'
|
217 |
-
));
|
218 |
-
add_settings_field('use_client_validation', __('Use client side validation (AJAX) :', 'clean-and-simple-contact-form-by-meg-nicholas'), array(
|
219 |
-
$this,
|
220 |
-
'create_fields'
|
221 |
-
), 'contact-form-settings', 'section_styling', array(
|
222 |
-
'use_client_validation'
|
223 |
-
));
|
224 |
-
}
|
225 |
-
|
226 |
-
public
|
227 |
-
function check_form($input)
|
228 |
-
{
|
229 |
-
|
230 |
-
//recaptcha theme
|
231 |
-
if (isset($input['theme'])) $input['theme'] = filter_var($input['theme'], FILTER_SANITIZE_STRING);
|
232 |
-
|
233 |
-
//recaptcha_public_key
|
234 |
-
if (isset($input['recaptcha_public_key'])) $input['recaptcha_public_key'] = filter_var($input['recaptcha_public_key'], FILTER_SANITIZE_STRING);
|
235 |
-
|
236 |
-
//recaptcha_private_key
|
237 |
-
if (isset($input['recaptcha_private_key'])) $input['recaptcha_private_key'] = filter_var($input['recaptcha_private_key'], FILTER_SANITIZE_STRING);
|
238 |
-
|
239 |
-
//sent_message_heading
|
240 |
-
$input['sent_message_heading'] = filter_var($input['sent_message_heading'], FILTER_SANITIZE_STRING);
|
241 |
-
|
242 |
-
//sent_message_body
|
243 |
-
$input['sent_message_body'] = filter_var($input['sent_message_body'], FILTER_SANITIZE_STRING);
|
244 |
-
|
245 |
-
//message
|
246 |
-
$input['message'] = filter_var($input['message'], FILTER_SANITIZE_STRING);
|
247 |
-
|
248 |
-
|
249 |
-
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
if (
|
267 |
-
$input['
|
268 |
-
}
|
269 |
-
|
270 |
-
if (isset($_POST['
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
$
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
?><input type="
|
377 |
-
name="<?php echo CSCF_OPTIONS_KEY; ?>[contact-consent
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
break;
|
390 |
-
case '
|
391 |
-
?><input type="text" size="60" id="
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
break;
|
399 |
-
case '
|
400 |
-
?><textarea cols="63" rows="8"
|
401 |
-
name="<?php echo CSCF_OPTIONS_KEY; ?>[
|
402 |
-
break;
|
403 |
-
case '
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
-
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/*
|
4 |
+
* creates the settings page for the plugin
|
5 |
+
*/
|
6 |
+
|
7 |
+
class cscf_settings
|
8 |
+
{
|
9 |
+
public
|
10 |
+
function __construct()
|
11 |
+
{
|
12 |
+
|
13 |
+
if (is_admin()) {
|
14 |
+
add_action('admin_menu', array(
|
15 |
+
$this,
|
16 |
+
'add_plugin_page'
|
17 |
+
));
|
18 |
+
add_action('admin_init', array(
|
19 |
+
$this,
|
20 |
+
'page_init'
|
21 |
+
));
|
22 |
+
}
|
23 |
+
}
|
24 |
+
|
25 |
+
public
|
26 |
+
function add_plugin_page()
|
27 |
+
{
|
28 |
+
|
29 |
+
// This page will be under "Settings"
|
30 |
+
add_options_page(__('Contact Form Settings', 'clean-and-simple-contact-form-by-meg-nicholas'), __('Contact Form', 'clean-and-simple-contact-form-by-meg-nicholas'), 'manage_options', 'contact-form-settings', array(
|
31 |
+
$this,
|
32 |
+
'create_admin_page'
|
33 |
+
));
|
34 |
+
}
|
35 |
+
|
36 |
+
public
|
37 |
+
function create_admin_page()
|
38 |
+
{
|
39 |
+
?>
|
40 |
+
|
41 |
+
<h2><?php _e('Clean and Simple Contact Form Settings', 'clean-and-simple-contact-form-by-meg-nicholas'); ?></h2>
|
42 |
+
<hr/>
|
43 |
+
|
44 |
+
<div style="float:right;position: relative;width:250px;">
|
45 |
+
|
46 |
+
<div style="border:1px solid;padding:5px;margin-bottom: 8px;text-align:center;">
|
47 |
+
<h3><?php _e("Donate $10, $20 or $50!", "clean-and-simple-contact-form-by-meg-nicholas"); ?></h3>
|
48 |
+
|
49 |
+
<div>
|
50 |
+
<p><?php _e("If you like this plugin, please donate to support development and maintenance of:", "clean-and-simple-contact-form-by-meg-nicholas"); ?></p>
|
51 |
+
|
52 |
+
<h3><?php _e("Clean and Simple Contact Form!", "clean-and-simple-contact-form-by-meg-nicholas"); ?></h3>
|
53 |
+
|
54 |
+
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
|
55 |
+
<input type="hidden" name="cmd" value="_s-xclick">
|
56 |
+
<input type="hidden" name="hosted_button_id" value="ALAGLZ3APUZMW">
|
57 |
+
<input type="image" src="https://www.paypalobjects.com/en_US/GB/i/btn/btn_donateCC_LG.gif"
|
58 |
+
border="0" name="submit" alt="PayPal – The safer, easier way to pay online.">
|
59 |
+
<img alt="" border="0" src="https://www.paypalobjects.com/en_GB/i/scr/pixel.gif" width="1"
|
60 |
+
height="1">
|
61 |
+
</form>
|
62 |
+
|
63 |
+
</div>
|
64 |
+
</div>
|
65 |
+
</div>
|
66 |
+
<div style="float:left;">
|
67 |
+
<p><?php _e('You are using version', 'clean-and-simple-contact-form-by-meg-nicholas'); ?> <?php echo CSCF_VERSION_NUM; ?></p>
|
68 |
+
|
69 |
+
<p><?php _e('If you find this plugin useful please consider', 'clean-and-simple-contact-form-by-meg-nicholas'); ?>
|
70 |
+
<a target="_blank"
|
71 |
+
href="http://wordpress.org/support/view/plugin-reviews/<?php echo CSCF_PLUGIN_NAME; ?>">
|
72 |
+
<?php _e('leaving a review', 'clean-and-simple-contact-form-by-meg-nicholas'); ?>
|
73 |
+
</a>
|
74 |
+
. <?php _e('Thank you!', 'clean-and-simple-contact-form-by-meg-nicholas'); ?>
|
75 |
+
</p>
|
76 |
+
|
77 |
+
<?php if (cscf_PluginSettings::IsJetPackContactFormEnabled()) { ?>
|
78 |
+
<p class="highlight">
|
79 |
+
<?php _e('NOTICE: You have JetPack\'s Contact Form enabled please deactivate it or use the shortcode [cscf-contact-form] instead.', 'clean-and-simple-contact-form-by-meg-nicholas'); ?>
|
80 |
+
<a target="_blank"
|
81 |
+
href="http://www.megnicholas.co.uk/articles/clean-and-simple-contact-form-and-jetpack/"><?php _e('Read More', 'clean-and-simple-contact-form-by-meg-nicholas'); ?></a>
|
82 |
+
</p>
|
83 |
+
<?php } ?>
|
84 |
+
|
85 |
+
<p class="howto"><?php _e("Please Note: To add the contact form to your page please add the text", "clean-and-simple-contact-form-by-meg-nicholas"); ?>
|
86 |
+
<code>[cscf-contact-form]</code> <?php _e("to your post or page.", "clean-and-simple-contact-form-by-meg-nicholas"); ?></p>
|
87 |
+
|
88 |
+
<form method="post" action="options.php">
|
89 |
+
<?php
|
90 |
+
submit_button();
|
91 |
+
|
92 |
+
/* This prints out all hidden setting fields*/
|
93 |
+
settings_fields('test_option_group');
|
94 |
+
do_settings_sections('contact-form-settings');
|
95 |
+
|
96 |
+
submit_button();
|
97 |
+
?>
|
98 |
+
</form>
|
99 |
+
</div>
|
100 |
+
<?php
|
101 |
+
}
|
102 |
+
|
103 |
+
public
|
104 |
+
function page_init()
|
105 |
+
{
|
106 |
+
add_settings_section('section_recaptcha', '<h3>' . __('ReCAPTCHA Settings', 'clean-and-simple-contact-form-by-meg-nicholas') . '</h3>', array(
|
107 |
+
$this,
|
108 |
+
'print_section_info_recaptcha'
|
109 |
+
), 'contact-form-settings');
|
110 |
+
register_setting('test_option_group', CSCF_OPTIONS_KEY, array(
|
111 |
+
$this,
|
112 |
+
'check_form'
|
113 |
+
));
|
114 |
+
add_settings_field('use_recaptcha', __('Use reCAPTCHA :', 'clean-and-simple-contact-form-by-meg-nicholas'), array(
|
115 |
+
$this,
|
116 |
+
'create_fields'
|
117 |
+
), 'contact-form-settings', 'section_recaptcha', array(
|
118 |
+
'use_recaptcha'
|
119 |
+
));
|
120 |
+
add_settings_field('theme', __('reCAPTCHA Theme :', 'clean-and-simple-contact-form-by-meg-nicholas'), array(
|
121 |
+
$this,
|
122 |
+
'create_fields'
|
123 |
+
), 'contact-form-settings', 'section_recaptcha', array(
|
124 |
+
'theme'
|
125 |
+
));
|
126 |
+
add_settings_field('recaptcha_public_key', __('reCAPTCHA Public Key :', 'clean-and-simple-contact-form-by-meg-nicholas'), array(
|
127 |
+
$this,
|
128 |
+
'create_fields'
|
129 |
+
), 'contact-form-settings', 'section_recaptcha', array(
|
130 |
+
'recaptcha_public_key'
|
131 |
+
));
|
132 |
+
add_settings_field('recaptcha_private_key', __('reCAPTCHA Private Key :', 'clean-and-simple-contact-form-by-meg-nicholas'), array(
|
133 |
+
$this,
|
134 |
+
'create_fields'
|
135 |
+
), 'contact-form-settings', 'section_recaptcha', array(
|
136 |
+
'recaptcha_private_key'
|
137 |
+
));
|
138 |
+
add_settings_section('section_message', '<h3>' . __('Message Settings', 'clean-and-simple-contact-form-by-meg-nicholas') . '</h3>', array(
|
139 |
+
$this,
|
140 |
+
'print_section_info_message'
|
141 |
+
), 'contact-form-settings');
|
142 |
+
add_settings_field('recipient_emails', __('Recipient Emails :', 'clean-and-simple-contact-form-by-meg-nicholas'), array(
|
143 |
+
$this,
|
144 |
+
'create_fields'
|
145 |
+
), 'contact-form-settings', 'section_message', array(
|
146 |
+
'recipient_emails'
|
147 |
+
));
|
148 |
+
add_settings_field('confirm-email', __('Confirm Email Address :', 'clean-and-simple-contact-form-by-meg-nicholas'), array(
|
149 |
+
$this,
|
150 |
+
'create_fields'
|
151 |
+
), 'contact-form-settings', 'section_message', array(
|
152 |
+
'confirm-email'
|
153 |
+
));
|
154 |
+
add_settings_field('email-sender', __('Allow users to email themselves a copy :', 'clean-and-simple-contact-form-by-meg-nicholas'), array(
|
155 |
+
$this,
|
156 |
+
'create_fields'
|
157 |
+
), 'contact-form-settings', 'section_message', array(
|
158 |
+
'email-sender'
|
159 |
+
));
|
160 |
+
add_settings_field('contact-consent', '<span style="color:red;">' . __('*New*','clean-and-simple-contact-form-by-meg-nicholas') . '</span> ' . __('Add a consent checkbox :', 'clean-and-simple-contact-form-by-meg-nicholas'), array(
|
161 |
+
$this,
|
162 |
+
'create_fields'
|
163 |
+
), 'contact-form-settings', 'section_message', array(
|
164 |
+
'contact-consent'
|
165 |
+
));
|
166 |
+
add_settings_field('contact-consent-msg', '<span style="color:red;">' . __('*New*','clean-and-simple-contact-form-by-meg-nicholas') . '</span> ' . __('Consent message :', 'clean-and-simple-contact-form-by-meg-nicholas'), array(
|
167 |
+
$this,
|
168 |
+
'create_fields'
|
169 |
+
), 'contact-form-settings', 'section_message', array(
|
170 |
+
'contact-consent-msg'
|
171 |
+
));
|
172 |
+
add_settings_field('override-from', __('Override \'From\' Address :', 'clean-and-simple-contact-form-by-meg-nicholas'), array(
|
173 |
+
$this,
|
174 |
+
'create_fields'
|
175 |
+
), 'contact-form-settings', 'section_message', array(
|
176 |
+
'override-from'
|
177 |
+
));
|
178 |
+
add_settings_field('from-email', __('\'From\' Email Address :', 'clean-and-simple-contact-form-by-meg-nicholas'), array(
|
179 |
+
$this,
|
180 |
+
'create_fields'
|
181 |
+
), 'contact-form-settings', 'section_message', array(
|
182 |
+
'from-email'
|
183 |
+
));
|
184 |
+
add_settings_field('subject', __('Email Subject :', 'clean-and-simple-contact-form-by-meg-nicholas'), array(
|
185 |
+
$this,
|
186 |
+
'create_fields'
|
187 |
+
), 'contact-form-settings', 'section_message', array(
|
188 |
+
'subject'
|
189 |
+
));
|
190 |
+
add_settings_field('message', __('Message :', 'clean-and-simple-contact-form-by-meg-nicholas'), array(
|
191 |
+
$this,
|
192 |
+
'create_fields'
|
193 |
+
), 'contact-form-settings', 'section_message', array(
|
194 |
+
'message'
|
195 |
+
));
|
196 |
+
add_settings_field('sent_message_heading', __('Message Sent Heading :', 'clean-and-simple-contact-form-by-meg-nicholas'), array(
|
197 |
+
$this,
|
198 |
+
'create_fields'
|
199 |
+
), 'contact-form-settings', 'section_message', array(
|
200 |
+
'sent_message_heading'
|
201 |
+
));
|
202 |
+
add_settings_field('sent_message_body', __('Message Sent Content :', 'clean-and-simple-contact-form-by-meg-nicholas'), array(
|
203 |
+
$this,
|
204 |
+
'create_fields'
|
205 |
+
), 'contact-form-settings', 'section_message', array(
|
206 |
+
'sent_message_body'
|
207 |
+
));
|
208 |
+
add_settings_section('section_styling', '<h3>' . __('Styling and Validation', 'clean-and-simple-contact-form-by-meg-nicholas') . '</h3>', array(
|
209 |
+
$this,
|
210 |
+
'print_section_info_styling'
|
211 |
+
), 'contact-form-settings');
|
212 |
+
add_settings_field('load_stylesheet', __('Use the plugin default stylesheet (un-tick to use your theme style sheet instead) :', 'clean-and-simple-contact-form-by-meg-nicholas'), array(
|
213 |
+
$this,
|
214 |
+
'create_fields'
|
215 |
+
), 'contact-form-settings', 'section_styling', array(
|
216 |
+
'load_stylesheet'
|
217 |
+
));
|
218 |
+
add_settings_field('use_client_validation', __('Use client side validation (AJAX) :', 'clean-and-simple-contact-form-by-meg-nicholas'), array(
|
219 |
+
$this,
|
220 |
+
'create_fields'
|
221 |
+
), 'contact-form-settings', 'section_styling', array(
|
222 |
+
'use_client_validation'
|
223 |
+
));
|
224 |
+
}
|
225 |
+
|
226 |
+
public
|
227 |
+
function check_form($input)
|
228 |
+
{
|
229 |
+
|
230 |
+
//recaptcha theme
|
231 |
+
if (isset($input['theme'])) $input['theme'] = filter_var($input['theme'], FILTER_SANITIZE_STRING);
|
232 |
+
|
233 |
+
//recaptcha_public_key
|
234 |
+
if (isset($input['recaptcha_public_key'])) $input['recaptcha_public_key'] = filter_var($input['recaptcha_public_key'], FILTER_SANITIZE_STRING);
|
235 |
+
|
236 |
+
//recaptcha_private_key
|
237 |
+
if (isset($input['recaptcha_private_key'])) $input['recaptcha_private_key'] = filter_var($input['recaptcha_private_key'], FILTER_SANITIZE_STRING);
|
238 |
+
|
239 |
+
//sent_message_heading
|
240 |
+
$input['sent_message_heading'] = filter_var($input['sent_message_heading'], FILTER_SANITIZE_STRING);
|
241 |
+
|
242 |
+
//sent_message_body
|
243 |
+
$input['sent_message_body'] = filter_var($input['sent_message_body'], FILTER_SANITIZE_STRING);
|
244 |
+
|
245 |
+
//message
|
246 |
+
$input['message'] = filter_var($input['message'], FILTER_SANITIZE_STRING);
|
247 |
+
|
248 |
+
|
249 |
+
//consent message
|
250 |
+
$input['contact-consent-msg'] = filter_var($input['contact-consent-msg'], FILTER_SANITIZE_STRING);
|
251 |
+
|
252 |
+
//recipient_emails
|
253 |
+
foreach ($input['recipient_emails'] as $key => $recipient) {
|
254 |
+
if (!filter_var($input['recipient_emails'][$key], FILTER_VALIDATE_EMAIL)) {
|
255 |
+
unset($input['recipient_emails'][$key]);
|
256 |
+
}
|
257 |
+
}
|
258 |
+
|
259 |
+
//from
|
260 |
+
if (!filter_var($input['from-email'], FILTER_VALIDATE_EMAIL)) {
|
261 |
+
unset($input['from-email']);
|
262 |
+
}
|
263 |
+
|
264 |
+
//subject
|
265 |
+
$input['subject'] = trim(filter_var($input['subject'], FILTER_SANITIZE_STRING));
|
266 |
+
if (empty($input['subject'])) {
|
267 |
+
unset($input['subject']);
|
268 |
+
}
|
269 |
+
|
270 |
+
if (isset($_POST['add_recipient'])) {
|
271 |
+
$input['recipient_emails'][] = "";
|
272 |
+
}
|
273 |
+
|
274 |
+
if (isset($_POST['remove_recipient'])) {
|
275 |
+
foreach ($_POST['remove_recipient'] as $key => $element) {
|
276 |
+
unset($input['recipient_emails'][$key]);
|
277 |
+
}
|
278 |
+
}
|
279 |
+
|
280 |
+
//tidy up the keys
|
281 |
+
$tidiedRecipients = array();
|
282 |
+
foreach ($input['recipient_emails'] as $recipient) {
|
283 |
+
$tidiedRecipients[] = $recipient;
|
284 |
+
}
|
285 |
+
$input['recipient_emails'] = $tidiedRecipients;
|
286 |
+
|
287 |
+
|
288 |
+
return $input;
|
289 |
+
}
|
290 |
+
|
291 |
+
public
|
292 |
+
function print_section_info_recaptcha()
|
293 |
+
{
|
294 |
+
print __('Enter your reCAPTCHA settings below :', 'clean-and-simple-contact-form-by-meg-nicholas');
|
295 |
+
print "<p>" . __('To use reCAPTCHA you must get an API key from', 'clean-and-simple-contact-form-by-meg-nicholas') . " <a target='_blank' href='" . csf_RecaptchaV2::$signUpUrl . "'>Google reCAPTCHA</a></p>";
|
296 |
+
}
|
297 |
+
|
298 |
+
public
|
299 |
+
function print_section_info_message()
|
300 |
+
{
|
301 |
+
print __('Enter your message settings below :', 'clean-and-simple-contact-form-by-meg-nicholas');
|
302 |
+
}
|
303 |
+
|
304 |
+
public
|
305 |
+
function print_section_info_styling()
|
306 |
+
{
|
307 |
+
|
308 |
+
//print 'Enter your styling settings below:';
|
309 |
+
|
310 |
+
}
|
311 |
+
|
312 |
+
public
|
313 |
+
function create_fields($args)
|
314 |
+
{
|
315 |
+
$fieldname = $args[0];
|
316 |
+
|
317 |
+
switch ($fieldname) {
|
318 |
+
case 'use_recaptcha':
|
319 |
+
$checked = cscf_PluginSettings::UseRecaptcha() == true ? "checked" : "";
|
320 |
+
?><input type="checkbox" <?php echo $checked; ?> id="use_recaptcha"
|
321 |
+
name="<?php echo CSCF_OPTIONS_KEY; ?>[use_recaptcha]"><?php
|
322 |
+
break;
|
323 |
+
case 'load_stylesheet':
|
324 |
+
$checked = cscf_PluginSettings::LoadStyleSheet() == true ? "checked" : "";
|
325 |
+
?><input type="checkbox" <?php echo $checked; ?> id="load_stylesheet"
|
326 |
+
name="<?php echo CSCF_OPTIONS_KEY; ?>[load_stylesheet]"><?php
|
327 |
+
break;
|
328 |
+
case 'recaptcha_public_key':
|
329 |
+
$disabled = cscf_PluginSettings::UseRecaptcha() == false ? "readonly" : "";
|
330 |
+
?><input <?php echo $disabled; ?> type="text" size="60" id="recaptcha_public_key"
|
331 |
+
name="<?php echo CSCF_OPTIONS_KEY; ?>[recaptcha_public_key]"
|
332 |
+
value="<?php echo cscf_PluginSettings::PublicKey(); ?>" /><?php
|
333 |
+
break;
|
334 |
+
case 'recaptcha_private_key':
|
335 |
+
$disabled = cscf_PluginSettings::UseRecaptcha() == false ? "readonly" : "";
|
336 |
+
?><input <?php echo $disabled; ?> type="text" size="60" id="recaptcha_private_key"
|
337 |
+
name="<?php echo CSCF_OPTIONS_KEY; ?>[recaptcha_private_key]"
|
338 |
+
value="<?php echo cscf_PluginSettings::PrivateKey(); ?>" /><?php
|
339 |
+
break;
|
340 |
+
case 'recipient_emails':
|
341 |
+
?>
|
342 |
+
<ul id="recipients"><?php
|
343 |
+
foreach (cscf_PluginSettings::RecipientEmails() as $key => $recipientEmail) {
|
344 |
+
?>
|
345 |
+
<li class="recipient_email" data-element="<?php echo $key; ?>">
|
346 |
+
<input class="enter_recipient" type="email" size="50"
|
347 |
+
name="<?php echo CSCF_OPTIONS_KEY; ?>[recipient_emails][<?php echo $key ?>]"
|
348 |
+
value="<?php echo $recipientEmail; ?>"/>
|
349 |
+
<input class="add_recipient" title="Add New Recipient" type="submit" name="add_recipient"
|
350 |
+
value="+">
|
351 |
+
<input class="remove_recipient" title="Remove This Recipient" type="submit"
|
352 |
+
name="remove_recipient[<?php echo $key; ?>]" value="-">
|
353 |
+
</li>
|
354 |
+
|
355 |
+
<?php
|
356 |
+
}
|
357 |
+
?></ul><?php
|
358 |
+
break;
|
359 |
+
case 'confirm-email':
|
360 |
+
$checked = cscf_PluginSettings::ConfirmEmail() == true ? "checked" : "";
|
361 |
+
?><input type="checkbox" <?php echo $checked; ?> id="confirm-email"
|
362 |
+
name="<?php echo CSCF_OPTIONS_KEY; ?>[confirm-email]"><?php
|
363 |
+
break;
|
364 |
+
case 'override-from':
|
365 |
+
$checked = cscf_PluginSettings::OverrideFrom() == true ? "checked" : "";
|
366 |
+
?><input type="checkbox" <?php echo $checked; ?> id="override-from"
|
367 |
+
name="<?php echo CSCF_OPTIONS_KEY; ?>[override-from]"><?php
|
368 |
+
break;
|
369 |
+
case 'email-sender':
|
370 |
+
$checked = cscf_PluginSettings::EmailToSender() == true ? "checked" : "";
|
371 |
+
?><input type="checkbox" <?php echo $checked; ?> id="email-sender"
|
372 |
+
name="<?php echo CSCF_OPTIONS_KEY; ?>[email-sender]"><?php
|
373 |
+
break;
|
374 |
+
case 'contact-consent':
|
375 |
+
$checked = cscf_PluginSettings::ContactConsent() == true ? "checked" : "";
|
376 |
+
?><input type="checkbox" <?php echo $checked; ?> id="contact-consent"
|
377 |
+
name="<?php echo CSCF_OPTIONS_KEY; ?>[contact-consent]"><?php
|
378 |
+
break;
|
379 |
+
case 'contact-consent-msg':
|
380 |
+
?><input type="text" size="60" id="contact-consent-msg"
|
381 |
+
name="<?php echo CSCF_OPTIONS_KEY; ?>[contact-consent-msg]"
|
382 |
+
value="<?php echo cscf_PluginSettings::ContactConsentMsg(); ?>"><?php
|
383 |
+
break;
|
384 |
+
case 'from-email':
|
385 |
+
$disabled = cscf_PluginSettings::OverrideFrom() == false ? "readonly" : "";
|
386 |
+
?><input <?php echo $disabled; ?> type="text" size="60" id="from-email"
|
387 |
+
name="<?php echo CSCF_OPTIONS_KEY; ?>[from-email]"
|
388 |
+
value="<?php echo cscf_PluginSettings::FromEmail(); ?>" /><?php
|
389 |
+
break;
|
390 |
+
case 'subject':
|
391 |
+
?><input type="text" size="60" id="subject" name="<?php echo CSCF_OPTIONS_KEY; ?>[subject]"
|
392 |
+
value="<?php echo cscf_PluginSettings::Subject(); ?>" /><?php
|
393 |
+
break;
|
394 |
+
case 'sent_message_heading':
|
395 |
+
?><input type="text" size="60" id="sent_message_heading"
|
396 |
+
name="<?php echo CSCF_OPTIONS_KEY; ?>[sent_message_heading]"
|
397 |
+
value="<?php echo cscf_PluginSettings::SentMessageHeading(); ?>" /><?php
|
398 |
+
break;
|
399 |
+
case 'sent_message_body':
|
400 |
+
?><textarea cols="63" rows="8"
|
401 |
+
name="<?php echo CSCF_OPTIONS_KEY; ?>[sent_message_body]"><?php echo cscf_PluginSettings::SentMessageBody(); ?></textarea><?php
|
402 |
+
break;
|
403 |
+
case 'message':
|
404 |
+
?><textarea cols="63" rows="8"
|
405 |
+
name="<?php echo CSCF_OPTIONS_KEY; ?>[message]"><?php echo cscf_PluginSettings::Message(); ?></textarea><?php
|
406 |
+
break;
|
407 |
+
case 'theme':
|
408 |
+
$theme = cscf_PluginSettings::Theme();
|
409 |
+
$disabled = cscf_PluginSettings::UseRecaptcha() == false ? "disabled" : "";
|
410 |
+
?>
|
411 |
+
<select <?php echo $disabled; ?> id="theme" name="<?php echo CSCF_OPTIONS_KEY; ?>[theme]">
|
412 |
+
<option <?php echo $theme == "light" ? "selected" : ""; ?>
|
413 |
+
value="light"><?php _e('Light', 'clean-and-simple-contact-form-by-meg-nicholas'); ?></option>
|
414 |
+
<option <?php echo $theme == "dark" ? "selected" : ""; ?>
|
415 |
+
value="dark"><?php _e('Dark', 'clean-and-simple-contact-form-by-meg-nicholas'); ?></option>
|
416 |
+
</select>
|
417 |
+
<?php
|
418 |
+
break;
|
419 |
+
case 'use_client_validation':
|
420 |
+
$checked = cscf_PluginSettings::UseClientValidation() == true ? "checked" : "";
|
421 |
+
?><input type="checkbox" <?php echo $checked; ?> id="use_client_validation"
|
422 |
+
name="<?php echo CSCF_OPTIONS_KEY; ?>[use_client_validation]"><?php
|
423 |
+
break;
|
424 |
+
default:
|
425 |
+
break;
|
426 |
+
}
|
427 |
+
}
|
428 |
+
}
|
429 |
+
|
clean-and-simple-contact-form-by-meg-nicholas.php
CHANGED
@@ -1,79 +1,79 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* @package Clean and Simple Contact Form
|
4 |
-
*/
|
5 |
-
|
6 |
-
/*
|
7 |
-
Plugin Name: Clean and Simple Contact Form
|
8 |
-
Plugin URI: http://www.megnicholas.co.uk/wordpress-plugins/clean-and-simple-contact-form
|
9 |
-
Description: A clean and simple contact form with Google reCAPTCHA and Twitter Bootstrap markup.
|
10 |
-
Version: 4.7.
|
11 |
-
Author: Meghan Nicholas
|
12 |
-
Author URI: http://www.megnicholas.co.uk
|
13 |
-
License: GPLv2 or later
|
14 |
-
Text Domain: clean-and-simple-contact-form-by-meg-nicholas
|
15 |
-
Domain Path: /languages
|
16 |
-
*/
|
17 |
-
|
18 |
-
/*
|
19 |
-
This program is free software; you can redistribute it and/or
|
20 |
-
modify it under the terms of the GNU General Public License
|
21 |
-
as published by the Free Software Foundation; either version 2
|
22 |
-
of the License, or (at your option) any later version.
|
23 |
-
|
24 |
-
This program is distributed in the hope that it will be useful,
|
25 |
-
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
26 |
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
27 |
-
GNU General Public License for more details.
|
28 |
-
|
29 |
-
You should have received a copy of the GNU General Public License
|
30 |
-
along with this program; if not, write to the Free Software
|
31 |
-
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
32 |
-
*/
|
33 |
-
|
34 |
-
/*
|
35 |
-
* @package Main
|
36 |
-
*/
|
37 |
-
include ('shortcodes/contact-form.php');
|
38 |
-
include ('class.cscf.php');
|
39 |
-
include ('class.cscf_pluginsettings.php');
|
40 |
-
include ('class.cscf_settings.php');
|
41 |
-
include ('class.cscf_contact.php');
|
42 |
-
include ('class.view.php');
|
43 |
-
include ('class.cscf_filters.php');
|
44 |
-
include ('ajax.php');
|
45 |
-
include ('recaptchav2.php');
|
46 |
-
|
47 |
-
if (!defined('CSCF_THEME_DIR')) define('CSCF_THEME_DIR', ABSPATH . 'wp-content/themes/' . get_template());
|
48 |
-
|
49 |
-
if (!defined('CSCF_PLUGIN_NAME')) define('CSCF_PLUGIN_NAME', 'clean-and-simple-contact-form-by-meg-nicholas');
|
50 |
-
|
51 |
-
if (!defined('CSCF_PLUGIN_DIR')) define('CSCF_PLUGIN_DIR', WP_PLUGIN_DIR . '/' . CSCF_PLUGIN_NAME);
|
52 |
-
|
53 |
-
if (!defined('CSCF_PLUGIN_URL')) define('CSCF_PLUGIN_URL', WP_PLUGIN_URL . '/' . CSCF_PLUGIN_NAME);
|
54 |
-
|
55 |
-
if (!defined('CSCF_VERSION_KEY')) define('CSCF_VERSION_KEY', 'cscf_version');
|
56 |
-
|
57 |
-
if (!defined('CSCF_VERSION_NUM')) define('CSCF_VERSION_NUM', '4.7.
|
58 |
-
|
59 |
-
if (!defined('CSCF_OPTIONS_KEY')) define('CSCF_OPTIONS_KEY', 'cscf_options');
|
60 |
-
|
61 |
-
$cscf = new cscf();
|
62 |
-
|
63 |
-
/*get the current version and update options to the new option*/
|
64 |
-
$oldVersion = get_option(CSCF_VERSION_KEY);
|
65 |
-
update_option(CSCF_VERSION_KEY, CSCF_VERSION_NUM);
|
66 |
-
|
67 |
-
/*If this is a new installation then set some defaults*/
|
68 |
-
if ( $oldVersion == false ) {
|
69 |
-
$options = get_option(CSCF_OPTIONS_KEY);
|
70 |
-
$options['use_client_validation'] = true;
|
71 |
-
$options['load_stylesheet'] = true;
|
72 |
-
$options['confirm-email'] = true;
|
73 |
-
update_option(CSCF_OPTIONS_KEY,$options);
|
74 |
-
}
|
75 |
-
|
76 |
-
/*if necessary do an upgrade*/
|
77 |
-
if ($oldVersion < CSCF_VERSION_NUM) {
|
78 |
-
$cscf->Upgrade($oldVersion);
|
79 |
}
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* @package Clean and Simple Contact Form
|
4 |
+
*/
|
5 |
+
|
6 |
+
/*
|
7 |
+
Plugin Name: Clean and Simple Contact Form
|
8 |
+
Plugin URI: http://www.megnicholas.co.uk/wordpress-plugins/clean-and-simple-contact-form
|
9 |
+
Description: A clean and simple contact form with Google reCAPTCHA and Twitter Bootstrap markup.
|
10 |
+
Version: 4.7.1
|
11 |
+
Author: Meghan Nicholas
|
12 |
+
Author URI: http://www.megnicholas.co.uk
|
13 |
+
License: GPLv2 or later
|
14 |
+
Text Domain: clean-and-simple-contact-form-by-meg-nicholas
|
15 |
+
Domain Path: /languages
|
16 |
+
*/
|
17 |
+
|
18 |
+
/*
|
19 |
+
This program is free software; you can redistribute it and/or
|
20 |
+
modify it under the terms of the GNU General Public License
|
21 |
+
as published by the Free Software Foundation; either version 2
|
22 |
+
of the License, or (at your option) any later version.
|
23 |
+
|
24 |
+
This program is distributed in the hope that it will be useful,
|
25 |
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
26 |
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
27 |
+
GNU General Public License for more details.
|
28 |
+
|
29 |
+
You should have received a copy of the GNU General Public License
|
30 |
+
along with this program; if not, write to the Free Software
|
31 |
+
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
32 |
+
*/
|
33 |
+
|
34 |
+
/*
|
35 |
+
* @package Main
|
36 |
+
*/
|
37 |
+
include ('shortcodes/contact-form.php');
|
38 |
+
include ('class.cscf.php');
|
39 |
+
include ('class.cscf_pluginsettings.php');
|
40 |
+
include ('class.cscf_settings.php');
|
41 |
+
include ('class.cscf_contact.php');
|
42 |
+
include ('class.view.php');
|
43 |
+
include ('class.cscf_filters.php');
|
44 |
+
include ('ajax.php');
|
45 |
+
include ('recaptchav2.php');
|
46 |
+
|
47 |
+
if (!defined('CSCF_THEME_DIR')) define('CSCF_THEME_DIR', ABSPATH . 'wp-content/themes/' . get_template());
|
48 |
+
|
49 |
+
if (!defined('CSCF_PLUGIN_NAME')) define('CSCF_PLUGIN_NAME', 'clean-and-simple-contact-form-by-meg-nicholas');
|
50 |
+
|
51 |
+
if (!defined('CSCF_PLUGIN_DIR')) define('CSCF_PLUGIN_DIR', WP_PLUGIN_DIR . '/' . CSCF_PLUGIN_NAME);
|
52 |
+
|
53 |
+
if (!defined('CSCF_PLUGIN_URL')) define('CSCF_PLUGIN_URL', WP_PLUGIN_URL . '/' . CSCF_PLUGIN_NAME);
|
54 |
+
|
55 |
+
if (!defined('CSCF_VERSION_KEY')) define('CSCF_VERSION_KEY', 'cscf_version');
|
56 |
+
|
57 |
+
if (!defined('CSCF_VERSION_NUM')) define('CSCF_VERSION_NUM', '4.7.1');
|
58 |
+
|
59 |
+
if (!defined('CSCF_OPTIONS_KEY')) define('CSCF_OPTIONS_KEY', 'cscf_options');
|
60 |
+
|
61 |
+
$cscf = new cscf();
|
62 |
+
|
63 |
+
/*get the current version and update options to the new option*/
|
64 |
+
$oldVersion = get_option(CSCF_VERSION_KEY);
|
65 |
+
update_option(CSCF_VERSION_KEY, CSCF_VERSION_NUM);
|
66 |
+
|
67 |
+
/*If this is a new installation then set some defaults*/
|
68 |
+
if ( $oldVersion == false ) {
|
69 |
+
$options = get_option(CSCF_OPTIONS_KEY);
|
70 |
+
$options['use_client_validation'] = true;
|
71 |
+
$options['load_stylesheet'] = true;
|
72 |
+
$options['confirm-email'] = true;
|
73 |
+
update_option(CSCF_OPTIONS_KEY,$options);
|
74 |
+
}
|
75 |
+
|
76 |
+
/*if necessary do an upgrade*/
|
77 |
+
if ($oldVersion < CSCF_VERSION_NUM) {
|
78 |
+
$cscf->Upgrade($oldVersion);
|
79 |
}
|
readme.txt
CHANGED
@@ -1,428 +1,431 @@
|
|
1 |
-
=== Contact Form Clean and Simple ===
|
2 |
-
Contributors: megnicholas
|
3 |
-
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=AKQM4KSBQ4H66
|
4 |
-
License: GPLv2 or later
|
5 |
-
License URI: http://www.gnu.org/licenses/gpl.html
|
6 |
-
Tags: simple, contact, form, contact button, contact form, contact form plugin, akismet, contacts, contacts form plugin, contact me, feedback form, bootstrap, twitter, google, reCAPTCHA, ajax, secure
|
7 |
-
Requires at least: 3.3
|
8 |
-
Tested up to:
|
9 |
-
Stable tag: 4.
|
10 |
-
|
11 |
-
A clean and simple AJAX contact form with Google reCAPTCHA, Twitter Bootstrap markup and Akismet spam filtering.
|
12 |
-
|
13 |
-
== Description ==
|
14 |
-
A clean and simple AJAX contact form with Google reCAPTCHA, Twitter Bootstrap markup and Akismet spam filtering.
|
15 |
-
|
16 |
-
* **Clean**: all user inputs are stripped in order to avoid cross-site scripting (XSS) vulnerabilities.
|
17 |
-
|
18 |
-
* **Simple**: AJAX enabled validation and submission for immediate response and guidance for your users (can be switched off).
|
19 |
-
|
20 |
-
* **Stylish**: Use the included stylesheet or switch it off and use your own for seamless integration with your website.
|
21 |
-
Uses **Twitter Bootstrap** classes.
|
22 |
-
|
23 |
-
* **Safe**: All incoming data is scanned for spam with **Akismet**.
|
24 |
-
|
25 |
-
This is a straightforward contact form for your WordPress site. There is very minimal set-up
|
26 |
-
required. Simply install, activate, and then place the short code **[cscf-contact-form]** on your web page.
|
27 |
-
|
28 |
-
A standard set of input boxes are provided, these include Email Address, Name, Message and a nice big ‘Send Message’ button.
|
29 |
-
|
30 |
-
When your user has completed the form an email will be sent to you containing your user’s message.
|
31 |
-
To reply simply click the ‘reply’ button on your email client.
|
32 |
-
The email address used is the one you have set up in WordPress under ‘Settings’ -> ‘General’, so do check this is correct.
|
33 |
-
|
34 |
-
To help prevent spam all data is scanned via Akismet.
|
35 |
-
For this to work you must have the [Akismet Plugin](http://wordpress.org/plugins/akismet/ "Akismet Plugin") installed and activated.
|
36 |
-
All spam will be placed in your 'comments' list which you can then review if you want to
|
37 |
-
[learn more](http://www.megnicholas.co.uk/articles/contact-form-plugin-can-detect-spam/ "Learn More").
|
38 |
-
|
39 |
-
For added piece of mind this plugin also allows you to add a ‘**reCAPTCHA**’.
|
40 |
-
This adds a picture of a couple of words to the bottom of the contact form.
|
41 |
-
Your user must correctly type the words before the form can be submitted, and in so doing, prove that they are human.
|
42 |
-
|
43 |
-
= Why Choose This Plugin? =
|
44 |
-
Granted there are many plugins of this type in existence already. Why use this one in-particular?
|
45 |
-
|
46 |
-
Here’s why:
|
47 |
-
|
48 |
-
* Minimal setup. Simply activate the plugin and place the shortcode [cscf-contact-form] on any post or page.
|
49 |
-
|
50 |
-
* **Safe**. All input entered by your user is stripped back to minimise as far as possible the likelihood of any
|
51 |
-
malicious user attempting to inject a script into your website.
|
52 |
-
If the Akismet plugin is activated all form data will be scanned for spam.
|
53 |
-
You can turn on reCAPTCHA to avoid your form being abused by bots.
|
54 |
-
|
55 |
-
* **Ajax enabled**. You have the option to turn on AJAX (client-side) validation and submission which gives your users an immediate response when completing the form without having to wait for the page to refresh.
|
56 |
-
|
57 |
-
* The form can **integrate seamlessly into your website**. Turn off the plugin’s default css style sheet so that your theme’s style sheet can be used instead.
|
58 |
-
|
59 |
-
* If your theme is based on **twitter bootstrap** then this plugin will fit right in because it already has all the right div’s and CSS classes for bootstrap.
|
60 |
-
|
61 |
-
* This plugin will only link in its jQuery file where it’s needed, it **will not impose** itself on every page of your whole site!
|
62 |
-
|
63 |
-
* Works with the **latest version of WordPress**.
|
64 |
-
|
65 |
-
* Written by an **experienced PHP programmer**, the code is rock solid, safe, and rigorously tested as standard practice.
|
66 |
-
|
67 |
-
Hopefully this plugin will fulfil all your needs, if not [get in-touch](http://www.megnicholas.co.uk/contact-me "Get In Touch") and I will customise to your exact requirements.
|
68 |
-
|
69 |
-
|
70 |
-
== Installation ==
|
71 |
-
There are two ways to install:
|
72 |
-
|
73 |
-
1. Click the ‘Install Now’ link from the plugin library listing to automatically download and install.
|
74 |
-
|
75 |
-
2. Download the plugin as a zip file. To install the zip file simply double click to extract it and place the whole folder in your wordpress plugins folder, e.g. [wordpress]/wp-content/plugins where [wordpress] is the directory that you installed WordPress in.
|
76 |
-
|
77 |
-
Then visit the plugin page on your wordpress site and click ‘Activate’ against the ‘Clean and Simple Contact Form’ plugin listing.
|
78 |
-
|
79 |
-
To place the contact form on your page use the shortcode [cscf-contact-form]
|
80 |
-
|
81 |
-
[More information on how to use the plugin.](http://www.megnicholas.co.uk/wordpress-plugins/clean-and-simple-contact-form/ "More Information")
|
82 |
-
|
83 |
-
== How to Use ==
|
84 |
-
Unless you want to change messages or add reCAPTCHA to your contact form then this plugin will work out of the box without any additional setup.
|
85 |
-
|
86 |
-
Important: Check that you have an email address set-up in your WordPress ‘Settings’->’General’ page. This is the address that the plugin will use to send the contents of the contact form.
|
87 |
-
|
88 |
-
To add the contact form to your WordPress website simply place the shortcode [cscf-contact-form] on the post or page that you wish the form to appear on.
|
89 |
-
|
90 |
-
**If you have Jetpack plugin installed disable the contact form otherwise the wrong form might display.**
|
91 |
-
|
92 |
-
[More information on how to use the plugin.](http://www.megnicholas.co.uk/wordpress-plugins/clean-and-simple-contact-form/ "More Information")
|
93 |
-
|
94 |
-
== Additional Settings ==
|
95 |
-
This plugin will work out of the box without any additional setup. You have the option to change the default messages that are displayed to your user and to add reCAPTCHA capabilities.
|
96 |
-
|
97 |
-
Go to the settings screen for the contact form plugin.
|
98 |
-
|
99 |
-
You will find a link to the setting screen against the entry of this plugin on the ‘Installed Plugins’ page.
|
100 |
-
|
101 |
-
Here is a list of things that you can change
|
102 |
-
|
103 |
-
* **Message**: The message displayed to the user at the top of the contact form.
|
104 |
-
|
105 |
-
* **Message Sent Heading**: The message heading or title displayed to the user after the message has been sent.
|
106 |
-
|
107 |
-
* **Message Sent Content**: The message content or body displayed to the user after the message has been sent.
|
108 |
-
|
109 |
-
* **Use this plugin’s default stylesheet**: The plugin comes with a default style sheet to make the form look nice for your user. Untick this if you want to use your theme’s stylesheet instead. The default stylesheet will simply not be linked in.
|
110 |
-
|
111 |
-
* **Use client side validation (Ajax)**: When ticked the contact form will be validated and submitted on the client giving your user instant feedback if they have filled the form in incorrectly. If you wish the form to be validated and submitted only to the server then untick this option.
|
112 |
-
|
113 |
-
* **Use reCAPTCHA**: Tick this option if you wish your form to have a reCAPTCHA box. ReCAPTCHA helps to avoid spam bots using your form by checking that the form filler is actually a real person. To use reCAPTCHA you will need to get a some special keys from google https://www.google.com/recaptcha/admin/create. Once you have your keys enter them into the Public key and Private key boxes
|
114 |
-
|
115 |
-
* **reCAPTCHA Public Key**: Enter the public key that you obtained from here.
|
116 |
-
|
117 |
-
* **reCAPTCHA Private Key**: Enter the private key that you obtained from here.
|
118 |
-
|
119 |
-
* **reCAPTCHA Theme**: Here you can change the reCAPTCHA box theme so that it fits with the style of your website.
|
120 |
-
|
121 |
-
* **Recipient Emails**: The email address where you would like all messages to be sent.
|
122 |
-
This will default to the email address you have specified under 'E-Mail Address' in your WordPress General Settings.
|
123 |
-
If you want your mail sent to a different address then enter it here.
|
124 |
-
You may enter multiple email addresses by clicking the '+' button.
|
125 |
-
|
126 |
-
* **Confirm Email Address**: Email confirmation is now optional. To force your user to re-type their email address tick 'Confirm Email Address'.
|
127 |
-
It is recommended that you leave this option on. If you turn this option off your user will only have to enter their email address once,
|
128 |
-
but if they enter it incorrectly you will have no way of getting back to them!
|
129 |
-
|
130 |
-
* **Email Subject**: This is the email subject that will appear on all messages. If you would like to set it to something different then enter it here.
|
131 |
-
|
132 |
-
* **Override 'From' Address**: If you tick this and then fill in the 'From Address:' box then all email will be sent from the given address NOT from the email address given by the form filler.
|
133 |
-
|
134 |
-
* **Option to allow enquiry to email themselves a copy of the message.
|
135 |
-
|
136 |
-
* **!NEW! Contact consent**: This option allows you to be GDPR compliant by adding a 'Consent to contact' check box at the bottom of the form.
|
137 |
-
|
138 |
-
|
139 |
-
== Screenshots ==
|
140 |
-
1. Contact Form With reCAPTCHA
|
141 |
-
2. Contact Form Without reCAPTCHA
|
142 |
-
3. Message Sent
|
143 |
-
4. Contact Form Options Screen
|
144 |
-
5. Place this shortcode on your post or page to deploy
|
145 |
-
|
146 |
-
== Demo ==
|
147 |
-
This is a demonstration of this plugin working on the default Twenty Twelve theme ->
|
148 |
-
[Clean and Simple Contact Form Demonstration](http://demo.megnicholas.co.uk/wordpress-clean-and-simple-contact-form "Plugin Demonstration")
|
149 |
-
|
150 |
-
==About Meg Nicholas ==
|
151 |
-
I am a freelance WordPress Developer.
|
152 |
-
[Hire me for all your Wordpress needs](http://www.megnicholas.co.uk "Hire Me").
|
153 |
-
|
154 |
-
== Frequently Asked Questions ==
|
155 |
-
= I get a message to say that the message could not be sent =
|
156 |
-
|
157 |
-
If you get this message then you have a general problem with email on your server. This plugin uses Wordpress's send mail function.
|
158 |
-
So a problem sending mail from this plugin indicates that Wordpress as a whole cannot send email.
|
159 |
-
Contact your web host provider for help, or use an SMTP plugin to use a third party email service.
|
160 |
-
|
161 |
-
= I don't receive the email =
|
162 |
-
|
163 |
-
* Check the recipient email on your settings screen, is it correct?
|
164 |
-
* Check in your spam or junk mail folder
|
165 |
-
* For Gmail check in 'All Mail', the email might have gone straight to archive
|
166 |
-
* Try overriding the 'From' email address in the settings screen. Use an email address you own or is from your own domain
|
167 |
-
|
168 |
-
= Why is a different contact form displayed? =
|
169 |
-
|
170 |
-
You may have a conflict with another plugin. Either deactivate the other contact form plugin, if you don't need it, or use
|
171 |
-
this alternative short code on your webpage - `[cscf-contact-form]`.
|
172 |
-
This problem often occurs when Jetpack plugin is installed.
|
173 |
-
|
174 |
-
= How do I display the contact form on my page/post? =
|
175 |
-
|
176 |
-
To put the contact form on your page, add the text:
|
177 |
-
`[cscf-contact-form]`
|
178 |
-
|
179 |
-
The contact form will appear when you view the page.
|
180 |
-
|
181 |
-
= When I use the style sheet that comes with the plugin my theme is affected =
|
182 |
-
|
183 |
-
It is impossible to test this plugin with all themes. Styling incompatibilities can occur. In this case, switch off the default stylesheet on the settings
|
184 |
-
screen so you can add your own styles to your theme's stylesheet.
|
185 |
-
|
186 |
-
= Can I have this plugin in my own language? =
|
187 |
-
|
188 |
-
Yes, I am currently building up translation files for this plugin. If your language is not yet available you are very welcome to translate it.
|
189 |
-
If you are not sure how to go about doing this [get in touch](http://www.megnicholas.co.uk/contact-me/ "Contact Me").
|
190 |
-
|
191 |
-
= How do I change the text box sizes? =
|
192 |
-
|
193 |
-
The plugin now uses Bootstrap 3. The text box widths now use up 100% of the available width.
|
194 |
-
This makes the form responsive to all types of media. If you want to have a fixed width for the form you can put some styling around the shortcode:
|
195 |
-
`<div style="width:600px;">[cscf-contact-form]</div>`
|
196 |
-
|
197 |
-
= Can I have multiple forms? =
|
198 |
-
|
199 |
-
Currently you may only have one contact form per page. You CAN however put the contact form on more than one page using the same shortcode.
|
200 |
-
Note that making changes to the settings will affect all implementations of the plugin across your site.
|
201 |
-
|
202 |
-
= Will this work with other plugins that use Google reCAPTCHA? =
|
203 |
-
Yes it will. HOWEVER, you cannot have more than one reCAPTCHA on a page. This is a constraint created by Google.
|
204 |
-
So for example, if your 'Contact Me' page has comments below it,
|
205 |
-
the reCAPTCHA for the contact form will be displayed correctly but not in the comments form below.
|
206 |
-
The comments form will never validate due to no supplied reCAPTCHA code.
|
207 |
-
|
208 |
-
== Changelog ==
|
209 |
-
= 4.7.
|
210 |
-
* Tested with Wordpress version
|
211 |
-
|
212 |
-
= 4.
|
213 |
-
*
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
*
|
219 |
-
|
220 |
-
*
|
221 |
-
*
|
222 |
-
*
|
223 |
-
* Added
|
224 |
-
|
225 |
-
*
|
226 |
-
*
|
227 |
-
= 4.5.
|
228 |
-
*
|
229 |
-
*
|
230 |
-
|
231 |
-
*
|
232 |
-
*
|
233 |
-
|
234 |
-
*
|
235 |
-
*
|
236 |
-
|
237 |
-
*
|
238 |
-
*
|
239 |
-
|
240 |
-
*
|
241 |
-
|
242 |
-
|
243 |
-
*
|
244 |
-
|
245 |
-
|
246 |
-
*
|
247 |
-
|
248 |
-
|
249 |
-
*
|
250 |
-
= 4.
|
251 |
-
*
|
252 |
-
*
|
253 |
-
= 4.3.
|
254 |
-
*
|
255 |
-
|
256 |
-
|
257 |
-
*
|
258 |
-
|
259 |
-
|
260 |
-
*
|
261 |
-
* Added
|
262 |
-
= 4.3.
|
263 |
-
*
|
264 |
-
*
|
265 |
-
|
266 |
-
*
|
267 |
-
*
|
268 |
-
|
269 |
-
*
|
270 |
-
|
271 |
-
= 4.
|
272 |
-
*
|
273 |
-
|
274 |
-
= 4.2.
|
275 |
-
*
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
*
|
281 |
-
= 4.2.
|
282 |
-
*
|
283 |
-
|
284 |
-
|
285 |
-
* Recaptcha library
|
286 |
-
|
287 |
-
*
|
288 |
-
|
289 |
-
*
|
290 |
-
*
|
291 |
-
|
292 |
-
*
|
293 |
-
*
|
294 |
-
|
295 |
-
*
|
296 |
-
|
297 |
-
*
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
*
|
306 |
-
*
|
307 |
-
|
308 |
-
*
|
309 |
-
|
310 |
-
* Added
|
311 |
-
*
|
312 |
-
|
313 |
-
|
314 |
-
*
|
315 |
-
*
|
316 |
-
= 4.1.
|
317 |
-
*
|
318 |
-
*
|
319 |
-
= 4.1.
|
320 |
-
*
|
321 |
-
* Added
|
322 |
-
|
323 |
-
*
|
324 |
-
*
|
325 |
-
*
|
326 |
-
|
327 |
-
|
328 |
-
* Added
|
329 |
-
|
330 |
-
|
331 |
-
*
|
332 |
-
*
|
333 |
-
*
|
334 |
-
*
|
335 |
-
*
|
336 |
-
*
|
337 |
-
*
|
338 |
-
*
|
339 |
-
|
340 |
-
*
|
341 |
-
*
|
342 |
-
|
343 |
-
|
344 |
-
*
|
345 |
-
|
346 |
-
|
347 |
-
*
|
348 |
-
|
349 |
-
|
350 |
-
*
|
351 |
-
*
|
352 |
-
|
353 |
-
*
|
354 |
-
|
355 |
-
*
|
356 |
-
*
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
= 4.
|
392 |
-
|
393 |
-
|
394 |
-
|
395 |
-
|
396 |
-
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
|
|
|
|
|
|
1 |
+
=== Contact Form Clean and Simple ===
|
2 |
+
Contributors: megnicholas
|
3 |
+
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=AKQM4KSBQ4H66
|
4 |
+
License: GPLv2 or later
|
5 |
+
License URI: http://www.gnu.org/licenses/gpl.html
|
6 |
+
Tags: simple, contact, form, contact button, contact form, contact form plugin, akismet, contacts, contacts form plugin, contact me, feedback form, bootstrap, twitter, google, reCAPTCHA, ajax, secure
|
7 |
+
Requires at least: 3.3
|
8 |
+
Tested up to: 5.3
|
9 |
+
Stable tag: 4.7.0
|
10 |
+
|
11 |
+
A clean and simple AJAX contact form with Google reCAPTCHA, Twitter Bootstrap markup and Akismet spam filtering.
|
12 |
+
|
13 |
+
== Description ==
|
14 |
+
A clean and simple AJAX contact form with Google reCAPTCHA, Twitter Bootstrap markup and Akismet spam filtering.
|
15 |
+
|
16 |
+
* **Clean**: all user inputs are stripped in order to avoid cross-site scripting (XSS) vulnerabilities.
|
17 |
+
|
18 |
+
* **Simple**: AJAX enabled validation and submission for immediate response and guidance for your users (can be switched off).
|
19 |
+
|
20 |
+
* **Stylish**: Use the included stylesheet or switch it off and use your own for seamless integration with your website.
|
21 |
+
Uses **Twitter Bootstrap** classes.
|
22 |
+
|
23 |
+
* **Safe**: All incoming data is scanned for spam with **Akismet**.
|
24 |
+
|
25 |
+
This is a straightforward contact form for your WordPress site. There is very minimal set-up
|
26 |
+
required. Simply install, activate, and then place the short code **[cscf-contact-form]** on your web page.
|
27 |
+
|
28 |
+
A standard set of input boxes are provided, these include Email Address, Name, Message and a nice big ‘Send Message’ button.
|
29 |
+
|
30 |
+
When your user has completed the form an email will be sent to you containing your user’s message.
|
31 |
+
To reply simply click the ‘reply’ button on your email client.
|
32 |
+
The email address used is the one you have set up in WordPress under ‘Settings’ -> ‘General’, so do check this is correct.
|
33 |
+
|
34 |
+
To help prevent spam all data is scanned via Akismet.
|
35 |
+
For this to work you must have the [Akismet Plugin](http://wordpress.org/plugins/akismet/ "Akismet Plugin") installed and activated.
|
36 |
+
All spam will be placed in your 'comments' list which you can then review if you want to
|
37 |
+
[learn more](http://www.megnicholas.co.uk/articles/contact-form-plugin-can-detect-spam/ "Learn More").
|
38 |
+
|
39 |
+
For added piece of mind this plugin also allows you to add a ‘**reCAPTCHA**’.
|
40 |
+
This adds a picture of a couple of words to the bottom of the contact form.
|
41 |
+
Your user must correctly type the words before the form can be submitted, and in so doing, prove that they are human.
|
42 |
+
|
43 |
+
= Why Choose This Plugin? =
|
44 |
+
Granted there are many plugins of this type in existence already. Why use this one in-particular?
|
45 |
+
|
46 |
+
Here’s why:
|
47 |
+
|
48 |
+
* Minimal setup. Simply activate the plugin and place the shortcode [cscf-contact-form] on any post or page.
|
49 |
+
|
50 |
+
* **Safe**. All input entered by your user is stripped back to minimise as far as possible the likelihood of any
|
51 |
+
malicious user attempting to inject a script into your website.
|
52 |
+
If the Akismet plugin is activated all form data will be scanned for spam.
|
53 |
+
You can turn on reCAPTCHA to avoid your form being abused by bots.
|
54 |
+
|
55 |
+
* **Ajax enabled**. You have the option to turn on AJAX (client-side) validation and submission which gives your users an immediate response when completing the form without having to wait for the page to refresh.
|
56 |
+
|
57 |
+
* The form can **integrate seamlessly into your website**. Turn off the plugin’s default css style sheet so that your theme’s style sheet can be used instead.
|
58 |
+
|
59 |
+
* If your theme is based on **twitter bootstrap** then this plugin will fit right in because it already has all the right div’s and CSS classes for bootstrap.
|
60 |
+
|
61 |
+
* This plugin will only link in its jQuery file where it’s needed, it **will not impose** itself on every page of your whole site!
|
62 |
+
|
63 |
+
* Works with the **latest version of WordPress**.
|
64 |
+
|
65 |
+
* Written by an **experienced PHP programmer**, the code is rock solid, safe, and rigorously tested as standard practice.
|
66 |
+
|
67 |
+
Hopefully this plugin will fulfil all your needs, if not [get in-touch](http://www.megnicholas.co.uk/contact-me "Get In Touch") and I will customise to your exact requirements.
|
68 |
+
|
69 |
+
|
70 |
+
== Installation ==
|
71 |
+
There are two ways to install:
|
72 |
+
|
73 |
+
1. Click the ‘Install Now’ link from the plugin library listing to automatically download and install.
|
74 |
+
|
75 |
+
2. Download the plugin as a zip file. To install the zip file simply double click to extract it and place the whole folder in your wordpress plugins folder, e.g. [wordpress]/wp-content/plugins where [wordpress] is the directory that you installed WordPress in.
|
76 |
+
|
77 |
+
Then visit the plugin page on your wordpress site and click ‘Activate’ against the ‘Clean and Simple Contact Form’ plugin listing.
|
78 |
+
|
79 |
+
To place the contact form on your page use the shortcode [cscf-contact-form]
|
80 |
+
|
81 |
+
[More information on how to use the plugin.](http://www.megnicholas.co.uk/wordpress-plugins/clean-and-simple-contact-form/ "More Information")
|
82 |
+
|
83 |
+
== How to Use ==
|
84 |
+
Unless you want to change messages or add reCAPTCHA to your contact form then this plugin will work out of the box without any additional setup.
|
85 |
+
|
86 |
+
Important: Check that you have an email address set-up in your WordPress ‘Settings’->’General’ page. This is the address that the plugin will use to send the contents of the contact form.
|
87 |
+
|
88 |
+
To add the contact form to your WordPress website simply place the shortcode [cscf-contact-form] on the post or page that you wish the form to appear on.
|
89 |
+
|
90 |
+
**If you have Jetpack plugin installed disable the contact form otherwise the wrong form might display.**
|
91 |
+
|
92 |
+
[More information on how to use the plugin.](http://www.megnicholas.co.uk/wordpress-plugins/clean-and-simple-contact-form/ "More Information")
|
93 |
+
|
94 |
+
== Additional Settings ==
|
95 |
+
This plugin will work out of the box without any additional setup. You have the option to change the default messages that are displayed to your user and to add reCAPTCHA capabilities.
|
96 |
+
|
97 |
+
Go to the settings screen for the contact form plugin.
|
98 |
+
|
99 |
+
You will find a link to the setting screen against the entry of this plugin on the ‘Installed Plugins’ page.
|
100 |
+
|
101 |
+
Here is a list of things that you can change
|
102 |
+
|
103 |
+
* **Message**: The message displayed to the user at the top of the contact form.
|
104 |
+
|
105 |
+
* **Message Sent Heading**: The message heading or title displayed to the user after the message has been sent.
|
106 |
+
|
107 |
+
* **Message Sent Content**: The message content or body displayed to the user after the message has been sent.
|
108 |
+
|
109 |
+
* **Use this plugin’s default stylesheet**: The plugin comes with a default style sheet to make the form look nice for your user. Untick this if you want to use your theme’s stylesheet instead. The default stylesheet will simply not be linked in.
|
110 |
+
|
111 |
+
* **Use client side validation (Ajax)**: When ticked the contact form will be validated and submitted on the client giving your user instant feedback if they have filled the form in incorrectly. If you wish the form to be validated and submitted only to the server then untick this option.
|
112 |
+
|
113 |
+
* **Use reCAPTCHA**: Tick this option if you wish your form to have a reCAPTCHA box. ReCAPTCHA helps to avoid spam bots using your form by checking that the form filler is actually a real person. To use reCAPTCHA you will need to get a some special keys from google https://www.google.com/recaptcha/admin/create. Once you have your keys enter them into the Public key and Private key boxes
|
114 |
+
|
115 |
+
* **reCAPTCHA Public Key**: Enter the public key that you obtained from here.
|
116 |
+
|
117 |
+
* **reCAPTCHA Private Key**: Enter the private key that you obtained from here.
|
118 |
+
|
119 |
+
* **reCAPTCHA Theme**: Here you can change the reCAPTCHA box theme so that it fits with the style of your website.
|
120 |
+
|
121 |
+
* **Recipient Emails**: The email address where you would like all messages to be sent.
|
122 |
+
This will default to the email address you have specified under 'E-Mail Address' in your WordPress General Settings.
|
123 |
+
If you want your mail sent to a different address then enter it here.
|
124 |
+
You may enter multiple email addresses by clicking the '+' button.
|
125 |
+
|
126 |
+
* **Confirm Email Address**: Email confirmation is now optional. To force your user to re-type their email address tick 'Confirm Email Address'.
|
127 |
+
It is recommended that you leave this option on. If you turn this option off your user will only have to enter their email address once,
|
128 |
+
but if they enter it incorrectly you will have no way of getting back to them!
|
129 |
+
|
130 |
+
* **Email Subject**: This is the email subject that will appear on all messages. If you would like to set it to something different then enter it here.
|
131 |
+
|
132 |
+
* **Override 'From' Address**: If you tick this and then fill in the 'From Address:' box then all email will be sent from the given address NOT from the email address given by the form filler.
|
133 |
+
|
134 |
+
* **Option to allow enquiry to email themselves a copy of the message.
|
135 |
+
|
136 |
+
* **!NEW! Contact consent**: This option allows you to be GDPR compliant by adding a 'Consent to contact' check box at the bottom of the form.
|
137 |
+
|
138 |
+
|
139 |
+
== Screenshots ==
|
140 |
+
1. Contact Form With reCAPTCHA
|
141 |
+
2. Contact Form Without reCAPTCHA
|
142 |
+
3. Message Sent
|
143 |
+
4. Contact Form Options Screen
|
144 |
+
5. Place this shortcode on your post or page to deploy
|
145 |
+
|
146 |
+
== Demo ==
|
147 |
+
This is a demonstration of this plugin working on the default Twenty Twelve theme ->
|
148 |
+
[Clean and Simple Contact Form Demonstration](http://demo.megnicholas.co.uk/wordpress-clean-and-simple-contact-form "Plugin Demonstration")
|
149 |
+
|
150 |
+
==About Meg Nicholas ==
|
151 |
+
I am a freelance WordPress Developer.
|
152 |
+
[Hire me for all your Wordpress needs](http://www.megnicholas.co.uk "Hire Me").
|
153 |
+
|
154 |
+
== Frequently Asked Questions ==
|
155 |
+
= I get a message to say that the message could not be sent =
|
156 |
+
|
157 |
+
If you get this message then you have a general problem with email on your server. This plugin uses Wordpress's send mail function.
|
158 |
+
So a problem sending mail from this plugin indicates that Wordpress as a whole cannot send email.
|
159 |
+
Contact your web host provider for help, or use an SMTP plugin to use a third party email service.
|
160 |
+
|
161 |
+
= I don't receive the email =
|
162 |
+
|
163 |
+
* Check the recipient email on your settings screen, is it correct?
|
164 |
+
* Check in your spam or junk mail folder
|
165 |
+
* For Gmail check in 'All Mail', the email might have gone straight to archive
|
166 |
+
* Try overriding the 'From' email address in the settings screen. Use an email address you own or is from your own domain
|
167 |
+
|
168 |
+
= Why is a different contact form displayed? =
|
169 |
+
|
170 |
+
You may have a conflict with another plugin. Either deactivate the other contact form plugin, if you don't need it, or use
|
171 |
+
this alternative short code on your webpage - `[cscf-contact-form]`.
|
172 |
+
This problem often occurs when Jetpack plugin is installed.
|
173 |
+
|
174 |
+
= How do I display the contact form on my page/post? =
|
175 |
+
|
176 |
+
To put the contact form on your page, add the text:
|
177 |
+
`[cscf-contact-form]`
|
178 |
+
|
179 |
+
The contact form will appear when you view the page.
|
180 |
+
|
181 |
+
= When I use the style sheet that comes with the plugin my theme is affected =
|
182 |
+
|
183 |
+
It is impossible to test this plugin with all themes. Styling incompatibilities can occur. In this case, switch off the default stylesheet on the settings
|
184 |
+
screen so you can add your own styles to your theme's stylesheet.
|
185 |
+
|
186 |
+
= Can I have this plugin in my own language? =
|
187 |
+
|
188 |
+
Yes, I am currently building up translation files for this plugin. If your language is not yet available you are very welcome to translate it.
|
189 |
+
If you are not sure how to go about doing this [get in touch](http://www.megnicholas.co.uk/contact-me/ "Contact Me").
|
190 |
+
|
191 |
+
= How do I change the text box sizes? =
|
192 |
+
|
193 |
+
The plugin now uses Bootstrap 3. The text box widths now use up 100% of the available width.
|
194 |
+
This makes the form responsive to all types of media. If you want to have a fixed width for the form you can put some styling around the shortcode:
|
195 |
+
`<div style="width:600px;">[cscf-contact-form]</div>`
|
196 |
+
|
197 |
+
= Can I have multiple forms? =
|
198 |
+
|
199 |
+
Currently you may only have one contact form per page. You CAN however put the contact form on more than one page using the same shortcode.
|
200 |
+
Note that making changes to the settings will affect all implementations of the plugin across your site.
|
201 |
+
|
202 |
+
= Will this work with other plugins that use Google reCAPTCHA? =
|
203 |
+
Yes it will. HOWEVER, you cannot have more than one reCAPTCHA on a page. This is a constraint created by Google.
|
204 |
+
So for example, if your 'Contact Me' page has comments below it,
|
205 |
+
the reCAPTCHA for the contact form will be displayed correctly but not in the comments form below.
|
206 |
+
The comments form will never validate due to no supplied reCAPTCHA code.
|
207 |
+
|
208 |
+
== Changelog ==
|
209 |
+
= 4.7.1 =
|
210 |
+
* Tested with Wordpress version 5.3
|
211 |
+
Fixed XSS vulnerability in GDPR consent message
|
212 |
+
= 4.7.0 =
|
213 |
+
* Tested with Wordpress version 4.9.6
|
214 |
+
* Added consent to contact checkbox for GDPR compliance
|
215 |
+
= 4.6.2 =
|
216 |
+
* Turkish translation update. Thanks to Abdullah Manaz! Tested up to WordPress 4.6.1.
|
217 |
+
= 4.6.1 =
|
218 |
+
* Fixed untranslated strings. Thanks to Abdullah Manaz!
|
219 |
+
= 4.6.0 =
|
220 |
+
* Prevent multiple 'send message' clicks.
|
221 |
+
* Changed text domain to plugin slug to allow for WP translation system import
|
222 |
+
* Removed advertising from settings screen
|
223 |
+
* Added Korean translation thanks to Lee Dae-yeop
|
224 |
+
* Added Romanian translation. Thanks to Marius Pruna.
|
225 |
+
* Update French translation thanks to Steph
|
226 |
+
* Added Hungarian translation. Thanks to János Sánta.
|
227 |
+
= 4.5.1 =
|
228 |
+
* Updated Polish translations thanks to Kacper
|
229 |
+
* Updated French translation
|
230 |
+
= 4.5.0 =
|
231 |
+
* Added support for google recaptcha2. Replaces recaptcha version 1
|
232 |
+
* Update to Italian translation thanks to Silvano
|
233 |
+
* Added back the DIV to the contact form view as this introduced a display issue
|
234 |
+
* Updated German translation thanks to schasoli
|
235 |
+
* Polish translation update thanks to Kacper Rucinski
|
236 |
+
= 4.4.4 =
|
237 |
+
* Added Serbian translation thanks to [Borisa Djuraskovic](http://www.webhostinghub.com "Borisa Djuraskovic")
|
238 |
+
* Added Slovenian translation thanks to Bekim Lutolli
|
239 |
+
* Fixed some 'notice' errors
|
240 |
+
* Recaptcha styling workaround for twenty fifteen theme
|
241 |
+
* Remove empty divs from view
|
242 |
+
= 4.4.3 =
|
243 |
+
* Remove branding
|
244 |
+
= 4.4.2 =
|
245 |
+
* Akismet tweak only log as spam if akismet_result = 'true'
|
246 |
+
* Updated Turkish translations thanks again to [Abdullah Manaz](http://manaz.net "Abdullah Manaz")
|
247 |
+
* Added Indonesian translations thanks to Beny Hirmansyah
|
248 |
+
= 4.4.0 =
|
249 |
+
* Fixed XSS issue
|
250 |
+
= 4.4.1 =
|
251 |
+
* Add option for enquiry to email themselves a copy of the message
|
252 |
+
* Update to Polish translation thanks to Radosław “Robaczek” Rak
|
253 |
+
= 4.3.4 =
|
254 |
+
* Added the wordpress page of contact form to the email
|
255 |
+
* Removed link in main contact form view
|
256 |
+
= 4.3.3 =
|
257 |
+
* Before overriding the from address, check that another plugin has not done it first.
|
258 |
+
Any plugin that overrides 'from email address' and 'from name' such as wp-mail-smtp plugin will take precedence over the settings in this plugin.
|
259 |
+
* Added 'reply-to' to the email header
|
260 |
+
* Moved the Name field before Email field
|
261 |
+
* Added Hebrew translation thanks to Shay Cohen
|
262 |
+
= 4.3.2 =
|
263 |
+
* Added Norwegian Bokmål translation thanks to Jann Vestby
|
264 |
+
* Added Brazilian Portugese translation originally a Portugese translation by Ricardo Santos aka BogasoBogolha
|
265 |
+
= 4.3.1 =
|
266 |
+
* Polish translation has been updated thanks to Arkadiusz Baron
|
267 |
+
* Updated Turkish translations thanks again to [Abdullah Manaz](http://manaz.net "Abdullah Manaz")
|
268 |
+
* New installations now have default stylesheet, ajax, and confirm-email options turned on
|
269 |
+
* Compatibility with WordPress 3.8
|
270 |
+
* Tested with twentyfourteen theme
|
271 |
+
= 4.3.0 =
|
272 |
+
* Contact form is now filtered for spam when the Akisturkishturkishturkmet plugin is present.
|
273 |
+
[Learn more](http://www.megnicholas.co.uk/articles/contact-form-plugin-can-detect-spam/ "Learn More").
|
274 |
+
= 4.2.5 =
|
275 |
+
* Fixed bug that caused a PHP notice to be generated when 'Confirm Email Message' option is switched off.
|
276 |
+
Thanks to MarrsAttax
|
277 |
+
= 4.2.4 =
|
278 |
+
* The requirement for users to confirm their email address is now optional.
|
279 |
+
When turned off users only need to enter their email address once.
|
280 |
+
* Added Arabic translation thanks to [Omar AlQabandi](http://www.PlusOmar.com "Omar AlQabandi")
|
281 |
+
= 4.2.3 =
|
282 |
+
* Added ability to specify multiple recipient email addresses
|
283 |
+
* Fix settings gui - there was a problem enabling 'From' Address option when javascript is not enabled.
|
284 |
+
= 4.2.2 =
|
285 |
+
* Recaptcha library has now been namespaced to 'cscf' to remove ALL possibility of conflicts with other plugins that also include this library.
|
286 |
+
= 4.2.1 =
|
287 |
+
* Fixed potential conflict with other themes or plugins that use Google reCAPTCHA. reCAPTCHA library is not loaded if it already loaded by another plugin or theme.
|
288 |
+
* Recaptcha library function is now used to generate the sign up url on the settings page. The site domain is passed into the url for convenience.
|
289 |
+
* Options subject, message, heading, and body text are now translated when they are retrieved from the the database. Previously only the default messages were translated when no values were found in the database.
|
290 |
+
* Improved housekeeping: generic name for settings array has been changed from 'array_key' to 'cscf-options'
|
291 |
+
= 4.2.0 =
|
292 |
+
* Updated Turkish translations thanks again to [Abdullah Manaz](http://manaz.net "Abdullah Manaz")
|
293 |
+
* Fixed a problem where certain texts on the settings screen were not being translated
|
294 |
+
thanks to [Abdullah Manaz](http://manaz.net "Abdullah Manaz") again for finding this
|
295 |
+
* Updates to FAQ section
|
296 |
+
* The settings link on the plugin page may now be translated
|
297 |
+
* The text 'Contact Form' on the admin screen menu may now be translated
|
298 |
+
* Added Greek translations thanks to Georgios Diamantopoulos
|
299 |
+
= 4.1.9 =
|
300 |
+
* Added support for Bootstrap 3.0.0. Plugin is still compatible with Bootstrap 2.3.2, but if your theme uses this version
|
301 |
+
please do not use the plugin's default style sheet (uncheck the box in the settings screen)
|
302 |
+
[more information here](http://www.megnicholas.co.uk/articles/version-4-1-9-supports-bootstrap-3/ "more information").
|
303 |
+
= 4.1.8 =
|
304 |
+
* Added Russian Translation thanks to Oleg
|
305 |
+
* Correct character encoding in Estonian translation thanks to [Marko Punnar](http://aretaja.org "Marko Punnar")
|
306 |
+
* Correct some Spanish translation errors thanks to rowanda
|
307 |
+
= 4.1.7 =
|
308 |
+
* Added a note about the short code to use on the settings screen.
|
309 |
+
* Added Estonian Translation thanks to [Marko Punnar](http://aretaja.org "Marko Punnar")
|
310 |
+
* Added Japanese language thanks to Nikhil Khullar
|
311 |
+
* Updated Turkish translation thanks again to Abdullah Manaz http://manaz.net
|
312 |
+
= 4.1.6 =
|
313 |
+
* Added ability to specify a 'from' address. When supplied the email will come from that address instead of the form filler's email address.
|
314 |
+
* Changed type of email input boxes to "email"
|
315 |
+
* Added Turkish translation thanks to Abdullah Manaz http://manaz.net
|
316 |
+
= 4.1.5 =
|
317 |
+
* Removed all carriage returns from views to avoid problems with wptexturize
|
318 |
+
* Fixed typo in Dutch translation.
|
319 |
+
= 4.1.4 =
|
320 |
+
* Added Slovak translation file - thanks to Peter Gašparík
|
321 |
+
* Added Catalan translation file - thanks to Llorenç
|
322 |
+
= 4.1.3 =
|
323 |
+
* Fixed escaped characters.
|
324 |
+
* Added more translation files
|
325 |
+
* Forms now submit via ajax.
|
326 |
+
* Upgraded jquery-validate.js to 1.11. Removed jquery metadata plugin, form validation is now built with data attributes instead of json in classes.
|
327 |
+
* Improved view html.
|
328 |
+
* Added translations: Dutch thanks to Daniel Tetteroo, Armenian thanks to [Artak Kolyan](http://ablog.gratun.am "Artak Kolyan"),
|
329 |
+
Polish thanks to Patryk Peas
|
330 |
+
= 4.1.2 =
|
331 |
+
* Added some FAQs
|
332 |
+
* Added alternative shortcode [cscf-contact-form] for use when conflicts could occur.
|
333 |
+
* Updated the documentation.
|
334 |
+
* Recaptcha form now responds to language changes
|
335 |
+
* Updated pot file to reflect new name space
|
336 |
+
* Changed name space from cff to cscf
|
337 |
+
* Settings screen: recaptcha theme and key inputs are immediately enabled/disabled as the 'Use reCAPTCHA' box is clicked.
|
338 |
+
* Corrected some html seen as invalid by http://validator.w3.org/
|
339 |
+
* removed '<?=' and replaced with '<?php echo' in cscf_settings, thanks go to andrewbacon
|
340 |
+
* Added notice to setting screen when JetPack's contact form is active
|
341 |
+
* Fixed problem where 'Please enter a valid email address' was not translating in the 'confirm email address' input
|
342 |
+
= 4.1.1 =
|
343 |
+
* Fixed potential conflicts with themes that use bootstrap
|
344 |
+
* Enabled internationalisation, this plugin will now work with multiple languages
|
345 |
+
* Added German translation file for my German friends, thanks to faktorzweinet for the translation
|
346 |
+
= 4.1.0 =
|
347 |
+
* Fixed a bug in class.cff_settings.php where php opening tag had got missed off. This problem caused the settings screen not to display correctly but only occurred with some versions of php. Please upgrade if you have this problem.
|
348 |
+
= 4.0.9 =
|
349 |
+
* Switched header argument of wp_mail over to a filter to remove any potential conflicts with other emailing plugins or themes
|
350 |
+
* The ability to set a different recipient email address. Previously all email was sent to the WordPress administrator email address.
|
351 |
+
* Allow the email subject to be customised.
|
352 |
+
= 4.0.8 =
|
353 |
+
* Fixed a bug: When using reCAPTCHA ajax did not work.
|
354 |
+
* Fixed a bug: Ajax validation was not checking email address were equal (server side was doing it instead)
|
355 |
+
* Improvement: Ajax now works better.
|
356 |
+
* Documentation update: nicer links (worked how to do them in markdown!), changelog and upgrade notice sections now correctly formatted.
|
357 |
+
= 4.0.7 =
|
358 |
+
* Fixed a bug: Plugin name is actually clean-and-simple-contact-form-by-meg-nicholas now (not contact-form) but this new name needed to be updated in the plugin settings definitions. I also needed to rename contact-form.php to clean-and-simple-contact-form-by-meg-nicholas.php. My thanks to Jakub for finding this bug.
|
359 |
+
* If your webpage is ssl then reCAPTCHA will now also use ssl mode.
|
360 |
+
|
361 |
+
|
362 |
+
== Upgrade Notice ==
|
363 |
+
= 4.7.0 =
|
364 |
+
Tested with Wordpress version 4.9.6. Added 'consent to contact' GDPR compliance message
|
365 |
+
= 4.6.2 =
|
366 |
+
Updated translations. Tested up to WordPress 4.6.1.
|
367 |
+
= 4.6.0 =
|
368 |
+
Updated translations. Correct textdomain. Prevent multiple clicks.
|
369 |
+
= 4.5.1 =
|
370 |
+
Translation updates
|
371 |
+
= 4.5.0 =
|
372 |
+
Added support for Google Recaptcha2. Updated translation. Fixed layout bug.
|
373 |
+
= 4.4.4 =
|
374 |
+
Added languages, css fix for twenty fifteen theme, remove 'notice' errors, remove empty divs
|
375 |
+
= 4.4.3 =
|
376 |
+
Tested up to 4.1
|
377 |
+
= 4.4.2 =
|
378 |
+
Akismet tweak and translation updates
|
379 |
+
= 4.4.1 =
|
380 |
+
Fixed XSS issue
|
381 |
+
= 4.4.0 =
|
382 |
+
Added option for enquiry to email themselves a copy of the message plus Polish translation updated
|
383 |
+
= 4.3.4 =
|
384 |
+
Email now includes page url of contact form, removed link in main contact form view
|
385 |
+
= 4.3.3 =
|
386 |
+
Hebrew Language added, name field moved to top of form, added 'reply-to'
|
387 |
+
= 4.3.2 =
|
388 |
+
Added Norwegian and Brazilian Portugese Translations
|
389 |
+
= 4.3.1 =
|
390 |
+
Checked compatibility with WP 3.8 and TwentyFourteen theme, translation updates, defaults for new installations
|
391 |
+
= 4.3.0 =
|
392 |
+
Contact form is now filtered for spam when the Akismet plugin is present.
|
393 |
+
[Learn more](http://www.megnicholas.co.uk/articles/contact-form-plugin-can-detect-spam/ "Learn More").
|
394 |
+
= 4.2.5 =
|
395 |
+
Small bug fix
|
396 |
+
= 4.2.4 =
|
397 |
+
'Confirm Email' can now be turned off. Arabic translation added.
|
398 |
+
= 4.2.3 =
|
399 |
+
Multiple recipients are now possible
|
400 |
+
= 4.2.2 =
|
401 |
+
Remove ALL possibility of conflicts with other plugins that also include Google reCAPTCHA library
|
402 |
+
= 4.2.1 =
|
403 |
+
Translation and housekeeping updates
|
404 |
+
= 4.2.0 =
|
405 |
+
Translation and documentation updates
|
406 |
+
= 4.1.9 =
|
407 |
+
Support for [Bootstrap 3](http://www.megnicholas.co.uk/articles/version-4-1-9-supports-bootstrap-3/ "More information on 4.1.9")
|
408 |
+
= 4.1.8 =
|
409 |
+
Added Russian translation and some modifications to Estonian and Spanish translations
|
410 |
+
= 4.1.7
|
411 |
+
More translations. A helpful note about the short code to use has been put on the settings screen
|
412 |
+
= 4.1.6 =
|
413 |
+
Ability to specify a 'From' address. This email will be used to send the mail instead of the form filler's email address.
|
414 |
+
= 4.1.5 =
|
415 |
+
Works with themes that pre-process the html.
|
416 |
+
= 4.1.4 =
|
417 |
+
New translations - Slovak and Catalan
|
418 |
+
= 4.1.3 =
|
419 |
+
Form now submits via ajax!
|
420 |
+
= 4.1.2 =
|
421 |
+
Alternative shortcode, recaptcha internationalisation, Jetpack conflict warning notice
|
422 |
+
= 4.1.1 =
|
423 |
+
Internationalisation, fixed conflict with some bootstrapped themes.
|
424 |
+
= 4.1.0 =
|
425 |
+
Please upgrade if your settings screen is not displaying.
|
426 |
+
= 4.0.9 =
|
427 |
+
More customisation: recipient email address, and email subject.
|
428 |
+
= 4.0.8 =
|
429 |
+
Ajax now works when your form has reCAPTCHA on it. Ajax validation is now cleaner.
|
430 |
+
= 4.0.7 =
|
431 |
+
Fixed a bug which occurred when plugin name was changed. reCAPTCHA will now use ssl if your webpage is ssl.
|