Version Description
Download this release
Release Info
Developer | takayukister |
Plugin | ![]() |
Version | 1.10 |
Comparing to | |
See all releases |
Code changes from version 1.9.5.1 to 1.10
- README.txt +5 -3
- admin/admin-panel.php +114 -87
- admin/admin-stylesheet.css +31 -1
- admin/admin.php +372 -0
- admin/wpcf7-admin.js +110 -86
- contact-form-7.js +3 -0
- includes/acceptance.php +21 -0
- includes/akismet.php +73 -0
- includes/captcha.php +190 -0
- includes/classes.php +592 -0
- includes/formatting.php +78 -0
- includes/functions.php +82 -0
- includes/mail.php +70 -0
- includes/pipe.php +73 -0
- includes/quiz.php +34 -0
- includes/upload.php +148 -0
- languages/wpcf7-bs.mo +0 -0
- languages/wpcf7-bs.po +427 -0
- languages/wpcf7-hu_HU.mo +0 -0
- languages/wpcf7-hu_HU.po +262 -194
- languages/wpcf7-it_IT.mo +0 -0
- languages/wpcf7-it_IT.po +84 -76
- languages/wpcf7-ja.mo +0 -0
- languages/wpcf7-ja.po +242 -213
- languages/wpcf7-sr_RS.mo +0 -0
- languages/wpcf7-sr_RS.po +427 -0
- languages/wpcf7-sv_SE.mo +0 -0
- languages/wpcf7-sv_SE.po +258 -121
- languages/wpcf7.pot +238 -209
- stylesheet.css +4 -0
- wp-contact-form-7.php +309 -1755
README.txt
CHANGED
@@ -3,8 +3,8 @@ Contributors: takayukister
|
|
3 |
Donate link: http://pledgie.com/campaigns/3117
|
4 |
Tags: contact, contact form, email, ajax, captcha, akismet
|
5 |
Requires at least: 2.5
|
6 |
-
Tested up to: 2.
|
7 |
-
Stable tag: 1.
|
8 |
|
9 |
Just another contact form plugin. Simple but flexible.
|
10 |
|
@@ -20,6 +20,7 @@ Since being published in August 2007, Contact Form 7 has been translated into a
|
|
20 |
|
21 |
* Albanian (sq) - [Olgi Zenullari](http://www.olgizenullari.com/)
|
22 |
* Arabic (ar) - [Tarek Chaaban](http://www.chaaban.info/) and Muhammed Lardi
|
|
|
23 |
* Brazilian Portuguese (pt_BR) - [Leonardo Pinheiro](http://www.eletrikabarbarella.com.br/) (updated by [Henrique Vianna](http://henriquevianna.com/))
|
24 |
* Bulgarian (bg_BG) - [Iliyan Darganov](http://www.darganov.com/)
|
25 |
* Catalan (ca_ES) - [Jordi Sancho](http://www.qasolutions.net/blog)
|
@@ -49,10 +50,11 @@ Since being published in August 2007, Contact Form 7 has been translated into a
|
|
49 |
* Portuguese (pt_PT) - [Hugo Baeta](http://hugobaeta.com)
|
50 |
* Russian (ru_RU) - [Dmitry Volotovich](http://www.volnov.com)
|
51 |
* Romanian (ro_RO) - [Stas Sushkov](http://stas.nerd.ro/)
|
|
|
52 |
* Slovene (sl_SI) - [Mihael Simonič](http://smihael.bplaced.net)
|
53 |
* Spanish (es_ES) - [Jordi Sancho](http://www.qasolutions.net/blog)
|
54 |
(updated by [Vladimir Prieto](http://vladimir.prie.to/), [Federico Mikaelian](http://www.fedemika.com.ar/) and [Matias Baldanza](http://matiasbaldanza.com/))
|
55 |
-
* Swedish (sv_SE) - [Fredrik Jonsson](http://www.fredda-o-ac.se/)
|
56 |
* Turkish (tr_TR) - [Roman Neumuller](http://katpatuka.wordpress.com) (updated by [Hasan Yılmaz](http://hedefturkce.com/))
|
57 |
* Ukrainian (uk_UA) - [Andrey Kovba](http://myserver.com.ua/)
|
58 |
* Vietnamese (vi) - Thanh Hải, Hà
|
3 |
Donate link: http://pledgie.com/campaigns/3117
|
4 |
Tags: contact, contact form, email, ajax, captcha, akismet
|
5 |
Requires at least: 2.5
|
6 |
+
Tested up to: 2.8-beta2
|
7 |
+
Stable tag: 1.10
|
8 |
|
9 |
Just another contact form plugin. Simple but flexible.
|
10 |
|
20 |
|
21 |
* Albanian (sq) - [Olgi Zenullari](http://www.olgizenullari.com/)
|
22 |
* Arabic (ar) - [Tarek Chaaban](http://www.chaaban.info/) and Muhammed Lardi
|
23 |
+
* Bosnian (bs) - [Vedran](http://www.seorabbit.com/)
|
24 |
* Brazilian Portuguese (pt_BR) - [Leonardo Pinheiro](http://www.eletrikabarbarella.com.br/) (updated by [Henrique Vianna](http://henriquevianna.com/))
|
25 |
* Bulgarian (bg_BG) - [Iliyan Darganov](http://www.darganov.com/)
|
26 |
* Catalan (ca_ES) - [Jordi Sancho](http://www.qasolutions.net/blog)
|
50 |
* Portuguese (pt_PT) - [Hugo Baeta](http://hugobaeta.com)
|
51 |
* Russian (ru_RU) - [Dmitry Volotovich](http://www.volnov.com)
|
52 |
* Romanian (ro_RO) - [Stas Sushkov](http://stas.nerd.ro/)
|
53 |
+
* Serbian (sr_RS) - [Vedran](http://www.seorabbit.com/)
|
54 |
* Slovene (sl_SI) - [Mihael Simonič](http://smihael.bplaced.net)
|
55 |
* Spanish (es_ES) - [Jordi Sancho](http://www.qasolutions.net/blog)
|
56 |
(updated by [Vladimir Prieto](http://vladimir.prie.to/), [Federico Mikaelian](http://www.fedemika.com.ar/) and [Matias Baldanza](http://matiasbaldanza.com/))
|
57 |
+
* Swedish (sv_SE) - [Fredrik Jonsson](http://www.fredda-o-ac.se/) (updated by [the Swedish community](http://wp-support.se/))
|
58 |
* Turkish (tr_TR) - [Roman Neumuller](http://katpatuka.wordpress.com) (updated by [Hasan Yılmaz](http://hedefturkce.com/))
|
59 |
* Ukrainian (uk_UA) - [Andrey Kovba](http://myserver.com.ua/)
|
60 |
* Vietnamese (vi) - Thanh Hải, Hà
|
admin/admin-panel.php
CHANGED
@@ -1,34 +1,34 @@
|
|
1 |
-
<?php if (! version_compare($wp_version, '2.7', '>=') && isset($updated_message)) : ?>
|
2 |
<div id="message" class="updated fade"><p><strong><?php echo $updated_message; ?></strong></p></div>
|
3 |
<?php endif; ?>
|
4 |
<div class="wrap wpcf7">
|
5 |
-
<?php if (function_exists('screen_icon')) screen_icon(); ?>
|
6 |
-
<h2><?php _e('Contact Form 7', 'wpcf7'); ?></h2>
|
7 |
-
|
8 |
-
<?php if (version_compare($wp_version, '2.7', '>=') && isset($updated_message)) : ?>
|
9 |
<div id="message" class="updated fade"><p><strong><?php echo $updated_message; ?></strong></p></div>
|
10 |
<?php endif; ?>
|
11 |
|
12 |
<ul class="subsubsub">
|
13 |
-
<?php foreach ($contact_forms as $k => $v) : ?>
|
14 |
-
<li><a href="<?php echo $base_url . '?page=' . $page . '&contactform=' . $k ?>"<?php if ($k == $current) echo ' class="current"'; ?>>
|
15 |
<?php echo $v['title']; ?></a> |</li>
|
16 |
<?php endforeach; ?>
|
17 |
|
18 |
-
<?php if (
|
19 |
<li class="addnew">
|
20 |
-
<a href="<?php echo $base_url . '?page=' . $page . '&contactform=new'; ?>"<?php if ($unsaved) echo ' class="current"'; ?>>
|
21 |
-
<?php _e('Add new', 'wpcf7'); ?></a></li>
|
22 |
<?php endif; ?>
|
23 |
</ul>
|
24 |
|
25 |
<br class="clear" />
|
26 |
|
27 |
-
<?php if ($cf) : ?>
|
28 |
-
<?php $disabled = (
|
29 |
|
30 |
<form method="post" action="<?php echo $base_url . '?page=' . $page . '&contactform=' . $current; ?>" id="wpcf7-admin-form-element">
|
31 |
-
<?php if (
|
32 |
<input type="hidden" id="wpcf7-id" name="wpcf7-id" value="<?php echo $current; ?>" />
|
33 |
|
34 |
<table class="widefat">
|
@@ -36,30 +36,32 @@
|
|
36 |
<tr>
|
37 |
<td scope="col">
|
38 |
<div style="position: relative;">
|
39 |
-
<input type="text" id="wpcf7-title" name="wpcf7-title" size="40" value="<?php echo htmlspecialchars($cf
|
40 |
|
41 |
-
<?php if (! $unsaved) : ?>
|
42 |
<p class="tagcode">
|
43 |
-
<?php _e('Copy this code and paste it into your post, page or text widget content.', 'wpcf7'); ?><br />
|
44 |
<input type="text" id="contact-form-anchor-text" onfocus="this.select();" readonly="readonly" />
|
45 |
</p>
|
46 |
<?php endif; ?>
|
47 |
|
48 |
-
<?php if (
|
49 |
<div class="save-contact-form">
|
50 |
-
<input type="submit" class="button button-highlighted" name="wpcf7-save" value="<?php _e('Save', 'wpcf7'); ?>" />
|
51 |
</div>
|
52 |
<?php endif; ?>
|
53 |
|
54 |
-
<?php if (
|
55 |
<div class="actions-link">
|
56 |
-
<?php $copy_nonce = wp_create_nonce('wpcf7-copy_' . $current); ?>
|
57 |
-
<input type="submit" name="wpcf7-copy" class="copy" value="<?php _e('Copy', 'wpcf7'); ?>"
|
58 |
<?php echo "onclick=\"this.form._wpnonce.value = '$copy_nonce'; return true;\""; ?> />
|
59 |
|
|
60 |
-
<?php $delete_nonce = wp_create_nonce('wpcf7-delete_' . $current); ?>
|
61 |
-
<input type="submit" name="wpcf7-delete" class="delete" value="<?php _e('Delete', 'wpcf7'); ?>"
|
62 |
-
<?php echo "onclick=\"if (confirm('" .
|
|
|
|
|
63 |
</div>
|
64 |
<?php endif; ?>
|
65 |
</div>
|
@@ -68,19 +70,19 @@
|
|
68 |
</tbody>
|
69 |
</table>
|
70 |
|
71 |
-
<?php if (
|
72 |
|
73 |
<table class="widefat" style="margin-top: 1em;">
|
74 |
<thead>
|
75 |
<tr>
|
76 |
-
<th scope="col" colspan="2"><?php _e('Form', 'wpcf7'); ?></th>
|
77 |
</tr>
|
78 |
</thead>
|
79 |
<tbody>
|
80 |
<tr>
|
81 |
<td scope="col" style="width: 50%;">
|
82 |
<div>
|
83 |
-
<textarea id="wpcf7-form" name="wpcf7-form" cols="100" rows="20"><?php echo htmlspecialchars($cf
|
84 |
</div>
|
85 |
</td>
|
86 |
<td scope="col" style="width: 50%;">
|
@@ -93,43 +95,47 @@
|
|
93 |
<table class="widefat" style="margin-top: 1em;">
|
94 |
<thead>
|
95 |
<tr>
|
96 |
-
<th scope="col" colspan="2"><?php _e('Mail', 'wpcf7'); ?></th>
|
97 |
</tr>
|
98 |
</thead>
|
99 |
<tbody>
|
100 |
<tr>
|
101 |
<td scope="col" style="width: 50%;">
|
102 |
<div class="mail-field">
|
103 |
-
<label for="wpcf7-mail-recipient"><?php _e('To:', 'wpcf7'); ?></label><br />
|
104 |
-
<input type="text" id="wpcf7-mail-recipient" name="wpcf7-mail-recipient" class="wide" size="70" value="<?php echo htmlspecialchars($cf
|
105 |
</div>
|
106 |
<div class="mail-field">
|
107 |
-
<label for="wpcf7-mail-sender"><?php _e('From:', 'wpcf7'); ?></label><br />
|
108 |
-
<input type="text" id="wpcf7-mail-sender" name="wpcf7-mail-sender" class="wide" size="70" value="<?php echo htmlspecialchars($cf
|
109 |
</div>
|
110 |
<div class="mail-field">
|
111 |
-
<label for="wpcf7-mail-subject"><?php _e('Subject:', 'wpcf7'); ?></label><br />
|
112 |
-
<input type="text" id="wpcf7-mail-subject" name="wpcf7-mail-subject" class="wide" size="70" value="<?php echo htmlspecialchars($cf
|
113 |
</div>
|
114 |
<div class="pseudo-hr"></div>
|
115 |
<div class="mail-field">
|
116 |
-
<label for="wpcf7-mail-
|
117 |
-
|
118 |
-
|
|
|
|
|
|
|
|
|
119 |
<?php endif; ?>
|
120 |
<br />
|
121 |
-
<input type="text" id="wpcf7-mail-attachments" name="wpcf7-mail-attachments" class="wide" size="70" value="<?php echo htmlspecialchars($cf
|
122 |
</div>
|
123 |
<div class="pseudo-hr"></div>
|
124 |
<div class="mail-field">
|
125 |
-
<input type="checkbox" id="wpcf7-mail-use-html" name="wpcf7-mail-use-html" value="1"<?php echo ($cf
|
126 |
-
<label for="wpcf7-mail-use-html"><?php _e('Use HTML content type', 'wpcf7'); ?></label>
|
127 |
</div>
|
128 |
</td>
|
129 |
<td scope="col" style="width: 50%;">
|
130 |
<div class="mail-field">
|
131 |
-
<label for="wpcf7-mail-body"><?php _e('Message body:', 'wpcf7'); ?></label><br />
|
132 |
-
<textarea id="wpcf7-mail-body" name="wpcf7-mail-body" cols="100" rows="16"><?php echo htmlspecialchars($cf
|
133 |
</div>
|
134 |
</td>
|
135 |
</tr>
|
@@ -139,49 +145,53 @@
|
|
139 |
<table class="widefat" style="margin-top: 1em;">
|
140 |
<thead>
|
141 |
<tr>
|
142 |
-
<th scope="col" colspan="2"><?php _e('Mail (2)', 'wpcf7'); ?></th>
|
143 |
</tr>
|
144 |
</thead>
|
145 |
<tbody>
|
146 |
<tr>
|
147 |
<td scope="col" colspan="2">
|
148 |
-
<input type="checkbox" id="wpcf7-mail-2-active" name="wpcf7-mail-2-active" value="1"<?php echo ($cf
|
149 |
-
<label for="wpcf7-mail-2-active"><?php _e('Use mail (2)', 'wpcf7'); ?></label>
|
150 |
</td>
|
151 |
</tr>
|
152 |
<tr id="mail-2-fields">
|
153 |
<td scope="col" style="width: 50%;">
|
154 |
<div class="mail-field">
|
155 |
-
<label for="wpcf7-mail-2-recipient"><?php _e('To:', 'wpcf7'); ?></label><br />
|
156 |
-
<input type="text" id="wpcf7-mail-2-recipient" name="wpcf7-mail-2-recipient" class="wide" size="70" value="<?php echo htmlspecialchars($cf
|
157 |
</div>
|
158 |
<div class="mail-field">
|
159 |
-
<label for="wpcf7-mail-2-sender"><?php _e('From:', 'wpcf7'); ?></label><br />
|
160 |
-
<input type="text" id="wpcf7-mail-2-sender" name="wpcf7-mail-2-sender" class="wide" size="70" value="<?php echo htmlspecialchars($cf
|
161 |
</div>
|
162 |
<div class="mail-field">
|
163 |
-
<label for="wpcf7-mail-2-subject"><?php _e('Subject:', 'wpcf7'); ?></label><br />
|
164 |
-
<input type="text" id="wpcf7-mail-2-subject" name="wpcf7-mail-2-subject" class="wide" size="70" value="<?php echo htmlspecialchars($cf
|
165 |
</div>
|
166 |
<div class="pseudo-hr"></div>
|
167 |
<div class="mail-field">
|
168 |
-
<label for="wpcf7-mail-2-
|
169 |
-
|
170 |
-
|
|
|
|
|
|
|
|
|
171 |
<?php endif; ?>
|
172 |
<br />
|
173 |
-
<input type="text" id="wpcf7-mail-2-attachments" name="wpcf7-mail-2-attachments" class="wide" size="70" value="<?php echo htmlspecialchars($cf
|
174 |
</div>
|
175 |
<div class="pseudo-hr"></div>
|
176 |
<div class="mail-field">
|
177 |
-
<input type="checkbox" id="wpcf7-mail-2-use-html" name="wpcf7-mail-2-use-html" value="1"<?php echo ($cf
|
178 |
-
<label for="wpcf7-mail-2-use-html"><?php _e('Use HTML content type', 'wpcf7'); ?></label>
|
179 |
</div>
|
180 |
</td>
|
181 |
<td scope="col" style="width: 50%;">
|
182 |
<div class="mail-field">
|
183 |
-
<label for="wpcf7-mail-2-body"><?php _e('Message body:', 'wpcf7'); ?></label><br />
|
184 |
-
<textarea id="wpcf7-mail-2-body" name="wpcf7-mail-2-body" cols="100" rows="16"><?php echo htmlspecialchars($cf
|
185 |
</div>
|
186 |
</td>
|
187 |
</tr>
|
@@ -191,7 +201,7 @@
|
|
191 |
<table class="widefat" style="margin-top: 1em;">
|
192 |
<thead>
|
193 |
<tr>
|
194 |
-
<th scope="col"><?php _e('Messages', 'wpcf7'); ?> <span id="message-fields-toggle-switch"></span></th>
|
195 |
</tr>
|
196 |
</thead>
|
197 |
<tbody>
|
@@ -199,52 +209,52 @@
|
|
199 |
<td scope="col">
|
200 |
<div id="message-fields">
|
201 |
<div class="message-field">
|
202 |
-
<label for="wpcf7-message-mail-sent-ok"><em># <?php _e("Sender's message was sent successfully", 'wpcf7'); ?></em></label><br />
|
203 |
-
<input type="text" id="wpcf7-message-mail-sent-ok" name="wpcf7-message-mail-sent-ok" class="wide" size="70" value="<?php echo htmlspecialchars($cf
|
204 |
</div>
|
205 |
<div class="message-field">
|
206 |
-
<label for="wpcf7-message-mail-sent-ng"><em># <?php _e("Sender's message was failed to send", 'wpcf7'); ?></em></label><br />
|
207 |
-
<input type="text" id="wpcf7-message-mail-sent-ng" name="wpcf7-message-mail-sent-ng" class="wide" size="70" value="<?php echo htmlspecialchars($cf
|
208 |
</div>
|
209 |
<div class="message-field">
|
210 |
-
<label for="wpcf7-message-akismet-says-spam"><em># <?php _e("Akismet judged the sending activity as spamming", 'wpcf7'); ?></em></label><br />
|
211 |
-
<input type="text" id="wpcf7-message-akismet-says-spam" name="wpcf7-message-akismet-says-spam" class="wide" size="70" value="<?php echo htmlspecialchars($cf
|
212 |
</div>
|
213 |
<div class="message-field">
|
214 |
-
<label for="wpcf7-message-validation-error"><em># <?php _e("Validation errors occurred", 'wpcf7'); ?></em></label><br />
|
215 |
-
<input type="text" id="wpcf7-message-validation-error" name="wpcf7-message-validation-error" class="wide" size="70" value="<?php echo htmlspecialchars($cf
|
216 |
</div>
|
217 |
<div class="message-field" style="margin-top: 1em;">
|
218 |
-
<label for="wpcf7-message-invalid-required"><em># <?php _e("There is a field that sender is needed to fill in", 'wpcf7'); ?></em></label><br />
|
219 |
-
<input type="text" id="wpcf7-message-invalid-required" name="wpcf7-message-invalid-required" class="wide" size="70" value="<?php echo htmlspecialchars($cf
|
220 |
</div>
|
221 |
<div class="message-field">
|
222 |
-
<label for="wpcf7-message-invalid-email"><em># <?php _e("Email address that sender entered is invalid", 'wpcf7'); ?></em></label><br />
|
223 |
-
<input type="text" id="wpcf7-message-invalid-email" name="wpcf7-message-invalid-email" class="wide" size="70" value="<?php echo htmlspecialchars($cf
|
224 |
</div>
|
225 |
<div class="message-field">
|
226 |
-
<label for="wpcf7-message-accept-terms"><em># <?php _e("There is a field of term that sender is needed to accept", 'wpcf7'); ?></em></label><br />
|
227 |
-
<input type="text" id="wpcf7-message-accept-terms" name="wpcf7-message-accept-terms" class="wide" size="70" value="<?php echo htmlspecialchars($cf
|
228 |
</div>
|
229 |
<div class="message-field">
|
230 |
-
<label for="wpcf7-message-quiz-answer-not-correct"><em># <?php _e("Sender doesn't enter the correct answer to the quiz", 'wpcf7'); ?></em></label><br />
|
231 |
-
<input type="text" id="wpcf7-message-quiz-answer-not-correct" name="wpcf7-message-quiz-answer-not-correct" class="wide" size="70" value="<?php echo htmlspecialchars($cf
|
232 |
</div>
|
233 |
<div class="message-field">
|
234 |
-
<label for="wpcf7-message-captcha-not-match"><em># <?php _e("The code that sender entered does not match the CAPTCHA", 'wpcf7'); ?></em></label><br />
|
235 |
-
<input type="text" id="wpcf7-message-captcha-not-match" name="wpcf7-message-captcha-not-match" class="wide" size="70" value="<?php echo htmlspecialchars($cf
|
236 |
</div>
|
237 |
<div class="message-field">
|
238 |
-
<label for="wpcf7-message-upload-failed"><em># <?php _e("Uploading a file fails for any reason", 'wpcf7'); ?></em></label><br />
|
239 |
-
<input type="text" id="wpcf7-message-upload-failed" name="wpcf7-message-upload-failed" class="wide" size="70" value="<?php echo htmlspecialchars($cf
|
240 |
</div>
|
241 |
<div class="message-field">
|
242 |
-
<label for="wpcf7-message-upload-file-type-invalid"><em># <?php _e("Uploaded file is not allowed file type", 'wpcf7'); ?></em></label><br />
|
243 |
-
<input type="text" id="wpcf7-message-upload-file-type-invalid" name="wpcf7-message-upload-file-type-invalid" class="wide" size="70" value="<?php echo htmlspecialchars($cf
|
244 |
</div>
|
245 |
<div class="message-field">
|
246 |
-
<label for="wpcf7-message-upload-file-too-large"><em># <?php _e("Uploaded file is too large", 'wpcf7'); ?></em></label><br />
|
247 |
-
<input type="text" id="wpcf7-message-upload-file-too-large" name="wpcf7-message-upload-file-too-large" class="wide" size="70" value="<?php echo htmlspecialchars($cf
|
248 |
</div>
|
249 |
</div>
|
250 |
|
@@ -253,14 +263,31 @@
|
|
253 |
</tbody>
|
254 |
</table>
|
255 |
|
256 |
-
<
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
257 |
|
258 |
<table class="widefat" style="margin-top: 1em;">
|
259 |
<tbody>
|
260 |
<tr>
|
261 |
<td scope="col">
|
262 |
<div class="save-contact-form">
|
263 |
-
<input type="submit" class="button button-highlighted" name="wpcf7-save" value="<?php _e('Save', 'wpcf7'); ?>" />
|
264 |
</div>
|
265 |
</td>
|
266 |
</tr>
|
@@ -272,4 +299,4 @@
|
|
272 |
</form>
|
273 |
|
274 |
<?php endif; ?>
|
275 |
-
</div>
|
1 |
+
<?php if ( ! version_compare( $wp_version, '2.7', '>=' ) && isset( $updated_message ) ) : ?>
|
2 |
<div id="message" class="updated fade"><p><strong><?php echo $updated_message; ?></strong></p></div>
|
3 |
<?php endif; ?>
|
4 |
<div class="wrap wpcf7">
|
5 |
+
<?php if ( function_exists( 'screen_icon' ) ) screen_icon(); ?>
|
6 |
+
<h2><?php _e( 'Contact Form 7', 'wpcf7' ); ?></h2>
|
7 |
+
<?php wpcf7_donation_link(); ?>
|
8 |
+
<?php if ( version_compare( $wp_version, '2.7', '>=' ) && isset( $updated_message ) ) : ?>
|
9 |
<div id="message" class="updated fade"><p><strong><?php echo $updated_message; ?></strong></p></div>
|
10 |
<?php endif; ?>
|
11 |
|
12 |
<ul class="subsubsub">
|
13 |
+
<?php foreach ( $contact_forms as $k => $v ) : ?>
|
14 |
+
<li><a href="<?php echo $base_url . '?page=' . $page . '&contactform=' . $k ?>"<?php if ( $k == $current ) echo ' class="current"'; ?>>
|
15 |
<?php echo $v['title']; ?></a> |</li>
|
16 |
<?php endforeach; ?>
|
17 |
|
18 |
+
<?php if ( wpcf7_admin_has_edit_cap() ) : ?>
|
19 |
<li class="addnew">
|
20 |
+
<a href="<?php echo $base_url . '?page=' . $page . '&contactform=new'; ?>"<?php if ( $unsaved ) echo ' class="current"'; ?>>
|
21 |
+
<?php _e( 'Add new', 'wpcf7' ); ?></a></li>
|
22 |
<?php endif; ?>
|
23 |
</ul>
|
24 |
|
25 |
<br class="clear" />
|
26 |
|
27 |
+
<?php if ( $cf ) : ?>
|
28 |
+
<?php $disabled = ( wpcf7_admin_has_edit_cap() ) ? '' : ' disabled="disabled"'; ?>
|
29 |
|
30 |
<form method="post" action="<?php echo $base_url . '?page=' . $page . '&contactform=' . $current; ?>" id="wpcf7-admin-form-element">
|
31 |
+
<?php if ( wpcf7_admin_has_edit_cap() ) wp_nonce_field( 'wpcf7-save_' . $current ); ?>
|
32 |
<input type="hidden" id="wpcf7-id" name="wpcf7-id" value="<?php echo $current; ?>" />
|
33 |
|
34 |
<table class="widefat">
|
36 |
<tr>
|
37 |
<td scope="col">
|
38 |
<div style="position: relative;">
|
39 |
+
<input type="text" id="wpcf7-title" name="wpcf7-title" size="40" value="<?php echo htmlspecialchars( $cf->title ); ?>"<?php echo $disabled; ?> />
|
40 |
|
41 |
+
<?php if ( ! $unsaved ) : ?>
|
42 |
<p class="tagcode">
|
43 |
+
<?php _e( 'Copy this code and paste it into your post, page or text widget content.', 'wpcf7' ); ?><br />
|
44 |
<input type="text" id="contact-form-anchor-text" onfocus="this.select();" readonly="readonly" />
|
45 |
</p>
|
46 |
<?php endif; ?>
|
47 |
|
48 |
+
<?php if ( wpcf7_admin_has_edit_cap() ) : ?>
|
49 |
<div class="save-contact-form">
|
50 |
+
<input type="submit" class="button button-highlighted" name="wpcf7-save" value="<?php _e( 'Save', 'wpcf7' ); ?>" />
|
51 |
</div>
|
52 |
<?php endif; ?>
|
53 |
|
54 |
+
<?php if ( wpcf7_admin_has_edit_cap() && ! $unsaved ) : ?>
|
55 |
<div class="actions-link">
|
56 |
+
<?php $copy_nonce = wp_create_nonce( 'wpcf7-copy_' . $current ); ?>
|
57 |
+
<input type="submit" name="wpcf7-copy" class="copy" value="<?php _e( 'Copy', 'wpcf7' ); ?>"
|
58 |
<?php echo "onclick=\"this.form._wpnonce.value = '$copy_nonce'; return true;\""; ?> />
|
59 |
|
|
60 |
+
<?php $delete_nonce = wp_create_nonce( 'wpcf7-delete_' . $current ); ?>
|
61 |
+
<input type="submit" name="wpcf7-delete" class="delete" value="<?php _e( 'Delete', 'wpcf7' ); ?>"
|
62 |
+
<?php echo "onclick=\"if (confirm('" .
|
63 |
+
esc_js( __( "You are about to delete this contact form.\n 'Cancel' to stop, 'OK' to delete.", 'wpcf7' ) ) .
|
64 |
+
"')) {this.form._wpnonce.value = '$delete_nonce'; return true;} return false;\""; ?> />
|
65 |
</div>
|
66 |
<?php endif; ?>
|
67 |
</div>
|
70 |
</tbody>
|
71 |
</table>
|
72 |
|
73 |
+
<?php if ( wpcf7_admin_has_edit_cap() ) : ?>
|
74 |
|
75 |
<table class="widefat" style="margin-top: 1em;">
|
76 |
<thead>
|
77 |
<tr>
|
78 |
+
<th scope="col" colspan="2"><?php _e( 'Form', 'wpcf7' ); ?></th>
|
79 |
</tr>
|
80 |
</thead>
|
81 |
<tbody>
|
82 |
<tr>
|
83 |
<td scope="col" style="width: 50%;">
|
84 |
<div>
|
85 |
+
<textarea id="wpcf7-form" name="wpcf7-form" cols="100" rows="20"><?php echo htmlspecialchars( $cf->form ); ?></textarea>
|
86 |
</div>
|
87 |
</td>
|
88 |
<td scope="col" style="width: 50%;">
|
95 |
<table class="widefat" style="margin-top: 1em;">
|
96 |
<thead>
|
97 |
<tr>
|
98 |
+
<th scope="col" colspan="2"><?php _e( 'Mail', 'wpcf7' ); ?></th>
|
99 |
</tr>
|
100 |
</thead>
|
101 |
<tbody>
|
102 |
<tr>
|
103 |
<td scope="col" style="width: 50%;">
|
104 |
<div class="mail-field">
|
105 |
+
<label for="wpcf7-mail-recipient"><?php _e( 'To:', 'wpcf7' ); ?></label><br />
|
106 |
+
<input type="text" id="wpcf7-mail-recipient" name="wpcf7-mail-recipient" class="wide" size="70" value="<?php echo htmlspecialchars( $cf->mail['recipient'] ); ?>" />
|
107 |
</div>
|
108 |
<div class="mail-field">
|
109 |
+
<label for="wpcf7-mail-sender"><?php _e( 'From:', 'wpcf7' ); ?></label><br />
|
110 |
+
<input type="text" id="wpcf7-mail-sender" name="wpcf7-mail-sender" class="wide" size="70" value="<?php echo htmlspecialchars( $cf->mail['sender'] ); ?>" />
|
111 |
</div>
|
112 |
<div class="mail-field">
|
113 |
+
<label for="wpcf7-mail-subject"><?php _e( 'Subject:', 'wpcf7' ); ?></label><br />
|
114 |
+
<input type="text" id="wpcf7-mail-subject" name="wpcf7-mail-subject" class="wide" size="70" value="<?php echo htmlspecialchars( $cf->mail['subject'] ); ?>" />
|
115 |
</div>
|
116 |
<div class="pseudo-hr"></div>
|
117 |
<div class="mail-field">
|
118 |
+
<label for="wpcf7-mail-additional-headers"><?php _e( 'Additional headers:', 'wpcf7' ); ?></label><br />
|
119 |
+
<textarea id="wpcf7-mail-additional-headers" name="wpcf7-mail-additional-headers" cols="100" rows="2"><?php echo htmlspecialchars( $cf->mail['additional_headers'] ); ?></textarea>
|
120 |
+
</div>
|
121 |
+
<div class="mail-field">
|
122 |
+
<label for="wpcf7-mail-attachments"><?php _e( 'File attachments:', 'wpcf7' ); ?></label>
|
123 |
+
<?php if ( version_compare( $wp_version, '2.7', '<' ) ) : ?>
|
124 |
+
<span style="color: #ff3300; margin-left: 0.5em;"><?php _e( '(You need WordPress 2.7 or greater to use this feature)', 'wpcf7' ); ?></span>
|
125 |
<?php endif; ?>
|
126 |
<br />
|
127 |
+
<input type="text" id="wpcf7-mail-attachments" name="wpcf7-mail-attachments" class="wide" size="70" value="<?php echo htmlspecialchars( $cf->mail['attachments'] ); ?>" />
|
128 |
</div>
|
129 |
<div class="pseudo-hr"></div>
|
130 |
<div class="mail-field">
|
131 |
+
<input type="checkbox" id="wpcf7-mail-use-html" name="wpcf7-mail-use-html" value="1"<?php echo ( $cf->mail['use_html'] ) ? ' checked="checked"' : ''; ?> />
|
132 |
+
<label for="wpcf7-mail-use-html"><?php _e( 'Use HTML content type', 'wpcf7' ); ?></label>
|
133 |
</div>
|
134 |
</td>
|
135 |
<td scope="col" style="width: 50%;">
|
136 |
<div class="mail-field">
|
137 |
+
<label for="wpcf7-mail-body"><?php _e( 'Message body:', 'wpcf7' ); ?></label><br />
|
138 |
+
<textarea id="wpcf7-mail-body" name="wpcf7-mail-body" cols="100" rows="16"><?php echo htmlspecialchars( $cf->mail['body'] ); ?></textarea>
|
139 |
</div>
|
140 |
</td>
|
141 |
</tr>
|
145 |
<table class="widefat" style="margin-top: 1em;">
|
146 |
<thead>
|
147 |
<tr>
|
148 |
+
<th scope="col" colspan="2"><?php _e( 'Mail (2)', 'wpcf7' ); ?></th>
|
149 |
</tr>
|
150 |
</thead>
|
151 |
<tbody>
|
152 |
<tr>
|
153 |
<td scope="col" colspan="2">
|
154 |
+
<input type="checkbox" id="wpcf7-mail-2-active" name="wpcf7-mail-2-active" value="1"<?php echo ( $cf->mail_2['active'] ) ? ' checked="checked"' : ''; ?> />
|
155 |
+
<label for="wpcf7-mail-2-active"><?php _e( 'Use mail (2)', 'wpcf7' ); ?></label>
|
156 |
</td>
|
157 |
</tr>
|
158 |
<tr id="mail-2-fields">
|
159 |
<td scope="col" style="width: 50%;">
|
160 |
<div class="mail-field">
|
161 |
+
<label for="wpcf7-mail-2-recipient"><?php _e( 'To:', 'wpcf7' ); ?></label><br />
|
162 |
+
<input type="text" id="wpcf7-mail-2-recipient" name="wpcf7-mail-2-recipient" class="wide" size="70" value="<?php echo htmlspecialchars( $cf->mail_2['recipient'] ); ?>" />
|
163 |
</div>
|
164 |
<div class="mail-field">
|
165 |
+
<label for="wpcf7-mail-2-sender"><?php _e( 'From:', 'wpcf7' ); ?></label><br />
|
166 |
+
<input type="text" id="wpcf7-mail-2-sender" name="wpcf7-mail-2-sender" class="wide" size="70" value="<?php echo htmlspecialchars( $cf->mail_2['sender'] ); ?>" />
|
167 |
</div>
|
168 |
<div class="mail-field">
|
169 |
+
<label for="wpcf7-mail-2-subject"><?php _e( 'Subject:', 'wpcf7' ); ?></label><br />
|
170 |
+
<input type="text" id="wpcf7-mail-2-subject" name="wpcf7-mail-2-subject" class="wide" size="70" value="<?php echo htmlspecialchars( $cf->mail_2['subject'] ); ?>" />
|
171 |
</div>
|
172 |
<div class="pseudo-hr"></div>
|
173 |
<div class="mail-field">
|
174 |
+
<label for="wpcf7-mail-2-additional-headers"><?php _e( 'Additional headers:', 'wpcf7' ); ?></label><br />
|
175 |
+
<textarea id="wpcf7-mail-2-additional-headers" name="wpcf7-mail-2-additional-headers" cols="100" rows="2"><?php echo htmlspecialchars( $cf->mail_2['additional_headers'] ); ?></textarea>
|
176 |
+
</div>
|
177 |
+
<div class="mail-field">
|
178 |
+
<label for="wpcf7-mail-2-attachments"><?php _e( 'File attachments:', 'wpcf7' ); ?></label>
|
179 |
+
<?php if ( version_compare( $wp_version, '2.7', '<' ) ) : ?>
|
180 |
+
<span style="color: #ff3300; margin-left: 0.5em;"><?php _e( '(You need WordPress 2.7 or greater to use this feature)', 'wpcf7' ); ?></span>
|
181 |
<?php endif; ?>
|
182 |
<br />
|
183 |
+
<input type="text" id="wpcf7-mail-2-attachments" name="wpcf7-mail-2-attachments" class="wide" size="70" value="<?php echo htmlspecialchars( $cf->mail_2['attachments'] ); ?>" />
|
184 |
</div>
|
185 |
<div class="pseudo-hr"></div>
|
186 |
<div class="mail-field">
|
187 |
+
<input type="checkbox" id="wpcf7-mail-2-use-html" name="wpcf7-mail-2-use-html" value="1"<?php echo ( $cf->mail_2['use_html'] ) ? ' checked="checked"' : ''; ?> />
|
188 |
+
<label for="wpcf7-mail-2-use-html"><?php _e( 'Use HTML content type', 'wpcf7' ); ?></label>
|
189 |
</div>
|
190 |
</td>
|
191 |
<td scope="col" style="width: 50%;">
|
192 |
<div class="mail-field">
|
193 |
+
<label for="wpcf7-mail-2-body"><?php _e( 'Message body:', 'wpcf7' ); ?></label><br />
|
194 |
+
<textarea id="wpcf7-mail-2-body" name="wpcf7-mail-2-body" cols="100" rows="16"><?php echo htmlspecialchars( $cf->mail_2['body'] ); ?></textarea>
|
195 |
</div>
|
196 |
</td>
|
197 |
</tr>
|
201 |
<table class="widefat" style="margin-top: 1em;">
|
202 |
<thead>
|
203 |
<tr>
|
204 |
+
<th scope="col"><?php _e( 'Messages', 'wpcf7' ); ?> <span id="message-fields-toggle-switch"></span></th>
|
205 |
</tr>
|
206 |
</thead>
|
207 |
<tbody>
|
209 |
<td scope="col">
|
210 |
<div id="message-fields">
|
211 |
<div class="message-field">
|
212 |
+
<label for="wpcf7-message-mail-sent-ok"><em># <?php _e( "Sender's message was sent successfully", 'wpcf7' ); ?></em></label><br />
|
213 |
+
<input type="text" id="wpcf7-message-mail-sent-ok" name="wpcf7-message-mail-sent-ok" class="wide" size="70" value="<?php echo htmlspecialchars( $cf->messages['mail_sent_ok'] ); ?>" />
|
214 |
</div>
|
215 |
<div class="message-field">
|
216 |
+
<label for="wpcf7-message-mail-sent-ng"><em># <?php _e( "Sender's message was failed to send", 'wpcf7' ); ?></em></label><br />
|
217 |
+
<input type="text" id="wpcf7-message-mail-sent-ng" name="wpcf7-message-mail-sent-ng" class="wide" size="70" value="<?php echo htmlspecialchars( $cf->messages['mail_sent_ng'] ); ?>" />
|
218 |
</div>
|
219 |
<div class="message-field">
|
220 |
+
<label for="wpcf7-message-akismet-says-spam"><em># <?php _e( "Akismet judged the sending activity as spamming", 'wpcf7' ); ?></em></label><br />
|
221 |
+
<input type="text" id="wpcf7-message-akismet-says-spam" name="wpcf7-message-akismet-says-spam" class="wide" size="70" value="<?php echo htmlspecialchars( $cf->messages['akismet_says_spam'] ); ?>" />
|
222 |
</div>
|
223 |
<div class="message-field">
|
224 |
+
<label for="wpcf7-message-validation-error"><em># <?php _e( "Validation errors occurred", 'wpcf7' ); ?></em></label><br />
|
225 |
+
<input type="text" id="wpcf7-message-validation-error" name="wpcf7-message-validation-error" class="wide" size="70" value="<?php echo htmlspecialchars( $cf->messages['validation_error'] ); ?>" />
|
226 |
</div>
|
227 |
<div class="message-field" style="margin-top: 1em;">
|
228 |
+
<label for="wpcf7-message-invalid-required"><em># <?php _e( "There is a field that sender is needed to fill in", 'wpcf7' ); ?></em></label><br />
|
229 |
+
<input type="text" id="wpcf7-message-invalid-required" name="wpcf7-message-invalid-required" class="wide" size="70" value="<?php echo htmlspecialchars( $cf->messages['invalid_required'] ); ?>" />
|
230 |
</div>
|
231 |
<div class="message-field">
|
232 |
+
<label for="wpcf7-message-invalid-email"><em># <?php _e( "Email address that sender entered is invalid", 'wpcf7' ); ?></em></label><br />
|
233 |
+
<input type="text" id="wpcf7-message-invalid-email" name="wpcf7-message-invalid-email" class="wide" size="70" value="<?php echo htmlspecialchars( $cf->messages['invalid_email'] ); ?>" />
|
234 |
</div>
|
235 |
<div class="message-field">
|
236 |
+
<label for="wpcf7-message-accept-terms"><em># <?php _e( "There is a field of term that sender is needed to accept", 'wpcf7' ); ?></em></label><br />
|
237 |
+
<input type="text" id="wpcf7-message-accept-terms" name="wpcf7-message-accept-terms" class="wide" size="70" value="<?php echo htmlspecialchars( $cf->messages['accept_terms'] ); ?>" />
|
238 |
</div>
|
239 |
<div class="message-field">
|
240 |
+
<label for="wpcf7-message-quiz-answer-not-correct"><em># <?php _e( "Sender doesn't enter the correct answer to the quiz", 'wpcf7' ); ?></em></label><br />
|
241 |
+
<input type="text" id="wpcf7-message-quiz-answer-not-correct" name="wpcf7-message-quiz-answer-not-correct" class="wide" size="70" value="<?php echo htmlspecialchars( $cf->messages['quiz_answer_not_correct'] ); ?>" />
|
242 |
</div>
|
243 |
<div class="message-field">
|
244 |
+
<label for="wpcf7-message-captcha-not-match"><em># <?php _e( "The code that sender entered does not match the CAPTCHA", 'wpcf7' ); ?></em></label><br />
|
245 |
+
<input type="text" id="wpcf7-message-captcha-not-match" name="wpcf7-message-captcha-not-match" class="wide" size="70" value="<?php echo htmlspecialchars( $cf->messages['captcha_not_match'] ); ?>" />
|
246 |
</div>
|
247 |
<div class="message-field">
|
248 |
+
<label for="wpcf7-message-upload-failed"><em># <?php _e( "Uploading a file fails for any reason", 'wpcf7' ); ?></em></label><br />
|
249 |
+
<input type="text" id="wpcf7-message-upload-failed" name="wpcf7-message-upload-failed" class="wide" size="70" value="<?php echo htmlspecialchars( $cf->messages['upload_failed'] ); ?>" />
|
250 |
</div>
|
251 |
<div class="message-field">
|
252 |
+
<label for="wpcf7-message-upload-file-type-invalid"><em># <?php _e( "Uploaded file is not allowed file type", 'wpcf7' ); ?></em></label><br />
|
253 |
+
<input type="text" id="wpcf7-message-upload-file-type-invalid" name="wpcf7-message-upload-file-type-invalid" class="wide" size="70" value="<?php echo htmlspecialchars( $cf->messages['upload_file_type_invalid'] ); ?>" />
|
254 |
</div>
|
255 |
<div class="message-field">
|
256 |
+
<label for="wpcf7-message-upload-file-too-large"><em># <?php _e( "Uploaded file is too large", 'wpcf7' ); ?></em></label><br />
|
257 |
+
<input type="text" id="wpcf7-message-upload-file-too-large" name="wpcf7-message-upload-file-too-large" class="wide" size="70" value="<?php echo htmlspecialchars( $cf->messages['upload_file_too_large'] ); ?>" />
|
258 |
</div>
|
259 |
</div>
|
260 |
|
263 |
</tbody>
|
264 |
</table>
|
265 |
|
266 |
+
<table class="widefat" style="margin-top: 1em;">
|
267 |
+
<thead>
|
268 |
+
<tr>
|
269 |
+
<th scope="col"><?php _e( 'Additional Settings', 'wpcf7' ); ?> <span id="additional-settings-fields-toggle-switch"></span></th>
|
270 |
+
</tr>
|
271 |
+
</thead>
|
272 |
+
<tbody>
|
273 |
+
<tr>
|
274 |
+
<td scope="col">
|
275 |
+
<div id="additional-settings-fields">
|
276 |
+
<textarea id="wpcf7-additional-settings" name="wpcf7-additional-settings" cols="100" rows="8"><?php echo htmlspecialchars( $cf->additional_settings ); ?></textarea>
|
277 |
+
</div>
|
278 |
+
</td>
|
279 |
+
</tr>
|
280 |
+
</tbody>
|
281 |
+
</table>
|
282 |
+
|
283 |
+
<input type="hidden" id="wpcf7-options-recipient" name="wpcf7-options-recipient" value="<?php echo htmlspecialchars( $cf->options['recipient'] ); ?>" />
|
284 |
|
285 |
<table class="widefat" style="margin-top: 1em;">
|
286 |
<tbody>
|
287 |
<tr>
|
288 |
<td scope="col">
|
289 |
<div class="save-contact-form">
|
290 |
+
<input type="submit" class="button button-highlighted" name="wpcf7-save" value="<?php _e( 'Save', 'wpcf7' ); ?>" />
|
291 |
</div>
|
292 |
</td>
|
293 |
</tr>
|
299 |
</form>
|
300 |
|
301 |
<?php endif; ?>
|
302 |
+
</div>
|
admin/admin-stylesheet.css
CHANGED
@@ -1,3 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
div.wpcf7 ul.subsubsub {
|
2 |
white-space: normal;
|
3 |
}
|
@@ -56,7 +86,7 @@ input#contact-form-anchor-text {
|
|
56 |
-webkit-border-radius: 6px;
|
57 |
border-radius: 6px;
|
58 |
}
|
59 |
-
span#message-fields-toggle-switch {
|
60 |
margin-left: 1em;
|
61 |
font-weight: normal;
|
62 |
font-size: smaller;
|
1 |
+
div.wpcf7 div.donation {
|
2 |
+
border-width: 1px;
|
3 |
+
border-style: solid;
|
4 |
+
padding: 0 0.6em;
|
5 |
+
margin: 5px 0 15px;
|
6 |
+
-moz-border-radius: 3px;
|
7 |
+
-khtml-border-radius: 3px;
|
8 |
+
-webkit-border-radius: 3px;
|
9 |
+
border-radius: 3px;
|
10 |
+
background-color: #ffffe0;
|
11 |
+
border-color: #e6db55;
|
12 |
+
text-align: center;
|
13 |
+
}
|
14 |
+
|
15 |
+
div.wpcf7 div.donation p {
|
16 |
+
margin: 0.5em 0;
|
17 |
+
line-height: 1;
|
18 |
+
padding: 2px;
|
19 |
+
}
|
20 |
+
|
21 |
+
div.wpcf7 div.donation p img {
|
22 |
+
vertical-align: text-bottom;
|
23 |
+
}
|
24 |
+
|
25 |
+
div.wpcf7 div.donation p em {
|
26 |
+
padding-left: 1em;
|
27 |
+
color: #555;
|
28 |
+
font-weight: bold;
|
29 |
+
}
|
30 |
+
|
31 |
div.wpcf7 ul.subsubsub {
|
32 |
white-space: normal;
|
33 |
}
|
86 |
-webkit-border-radius: 6px;
|
87 |
border-radius: 6px;
|
88 |
}
|
89 |
+
span#message-fields-toggle-switch, span#additional-settings-fields-toggle-switch {
|
90 |
margin-left: 1em;
|
91 |
font-weight: normal;
|
92 |
font-size: smaller;
|
admin/admin.php
ADDED
@@ -0,0 +1,372 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
function wpcf7_admin_menu_parent() {
|
4 |
+
global $wp_version;
|
5 |
+
if ( version_compare( $wp_version, '2.7', '>=' ) )
|
6 |
+
return 'tools.php';
|
7 |
+
else
|
8 |
+
return 'edit.php';
|
9 |
+
}
|
10 |
+
|
11 |
+
function wpcf7_admin_has_edit_cap() {
|
12 |
+
return current_user_can( WPCF7_ADMIN_READ_WRITE_CAPABILITY );
|
13 |
+
}
|
14 |
+
|
15 |
+
function wpcf7_admin_add_pages() {
|
16 |
+
if ( function_exists( 'admin_url' ) ) {
|
17 |
+
$base_url = admin_url( wpcf7_admin_menu_parent() );
|
18 |
+
} else {
|
19 |
+
$base_url = get_option( 'siteurl' ) . '/wp-admin/' . wpcf7_admin_menu_parent();
|
20 |
+
}
|
21 |
+
|
22 |
+
$page = str_replace( '\\', '%5C', plugin_basename( __FILE__ ) );
|
23 |
+
$contact_forms = wpcf7_contact_forms();
|
24 |
+
|
25 |
+
if ( isset( $_POST['wpcf7-save'] ) && wpcf7_admin_has_edit_cap() ) {
|
26 |
+
$id = $_POST['wpcf7-id'];
|
27 |
+
check_admin_referer( 'wpcf7-save_' . $id );
|
28 |
+
|
29 |
+
$title = trim( $_POST['wpcf7-title'] );
|
30 |
+
$form = trim( $_POST['wpcf7-form'] );
|
31 |
+
$mail = array(
|
32 |
+
'subject' => trim( $_POST['wpcf7-mail-subject'] ),
|
33 |
+
'sender' => trim( $_POST['wpcf7-mail-sender'] ),
|
34 |
+
'body' => trim( $_POST['wpcf7-mail-body'] ),
|
35 |
+
'recipient' => trim( $_POST['wpcf7-mail-recipient'] ),
|
36 |
+
'additional_headers' => trim( $_POST['wpcf7-mail-additional-headers'] ),
|
37 |
+
'attachments' => trim( $_POST['wpcf7-mail-attachments'] ),
|
38 |
+
'use_html' => ( 1 == $_POST['wpcf7-mail-use-html'] ) ? true : false
|
39 |
+
);
|
40 |
+
$mail_2 = array(
|
41 |
+
'active' => ( 1 == $_POST['wpcf7-mail-2-active'] ) ? true : false,
|
42 |
+
'subject' => trim( $_POST['wpcf7-mail-2-subject'] ),
|
43 |
+
'sender' => trim( $_POST['wpcf7-mail-2-sender'] ),
|
44 |
+
'body' => trim( $_POST['wpcf7-mail-2-body'] ),
|
45 |
+
'recipient' => trim( $_POST['wpcf7-mail-2-recipient'] ),
|
46 |
+
'additional_headers' => trim( $_POST['wpcf7-mail-2-additional-headers'] ),
|
47 |
+
'attachments' => trim( $_POST['wpcf7-mail-2-attachments'] ),
|
48 |
+
'use_html' => ( 1 == $_POST['wpcf7-mail-2-use-html'] ) ? true : false
|
49 |
+
);
|
50 |
+
$messages = array(
|
51 |
+
'mail_sent_ok' => trim( $_POST['wpcf7-message-mail-sent-ok'] ),
|
52 |
+
'mail_sent_ng' => trim( $_POST['wpcf7-message-mail-sent-ng'] ),
|
53 |
+
'akismet_says_spam' => trim( $_POST['wpcf7-message-akismet-says-spam'] ),
|
54 |
+
'validation_error' => trim( $_POST['wpcf7-message-validation-error'] ),
|
55 |
+
'accept_terms' => trim( $_POST['wpcf7-message-accept-terms'] ),
|
56 |
+
'invalid_email' => trim( $_POST['wpcf7-message-invalid-email'] ),
|
57 |
+
'invalid_required' => trim( $_POST['wpcf7-message-invalid-required'] ),
|
58 |
+
'quiz_answer_not_correct' => trim( $_POST['wpcf7-message-quiz-answer-not-correct'] ),
|
59 |
+
'captcha_not_match' => trim( $_POST['wpcf7-message-captcha-not-match'] ),
|
60 |
+
'upload_failed' => trim( $_POST['wpcf7-message-upload-failed'] ),
|
61 |
+
'upload_file_type_invalid' => trim( $_POST['wpcf7-message-upload-file-type-invalid'] ),
|
62 |
+
'upload_file_too_large' => trim( $_POST['wpcf7-message-upload-file-too-large'] )
|
63 |
+
);
|
64 |
+
$additional_settings = trim( $_POST['wpcf7-additional-settings'] );
|
65 |
+
$options = array(
|
66 |
+
'recipient' => trim( $_POST['wpcf7-options-recipient'] ) // For backward compatibility.
|
67 |
+
);
|
68 |
+
|
69 |
+
$data = compact( 'title', 'form', 'mail', 'mail_2', 'messages', 'additional_settings', 'options' );
|
70 |
+
|
71 |
+
if ( array_key_exists( $id, $contact_forms ) ) {
|
72 |
+
$contact_forms[$id] = $data;
|
73 |
+
$redirect_to = $base_url . '?page=' . $page . '&contactform=' . $id . '&message=saved';
|
74 |
+
} else {
|
75 |
+
$key = ( empty( $contact_forms ) ) ? 1 : max( array_keys( $contact_forms ) ) + 1;
|
76 |
+
$contact_forms[$key] = $data;
|
77 |
+
$redirect_to = $base_url . '?page=' . $page . '&contactform=' . $key . '&message=created';
|
78 |
+
}
|
79 |
+
|
80 |
+
wpcf7_update_contact_forms( $contact_forms );
|
81 |
+
|
82 |
+
wp_redirect( $redirect_to );
|
83 |
+
exit();
|
84 |
+
} elseif ( isset( $_POST['wpcf7-copy'] ) && wpcf7_admin_has_edit_cap() ) {
|
85 |
+
$id = $_POST['wpcf7-id'];
|
86 |
+
check_admin_referer( 'wpcf7-copy_' . $id );
|
87 |
+
|
88 |
+
if ( array_key_exists( $id, $contact_forms ) ) {
|
89 |
+
$key = max( array_keys( $contact_forms ) ) + 1;
|
90 |
+
$contact_forms[$key] = $contact_forms[$id];
|
91 |
+
$contact_forms[$key]['title'] .= '_copy';
|
92 |
+
wpcf7_update_contact_forms( $contact_forms );
|
93 |
+
$redirect_to = $base_url . '?page=' . $page . '&contactform=' . $key . '&message=created';
|
94 |
+
} else {
|
95 |
+
$redirect_to = $base_url . '?page=' . $page . '&contactform=' . $id;
|
96 |
+
}
|
97 |
+
|
98 |
+
wp_redirect( $redirect_to );
|
99 |
+
exit();
|
100 |
+
} elseif ( isset( $_POST['wpcf7-delete'] ) && wpcf7_admin_has_edit_cap() ) {
|
101 |
+
$id = $_POST['wpcf7-id'];
|
102 |
+
check_admin_referer( 'wpcf7-delete_' . $id );
|
103 |
+
|
104 |
+
unset( $contact_forms[$id] );
|
105 |
+
wpcf7_update_contact_forms( $contact_forms );
|
106 |
+
|
107 |
+
wp_redirect( $base_url . '?page=' . $page . '&message=deleted' );
|
108 |
+
exit();
|
109 |
+
}
|
110 |
+
|
111 |
+
add_management_page( __( 'Contact Form 7', 'wpcf7' ), __( 'Contact Form 7', 'wpcf7' ), WPCF7_ADMIN_READ_CAPABILITY, __FILE__, 'wpcf7_admin_management_page' );
|
112 |
+
}
|
113 |
+
|
114 |
+
add_action( 'admin_menu', 'wpcf7_admin_add_pages' );
|
115 |
+
|
116 |
+
function wpcf7_admin_head() {
|
117 |
+
global $plugin_page;
|
118 |
+
|
119 |
+
if ( isset( $plugin_page ) && $plugin_page == plugin_basename( __FILE__ ) ) {
|
120 |
+
|
121 |
+
$admin_stylesheet_url = wpcf7_plugin_url( 'admin/admin-stylesheet.css' );
|
122 |
+
echo '<link rel="stylesheet" href="' . $admin_stylesheet_url . '" type="text/css" />';
|
123 |
+
|
124 |
+
if ( 'rtl' == get_bloginfo( 'text_direction' ) ) {
|
125 |
+
$admin_stylesheet_rtl_url = wpcf7_plugin_url( 'admin/admin-stylesheet-rtl.css' );
|
126 |
+
echo '<link rel="stylesheet" href="' . $admin_stylesheet_rtl_url . '" type="text/css" />';
|
127 |
+
}
|
128 |
+
|
129 |
+
?>
|
130 |
+
<script type="text/javascript">
|
131 |
+
//<![CDATA[
|
132 |
+
var _wpcf7 = {
|
133 |
+
captchaMod: <?php echo ( class_exists( 'ReallySimpleCaptcha' ) ) ? 'true' : 'false' ?>
|
134 |
+
};
|
135 |
+
//]]>
|
136 |
+
</script>
|
137 |
+
<?php
|
138 |
+
}
|
139 |
+
}
|
140 |
+
|
141 |
+
add_action( 'admin_head', 'wpcf7_admin_head' );
|
142 |
+
|
143 |
+
function wpcf7_admin_load_js() {
|
144 |
+
global $pagenow;
|
145 |
+
|
146 |
+
if ( ! is_admin() )
|
147 |
+
return;
|
148 |
+
|
149 |
+
if ( wpcf7_admin_menu_parent() != $pagenow )
|
150 |
+
return;
|
151 |
+
|
152 |
+
if ( false === strpos( $_GET['page'], 'contact-form-7' ) )
|
153 |
+
return;
|
154 |
+
|
155 |
+
wp_enqueue_script( 'wpcf7-admin', wpcf7_plugin_url( 'admin/wpcf7-admin.js' ), array('jquery'), WPCF7_VERSION, true );
|
156 |
+
wp_localize_script( 'wpcf7-admin', '_wpcf7L10n', array(
|
157 |
+
'optional' => __( 'optional', 'wpcf7' ),
|
158 |
+
'generateTag' => __( 'Generate Tag', 'wpcf7' ),
|
159 |
+
'textField' => __( 'Text field', 'wpcf7' ),
|
160 |
+
'emailField' => __( 'Email field', 'wpcf7' ),
|
161 |
+
'textArea' => __( 'Text area', 'wpcf7' ),
|
162 |
+
'menu' => __( 'Drop-down menu', 'wpcf7' ),
|
163 |
+
'checkboxes' => __( 'Checkboxes', 'wpcf7' ),
|
164 |
+
'radioButtons' => __( 'Radio buttons', 'wpcf7' ),
|
165 |
+
'acceptance' => __( 'Acceptance', 'wpcf7' ),
|
166 |
+
'isAcceptanceDefaultOn' => __( "Make this checkbox checked by default?", 'wpcf7' ),
|
167 |
+
'isAcceptanceInvert' => __( "Make this checkbox work inversely?", 'wpcf7' ),
|
168 |
+
'isAcceptanceInvertMeans' => __( "* That means visitor who accepts the term unchecks it.", 'wpcf7' ),
|
169 |
+
'captcha' => __( 'CAPTCHA', 'wpcf7' ),
|
170 |
+
'quiz' => __( 'Quiz', 'wpcf7' ),
|
171 |
+
'quizzes' => __( 'Quizzes', 'wpcf7' ),
|
172 |
+
'quizFormatDesc' => __( "* quiz|answer (e.g. 1+1=?|2)", 'wpcf7' ),
|
173 |
+
'fileUpload' => __( 'File upload', 'wpcf7' ),
|
174 |
+
'bytes' => __( 'bytes', 'wpcf7' ),
|
175 |
+
'submit' => __( 'Submit button', 'wpcf7' ),
|
176 |
+
'tagName' => __( 'Name', 'wpcf7' ),
|
177 |
+
'isRequiredField' => __( 'Required field?', 'wpcf7' ),
|
178 |
+
'allowsMultipleSelections' => __( 'Allow multiple selections?', 'wpcf7' ),
|
179 |
+
'insertFirstBlankOption' => __( 'Insert a blank item as the first option?', 'wpcf7' ),
|
180 |
+
'makeCheckboxesExclusive' => __( 'Make checkboxes exclusive?', 'wpcf7' ),
|
181 |
+
'menuChoices' => __( 'Choices', 'wpcf7' ),
|
182 |
+
'label' => __( 'Label', 'wpcf7' ),
|
183 |
+
'defaultValue' => __( 'Default value', 'wpcf7' ),
|
184 |
+
'akismet' => __( 'Akismet', 'wpcf7' ),
|
185 |
+
'akismetAuthor' => __( "This field requires author's name", 'wpcf7' ),
|
186 |
+
'akismetAuthorUrl' => __( "This field requires author's URL", 'wpcf7' ),
|
187 |
+
'akismetAuthorEmail' => __( "This field requires author's email address", 'wpcf7' ),
|
188 |
+
'generatedTag' => __( "Copy this code and paste it into the form left.", 'wpcf7' ),
|
189 |
+
'fgColor' => __( "Foreground color", 'wpcf7' ),
|
190 |
+
'bgColor' => __( "Background color", 'wpcf7' ),
|
191 |
+
'imageSize' => __( "Image size", 'wpcf7' ),
|
192 |
+
'imageSizeSmall' => __( "Small", 'wpcf7' ),
|
193 |
+
'imageSizeMedium' => __( "Medium", 'wpcf7' ),
|
194 |
+
'imageSizeLarge' => __( "Large", 'wpcf7' ),
|
195 |
+
'imageSettings' => __( "Image settings", 'wpcf7' ),
|
196 |
+
'inputFieldSettings' => __( "Input field settings", 'wpcf7' ),
|
197 |
+
'tagForImage' => __( "For image", 'wpcf7' ),
|
198 |
+
'tagForInputField' => __( "For input field", 'wpcf7' ),
|
199 |
+
'oneChoicePerLine' => __( "* One choice per line.", 'wpcf7' ),
|
200 |
+
'show' => __( "Show", 'wpcf7' ),
|
201 |
+
'hide' => __( "Hide", 'wpcf7' ),
|
202 |
+
'fileSizeLimit' => __( "File size limit", 'wpcf7' ),
|
203 |
+
'acceptableFileTypes' => __( "Acceptable file types", 'wpcf7' ),
|
204 |
+
'needReallySimpleCaptcha' => __( "Note: To use CAPTCHA, you need Really Simple CAPTCHA plugin installed.", 'wpcf7' )
|
205 |
+
) );
|
206 |
+
}
|
207 |
+
|
208 |
+
add_action( 'wp_print_scripts', 'wpcf7_admin_load_js' );
|
209 |
+
|
210 |
+
function wpcf7_admin_management_page() {
|
211 |
+
global $wp_version;
|
212 |
+
|
213 |
+
if ( function_exists( 'admin_url' ) ) {
|
214 |
+
$base_url = admin_url( wpcf7_admin_menu_parent() );
|
215 |
+
} else {
|
216 |
+
$base_url = get_option( 'siteurl' ) . '/wp-admin/' . wpcf7_admin_menu_parent();
|
217 |
+
}
|
218 |
+
|
219 |
+
$page = plugin_basename( __FILE__ );
|
220 |
+
|
221 |
+
switch ( $_GET['message'] ) {
|
222 |
+
case 'created':
|
223 |
+
$updated_message = __( 'Contact form created.', 'wpcf7' );
|
224 |
+
break;
|
225 |
+
case 'saved':
|
226 |
+
$updated_message = __( 'Contact form saved.', 'wpcf7' );
|
227 |
+
break;
|
228 |
+
case 'deleted':
|
229 |
+
$updated_message = __( 'Contact form deleted.', 'wpcf7' );
|
230 |
+
break;
|
231 |
+
}
|
232 |
+
|
233 |
+
$contact_forms = wpcf7_contact_forms();
|
234 |
+
|
235 |
+
$id = $_POST['wpcf7-id'];
|
236 |
+
|
237 |
+
if ( 'new' == $_GET['contactform'] ) {
|
238 |
+
$unsaved = true;
|
239 |
+
$current = -1;
|
240 |
+
$cf = wpcf7_contact_form( wpcf7_default_pack( __( 'Untitled', 'wpcf7' ), true ) );
|
241 |
+
} elseif ( array_key_exists( $_GET['contactform'], $contact_forms ) ) {
|
242 |
+
$current = (int) $_GET['contactform'];
|
243 |
+
$cf = wpcf7_contact_form( $contact_forms[$current] );
|
244 |
+
} else {
|
245 |
+
$current = (int) array_shift( array_keys( $contact_forms ) );
|
246 |
+
$cf = wpcf7_contact_form( $contact_forms[$current] );
|
247 |
+
}
|
248 |
+
|
249 |
+
require_once WPCF7_PLUGIN_DIR . '/admin/admin-panel.php';
|
250 |
+
}
|
251 |
+
|
252 |
+
function wpcf7_default_form_template() {
|
253 |
+
$template .= '<p>' . __( 'Your Name', 'wpcf7' ) . ' ' . __( '(required)', 'wpcf7' ) . '<br />' . "\n";
|
254 |
+
$template .= ' [text* your-name] </p>' . "\n\n";
|
255 |
+
$template .= '<p>' . __( 'Your Email', 'wpcf7' ) . ' ' . __( '(required)', 'wpcf7' ) . '<br />' . "\n";
|
256 |
+
$template .= ' [email* your-email] </p>' . "\n\n";
|
257 |
+
$template .= '<p>' . __( 'Subject', 'wpcf7' ) . '<br />' . "\n";
|
258 |
+
$template .= ' [text your-subject] </p>' . "\n\n";
|
259 |
+
$template .= '<p>' . __( 'Your Message', 'wpcf7' ) . '<br />' . "\n";
|
260 |
+
$template .= ' [textarea your-message] </p>' . "\n\n";
|
261 |
+
$template .= '<p>[submit "' . __( 'Send', 'wpcf7' ) . '"]</p>';
|
262 |
+
return $template;
|
263 |
+
}
|
264 |
+
|
265 |
+
function wpcf7_default_mail_template() {
|
266 |
+
$subject = '[your-subject]';
|
267 |
+
$sender = '[your-name] <[your-email]>';
|
268 |
+
$body = '[your-message]';
|
269 |
+
$recipient = get_option( 'admin_email' );
|
270 |
+
return compact( 'subject', 'sender', 'body', 'recipient' );
|
271 |
+
}
|
272 |
+
|
273 |
+
function wpcf7_default_mail_2_template() {
|
274 |
+
$active = false;
|
275 |
+
$subject = '[your-subject]';
|
276 |
+
$sender = '[your-name] <[your-email]>';
|
277 |
+
$body = '[your-message]';
|
278 |
+
$recipient = '[your-email]';
|
279 |
+
return compact( 'active', 'subject', 'sender', 'body', 'recipient' );
|
280 |
+
}
|
281 |
+
|
282 |
+
function wpcf7_default_messages_template() {
|
283 |
+
$mail_sent_ok = wpcf7_default_message( 'mail_sent_ok' );
|
284 |
+
$mail_sent_ng = wpcf7_default_message( 'mail_sent_ng' );
|
285 |
+
$akismet_says_spam = wpcf7_default_message( 'akismet_says_spam' );
|
286 |
+
$validation_error = wpcf7_default_message( 'validation_error' );
|
287 |
+
$accept_terms = wpcf7_default_message( 'accept_terms' );
|
288 |
+
$invalid_email = wpcf7_default_message( 'invalid_email' );
|
289 |
+
$invalid_required = wpcf7_default_message( 'invalid_required' );
|
290 |
+
$quiz_answer_not_correct = wpcf7_default_message( 'quiz_answer_not_correct' );
|
291 |
+
$captcha_not_match = wpcf7_default_message( 'captcha_not_match' );
|
292 |
+
$upload_failed = wpcf7_default_message( 'upload_failed' );
|
293 |
+
$upload_file_type_invalid = wpcf7_default_message( 'upload_file_type_invalid' );
|
294 |
+
$upload_file_too_large = wpcf7_default_message( 'upload_file_too_large' );
|
295 |
+
|
296 |
+
return compact( 'mail_sent_ok', 'mail_sent_ng', 'akismet_says_spam',
|
297 |
+
'validation_error', 'accept_terms', 'invalid_email', 'invalid_required', 'quiz_answer_not_correct',
|
298 |
+
'captcha_not_match', 'upload_failed', 'upload_file_type_invalid', 'upload_file_too_large' );
|
299 |
+
}
|
300 |
+
|
301 |
+
function wpcf7_default_options_template() {
|
302 |
+
$recipient = get_option( 'admin_email' ); // For backward compatibility.
|
303 |
+
return compact( 'recipient' );
|
304 |
+
}
|
305 |
+
|
306 |
+
function wpcf7_default_pack( $title, $initial = false ) {
|
307 |
+
$cf = array(
|
308 |
+
'title' => $title,
|
309 |
+
'form' => wpcf7_default_form_template(),
|
310 |
+
'mail' => wpcf7_default_mail_template(),
|
311 |
+
'mail_2' => wpcf7_default_mail_2_template(),
|
312 |
+
'messages' => wpcf7_default_messages_template(),
|
313 |
+
'options' => wpcf7_default_options_template()
|
314 |
+
);
|
315 |
+
|
316 |
+
if ( $initial )
|
317 |
+
$cf['initial'] = true;
|
318 |
+
|
319 |
+
return $cf;
|
320 |
+
}
|
321 |
+
|
322 |
+
function wpcf7_plugin_action_links( $links, $file ) {
|
323 |
+
if ( $file != WPCF7_PLUGIN_BASENAME )
|
324 |
+
return $links;
|
325 |
+
|
326 |
+
if ( function_exists( 'admin_url' ) ) {
|
327 |
+
$base_url = admin_url( wpcf7_admin_menu_parent() );
|
328 |
+
} else {
|
329 |
+
$base_url = get_option( 'siteurl' ) . '/wp-admin/' . wpcf7_admin_menu_parent();
|
330 |
+
}
|
331 |
+
|
332 |
+
$url = $base_url . '?page=' . plugin_basename( __FILE__ );
|
333 |
+
|
334 |
+
$settings_link = '<a href="' . $url . '">' . __('Settings') . '</a>';
|
335 |
+
|
336 |
+
array_unshift( $links, $settings_link );
|
337 |
+
|
338 |
+
return $links;
|
339 |
+
}
|
340 |
+
|
341 |
+
add_filter( 'plugin_action_links', 'wpcf7_plugin_action_links', 10, 2 );
|
342 |
+
|
343 |
+
function wpcf7_donation_link() {
|
344 |
+
if ( ! WPCF7_SHOW_DONATION_LINK )
|
345 |
+
return;
|
346 |
+
|
347 |
+
if ( 'new' == $_GET['contactform'] || ! empty($_GET['message']) )
|
348 |
+
return;
|
349 |
+
|
350 |
+
$num = mt_rand(0, 99);
|
351 |
+
if ($num >= 10) // 90%
|
352 |
+
return;
|
353 |
+
|
354 |
+
$texts = array(
|
355 |
+
__( "Contact Form 7 needs your support. Please donate today.", 'wpcf7' ),
|
356 |
+
__( "Is this plugin useful for you? If you like it, please help the developer.", 'wpcf7' ),
|
357 |
+
__( "Your contribution is needed for making this plugin better.", 'wpcf7' ),
|
358 |
+
__( "Developing a plugin and providing user support is really hard work. Please help.", 'wpcf7' ) );
|
359 |
+
|
360 |
+
$text = $texts[array_rand( $texts )];
|
361 |
+
|
362 |
+
?>
|
363 |
+
<div class="donation">
|
364 |
+
<p><a href="http://www.pledgie.com/campaigns/3117">
|
365 |
+
<img alt="Click here to lend your support to: Support Contact Form 7 and make a donation at www.pledgie.com !" src="http://www.pledgie.com/campaigns/3117.png?skin_name=chrome" border="0" width="149" height="37" /></a>
|
366 |
+
<em><?php echo $text; ?></em>
|
367 |
+
</p>
|
368 |
+
</div>
|
369 |
+
<?php
|
370 |
+
}
|
371 |
+
|
372 |
+
?>
|
admin/wpcf7-admin.js
CHANGED
@@ -59,16 +59,34 @@ jQuery(document).ready(function() {
|
|
59 |
}
|
60 |
});
|
61 |
|
62 |
-
jQuery('#message-fields-toggle-switch').text(
|
63 |
jQuery('#message-fields').hide();
|
64 |
|
65 |
jQuery('#message-fields-toggle-switch').click(function() {
|
66 |
if (jQuery('#message-fields').is(':hidden')) {
|
67 |
jQuery('#message-fields').slideDown('fast');
|
68 |
-
jQuery('#message-fields-toggle-switch').text(
|
69 |
} else {
|
70 |
jQuery('#message-fields').hide('fast');
|
71 |
-
jQuery('#message-fields-toggle-switch').text(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
72 |
}
|
73 |
});
|
74 |
|
@@ -103,7 +121,7 @@ function tagGenerator() {
|
|
103 |
var dropdown_icon = jQuery('<img src="../wp-content/plugins/contact-form-7/images/dropdown.gif" />');
|
104 |
dropdown_icon.css({ 'vertical-align': 'bottom' });
|
105 |
|
106 |
-
var selector = jQuery('<span>' +
|
107 |
selector.append(dropdown_icon);
|
108 |
selector.css({
|
109 |
border: '1px solid #ddd',
|
@@ -147,7 +165,7 @@ function tagGenerator() {
|
|
147 |
'acceptance', 'quiz', 'captcha', 'fileUpload', 'submit'];
|
148 |
|
149 |
jQuery.each(tag_types, function(i, n) {
|
150 |
-
var submenu = jQuery('<div>' +
|
151 |
submenu.css({
|
152 |
margin: 0,
|
153 |
padding: '0 4px',
|
@@ -186,7 +204,7 @@ function tgPane(pane, tagType) {
|
|
186 |
closeButtonDiv.append(closeButton);
|
187 |
pane.append(closeButtonDiv);
|
188 |
|
189 |
-
var paneTitle = jQuery('<div class="tg-panetitle">' +
|
190 |
pane.append(paneTitle);
|
191 |
|
192 |
var tgInputs = {};
|
@@ -226,62 +244,62 @@ function tgPane(pane, tagType) {
|
|
226 |
var table1 = jQuery('<table></table>');
|
227 |
pane.append(table1);
|
228 |
table1.append(tgTr(
|
229 |
-
jQuery('<span> ' +
|
230 |
));
|
231 |
table1.append(tgTr(
|
232 |
-
jQuery('<span>' +
|
233 |
jQuery('<span></span>')
|
234 |
));
|
235 |
|
236 |
var table2 = jQuery('<table></table>');
|
237 |
pane.append(table2);
|
238 |
table2.append(tgTr(
|
239 |
-
jQuery('<span><code>size</code> (' +
|
240 |
-
jQuery('<span><code>maxlength</code> (' +
|
241 |
));
|
242 |
table2.append(tgTr(
|
243 |
-
jQuery('<span><code>id</code> (' +
|
244 |
-
jQuery('<span><code>class</code> (' +
|
245 |
));
|
246 |
-
var akismetOpts = jQuery('<span>' +
|
247 |
if ('textField' == tagType) {
|
248 |
-
akismetOpts.append(tgInputs.akismetAuthor).append(' ' +
|
249 |
akismetOpts.append('<br />');
|
250 |
-
akismetOpts.append(tgInputs.akismetAuthorUrl).append(' ' +
|
251 |
} else if ('emailField' == tagType) {
|
252 |
-
akismetOpts.append(tgInputs.akismetAuthorEmail).append(' ' +
|
253 |
}
|
254 |
table2.append(tgTr(
|
255 |
akismetOpts,
|
256 |
-
jQuery('<span>' +
|
257 |
));
|
258 |
-
pane.append(jQuery('<div class="tg-tag">' +
|
259 |
break;
|
260 |
case 'textArea':
|
261 |
var table1 = jQuery('<table></table>');
|
262 |
pane.append(table1);
|
263 |
table1.append(tgTr(
|
264 |
-
jQuery('<span> ' +
|
265 |
));
|
266 |
table1.append(tgTr(
|
267 |
-
jQuery('<span>' +
|
268 |
jQuery('<span></span>')
|
269 |
));
|
270 |
|
271 |
var table2 = jQuery('<table></table>');
|
272 |
pane.append(table2);
|
273 |
table2.append(tgTr(
|
274 |
-
jQuery('<span><code>cols</code> (' +
|
275 |
-
jQuery('<span><code>rows</code> (' +
|
276 |
));
|
277 |
table2.append(tgTr(
|
278 |
-
jQuery('<span><code>id</code> (' +
|
279 |
-
jQuery('<span><code>class</code> (' +
|
280 |
));
|
281 |
table2.append(tgTr(
|
282 |
-
jQuery('<span>' +
|
283 |
));
|
284 |
-
pane.append(jQuery('<div class="tg-tag">' +
|
285 |
break;
|
286 |
case 'menu':
|
287 |
case 'checkboxes':
|
@@ -290,92 +308,92 @@ function tgPane(pane, tagType) {
|
|
290 |
pane.append(table1);
|
291 |
if ('radioButtons' != tagType)
|
292 |
table1.append(tgTr(
|
293 |
-
jQuery('<span> ' +
|
294 |
));
|
295 |
table1.append(tgTr(
|
296 |
-
jQuery('<span>' +
|
297 |
jQuery('<span></span>')
|
298 |
));
|
299 |
|
300 |
var table2 = jQuery('<table></table>');
|
301 |
pane.append(table2);
|
302 |
table2.append(tgTr(
|
303 |
-
jQuery('<span><code>id</code> (' +
|
304 |
-
jQuery('<span><code>class</code> (' +
|
305 |
));
|
306 |
|
307 |
if ('menu' == tagType) {
|
308 |
-
var menuOpt1 = jQuery('<span> ' +
|
309 |
-
var menuOpt2 = jQuery('<span> ' +
|
310 |
|
311 |
table2.append(tgTr(
|
312 |
-
jQuery('<span>' +
|
313 |
-
.append('<br /><span style="font-size: smaller">' +
|
314 |
menuOpt1.append(menuOpt2)
|
315 |
));
|
316 |
} else if ('checkboxes' == tagType) {
|
317 |
table2.append(tgTr(
|
318 |
-
jQuery('<span>' +
|
319 |
-
.append('<br /><span style="font-size: smaller">' +
|
320 |
-
jQuery('<span> ' +
|
321 |
));
|
322 |
} else {
|
323 |
table2.append(tgTr(
|
324 |
-
jQuery('<span>' +
|
325 |
-
.append('<br /><span style="font-size: smaller">' +
|
326 |
));
|
327 |
}
|
328 |
|
329 |
-
pane.append(jQuery('<div class="tg-tag">' +
|
330 |
break;
|
331 |
case 'acceptance':
|
332 |
var table1 = jQuery('<table></table>');
|
333 |
pane.append(table1);
|
334 |
|
335 |
table1.append(tgTr(
|
336 |
-
jQuery('<span>' +
|
337 |
jQuery('<span></span>')
|
338 |
));
|
339 |
|
340 |
var table2 = jQuery('<table></table>');
|
341 |
pane.append(table2);
|
342 |
table2.append(tgTr(
|
343 |
-
jQuery('<span><code>id</code> (' +
|
344 |
-
jQuery('<span><code>class</code> (' +
|
345 |
));
|
346 |
|
347 |
-
var menuOpt1 = jQuery('<span> ' +
|
348 |
-
var menuOpt2 = jQuery('<span> ' +
|
349 |
-
menuOpt2.append('<br /><span style="font-size: smaller;">' +
|
350 |
|
351 |
table2.append(jQuery('<tr></tr>').append(jQuery('<td colspan="2"></td>').append(menuOpt1).append(menuOpt2)));
|
352 |
|
353 |
-
pane.append(jQuery('<div class="tg-tag">' +
|
354 |
break;
|
355 |
case 'quiz':
|
356 |
var table1 = jQuery('<table></table>');
|
357 |
pane.append(table1);
|
358 |
|
359 |
table1.append(tgTr(
|
360 |
-
jQuery('<span>' +
|
361 |
jQuery('<span></span>')
|
362 |
));
|
363 |
|
364 |
var table2 = jQuery('<table></table>');
|
365 |
pane.append(table2);
|
366 |
table2.append(tgTr(
|
367 |
-
jQuery('<span><code>size</code> (' +
|
368 |
-
jQuery('<span><code>maxlength</code> (' +
|
369 |
));
|
370 |
table2.append(tgTr(
|
371 |
-
jQuery('<span><code>id</code> (' +
|
372 |
-
jQuery('<span><code>class</code> (' +
|
373 |
));
|
374 |
table2.append(tgTr(
|
375 |
-
jQuery('<span>' +
|
376 |
-
.append('<br /><span style="font-size: smaller">' +
|
377 |
));
|
378 |
-
pane.append(jQuery('<div class="tg-tag">' +
|
379 |
break;
|
380 |
case 'captcha':
|
381 |
var table1 = jQuery('<table></table>');
|
@@ -383,51 +401,51 @@ function tgPane(pane, tagType) {
|
|
383 |
|
384 |
if (! _wpcf7.captchaMod) {
|
385 |
table1.append('<tr><td colspan="2"><strong style="color: #e6255b">' +
|
386 |
-
|
387 |
'<a href="http://wordpress.org/extend/plugins/really-simple-captcha/">' +
|
388 |
'http://wordpress.org/extend/plugins/really-simple-captcha/</a></td></tr>');
|
389 |
}
|
390 |
|
391 |
table1.append(tgTr(
|
392 |
-
jQuery('<span>' +
|
393 |
jQuery('<span></span>')
|
394 |
));
|
395 |
|
396 |
var table2 = jQuery('<table></table>');
|
397 |
pane.append(table2);
|
398 |
-
table2.append('<caption>' +
|
399 |
-
var imageSizeOpts = jQuery('<span>' +
|
400 |
-
imageSizeOpts.append(tgInputs.imageSizeSmall).append(' ' +
|
401 |
imageSizeOpts.append(' ');
|
402 |
-
imageSizeOpts.append(tgInputs.imageSizeMedium).append(' ' +
|
403 |
imageSizeOpts.append(' ');
|
404 |
-
imageSizeOpts.append(tgInputs.imageSizeLarge).append(' ' +
|
405 |
table2.append(jQuery('<tr></tr>').append(jQuery('<td colspan="2"></td>').append(imageSizeOpts)));
|
406 |
table2.append(tgTr(
|
407 |
-
jQuery('<span>' +
|
408 |
-
jQuery('<span>' +
|
409 |
));
|
410 |
table2.append(tgTr(
|
411 |
-
jQuery('<span><code>id</code> (' +
|
412 |
-
jQuery('<span><code>class</code> (' +
|
413 |
));
|
414 |
|
415 |
var table3 = jQuery('<table></table>');
|
416 |
pane.append(table3);
|
417 |
-
table3.append('<caption>' +
|
418 |
table3.append(tgTr(
|
419 |
-
jQuery('<span><code>size</code> (' +
|
420 |
-
jQuery('<span><code>maxlength</code> (' +
|
421 |
));
|
422 |
table3.append(tgTr(
|
423 |
-
jQuery('<span><code>id</code> (' +
|
424 |
-
jQuery('<span><code>class</code> (' +
|
425 |
));
|
426 |
pane.append(
|
427 |
-
jQuery('<div class="tg-tag">' +
|
428 |
-
.append('<br />').append('1) ' +
|
429 |
.append(tgInputs.tag1st)
|
430 |
-
.append('<br />').append('2) ' +
|
431 |
.append(tgInputs.tag2nd)
|
432 |
);
|
433 |
break;
|
@@ -435,39 +453,39 @@ function tgPane(pane, tagType) {
|
|
435 |
var table1 = jQuery('<table></table>');
|
436 |
pane.append(table1);
|
437 |
table1.append(tgTr(
|
438 |
-
jQuery('<span> ' +
|
439 |
));
|
440 |
table1.append(tgTr(
|
441 |
-
jQuery('<span>' +
|
442 |
jQuery('<span></span>')
|
443 |
));
|
444 |
|
445 |
var table2 = jQuery('<table></table>');
|
446 |
pane.append(table2);
|
447 |
table2.append(tgTr(
|
448 |
-
jQuery('<span>' +
|
449 |
-
jQuery('<span>' +
|
450 |
));
|
451 |
table2.append(tgTr(
|
452 |
-
jQuery('<span><code>id</code> (' +
|
453 |
-
jQuery('<span><code>class</code> (' +
|
454 |
));
|
455 |
-
pane.append(jQuery('<div class="tg-tag">' +
|
456 |
break;
|
457 |
case 'submit':
|
458 |
var table = jQuery('<table></table>');
|
459 |
pane.append(table);
|
460 |
|
461 |
table.append(tgTr(
|
462 |
-
jQuery('<span><code>id</code> (' +
|
463 |
-
jQuery('<span><code>class</code> (' +
|
464 |
));
|
465 |
|
466 |
table.append(tgTr(
|
467 |
-
jQuery('<span>' +
|
468 |
jQuery('<span></span>')
|
469 |
));
|
470 |
-
pane.append(jQuery('<div class="tg-tag">' +
|
471 |
break;
|
472 |
}
|
473 |
|
@@ -495,7 +513,7 @@ function tgCreateTag(tagType, tgInputs, trigger) {
|
|
495 |
tgInputs[n].val(val);
|
496 |
});
|
497 |
|
498 |
-
jQuery.each([ 'tagSize', 'tagMaxLength', 'tagCols', 'tagRows'
|
499 |
var val = tgInputs[n].val();
|
500 |
val = val.replace(/[^0-9]/g, '');
|
501 |
tgInputs[n].val(val);
|
@@ -522,6 +540,12 @@ function tgCreateTag(tagType, tgInputs, trigger) {
|
|
522 |
tgInputs[n].val(val);
|
523 |
});
|
524 |
|
|
|
|
|
|
|
|
|
|
|
|
|
525 |
jQuery.each([ 'tagAcceptableFileTypes' ], function(i, n) {
|
526 |
var val = tgInputs[n].val();
|
527 |
val = val.replace(/[^0-9a-zA-Z.\s]/g, '');
|
59 |
}
|
60 |
});
|
61 |
|
62 |
+
jQuery('#message-fields-toggle-switch').text(_wpcf7L10n.show);
|
63 |
jQuery('#message-fields').hide();
|
64 |
|
65 |
jQuery('#message-fields-toggle-switch').click(function() {
|
66 |
if (jQuery('#message-fields').is(':hidden')) {
|
67 |
jQuery('#message-fields').slideDown('fast');
|
68 |
+
jQuery('#message-fields-toggle-switch').text(_wpcf7L10n.hide);
|
69 |
} else {
|
70 |
jQuery('#message-fields').hide('fast');
|
71 |
+
jQuery('#message-fields-toggle-switch').text(_wpcf7L10n.show);
|
72 |
+
}
|
73 |
+
});
|
74 |
+
|
75 |
+
if ('' == jQuery.trim(jQuery('#wpcf7-additional-settings').text())) {
|
76 |
+
jQuery('#additional-settings-fields-toggle-switch').text(_wpcf7L10n.show);
|
77 |
+
jQuery('#additional-settings-fields').hide();
|
78 |
+
} else {
|
79 |
+
jQuery('#additional-settings-fields-toggle-switch').text(_wpcf7L10n.hide);
|
80 |
+
jQuery('#additional-settings-fields').show();
|
81 |
+
}
|
82 |
+
|
83 |
+
jQuery('#additional-settings-fields-toggle-switch').click(function() {
|
84 |
+
if (jQuery('#additional-settings-fields').is(':hidden')) {
|
85 |
+
jQuery('#additional-settings-fields').slideDown('fast');
|
86 |
+
jQuery('#additional-settings-fields-toggle-switch').text(_wpcf7L10n.hide);
|
87 |
+
} else {
|
88 |
+
jQuery('#additional-settings-fields').hide('fast');
|
89 |
+
jQuery('#additional-settings-fields-toggle-switch').text(_wpcf7L10n.show);
|
90 |
}
|
91 |
});
|
92 |
|
121 |
var dropdown_icon = jQuery('<img src="../wp-content/plugins/contact-form-7/images/dropdown.gif" />');
|
122 |
dropdown_icon.css({ 'vertical-align': 'bottom' });
|
123 |
|
124 |
+
var selector = jQuery('<span>' + _wpcf7L10n.generateTag + '</span>');
|
125 |
selector.append(dropdown_icon);
|
126 |
selector.css({
|
127 |
border: '1px solid #ddd',
|
165 |
'acceptance', 'quiz', 'captcha', 'fileUpload', 'submit'];
|
166 |
|
167 |
jQuery.each(tag_types, function(i, n) {
|
168 |
+
var submenu = jQuery('<div>' + _wpcf7L10n[n] + '</div>');
|
169 |
submenu.css({
|
170 |
margin: 0,
|
171 |
padding: '0 4px',
|
204 |
closeButtonDiv.append(closeButton);
|
205 |
pane.append(closeButtonDiv);
|
206 |
|
207 |
+
var paneTitle = jQuery('<div class="tg-panetitle">' + _wpcf7L10n[tagType] + '</div>');
|
208 |
pane.append(paneTitle);
|
209 |
|
210 |
var tgInputs = {};
|
244 |
var table1 = jQuery('<table></table>');
|
245 |
pane.append(table1);
|
246 |
table1.append(tgTr(
|
247 |
+
jQuery('<span> ' + _wpcf7L10n.isRequiredField + '</span>').prepend(tgInputs.isRequiredField)
|
248 |
));
|
249 |
table1.append(tgTr(
|
250 |
+
jQuery('<span>' + _wpcf7L10n.tagName + '<br /></span>').append(tgInputs.tagName),
|
251 |
jQuery('<span></span>')
|
252 |
));
|
253 |
|
254 |
var table2 = jQuery('<table></table>');
|
255 |
pane.append(table2);
|
256 |
table2.append(tgTr(
|
257 |
+
jQuery('<span><code>size</code> (' + _wpcf7L10n.optional + ')<br /></span>').append(tgInputs.tagSize),
|
258 |
+
jQuery('<span><code>maxlength</code> (' + _wpcf7L10n.optional + ')<br /></span>').append(tgInputs.tagMaxLength)
|
259 |
));
|
260 |
table2.append(tgTr(
|
261 |
+
jQuery('<span><code>id</code> (' + _wpcf7L10n.optional + ')<br /></span>').append(tgInputs.tagId),
|
262 |
+
jQuery('<span><code>class</code> (' + _wpcf7L10n.optional + ')<br /></span>').append(tgInputs.tagClasses)
|
263 |
));
|
264 |
+
var akismetOpts = jQuery('<span>' + _wpcf7L10n.akismet + ' (' + _wpcf7L10n.optional + ')<br /></span>');
|
265 |
if ('textField' == tagType) {
|
266 |
+
akismetOpts.append(tgInputs.akismetAuthor).append(' ' + _wpcf7L10n.akismetAuthor);
|
267 |
akismetOpts.append('<br />');
|
268 |
+
akismetOpts.append(tgInputs.akismetAuthorUrl).append(' ' + _wpcf7L10n.akismetAuthorUrl);
|
269 |
} else if ('emailField' == tagType) {
|
270 |
+
akismetOpts.append(tgInputs.akismetAuthorEmail).append(' ' + _wpcf7L10n.akismetAuthorEmail);
|
271 |
}
|
272 |
table2.append(tgTr(
|
273 |
akismetOpts,
|
274 |
+
jQuery('<span>' + _wpcf7L10n.defaultValue + ' (' + _wpcf7L10n.optional + ')<br /></span>').append(tgInputs.defaultValue)
|
275 |
));
|
276 |
+
pane.append(jQuery('<div class="tg-tag">' + _wpcf7L10n.generatedTag + '<br /></div>').append(tgInputs.tag1st));
|
277 |
break;
|
278 |
case 'textArea':
|
279 |
var table1 = jQuery('<table></table>');
|
280 |
pane.append(table1);
|
281 |
table1.append(tgTr(
|
282 |
+
jQuery('<span> ' + _wpcf7L10n.isRequiredField + '</span>').prepend(tgInputs.isRequiredField)
|
283 |
));
|
284 |
table1.append(tgTr(
|
285 |
+
jQuery('<span>' + _wpcf7L10n.tagName + '<br /></span>').append(tgInputs.tagName),
|
286 |
jQuery('<span></span>')
|
287 |
));
|
288 |
|
289 |
var table2 = jQuery('<table></table>');
|
290 |
pane.append(table2);
|
291 |
table2.append(tgTr(
|
292 |
+
jQuery('<span><code>cols</code> (' + _wpcf7L10n.optional + ')<br /></span>').append(tgInputs.tagCols),
|
293 |
+
jQuery('<span><code>rows</code> (' + _wpcf7L10n.optional + ')<br /></span>').append(tgInputs.tagRows)
|
294 |
));
|
295 |
table2.append(tgTr(
|
296 |
+
jQuery('<span><code>id</code> (' + _wpcf7L10n.optional + ')<br /></span>').append(tgInputs.tagId),
|
297 |
+
jQuery('<span><code>class</code> (' + _wpcf7L10n.optional + ')<br /></span>').append(tgInputs.tagClasses)
|
298 |
));
|
299 |
table2.append(tgTr(
|
300 |
+
jQuery('<span>' + _wpcf7L10n.defaultValue + ' (' + _wpcf7L10n.optional + ')<br /></span>').append(tgInputs.defaultValue)
|
301 |
));
|
302 |
+
pane.append(jQuery('<div class="tg-tag">' + _wpcf7L10n.generatedTag + '<br /></div>').append(tgInputs.tag1st));
|
303 |
break;
|
304 |
case 'menu':
|
305 |
case 'checkboxes':
|
308 |
pane.append(table1);
|
309 |
if ('radioButtons' != tagType)
|
310 |
table1.append(tgTr(
|
311 |
+
jQuery('<span> ' + _wpcf7L10n.isRequiredField + '</span>').prepend(tgInputs.isRequiredField)
|
312 |
));
|
313 |
table1.append(tgTr(
|
314 |
+
jQuery('<span>' + _wpcf7L10n.tagName + '<br /></span>').append(tgInputs.tagName),
|
315 |
jQuery('<span></span>')
|
316 |
));
|
317 |
|
318 |
var table2 = jQuery('<table></table>');
|
319 |
pane.append(table2);
|
320 |
table2.append(tgTr(
|
321 |
+
jQuery('<span><code>id</code> (' + _wpcf7L10n.optional + ')<br /></span>').append(tgInputs.tagId),
|
322 |
+
jQuery('<span><code>class</code> (' + _wpcf7L10n.optional + ')<br /></span>').append(tgInputs.tagClasses)
|
323 |
));
|
324 |
|
325 |
if ('menu' == tagType) {
|
326 |
+
var menuOpt1 = jQuery('<span> ' + _wpcf7L10n.allowsMultipleSelections + '</span>').prepend(tgInputs.allowsMultipleSelections).prepend('<br />');
|
327 |
+
var menuOpt2 = jQuery('<span> ' + _wpcf7L10n.insertFirstBlankOption + '</span>').prepend(tgInputs.insertFirstBlankOption).prepend('<br />');
|
328 |
|
329 |
table2.append(tgTr(
|
330 |
+
jQuery('<span>' + _wpcf7L10n.menuChoices + '<br /></span>').append(tgInputs.menuChoices)
|
331 |
+
.append('<br /><span style="font-size: smaller">' + _wpcf7L10n.oneChoicePerLine + '</span>'),
|
332 |
menuOpt1.append(menuOpt2)
|
333 |
));
|
334 |
} else if ('checkboxes' == tagType) {
|
335 |
table2.append(tgTr(
|
336 |
+
jQuery('<span>' + _wpcf7L10n.menuChoices + '<br /></span>').append(tgInputs.menuChoices)
|
337 |
+
.append('<br /><span style="font-size: smaller">' + _wpcf7L10n.oneChoicePerLine + '</span>'),
|
338 |
+
jQuery('<span> ' + _wpcf7L10n.makeCheckboxesExclusive + '</span>').prepend(tgInputs.makeCheckboxesExclusive).prepend('<br />')
|
339 |
));
|
340 |
} else {
|
341 |
table2.append(tgTr(
|
342 |
+
jQuery('<span>' + _wpcf7L10n.menuChoices + '<br /></span>').append(tgInputs.menuChoices)
|
343 |
+
.append('<br /><span style="font-size: smaller">' + _wpcf7L10n.oneChoicePerLine + '</span>')
|
344 |
));
|
345 |
}
|
346 |
|
347 |
+
pane.append(jQuery('<div class="tg-tag">' + _wpcf7L10n.generatedTag + '<br /></div>').append(tgInputs.tag1st));
|
348 |
break;
|
349 |
case 'acceptance':
|
350 |
var table1 = jQuery('<table></table>');
|
351 |
pane.append(table1);
|
352 |
|
353 |
table1.append(tgTr(
|
354 |
+
jQuery('<span>' + _wpcf7L10n.tagName + '<br /></span>').append(tgInputs.tagName),
|
355 |
jQuery('<span></span>')
|
356 |
));
|
357 |
|
358 |
var table2 = jQuery('<table></table>');
|
359 |
pane.append(table2);
|
360 |
table2.append(tgTr(
|
361 |
+
jQuery('<span><code>id</code> (' + _wpcf7L10n.optional + ')<br /></span>').append(tgInputs.tagId),
|
362 |
+
jQuery('<span><code>class</code> (' + _wpcf7L10n.optional + ')<br /></span>').append(tgInputs.tagClasses)
|
363 |
));
|
364 |
|
365 |
+
var menuOpt1 = jQuery('<span> ' + _wpcf7L10n.isAcceptanceDefaultOn + '</span>').prepend(tgInputs.isAcceptanceDefaultOn).prepend('<br />');
|
366 |
+
var menuOpt2 = jQuery('<span> ' + _wpcf7L10n.isAcceptanceInvert + '</span>').prepend(tgInputs.isAcceptanceInvert).prepend('<br />');
|
367 |
+
menuOpt2.append('<br /><span style="font-size: smaller;">' + _wpcf7L10n.isAcceptanceInvertMeans + '</span>');
|
368 |
|
369 |
table2.append(jQuery('<tr></tr>').append(jQuery('<td colspan="2"></td>').append(menuOpt1).append(menuOpt2)));
|
370 |
|
371 |
+
pane.append(jQuery('<div class="tg-tag">' + _wpcf7L10n.generatedTag + '<br /></div>').append(tgInputs.tag1st));
|
372 |
break;
|
373 |
case 'quiz':
|
374 |
var table1 = jQuery('<table></table>');
|
375 |
pane.append(table1);
|
376 |
|
377 |
table1.append(tgTr(
|
378 |
+
jQuery('<span>' + _wpcf7L10n.tagName + '<br /></span>').append(tgInputs.tagName),
|
379 |
jQuery('<span></span>')
|
380 |
));
|
381 |
|
382 |
var table2 = jQuery('<table></table>');
|
383 |
pane.append(table2);
|
384 |
table2.append(tgTr(
|
385 |
+
jQuery('<span><code>size</code> (' + _wpcf7L10n.optional + ')<br /></span>').append(tgInputs.tagSize),
|
386 |
+
jQuery('<span><code>maxlength</code> (' + _wpcf7L10n.optional + ')<br /></span>').append(tgInputs.tagMaxLength)
|
387 |
));
|
388 |
table2.append(tgTr(
|
389 |
+
jQuery('<span><code>id</code> (' + _wpcf7L10n.optional + ')<br /></span>').append(tgInputs.tagId),
|
390 |
+
jQuery('<span><code>class</code> (' + _wpcf7L10n.optional + ')<br /></span>').append(tgInputs.tagClasses)
|
391 |
));
|
392 |
table2.append(tgTr(
|
393 |
+
jQuery('<span>' + _wpcf7L10n.quizzes + '<br /></span>').append(tgInputs.menuChoices)
|
394 |
+
.append('<br /><span style="font-size: smaller">' + _wpcf7L10n.quizFormatDesc + '</span>')
|
395 |
));
|
396 |
+
pane.append(jQuery('<div class="tg-tag">' + _wpcf7L10n.generatedTag + '<br /></div>').append(tgInputs.tag1st));
|
397 |
break;
|
398 |
case 'captcha':
|
399 |
var table1 = jQuery('<table></table>');
|
401 |
|
402 |
if (! _wpcf7.captchaMod) {
|
403 |
table1.append('<tr><td colspan="2"><strong style="color: #e6255b">' +
|
404 |
+
_wpcf7L10n.needReallySimpleCaptcha + '</strong><br />' +
|
405 |
'<a href="http://wordpress.org/extend/plugins/really-simple-captcha/">' +
|
406 |
'http://wordpress.org/extend/plugins/really-simple-captcha/</a></td></tr>');
|
407 |
}
|
408 |
|
409 |
table1.append(tgTr(
|
410 |
+
jQuery('<span>' + _wpcf7L10n.tagName + '<br /></span>').append(tgInputs.tagName),
|
411 |
jQuery('<span></span>')
|
412 |
));
|
413 |
|
414 |
var table2 = jQuery('<table></table>');
|
415 |
pane.append(table2);
|
416 |
+
table2.append('<caption>' + _wpcf7L10n.imageSettings + '</caption>');
|
417 |
+
var imageSizeOpts = jQuery('<span>' + _wpcf7L10n.imageSize + ' (' + _wpcf7L10n.optional + ')<br /></span>');
|
418 |
+
imageSizeOpts.append(tgInputs.imageSizeSmall).append(' ' + _wpcf7L10n.imageSizeSmall);
|
419 |
imageSizeOpts.append(' ');
|
420 |
+
imageSizeOpts.append(tgInputs.imageSizeMedium).append(' ' + _wpcf7L10n.imageSizeMedium);
|
421 |
imageSizeOpts.append(' ');
|
422 |
+
imageSizeOpts.append(tgInputs.imageSizeLarge).append(' ' + _wpcf7L10n.imageSizeLarge);
|
423 |
table2.append(jQuery('<tr></tr>').append(jQuery('<td colspan="2"></td>').append(imageSizeOpts)));
|
424 |
table2.append(tgTr(
|
425 |
+
jQuery('<span>' + _wpcf7L10n.fgColor + ' (' + _wpcf7L10n.optional + ')<br /></span>').append(tgInputs.fgColor),
|
426 |
+
jQuery('<span>' + _wpcf7L10n.bgColor + ' (' + _wpcf7L10n.optional + ')<br /></span>').append(tgInputs.bgColor)
|
427 |
));
|
428 |
table2.append(tgTr(
|
429 |
+
jQuery('<span><code>id</code> (' + _wpcf7L10n.optional + ')<br /></span>').append(tgInputs.tagId),
|
430 |
+
jQuery('<span><code>class</code> (' + _wpcf7L10n.optional + ')<br /></span>').append(tgInputs.tagClasses)
|
431 |
));
|
432 |
|
433 |
var table3 = jQuery('<table></table>');
|
434 |
pane.append(table3);
|
435 |
+
table3.append('<caption>' + _wpcf7L10n.inputFieldSettings + '</caption>');
|
436 |
table3.append(tgTr(
|
437 |
+
jQuery('<span><code>size</code> (' + _wpcf7L10n.optional + ')<br /></span>').append(tgInputs.tagSize),
|
438 |
+
jQuery('<span><code>maxlength</code> (' + _wpcf7L10n.optional + ')<br /></span>').append(tgInputs.tagMaxLength)
|
439 |
));
|
440 |
table3.append(tgTr(
|
441 |
+
jQuery('<span><code>id</code> (' + _wpcf7L10n.optional + ')<br /></span>').append(tgInputs.tagId2),
|
442 |
+
jQuery('<span><code>class</code> (' + _wpcf7L10n.optional + ')<br /></span>').append(tgInputs.tagClasses2)
|
443 |
));
|
444 |
pane.append(
|
445 |
+
jQuery('<div class="tg-tag">' + _wpcf7L10n.generatedTag + '</div>')
|
446 |
+
.append('<br />').append('1) ' + _wpcf7L10n.tagForImage)
|
447 |
.append(tgInputs.tag1st)
|
448 |
+
.append('<br />').append('2) ' + _wpcf7L10n.tagForInputField)
|
449 |
.append(tgInputs.tag2nd)
|
450 |
);
|
451 |
break;
|
453 |
var table1 = jQuery('<table></table>');
|
454 |
pane.append(table1);
|
455 |
table1.append(tgTr(
|
456 |
+
jQuery('<span> ' + _wpcf7L10n.isRequiredField + '</span>').prepend(tgInputs.isRequiredField)
|
457 |
));
|
458 |
table1.append(tgTr(
|
459 |
+
jQuery('<span>' + _wpcf7L10n.tagName + '<br /></span>').append(tgInputs.tagName),
|
460 |
jQuery('<span></span>')
|
461 |
));
|
462 |
|
463 |
var table2 = jQuery('<table></table>');
|
464 |
pane.append(table2);
|
465 |
table2.append(tgTr(
|
466 |
+
jQuery('<span>' + _wpcf7L10n.fileSizeLimit + ' (' + _wpcf7L10n.bytes + ') (' + _wpcf7L10n.optional + ')<br /></span>').append(tgInputs.tagFileSizeLimit),
|
467 |
+
jQuery('<span>' + _wpcf7L10n.acceptableFileTypes + ' (' + _wpcf7L10n.optional + ')<br /></span>').append(tgInputs.tagAcceptableFileTypes)
|
468 |
));
|
469 |
table2.append(tgTr(
|
470 |
+
jQuery('<span><code>id</code> (' + _wpcf7L10n.optional + ')<br /></span>').append(tgInputs.tagId),
|
471 |
+
jQuery('<span><code>class</code> (' + _wpcf7L10n.optional + ')<br /></span>').append(tgInputs.tagClasses)
|
472 |
));
|
473 |
+
pane.append(jQuery('<div class="tg-tag">' + _wpcf7L10n.generatedTag + '<br /></div>').append(tgInputs.tag1st));
|
474 |
break;
|
475 |
case 'submit':
|
476 |
var table = jQuery('<table></table>');
|
477 |
pane.append(table);
|
478 |
|
479 |
table.append(tgTr(
|
480 |
+
jQuery('<span><code>id</code> (' + _wpcf7L10n.optional + ')<br /></span>').append(tgInputs.tagId),
|
481 |
+
jQuery('<span><code>class</code> (' + _wpcf7L10n.optional + ')<br /></span>').append(tgInputs.tagClasses)
|
482 |
));
|
483 |
|
484 |
table.append(tgTr(
|
485 |
+
jQuery('<span>' + _wpcf7L10n.label + '<br /></span>').append(tgInputs.label),
|
486 |
jQuery('<span></span>')
|
487 |
));
|
488 |
+
pane.append(jQuery('<div class="tg-tag">' + _wpcf7L10n.generatedTag + '<br /></div>').append(tgInputs.tag1st));
|
489 |
break;
|
490 |
}
|
491 |
|
513 |
tgInputs[n].val(val);
|
514 |
});
|
515 |
|
516 |
+
jQuery.each([ 'tagSize', 'tagMaxLength', 'tagCols', 'tagRows' ], function(i, n) {
|
517 |
var val = tgInputs[n].val();
|
518 |
val = val.replace(/[^0-9]/g, '');
|
519 |
tgInputs[n].val(val);
|
540 |
tgInputs[n].val(val);
|
541 |
});
|
542 |
|
543 |
+
jQuery.each([ 'tagFileSizeLimit' ], function(i, n) {
|
544 |
+
var val = tgInputs[n].val();
|
545 |
+
val = val.replace(/[^0-9kKmMbB]/g, '');
|
546 |
+
tgInputs[n].val(val);
|
547 |
+
});
|
548 |
+
|
549 |
jQuery.each([ 'tagAcceptableFileTypes' ], function(i, n) {
|
550 |
var val = tgInputs[n].val();
|
551 |
val = val.replace(/[^0-9a-zA-Z.\s]/g, '');
|
contact-form-7.js
CHANGED
@@ -90,6 +90,9 @@ function wpcf7ProcessJson(data) {
|
|
90 |
if (1 == data.mailSent) {
|
91 |
jQuery(data.into).find('form').resetForm().clearForm();
|
92 |
wpcf7ResponseOutput.addClass('wpcf7-mail-sent-ok');
|
|
|
|
|
|
|
93 |
} else {
|
94 |
wpcf7ResponseOutput.addClass('wpcf7-mail-sent-ng');
|
95 |
}
|
90 |
if (1 == data.mailSent) {
|
91 |
jQuery(data.into).find('form').resetForm().clearForm();
|
92 |
wpcf7ResponseOutput.addClass('wpcf7-mail-sent-ok');
|
93 |
+
|
94 |
+
if (data.onSentOk)
|
95 |
+
jQuery.each(data.onSentOk, function(i, n) { eval(n) });
|
96 |
} else {
|
97 |
wpcf7ResponseOutput.addClass('wpcf7-mail-sent-ng');
|
98 |
}
|
includes/acceptance.php
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
function wpcf7_acceptance( $contact_form ) {
|
4 |
+
$fes = $contact_form->form_elements( false );
|
5 |
+
|
6 |
+
$accepted = true;
|
7 |
+
|
8 |
+
foreach ( $fes as $fe ) {
|
9 |
+
if ( 'acceptance' != $fe['type'] )
|
10 |
+
continue;
|
11 |
+
|
12 |
+
$invert = (bool) preg_grep( '%^invert$%', $fe['options'] );
|
13 |
+
|
14 |
+
if ( $invert && $_POST[$fe['name']] || ! $invert && ! $_POST[$fe['name']] )
|
15 |
+
$accepted = false;
|
16 |
+
}
|
17 |
+
|
18 |
+
return $accepted;
|
19 |
+
}
|
20 |
+
|
21 |
+
?>
|
includes/akismet.php
ADDED
@@ -0,0 +1,73 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
function wpcf7_akismet( $contact_form ) {
|
4 |
+
global $akismet_api_host, $akismet_api_port;
|
5 |
+
|
6 |
+
if ( ! function_exists( 'akismet_http_post' ) || ! ( get_option( 'wordpress_api_key' ) || $wpcom_api_key ) )
|
7 |
+
return false;
|
8 |
+
|
9 |
+
$akismet_ready = false;
|
10 |
+
$author = $author_email = $author_url = $content = '';
|
11 |
+
$fes = $contact_form->form_elements( false );
|
12 |
+
|
13 |
+
foreach ( $fes as $fe ) {
|
14 |
+
if ( ! is_array( $fe['options'] ) ) continue;
|
15 |
+
|
16 |
+
if ( preg_grep( '%^akismet:author$%', $fe['options'] ) && '' == $author ) {
|
17 |
+
$author = $_POST[$fe['name']];
|
18 |
+
$akismet_ready = true;
|
19 |
+
}
|
20 |
+
|
21 |
+
if ( preg_grep( '%^akismet:author_email$%', $fe['options'] ) && '' == $author_email ) {
|
22 |
+
$author_email = $_POST[$fe['name']];
|
23 |
+
$akismet_ready = true;
|
24 |
+
}
|
25 |
+
|
26 |
+
if ( preg_grep( '%^akismet:author_url$%', $fe['options'] ) && '' == $author_url ) {
|
27 |
+
$author_url = $_POST[$fe['name']];
|
28 |
+
$akismet_ready = true;
|
29 |
+
}
|
30 |
+
|
31 |
+
if ( '' != $content )
|
32 |
+
$content .= "\n\n";
|
33 |
+
|
34 |
+
$content .= $_POST[$fe['name']];
|
35 |
+
}
|
36 |
+
|
37 |
+
if ( ! $akismet_ready )
|
38 |
+
return false;
|
39 |
+
|
40 |
+
$c['blog'] = get_option( 'home' );
|
41 |
+
$c['user_ip'] = preg_replace( '/[^0-9., ]/', '', $_SERVER['REMOTE_ADDR'] );
|
42 |
+
$c['user_agent'] = $_SERVER['HTTP_USER_AGENT'];
|
43 |
+
$c['referrer'] = $_SERVER['HTTP_REFERER'];
|
44 |
+
$c['comment_type'] = 'contactform7';
|
45 |
+
if ( $permalink = get_permalink() )
|
46 |
+
$c['permalink'] = $permalink;
|
47 |
+
if ( '' != $author )
|
48 |
+
$c['comment_author'] = $author;
|
49 |
+
if ( '' != $author_email )
|
50 |
+
$c['comment_author_email'] = $author_email;
|
51 |
+
if ( '' != $author_url )
|
52 |
+
$c['comment_author_url'] = $author_url;
|
53 |
+
if ( '' != $content )
|
54 |
+
$c['comment_content'] = $content;
|
55 |
+
|
56 |
+
$ignore = array( 'HTTP_COOKIE' );
|
57 |
+
|
58 |
+
foreach ( $_SERVER as $key => $value )
|
59 |
+
if ( ! in_array( $key, (array) $ignore ) )
|
60 |
+
$c["$key"] = $value;
|
61 |
+
|
62 |
+
$query_string = '';
|
63 |
+
foreach ( $c as $key => $data )
|
64 |
+
$query_string .= $key . '=' . urlencode( stripslashes( $data ) ) . '&';
|
65 |
+
|
66 |
+
$response = akismet_http_post( $query_string, $akismet_api_host, '/1.1/comment-check', $akismet_api_port );
|
67 |
+
if ( 'true' == $response[1] )
|
68 |
+
return true;
|
69 |
+
else
|
70 |
+
return false;
|
71 |
+
}
|
72 |
+
|
73 |
+
?>
|
includes/captcha.php
ADDED
@@ -0,0 +1,190 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
$wpcf7_captcha = null;
|
4 |
+
|
5 |
+
function wpcf7_init_captcha() {
|
6 |
+
global $wpcf7_captcha;
|
7 |
+
|
8 |
+
if ( ! class_exists( 'ReallySimpleCaptcha' ) )
|
9 |
+
return false;
|
10 |
+
|
11 |
+
if ( ! is_object( $wpcf7_captcha ) )
|
12 |
+
$wpcf7_captcha = new ReallySimpleCaptcha();
|
13 |
+
$captcha =& $wpcf7_captcha;
|
14 |
+
|
15 |
+
$captcha->tmp_dir = trailingslashit( wpcf7_captcha_tmp_dir() );
|
16 |
+
wp_mkdir_p( $captcha->tmp_dir );
|
17 |
+
return true;
|
18 |
+
}
|
19 |
+
|
20 |
+
function wpcf7_generate_captcha( $options = null ) {
|
21 |
+
global $wpcf7_captcha;
|
22 |
+
|
23 |
+
if ( ! wpcf7_init_captcha() )
|
24 |
+
return false;
|
25 |
+
$captcha =& $wpcf7_captcha;
|
26 |
+
|
27 |
+
if ( ! is_dir( $captcha->tmp_dir ) || ! is_writable( $captcha->tmp_dir ) )
|
28 |
+
return false;
|
29 |
+
|
30 |
+
$img_type = imagetypes();
|
31 |
+
if ( $img_type & IMG_PNG )
|
32 |
+
$captcha->img_type = 'png';
|
33 |
+
elseif ( $img_type & IMG_GIF )
|
34 |
+
$captcha->img_type = 'gif';
|
35 |
+
elseif ( $img_type & IMG_JPG )
|
36 |
+
$captcha->img_type = 'jpeg';
|
37 |
+
else
|
38 |
+
return false;
|
39 |
+
|
40 |
+
if ( is_array( $options ) ) {
|
41 |
+
if ( isset( $options['img_size'] ) )
|
42 |
+
$captcha->img_size = $options['img_size'];
|
43 |
+
if ( isset( $options['base'] ) )
|
44 |
+
$captcha->base = $options['base'];
|
45 |
+
if ( isset( $options['font_size'] ) )
|
46 |
+
$captcha->font_size = $options['font_size'];
|
47 |
+
if ( isset( $options['font_char_width'] ) )
|
48 |
+
$captcha->font_char_width = $options['font_char_width'];
|
49 |
+
if ( isset( $options['fg'] ) )
|
50 |
+
$captcha->fg = $options['fg'];
|
51 |
+
if ( isset( $options['bg'] ) )
|
52 |
+
$captcha->bg = $options['bg'];
|
53 |
+
}
|
54 |
+
|
55 |
+
$prefix = mt_rand();
|
56 |
+
$captcha_word = $captcha->generate_random_word();
|
57 |
+
return $captcha->generate_image( $prefix, $captcha_word );
|
58 |
+
}
|
59 |
+
|
60 |
+
function wpcf7_check_captcha( $prefix, $response ) {
|
61 |
+
global $wpcf7_captcha;
|
62 |
+
|
63 |
+
if ( ! wpcf7_init_captcha() )
|
64 |
+
return false;
|
65 |
+
$captcha =& $wpcf7_captcha;
|
66 |
+
|
67 |
+
return $captcha->check( $prefix, $response );
|
68 |
+
}
|
69 |
+
|
70 |
+
function wpcf7_remove_captcha( $prefix ) {
|
71 |
+
global $wpcf7_captcha;
|
72 |
+
|
73 |
+
if ( ! wpcf7_init_captcha() )
|
74 |
+
return false;
|
75 |
+
$captcha =& $wpcf7_captcha;
|
76 |
+
|
77 |
+
$captcha->remove( $prefix );
|
78 |
+
}
|
79 |
+
|
80 |
+
function wpcf7_cleanup_captcha_files() {
|
81 |
+
$dir = trailingslashit( wpcf7_captcha_tmp_dir() );
|
82 |
+
|
83 |
+
if ( ! is_dir( $dir ) )
|
84 |
+
return false;
|
85 |
+
if ( ! is_readable( $dir ) )
|
86 |
+
return false;
|
87 |
+
if ( ! is_writable( $dir ) )
|
88 |
+
return false;
|
89 |
+
|
90 |
+
if ( $handle = @opendir( $dir ) ) {
|
91 |
+
while ( false !== ( $file = readdir( $handle ) ) ) {
|
92 |
+
if ( ! preg_match( '/^[0-9]+\.(php|png|gif|jpeg)$/', $file ) )
|
93 |
+
continue;
|
94 |
+
|
95 |
+
$stat = stat( $dir . $file );
|
96 |
+
if ( $stat['mtime'] + 21600 < time() ) // 21600 secs == 6 hours
|
97 |
+
@unlink( $dir . $file );
|
98 |
+
}
|
99 |
+
closedir( $handle );
|
100 |
+
}
|
101 |
+
}
|
102 |
+
|
103 |
+
function wpcf7_captchac_options( $options ) {
|
104 |
+
if ( ! is_array( $options ) )
|
105 |
+
return array();
|
106 |
+
|
107 |
+
$op = array();
|
108 |
+
$image_size_array = preg_grep( '%^size:[smlSML]$%', $options );
|
109 |
+
|
110 |
+
if ( $image_size = array_shift( $image_size_array ) ) {
|
111 |
+
preg_match( '%^size:([smlSML])$%', $image_size, $is_matches );
|
112 |
+
switch ( strtolower( $is_matches[1] ) ) {
|
113 |
+
case 's':
|
114 |
+
$op['img_size'] = array( 60, 20 );
|
115 |
+
$op['base'] = array( 6, 15 );
|
116 |
+
$op['font_size'] = 11;
|
117 |
+
$op['font_char_width'] = 13;
|
118 |
+
break;
|
119 |
+
case 'l':
|
120 |
+
$op['img_size'] = array( 84, 28 );
|
121 |
+
$op['base'] = array( 6, 20 );
|
122 |
+
$op['font_size'] = 17;
|
123 |
+
$op['font_char_width'] = 19;
|
124 |
+
break;
|
125 |
+
case 'm':
|
126 |
+
default:
|
127 |
+
$op['img_size'] = array( 72, 24 );
|
128 |
+
$op['base'] = array( 6, 18 );
|
129 |
+
$op['font_size'] = 14;
|
130 |
+
$op['font_char_width'] = 15;
|
131 |
+
}
|
132 |
+
}
|
133 |
+
|
134 |
+
$fg_color_array = preg_grep( '%^fg:#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$%', $options );
|
135 |
+
if ( $fg_color = array_shift( $fg_color_array ) ) {
|
136 |
+
preg_match( '%^fg:#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$%', $fg_color, $fc_matches );
|
137 |
+
if ( 3 == strlen( $fc_matches[1] ) ) {
|
138 |
+
$r = substr( $fc_matches[1], 0, 1 );
|
139 |
+
$g = substr( $fc_matches[1], 1, 1 );
|
140 |
+
$b = substr( $fc_matches[1], 2, 1 );
|
141 |
+
$op['fg'] = array( hexdec( $r . $r ), hexdec( $g . $g ), hexdec( $b . $b ) );
|
142 |
+
} elseif ( 6 == strlen( $fc_matches[1] ) ) {
|
143 |
+
$r = substr( $fc_matches[1], 0, 2 );
|
144 |
+
$g = substr( $fc_matches[1], 2, 2 );
|
145 |
+
$b = substr( $fc_matches[1], 4, 2 );
|
146 |
+
$op['fg'] = array( hexdec( $r ), hexdec( $g ), hexdec( $b ) );
|
147 |
+
}
|
148 |
+
}
|
149 |
+
|
150 |
+
$bg_color_array = preg_grep( '%^bg:#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$%', $options );
|
151 |
+
if ( $bg_color = array_shift( $bg_color_array ) ) {
|
152 |
+
preg_match( '%^bg:#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$%', $bg_color, $bc_matches );
|
153 |
+
if ( 3 == strlen( $bc_matches[1] ) ) {
|
154 |
+
$r = substr( $bc_matches[1], 0, 1 );
|
155 |
+
$g = substr( $bc_matches[1], 1, 1 );
|
156 |
+
$b = substr( $bc_matches[1], 2, 1 );
|
157 |
+
$op['bg'] = array( hexdec( $r . $r ), hexdec( $g . $g ), hexdec( $b . $b ) );
|
158 |
+
} elseif ( 6 == strlen( $bc_matches[1] ) ) {
|
159 |
+
$r = substr( $bc_matches[1], 0, 2 );
|
160 |
+
$g = substr( $bc_matches[1], 2, 2 );
|
161 |
+
$b = substr( $b |