Version Description
- 2017-08-16
Download this release
Release Info
Developer | codeinwp |
Plugin | Contact Form & SMTP Plugin for WordPress by PirateForms |
Version | 2.0.5 |
Comparing to | |
See all releases |
Code changes from version 2.0.4 to 2.0.5
- CHANGELOG.md +8 -0
- admin/class-pirateforms-admin.php +0 -1
- admin/partials/pirateforms-settings-sidebar-subscribe.php +1 -0
- includes/class-pirateforms-html.php +24 -0
- includes/class-pirateforms-phpformbuilder.php +28 -7
- includes/class-pirateforms-util.php +9 -0
- includes/class-pirateforms.php +35 -34
- languages/pirate-forms.pot +111 -111
- pirate-forms.php +2 -2
- public/class-pirateforms-public.php +720 -632
- public/css/front.css +1 -1
- public/js/scripts-general.js +1 -5
- public/partials/pirateforms-form.php +5 -50
- readme.txt +10 -0
- vendor/autoload.php +1 -1
- vendor/autoload_52.php +1 -1
- vendor/composer/autoload_real.php +5 -5
- vendor/composer/autoload_real_52.php +3 -3
- vendor/composer/installed.json +2 -3
CHANGELOG.md
CHANGED
@@ -1,4 +1,12 @@
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
### v2.0.4 - 2017-08-14
|
3 |
**Changes:**
|
4 |
* All fields are now optional.
|
1 |
|
2 |
+
### v2.0.5 - 2017-08-16
|
3 |
+
**Changes:**
|
4 |
+
|
5 |
+
### v2.0.5 - 2017-08-16
|
6 |
+
**Changes:**
|
7 |
+
* Fixed compatibility with the pro version for multiple fields.
|
8 |
+
* Fixed default consistency between forms.
|
9 |
+
|
10 |
### v2.0.4 - 2017-08-14
|
11 |
**Changes:**
|
12 |
* All fields are now optional.
|
admin/class-pirateforms-admin.php
CHANGED
@@ -74,7 +74,6 @@ class PirateForms_Admin {
|
|
74 |
}
|
75 |
}
|
76 |
|
77 |
-
|
78 |
/**
|
79 |
* Loads the sidebar
|
80 |
*
|
74 |
}
|
75 |
}
|
76 |
|
|
|
77 |
/**
|
78 |
* Loads the sidebar
|
79 |
*
|
admin/partials/pirateforms-settings-sidebar-subscribe.php
CHANGED
@@ -7,6 +7,7 @@ if ( ! defined( 'PIRATEFORMSPRO_BASEFILE' ) ) :
|
|
7 |
<li>Multiple forms builder</li>
|
8 |
<li>MailChimp integration</li>
|
9 |
<li>Developer friendly</li>
|
|
|
10 |
<li>12 months Support & Updates</li>
|
11 |
<li>30 days Money Back Guaranteed</li>
|
12 |
</ul>
|
7 |
<li>Multiple forms builder</li>
|
8 |
<li>MailChimp integration</li>
|
9 |
<li>Developer friendly</li>
|
10 |
+
<li>Custom fields</li>
|
11 |
<li>12 months Support & Updates</li>
|
12 |
<li>30 days Money Back Guaranteed</li>
|
13 |
</ul>
|
includes/class-pirateforms-html.php
CHANGED
@@ -192,6 +192,30 @@ class PirateForms_HTML {
|
|
192 |
return $this->get_wrap( $args, $html );
|
193 |
}
|
194 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
195 |
/**
|
196 |
* The input type="hidden" element
|
197 |
*
|
192 |
return $this->get_wrap( $args, $html );
|
193 |
}
|
194 |
|
195 |
+
/**
|
196 |
+
* The input type="number" element
|
197 |
+
*
|
198 |
+
* @since 1.2.6
|
199 |
+
*/
|
200 |
+
private function number( $args ) {
|
201 |
+
$html = $this->get_label( $args );
|
202 |
+
$html .= '<input type="number" ' . $this->get_common( $args, array( 'value' ) ) . ' min=0>';
|
203 |
+
|
204 |
+
return $this->get_wrap( $args, $html );
|
205 |
+
}
|
206 |
+
|
207 |
+
/**
|
208 |
+
* The input type="tel" element
|
209 |
+
*
|
210 |
+
* @since 1.2.6
|
211 |
+
*/
|
212 |
+
private function tel( $args ) {
|
213 |
+
$html = $this->get_label( $args );
|
214 |
+
$html .= '<input type="tel" ' . $this->get_common( $args, array( 'value' ) ) . '>';
|
215 |
+
|
216 |
+
return $this->get_wrap( $args, $html );
|
217 |
+
}
|
218 |
+
|
219 |
/**
|
220 |
* The input type="hidden" element
|
221 |
*
|
includes/class-pirateforms-phpformbuilder.php
CHANGED
@@ -7,15 +7,26 @@
|
|
7 |
*/
|
8 |
class PirateForms_PhpFormBuilder {
|
9 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
/**
|
11 |
* Build the HTML for the form based on the input queue
|
12 |
*
|
13 |
* @param array $elements The array of HTML elements.
|
|
|
|
|
14 |
*
|
15 |
* @return string
|
16 |
*/
|
17 |
-
function build_form( $elements ) {
|
18 |
-
$
|
|
|
19 |
if ( 'yes' === $pirateformsopt_attachment_field ) {
|
20 |
$pirate_forms_enctype = 'multipart/form-data';
|
21 |
} else {
|
@@ -23,19 +34,29 @@ class PirateForms_PhpFormBuilder {
|
|
23 |
}
|
24 |
|
25 |
$classes = array();
|
|
|
26 |
$form_start = '<form method="post" enctype="' . $pirate_forms_enctype . '" action="" class="pirate_forms ';
|
27 |
|
28 |
$html_helper = new PirateForms_HTML();
|
29 |
$form_end = '';
|
|
|
30 |
foreach ( $elements as $val ) {
|
31 |
-
|
32 |
-
|
33 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
34 |
}
|
35 |
-
$this->set_element( $val['id'], $element );
|
36 |
-
$classes[] = $val['id'] . '-on';
|
37 |
}
|
38 |
|
|
|
|
|
39 |
$form_start .= implode( ' ', $classes ) . '">';
|
40 |
$this->set_element( 'form_start', $form_start );
|
41 |
|
7 |
*/
|
8 |
class PirateForms_PhpFormBuilder {
|
9 |
|
10 |
+
/**
|
11 |
+
* The array of options for the form.
|
12 |
+
*
|
13 |
+
* @access public
|
14 |
+
* @var array $pirate_forms_options The array of options for the form.
|
15 |
+
*/
|
16 |
+
public $pirate_forms_options;
|
17 |
+
|
18 |
/**
|
19 |
* Build the HTML for the form based on the input queue
|
20 |
*
|
21 |
* @param array $elements The array of HTML elements.
|
22 |
+
* @param array $pirate_forms_options The array of options for the form.
|
23 |
+
* @param bpol $from_widget Is the form in the widget.
|
24 |
*
|
25 |
* @return string
|
26 |
*/
|
27 |
+
function build_form( $elements, $pirate_forms_options, $from_widget ) {
|
28 |
+
$this->pirate_forms_options = $pirate_forms_options;
|
29 |
+
$pirateformsopt_attachment_field = $pirate_forms_options['pirateformsopt_attachment_field'];
|
30 |
if ( 'yes' === $pirateformsopt_attachment_field ) {
|
31 |
$pirate_forms_enctype = 'multipart/form-data';
|
32 |
} else {
|
34 |
}
|
35 |
|
36 |
$classes = array();
|
37 |
+
$classes[] = $from_widget ? 'widget-on' : '';
|
38 |
$form_start = '<form method="post" enctype="' . $pirate_forms_enctype . '" action="" class="pirate_forms ';
|
39 |
|
40 |
$html_helper = new PirateForms_HTML();
|
41 |
$form_end = '';
|
42 |
+
$custom_fields = '';
|
43 |
foreach ( $elements as $val ) {
|
44 |
+
if ( isset( $val['is_custom'] ) && $val['is_custom'] ) {
|
45 |
+
// we will combine the HTML for all the custom fields and save it under one element name.
|
46 |
+
$custom_fields .= $html_helper->add( $val, false );
|
47 |
+
$classes[] = $val['id'] . '-on';
|
48 |
+
} else {
|
49 |
+
$element = $html_helper->add( $val, false );
|
50 |
+
if ( 'form_honeypot' === $val['id'] || in_array( $val['type'], array( 'hidden', 'div' ) ) ) {
|
51 |
+
$form_end .= $element;
|
52 |
+
}
|
53 |
+
$this->set_element( $val['id'], $element );
|
54 |
+
$classes[] = $val['id'] . '-on';
|
55 |
}
|
|
|
|
|
56 |
}
|
57 |
|
58 |
+
$this->set_element( 'custom_fields', $custom_fields );
|
59 |
+
|
60 |
$form_start .= implode( ' ', $classes ) . '">';
|
61 |
$this->set_element( 'form_start', $form_start );
|
62 |
|
includes/class-pirateforms-util.php
CHANGED
@@ -7,6 +7,15 @@
|
|
7 |
*/
|
8 |
class PirateForms_Util {
|
9 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
/**
|
11 |
* Returns if the domain is localhost
|
12 |
*
|
7 |
*/
|
8 |
class PirateForms_Util {
|
9 |
|
10 |
+
/**
|
11 |
+
* Return the table row
|
12 |
+
*
|
13 |
+
* @since 1.0.0
|
14 |
+
*/
|
15 |
+
public static function table_row( $key, $value ) {
|
16 |
+
return '<tr><th>' . $key . '</th><td>' . $value . '</td></tr>';
|
17 |
+
}
|
18 |
+
|
19 |
/**
|
20 |
* Returns if the domain is localhost
|
21 |
*
|
includes/class-pirateforms.php
CHANGED
@@ -69,7 +69,7 @@ class PirateForms {
|
|
69 |
public function __construct() {
|
70 |
|
71 |
$this->plugin_name = 'pirateforms';
|
72 |
-
$this->version = '2.0.
|
73 |
|
74 |
$this->load_dependencies();
|
75 |
$this->set_locale();
|
@@ -160,6 +160,9 @@ class PirateForms {
|
|
160 |
|
161 |
// ONLY FOR UNIT TESTING: we cannot fire template_redirect without errors, that is why we are creating a manual hook for this
|
162 |
$this->loader->add_action( 'pirate_unittesting_template_redirect', $plugin_public, 'template_redirect' );
|
|
|
|
|
|
|
163 |
|
164 |
$this->loader->add_filter( 'widget_text', $plugin_public, 'widget_text_filter', 9 );
|
165 |
$this->loader->add_filter( 'pirate_forms_public_controls', $plugin_public, 'compatibility_class', 9 );
|
@@ -215,38 +218,36 @@ class PirateForms {
|
|
215 |
* @since 1.0.0
|
216 |
*/
|
217 |
public function register_content_type() {
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
$
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
248 |
-
|
249 |
-
register_post_type( 'pf_contact', $args );
|
250 |
-
}
|
251 |
}
|
252 |
}
|
69 |
public function __construct() {
|
70 |
|
71 |
$this->plugin_name = 'pirateforms';
|
72 |
+
$this->version = '2.0.5';
|
73 |
|
74 |
$this->load_dependencies();
|
75 |
$this->set_locale();
|
160 |
|
161 |
// ONLY FOR UNIT TESTING: we cannot fire template_redirect without errors, that is why we are creating a manual hook for this
|
162 |
$this->loader->add_action( 'pirate_unittesting_template_redirect', $plugin_public, 'template_redirect' );
|
163 |
+
$this->loader->add_action( 'pirate_forms_render_thankyou', $plugin_public, 'render_thankyou' );
|
164 |
+
$this->loader->add_action( 'pirate_forms_render_errors', $plugin_public, 'render_errors' );
|
165 |
+
$this->loader->add_action( 'pirate_forms_render_fields', $plugin_public, 'render_fields' );
|
166 |
|
167 |
$this->loader->add_filter( 'widget_text', $plugin_public, 'widget_text_filter', 9 );
|
168 |
$this->loader->add_filter( 'pirate_forms_public_controls', $plugin_public, 'compatibility_class', 9 );
|
218 |
* @since 1.0.0
|
219 |
*/
|
220 |
public function register_content_type() {
|
221 |
+
$labels = array(
|
222 |
+
'name' => _x( 'Contacts', 'post type general name', 'pirate-forms' ),
|
223 |
+
'singular_name' => _x( 'Contact', 'post type singular name', 'pirate-forms' ),
|
224 |
+
'menu_name' => _x( 'Contacts', 'admin menu', 'pirate-forms' ),
|
225 |
+
'name_admin_bar' => _x( 'Contact', 'add new on admin bar', 'pirate-forms' ),
|
226 |
+
'add_new' => _x( 'Add New', 'contact', 'pirate-forms' ),
|
227 |
+
'add_new_item' => __( 'Add New Contact', 'pirate-forms' ),
|
228 |
+
'new_item' => __( 'New Contact', 'pirate-forms' ),
|
229 |
+
'edit_item' => __( 'Edit Contact', 'pirate-forms' ),
|
230 |
+
'view_item' => __( 'View Contact', 'pirate-forms' ),
|
231 |
+
'all_items' => __( 'All Contacts', 'pirate-forms' ),
|
232 |
+
'search_items' => __( 'Search Contacts', 'pirate-forms' ),
|
233 |
+
'parent_item_colon' => __( 'Parent Contacts:', 'pirate-forms' ),
|
234 |
+
'not_found' => __( 'No contacts found.', 'pirate-forms' ),
|
235 |
+
'not_found_in_trash' => __( 'No contacts found in Trash.', 'pirate-forms' ),
|
236 |
+
);
|
237 |
+
$args = array(
|
238 |
+
'labels' => $labels,
|
239 |
+
'description' => __( 'Contacts from Pirate Forms', 'pirate-forms' ),
|
240 |
+
'public' => true,
|
241 |
+
'publicly_queryable' => true,
|
242 |
+
'show_ui' => true,
|
243 |
+
'show_in_menu' => 'pirateforms-admin',
|
244 |
+
'query_var' => true,
|
245 |
+
'capability_type' => 'post',
|
246 |
+
'has_archive' => true,
|
247 |
+
'hierarchical' => false,
|
248 |
+
'menu_position' => null,
|
249 |
+
'supports' => array( 'title', 'editor', 'custom-fields' ),
|
250 |
+
);
|
251 |
+
register_post_type( 'pf_contact', $args );
|
|
|
|
|
252 |
}
|
253 |
}
|
languages/pirate-forms.pot
CHANGED
@@ -2,9 +2,9 @@
|
|
2 |
# This file is distributed under the GPLv2.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: Free & Simple Contact Form Plugin - Pirateforms 2.0.
|
6 |
"Report-Msgid-Bugs-To: https://github.com/Codeinwp/pirate-forms/issues\n"
|
7 |
-
"POT-Creation-Date: 2017-08-
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=utf-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
@@ -24,27 +24,27 @@ msgstr ""
|
|
24 |
"X-Poedit-Bookmarks: \n"
|
25 |
"X-Textdomain-Support: yes\n"
|
26 |
|
27 |
-
#: admin/class-pirateforms-admin.php:
|
28 |
msgid "Settings"
|
29 |
msgstr ""
|
30 |
|
31 |
-
#: admin/class-pirateforms-admin.php:
|
32 |
msgid "Send Message"
|
33 |
msgstr ""
|
34 |
|
35 |
-
#: admin/class-pirateforms-admin.php:
|
36 |
msgid "Form processing options"
|
37 |
msgstr ""
|
38 |
|
39 |
-
#: admin/class-pirateforms-admin.php:
|
40 |
msgid "Contact notification email address"
|
41 |
msgstr ""
|
42 |
|
43 |
-
#: admin/class-pirateforms-admin.php:
|
44 |
msgid "Insert [email] to use the contact form submitter's email."
|
45 |
msgstr ""
|
46 |
|
47 |
-
#: admin/class-pirateforms-admin.php:
|
48 |
msgid ""
|
49 |
"The notification email will be sent from this address both to the "
|
50 |
"recipients below and the contact form submitter (if this is activated below "
|
@@ -52,38 +52,38 @@ msgid ""
|
|
52 |
"should match your site's domain)."
|
53 |
msgstr ""
|
54 |
|
55 |
-
#: admin/class-pirateforms-admin.php:
|
56 |
msgid "Contact submission recipients"
|
57 |
msgstr ""
|
58 |
|
59 |
-
#: admin/class-pirateforms-admin.php:
|
60 |
msgid ""
|
61 |
"Email address(es) to receive contact submission notifications. You can "
|
62 |
"separate multiple emails with a comma."
|
63 |
msgstr ""
|
64 |
|
65 |
-
#: admin/class-pirateforms-admin.php:
|
66 |
msgid "Store submissions in the database"
|
67 |
msgstr ""
|
68 |
|
69 |
-
#: admin/class-pirateforms-admin.php:
|
70 |
msgid ""
|
71 |
"Should the submissions be stored in the admin area? If chosen, contact form "
|
72 |
"submissions will be saved in Contacts on the left (appears after this "
|
73 |
"option is activated)."
|
74 |
msgstr ""
|
75 |
|
76 |
-
#: admin/class-pirateforms-admin.php:
|
77 |
-
#: admin/class-pirateforms-admin.php:
|
78 |
-
#: admin/class-pirateforms-admin.php:
|
79 |
msgid "Yes"
|
80 |
msgstr ""
|
81 |
|
82 |
-
#: admin/class-pirateforms-admin.php:
|
83 |
msgid "Add a nonce to the contact form:"
|
84 |
msgstr ""
|
85 |
|
86 |
-
#: admin/class-pirateforms-admin.php:
|
87 |
msgid ""
|
88 |
"Should the form use a WordPress nonce? This helps reduce spam by ensuring "
|
89 |
"that the form submittor is on the site when submitting the form rather than "
|
@@ -92,227 +92,227 @@ msgid ""
|
|
92 |
"forms not being able to be submitted with an error of \"Nonce failed!\""
|
93 |
msgstr ""
|
94 |
|
95 |
-
#: admin/class-pirateforms-admin.php:
|
96 |
msgid "Send email confirmation to form submitter"
|
97 |
msgstr ""
|
98 |
|
99 |
-
#: admin/class-pirateforms-admin.php:
|
100 |
msgid ""
|
101 |
"Adding text here will send an email to the form submitter. The email uses "
|
102 |
"the \"Successful form submission text\" field from the \"Alert Messages\" "
|
103 |
"tab as the subject line. Plain text only here, no HTML."
|
104 |
msgstr ""
|
105 |
|
106 |
-
#: admin/class-pirateforms-admin.php:
|
107 |
msgid "Success Page"
|
108 |
msgstr ""
|
109 |
|
110 |
-
#: admin/class-pirateforms-admin.php:
|
111 |
msgid ""
|
112 |
"Select the page that displays after a successful form submission. The page "
|
113 |
"will be displayed without pausing on the email form, so please be sure to "
|
114 |
"configure a relevant thank you message in this page."
|
115 |
msgstr ""
|
116 |
|
117 |
-
#: admin/class-pirateforms-admin.php:
|
118 |
#: admin/partials/pirateforms-settings-display.php:31
|
119 |
msgid "Fields Settings"
|
120 |
msgstr ""
|
121 |
|
122 |
-
#: admin/class-pirateforms-admin.php:
|
123 |
msgid "Name"
|
124 |
msgstr ""
|
125 |
|
|
|
|
|
|
|
|
|
|
|
|
|
126 |
#: admin/class-pirateforms-admin.php:349 admin/class-pirateforms-admin.php:368
|
127 |
#: admin/class-pirateforms-admin.php:387 admin/class-pirateforms-admin.php:406
|
128 |
#: admin/class-pirateforms-admin.php:424
|
129 |
-
msgid "
|
130 |
msgstr ""
|
131 |
|
132 |
#: admin/class-pirateforms-admin.php:350 admin/class-pirateforms-admin.php:369
|
133 |
#: admin/class-pirateforms-admin.php:388 admin/class-pirateforms-admin.php:407
|
134 |
#: admin/class-pirateforms-admin.php:425
|
135 |
-
msgid "Display but not required"
|
136 |
-
msgstr ""
|
137 |
-
|
138 |
-
#: admin/class-pirateforms-admin.php:351 admin/class-pirateforms-admin.php:370
|
139 |
-
#: admin/class-pirateforms-admin.php:389 admin/class-pirateforms-admin.php:408
|
140 |
-
#: admin/class-pirateforms-admin.php:426
|
141 |
msgid "Required"
|
142 |
msgstr ""
|
143 |
|
144 |
-
#: admin/class-pirateforms-admin.php:
|
145 |
msgid "Email address"
|
146 |
msgstr ""
|
147 |
|
148 |
-
#: admin/class-pirateforms-admin.php:
|
149 |
-
#: admin/class-pirateforms-admin.php:
|
150 |
msgid "Subject"
|
151 |
msgstr ""
|
152 |
|
153 |
-
#: admin/class-pirateforms-admin.php:
|
154 |
msgid "Message"
|
155 |
msgstr ""
|
156 |
|
157 |
-
#: admin/class-pirateforms-admin.php:
|
158 |
msgid "Attachment"
|
159 |
msgstr ""
|
160 |
|
161 |
-
#: admin/class-pirateforms-admin.php:
|
162 |
msgid "Add a reCAPTCHA"
|
163 |
msgstr ""
|
164 |
|
165 |
-
#: admin/class-pirateforms-admin.php:
|
166 |
msgid "Site key"
|
167 |
msgstr ""
|
168 |
|
169 |
-
#: admin/class-pirateforms-admin.php:
|
170 |
msgid "Create an account here "
|
171 |
msgstr ""
|
172 |
|
173 |
-
#: admin/class-pirateforms-admin.php:
|
174 |
msgid "to get the Site key and the Secret key for the reCaptcha."
|
175 |
msgstr ""
|
176 |
|
177 |
-
#: admin/class-pirateforms-admin.php:
|
178 |
msgid "Secret key"
|
179 |
msgstr ""
|
180 |
|
181 |
-
#: admin/class-pirateforms-admin.php:
|
182 |
#: admin/partials/pirateforms-settings-display.php:34
|
183 |
msgid "Fields Labels"
|
184 |
msgstr ""
|
185 |
|
186 |
-
#: admin/class-pirateforms-admin.php:
|
187 |
msgid "Your Name"
|
188 |
msgstr ""
|
189 |
|
190 |
-
#: admin/class-pirateforms-admin.php:
|
191 |
msgid "Email"
|
192 |
msgstr ""
|
193 |
|
194 |
-
#: admin/class-pirateforms-admin.php:
|
195 |
msgid "Your Email"
|
196 |
msgstr ""
|
197 |
|
198 |
-
#: admin/class-pirateforms-admin.php:
|
199 |
msgid "Your message"
|
200 |
msgstr ""
|
201 |
|
202 |
-
#: admin/class-pirateforms-admin.php:
|
203 |
msgid "Submit button"
|
204 |
msgstr ""
|
205 |
|
206 |
-
#: admin/class-pirateforms-admin.php:
|
207 |
#: admin/partials/pirateforms-settings-display.php:37
|
208 |
msgid "Alert Messages"
|
209 |
msgstr ""
|
210 |
|
211 |
-
#: admin/class-pirateforms-admin.php:
|
212 |
msgid "Name required and missing"
|
213 |
msgstr ""
|
214 |
|
215 |
-
#: admin/class-pirateforms-admin.php:
|
216 |
msgid "Enter your name"
|
217 |
msgstr ""
|
218 |
|
219 |
-
#: admin/class-pirateforms-admin.php:
|
220 |
msgid "E-mail required and missing"
|
221 |
msgstr ""
|
222 |
|
223 |
-
#: admin/class-pirateforms-admin.php:
|
224 |
msgid "Enter valid email"
|
225 |
msgstr ""
|
226 |
|
227 |
-
#: admin/class-pirateforms-admin.php:
|
228 |
msgid "Subject required and missing"
|
229 |
msgstr ""
|
230 |
|
231 |
-
#: admin/class-pirateforms-admin.php:
|
232 |
msgid "Please enter a subject"
|
233 |
msgstr ""
|
234 |
|
235 |
-
#: admin/class-pirateforms-admin.php:
|
236 |
msgid "Question/comment is missing"
|
237 |
msgstr ""
|
238 |
|
239 |
-
#: admin/class-pirateforms-admin.php:
|
240 |
msgid "Enter your question or comment"
|
241 |
msgstr ""
|
242 |
|
243 |
-
#: admin/class-pirateforms-admin.php:
|
244 |
msgid "Attachment is missing"
|
245 |
msgstr ""
|
246 |
|
247 |
-
#: admin/class-pirateforms-admin.php:
|
248 |
msgid "Please add an attachment"
|
249 |
msgstr ""
|
250 |
|
251 |
-
#: admin/class-pirateforms-admin.php:
|
252 |
msgid "Successful form submission text"
|
253 |
msgstr ""
|
254 |
|
255 |
-
#: admin/class-pirateforms-admin.php:
|
256 |
msgid ""
|
257 |
"This text is used on the page if no Success Page is chosen above. This is "
|
258 |
"also used as the confirmation email title, if one is set to send out."
|
259 |
msgstr ""
|
260 |
|
261 |
-
#: admin/class-pirateforms-admin.php:
|
262 |
msgid "Thanks, your email was sent successfully!"
|
263 |
msgstr ""
|
264 |
|
265 |
-
#: admin/class-pirateforms-admin.php:
|
266 |
msgid "SMTP Options"
|
267 |
msgstr ""
|
268 |
|
269 |
-
#: admin/class-pirateforms-admin.php:
|
270 |
msgid "Use SMTP to send emails?"
|
271 |
msgstr ""
|
272 |
|
273 |
-
#: admin/class-pirateforms-admin.php:
|
274 |
msgid "Instead of PHP mail function"
|
275 |
msgstr ""
|
276 |
|
277 |
-
#: admin/class-pirateforms-admin.php:
|
278 |
msgid "SMTP Host"
|
279 |
msgstr ""
|
280 |
|
281 |
-
#: admin/class-pirateforms-admin.php:
|
282 |
msgid "SMTP Port"
|
283 |
msgstr ""
|
284 |
|
285 |
-
#: admin/class-pirateforms-admin.php:
|
286 |
msgid "Use SMTP Authentication?"
|
287 |
msgstr ""
|
288 |
|
289 |
-
#: admin/class-pirateforms-admin.php:
|
290 |
msgid ""
|
291 |
"If you check this box, make sure the SMTP Username and SMTP Password are "
|
292 |
"completed."
|
293 |
msgstr ""
|
294 |
|
295 |
-
#: admin/class-pirateforms-admin.php:
|
296 |
msgid "Security?"
|
297 |
msgstr ""
|
298 |
|
299 |
-
#: admin/class-pirateforms-admin.php:
|
300 |
msgid "No"
|
301 |
msgstr ""
|
302 |
|
303 |
-
#: admin/class-pirateforms-admin.php:
|
304 |
msgid "SSL"
|
305 |
msgstr ""
|
306 |
|
307 |
-
#: admin/class-pirateforms-admin.php:
|
308 |
msgid "TLS"
|
309 |
msgstr ""
|
310 |
|
311 |
-
#: admin/class-pirateforms-admin.php:
|
312 |
msgid "SMTP Username"
|
313 |
msgstr ""
|
314 |
|
315 |
-
#: admin/class-pirateforms-admin.php:
|
316 |
msgid "SMTP Password"
|
317 |
msgstr ""
|
318 |
|
@@ -422,11 +422,11 @@ msgid ""
|
|
422 |
"newsletter."
|
423 |
msgstr ""
|
424 |
|
425 |
-
#: includes/class-pirateforms-util.php:
|
426 |
msgid "Form submission blocked!"
|
427 |
msgstr ""
|
428 |
|
429 |
-
#: includes/class-pirateforms-util.php:
|
430 |
msgid "None"
|
431 |
msgstr ""
|
432 |
|
@@ -446,103 +446,103 @@ msgstr ""
|
|
446 |
msgid "Subtext:"
|
447 |
msgstr ""
|
448 |
|
449 |
-
#: includes/class-pirateforms.php:
|
450 |
msgid "Add New Contact"
|
451 |
msgstr ""
|
452 |
|
453 |
-
#: includes/class-pirateforms.php:
|
454 |
msgid "New Contact"
|
455 |
msgstr ""
|
456 |
|
457 |
-
#: includes/class-pirateforms.php:
|
458 |
msgid "Edit Contact"
|
459 |
msgstr ""
|
460 |
|
461 |
-
#: includes/class-pirateforms.php:
|
462 |
msgid "View Contact"
|
463 |
msgstr ""
|
464 |
|
465 |
-
#: includes/class-pirateforms.php:
|
466 |
msgid "All Contacts"
|
467 |
msgstr ""
|
468 |
|
469 |
-
#: includes/class-pirateforms.php:
|
470 |
msgid "Search Contacts"
|
471 |
msgstr ""
|
472 |
|
473 |
-
#: includes/class-pirateforms.php:
|
474 |
msgid "Parent Contacts:"
|
475 |
msgstr ""
|
476 |
|
477 |
-
#: includes/class-pirateforms.php:
|
478 |
msgid "No contacts found."
|
479 |
msgstr ""
|
480 |
|
481 |
-
#: includes/class-pirateforms.php:
|
482 |
msgid "No contacts found in Trash."
|
483 |
msgstr ""
|
484 |
|
485 |
-
#: includes/class-pirateforms.php:
|
486 |
msgid "Contacts from Pirate Forms"
|
487 |
msgstr ""
|
488 |
|
489 |
-
#: public/class-pirateforms-public.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
490 |
msgid "Nonce failed!"
|
491 |
msgstr ""
|
492 |
|
493 |
-
#: public/class-pirateforms-public.php:
|
494 |
msgid "Form submission failed!"
|
495 |
msgstr ""
|
496 |
|
497 |
-
#: public/class-pirateforms-public.php:
|
498 |
msgid "Contact form submission from"
|
499 |
msgstr ""
|
500 |
|
501 |
-
#: public/class-pirateforms-public.php:
|
502 |
msgid "Please enter one or more Contact submission recipients"
|
503 |
msgstr ""
|
504 |
|
505 |
-
#: public/class-pirateforms-public.php:
|
506 |
msgid "IP address: "
|
507 |
msgstr ""
|
508 |
|
509 |
-
#: public/class-pirateforms-public.php:
|
510 |
msgid "IP search:"
|
511 |
msgstr ""
|
512 |
|
513 |
-
#: public/class-pirateforms-public.php:
|
514 |
msgid "Came from: "
|
515 |
msgstr ""
|
516 |
|
517 |
-
#: public/class-pirateforms-public.php:
|
518 |
msgid "Sent from page: "
|
519 |
msgstr ""
|
520 |
|
521 |
-
#: public/class-pirateforms-public.php:
|
522 |
-
#: public/class-pirateforms-public.php:
|
523 |
msgid "Wrong reCAPTCHA"
|
524 |
msgstr ""
|
525 |
|
526 |
-
#: public/class-pirateforms-public.php:
|
527 |
msgid "Uploaded file is not allowed for file type"
|
528 |
msgstr ""
|
529 |
|
530 |
-
#: public/class-pirateforms-public.php:
|
531 |
msgid "Uploaded file is too large"
|
532 |
msgstr ""
|
533 |
|
534 |
-
#: public/class-pirateforms-public.php:
|
535 |
msgid "There was an unknown error uploading the file."
|
536 |
msgstr ""
|
537 |
|
538 |
-
#: public/class-pirateforms-public.php:803
|
539 |
-
msgid "Submit"
|
540 |
-
msgstr ""
|
541 |
-
|
542 |
-
#: public/partials/pirateforms-form.php:29
|
543 |
-
msgid "Sorry, an error occured."
|
544 |
-
msgstr ""
|
545 |
-
|
546 |
#. Plugin Name of the plugin/theme
|
547 |
msgid "Free & Simple Contact Form Plugin - Pirateforms"
|
548 |
msgstr ""
|
@@ -563,27 +563,27 @@ msgstr ""
|
|
563 |
msgid "http://themeisle.com"
|
564 |
msgstr ""
|
565 |
|
566 |
-
#: includes/class-pirateforms.php:
|
567 |
msgctxt "post type general name"
|
568 |
msgid "Contacts"
|
569 |
msgstr ""
|
570 |
|
571 |
-
#: includes/class-pirateforms.php:
|
572 |
msgctxt "post type singular name"
|
573 |
msgid "Contact"
|
574 |
msgstr ""
|
575 |
|
576 |
-
#: includes/class-pirateforms.php:
|
577 |
msgctxt "admin menu"
|
578 |
msgid "Contacts"
|
579 |
msgstr ""
|
580 |
|
581 |
-
#: includes/class-pirateforms.php:
|
582 |
msgctxt "add new on admin bar"
|
583 |
msgid "Contact"
|
584 |
msgstr ""
|
585 |
|
586 |
-
#: includes/class-pirateforms.php:
|
587 |
msgctxt "contact"
|
588 |
msgid "Add New"
|
589 |
msgstr ""
|
2 |
# This file is distributed under the GPLv2.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: Free & Simple Contact Form Plugin - Pirateforms 2.0.4\n"
|
6 |
"Report-Msgid-Bugs-To: https://github.com/Codeinwp/pirate-forms/issues\n"
|
7 |
+
"POT-Creation-Date: 2017-08-15 19:26:11+00:00\n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=utf-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
24 |
"X-Poedit-Bookmarks: \n"
|
25 |
"X-Textdomain-Support: yes\n"
|
26 |
|
27 |
+
#: admin/class-pirateforms-admin.php:113 admin/class-pirateforms-admin.php:131
|
28 |
msgid "Settings"
|
29 |
msgstr ""
|
30 |
|
31 |
+
#: admin/class-pirateforms-admin.php:189 admin/class-pirateforms-admin.php:193
|
32 |
msgid "Send Message"
|
33 |
msgstr ""
|
34 |
|
35 |
+
#: admin/class-pirateforms-admin.php:211
|
36 |
msgid "Form processing options"
|
37 |
msgstr ""
|
38 |
|
39 |
+
#: admin/class-pirateforms-admin.php:218
|
40 |
msgid "Contact notification email address"
|
41 |
msgstr ""
|
42 |
|
43 |
+
#: admin/class-pirateforms-admin.php:221
|
44 |
msgid "Insert [email] to use the contact form submitter's email."
|
45 |
msgstr ""
|
46 |
|
47 |
+
#: admin/class-pirateforms-admin.php:221
|
48 |
msgid ""
|
49 |
"The notification email will be sent from this address both to the "
|
50 |
"recipients below and the contact form submitter (if this is activated below "
|
52 |
"should match your site's domain)."
|
53 |
msgstr ""
|
54 |
|
55 |
+
#: admin/class-pirateforms-admin.php:237
|
56 |
msgid "Contact submission recipients"
|
57 |
msgstr ""
|
58 |
|
59 |
+
#: admin/class-pirateforms-admin.php:240
|
60 |
msgid ""
|
61 |
"Email address(es) to receive contact submission notifications. You can "
|
62 |
"separate multiple emails with a comma."
|
63 |
msgstr ""
|
64 |
|
65 |
+
#: admin/class-pirateforms-admin.php:256
|
66 |
msgid "Store submissions in the database"
|
67 |
msgstr ""
|
68 |
|
69 |
+
#: admin/class-pirateforms-admin.php:259
|
70 |
msgid ""
|
71 |
"Should the submissions be stored in the admin area? If chosen, contact form "
|
72 |
"submissions will be saved in Contacts on the left (appears after this "
|
73 |
"option is activated)."
|
74 |
msgstr ""
|
75 |
|
76 |
+
#: admin/class-pirateforms-admin.php:269 admin/class-pirateforms-admin.php:288
|
77 |
+
#: admin/class-pirateforms-admin.php:442 admin/class-pirateforms-admin.php:663
|
78 |
+
#: admin/class-pirateforms-admin.php:706
|
79 |
msgid "Yes"
|
80 |
msgstr ""
|
81 |
|
82 |
+
#: admin/class-pirateforms-admin.php:275
|
83 |
msgid "Add a nonce to the contact form:"
|
84 |
msgstr ""
|
85 |
|
86 |
+
#: admin/class-pirateforms-admin.php:278
|
87 |
msgid ""
|
88 |
"Should the form use a WordPress nonce? This helps reduce spam by ensuring "
|
89 |
"that the form submittor is on the site when submitting the form rather than "
|
92 |
"forms not being able to be submitted with an error of \"Nonce failed!\""
|
93 |
msgstr ""
|
94 |
|
95 |
+
#: admin/class-pirateforms-admin.php:294
|
96 |
msgid "Send email confirmation to form submitter"
|
97 |
msgstr ""
|
98 |
|
99 |
+
#: admin/class-pirateforms-admin.php:297
|
100 |
msgid ""
|
101 |
"Adding text here will send an email to the form submitter. The email uses "
|
102 |
"the \"Successful form submission text\" field from the \"Alert Messages\" "
|
103 |
"tab as the subject line. Plain text only here, no HTML."
|
104 |
msgstr ""
|
105 |
|
106 |
+
#: admin/class-pirateforms-admin.php:313
|
107 |
msgid "Success Page"
|
108 |
msgstr ""
|
109 |
|
110 |
+
#: admin/class-pirateforms-admin.php:316
|
111 |
msgid ""
|
112 |
"Select the page that displays after a successful form submission. The page "
|
113 |
"will be displayed without pausing on the email form, so please be sure to "
|
114 |
"configure a relevant thank you message in this page."
|
115 |
msgstr ""
|
116 |
|
117 |
+
#: admin/class-pirateforms-admin.php:331
|
118 |
#: admin/partials/pirateforms-settings-display.php:31
|
119 |
msgid "Fields Settings"
|
120 |
msgstr ""
|
121 |
|
122 |
+
#: admin/class-pirateforms-admin.php:339 admin/class-pirateforms-admin.php:489
|
123 |
msgid "Name"
|
124 |
msgstr ""
|
125 |
|
126 |
+
#: admin/class-pirateforms-admin.php:348 admin/class-pirateforms-admin.php:367
|
127 |
+
#: admin/class-pirateforms-admin.php:386 admin/class-pirateforms-admin.php:405
|
128 |
+
#: admin/class-pirateforms-admin.php:423
|
129 |
+
msgid "Do not display"
|
130 |
+
msgstr ""
|
131 |
+
|
132 |
#: admin/class-pirateforms-admin.php:349 admin/class-pirateforms-admin.php:368
|
133 |
#: admin/class-pirateforms-admin.php:387 admin/class-pirateforms-admin.php:406
|
134 |
#: admin/class-pirateforms-admin.php:424
|
135 |
+
msgid "Display but not required"
|
136 |
msgstr ""
|
137 |
|
138 |
#: admin/class-pirateforms-admin.php:350 admin/class-pirateforms-admin.php:369
|
139 |
#: admin/class-pirateforms-admin.php:388 admin/class-pirateforms-admin.php:407
|
140 |
#: admin/class-pirateforms-admin.php:425
|
|
|
|
|
|
|
|
|
|
|
|
|
141 |
msgid "Required"
|
142 |
msgstr ""
|
143 |
|
144 |
+
#: admin/class-pirateforms-admin.php:358
|
145 |
msgid "Email address"
|
146 |
msgstr ""
|
147 |
|
148 |
+
#: admin/class-pirateforms-admin.php:377 admin/class-pirateforms-admin.php:515
|
149 |
+
#: admin/class-pirateforms-admin.php:517
|
150 |
msgid "Subject"
|
151 |
msgstr ""
|
152 |
|
153 |
+
#: admin/class-pirateforms-admin.php:396 admin/class-pirateforms-admin.php:528
|
154 |
msgid "Message"
|
155 |
msgstr ""
|
156 |
|
157 |
+
#: admin/class-pirateforms-admin.php:415
|
158 |
msgid "Attachment"
|
159 |
msgstr ""
|
160 |
|
161 |
+
#: admin/class-pirateforms-admin.php:433
|
162 |
msgid "Add a reCAPTCHA"
|
163 |
msgstr ""
|
164 |
|
165 |
+
#: admin/class-pirateforms-admin.php:450
|
166 |
msgid "Site key"
|
167 |
msgstr ""
|
168 |
|
169 |
+
#: admin/class-pirateforms-admin.php:453
|
170 |
msgid "Create an account here "
|
171 |
msgstr ""
|
172 |
|
173 |
+
#: admin/class-pirateforms-admin.php:453
|
174 |
msgid "to get the Site key and the Secret key for the reCaptcha."
|
175 |
msgstr ""
|
176 |
|
177 |
+
#: admin/class-pirateforms-admin.php:469
|
178 |
msgid "Secret key"
|
179 |
msgstr ""
|
180 |
|
181 |
+
#: admin/class-pirateforms-admin.php:482
|
182 |
#: admin/partials/pirateforms-settings-display.php:34
|
183 |
msgid "Fields Labels"
|
184 |
msgstr ""
|
185 |
|
186 |
+
#: admin/class-pirateforms-admin.php:491
|
187 |
msgid "Your Name"
|
188 |
msgstr ""
|
189 |
|
190 |
+
#: admin/class-pirateforms-admin.php:502
|
191 |
msgid "Email"
|
192 |
msgstr ""
|
193 |
|
194 |
+
#: admin/class-pirateforms-admin.php:504
|
195 |
msgid "Your Email"
|
196 |
msgstr ""
|
197 |
|
198 |
+
#: admin/class-pirateforms-admin.php:530
|
199 |
msgid "Your message"
|
200 |
msgstr ""
|
201 |
|
202 |
+
#: admin/class-pirateforms-admin.php:541
|
203 |
msgid "Submit button"
|
204 |
msgstr ""
|
205 |
|
206 |
+
#: admin/class-pirateforms-admin.php:554
|
207 |
#: admin/partials/pirateforms-settings-display.php:37
|
208 |
msgid "Alert Messages"
|
209 |
msgstr ""
|
210 |
|
211 |
+
#: admin/class-pirateforms-admin.php:561
|
212 |
msgid "Name required and missing"
|
213 |
msgstr ""
|
214 |
|
215 |
+
#: admin/class-pirateforms-admin.php:563
|
216 |
msgid "Enter your name"
|
217 |
msgstr ""
|
218 |
|
219 |
+
#: admin/class-pirateforms-admin.php:574
|
220 |
msgid "E-mail required and missing"
|
221 |
msgstr ""
|
222 |
|
223 |
+
#: admin/class-pirateforms-admin.php:576
|
224 |
msgid "Enter valid email"
|
225 |
msgstr ""
|
226 |
|
227 |
+
#: admin/class-pirateforms-admin.php:587
|
228 |
msgid "Subject required and missing"
|
229 |
msgstr ""
|
230 |
|
231 |
+
#: admin/class-pirateforms-admin.php:589
|
232 |
msgid "Please enter a subject"
|
233 |
msgstr ""
|
234 |
|
235 |
+
#: admin/class-pirateforms-admin.php:600
|
236 |
msgid "Question/comment is missing"
|
237 |
msgstr ""
|
238 |
|
239 |
+
#: admin/class-pirateforms-admin.php:602
|
240 |
msgid "Enter your question or comment"
|
241 |
msgstr ""
|
242 |
|
243 |
+
#: admin/class-pirateforms-admin.php:613
|
244 |
msgid "Attachment is missing"
|
245 |
msgstr ""
|
246 |
|
247 |
+
#: admin/class-pirateforms-admin.php:615
|
248 |
msgid "Please add an attachment"
|
249 |
msgstr ""
|
250 |
|
251 |
+
#: admin/class-pirateforms-admin.php:626
|
252 |
msgid "Successful form submission text"
|
253 |
msgstr ""
|
254 |
|
255 |
+
#: admin/class-pirateforms-admin.php:629
|
256 |
msgid ""
|
257 |
"This text is used on the page if no Success Page is chosen above. This is "
|
258 |
"also used as the confirmation email title, if one is set to send out."
|
259 |
msgstr ""
|
260 |
|
261 |
+
#: admin/class-pirateforms-admin.php:633
|
262 |
msgid "Thanks, your email was sent successfully!"
|
263 |
msgstr ""
|
264 |
|
265 |
+
#: admin/class-pirateforms-admin.php:644
|
266 |
msgid "SMTP Options"
|
267 |
msgstr ""
|
268 |
|
269 |
+
#: admin/class-pirateforms-admin.php:651
|
270 |
msgid "Use SMTP to send emails?"
|
271 |
msgstr ""
|
272 |
|
273 |
+
#: admin/class-pirateforms-admin.php:654
|
274 |
msgid "Instead of PHP mail function"
|
275 |
msgstr ""
|
276 |
|
277 |
+
#: admin/class-pirateforms-admin.php:669
|
278 |
msgid "SMTP Host"
|
279 |
msgstr ""
|
280 |
|
281 |
+
#: admin/class-pirateforms-admin.php:681
|
282 |
msgid "SMTP Port"
|
283 |
msgstr ""
|
284 |
|
285 |
+
#: admin/class-pirateforms-admin.php:693
|
286 |
msgid "Use SMTP Authentication?"
|
287 |
msgstr ""
|
288 |
|
289 |
+
#: admin/class-pirateforms-admin.php:696 admin/class-pirateforms-admin.php:715
|
290 |
msgid ""
|
291 |
"If you check this box, make sure the SMTP Username and SMTP Password are "
|
292 |
"completed."
|
293 |
msgstr ""
|
294 |
|
295 |
+
#: admin/class-pirateforms-admin.php:712
|
296 |
msgid "Security?"
|
297 |
msgstr ""
|
298 |
|
299 |
+
#: admin/class-pirateforms-admin.php:725
|
300 |
msgid "No"
|
301 |
msgstr ""
|
302 |
|
303 |
+
#: admin/class-pirateforms-admin.php:726
|
304 |
msgid "SSL"
|
305 |
msgstr ""
|
306 |
|
307 |
+
#: admin/class-pirateforms-admin.php:727
|
308 |
msgid "TLS"
|
309 |
msgstr ""
|
310 |
|
311 |
+
#: admin/class-pirateforms-admin.php:734
|
312 |
msgid "SMTP Username"
|
313 |
msgstr ""
|
314 |
|
315 |
+
#: admin/class-pirateforms-admin.php:746
|
316 |
msgid "SMTP Password"
|
317 |
msgstr ""
|
318 |
|
422 |
"newsletter."
|
423 |
msgstr ""
|
424 |
|
425 |
+
#: includes/class-pirateforms-util.php:122
|
426 |
msgid "Form submission blocked!"
|
427 |
msgstr ""
|
428 |
|
429 |
+
#: includes/class-pirateforms-util.php:138
|
430 |
msgid "None"
|
431 |
msgstr ""
|
432 |
|
446 |
msgid "Subtext:"
|
447 |
msgstr ""
|
448 |
|
449 |
+
#: includes/class-pirateforms.php:227
|
450 |
msgid "Add New Contact"
|
451 |
msgstr ""
|
452 |
|
453 |
+
#: includes/class-pirateforms.php:228
|
454 |
msgid "New Contact"
|
455 |
msgstr ""
|
456 |
|
457 |
+
#: includes/class-pirateforms.php:229
|
458 |
msgid "Edit Contact"
|
459 |
msgstr ""
|
460 |
|
461 |
+
#: includes/class-pirateforms.php:230
|
462 |
msgid "View Contact"
|
463 |
msgstr ""
|
464 |
|
465 |
+
#: includes/class-pirateforms.php:231
|
466 |
msgid "All Contacts"
|
467 |
msgstr ""
|
468 |
|
469 |
+
#: includes/class-pirateforms.php:232
|
470 |
msgid "Search Contacts"
|
471 |
msgstr ""
|
472 |
|
473 |
+
#: includes/class-pirateforms.php:233
|
474 |
msgid "Parent Contacts:"
|
475 |
msgstr ""
|
476 |
|
477 |
+
#: includes/class-pirateforms.php:234
|
478 |
msgid "No contacts found."
|
479 |
msgstr ""
|
480 |
|
481 |
+
#: includes/class-pirateforms.php:235
|
482 |
msgid "No contacts found in Trash."
|
483 |
msgstr ""
|
484 |
|
485 |
+
#: includes/class-pirateforms.php:239
|
486 |
msgid "Contacts from Pirate Forms"
|
487 |
msgstr ""
|
488 |
|
489 |
+
#: public/class-pirateforms-public.php:330
|
490 |
+
msgid "Submit"
|
491 |
+
msgstr ""
|
492 |
+
|
493 |
+
#: public/class-pirateforms-public.php:426
|
494 |
+
msgid "Sorry, an error occured."
|
495 |
+
msgstr ""
|
496 |
+
|
497 |
+
#: public/class-pirateforms-public.php:474
|
498 |
msgid "Nonce failed!"
|
499 |
msgstr ""
|
500 |
|
501 |
+
#: public/class-pirateforms-public.php:483
|
502 |
msgid "Form submission failed!"
|
503 |
msgstr ""
|
504 |
|
505 |
+
#: public/class-pirateforms-public.php:495
|
506 |
msgid "Contact form submission from"
|
507 |
msgstr ""
|
508 |
|
509 |
+
#: public/class-pirateforms-public.php:506
|
510 |
msgid "Please enter one or more Contact submission recipients"
|
511 |
msgstr ""
|
512 |
|
513 |
+
#: public/class-pirateforms-public.php:521
|
514 |
msgid "IP address: "
|
515 |
msgstr ""
|
516 |
|
517 |
+
#: public/class-pirateforms-public.php:522
|
518 |
msgid "IP search:"
|
519 |
msgstr ""
|
520 |
|
521 |
+
#: public/class-pirateforms-public.php:527
|
522 |
msgid "Came from: "
|
523 |
msgstr ""
|
524 |
|
525 |
+
#: public/class-pirateforms-public.php:531
|
526 |
msgid "Sent from page: "
|
527 |
msgstr ""
|
528 |
|
529 |
+
#: public/class-pirateforms-public.php:716
|
530 |
+
#: public/class-pirateforms-public.php:728
|
531 |
msgid "Wrong reCAPTCHA"
|
532 |
msgstr ""
|
533 |
|
534 |
+
#: public/class-pirateforms-public.php:761
|
535 |
msgid "Uploaded file is not allowed for file type"
|
536 |
msgstr ""
|
537 |
|
538 |
+
#: public/class-pirateforms-public.php:769
|
539 |
msgid "Uploaded file is too large"
|
540 |
msgstr ""
|
541 |
|
542 |
+
#: public/class-pirateforms-public.php:785
|
543 |
msgid "There was an unknown error uploading the file."
|
544 |
msgstr ""
|
545 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
546 |
#. Plugin Name of the plugin/theme
|
547 |
msgid "Free & Simple Contact Form Plugin - Pirateforms"
|
548 |
msgstr ""
|
563 |
msgid "http://themeisle.com"
|
564 |
msgstr ""
|
565 |
|
566 |
+
#: includes/class-pirateforms.php:222
|
567 |
msgctxt "post type general name"
|
568 |
msgid "Contacts"
|
569 |
msgstr ""
|
570 |
|
571 |
+
#: includes/class-pirateforms.php:223
|
572 |
msgctxt "post type singular name"
|
573 |
msgid "Contact"
|
574 |
msgstr ""
|
575 |
|
576 |
+
#: includes/class-pirateforms.php:224
|
577 |
msgctxt "admin menu"
|
578 |
msgid "Contacts"
|
579 |
msgstr ""
|
580 |
|
581 |
+
#: includes/class-pirateforms.php:225
|
582 |
msgctxt "add new on admin bar"
|
583 |
msgid "Contact"
|
584 |
msgstr ""
|
585 |
|
586 |
+
#: includes/class-pirateforms.php:226
|
587 |
msgctxt "contact"
|
588 |
msgid "Add New"
|
589 |
msgstr ""
|
pirate-forms.php
CHANGED
@@ -16,7 +16,7 @@
|
|
16 |
* Plugin Name: Free & Simple Contact Form Plugin - Pirateforms
|
17 |
* Plugin URI: http://themeisle.com/plugins/pirate-forms/
|
18 |
* Description: Easily creates a nice looking, simple contact form on your WP site.
|
19 |
-
* Version: 2.0.
|
20 |
* Author: Themeisle
|
21 |
* Author URI: http://themeisle.com
|
22 |
* Text Domain: pirate-forms
|
@@ -35,7 +35,7 @@ if ( ! defined( 'WPINC' ) ) {
|
|
35 |
|
36 |
define( 'PIRATEFORMS_NAME', 'Pirate Forms' );
|
37 |
define( 'PIRATEFORMS_SLUG', 'pirate-forms' );
|
38 |
-
define( 'PIRATE_FORMS_VERSION', '2.0.
|
39 |
define( 'PIRATEFORMS_DIR', trailingslashit( plugin_dir_path( __FILE__ ) ) );
|
40 |
define( 'PIRATEFORMS_URL', plugin_dir_url( __FILE__ ) );
|
41 |
define( 'PIRATEFORMS_BASENAME', plugin_basename( __FILE__ ) );
|
16 |
* Plugin Name: Free & Simple Contact Form Plugin - Pirateforms
|
17 |
* Plugin URI: http://themeisle.com/plugins/pirate-forms/
|
18 |
* Description: Easily creates a nice looking, simple contact form on your WP site.
|
19 |
+
* Version: 2.0.5
|
20 |
* Author: Themeisle
|
21 |
* Author URI: http://themeisle.com
|
22 |
* Text Domain: pirate-forms
|
35 |
|
36 |
define( 'PIRATEFORMS_NAME', 'Pirate Forms' );
|
37 |
define( 'PIRATEFORMS_SLUG', 'pirate-forms' );
|
38 |
+
define( 'PIRATE_FORMS_VERSION', '2.0.5' );
|
39 |
define( 'PIRATEFORMS_DIR', trailingslashit( plugin_dir_path( __FILE__ ) ) );
|
40 |
define( 'PIRATEFORMS_URL', plugin_dir_url( __FILE__ ) );
|
41 |
define( 'PIRATEFORMS_BASENAME', plugin_basename( __FILE__ ) );
|
public/class-pirateforms-public.php
CHANGED
@@ -95,753 +95,841 @@ class PirateForms_Public {
|
|
95 |
}
|
96 |
|
97 |
/**
|
98 |
-
*
|
99 |
*
|
100 |
* @since 1.0.0
|
101 |
-
* @throws Exception When file uploading fails.
|
102 |
*/
|
103 |
-
public function
|
104 |
-
|
|
|
|
|
|
|
|
|
|
|
105 |
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
}
|
110 |
|
111 |
-
|
112 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
113 |
|
114 |
-
|
115 |
-
|
116 |
-
|
|
|
|
|
117 |
|
118 |
-
|
119 |
-
if ( 'yes' === PirateForms_Util::get_option( 'pirateformsopt_nonce' ) ) {
|
120 |
-
if ( ! wp_verify_nonce( $_POST['wordpress-nonce'], get_bloginfo( 'admin_email' ) . $nonce_append ) ) {
|
121 |
-
$_SESSION[ $error_key ]['nonce'] = __( 'Nonce failed!', 'pirate-forms' );
|
122 |
-
do_action( 'themeisle_log_event', PIRATEFORMS_NAME, 'Nonce failed', 'error', __FILE__, __LINE__ );
|
123 |
|
124 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
125 |
}
|
126 |
}
|
127 |
|
128 |
-
|
129 |
-
if ( ! empty( $_POST['honeypot'] ) ) {
|
130 |
-
$_SESSION[ $error_key ]['honeypot'] = __( 'Form submission failed!', 'pirate-forms' );
|
131 |
-
|
132 |
-
return false;
|
133 |
-
}
|
134 |
|
135 |
-
$
|
136 |
|
137 |
-
|
138 |
-
|
|
|
139 |
}
|
140 |
|
141 |
-
|
142 |
-
$body = '<h2>' . __( 'Contact form submission from', 'pirate-forms' ) . ' ' .
|
143 |
-
get_bloginfo( 'name' ) . ' (' . site_url() . ') </h2>';
|
144 |
-
|
145 |
-
$body .= '<table>';
|
146 |
-
|
147 |
-
$pirate_forms_contact_email = null;
|
148 |
-
$pirate_forms_contact_name = null;
|
149 |
-
$pirate_forms_contact_subject = null;
|
150 |
-
$fields = array( 'name', 'email', 'subject', 'message' );
|
151 |
-
foreach ( $fields as $field ) {
|
152 |
-
$value = isset( $_POST[ 'pirate-forms-contact-' . $field ] ) ? sanitize_text_field( trim( $_POST[ 'pirate-forms-contact-' . $field ] ) ) : '';
|
153 |
-
if ( $pirate_forms_options[ 'pirateformsopt_' . $field . '_field' ] === 'req' && empty( $value ) ) {
|
154 |
-
$_SESSION[ $error_key ][ 'pirate-forms-contact-' . $field ] = $pirate_forms_options[ 'pirateformsopt_label_err_' . $field ];
|
155 |
-
} elseif ( ! empty( $value ) ) {
|
156 |
-
if ( 'email' === $field && ! filter_var( $value, FILTER_VALIDATE_EMAIL ) ) {
|
157 |
-
$_SESSION[ $error_key ][ 'pirate-forms-contact-' . $field ] = $pirate_forms_options[ 'pirateformsopt_label_err_' . $field ];
|
158 |
-
} else {
|
159 |
-
if ( 'email' === $field ) {
|
160 |
-
$pirate_forms_contact_email = $value;
|
161 |
-
} elseif ( 'name' === $field ) {
|
162 |
-
$pirate_forms_contact_name = $value;
|
163 |
-
} elseif ( 'subject' === $field ) {
|
164 |
-
$pirate_forms_contact_subject = $value;
|
165 |
-
}
|
166 |
-
$body .= $this->table_row( stripslashes( $pirate_forms_options[ 'pirateformsopt_label_' . $field ] ), $value );
|
167 |
-
}
|
168 |
-
}
|
169 |
-
}
|
170 |
|
171 |
/**
|
172 |
-
********
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
$contact_ip = filter_var( $_SERVER['REMOTE_ADDR'], FILTER_VALIDATE_IP );
|
180 |
-
/* for the case of a Web server behind a reverse proxy */
|
181 |
-
if ( array_key_exists( 'HTTP_X_FORWARDED_FOR', $_SERVER ) ) {
|
182 |
-
$contact_ip_tmp = explode( ',', $_SERVER['HTTP_X_FORWARDED_FOR'] );
|
183 |
-
if ( ! empty( $contact_ip_tmp ) ) {
|
184 |
-
$contact_ip = array_pop( $contact_ip_tmp );
|
185 |
-
}
|
186 |
-
}
|
187 |
-
|
188 |
-
// If valid and present, create a link to an IP search
|
189 |
-
if ( ! empty( $contact_ip ) ) {
|
190 |
-
$body .= $this->table_row( __( 'IP address: ', 'pirate-forms' ), $contact_ip );
|
191 |
-
$body .= $this->table_row( __( 'IP search:', 'pirate-forms' ), "http://whatismyipaddress.com/ip/$contact_ip" );
|
192 |
-
}
|
193 |
-
|
194 |
-
// Sanitize and prepare referrer;
|
195 |
-
if ( ! empty( $_POST['pirate-forms-contact-referrer'] ) ) {
|
196 |
-
$body .= $this->table_row( __( 'Came from: ', 'pirate-forms' ), sanitize_text_field( $_POST['pirate-forms-contact-referrer'] ) );
|
197 |
}
|
|
|
|
|
|
|
198 |
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
207 |
|
208 |
-
|
|
|
209 |
|
210 |
-
|
211 |
-
|
212 |
-
$
|
213 |
-
|
214 |
-
$
|
215 |
-
|
216 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
217 |
endif;
|
218 |
-
// Notification recipients
|
219 |
-
$site_recipients = sanitize_text_field( $pirate_forms_options['pirateformsopt_email_recipients'] );
|
220 |
-
$site_recipients = explode( ',', $site_recipients );
|
221 |
-
$site_recipients = array_map( 'trim', $site_recipients );
|
222 |
-
$site_recipients = array_map( 'sanitize_email', $site_recipients );
|
223 |
-
$site_recipients = implode( ',', $site_recipients );
|
224 |
-
// No name? Use the submitter email address, if one is present
|
225 |
-
if ( empty( $pirate_forms_contact_name ) ) {
|
226 |
-
$pirate_forms_contact_name = ! empty( $pirate_forms_contact_email ) ? $pirate_forms_contact_email : '[None given]';
|
227 |
-
}
|
228 |
-
|
229 |
-
// Need an email address for the email notification
|
230 |
-
$send_from = '';
|
231 |
-
if ( '[email]' == $site_email && ! empty( $pirate_forms_contact_email ) ) {
|
232 |
-
$send_from = $pirate_forms_contact_email;
|
233 |
-
} elseif ( ! empty( $site_email ) ) {
|
234 |
-
$send_from = $site_email;
|
235 |
-
} else {
|
236 |
-
$send_from = PirateForms_Util::get_from_email();
|
237 |
-
}
|
238 |
-
$send_from_name = $site_name;
|
239 |
|
240 |
-
|
241 |
-
$
|
242 |
-
add_action( 'phpmailer_init', array( $this, 'phpmailer' ) );
|
243 |
|
244 |
-
|
245 |
-
|
246 |
-
|
247 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
248 |
|
249 |
-
$
|
250 |
-
|
251 |
-
$subject = $pirate_forms_contact_subject;
|
252 |
-
}
|
253 |
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
|
263 |
-
// delete the tmp directory
|
264 |
-
require_once( ABSPATH . 'wp-admin/includes/file.php' );
|
265 |
-
WP_Filesystem();
|
266 |
-
global $wp_filesystem;
|
267 |
-
$wp_filesystem->delete( $this->get_upload_tmp_dir(), true, 'd' );
|
268 |
-
|
269 |
-
// Should a confirm email be sent?
|
270 |
-
$confirm_body = stripslashes( trim( $pirate_forms_options['pirateformsopt_confirm_email'] ) );
|
271 |
-
if ( ! empty( $confirm_body ) && ! empty( $pirate_forms_contact_email ) ) {
|
272 |
-
// Removing entities
|
273 |
-
$confirm_body = htmlspecialchars_decode( $confirm_body );
|
274 |
-
$confirm_body = html_entity_decode( $confirm_body );
|
275 |
-
$confirm_body = str_replace( ''', "'", $confirm_body );
|
276 |
-
$send_from = PirateForms_Util::get_from_email();
|
277 |
-
if ( ! empty( $site_email ) && '[email]' !== $site_email ) {
|
278 |
-
$send_from = $site_email;
|
279 |
}
|
280 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
281 |
|
282 |
-
|
283 |
-
$subject = $pirate_forms_options['pirateformsopt_label_submit'] . ' - ' . $site_name;
|
284 |
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
|
|
292 |
}
|
293 |
-
|
294 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
295 |
/**
|
296 |
-
|
297 |
-
if ( '
|
298 |
-
$
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
|
|
|
|
|
|
|
|
306 |
);
|
307 |
-
|
308 |
-
add_post_meta( $new_post_id, 'Contact email', $pirate_forms_contact_email );
|
309 |
-
}
|
310 |
-
}
|
311 |
-
$pirate_forms_current_theme = wp_get_theme();
|
312 |
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
} elseif ( ( 'Zerif Lite' == $pirate_forms_current_theme->name ) || ( 'Zerif Lite' == $pirate_forms_current_theme->parent_theme ) || ( 'Zerif PRO' == $pirate_forms_current_theme->name ) || ( 'Zerif PRO' == $pirate_forms_current_theme->parent_theme ) ) {
|
319 |
-
$redirect = $_SERVER['HTTP_REFERER'] . ( strpos( $_SERVER['HTTP_REFERER'], '?' ) === false ? '?' : '&' ) . 'pcf=1#contact&done';
|
320 |
-
wp_safe_redirect( $redirect );
|
321 |
-
} elseif ( isset( $_SERVER['HTTP_REFERER'] ) ) {
|
322 |
-
$redirect = $_SERVER['HTTP_REFERER'] . ( strpos( $_SERVER['HTTP_REFERER'], '?' ) === false ? '?' : '&' ) . 'done';
|
323 |
-
wp_safe_redirect( $redirect );
|
324 |
}
|
325 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
326 |
}
|
327 |
|
328 |
/**
|
329 |
-
*
|
330 |
*
|
331 |
-
* @param
|
332 |
-
* @param array $pirate_forms_options the array of options for this form.
|
333 |
*/
|
334 |
-
function
|
335 |
-
|
336 |
-
$pirateformsopt_recaptcha_secretkey = $pirate_forms_options['pirateformsopt_recaptcha_secretkey'];
|
337 |
-
$pirateformsopt_recaptcha_field = $pirate_forms_options['pirateformsopt_recaptcha_field'];
|
338 |
-
if ( ! empty( $pirateformsopt_recaptcha_secretkey ) && ! empty( $pirateformsopt_recaptcha_sitekey ) && ! empty( $pirateformsopt_recaptcha_field ) && ( $pirateformsopt_recaptcha_field == 'yes' ) ) :
|
339 |
-
if ( isset( $_POST['g-recaptcha-response'] ) ) {
|
340 |
-
$captcha = $_POST['g-recaptcha-response'];
|
341 |
-
}
|
342 |
-
if ( ! $captcha ) {
|
343 |
-
$_SESSION[ $error_key ]['pirate-forms-captcha'] = __( 'Wrong reCAPTCHA', 'pirate-forms' );
|
344 |
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
if ( ! empty( $response ) ) :
|
349 |
-
$response_body = wp_remote_retrieve_body( $response );
|
350 |
-
endif;
|
351 |
-
if ( ! empty( $response_body ) ) :
|
352 |
-
$result = json_decode( $response_body, true );
|
353 |
-
endif;
|
354 |
-
if ( isset( $result['success'] ) && ( $result['success'] == false ) ) {
|
355 |
-
$_SESSION[ $error_key ]['pirate-forms-captcha'] = __( 'Wrong reCAPTCHA', 'pirate-forms' );
|
356 |
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
|
361 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
362 |
}
|
363 |
|
364 |
/**
|
365 |
-
*
|
366 |
*
|
367 |
-
* @
|
368 |
*/
|
369 |
-
public function
|
370 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
371 |
}
|
372 |
|
373 |
/**
|
374 |
-
*
|
375 |
*
|
376 |
-
* @param
|
377 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
378 |
*
|
|
|
379 |
* @throws Exception When file uploading fails.
|
380 |
*/
|
381 |
-
function
|
382 |
-
|
383 |
-
/**
|
384 |
-
******* Validate Attachment */
|
385 |
-
$use_files = $pirate_forms_options['pirateformsopt_attachment_field'];
|
386 |
-
if ( ! empty( $use_files ) && ( $use_files == 'yes' ) ) {
|
387 |
-
$pirate_forms_attach_file = isset( $_FILES['pirate-forms-attachment'] ) ? $_FILES['pirate-forms-attachment'] : '';
|
388 |
-
if ( ! empty( $pirate_forms_attach_file ) && ! empty( $pirate_forms_attach_file['name'] ) ) {
|
389 |
-
/* Validate file type */
|
390 |
-
$file_types_allowed = 'jpg|jpeg|png|gif|pdf|doc|docx|ppt|pptx|odt|avi|ogg|m4a|mov|mp3|mp4|mpg|wav|wmv';
|
391 |
-
$pirate_forms_file_types_allowed = $file_types_allowed;
|
392 |
-
$pirate_forms_file_types_allowed = trim( $pirate_forms_file_types_allowed, '|' );
|
393 |
-
$pirate_forms_file_types_allowed = '(' . $pirate_forms_file_types_allowed . ')';
|
394 |
-
$pirate_forms_file_types_allowed = '/\.' . $pirate_forms_file_types_allowed . '$/i';
|
395 |
-
if ( ! preg_match( $pirate_forms_file_types_allowed, $pirate_forms_attach_file['name'] ) ) {
|
396 |
-
do_action( 'themeisle_log_event', PIRATEFORMS_NAME, sprintf( 'file invalid: expected %s got %s', $file_types_allowed, $pirate_forms_attach_file['name'] ), 'error', __FILE__, __LINE__ );
|
397 |
-
$_SESSION[ $error_key ]['pirate-forms-upload-failed-type'] = __( 'Uploaded file is not allowed for file type', 'pirate-forms' );
|
398 |
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
if ( $pirate_forms_attach_file['size'] > $pirate_forms_file_size_allowed ) {
|
404 |
-
do_action( 'themeisle_log_event', PIRATEFORMS_NAME, sprintf( 'file too large: expected %d got %d', $pirate_forms_file_size_allowed, $pirate_forms_attach_file['size'] ), 'error', __FILE__, __LINE__ );
|
405 |
-
$_SESSION[ $error_key ]['pirate-forms-upload-failed-size'] = __( 'Uploaded file is too large', 'pirate-forms' );
|
406 |
|
407 |
-
|
408 |
-
|
409 |
-
$this->init_uploads();
|
410 |
-
$uploads_dir = $this->get_upload_tmp_dir();
|
411 |
-
$uploads_dir = $this->maybe_add_random_dir( $uploads_dir );
|
412 |
-
$filename = $pirate_forms_attach_file['name'];
|
413 |
-
$filename = $this->canonicalize( $filename );
|
414 |
-
$filename = sanitize_file_name( $filename );
|
415 |
-
$filename = $this->antiscript_file_name( $filename );
|
416 |
-
$filename = wp_unique_filename( $uploads_dir, $filename );
|
417 |
-
$new_file = trailingslashit( $uploads_dir ) . $filename;
|
418 |
-
try {
|
419 |
-
if ( false === move_uploaded_file( $pirate_forms_attach_file['tmp_name'], $new_file ) ) {
|
420 |
-
do_action( 'themeisle_log_event', PIRATEFORMS_NAME, sprintf( 'unable to move the uploaded file from %s to %s', $pirate_forms_attach_file['tmp_name'], $new_file ), 'error', __FILE__, __LINE__ );
|
421 |
-
throw new Exception( __( 'There was an unknown error uploading the file.', 'pirate-forms' ) );
|
422 |
-
}
|
423 |
-
} catch ( Exception $ex ) {
|
424 |
-
do_action( 'themeisle_log_event', PIRATEFORMS_NAME, sprintf( 'unable to move the uploaded file from %s to %s with error %s', $pirate_forms_attach_file['tmp_name'], $new_file, $ex->getMessage() ), 'error', __FILE__, __LINE__ );
|
425 |
-
$_SESSION[ $error_key ]['pirate-forms-upload-failed-general'] = $ex->getMessage();
|
426 |
-
}
|
427 |
-
if ( ! empty( $new_file ) ) {
|
428 |
-
$attachments = $new_file;
|
429 |
-
}
|
430 |
-
}// End if().
|
431 |
-
}// End if().
|
432 |
-
return $attachments;
|
433 |
-
}
|
434 |
|
435 |
-
|
436 |
-
|
437 |
-
|
438 |
-
* @since 1.0.0
|
439 |
-
* @throws Exception When file could not be opened.
|
440 |
-
*/
|
441 |
-
function init_uploads() {
|
442 |
-
$dir = $this->get_upload_tmp_dir();
|
443 |
-
wp_mkdir_p( $dir );
|
444 |
-
$htaccess_file = trailingslashit( $dir ) . '.htaccess';
|
445 |
-
if ( file_exists( $htaccess_file ) ) {
|
446 |
-
return;
|
447 |
-
}
|
448 |
-
try {
|
449 |
-
$handle = fopen( $htaccess_file, 'w' );
|
450 |
|
451 |
-
|
452 |
-
|
453 |
-
|
454 |
-
|
455 |
-
|
|
|
|
|
456 |
}
|
457 |
-
} catch ( Exception $e ) {
|
458 |
-
// nothing
|
459 |
}
|
460 |
-
}
|
461 |
|
462 |
-
|
463 |
-
|
464 |
-
|
465 |
-
* @since 1.0.0
|
466 |
-
*/
|
467 |
-
function get_upload_tmp_dir() {
|
468 |
-
return $this->get_upload_dir( 'dir' ) . '/pirate_forms_uploads';
|
469 |
-
}
|
470 |
|
471 |
-
|
472 |
-
* Return the upload dir
|
473 |
-
*
|
474 |
-
* @since 1.0.0
|
475 |
-
*/
|
476 |
-
function get_upload_dir( $type = false ) {
|
477 |
-
$uploads = wp_upload_dir();
|
478 |
-
$uploads = apply_filters(
|
479 |
-
'pirate_forms_upload_dir', array(
|
480 |
-
'dir' => $uploads['basedir'],
|
481 |
-
'url' => $uploads['baseurl'],
|
482 |
-
)
|
483 |
-
);
|
484 |
-
if ( 'dir' == $type ) {
|
485 |
-
return $uploads['dir'];
|
486 |
-
}
|
487 |
-
if ( 'url' == $type ) {
|
488 |
-
return $uploads['url'];
|
489 |
}
|
490 |
|
491 |
-
|
492 |
-
}
|
493 |
|
494 |
-
|
495 |
-
|
496 |
-
*
|
497 |
-
* @since 1.0.0
|
498 |
-
*/
|
499 |
-
function maybe_add_random_dir( $dir ) {
|
500 |
-
do {
|
501 |
-
$rand_max = mt_getrandmax();
|
502 |
-
$rand = zeroise( mt_rand( 0, $rand_max ), strlen( $rand_max ) );
|
503 |
-
$dir_new = path_join( $dir, $rand );
|
504 |
-
} while ( file_exists( $dir_new ) );
|
505 |
-
if ( wp_mkdir_p( $dir_new ) ) {
|
506 |
-
return $dir_new;
|
507 |
}
|
508 |
|
509 |
-
|
510 |
-
|
|
|
511 |
|
512 |
-
|
513 |
-
* Functions to Process uploaded files
|
514 |
-
*/
|
515 |
-
function canonicalize( $text ) {
|
516 |
-
if ( function_exists( 'mb_convert_kana' )
|
517 |
-
&& 'UTF-8' == get_option( 'blog_charset' )
|
518 |
-
) {
|
519 |
-
$text = mb_convert_kana( $text, 'asKV', 'UTF-8' );
|
520 |
-
}
|
521 |
-
$text = strtolower( $text );
|
522 |
-
$text = trim( $text );
|
523 |
|
524 |
-
|
525 |
-
}
|
526 |
|
527 |
-
|
528 |
-
|
529 |
-
|
530 |
-
|
531 |
-
|
532 |
-
function antiscript_file_name( $filename ) {
|
533 |
-
$filename = basename( $filename );
|
534 |
-
$parts = explode( '.', $filename );
|
535 |
-
if ( count( $parts ) < 2 ) {
|
536 |
-
return $filename;
|
537 |
}
|
538 |
-
|
539 |
-
|
540 |
-
$
|
541 |
-
|
542 |
-
|
543 |
-
|
544 |
-
|
545 |
-
$
|
546 |
}
|
547 |
}
|
548 |
-
if ( preg_match( $script_pattern, $extension ) ) {
|
549 |
-
$filename .= '.' . $extension . '_.txt';
|
550 |
-
} else {
|
551 |
-
$filename .= '.' . $extension;
|
552 |
-
}
|
553 |
|
554 |
-
|
555 |
-
|
|
|
|
|
|
|
556 |
|
557 |
-
|
558 |
-
|
559 |
-
|
560 |
-
* @since 1.0.0
|
561 |
-
*/
|
562 |
-
public function widget_text_filter( $content ) {
|
563 |
-
if ( ! preg_match( '[pirate_forms]', $content ) ) {
|
564 |
-
return $content;
|
565 |
}
|
566 |
-
$content = do_shortcode( $content );
|
567 |
|
568 |
-
|
569 |
-
|
570 |
|
571 |
-
|
572 |
-
|
573 |
-
|
574 |
-
|
575 |
-
|
576 |
-
public function display_form( $atts, $content = null ) {
|
577 |
-
$atts = shortcode_atts(
|
578 |
-
array(
|
579 |
-
'from' => '',
|
580 |
-
'id' => '',
|
581 |
-
), $atts
|
582 |
-
);
|
583 |
|
584 |
-
$
|
585 |
-
$pirate_form = new PirateForms_PhpFormBuilder();
|
586 |
|
587 |
-
|
588 |
-
|
589 |
-
'
|
590 |
-
|
591 |
-
|
592 |
-
|
593 |
-
'
|
594 |
-
|
595 |
-
|
596 |
-
)
|
597 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
598 |
|
599 |
-
|
600 |
-
|
601 |
-
'
|
602 |
-
|
603 |
-
|
|
|
|
|
|
|
|
|
|
|
604 |
|
605 |
-
|
|
|
|
|
606 |
|
607 |
-
|
608 |
-
|
609 |
-
|
610 |
-
// add the form id to the form so that it can be used when we are processing the form
|
611 |
-
$elements[] = array(
|
612 |
-
'type' => 'hidden',
|
613 |
-
'id' => 'pirate_forms_form_id',
|
614 |
-
'value' => $atts['id'],
|
615 |
-
);
|
616 |
}
|
617 |
-
}
|
618 |
|
619 |
-
|
|
|
|
|
|
|
620 |
|
621 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
622 |
|
623 |
-
|
624 |
-
|
625 |
-
|
626 |
-
|
|
|
627 |
|
628 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
629 |
|
630 |
-
|
631 |
-
|
632 |
-
if ( 'yes' === PirateForms_Util::get_option( 'pirateformsopt_nonce' ) ) {
|
633 |
-
$elements[] = array(
|
634 |
-
'type' => 'hidden',
|
635 |
-
'id' => 'wordpress-nonce',
|
636 |
-
'value' => wp_create_nonce( get_bloginfo( 'admin_email' ) . $nonce_append ),
|
637 |
-
);
|
638 |
-
}
|
639 |
-
if ( ! empty( $pirate_forms_options ) ) :
|
640 |
-
$field = $pirate_forms_options['pirateformsopt_name_field'];
|
641 |
-
$label = $pirate_forms_options['pirateformsopt_label_name'];
|
642 |
|
643 |
-
|
644 |
-
|
645 |
-
|
646 |
-
$
|
647 |
-
|
648 |
-
|
649 |
-
|
650 |
-
// If this field was submitted with invalid data
|
651 |
-
if ( isset( $_SESSION[ $error_key ]['contact-name'] ) ) {
|
652 |
-
$wrap_classes[] = 'error';
|
653 |
}
|
654 |
-
|
655 |
-
'placeholder' => stripslashes( sanitize_text_field( $label ) ),
|
656 |
-
'required' => $required,
|
657 |
-
'required_msg' => $pirate_forms_options['pirateformsopt_label_err_name'],
|
658 |
-
'type' => 'text',
|
659 |
-
'id' => 'pirate-forms-contact-name',
|
660 |
-
'class' => 'form-control',
|
661 |
-
'wrap' => array(
|
662 |
-
'type' => 'div',
|
663 |
-
'class' => implode( ' ', apply_filters( 'pirateform_wrap_classes_name', $wrap_classes ) ),
|
664 |
-
),
|
665 |
-
'value' => empty( $thank_you_message ) && isset( $_REQUEST['pirate-forms-contact-name'] ) ? $_REQUEST['pirate-forms-contact-name'] : '',
|
666 |
-
);
|
667 |
-
endif;
|
668 |
-
|
669 |
-
$field = $pirate_forms_options['pirateformsopt_email_field'];
|
670 |
-
$label = $pirate_forms_options['pirateformsopt_label_email'];
|
671 |
|
672 |
/**
|
673 |
-
|
674 |
-
if (
|
675 |
-
$
|
676 |
-
|
677 |
-
|
|
|
|
|
|
|
|
|
|
|
678 |
);
|
679 |
-
|
680 |
-
|
681 |
-
$wrap_classes[] = 'error';
|
682 |
}
|
683 |
-
$
|
684 |
-
|
685 |
-
'required' => $required,
|
686 |
-
'required_msg' => $pirate_forms_options['pirateformsopt_label_err_email'],
|
687 |
-
'type' => 'email',
|
688 |
-
'id' => 'pirate-forms-contact-email',
|
689 |
-
'class' => 'form-control',
|
690 |
-
'wrap' => array(
|
691 |
-
'type' => 'div',
|
692 |
-
'class' => implode( ' ', apply_filters( 'pirateform_wrap_classes_email', $wrap_classes ) ),
|
693 |
-
),
|
694 |
-
'value' => empty( $thank_you_message ) && isset( $_REQUEST['pirate-forms-contact-email'] ) ? $_REQUEST['pirate-forms-contact-email'] : '',
|
695 |
-
);
|
696 |
-
endif;
|
697 |
|
698 |
-
$
|
699 |
-
$label = $pirate_forms_options['pirateformsopt_label_subject'];
|
700 |
|
701 |
-
|
702 |
-
|
703 |
-
|
704 |
-
$
|
705 |
-
$
|
706 |
-
|
707 |
-
);
|
708 |
-
// If this field was submitted with invalid data
|
709 |
-
if ( isset( $_SESSION[ $error_key ]['contact-subject'] ) ) {
|
710 |
-
$wrap_classes[] = 'error';
|
711 |
}
|
712 |
-
|
713 |
-
|
714 |
-
|
715 |
-
|
716 |
-
|
717 |
-
|
718 |
-
|
719 |
-
|
720 |
-
|
721 |
-
|
722 |
-
),
|
723 |
-
'value' => empty( $thank_you_message ) && isset( $_REQUEST['pirate-forms-contact-subject'] ) ? $_REQUEST['pirate-forms-contact-subject'] : '',
|
724 |
-
);
|
725 |
-
endif;
|
726 |
-
|
727 |
-
$field = $pirate_forms_options['pirateformsopt_message_field'];
|
728 |
-
$label = $pirate_forms_options['pirateformsopt_label_message'];
|
729 |
|
730 |
-
|
731 |
-
|
732 |
-
|
733 |
-
|
734 |
-
|
735 |
-
|
736 |
-
|
737 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
738 |
}
|
739 |
-
|
740 |
-
|
741 |
-
'required' => $required,
|
742 |
-
'required_msg' => $pirate_forms_options['pirateformsopt_label_err_no_content'],
|
743 |
-
'type' => 'textarea',
|
744 |
-
'class' => 'form-control',
|
745 |
-
'id' => 'pirate-forms-contact-message',
|
746 |
-
'wrap' => array(
|
747 |
-
'type' => 'div',
|
748 |
-
'class' => implode( ' ', apply_filters( 'pirateform_wrap_classes_message', $wrap_classes ) ),
|
749 |
-
),
|
750 |
-
'value' => empty( $thank_you_message ) && isset( $_REQUEST['pirate-forms-contact-message'] ) ? $_REQUEST['pirate-forms-contact-message'] : '',
|
751 |
-
);
|
752 |
-
endif;
|
753 |
|
754 |
-
|
755 |
|
756 |
-
|
757 |
-
|
758 |
-
|
759 |
-
|
760 |
-
|
761 |
-
|
762 |
-
|
763 |
-
|
764 |
-
|
765 |
-
|
766 |
-
|
767 |
-
|
768 |
-
|
769 |
-
|
770 |
-
|
771 |
-
|
772 |
-
|
773 |
-
|
774 |
-
|
775 |
-
|
776 |
-
|
|
|
|
|
|
|
|
|
777 |
endif;
|
778 |
-
|
779 |
-
|
780 |
-
if ( ! empty( $pirate_forms_options['pirateformsopt_recaptcha_secretkey'] ) && ! empty( $pirate_forms_options['pirateformsopt_recaptcha_sitekey'] ) && ! empty( $pirate_forms_options['pirateformsopt_recaptcha_field'] ) && ( $pirate_forms_options['pirateformsopt_recaptcha_field'] == 'yes' ) ) :
|
781 |
-
$pirateformsopt_recaptcha_sitekey = $pirate_forms_options['pirateformsopt_recaptcha_sitekey'];
|
782 |
-
$pirateformsopt_recaptcha_secretkey = $pirate_forms_options['pirateformsopt_recaptcha_secretkey'];
|
783 |
-
$elements[] = array(
|
784 |
-
'placeholder' => stripslashes( sanitize_text_field( $label ) ),
|
785 |
-
'type' => 'div',
|
786 |
-
'class' => 'g-recaptcha pirate-forms-g-recaptcha',
|
787 |
-
'custom' => array( 'data-sitekey' => $pirateformsopt_recaptcha_sitekey ),
|
788 |
-
'id' => 'pirate-forms-captcha',
|
789 |
-
'wrap' => array(
|
790 |
-
'type' => 'div',
|
791 |
-
'class' => implode( ' ', apply_filters( 'pirateform_wrap_classes_captcha', array( 'col-xs-12 col-sm-6 col-lg-6 form_field_wrap form_captcha_wrap' ) ) ),
|
792 |
-
),
|
793 |
-
);
|
794 |
endif;
|
|
|
|
|
795 |
|
796 |
-
|
797 |
-
****** Submit button */
|
798 |
-
$pirateformsopt_label_submit_btn = '';
|
799 |
-
if ( ! empty( $pirate_forms_options['pirateformsopt_label_submit_btn'] ) ) {
|
800 |
-
$pirateformsopt_label_submit_btn = $pirate_forms_options['pirateformsopt_label_submit_btn'];
|
801 |
-
}
|
802 |
-
if ( empty( $pirateformsopt_label_submit_btn ) ) {
|
803 |
-
$pirateformsopt_label_submit_btn = __( 'Submit', 'pirate-forms' );
|
804 |
}
|
805 |
-
$elements[] = array(
|
806 |
-
'type' => 'button',
|
807 |
-
'id' => 'pirate-forms-contact-submit',
|
808 |
-
'class' => 'pirate-forms-submit-button btn btn-primary',
|
809 |
-
'wrap' => array(
|
810 |
-
'type' => 'div',
|
811 |
-
'class' => implode( ' ', apply_filters( 'pirateform_wrap_classes_submit', array( 'col-xs-12 col-sm-6 col-lg-6 form_field_wrap contact_submit_wrap' ) ) ),
|
812 |
-
),
|
813 |
-
'value' => $pirateformsopt_label_submit_btn,
|
814 |
-
);
|
815 |
endif;
|
816 |
|
817 |
-
|
818 |
-
|
819 |
-
|
820 |
-
|
821 |
-
|
822 |
-
|
823 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
824 |
}
|
|
|
|
|
825 |
|
826 |
-
|
827 |
-
|
828 |
-
|
829 |
-
|
830 |
-
|
831 |
-
|
832 |
-
|
|
|
833 |
}
|
|
|
834 |
|
835 |
-
|
836 |
-
|
837 |
-
|
838 |
-
|
839 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
840 |
}
|
841 |
|
842 |
-
|
|
|
843 |
|
844 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
845 |
}
|
846 |
|
847 |
/**
|
95 |
}
|
96 |
|
97 |
/**
|
98 |
+
* Display the form
|
99 |
*
|
100 |
* @since 1.0.0
|
|
|
101 |
*/
|
102 |
+
public function display_form( $atts, $content = null ) {
|
103 |
+
$atts = shortcode_atts(
|
104 |
+
array(
|
105 |
+
'from' => '',
|
106 |
+
'id' => '',
|
107 |
+
), $atts
|
108 |
+
);
|
109 |
|
110 |
+
$from_widget = ! empty( $atts['from'] );
|
111 |
+
$elements = array();
|
112 |
+
$pirate_form = new PirateForms_PhpFormBuilder();
|
|
|
113 |
|
114 |
+
$elements[] = array(
|
115 |
+
'type' => 'text',
|
116 |
+
'id' => 'form_honeypot',
|
117 |
+
'name' => 'honeypot',
|
118 |
+
'slug' => 'honeypot',
|
119 |
+
'wrap' => array(
|
120 |
+
'type' => 'div',
|
121 |
+
'class' => 'form_field_wrap hidden',
|
122 |
+
'style' => 'display: none',
|
123 |
+
),
|
124 |
+
);
|
125 |
|
126 |
+
$elements[] = array(
|
127 |
+
'type' => 'hidden',
|
128 |
+
'id' => 'pirate_forms_from_widget',
|
129 |
+
'value' => $from_widget ? 1 : 0,
|
130 |
+
);
|
131 |
|
132 |
+
$pirate_forms_options = PirateForms_Util::get_option();
|
|
|
|
|
|
|
|
|
133 |
|
134 |
+
if ( isset( $atts['id'] ) && ! empty( $atts['id'] ) ) {
|
135 |
+
$pirate_forms_options = apply_filters( 'pirateformpro_get_form_attributes', $pirate_forms_options, $atts['id'] );
|
136 |
+
if ( isset( $pirate_forms_options['id'] ) ) {
|
137 |
+
// add the form id to the form so that it can be used when we are processing the form
|
138 |
+
$elements[] = array(
|
139 |
+
'type' => 'hidden',
|
140 |
+
'id' => 'pirate_forms_form_id',
|
141 |
+
'value' => $atts['id'],
|
142 |
+
);
|
143 |
}
|
144 |
}
|
145 |
|
146 |
+
$nonce_append = isset( $_POST['pirate_forms_from_widget'] ) && intval( $_POST['pirate_forms_from_widget'] ) === 1 ? 'yes' : 'no';
|
|
|
|
|
|
|
|
|
|
|
147 |
|
148 |
+
$error_key = wp_create_nonce( get_bloginfo( 'admin_email' ) . ( $from_widget ? 'yes' : 'no' ) );
|
149 |
|
150 |
+
$thank_you_message = '';
|
151 |
+
if ( isset( $_GET['done'] ) ) {
|
152 |
+
$thank_you_message = sanitize_text_field( $pirate_forms_options['pirateformsopt_label_submit'] );
|
153 |
}
|
154 |
|
155 |
+
$pirate_form->set_element( 'thank_you_message', $thank_you_message );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
156 |
|
157 |
/**
|
158 |
+
******** FormBuilder */
|
159 |
+
if ( 'yes' === PirateForms_Util::get_option( 'pirateformsopt_nonce' ) ) {
|
160 |
+
$elements[] = array(
|
161 |
+
'type' => 'hidden',
|
162 |
+
'id' => 'wordpress-nonce',
|
163 |
+
'value' => wp_create_nonce( get_bloginfo( 'admin_email' ) . $nonce_append ),
|
164 |
+
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
165 |
}
|
166 |
+
if ( ! empty( $pirate_forms_options ) ) :
|
167 |
+
$field = $pirate_forms_options['pirateformsopt_name_field'];
|
168 |
+
$label = $pirate_forms_options['pirateformsopt_label_name'];
|
169 |
|
170 |
+
/**
|
171 |
+
****** Name field */
|
172 |
+
if ( ! empty( $field ) && ! empty( $label ) ) :
|
173 |
+
$required = $field === 'req' ? true : false;
|
174 |
+
$wrap_classes = array(
|
175 |
+
'col-sm-6 col-lg-6 contact_name_wrap pirate_forms_three_inputs form_field_wrap',
|
176 |
+
);
|
177 |
+
// If this field was submitted with invalid data
|
178 |
+
if ( isset( $_SESSION[ $error_key ]['contact-name'] ) ) {
|
179 |
+
$wrap_classes[] = 'error';
|
180 |
+
}
|
181 |
+
$elements[] = array(
|
182 |
+
'placeholder' => stripslashes( sanitize_text_field( $label ) ),
|
183 |
+
'required' => $required,
|
184 |
+
'required_msg' => $pirate_forms_options['pirateformsopt_label_err_name'],
|
185 |
+
'type' => 'text',
|
186 |
+
'id' => 'pirate-forms-contact-name',
|
187 |
+
'class' => 'form-control',
|
188 |
+
'wrap' => array(
|
189 |
+
'type' => 'div',
|
190 |
+
'class' => implode( ' ', apply_filters( 'pirateform_wrap_classes_name', $wrap_classes ) ),
|
191 |
+
),
|
192 |
+
'value' => empty( $thank_you_message ) && isset( $_REQUEST['pirate-forms-contact-name'] ) ? $_REQUEST['pirate-forms-contact-name'] : '',
|
193 |
+
);
|
194 |
+
endif;
|
195 |
|
196 |
+
$field = $pirate_forms_options['pirateformsopt_email_field'];
|
197 |
+
$label = $pirate_forms_options['pirateformsopt_label_email'];
|
198 |
|
199 |
+
/**
|
200 |
+
****** Email field */
|
201 |
+
if ( ! empty( $field ) && ! empty( $label ) ) :
|
202 |
+
$required = $field === 'req' ? true : false;
|
203 |
+
$wrap_classes = array(
|
204 |
+
'col-sm-6 col-lg-6 contact_email_wrap pirate_forms_three_inputs form_field_wrap',
|
205 |
+
);
|
206 |
+
// If this field was submitted with invalid data
|
207 |
+
if ( isset( $_SESSION[ $error_key ]['contact-email'] ) ) {
|
208 |
+
$wrap_classes[] = 'error';
|
209 |
+
}
|
210 |
+
$elements[] = array(
|
211 |
+
'placeholder' => stripslashes( sanitize_text_field( $label ) ),
|
212 |
+
'required' => $required,
|
213 |
+
'required_msg' => $pirate_forms_options['pirateformsopt_label_err_email'],
|
214 |
+
'type' => 'email',
|
215 |
+
'id' => 'pirate-forms-contact-email',
|
216 |
+
'class' => 'form-control',
|
217 |
+
'wrap' => array(
|
218 |
+
'type' => 'div',
|
219 |
+
'class' => implode( ' ', apply_filters( 'pirateform_wrap_classes_email', $wrap_classes ) ),
|
220 |
+
),
|
221 |
+
'value' => empty( $thank_you_message ) && isset( $_REQUEST['pirate-forms-contact-email'] ) ? $_REQUEST['pirate-forms-contact-email'] : '',
|
222 |
+
);
|
223 |
endif;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
224 |
|
225 |
+
$field = $pirate_forms_options['pirateformsopt_subject_field'];
|
226 |
+
$label = $pirate_forms_options['pirateformsopt_label_subject'];
|
|
|
227 |
|
228 |
+
/**
|
229 |
+
****** Subject field */
|
230 |
+
if ( ! empty( $field ) && ! empty( $label ) ) :
|
231 |
+
$required = $field === 'req' ? true : false;
|
232 |
+
$wrap_classes = array(
|
233 |
+
'contact_subject_wrap pirate_forms_three_inputs form_field_wrap',
|
234 |
+
);
|
235 |
+
// If this field was submitted with invalid data
|
236 |
+
if ( isset( $_SESSION[ $error_key ]['contact-subject'] ) ) {
|
237 |
+
$wrap_classes[] = 'error';
|
238 |
+
}
|
239 |
+
$elements[] = array(
|
240 |
+
'placeholder' => stripslashes( sanitize_text_field( $label ) ),
|
241 |
+
'required' => $required,
|
242 |
+
'required_msg' => $pirate_forms_options['pirateformsopt_label_err_subject'],
|
243 |
+
'type' => 'text',
|
244 |
+
'id' => 'pirate-forms-contact-subject',
|
245 |
+
'class' => 'form-control',
|
246 |
+
'wrap' => array(
|
247 |
+
'type' => 'div',
|
248 |
+
'class' => implode( ' ', apply_filters( 'pirateform_wrap_classes_subject', $wrap_classes ) ),
|
249 |
+
),
|
250 |
+
'value' => empty( $thank_you_message ) && isset( $_REQUEST['pirate-forms-contact-subject'] ) ? $_REQUEST['pirate-forms-contact-subject'] : '',
|
251 |
+
);
|
252 |
+
endif;
|
253 |
|
254 |
+
$field = $pirate_forms_options['pirateformsopt_message_field'];
|
255 |
+
$label = $pirate_forms_options['pirateformsopt_label_message'];
|
|
|
|
|
256 |
|
257 |
+
/**
|
258 |
+
****** Message field */
|
259 |
+
if ( ! empty( $field ) && ! empty( $label ) ) :
|
260 |
+
$required = $field === 'req' ? true : false;
|
261 |
+
$wrap_classes = array( 'col-sm-12 col-lg-12 form_field_wrap contact_message_wrap ' );
|
262 |
+
// If this field was submitted with invalid data
|
263 |
+
if ( isset( $_SESSION[ $error_key ]['contact-message'] ) ) {
|
264 |
+
$wrap_classes[] = 'error';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
265 |
}
|
266 |
+
$elements[] = array(
|
267 |
+
'placeholder' => stripslashes( sanitize_text_field( $label ) ),
|
268 |
+
'required' => $required,
|
269 |
+
'required_msg' => $pirate_forms_options['pirateformsopt_label_err_no_content'],
|
270 |
+
'type' => 'textarea',
|
271 |
+
'class' => 'form-control',
|
272 |
+
'id' => 'pirate-forms-contact-message',
|
273 |
+
'wrap' => array(
|
274 |
+
'type' => 'div',
|
275 |
+
'class' => implode( ' ', apply_filters( 'pirateform_wrap_classes_message', $wrap_classes ) ),
|
276 |
+
),
|
277 |
+
'value' => empty( $thank_you_message ) && isset( $_REQUEST['pirate-forms-contact-message'] ) ? $_REQUEST['pirate-forms-contact-message'] : '',
|
278 |
+
);
|
279 |
+
endif;
|
280 |
|
281 |
+
$field = $pirate_forms_options['pirateformsopt_attachment_field'];
|
|
|
282 |
|
283 |
+
/**
|
284 |
+
****** Message field */
|
285 |
+
if ( ! empty( $field ) && 'no' !== $field ) :
|
286 |
+
$required = $field === 'req' ? true : false;
|
287 |
+
$wrap_classes = array( 'col-sm-12 col-lg-12 form_field_wrap contact_attachment_wrap' );
|
288 |
+
// If this field was submitted with invalid data
|
289 |
+
if ( isset( $_SESSION[ $error_key ]['contact-attachment'] ) ) {
|
290 |
+
$wrap_classes[] = 'error';
|
291 |
}
|
292 |
+
$elements[] = array(
|
293 |
+
'placeholder' => stripslashes( sanitize_text_field( $label ) ),
|
294 |
+
'required' => $required,
|
295 |
+
'required_msg' => $pirate_forms_options['pirateformsopt_label_err_no_attachment'],
|
296 |
+
'type' => 'file',
|
297 |
+
'class' => 'form-control',
|
298 |
+
'id' => 'pirate-forms-attachment',
|
299 |
+
'wrap' => array(
|
300 |
+
'type' => 'div',
|
301 |
+
'class' => implode( ' ', apply_filters( 'pirateform_wrap_classes_attachment', $wrap_classes ) ),
|
302 |
+
),
|
303 |
+
);
|
304 |
+
endif;
|
305 |
/**
|
306 |
+
******* ReCaptcha */
|
307 |
+
if ( ! empty( $pirate_forms_options['pirateformsopt_recaptcha_secretkey'] ) && ! empty( $pirate_forms_options['pirateformsopt_recaptcha_sitekey'] ) && ! empty( $pirate_forms_options['pirateformsopt_recaptcha_field'] ) && ( $pirate_forms_options['pirateformsopt_recaptcha_field'] == 'yes' ) ) :
|
308 |
+
$pirateformsopt_recaptcha_sitekey = $pirate_forms_options['pirateformsopt_recaptcha_sitekey'];
|
309 |
+
$pirateformsopt_recaptcha_secretkey = $pirate_forms_options['pirateformsopt_recaptcha_secretkey'];
|
310 |
+
$elements[] = array(
|
311 |
+
'placeholder' => stripslashes( sanitize_text_field( $label ) ),
|
312 |
+
'type' => 'div',
|
313 |
+
'class' => 'g-recaptcha pirate-forms-g-recaptcha',
|
314 |
+
'custom' => array( 'data-sitekey' => $pirateformsopt_recaptcha_sitekey ),
|
315 |
+
'id' => 'pirate-forms-captcha',
|
316 |
+
'wrap' => array(
|
317 |
+
'type' => 'div',
|
318 |
+
'class' => implode( ' ', apply_filters( 'pirateform_wrap_classes_captcha', array( 'col-xs-12 col-sm-6 col-lg-6 form_field_wrap form_captcha_wrap' ) ) ),
|
319 |
+
),
|
320 |
);
|
321 |
+
endif;
|
|
|
|
|
|
|
|
|
322 |
|
323 |
+
/**
|
324 |
+
****** Submit button */
|
325 |
+
$pirateformsopt_label_submit_btn = '';
|
326 |
+
if ( ! empty( $pirate_forms_options['pirateformsopt_label_submit_btn'] ) ) {
|
327 |
+
$pirateformsopt_label_submit_btn = $pirate_forms_options['pirateformsopt_label_submit_btn'];
|
|
|
|
|
|
|
|
|
|
|
|
|
328 |
}
|
329 |
+
if ( empty( $pirateformsopt_label_submit_btn ) ) {
|
330 |
+
$pirateformsopt_label_submit_btn = __( 'Submit', 'pirate-forms' );
|
331 |
+
}
|
332 |
+
$elements[] = array(
|
333 |
+
'type' => 'button',
|
334 |
+
'id' => 'pirate-forms-contact-submit',
|
335 |
+
'class' => 'pirate-forms-submit-button btn btn-primary',
|
336 |
+
'wrap' => array(
|
337 |
+
'type' => 'div',
|
338 |
+
'class' => implode( ' ', apply_filters( 'pirateform_wrap_classes_submit', array( 'col-xs-12 col-sm-6 col-lg-6 form_field_wrap contact_submit_wrap' ) ) ),
|
339 |
+
),
|
340 |
+
'value' => $pirateformsopt_label_submit_btn,
|
341 |
+
);
|
342 |
+
endif;
|
343 |
+
|
344 |
+
/* Referring site or page, if any */
|
345 |
+
if ( ! empty( $_SERVER['HTTP_REFERER'] ) ) {
|
346 |
+
$elements[] = array(
|
347 |
+
'type' => 'hidden',
|
348 |
+
'id' => 'contact-referrer',
|
349 |
+
'value' => $_SERVER['HTTP_REFERER'],
|
350 |
+
);
|
351 |
+
}
|
352 |
+
|
353 |
+
/* Referring page, if sent via URL query */
|
354 |
+
if ( ! empty( $_REQUEST['src'] ) || ! empty( $_REQUEST['ref'] ) ) {
|
355 |
+
$elements[] = array(
|
356 |
+
'type' => 'hidden',
|
357 |
+
'id' => 'referring-page',
|
358 |
+
'value' => ! empty( $_REQUEST['src'] ) ? $_REQUEST['src'] : $_REQUEST['ref'],
|
359 |
+
);
|
360 |
+
}
|
361 |
+
|
362 |
+
/* Are there any submission errors? */
|
363 |
+
$errors = '';
|
364 |
+
if ( ! empty( $_SESSION[ $error_key ] ) ) {
|
365 |
+
$pirate_form->set_element( 'errors', $_SESSION[ $error_key ] );
|
366 |
+
unset( $_SESSION[ $error_key ] );
|
367 |
+
}
|
368 |
+
|
369 |
+
$elements = apply_filters( 'pirate_forms_get_custom_elements', $elements, $pirate_forms_options );
|
370 |
+
|
371 |
+
do_action( 'themeisle_log_event', PIRATEFORMS_NAME, sprintf( 'displaying elements %s', print_r( $elements, true ) ), 'debug', __FILE__, __LINE__ );
|
372 |
+
|
373 |
+
return $pirate_form->build_form( apply_filters( 'pirate_forms_public_controls', $elements, $pirate_forms_options, $from_widget ), $pirate_forms_options, $from_widget );
|
374 |
}
|
375 |
|
376 |
/**
|
377 |
+
* Renders all the fields relevant to the form
|
378 |
*
|
379 |
+
* @param PirateForms_PhpFormBuilder $form_builder The form builder object.
|
|
|
380 |
*/
|
381 |
+
public function render_fields( $form_builder ) {
|
382 |
+
echo '<div class="pirate_forms_three_inputs_wrap">';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
383 |
|
384 |
+
if ( isset( $form_builder->contact_name ) ) {
|
385 |
+
echo $form_builder->contact_name;
|
386 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
387 |
|
388 |
+
if ( isset( $form_builder->contact_email ) ) {
|
389 |
+
echo $form_builder->contact_email;
|
390 |
+
}
|
391 |
|
392 |
+
if ( isset( $form_builder->contact_subject ) ) {
|
393 |
+
echo $form_builder->contact_subject;
|
394 |
+
}
|
395 |
+
|
396 |
+
if ( isset( $form_builder->custom_fields ) ) {
|
397 |
+
echo $form_builder->custom_fields;
|
398 |
+
}
|
399 |
+
|
400 |
+
echo '</div>';
|
401 |
+
|
402 |
+
if ( isset( $form_builder->contact_message ) ) {
|
403 |
+
echo $form_builder->contact_message;
|
404 |
+
}
|
405 |
+
|
406 |
+
if ( isset( $form_builder->attachment ) ) {
|
407 |
+
echo $form_builder->attachment;
|
408 |
+
}
|
409 |
+
|
410 |
+
if ( isset( $form_builder->captcha ) ) {
|
411 |
+
echo $form_builder->captcha;
|
412 |
+
}
|
413 |
+
|
414 |
+
echo $form_builder->contact_submit;
|
415 |
}
|
416 |
|
417 |
/**
|
418 |
+
* Renders all the errors relevant to the form
|
419 |
*
|
420 |
+
* @param PirateForms_PhpFormBuilder $form_builder The form builder object.
|
421 |
*/
|
422 |
+
public function render_errors( $form_builder ) {
|
423 |
+
$output = '';
|
424 |
+
if ( ! empty( $form_builder->errors ) ) :
|
425 |
+
$output .= '<div class="col-sm-12 col-lg-12 pirate_forms_error_box">';
|
426 |
+
$output .= '<p>' . __( 'Sorry, an error occured.', 'pirate-forms' ) . '</p>';
|
427 |
+
$output .= '</div>';
|
428 |
+
foreach ( $form_builder->errors as $err ) :
|
429 |
+
$output .= '<div class="col-sm-12 col-lg-12 pirate_forms_error_box">';
|
430 |
+
$output .= "<p>$err</p>";
|
431 |
+
$output .= '</div>';
|
432 |
+
endforeach;
|
433 |
+
|
434 |
+
endif;
|
435 |
+
|
436 |
+
echo $output;
|
437 |
}
|
438 |
|
439 |
/**
|
440 |
+
* Renders the thank you message relevant to the form
|
441 |
*
|
442 |
+
* @param PirateForms_PhpFormBuilder $form_builder The form builder object.
|
443 |
+
*/
|
444 |
+
public function render_thankyou( $form_builder ) {
|
445 |
+
if ( ! empty( $form_builder->thank_you_message ) ) {
|
446 |
+
echo '<div class="col-sm-12 col-lg-12 pirate_forms_thankyou_wrap"><p>' . $form_builder->thank_you_message . '</p></div>';
|
447 |
+
}
|
448 |
+
}
|
449 |
+
|
450 |
+
/**
|
451 |
+
* Process the form after submission
|
452 |
*
|
453 |
+
* @since 1.0.0
|
454 |
* @throws Exception When file uploading fails.
|
455 |
*/
|
456 |
+
public function template_redirect() {
|
457 |
+
do_action( 'themeisle_log_event', PIRATEFORMS_NAME, sprintf( 'POST data = %s', print_r( $_POST, true ) ), 'debug', __FILE__, __LINE__ );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
458 |
|
459 |
+
// If POST and honeypot are not set, beat it
|
460 |
+
if ( empty( $_POST ) || ! isset( $_POST['honeypot'] ) ) {
|
461 |
+
return false;
|
462 |
+
}
|
|
|
|
|
|
|
463 |
|
464 |
+
// separate the nonce from a form that is displayed in the widget vs. one that is not
|
465 |
+
$nonce_append = isset( $_POST['pirate_forms_from_widget'] ) && intval( $_POST['pirate_forms_from_widget'] ) === 1 ? 'yes' : 'no';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
466 |
|
467 |
+
// Session variable for form errors
|
468 |
+
$error_key = wp_create_nonce( get_bloginfo( 'admin_email' ) . $nonce_append );
|
469 |
+
$_SESSION[ $error_key ] = array();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
470 |
|
471 |
+
// If nonce is not valid, beat it
|
472 |
+
if ( 'yes' === PirateForms_Util::get_option( 'pirateformsopt_nonce' ) ) {
|
473 |
+
if ( ! wp_verify_nonce( $_POST['wordpress-nonce'], get_bloginfo( 'admin_email' ) . $nonce_append ) ) {
|
474 |
+
$_SESSION[ $error_key ]['nonce'] = __( 'Nonce failed!', 'pirate-forms' );
|
475 |
+
do_action( 'themeisle_log_event', PIRATEFORMS_NAME, 'Nonce failed', 'error', __FILE__, __LINE__ );
|
476 |
+
|
477 |
+
return false;
|
478 |
}
|
|
|
|
|
479 |
}
|
|
|
480 |
|
481 |
+
// If the honeypot caught a bear, beat it
|
482 |
+
if ( ! empty( $_POST['honeypot'] ) ) {
|
483 |
+
$_SESSION[ $error_key ]['honeypot'] = __( 'Form submission failed!', 'pirate-forms' );
|
|
|
|
|
|
|
|
|
|
|
484 |
|
485 |
+
return false;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
486 |
}
|
487 |
|
488 |
+
$pirate_forms_options = PirateForms_Util::get_form_options( isset( $_POST['pirate_forms_form_id'] ) ? $_POST['pirate_forms_form_id'] : null );
|
|
|
489 |
|
490 |
+
if ( ! $this->validate_captcha( $error_key, $pirate_forms_options ) ) {
|
491 |
+
return false;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
492 |
}
|
493 |
|
494 |
+
// Start the body of the contact email
|
495 |
+
$body = '<h2>' . __( 'Contact form submission from', 'pirate-forms' ) . ' ' .
|
496 |
+
get_bloginfo( 'name' ) . ' (' . site_url() . ') </h2>';
|
497 |
|
498 |
+
$body .= '<table>';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
499 |
|
500 |
+
list($pirate_forms_contact_email, $pirate_forms_contact_name, $pirate_forms_contact_subject) = $this->validate_request( $error_key, $pirate_forms_options, $body );
|
|
|
501 |
|
502 |
+
/**
|
503 |
+
******** Validate recipients email */
|
504 |
+
$site_recipients = sanitize_text_field( $pirate_forms_options['pirateformsopt_email_recipients'] );
|
505 |
+
if ( empty( $site_recipients ) ) {
|
506 |
+
$_SESSION[ $error_key ]['pirate-forms-recipients-email'] = __( 'Please enter one or more Contact submission recipients', 'pirate-forms' );
|
|
|
|
|
|
|
|
|
|
|
507 |
}
|
508 |
+
/**
|
509 |
+
****** Sanitize and validate IP */
|
510 |
+
$contact_ip = filter_var( $_SERVER['REMOTE_ADDR'], FILTER_VALIDATE_IP );
|
511 |
+
/* for the case of a Web server behind a reverse proxy */
|
512 |
+
if ( array_key_exists( 'HTTP_X_FORWARDED_FOR', $_SERVER ) ) {
|
513 |
+
$contact_ip_tmp = explode( ',', $_SERVER['HTTP_X_FORWARDED_FOR'] );
|
514 |
+
if ( ! empty( $contact_ip_tmp ) ) {
|
515 |
+
$contact_ip = array_pop( $contact_ip_tmp );
|
516 |
}
|
517 |
}
|
|
|
|
|
|
|
|
|
|
|
518 |
|
519 |
+
// If valid and present, create a link to an IP search
|
520 |
+
if ( ! empty( $contact_ip ) ) {
|
521 |
+
$body .= PirateForms_Util::table_row( __( 'IP address: ', 'pirate-forms' ), $contact_ip );
|
522 |
+
$body .= PirateForms_Util::table_row( __( 'IP search:', 'pirate-forms' ), "http://whatismyipaddress.com/ip/$contact_ip" );
|
523 |
+
}
|
524 |
|
525 |
+
// Sanitize and prepare referrer;
|
526 |
+
if ( ! empty( $_POST['pirate-forms-contact-referrer'] ) ) {
|
527 |
+
$body .= PirateForms_Util::table_row( __( 'Came from: ', 'pirate-forms' ), sanitize_text_field( $_POST['pirate-forms-contact-referrer'] ) );
|
|
|
|
|
|
|
|
|
|
|
528 |
}
|
|
|
529 |
|
530 |
+
// Show the page this contact form was submitted on
|
531 |
+
$body .= PirateForms_Util::table_row( __( 'Sent from page: ', 'pirate-forms' ), get_permalink( get_the_id() ) );
|
532 |
|
533 |
+
// Check the blacklist
|
534 |
+
$blocked = PirateForms_Util::is_blacklisted( $error_key, $pirate_forms_contact_email, $contact_ip );
|
535 |
+
if ( $blocked ) {
|
536 |
+
return false;
|
537 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
538 |
|
539 |
+
$body .= '</table>';
|
|
|
540 |
|
541 |
+
// No errors? Go ahead and process the contact
|
542 |
+
if ( empty( $_SESSION[ $error_key ] ) ) {
|
543 |
+
$site_email = sanitize_text_field( $pirate_forms_options['pirateformsopt_email'] );
|
544 |
+
if ( ! empty( $pirate_forms_contact_name ) ) :
|
545 |
+
$site_name = $pirate_forms_contact_name;
|
546 |
+
else :
|
547 |
+
$site_name = htmlspecialchars_decode( get_bloginfo( 'name' ) );
|
548 |
+
endif;
|
549 |
+
// Notification recipients
|
550 |
+
$site_recipients = sanitize_text_field( $pirate_forms_options['pirateformsopt_email_recipients'] );
|
551 |
+
$site_recipients = explode( ',', $site_recipients );
|
552 |
+
$site_recipients = array_map( 'trim', $site_recipients );
|
553 |
+
$site_recipients = array_map( 'sanitize_email', $site_recipients );
|
554 |
+
$site_recipients = implode( ',', $site_recipients );
|
555 |
+
// No name? Use the submitter email address, if one is present
|
556 |
+
if ( empty( $pirate_forms_contact_name ) ) {
|
557 |
+
$pirate_forms_contact_name = ! empty( $pirate_forms_contact_email ) ? $pirate_forms_contact_email : '[None given]';
|
558 |
+
}
|
559 |
|
560 |
+
// Need an email address for the email notification
|
561 |
+
$send_from = '';
|
562 |
+
if ( '[email]' == $site_email && ! empty( $pirate_forms_contact_email ) ) {
|
563 |
+
$send_from = $pirate_forms_contact_email;
|
564 |
+
} elseif ( ! empty( $site_email ) ) {
|
565 |
+
$send_from = $site_email;
|
566 |
+
} else {
|
567 |
+
$send_from = PirateForms_Util::get_from_email();
|
568 |
+
}
|
569 |
+
$send_from_name = $site_name;
|
570 |
|
571 |
+
// Send an email notification to the correct address
|
572 |
+
$headers = "From: $send_from_name <$send_from>\r\nReply-To: $pirate_forms_contact_name <$pirate_forms_contact_email>\r\nContent-type: text/html";
|
573 |
+
add_action( 'phpmailer_init', array( $this, 'phpmailer' ) );
|
574 |
|
575 |
+
$attachments = $this->get_attachments( $error_key, $pirate_forms_options );
|
576 |
+
if ( is_bool( $attachments ) ) {
|
577 |
+
return false;
|
|
|
|
|
|
|
|
|
|
|
|
|
578 |
}
|
|
|
579 |
|
580 |
+
$subject = 'Contact on ' . htmlspecialchars_decode( get_bloginfo( 'name' ) );
|
581 |
+
if ( ! empty( $pirate_forms_contact_subject ) ) {
|
582 |
+
$subject = $pirate_forms_contact_subject;
|
583 |
+
}
|
584 |
|
585 |
+
do_action( 'pirate_forms_before_sending', $pirate_forms_contact_email, $site_recipients, $subject, $body, $headers, $attachments );
|
586 |
+
do_action( 'themeisle_log_event', PIRATEFORMS_NAME, sprintf( 'before sending email to = %s, subject = %s, body = %s, headers = %s, attachments = %s', $site_recipients, $subject, $body, $headers, print_r( $attachments, true ) ), 'debug', __FILE__, __LINE__ );
|
587 |
+
$response = wp_mail( $site_recipients, $subject, $body, $headers, $attachments );
|
588 |
+
if ( ! $response ) {
|
589 |
+
error_log( 'Email not sent' );
|
590 |
+
}
|
591 |
+
do_action( 'pirate_forms_after_sending', $pirate_forms_options, $response, $pirate_forms_contact_email, $site_recipients, $subject, $body, $headers, $attachments );
|
592 |
+
do_action( 'themeisle_log_event', PIRATEFORMS_NAME, sprintf( 'after sending email, response = %s', $response ), 'debug', __FILE__, __LINE__ );
|
593 |
|
594 |
+
// delete the tmp directory
|
595 |
+
require_once( ABSPATH . 'wp-admin/includes/file.php' );
|
596 |
+
WP_Filesystem();
|
597 |
+
global $wp_filesystem;
|
598 |
+
$wp_filesystem->delete( $this->get_upload_tmp_dir(), true, 'd' );
|
599 |
|
600 |
+
// Should a confirm email be sent?
|
601 |
+
$confirm_body = stripslashes( trim( $pirate_forms_options['pirateformsopt_confirm_email'] ) );
|
602 |
+
if ( ! empty( $confirm_body ) && ! empty( $pirate_forms_contact_email ) ) {
|
603 |
+
// Removing entities
|
604 |
+
$confirm_body = htmlspecialchars_decode( $confirm_body );
|
605 |
+
$confirm_body = html_entity_decode( $confirm_body );
|
606 |
+
$confirm_body = str_replace( ''', "'", $confirm_body );
|
607 |
+
$send_from = PirateForms_Util::get_from_email();
|
608 |
+
if ( ! empty( $site_email ) && '[email]' !== $site_email ) {
|
609 |
+
$send_from = $site_email;
|
610 |
+
}
|
611 |
+
$site_name = htmlspecialchars_decode( get_bloginfo( 'name' ) );
|
612 |
|
613 |
+
$headers = "From: $site_name <$send_from>\r\nReply-To: $site_name <$send_from>";
|
614 |
+
$subject = $pirate_forms_options['pirateformsopt_label_submit'] . ' - ' . $site_name;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
615 |
|
616 |
+
do_action( 'pirate_forms_before_sending_confirm', $pirate_forms_contact_email, $pirate_forms_contact_email, $subject, $confirm_body, $headers );
|
617 |
+
do_action( 'themeisle_log_event', PIRATEFORMS_NAME, sprintf( 'before sending confirm email to = %s, subject = %s, body = %s, headers = %s', $pirate_forms_contact_email, $subject, $confirm_body, $headers ), 'debug', __FILE__, __LINE__ );
|
618 |
+
$response = wp_mail( $pirate_forms_contact_email, $subject, $confirm_body, $headers );
|
619 |
+
do_action( 'pirate_forms_after_sending_confirm', $pirate_forms_options, $response, $pirate_forms_contact_email, $pirate_forms_contact_email, $subject, $confirm_body, $headers );
|
620 |
+
do_action( 'themeisle_log_event', PIRATEFORMS_NAME, sprintf( 'after sending confirm email response = %s', $response ), 'debug', __FILE__, __LINE__ );
|
621 |
+
if ( ! $response ) {
|
622 |
+
error_log( 'Confirm email not sent' );
|
|
|
|
|
|
|
623 |
}
|
624 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
625 |
|
626 |
/**
|
627 |
+
*********** Store the entries in the DB */
|
628 |
+
if ( 'yes' === $pirate_forms_options['pirateformsopt_store'] ) {
|
629 |
+
$new_post_id = wp_insert_post(
|
630 |
+
array(
|
631 |
+
'post_type' => 'pf_contact',
|
632 |
+
'post_title' => date( 'l, M j, Y', time() ) . ' by "' . $pirate_forms_contact_name . '"',
|
633 |
+
'post_content' => $body,
|
634 |
+
'post_author' => 1,
|
635 |
+
'post_status' => 'private',
|
636 |
+
)
|
637 |
);
|
638 |
+
if ( isset( $pirate_forms_contact_email ) && ! empty( $pirate_forms_contact_email ) ) {
|
639 |
+
add_post_meta( $new_post_id, 'Contact email', $pirate_forms_contact_email );
|
|
|
640 |
}
|
641 |
+
do_action( 'pirate_forms_update_contact', $pirate_forms_options, $new_post_id );
|
642 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
643 |
|
644 |
+
$pirate_forms_current_theme = wp_get_theme();
|
|
|
645 |
|
646 |
+
/* If a Thank you page is selected, redirect to that page */
|
647 |
+
if ( $pirate_forms_options['pirateformsopt_thank_you_url'] ) {
|
648 |
+
$redirect_id = intval( $pirate_forms_options['pirateformsopt_thank_you_url'] );
|
649 |
+
$redirect = get_permalink( $redirect_id );
|
650 |
+
if ( ! empty( $redirect ) ) {
|
651 |
+
wp_safe_redirect( $redirect );
|
|
|
|
|
|
|
|
|
652 |
}
|
653 |
+
} elseif ( ( 'Zerif Lite' == $pirate_forms_current_theme->name ) || ( 'Zerif Lite' == $pirate_forms_current_theme->parent_theme ) || ( 'Zerif PRO' == $pirate_forms_current_theme->name ) || ( 'Zerif PRO' == $pirate_forms_current_theme->parent_theme ) ) {
|
654 |
+
// the fragment identifier should always be the last argument, otherwise the thank you message will not show.
|
655 |
+
$redirect = add_query_arg( array( 'done' => 'done', 'pcf' => '1#contact' ), $_SERVER['HTTP_REFERER'] );
|
656 |
+
wp_safe_redirect( $redirect );
|
657 |
+
} elseif ( isset( $_SERVER['HTTP_REFERER'] ) ) {
|
658 |
+
$redirect = add_query_arg( array( 'done' => 'done' ), $_SERVER['HTTP_REFERER'] );
|
659 |
+
wp_safe_redirect( $redirect );
|
660 |
+
}
|
661 |
+
}
|
662 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
663 |
|
664 |
+
/**
|
665 |
+
* Validate request
|
666 |
+
*
|
667 |
+
* @param string $error_key the key for the session object.
|
668 |
+
* @param array $pirate_forms_options the array of options for this form.
|
669 |
+
* @param string $body the body to save as the CPT.
|
670 |
+
*/
|
671 |
+
function validate_request( $error_key, $pirate_forms_options, &$body ) {
|
672 |
+
$pirate_forms_contact_email = null;
|
673 |
+
$pirate_forms_contact_name = null;
|
674 |
+
$pirate_forms_contact_subject = null;
|
675 |
+
$fields = array( 'name', 'email', 'subject', 'message' );
|
676 |
+
foreach ( $fields as $field ) {
|
677 |
+
$value = isset( $_POST[ 'pirate-forms-contact-' . $field ] ) ? sanitize_text_field( trim( $_POST[ 'pirate-forms-contact-' . $field ] ) ) : '';
|
678 |
+
if ( 'req' === $pirate_forms_options[ 'pirateformsopt_' . $field . '_field' ] && empty( $value ) ) {
|
679 |
+
$_SESSION[ $error_key ][ 'pirate-forms-contact-' . $field ] = $pirate_forms_options[ 'pirateformsopt_label_err_' . $field ];
|
680 |
+
} elseif ( ! empty( $value ) ) {
|
681 |
+
if ( 'email' === $field && ! filter_var( $value, FILTER_VALIDATE_EMAIL ) ) {
|
682 |
+
$_SESSION[ $error_key ][ 'pirate-forms-contact-' . $field ] = $pirate_forms_options[ 'pirateformsopt_label_err_' . $field ];
|
683 |
+
} else {
|
684 |
+
if ( 'email' === $field ) {
|
685 |
+
$pirate_forms_contact_email = $value;
|
686 |
+
} elseif ( 'name' === $field ) {
|
687 |
+
$pirate_forms_contact_name = $value;
|
688 |
+
} elseif ( 'subject' === $field ) {
|
689 |
+
$pirate_forms_contact_subject = $value;
|
690 |
+
}
|
691 |
+
$body .= PirateForms_Util::table_row( stripslashes( $pirate_forms_options[ 'pirateformsopt_label_' . $field ] ), $value );
|
692 |
}
|
693 |
+
}
|
694 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
695 |
|
696 |
+
$body = apply_filters( 'pirate_forms_validate_request', $body, $error_key, $pirate_forms_options );
|
697 |
|
698 |
+
return array( $pirate_forms_contact_email, $pirate_forms_contact_name, $pirate_forms_contact_subject );
|
699 |
+
}
|
700 |
+
|
701 |
+
/**
|
702 |
+
* Validate CAPTCHA
|
703 |
+
*
|
704 |
+
* @param string $error_key the key for the session object.
|
705 |
+
* @param array $pirate_forms_options the array of options for this form.
|
706 |
+
*/
|
707 |
+
function validate_captcha( $error_key, $pirate_forms_options ) {
|
708 |
+
$pirateformsopt_recaptcha_sitekey = $pirate_forms_options['pirateformsopt_recaptcha_sitekey'];
|
709 |
+
$pirateformsopt_recaptcha_secretkey = $pirate_forms_options['pirateformsopt_recaptcha_secretkey'];
|
710 |
+
$pirateformsopt_recaptcha_field = $pirate_forms_options['pirateformsopt_recaptcha_field'];
|
711 |
+
if ( ! empty( $pirateformsopt_recaptcha_secretkey ) && ! empty( $pirateformsopt_recaptcha_sitekey ) && ! empty( $pirateformsopt_recaptcha_field ) && ( $pirateformsopt_recaptcha_field == 'yes' ) ) :
|
712 |
+
if ( isset( $_POST['g-recaptcha-response'] ) ) {
|
713 |
+
$captcha = $_POST['g-recaptcha-response'];
|
714 |
+
}
|
715 |
+
if ( ! $captcha ) {
|
716 |
+
$_SESSION[ $error_key ]['pirate-forms-captcha'] = __( 'Wrong reCAPTCHA', 'pirate-forms' );
|
717 |
+
|
718 |
+
return false;
|
719 |
+
}
|
720 |
+
$response = wp_remote_get( 'https://www.google.com/recaptcha/api/siteverify?secret=' . $pirateformsopt_recaptcha_secretkey . '&response=' . $captcha . '&remoteip=' . $_SERVER['REMOTE_ADDR'] );
|
721 |
+
if ( ! empty( $response ) ) :
|
722 |
+
$response_body = wp_remote_retrieve_body( $response );
|
723 |
endif;
|
724 |
+
if ( ! empty( $response_body ) ) :
|
725 |
+
$result = json_decode( $response_body, true );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
726 |
endif;
|
727 |
+
if ( isset( $result['success'] ) && ( $result['success'] == false ) ) {
|
728 |
+
$_SESSION[ $error_key ]['pirate-forms-captcha'] = __( 'Wrong reCAPTCHA', 'pirate-forms' );
|
729 |
|
730 |
+
return false;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
731 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
732 |
endif;
|
733 |
|
734 |
+
return true;
|
735 |
+
}
|
736 |
+
|
737 |
+
/**
|
738 |
+
* Get attachments, if any
|
739 |
+
*
|
740 |
+
* @param string $error_key the key for the session object.
|
741 |
+
* @param array $pirate_forms_options the array of options for the form.
|
742 |
+
*
|
743 |
+
* @throws Exception When file uploading fails.
|
744 |
+
*/
|
745 |
+
function get_attachments( $error_key, $pirate_forms_options ) {
|
746 |
+
$attachments = '';
|
747 |
+
/**
|
748 |
+
******* Validate Attachment */
|
749 |
+
$use_files = $pirate_forms_options['pirateformsopt_attachment_field'];
|
750 |
+
if ( ! empty( $use_files ) && ( $use_files == 'yes' ) ) {
|
751 |
+
$pirate_forms_attach_file = isset( $_FILES['pirate-forms-attachment'] ) ? $_FILES['pirate-forms-attachment'] : '';
|
752 |
+
if ( ! empty( $pirate_forms_attach_file ) && ! empty( $pirate_forms_attach_file['name'] ) ) {
|
753 |
+
/* Validate file type */
|
754 |
+
$file_types_allowed = 'jpg|jpeg|png|gif|pdf|doc|docx|ppt|pptx|odt|avi|ogg|m4a|mov|mp3|mp4|mpg|wav|wmv';
|
755 |
+
$pirate_forms_file_types_allowed = $file_types_allowed;
|
756 |
+
$pirate_forms_file_types_allowed = trim( $pirate_forms_file_types_allowed, '|' );
|
757 |
+
$pirate_forms_file_types_allowed = '(' . $pirate_forms_file_types_allowed . ')';
|
758 |
+
$pirate_forms_file_types_allowed = '/\.' . $pirate_forms_file_types_allowed . '$/i';
|
759 |
+
if ( ! preg_match( $pirate_forms_file_types_allowed, $pirate_forms_attach_file['name'] ) ) {
|
760 |
+
do_action( 'themeisle_log_event', PIRATEFORMS_NAME, sprintf( 'file invalid: expected %s got %s', $file_types_allowed, $pirate_forms_attach_file['name'] ), 'error', __FILE__, __LINE__ );
|
761 |
+
$_SESSION[ $error_key ]['pirate-forms-upload-failed-type'] = __( 'Uploaded file is not allowed for file type', 'pirate-forms' );
|
762 |
+
|
763 |
+
return false;
|
764 |
+
}
|
765 |
+
/* Validate file size */
|
766 |
+
$pirate_forms_file_size_allowed = 1048576; // default size 1 MB
|
767 |
+
if ( $pirate_forms_attach_file['size'] > $pirate_forms_file_size_allowed ) {
|
768 |
+
do_action( 'themeisle_log_event', PIRATEFORMS_NAME, sprintf( 'file too large: expected %d got %d', $pirate_forms_file_size_allowed, $pirate_forms_attach_file['size'] ), 'error', __FILE__, __LINE__ );
|
769 |
+
$_SESSION[ $error_key ]['pirate-forms-upload-failed-size'] = __( 'Uploaded file is too large', 'pirate-forms' );
|
770 |
+
|
771 |
+
return false;
|
772 |
+
}
|
773 |
+
$this->init_uploads();
|
774 |
+
$uploads_dir = $this->get_upload_tmp_dir();
|
775 |
+
$uploads_dir = $this->maybe_add_random_dir( $uploads_dir );
|
776 |
+
$filename = $pirate_forms_attach_file['name'];
|
777 |
+
$filename = $this->canonicalize( $filename );
|
778 |
+
$filename = sanitize_file_name( $filename );
|
779 |
+
$filename = $this->antiscript_file_name( $filename );
|
780 |
+
$filename = wp_unique_filename( $uploads_dir, $filename );
|
781 |
+
$new_file = trailingslashit( $uploads_dir ) . $filename;
|
782 |
+
try {
|
783 |
+
if ( false === move_uploaded_file( $pirate_forms_attach_file['tmp_name'], $new_file ) ) {
|
784 |
+
do_action( 'themeisle_log_event', PIRATEFORMS_NAME, sprintf( 'unable to move the uploaded file from %s to %s', $pirate_forms_attach_file['tmp_name'], $new_file ), 'error', __FILE__, __LINE__ );
|
785 |
+
throw new Exception( __( 'There was an unknown error uploading the file.', 'pirate-forms' ) );
|
786 |
+
}
|
787 |
+
} catch ( Exception $ex ) {
|
788 |
+
do_action( 'themeisle_log_event', PIRATEFORMS_NAME, sprintf( 'unable to move the uploaded file from %s to %s with error %s', $pirate_forms_attach_file['tmp_name'], $new_file, $ex->getMessage() ), 'error', __FILE__, __LINE__ );
|
789 |
+
$_SESSION[ $error_key ]['pirate-forms-upload-failed-general'] = $ex->getMessage();
|
790 |
+
}
|
791 |
+
if ( ! empty( $new_file ) ) {
|
792 |
+
$attachments = $new_file;
|
793 |
+
}
|
794 |
+
}// End if().
|
795 |
+
}// End if().
|
796 |
+
return $attachments;
|
797 |
+
}
|
798 |
+
|
799 |
+
/**
|
800 |
+
* Prepare the uploading process
|
801 |
+
*
|
802 |
+
* @since 1.0.0
|
803 |
+
* @throws Exception When file could not be opened.
|
804 |
+
*/
|
805 |
+
function init_uploads() {
|
806 |
+
$dir = $this->get_upload_tmp_dir();
|
807 |
+
wp_mkdir_p( $dir );
|
808 |
+
$htaccess_file = trailingslashit( $dir ) . '.htaccess';
|
809 |
+
if ( file_exists( $htaccess_file ) ) {
|
810 |
+
return;
|
811 |
}
|
812 |
+
try {
|
813 |
+
$handle = fopen( $htaccess_file, 'w' );
|
814 |
|
815 |
+
if ( ! $handle ) {
|
816 |
+
throw new Exception( 'File open failed.' );
|
817 |
+
} else {
|
818 |
+
fwrite( $handle, "Deny from all\n" );
|
819 |
+
fclose( $handle );
|
820 |
+
}
|
821 |
+
} catch ( Exception $e ) {
|
822 |
+
// nothing
|
823 |
}
|
824 |
+
}
|
825 |
|
826 |
+
/**
|
827 |
+
* Return the temporary upload dir
|
828 |
+
*
|
829 |
+
* @since 1.0.0
|
830 |
+
*/
|
831 |
+
function get_upload_tmp_dir() {
|
832 |
+
return $this->get_upload_dir( 'dir' ) . '/pirate_forms_uploads';
|
833 |
+
}
|
834 |
+
|
835 |
+
/**
|
836 |
+
* Return the upload dir
|
837 |
+
*
|
838 |
+
* @since 1.0.0
|
839 |
+
*/
|
840 |
+
function get_upload_dir( $type = false ) {
|
841 |
+
$uploads = wp_upload_dir();
|
842 |
+
$uploads = apply_filters(
|
843 |
+
'pirate_forms_upload_dir', array(
|
844 |
+
'dir' => $uploads['basedir'],
|
845 |
+
'url' => $uploads['baseurl'],
|
846 |
+
)
|
847 |
+
);
|
848 |
+
if ( 'dir' == $type ) {
|
849 |
+
return $uploads['dir'];
|
850 |
+
}
|
851 |
+
if ( 'url' == $type ) {
|
852 |
+
return $uploads['url'];
|
853 |
}
|
854 |
|
855 |
+
return $uploads;
|
856 |
+
}
|
857 |
|
858 |
+
/**
|
859 |
+
* Add a random directory for uploading
|
860 |
+
*
|
861 |
+
* @since 1.0.0
|
862 |
+
*/
|
863 |
+
function maybe_add_random_dir( $dir ) {
|
864 |
+
do {
|
865 |
+
$rand_max = mt_getrandmax();
|
866 |
+
$rand = zeroise( mt_rand( 0, $rand_max ), strlen( $rand_max ) );
|
867 |
+
$dir_new = path_join( $dir, $rand );
|
868 |
+
} while ( file_exists( $dir_new ) );
|
869 |
+
if ( wp_mkdir_p( $dir_new ) ) {
|
870 |
+
return $dir_new;
|
871 |
+
}
|
872 |
+
|
873 |
+
return $dir;
|
874 |
+
}
|
875 |
+
|
876 |
+
/**
|
877 |
+
* Functions to Process uploaded files
|
878 |
+
*/
|
879 |
+
function canonicalize( $text ) {
|
880 |
+
if ( function_exists( 'mb_convert_kana' )
|
881 |
+
&& 'UTF-8' == get_option( 'blog_charset' )
|
882 |
+
) {
|
883 |
+
$text = mb_convert_kana( $text, 'asKV', 'UTF-8' );
|
884 |
+
}
|
885 |
+
$text = strtolower( $text );
|
886 |
+
$text = trim( $text );
|
887 |
+
|
888 |
+
return $text;
|
889 |
+
}
|
890 |
+
|
891 |
+
/**
|
892 |
+
* Prevent uploading any script files
|
893 |
+
*
|
894 |
+
* @since 1.0.0
|
895 |
+
*/
|
896 |
+
function antiscript_file_name( $filename ) {
|
897 |
+
$filename = basename( $filename );
|
898 |
+
$parts = explode( '.', $filename );
|
899 |
+
if ( count( $parts ) < 2 ) {
|
900 |
+
return $filename;
|
901 |
+
}
|
902 |
+
$script_pattern = '/^(php|phtml|pl|py|rb|cgi|asp|aspx)\d?$/i';
|
903 |
+
$filename = array_shift( $parts );
|
904 |
+
$extension = array_pop( $parts );
|
905 |
+
foreach ( (array) $parts as $part ) {
|
906 |
+
if ( preg_match( $script_pattern, $part ) ) {
|
907 |
+
$filename .= '.' . $part . '_';
|
908 |
+
} else {
|
909 |
+
$filename .= '.' . $part;
|
910 |
+
}
|
911 |
+
}
|
912 |
+
if ( preg_match( $script_pattern, $extension ) ) {
|
913 |
+
$filename .= '.' . $extension . '_.txt';
|
914 |
+
} else {
|
915 |
+
$filename .= '.' . $extension;
|
916 |
+
}
|
917 |
+
|
918 |
+
return $filename;
|
919 |
+
}
|
920 |
+
|
921 |
+
/**
|
922 |
+
* Change the content of the widget
|
923 |
+
*
|
924 |
+
* @since 1.0.0
|
925 |
+
*/
|
926 |
+
public function widget_text_filter( $content ) {
|
927 |
+
if ( ! preg_match( '[pirate_forms]', $content ) ) {
|
928 |
+
return $content;
|
929 |
+
}
|
930 |
+
$content = do_shortcode( $content );
|
931 |
+
|
932 |
+
return $content;
|
933 |
}
|
934 |
|
935 |
/**
|
public/css/front.css
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
/*
|
2 |
-
Version: 2.0.
|
3 |
*/
|
4 |
.pirate_forms_wrap .form_field_wrap {
|
5 |
margin-bottom: 20px;
|
1 |
/*
|
2 |
+
Version: 2.0.5
|
3 |
*/
|
4 |
.pirate_forms_wrap .form_field_wrap {
|
5 |
margin-bottom: 20px;
|
public/js/scripts-general.js
CHANGED
@@ -11,9 +11,5 @@ jQuery(document).ready(function() {
|
|
11 |
}, 'slow');
|
12 |
}
|
13 |
|
14 |
-
|
15 |
-
jQuery('.pirate_forms ').each(function(){
|
16 |
-
jQuery(this).find('.pirate_forms_three_inputs').wrapAll('<div class="pirate_forms_three_inputs_wrap">');
|
17 |
-
});
|
18 |
-
}
|
19 |
});
|
11 |
}, 'slow');
|
12 |
}
|
13 |
|
14 |
+
|
|
|
|
|
|
|
|
|
15 |
});
|
public/partials/pirateforms-form.php
CHANGED
@@ -13,62 +13,17 @@
|
|
13 |
*/
|
14 |
?>
|
15 |
|
16 |
-
<?php
|
17 |
-
if ( ! empty( $this->thank_you_message ) ) :
|
18 |
-
?>
|
19 |
-
<div class="col-sm-12 col-lg-12 pirate_forms_thankyou_wrap">
|
20 |
-
<p><?php echo $this->thank_you_message; ?></p>
|
21 |
-
</div>
|
22 |
-
<?php endif; ?>
|
23 |
|
24 |
<div class="pirate_forms_wrap">
|
25 |
-
<?php
|
26 |
-
$output = '';
|
27 |
-
if ( ! empty( $this->errors ) ) :
|
28 |
-
$output .= '<div class="col-sm-12 col-lg-12 pirate_forms_error_box">';
|
29 |
-
$output .= '<p>' . __( 'Sorry, an error occured.', 'pirate-forms' ) . '</p>';
|
30 |
-
$output .= '</div>';
|
31 |
-
foreach ( $this->errors as $err ) :
|
32 |
-
$output .= '<div class="col-sm-12 col-lg-12 pirate_forms_error_box">';
|
33 |
-
$output .= "<p>$err</p>";
|
34 |
-
$output .= '</div>';
|
35 |
-
endforeach;
|
36 |
-
|
37 |
-
endif;
|
38 |
-
|
39 |
-
echo $output;
|
40 |
-
?>
|
41 |
|
42 |
<?php echo $this->form_start; ?>
|
43 |
|
44 |
-
|
45 |
-
<?php if ( isset( $this->contact_name ) ) { ?>
|
46 |
-
<?php echo $this->contact_name; ?>
|
47 |
-
<?php } ?>
|
48 |
-
|
49 |
-
<?php if ( isset( $this->contact_email ) ) { ?>
|
50 |
-
<?php echo $this->contact_email; ?>
|
51 |
-
<?php } ?>
|
52 |
-
|
53 |
-
<?php if ( isset( $this->contact_subject ) ) { ?>
|
54 |
-
<?php echo $this->contact_subject; ?>
|
55 |
-
<?php } ?>
|
56 |
-
</div>
|
57 |
-
|
58 |
-
<?php if ( isset( $this->contact_message ) ) { ?>
|
59 |
-
<?php echo $this->contact_message; ?>
|
60 |
-
<?php } ?>
|
61 |
-
|
62 |
-
<?php if ( isset( $this->attachment ) ) { ?>
|
63 |
-
<?php echo $this->attachment; ?>
|
64 |
-
<?php } ?>
|
65 |
-
|
66 |
-
<?php if ( isset( $this->captcha ) ) { ?>
|
67 |
-
<?php echo $this->captcha; ?>
|
68 |
-
<?php } ?>
|
69 |
-
|
70 |
-
<?php echo $this->contact_submit; ?>
|
71 |
|
72 |
<?php echo $this->form_end; ?>
|
73 |
<div class="pirate_forms_clearfix"></div>
|
74 |
</div>
|
|
|
|
13 |
*/
|
14 |
?>
|
15 |
|
16 |
+
<?php do_action( 'pirate_forms_render_thankyou', $this ); ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
17 |
|
18 |
<div class="pirate_forms_wrap">
|
19 |
+
<?php do_action( 'pirate_forms_render_errors', $this ); ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
|
21 |
<?php echo $this->form_start; ?>
|
22 |
|
23 |
+
<?php do_action( 'pirate_forms_render_fields', $this ); ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
|
25 |
<?php echo $this->form_end; ?>
|
26 |
<div class="pirate_forms_clearfix"></div>
|
27 |
</div>
|
28 |
+
|
29 |
+
<?php do_action( 'pirate_forms_render_footer', $this ); ?>
|
readme.txt
CHANGED
@@ -18,6 +18,7 @@ This is an easy-to-use WordPress contact form with captcha plugin. To create a c
|
|
18 |
>
|
19 |
> * Create multiple forms
|
20 |
> * Mailchimp Integration
|
|
|
21 |
> * Developer friendly
|
22 |
> * 12 months Support & Updates
|
23 |
> * 30 days Money Back Guaranteed
|
@@ -60,6 +61,9 @@ This is not a form maker or drag & drop builder plugin nor "the best contact for
|
|
60 |
* [Use multiple forms on same page](https://demo.themeisle.com/pirate-forms/multiple-forms-page/)
|
61 |
* [Minimalistic form](https://demo.themeisle.com/pirate-forms/minimalistic-form/)
|
62 |
* [Form with attachment](https://demo.themeisle.com/pirate-forms/form-with-attachment/)
|
|
|
|
|
|
|
63 |
|
64 |
|
65 |
|
@@ -130,6 +134,12 @@ Activating the Pirate Contact Form plugin is just like any other plugin. If you'
|
|
130 |
4. Screenshot 4. Enabling SMTP
|
131 |
|
132 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
133 |
= 2.0.4 - 2017-08-14 =
|
134 |
|
135 |
* All fields are now optional.
|
18 |
>
|
19 |
> * Create multiple forms
|
20 |
> * Mailchimp Integration
|
21 |
+
> * Custom fields
|
22 |
> * Developer friendly
|
23 |
> * 12 months Support & Updates
|
24 |
> * 30 days Money Back Guaranteed
|
61 |
* [Use multiple forms on same page](https://demo.themeisle.com/pirate-forms/multiple-forms-page/)
|
62 |
* [Minimalistic form](https://demo.themeisle.com/pirate-forms/minimalistic-form/)
|
63 |
* [Form with attachment](https://demo.themeisle.com/pirate-forms/form-with-attachment/)
|
64 |
+
* [Subscription form](https://demo.themeisle.com/pirate-forms/subscription-form/)
|
65 |
+
* [Complex support form](https://demo.themeisle.com/pirate-forms/support-form/)
|
66 |
+
* [Telephone field form](https://demo.themeisle.com/pirate-forms/phone-number-form/)
|
67 |
|
68 |
|
69 |
|
134 |
4. Screenshot 4. Enabling SMTP
|
135 |
|
136 |
== Changelog ==
|
137 |
+
= 2.0.5 - 2017-08-16 =
|
138 |
+
|
139 |
+
* Fixed compatibility with the pro version for multiple fields.
|
140 |
+
* Fixed default consistency between forms.
|
141 |
+
|
142 |
+
|
143 |
= 2.0.4 - 2017-08-14 =
|
144 |
|
145 |
* All fields are now optional.
|
vendor/autoload.php
CHANGED
@@ -4,4 +4,4 @@
|
|
4 |
|
5 |
require_once __DIR__ . '/composer' . '/autoload_real.php';
|
6 |
|
7 |
-
return
|
4 |
|
5 |
require_once __DIR__ . '/composer' . '/autoload_real.php';
|
6 |
|
7 |
+
return ComposerAutoloaderInita335211086c2f06f359bc403030d5102::getLoader();
|
vendor/autoload_52.php
CHANGED
@@ -4,4 +4,4 @@
|
|
4 |
|
5 |
require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
|
6 |
|
7 |
-
return
|
4 |
|
5 |
require_once dirname(__FILE__) . '/composer'.'/autoload_real_52.php';
|
6 |
|
7 |
+
return ComposerAutoloaderInit065b709dff92c3a8af66aa4d36bda067::getLoader();
|
vendor/composer/autoload_real.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
-
class
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
@@ -19,9 +19,9 @@ class ComposerAutoloaderInitc82fb3d4309edfd8ea523799ad4e4047
|
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
-
spl_autoload_register(array('
|
23 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
24 |
-
spl_autoload_unregister(array('
|
25 |
|
26 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
27 |
foreach ($map as $namespace => $path) {
|
@@ -42,14 +42,14 @@ class ComposerAutoloaderInitc82fb3d4309edfd8ea523799ad4e4047
|
|
42 |
|
43 |
$includeFiles = require __DIR__ . '/autoload_files.php';
|
44 |
foreach ($includeFiles as $fileIdentifier => $file) {
|
45 |
-
|
46 |
}
|
47 |
|
48 |
return $loader;
|
49 |
}
|
50 |
}
|
51 |
|
52 |
-
function
|
53 |
{
|
54 |
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
55 |
require $file;
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
+
class ComposerAutoloaderInita335211086c2f06f359bc403030d5102
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
+
spl_autoload_register(array('ComposerAutoloaderInita335211086c2f06f359bc403030d5102', 'loadClassLoader'), true, true);
|
23 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
24 |
+
spl_autoload_unregister(array('ComposerAutoloaderInita335211086c2f06f359bc403030d5102', 'loadClassLoader'));
|
25 |
|
26 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
27 |
foreach ($map as $namespace => $path) {
|
42 |
|
43 |
$includeFiles = require __DIR__ . '/autoload_files.php';
|
44 |
foreach ($includeFiles as $fileIdentifier => $file) {
|
45 |
+
composerRequirea335211086c2f06f359bc403030d5102($fileIdentifier, $file);
|
46 |
}
|
47 |
|
48 |
return $loader;
|
49 |
}
|
50 |
}
|
51 |
|
52 |
+
function composerRequirea335211086c2f06f359bc403030d5102($fileIdentifier, $file)
|
53 |
{
|
54 |
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
55 |
require $file;
|
vendor/composer/autoload_real_52.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
// autoload_real_52.php generated by xrstf/composer-php52
|
4 |
|
5 |
-
class
|
6 |
private static $loader;
|
7 |
|
8 |
public static function loadClassLoader($class) {
|
@@ -19,9 +19,9 @@ class ComposerAutoloaderInit6e188c71a42c36997d2c289096f78e62 {
|
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
-
spl_autoload_register(array('
|
23 |
self::$loader = $loader = new xrstf_Composer52_ClassLoader();
|
24 |
-
spl_autoload_unregister(array('
|
25 |
|
26 |
$vendorDir = dirname(dirname(__FILE__));
|
27 |
$baseDir = dirname($vendorDir);
|
2 |
|
3 |
// autoload_real_52.php generated by xrstf/composer-php52
|
4 |
|
5 |
+
class ComposerAutoloaderInit065b709dff92c3a8af66aa4d36bda067 {
|
6 |
private static $loader;
|
7 |
|
8 |
public static function loadClassLoader($class) {
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
+
spl_autoload_register(array('ComposerAutoloaderInit065b709dff92c3a8af66aa4d36bda067', 'loadClassLoader'), true /*, true */);
|
23 |
self::$loader = $loader = new xrstf_Composer52_ClassLoader();
|
24 |
+
spl_autoload_unregister(array('ComposerAutoloaderInit065b709dff92c3a8af66aa4d36bda067', 'loadClassLoader'));
|
25 |
|
26 |
$vendorDir = dirname(dirname(__FILE__));
|
27 |
$baseDir = dirname($vendorDir);
|
vendor/composer/installed.json
CHANGED
@@ -38,7 +38,7 @@
|
|
38 |
"version_normalized": "9999999-dev",
|
39 |
"source": {
|
40 |
"type": "git",
|
41 |
-
"url": "
|
42 |
"reference": "f05bd8f0fe4d628424484e2bdd6d20ee65f454ee"
|
43 |
},
|
44 |
"dist": {
|
@@ -71,8 +71,7 @@
|
|
71 |
"wordpress"
|
72 |
],
|
73 |
"support": {
|
74 |
-
"issues": "https://github.com/Codeinwp/themeisle-sdk/issues"
|
75 |
-
"source": "https://github.com/Codeinwp/themeisle-sdk/tree/master"
|
76 |
}
|
77 |
}
|
78 |
]
|
38 |
"version_normalized": "9999999-dev",
|
39 |
"source": {
|
40 |
"type": "git",
|
41 |
+
"url": "git@github.com:Codeinwp/themeisle-sdk.git",
|
42 |
"reference": "f05bd8f0fe4d628424484e2bdd6d20ee65f454ee"
|
43 |
},
|
44 |
"dist": {
|
71 |
"wordpress"
|
72 |
],
|
73 |
"support": {
|
74 |
+
"issues": "https://github.com/Codeinwp/themeisle-sdk/issues"
|
|
|
75 |
}
|
76 |
}
|
77 |
]
|