Version Description
- Added: Form notification message setting
- Added: Additional Smart Tags available inside Form Settings panels
- Added: Process Smart Tags inside form confirmation messages and URLs
- Added: Hide WPForms Preview page from WordPress dashboard
- Added: System Details tab to WPForms Settings, to display debug information, etc
- Changed: Many form builder javascript improvements
- Changed: Improved internal logging and debugging tools
- Fixed: Large forms not always saving because of max_input_vars PHP setting
Download this release
Release Info
Developer | jaredatch |
Plugin | Contact Form by WPForms – Drag & Drop Form Builder for WordPress |
Version | 1.2.3 |
Comparing to | |
See all releases |
Code changes from version 1.2.2.2 to 1.2.3
- assets/css/admin-builder-settings.css +31 -1
- assets/css/admin-builder.css +20 -0
- assets/css/admin-settings.css +18 -0
- assets/css/wpforms-full.css +1 -0
- assets/js/admin-builder.js +144 -20
- assets/js/admin-utils.js +21 -1
- assets/js/wpforms.js +11 -2
- includes/admin/ajax-actions.php +32 -1
- includes/admin/builder/class-builder.php +12 -5
- includes/admin/builder/functions.php +19 -11
- includes/admin/builder/panels/class-settings.php +88 -88
- includes/class-form.php +2 -6
- includes/class-frontend.php +2 -1
- includes/class-logging.php +2 -2
- includes/class-preview.php +21 -0
- includes/class-process.php +86 -36
- includes/class-smart-tags.php +12 -3
- includes/emails/class-emails.php +24 -28
- includes/emails/templates/default.php +1 -1
- includes/emails/templates/header-default.php +1 -1
- includes/functions.php +91 -8
- includes/templates/class-contact.php +6 -2
- includes/templates/class-suggestion.php +6 -2
- languages/wpforms.pot +317 -244
- lite/includes/admin/class-settings.php +199 -0
- lite/wpforms-lite.php +173 -8
- readme.txt +10 -0
- wpforms.php +5 -4
assets/css/admin-builder-settings.css
CHANGED
@@ -7,4 +7,34 @@
|
|
7 |
|
8 |
#wpforms-panel-settings .wpforms-panel-sidebar {
|
9 |
/**/
|
10 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
|
8 |
#wpforms-panel-settings .wpforms-panel-sidebar {
|
9 |
/**/
|
10 |
+
}
|
11 |
+
|
12 |
+
#wpforms-panel-settings .wpforms-panel-content .wpforms-notification {
|
13 |
+
border: 1px solid #d3d3d3;
|
14 |
+
margin: 0 0 20px 0;
|
15 |
+
}
|
16 |
+
|
17 |
+
#wpforms-panel-settings .wpforms-panel-content .wpforms-notification-header {
|
18 |
+
background-color: #f1f1f1;
|
19 |
+
padding: 10px 20px;
|
20 |
+
font-size: 16px;
|
21 |
+
margin: 0 0 20px 0;
|
22 |
+
}
|
23 |
+
|
24 |
+
#wpforms-panel-settings .wpforms-panel-content .wpforms-notification-delete {
|
25 |
+
background-color: transparent;
|
26 |
+
color: #fff;
|
27 |
+
cursor: pointer;
|
28 |
+
-webkit-appearance: none;
|
29 |
+
border: none;
|
30 |
+
font-size: 16px;
|
31 |
+
color: #d22222;
|
32 |
+
line-height: 1;
|
33 |
+
margin-top: -2px;
|
34 |
+
float: right;
|
35 |
+
}
|
36 |
+
|
37 |
+
|
38 |
+
#wpforms-panel-settings .wpforms-panel-content .wpforms-notification .wpforms-panel-field {
|
39 |
+
padding: 0 20px;
|
40 |
+
}
|
assets/css/admin-builder.css
CHANGED
@@ -481,6 +481,12 @@ body {
|
|
481 |
font-size: 14px;
|
482 |
}
|
483 |
|
|
|
|
|
|
|
|
|
|
|
|
|
484 |
#wpforms-builder .wpforms-panel-sidebar-section {
|
485 |
color: #444;
|
486 |
display: block;
|
@@ -545,6 +551,20 @@ body {
|
|
545 |
border-bottom: 1px solid #d3d3d3;
|
546 |
}
|
547 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
548 |
#wpforms-builder .wpforms-panel-content-section-default {
|
549 |
background: url(../images/builder-default-arrow.png) no-repeat;
|
550 |
background-size: 148px 140px;
|
481 |
font-size: 14px;
|
482 |
}
|
483 |
|
484 |
+
#wpforms-builder .wpforms-panel-field p.note{
|
485 |
+
margin: 8px 0 0;
|
486 |
+
font-size: 12px;
|
487 |
+
color: #666;
|
488 |
+
}
|
489 |
+
|
490 |
#wpforms-builder .wpforms-panel-sidebar-section {
|
491 |
color: #444;
|
492 |
display: block;
|
551 |
border-bottom: 1px solid #d3d3d3;
|
552 |
}
|
553 |
|
554 |
+
#wpforms-builder .wpforms-panel-content-section-title button {
|
555 |
+
background-color: #0e6cad;
|
556 |
+
color: #fff;
|
557 |
+
border: none;
|
558 |
+
-webkit-appearance: none;
|
559 |
+
border-radius: 2px;
|
560 |
+
font-size: 14px;
|
561 |
+
font-weight: 500;
|
562 |
+
float: right;
|
563 |
+
padding: 10px;
|
564 |
+
margin-top: -10px;
|
565 |
+
cursor: pointer;
|
566 |
+
}
|
567 |
+
|
568 |
#wpforms-builder .wpforms-panel-content-section-default {
|
569 |
background: url(../images/builder-default-arrow.png) no-repeat;
|
570 |
background-size: 148px 140px;
|
assets/css/admin-settings.css
CHANGED
@@ -189,4 +189,22 @@
|
|
189 |
|
190 |
.wpforms-settings-provider-accounts-connect p {
|
191 |
margin: 0 0 15px 0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
192 |
}
|
189 |
|
190 |
.wpforms-settings-provider-accounts-connect p {
|
191 |
margin: 0 0 15px 0;
|
192 |
+
}
|
193 |
+
|
194 |
+
/* System Details tab
|
195 |
+
-------------------------------------------------------------- */
|
196 |
+
|
197 |
+
#wpforms-settings-system {
|
198 |
+
padding-top: 20px;
|
199 |
+
}
|
200 |
+
|
201 |
+
#wpforms-settings-system .system-info-textarea {
|
202 |
+
width: 100%;
|
203 |
+
height: 400px;
|
204 |
+
font-family: Menlo,Monaco,monospace;
|
205 |
+
background: #fff;
|
206 |
+
white-space: pre;
|
207 |
+
overflow: auto;
|
208 |
+
display: block;
|
209 |
+
padding: 20px;
|
210 |
}
|
assets/css/wpforms-full.css
CHANGED
@@ -416,6 +416,7 @@ div.wpforms-container-full .wpforms-form .wpforms-page-button {
|
|
416 |
font-weight: 400;
|
417 |
margin: 0 5px;
|
418 |
min-width: 90px;
|
|
|
419 |
}
|
420 |
|
421 |
div.wpforms-container-full .wpforms-form input[type=submit]:hover,
|
416 |
font-weight: 400;
|
417 |
margin: 0 5px;
|
418 |
min-width: 90px;
|
419 |
+
text-align: center;
|
420 |
}
|
421 |
|
422 |
div.wpforms-container-full .wpforms-form input[type=submit]:hover,
|
assets/js/admin-builder.js
CHANGED
@@ -222,7 +222,8 @@
|
|
222 |
} else {
|
223 |
|
224 |
// Show all fields or narrow to specific field types
|
225 |
-
var allowed = $this.data('fields')
|
|
|
226 |
if ( allowed.length ) {
|
227 |
var fields = wpf.getFields(allowed.split(','));
|
228 |
} else {
|
@@ -231,19 +232,30 @@
|
|
231 |
|
232 |
// Create smart tags list
|
233 |
var smartTagList = '<ul class="smart-tags-list-display">';
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
|
|
|
|
|
|
|
|
243 |
}
|
244 |
-
smartTagList += '<li><a href="#" data-fieldid="'+fields[key].id+'">'+label+'</a></li>';
|
245 |
}
|
246 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
247 |
smartTagList += '</ul>';
|
248 |
|
249 |
$label.after(smartTagList);
|
@@ -263,19 +275,29 @@
|
|
263 |
|
264 |
var $this = $(el),
|
265 |
$list = $this.closest('.smart-tags-list-display'),
|
266 |
-
$
|
267 |
-
$
|
268 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
269 |
|
270 |
// insert smart tag
|
271 |
-
|
272 |
-
|
|
|
|
|
|
|
|
|
273 |
// remove list, all done!
|
274 |
$list.slideUp(400, function() {
|
275 |
$list.remove();
|
276 |
});
|
277 |
|
278 |
-
$label.find('toggle-smart-tag-display span').text(wpforms_builder.smart_tags_show);
|
279 |
},
|
280 |
|
281 |
/**
|
@@ -1377,6 +1399,18 @@
|
|
1377 |
$(document).on('change', '#wpforms-panel-field-settings-notification_enable', function(e) {
|
1378 |
WPFormsBuilder.notificationToggle();
|
1379 |
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1380 |
},
|
1381 |
|
1382 |
/**
|
@@ -1434,12 +1468,102 @@
|
|
1434 |
notificationToggle: function() {
|
1435 |
var $notification = $('#wpforms-panel-field-settings-notification_enable');
|
1436 |
if ( $notification.find('option:selected').val() === '0'){
|
1437 |
-
$notification.parent().parent().find('.wpforms-
|
1438 |
} else {
|
1439 |
-
$notification.parent().parent().find('.wpforms-
|
1440 |
}
|
1441 |
},
|
1442 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1443 |
//--------------------------------------------------------------------//
|
1444 |
// Save and Exit
|
1445 |
//--------------------------------------------------------------------//
|
@@ -1500,7 +1624,7 @@
|
|
1500 |
|
1501 |
var data = {
|
1502 |
action: 'wpforms_save_form',
|
1503 |
-
data : $('#wpforms-builder-form').
|
1504 |
id : s.formID,
|
1505 |
nonce : wpforms_builder.nonce
|
1506 |
}
|
222 |
} else {
|
223 |
|
224 |
// Show all fields or narrow to specific field types
|
225 |
+
var allowed = $this.data('fields'),
|
226 |
+
type = $this.data('type');
|
227 |
if ( allowed.length ) {
|
228 |
var fields = wpf.getFields(allowed.split(','));
|
229 |
} else {
|
232 |
|
233 |
// Create smart tags list
|
234 |
var smartTagList = '<ul class="smart-tags-list-display">';
|
235 |
+
|
236 |
+
if (type === 'fields' || type === 'all') {
|
237 |
+
if (!fields) {
|
238 |
+
smartTagList += '<li class="heading">'+wpforms_builder.fields_unavailable+'</li>';
|
239 |
+
} else {
|
240 |
+
smartTagList += '<li class="heading">'+wpforms_builder.fields_available+'</li>';
|
241 |
+
for(var key in fields) {
|
242 |
+
if (fields[key].label) {
|
243 |
+
var label = wpf.sanitizeString(fields[key].label);
|
244 |
+
} else {
|
245 |
+
var label = wpforms_builder.field+' #'+fields[key].id;
|
246 |
+
}
|
247 |
+
smartTagList += '<li><a href="#" data-type="field" data-meta=\'' + fields[key].id + '\'>'+label+'</a></li>';
|
248 |
}
|
|
|
249 |
}
|
250 |
}
|
251 |
+
|
252 |
+
if (type === 'other' || type === 'all') {
|
253 |
+
smartTagList += '<li class="heading">'+wpforms_builder.other+'</li>';
|
254 |
+
for(var key in wpforms_builder.smart_tags) {
|
255 |
+
smartTagList += '<li><a href="#" data-type="other" data-meta=\'' + key+ '\'>'+wpforms_builder.smart_tags[key]+'</a></li>';
|
256 |
+
}
|
257 |
+
}
|
258 |
+
|
259 |
smartTagList += '</ul>';
|
260 |
|
261 |
$label.after(smartTagList);
|
275 |
|
276 |
var $this = $(el),
|
277 |
$list = $this.closest('.smart-tags-list-display'),
|
278 |
+
$parent = $list.parent(),
|
279 |
+
$label = $parent.find('label'),
|
280 |
+
$input = $parent.find('input[type=text]'),
|
281 |
+
meta = $this.data('meta'),
|
282 |
+
type = $this.data('type');
|
283 |
+
|
284 |
+
if ( ! $input.length ) {
|
285 |
+
$input = $parent.find('textarea');
|
286 |
+
}
|
287 |
|
288 |
// insert smart tag
|
289 |
+
if ( type === 'field' ) {
|
290 |
+
$input.insertAtCaret('{field_id="'+meta+'"}');
|
291 |
+
} else {
|
292 |
+
$input.insertAtCaret('{'+meta+'}');
|
293 |
+
}
|
294 |
+
|
295 |
// remove list, all done!
|
296 |
$list.slideUp(400, function() {
|
297 |
$list.remove();
|
298 |
});
|
299 |
|
300 |
+
$label.find('.toggle-smart-tag-display span').text(wpforms_builder.smart_tags_show);
|
301 |
},
|
302 |
|
303 |
/**
|
1399 |
$(document).on('change', '#wpforms-panel-field-settings-notification_enable', function(e) {
|
1400 |
WPFormsBuilder.notificationToggle();
|
1401 |
});
|
1402 |
+
|
1403 |
+
// Add New notification settings block
|
1404 |
+
$(document).on('click', '.wpforms-notifications-add', function(e) {
|
1405 |
+
e.preventDefault();
|
1406 |
+
WPFormsBuilder.notificationAdd();
|
1407 |
+
});
|
1408 |
+
|
1409 |
+
// Add New notification settings block
|
1410 |
+
$(document).on('click', '.wpforms-notification-delete', function(e) {
|
1411 |
+
e.preventDefault();
|
1412 |
+
WPFormsBuilder.notificationDelete($(this));
|
1413 |
+
});
|
1414 |
},
|
1415 |
|
1416 |
/**
|
1468 |
notificationToggle: function() {
|
1469 |
var $notification = $('#wpforms-panel-field-settings-notification_enable');
|
1470 |
if ( $notification.find('option:selected').val() === '0'){
|
1471 |
+
$notification.parent().parent().find('.wpforms-notification').hide();
|
1472 |
} else {
|
1473 |
+
$notification.parent().parent().find('.wpforms-notification').show();
|
1474 |
}
|
1475 |
},
|
1476 |
|
1477 |
+
/**
|
1478 |
+
* Add new notification.
|
1479 |
+
*
|
1480 |
+
* @since 1.2.3
|
1481 |
+
*/
|
1482 |
+
notificationAdd: function() {
|
1483 |
+
|
1484 |
+
var nextID = Number($('.wpforms-notifications-add').attr('data-next_id'));
|
1485 |
+
namePrompt = wpforms_builder.notification_prompt,
|
1486 |
+
nameField = '<input autofocus="" type="text" id="notification-name" placeholder="'+wpforms_builder.notification_ph+'">',
|
1487 |
+
nameError = '<p class="error">'+wpforms_builder.notification_error+'</p>',
|
1488 |
+
modalContent = namePrompt+nameField+nameError;
|
1489 |
+
|
1490 |
+
$.confirm({
|
1491 |
+
title: false,
|
1492 |
+
content: modalContent,
|
1493 |
+
confirm: function () {
|
1494 |
+
var input = this.$b.find('input#notification-name'),
|
1495 |
+
error = this.$b.find('.error');
|
1496 |
+
if (input.val() == '') {
|
1497 |
+
error.show();
|
1498 |
+
return false;
|
1499 |
+
} else {
|
1500 |
+
var $firstNotification = $('.wpforms-notification').first(),
|
1501 |
+
$newNotification = $firstNotification.clone();
|
1502 |
+
|
1503 |
+
$newNotification.find('.wpforms-notification-header span').text(input.val());
|
1504 |
+
$newNotification.find('input, textarea, select').each(function(index, el) {
|
1505 |
+
if ($(this).attr('name')) {
|
1506 |
+
$(this).val('').attr('name', $(this).attr('name').replace(/\[(\d+)\]/, '['+nextID+']'));
|
1507 |
+
if ($(this).is('select')) {
|
1508 |
+
$(this).find('option:first').prop('selected',true);
|
1509 |
+
} else if ( $(this).attr('type') === 'checkbox') {
|
1510 |
+
$(this).prop('checked', false).val('1');
|
1511 |
+
} else {
|
1512 |
+
$(this).val('');
|
1513 |
+
}
|
1514 |
+
}
|
1515 |
+
});
|
1516 |
+
$newNotification.find('.wpforms-notification-header input').val(input.val());
|
1517 |
+
$newNotification.find('.email-msg textarea').val('{all_fields}');
|
1518 |
+
$newNotification.find('.email-recipient input').val('{admin_email}');
|
1519 |
+
// Conditional logic, if present
|
1520 |
+
var $conditionalLogic = $newNotification.find('.wpforms-conditional-block');
|
1521 |
+
if ($conditionalLogic.length) {
|
1522 |
+
$conditionalLogic.find('.wpforms-conditional-group').not(':first').remove();
|
1523 |
+
$conditionalLogic.find('.wpforms-conditional-row').not(':first').remove();
|
1524 |
+
$conditionalLogic.find('.wpforms-conditional-row').attr('data-input-name', 'settings[notifications]['+nextID+']');
|
1525 |
+
$conditionalLogic.find('.wpforms-conditional-field').attr('data-groupid', '0').attr('data-ruleid', '0');
|
1526 |
+
$conditionalLogic.find('.wpforms-conditional-row select').each(function(index, el) {
|
1527 |
+
if ($(this).attr('name')) {
|
1528 |
+
$(this).attr('name', $(this).attr('name').replace(/\[(\d+)\]\[(\d+)\]/, '[0][0]'));
|
1529 |
+
}
|
1530 |
+
});
|
1531 |
+
$conditionalLogic.find('.wpforms-conditional-row').find('.value').empty().append('<select>');
|
1532 |
+
$conditionalLogic.find('.wpforms-conditional-groups').hide();
|
1533 |
+
}
|
1534 |
+
$firstNotification.before( $newNotification );
|
1535 |
+
$('.wpforms-notifications-add').attr('data-next_id', nextID+1);
|
1536 |
+
}
|
1537 |
+
}
|
1538 |
+
});
|
1539 |
+
},
|
1540 |
+
|
1541 |
+
/**
|
1542 |
+
* Delete notification.
|
1543 |
+
*
|
1544 |
+
* @since 1.2.3
|
1545 |
+
*/
|
1546 |
+
notificationDelete: function(el) {
|
1547 |
+
|
1548 |
+
var $this = $(el);
|
1549 |
+
|
1550 |
+
$.confirm({
|
1551 |
+
title: false,
|
1552 |
+
content: wpforms_builder.notification_delete,
|
1553 |
+
confirm: function () {
|
1554 |
+
var notifications = $('.wpforms-notification');
|
1555 |
+
if ( notifications.length <= 1 ) {
|
1556 |
+
$.alert({
|
1557 |
+
title: false,
|
1558 |
+
content: wpforms_builder.notification_error2
|
1559 |
+
});
|
1560 |
+
} else {
|
1561 |
+
$this.closest('.wpforms-notification').remove();
|
1562 |
+
}
|
1563 |
+
}
|
1564 |
+
});
|
1565 |
+
},
|
1566 |
+
|
1567 |
//--------------------------------------------------------------------//
|
1568 |
// Save and Exit
|
1569 |
//--------------------------------------------------------------------//
|
1624 |
|
1625 |
var data = {
|
1626 |
action: 'wpforms_save_form',
|
1627 |
+
data : JSON.stringify($('#wpforms-builder-form').serializeArray()),
|
1628 |
id : s.formID,
|
1629 |
nonce : wpforms_builder.nonce
|
1630 |
}
|
assets/js/admin-utils.js
CHANGED
@@ -93,8 +93,19 @@ var wpf = {
|
|
93 |
}
|
94 |
});
|
95 |
|
96 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
97 |
|
|
|
98 |
for(var key in fieldOrder) {
|
99 |
fieldsOrdered['field_'+fieldOrder[key]] = fields[fieldOrder[key]];
|
100 |
}
|
@@ -190,6 +201,15 @@ var wpf = {
|
|
190 |
|
191 |
var match = RegExp('[?&]' + name + '=([^&]*)').exec(window.location.search);
|
192 |
return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
193 |
}
|
194 |
}
|
195 |
wpf.init();
|
93 |
}
|
94 |
});
|
95 |
|
96 |
+
// Preserve the order of field choices
|
97 |
+
for(var key in fields) {
|
98 |
+
if (fields[key].choices) {
|
99 |
+
jQuery('#wpforms-field-option-row-'+fields[key].id+'-choices li').each(function(index, ele) {
|
100 |
+
var choiceKey = jQuery(ele).data('key');
|
101 |
+
fields[key].choices['choice_'+choiceKey] = fields[key].choices[choiceKey];
|
102 |
+
fields[key].choices['choice_'+choiceKey].key = choiceKey;
|
103 |
+
delete fields[key].choices[choiceKey];
|
104 |
+
});
|
105 |
+
}
|
106 |
+
}
|
107 |
|
108 |
+
// Preserve the order of fields
|
109 |
for(var key in fieldOrder) {
|
110 |
fieldsOrdered['field_'+fieldOrder[key]] = fields[fieldOrder[key]];
|
111 |
}
|
201 |
|
202 |
var match = RegExp('[?&]' + name + '=([^&]*)').exec(window.location.search);
|
203 |
return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
|
204 |
+
},
|
205 |
+
|
206 |
+
/**
|
207 |
+
* Is number?
|
208 |
+
*
|
209 |
+
* @since 1.2.3
|
210 |
+
*/
|
211 |
+
isNumber: function(n) {
|
212 |
+
return !isNaN(parseFloat(n)) && isFinite(n);
|
213 |
}
|
214 |
}
|
215 |
wpf.init();
|
assets/js/wpforms.js
CHANGED
@@ -156,7 +156,7 @@
|
|
156 |
|
157 |
var $this = $(this),
|
158 |
valid = true,
|
159 |
-
action = $
|
160 |
page = $this.data('page'),
|
161 |
page2 = page;
|
162 |
next = page+1,
|
@@ -170,7 +170,7 @@
|
|
170 |
// Toggling between pages
|
171 |
if ( action == 'next' ){
|
172 |
// Validate
|
173 |
-
if(typeof $.fn.validate !== 'undefined') {
|
174 |
$page.find('input.wpforms-field-required, select.wpforms-field-required, textarea.wpforms-field-required, .wpforms-field-required input').each(function(index, el) {
|
175 |
var field = $(el);
|
176 |
if ( field.valid() ) {
|
@@ -178,6 +178,15 @@
|
|
178 |
valid = false;
|
179 |
}
|
180 |
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
181 |
}
|
182 |
// Move to next page
|
183 |
if (valid) {
|
156 |
|
157 |
var $this = $(this),
|
158 |
valid = true,
|
159 |
+
action = $this.data('action'),
|
160 |
page = $this.data('page'),
|
161 |
page2 = page;
|
162 |
next = page+1,
|
170 |
// Toggling between pages
|
171 |
if ( action == 'next' ){
|
172 |
// Validate
|
173 |
+
if (typeof $.fn.validate !== 'undefined') {
|
174 |
$page.find('input.wpforms-field-required, select.wpforms-field-required, textarea.wpforms-field-required, .wpforms-field-required input').each(function(index, el) {
|
175 |
var field = $(el);
|
176 |
if ( field.valid() ) {
|
178 |
valid = false;
|
179 |
}
|
180 |
});
|
181 |
+
// Scroll to first/top error on page
|
182 |
+
var $topError = $page.find('.wpforms-error').first();
|
183 |
+
if ($topError.length) {
|
184 |
+
$('html, body').animate({
|
185 |
+
scrollTop: $topError.offset().top-75
|
186 |
+
}, 750, function() {
|
187 |
+
$topError.focus();
|
188 |
+
});
|
189 |
+
}
|
190 |
}
|
191 |
// Move to next page
|
192 |
if (valid) {
|
includes/admin/ajax-actions.php
CHANGED
@@ -28,9 +28,40 @@ function wpforms_save_form() {
|
|
28 |
if ( empty( $_POST['data'] ) )
|
29 |
die( __( 'No data provided', 'wpforms' ) );
|
30 |
|
31 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32 |
$form_id = wpforms()->form->update( $data['id'], $data );
|
33 |
|
|
|
|
|
34 |
if ( ! $form_id ) {
|
35 |
die( __( 'An error occured and the form could not be saved', 'wpforms' ) );
|
36 |
} else {
|
28 |
if ( empty( $_POST['data'] ) )
|
29 |
die( __( 'No data provided', 'wpforms' ) );
|
30 |
|
31 |
+
$form_post = json_decode( stripslashes( $_POST['data'] ) );
|
32 |
+
$data = array();
|
33 |
+
|
34 |
+
if ( ! is_null( $form_post ) && $form_post ) {
|
35 |
+
foreach ( $form_post as $post_input_data ) {
|
36 |
+
// For input names that are arrays (e.g. `menu-item-db-id[3][4][5]`),
|
37 |
+
// derive the array path keys via regex and set the value in $_POST.
|
38 |
+
preg_match( '#([^\[]*)(\[(.+)\])?#', $post_input_data->name, $matches );
|
39 |
+
|
40 |
+
$array_bits = array( $matches[1] );
|
41 |
+
|
42 |
+
if ( isset( $matches[3] ) ) {
|
43 |
+
$array_bits = array_merge( $array_bits, explode( '][', $matches[3] ) );
|
44 |
+
}
|
45 |
+
|
46 |
+
$new_post_data = array();
|
47 |
+
|
48 |
+
// Build the new array value from leaf to trunk.
|
49 |
+
for ( $i = count( $array_bits ) - 1; $i >= 0; $i -- ) {
|
50 |
+
if ( $i == count( $array_bits ) - 1 ) {
|
51 |
+
$new_post_data[ $array_bits[ $i ] ] = wp_slash( $post_input_data->value );
|
52 |
+
} else {
|
53 |
+
$new_post_data = array( $array_bits[ $i ] => $new_post_data );
|
54 |
+
}
|
55 |
+
}
|
56 |
+
|
57 |
+
$data = array_replace_recursive( $data, $new_post_data );
|
58 |
+
}
|
59 |
+
}
|
60 |
+
|
61 |
$form_id = wpforms()->form->update( $data['id'], $data );
|
62 |
|
63 |
+
do_action( 'wpforms_builder_save_form', $form_id, $data );
|
64 |
+
|
65 |
if ( ! $form_id ) {
|
66 |
die( __( 'An error occured and the form could not be saved', 'wpforms' ) );
|
67 |
} else {
|
includes/admin/builder/class-builder.php
CHANGED
@@ -66,9 +66,6 @@ class WPForms_Builder {
|
|
66 |
// Only load if we are actually on the builder
|
67 |
if ( $page == 'wpforms-builder' ) {
|
68 |
|
69 |
-
// Builder specific functions
|
70 |
-
require_once WPFORMS_PLUGIN_DIR . 'includes/admin/builder/functions.php';
|
71 |
-
|
72 |
// Load form if found
|
73 |
$form_id = isset( $_GET['form_id'] ) ? absint( $_GET['form_id'] ) : false;
|
74 |
|
@@ -154,7 +151,7 @@ class WPForms_Builder {
|
|
154 |
|
155 |
// CSS
|
156 |
wp_enqueue_style(
|
157 |
-
'font-awesome',
|
158 |
WPFORMS_PLUGIN_URL . 'assets/css/font-awesome.min.css',
|
159 |
null,
|
160 |
'4.4.0'
|
@@ -263,13 +260,20 @@ class WPForms_Builder {
|
|
263 |
'cancel' => __( 'Cancel', 'wpforms' ),
|
264 |
'ok' => __( 'OK', 'wpforms' ),
|
265 |
'close' => __( 'Close', 'wpforms' ),
|
|
|
266 |
'field' => __( 'Field', 'wpforms' ),
|
267 |
'field_locked' => __( 'Field Locked', 'wpforms' ),
|
268 |
'field_locked_msg' => __( 'This field cannot be deleted because it required by the form template.', 'wpforms' ),
|
269 |
'fields_available' => __( 'Available Fields', 'wpforms' ),
|
270 |
'fields_unavailable' => __( 'No fields available', 'wpforms' ),
|
|
|
271 |
'nonce' => wp_create_nonce( 'wpforms-builder' ),
|
272 |
'no_email_fields' => __( 'No email fields', 'wpforms' ),
|
|
|
|
|
|
|
|
|
|
|
273 |
'saving' => __( 'Saving ...', 'wpforms' ),
|
274 |
'saved' => __( 'Saved!', 'wpforms' ),
|
275 |
'save_exit' => __( 'Save and Exit', 'wpforms' ),
|
@@ -291,11 +295,14 @@ class WPForms_Builder {
|
|
291 |
'error_choice' => __( 'This item must contain at least one choice.', 'wpforms' ),
|
292 |
'off' => __( 'Off', 'wpforms' ),
|
293 |
'on' => __( 'On', 'wpforms' ),
|
|
|
294 |
'previous' => __( 'Previous', 'wpforms' ),
|
295 |
'saved_state' => '',
|
|
|
296 |
'smart_tags_show' => __( 'Show Smart Tags', 'wpforms' ),
|
297 |
'smart_tags_hide' => __( 'Hide Smart Tags', 'wpforms' ),
|
298 |
-
'select_field' => __( '-- Select
|
|
|
299 |
);
|
300 |
$strings = apply_filters( 'wpforms_builder_strings', $strings, $this->form );
|
301 |
|
66 |
// Only load if we are actually on the builder
|
67 |
if ( $page == 'wpforms-builder' ) {
|
68 |
|
|
|
|
|
|
|
69 |
// Load form if found
|
70 |
$form_id = isset( $_GET['form_id'] ) ? absint( $_GET['form_id'] ) : false;
|
71 |
|
151 |
|
152 |
// CSS
|
153 |
wp_enqueue_style(
|
154 |
+
'wpforms-font-awesome',
|
155 |
WPFORMS_PLUGIN_URL . 'assets/css/font-awesome.min.css',
|
156 |
null,
|
157 |
'4.4.0'
|
260 |
'cancel' => __( 'Cancel', 'wpforms' ),
|
261 |
'ok' => __( 'OK', 'wpforms' ),
|
262 |
'close' => __( 'Close', 'wpforms' ),
|
263 |
+
'conditionals_change' => __( 'Due to form changes, conditional logic rules have been removed or updated:', 'wpforms' ),
|
264 |
'field' => __( 'Field', 'wpforms' ),
|
265 |
'field_locked' => __( 'Field Locked', 'wpforms' ),
|
266 |
'field_locked_msg' => __( 'This field cannot be deleted because it required by the form template.', 'wpforms' ),
|
267 |
'fields_available' => __( 'Available Fields', 'wpforms' ),
|
268 |
'fields_unavailable' => __( 'No fields available', 'wpforms' ),
|
269 |
+
'heads_up' => __( 'Heads up!', 'wpforms' ),
|
270 |
'nonce' => wp_create_nonce( 'wpforms-builder' ),
|
271 |
'no_email_fields' => __( 'No email fields', 'wpforms' ),
|
272 |
+
'notification_delete' => __( 'Are you sure you want to delete this notification?', 'wpforms' ),
|
273 |
+
'notification_prompt' => __( 'Enter a notification name', 'wpforms' ),
|
274 |
+
'notification_ph' => __( 'Eg: User Confirmation', 'wpforms' ),
|
275 |
+
'notification_error' => __( 'You must provide a notification name', 'wpforms' ),
|
276 |
+
'notification_error2' => __( 'Form must contain one notification. To disable all notifications use the setting Notifications dropdown setting.', 'wpforms' ),
|
277 |
'saving' => __( 'Saving ...', 'wpforms' ),
|
278 |
'saved' => __( 'Saved!', 'wpforms' ),
|
279 |
'save_exit' => __( 'Save and Exit', 'wpforms' ),
|
295 |
'error_choice' => __( 'This item must contain at least one choice.', 'wpforms' ),
|
296 |
'off' => __( 'Off', 'wpforms' ),
|
297 |
'on' => __( 'On', 'wpforms' ),
|
298 |
+
'other' => __( 'Other', 'wpforms' ),
|
299 |
'previous' => __( 'Previous', 'wpforms' ),
|
300 |
'saved_state' => '',
|
301 |
+
'smart_tags' => wpforms()->smart_tags->get(),
|
302 |
'smart_tags_show' => __( 'Show Smart Tags', 'wpforms' ),
|
303 |
'smart_tags_hide' => __( 'Hide Smart Tags', 'wpforms' ),
|
304 |
+
'select_field' => __( '-- Select Field --', 'wpforms' ),
|
305 |
+
'select_choice' => __( '-- Select Choice --', 'wpforms' ),
|
306 |
);
|
307 |
$strings = apply_filters( 'wpforms_builder_strings', $strings, $this->form );
|
308 |
|
includes/admin/builder/functions.php
CHANGED
@@ -23,14 +23,16 @@
|
|
23 |
function wpforms_panel_field( $option, $panel, $field, $form_data, $label, $args = array(), $echo = true ) {
|
24 |
|
25 |
// Required params
|
26 |
-
if ( empty( $option ) || empty( $panel ) || empty( $field )
|
27 |
return;
|
28 |
}
|
29 |
|
30 |
// Setup basic vars
|
31 |
$panel = esc_attr( $panel );
|
32 |
$field = esc_attr( $field );
|
|
|
33 |
$parent = !empty( $args['parent'] ) ? esc_attr( $args['parent'] ) : '';
|
|
|
34 |
$label = !empty( $label ) ? esc_html( $label ) : '';
|
35 |
$class = !empty( $args['class'] ) ? esc_attr( $args['class'] ) : '';
|
36 |
$input_class = !empty( $args['input_class'] ) ? esc_attr( $args['input_class'] ) : '';
|
@@ -40,8 +42,14 @@ function wpforms_panel_field( $option, $panel, $field, $form_data, $label, $args
|
|
40 |
|
41 |
// Check if we should store values in a parent array
|
42 |
if ( !empty( $parent ) ) {
|
43 |
-
|
44 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
45 |
} else {
|
46 |
$field_name = sprintf( '%s[%s]', $panel, $field );
|
47 |
$value = isset( $form_data[$panel][$field] ) ? $form_data[$panel][$field] : $default;
|
@@ -63,7 +71,7 @@ function wpforms_panel_field( $option, $panel, $field, $form_data, $label, $args
|
|
63 |
$output = sprintf(
|
64 |
'<input type="%s" id="wpforms-panel-field-%s-%s" name="%s" value="%s" placeholder="%s" class="%s" %s>',
|
65 |
$type,
|
66 |
-
sanitize_html_class( $
|
67 |
sanitize_html_class( $field ),
|
68 |
$field_name,
|
69 |
esc_attr( $value ),
|
@@ -78,7 +86,7 @@ function wpforms_panel_field( $option, $panel, $field, $form_data, $label, $args
|
|
78 |
$rows = !empty( $args['rows'] ) ? (int) $args['rows'] : '3';
|
79 |
$output = sprintf(
|
80 |
'<textarea id="wpforms-panel-field-%s-%s" name="%s" rows="%d" placeholder="%s" class="%s" %s>%s</textarea>',
|
81 |
-
sanitize_html_class( $
|
82 |
sanitize_html_class( $field ),
|
83 |
$field_name,
|
84 |
$rows,
|
@@ -97,7 +105,7 @@ function wpforms_panel_field( $option, $panel, $field, $form_data, $label, $args
|
|
97 |
) );
|
98 |
$args['textarea_name'] = $field_name;
|
99 |
$args['teeny'] = true;
|
100 |
-
$id = 'wpforms-panel-field-' . sanitize_html_class( $
|
101 |
$id = str_replace( '-', '_', $id );
|
102 |
ob_start();
|
103 |
wp_editor( $value, $id , $args );
|
@@ -109,7 +117,7 @@ function wpforms_panel_field( $option, $panel, $field, $form_data, $label, $args
|
|
109 |
$checked = checked( '1', $value, false );
|
110 |
$output = sprintf(
|
111 |
'<input type="checkbox" id="wpforms-panel-field-%s-%s" name="%s" value="1" class="%s" %s %s>',
|
112 |
-
sanitize_html_class( $
|
113 |
sanitize_html_class( $field ),
|
114 |
$field_name,
|
115 |
$input_class,
|
@@ -118,7 +126,7 @@ function wpforms_panel_field( $option, $panel, $field, $form_data, $label, $args
|
|
118 |
);
|
119 |
$output .= sprintf(
|
120 |
'<label for="wpforms-panel-field-%s-%s" class="inline">%s',
|
121 |
-
sanitize_html_class( $
|
122 |
sanitize_html_class( $field ),
|
123 |
$label
|
124 |
);
|
@@ -149,7 +157,7 @@ function wpforms_panel_field( $option, $panel, $field, $form_data, $label, $args
|
|
149 |
|
150 |
$output = sprintf(
|
151 |
'<select id="wpforms-panel-field-%s-%s" name="%s" class="%s" %s>',
|
152 |
-
sanitize_html_class( $
|
153 |
sanitize_html_class( $field ),
|
154 |
$field_name,
|
155 |
$input_class,
|
@@ -169,7 +177,7 @@ function wpforms_panel_field( $option, $panel, $field, $form_data, $label, $args
|
|
169 |
// Put the pieces together....
|
170 |
$field_open = sprintf(
|
171 |
'<div id="wpforms-panel-field-%s-%s-wrap" class="wpforms-panel-field %s %s">',
|
172 |
-
sanitize_html_class( $
|
173 |
sanitize_html_class( $field ),
|
174 |
$class,
|
175 |
'wpforms-panel-field-' . sanitize_html_class( $option )
|
@@ -178,7 +186,7 @@ function wpforms_panel_field( $option, $panel, $field, $form_data, $label, $args
|
|
178 |
if ( 'checkbox' != $option & !empty( $label ) ) {
|
179 |
$field_label = sprintf(
|
180 |
'<label for="wpforms-panel-field-%s-%s">%s',
|
181 |
-
sanitize_html_class( $
|
182 |
sanitize_html_class( $field ),
|
183 |
$label
|
184 |
);
|
23 |
function wpforms_panel_field( $option, $panel, $field, $form_data, $label, $args = array(), $echo = true ) {
|
24 |
|
25 |
// Required params
|
26 |
+
if ( empty( $option ) || empty( $panel ) || empty( $field ) ) {
|
27 |
return;
|
28 |
}
|
29 |
|
30 |
// Setup basic vars
|
31 |
$panel = esc_attr( $panel );
|
32 |
$field = esc_attr( $field );
|
33 |
+
$panel_id = sanitize_html_class( $panel );
|
34 |
$parent = !empty( $args['parent'] ) ? esc_attr( $args['parent'] ) : '';
|
35 |
+
$subsection = !empty( $args['subsection'] ) ? esc_attr( $args['subsection'] ) : '';
|
36 |
$label = !empty( $label ) ? esc_html( $label ) : '';
|
37 |
$class = !empty( $args['class'] ) ? esc_attr( $args['class'] ) : '';
|
38 |
$input_class = !empty( $args['input_class'] ) ? esc_attr( $args['input_class'] ) : '';
|
42 |
|
43 |
// Check if we should store values in a parent array
|
44 |
if ( !empty( $parent ) ) {
|
45 |
+
if ( !empty( $subsection ) ) {
|
46 |
+
$field_name = sprintf( '%s[%s][%s][%s]', $parent, $panel, $subsection, $field );
|
47 |
+
$value = isset( $form_data[$parent][$panel][$subsection][$field] ) ? $form_data[$parent][$panel][$subsection][$field] : $default;
|
48 |
+
$panel_id = sanitize_html_class( $panel . '-' . $subsection );
|
49 |
+
} else {
|
50 |
+
$field_name = sprintf( '%s[%s][%s]', $parent, $panel, $field );
|
51 |
+
$value = isset( $form_data[$parent][$panel][$field] ) ? $form_data[$parent][$panel][$field] : $default;
|
52 |
+
}
|
53 |
} else {
|
54 |
$field_name = sprintf( '%s[%s]', $panel, $field );
|
55 |
$value = isset( $form_data[$panel][$field] ) ? $form_data[$panel][$field] : $default;
|
71 |
$output = sprintf(
|
72 |
'<input type="%s" id="wpforms-panel-field-%s-%s" name="%s" value="%s" placeholder="%s" class="%s" %s>',
|
73 |
$type,
|
74 |
+
sanitize_html_class( $panel_id ),
|
75 |
sanitize_html_class( $field ),
|
76 |
$field_name,
|
77 |
esc_attr( $value ),
|
86 |
$rows = !empty( $args['rows'] ) ? (int) $args['rows'] : '3';
|
87 |
$output = sprintf(
|
88 |
'<textarea id="wpforms-panel-field-%s-%s" name="%s" rows="%d" placeholder="%s" class="%s" %s>%s</textarea>',
|
89 |
+
sanitize_html_class( $panel_id ),
|
90 |
sanitize_html_class( $field ),
|
91 |
$field_name,
|
92 |
$rows,
|
105 |
) );
|
106 |
$args['textarea_name'] = $field_name;
|
107 |
$args['teeny'] = true;
|
108 |
+
$id = 'wpforms-panel-field-' . sanitize_html_class( $panel_id ) . '-' . sanitize_html_class( $field );
|
109 |
$id = str_replace( '-', '_', $id );
|
110 |
ob_start();
|
111 |
wp_editor( $value, $id , $args );
|
117 |
$checked = checked( '1', $value, false );
|
118 |
$output = sprintf(
|
119 |
'<input type="checkbox" id="wpforms-panel-field-%s-%s" name="%s" value="1" class="%s" %s %s>',
|
120 |
+
sanitize_html_class( $panel_id ),
|
121 |
sanitize_html_class( $field ),
|
122 |
$field_name,
|
123 |
$input_class,
|
126 |
);
|
127 |
$output .= sprintf(
|
128 |
'<label for="wpforms-panel-field-%s-%s" class="inline">%s',
|
129 |
+
sanitize_html_class( $panel_id ),
|
130 |
sanitize_html_class( $field ),
|
131 |
$label
|
132 |
);
|
157 |
|
158 |
$output = sprintf(
|
159 |
'<select id="wpforms-panel-field-%s-%s" name="%s" class="%s" %s>',
|
160 |
+
sanitize_html_class( $panel_id ),
|
161 |
sanitize_html_class( $field ),
|
162 |
$field_name,
|
163 |
$input_class,
|
177 |
// Put the pieces together....
|
178 |
$field_open = sprintf(
|
179 |
'<div id="wpforms-panel-field-%s-%s-wrap" class="wpforms-panel-field %s %s">',
|
180 |
+
sanitize_html_class( $panel_id ),
|
181 |
sanitize_html_class( $field ),
|
182 |
$class,
|
183 |
'wpforms-panel-field-' . sanitize_html_class( $option )
|
186 |
if ( 'checkbox' != $option & !empty( $label ) ) {
|
187 |
$field_label = sprintf(
|
188 |
'<label for="wpforms-panel-field-%s-%s">%s',
|
189 |
+
sanitize_html_class( $panel_id ),
|
190 |
sanitize_html_class( $field ),
|
191 |
$label
|
192 |
);
|
includes/admin/builder/panels/class-settings.php
CHANGED
@@ -55,7 +55,7 @@ class WPForms_Builder_Panel_Settings extends WPForms_Builder_Panel {
|
|
55 |
|
56 |
$sections = array(
|
57 |
'general' => __( 'General', 'wpforms' ),
|
58 |
-
'notifications' => __( '
|
59 |
'confirmation' => __( 'Confirmation', 'wpforms' ),
|
60 |
);
|
61 |
$sections = apply_filters( 'wpforms_builder_settings_sections', $sections, $this->form_data );
|
@@ -149,93 +149,93 @@ class WPForms_Builder_Panel_Settings extends WPForms_Builder_Panel {
|
|
149 |
// Notifications
|
150 |
//--------------------------------------------------------------------//
|
151 |
echo '<div class="wpforms-panel-content-section wpforms-panel-content-section-notifications">';
|
152 |
-
echo '<div class="wpforms-panel-content-section-title">';
|
153 |
-
|
154 |
-
echo '</div>';
|
155 |
-
wpforms_panel_field(
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
);
|
169 |
-
wpforms_panel_field(
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
);
|
184 |
-
wpforms_panel_field(
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
);
|
198 |
-
wpforms_panel_field(
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
);
|
212 |
-
wpforms_panel_field(
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
);
|
226 |
-
wpforms_panel_field(
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
235 |
-
|
236 |
-
|
237 |
-
|
238 |
-
);
|
239 |
do_action( 'wpforms_form_settings_notifications', $this );
|
240 |
echo '</div>';
|
241 |
|
55 |
|
56 |
$sections = array(
|
57 |
'general' => __( 'General', 'wpforms' ),
|
58 |
+
'notifications' => __( 'Notifications', 'wpforms' ),
|
59 |
'confirmation' => __( 'Confirmation', 'wpforms' ),
|
60 |
);
|
61 |
$sections = apply_filters( 'wpforms_builder_settings_sections', $sections, $this->form_data );
|
149 |
// Notifications
|
150 |
//--------------------------------------------------------------------//
|
151 |
echo '<div class="wpforms-panel-content-section wpforms-panel-content-section-notifications">';
|
152 |
+
// echo '<div class="wpforms-panel-content-section-title">';
|
153 |
+
// _e( 'Notifications', 'wpforms' );
|
154 |
+
// echo '</div>';
|
155 |
+
// wpforms_panel_field(
|
156 |
+
// 'select',
|
157 |
+
// 'settings',
|
158 |
+
// 'notification_enable',
|
159 |
+
// $this->form_data,
|
160 |
+
// __( 'Notifications', 'wpforms' ),
|
161 |
+
// array(
|
162 |
+
// 'default' => '1',
|
163 |
+
// 'options' => array(
|
164 |
+
// '1' => __( 'On', 'wpforms' ),
|
165 |
+
// '0' => __( 'Off', 'wpforms' ),
|
166 |
+
// ),
|
167 |
+
// )
|
168 |
+
// );
|
169 |
+
// wpforms_panel_field(
|
170 |
+
// 'text',
|
171 |
+
// 'settings',
|
172 |
+
// 'notification_email',
|
173 |
+
// $this->form_data,
|
174 |
+
// __( 'Send To Email Address', 'wpforms' ),
|
175 |
+
// array(
|
176 |
+
// 'default' => '{admin_email}',
|
177 |
+
// 'tooltip' => __( 'Enter the email address to receive form entry notifications. For multiple notifications, seperate email addresses with a comma.', 'wpforms' ),
|
178 |
+
// 'smarttags' => array(
|
179 |
+
// 'type' => 'fields',
|
180 |
+
// 'fields' => 'name,email,text',
|
181 |
+
// ),
|
182 |
+
// )
|
183 |
+
// );
|
184 |
+
// wpforms_panel_field(
|
185 |
+
// 'text',
|
186 |
+
// 'settings',
|
187 |
+
// 'notification_subject',
|
188 |
+
// $this->form_data,
|
189 |
+
// __( 'Email Subject', 'wpforms' ),
|
190 |
+
// array(
|
191 |
+
// 'default' => __( 'New Entry: ' , 'wpforms' ) . $this->form->post_title,
|
192 |
+
// 'smarttags' => array(
|
193 |
+
// 'type' => 'fields',
|
194 |
+
// 'fields' => 'name,email,text',
|
195 |
+
// ),
|
196 |
+
// )
|
197 |
+
// );
|
198 |
+
// wpforms_panel_field(
|
199 |
+
// 'text',
|
200 |
+
// 'settings',
|
201 |
+
// 'notification_fromname',
|
202 |
+
// $this->form_data,
|
203 |
+
// __( 'From Name', 'wpforms' ),
|
204 |
+
// array(
|
205 |
+
// 'default' => sanitize_text_field( get_option( 'blogname' ) ),
|
206 |
+
// 'smarttags' => array(
|
207 |
+
// 'type' => 'fields',
|
208 |
+
// 'fields' => 'name,email,text',
|
209 |
+
// ),
|
210 |
+
// )
|
211 |
+
// );
|
212 |
+
// wpforms_panel_field(
|
213 |
+
// 'text',
|
214 |
+
// 'settings',
|
215 |
+
// 'notification_fromaddress',
|
216 |
+
// $this->form_data,
|
217 |
+
// __( 'From Email', 'wpforms' ),
|
218 |
+
// array(
|
219 |
+
// 'default' => '{admin_email}',
|
220 |
+
// 'smarttags' => array(
|
221 |
+
// 'type' => 'fields',
|
222 |
+
// 'fields' => 'name,email,text',
|
223 |
+
// ),
|
224 |
+
// )
|
225 |
+
// );
|
226 |
+
// wpforms_panel_field(
|
227 |
+
// 'text',
|
228 |
+
// 'settings',
|
229 |
+
// 'notification_replyto',
|
230 |
+
// $this->form_data,
|
231 |
+
// __( 'Reply-To', 'wpforms' ),
|
232 |
+
// array(
|
233 |
+
// 'smarttags' => array(
|
234 |
+
// 'type' => 'fields',
|
235 |
+
// 'fields' => 'name,email,text',
|
236 |
+
// ),
|
237 |
+
// )
|
238 |
+
// );
|
239 |
do_action( 'wpforms_form_settings_notifications', $this );
|
240 |
echo '</div>';
|
241 |
|
includes/class-form.php
CHANGED
@@ -220,6 +220,8 @@ class WPForms_Form_Handler {
|
|
220 |
$form_id = $data['id'];
|
221 |
}
|
222 |
|
|
|
|
|
223 |
if ( !empty( $data['settings']['form_title'] ) ) {
|
224 |
$title = $data['settings']['form_title'];
|
225 |
} else {
|
@@ -234,12 +236,6 @@ class WPForms_Form_Handler {
|
|
234 |
|
235 |
$data['field_id'] = !empty( $data['field_id'] ) ? absint( $data['field_id'] ) : '0';
|
236 |
|
237 |
-
// @todo - This needs testing
|
238 |
-
if ( !empty( $args['merge'] ) ) {
|
239 |
-
$previous = $this->get( $form_id, array( 'content_only' => true ) );
|
240 |
-
$data = wp_parse_args( $data, $previous );
|
241 |
-
}
|
242 |
-
|
243 |
// Perserve form meta.
|
244 |
$meta = $this->get_meta( $form_id );
|
245 |
if ( $meta ) {
|
220 |
$form_id = $data['id'];
|
221 |
}
|
222 |
|
223 |
+
$data = wp_unslash( $data );
|
224 |
+
|
225 |
if ( !empty( $data['settings']['form_title'] ) ) {
|
226 |
$title = $data['settings']['form_title'];
|
227 |
} else {
|
236 |
|
237 |
$data['field_id'] = !empty( $data['field_id'] ) ? absint( $data['field_id'] ) : '0';
|
238 |
|
|
|
|
|
|
|
|
|
|
|
|
|
239 |
// Perserve form meta.
|
240 |
$meta = $this->get_meta( $form_id );
|
241 |
if ( $meta ) {
|
includes/class-frontend.php
CHANGED
@@ -144,7 +144,8 @@ class WPForms_Frontend {
|
|
144 |
// Load confirmatiom specific asssets
|
145 |
$this->assets_confirmation();
|
146 |
|
147 |
-
$message = apply_filters( '
|
|
|
148 |
|
149 |
$class = wpforms_setting( 'disable-css', '1' ) == '1' ? 'wpforms-confirmation-container-full' : 'wpforms-confirmation-container';
|
150 |
|
144 |
// Load confirmatiom specific asssets
|
145 |
$this->assets_confirmation();
|
146 |
|
147 |
+
$message = apply_filters( 'wpforms_process_smart_tags', $form_data['settings']['confirmation_message'], $form_data, $_POST['wpforms']['complete'], $_POST['wpforms']['entry_id'] );
|
148 |
+
$message = apply_filters( 'wpforms_frontend_confirmation_message', $message, $form_data );
|
149 |
|
150 |
$class = wpforms_setting( 'disable-css', '1' ) == '1' ? 'wpforms-confirmation-container-full' : 'wpforms-confirmation-container';
|
151 |
|
includes/class-logging.php
CHANGED
@@ -107,7 +107,7 @@ class WPForms_Logging {
|
|
107 |
* @param string $type Log type (default: null)
|
108 |
* @return int Log ID
|
109 |
*/
|
110 |
-
public function add( $title = '', $message = '', $parent = 0, $type = null ) {
|
111 |
|
112 |
$log_data = array(
|
113 |
'post_title' => $title,
|
@@ -115,7 +115,7 @@ class WPForms_Logging {
|
|
115 |
'post_parent' => $parent,
|
116 |
'log_type' => $type
|
117 |
);
|
118 |
-
return $this->insert_log( $log_data );
|
119 |
}
|
120 |
|
121 |
/**
|
107 |
* @param string $type Log type (default: null)
|
108 |
* @return int Log ID
|
109 |
*/
|
110 |
+
public function add( $title = '', $message = '', $parent = 0, $type = null, $meta = '' ) {
|
111 |
|
112 |
$log_data = array(
|
113 |
'post_title' => $title,
|
115 |
'post_parent' => $parent,
|
116 |
'log_type' => $type
|
117 |
);
|
118 |
+
return $this->insert_log( $log_data, $meta );
|
119 |
}
|
120 |
|
121 |
/**
|
includes/class-preview.php
CHANGED
@@ -19,6 +19,9 @@ class WPForms_Preview {
|
|
19 |
|
20 |
// Maybe load a preview page
|
21 |
add_action( 'init', array( $this, 'init' ) );
|
|
|
|
|
|
|
22 |
}
|
23 |
|
24 |
/**
|
@@ -262,4 +265,22 @@ class WPForms_Preview {
|
|
262 |
|
263 |
return $posts;
|
264 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
265 |
}
|
19 |
|
20 |
// Maybe load a preview page
|
21 |
add_action( 'init', array( $this, 'init' ) );
|
22 |
+
|
23 |
+
// Hide preview page from admin
|
24 |
+
add_action( 'pre_get_posts', array( $this, 'form_preview_hide' ) );
|
25 |
}
|
26 |
|
27 |
/**
|
265 |
|
266 |
return $posts;
|
267 |
}
|
268 |
+
|
269 |
+
/**
|
270 |
+
* Hide the preview page from admin
|
271 |
+
*
|
272 |
+
* @since 1.2.3
|
273 |
+
* @param object $query
|
274 |
+
*/
|
275 |
+
function form_preview_hide( $query ) {
|
276 |
+
|
277 |
+
if( $query->is_main_query() && is_admin() && isset( $query->query_vars['post_type'] ) && 'page' == $query->query_vars['post_type'] ) {
|
278 |
+
$wpforms_preview = intval( get_option( 'wpforms_preview_page' ) );
|
279 |
+
if( $wpforms_preview ) {
|
280 |
+
$exclude = $query->query_vars['post__not_in'];
|
281 |
+
$exclude[] = $wpforms_preview;
|
282 |
+
$query->set( 'post__not_in', $exclude );
|
283 |
+
}
|
284 |
+
}
|
285 |
+
}
|
286 |
}
|
includes/class-process.php
CHANGED
@@ -26,6 +26,14 @@ class WPForms_Process {
|
|
26 |
*/
|
27 |
public $fields;
|
28 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
29 |
/**
|
30 |
* Primary class constructor.
|
31 |
*
|
@@ -33,7 +41,7 @@ class WPForms_Process {
|
|
33 |
*/
|
34 |
public function __construct() {
|
35 |
|
36 |
-
add_action( '
|
37 |
}
|
38 |
|
39 |
/**
|
@@ -163,12 +171,23 @@ class WPForms_Process {
|
|
163 |
// Success - send email notification
|
164 |
$this->entry_email( $this->fields, $entry, $form_data, $entry_id );
|
165 |
|
|
|
|
|
|
|
|
|
|
|
|
|
166 |
// Logs entry depending on log levels set
|
167 |
-
|
168 |
-
'
|
169 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
170 |
);
|
171 |
-
wpforms_log( 'Form Entry', $log, 'entries', array( 'type' => 'entry', 'parent' => $entry_id ) );
|
172 |
|
173 |
// Post-process hooks
|
174 |
do_action( 'wpforms_process_complete', $this->fields, $entry, $form_data, $entry_id );
|
@@ -176,10 +195,20 @@ class WPForms_Process {
|
|
176 |
|
177 |
} else {
|
178 |
|
179 |
-
$message = $honeypot . '<br><pre>' . print_r( $entry, true ) . '</pre>';
|
180 |
-
|
181 |
// Logs spam entry depending on log levels set
|
182 |
-
wpforms_log(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
183 |
}
|
184 |
|
185 |
$this->entry_confirmation_redirect( $form_data );
|
@@ -237,7 +266,7 @@ class WPForms_Process {
|
|
237 |
if ( !empty( $form_data['settings']['confirmation_type'] ) && $form_data['settings']['confirmation_type'] != 'message' ) {
|
238 |
|
239 |
if ( $form_data['settings']['confirmation_type'] == 'redirect' ) {
|
240 |
-
$url = $form_data['settings']['confirmation_redirect'];
|
241 |
}
|
242 |
|
243 |
if ( $form_data['settings']['confirmation_type'] == 'page' ) {
|
@@ -275,44 +304,65 @@ class WPForms_Process {
|
|
275 |
return;
|
276 |
}
|
277 |
|
278 |
-
// Check that the form has an email address to send to
|
279 |
-
if ( empty( $form_data['settings']['notification_email'] ) ) {
|
280 |
-
return;
|
281 |
-
}
|
282 |
-
|
283 |
// Provide the opportunity to override via a filter
|
284 |
if ( ! apply_filters( 'wpforms_entry_email', true, $fields, $entry, $form_data ) ) {
|
285 |
return;
|
286 |
}
|
287 |
|
288 |
$fields = apply_filters( 'wpforms_entry_email_data', $fields, $entry, $form_data );
|
289 |
-
$email = array();
|
290 |
-
|
291 |
-
// Setup email message. Soon this will be configurable for the user.
|
292 |
-
$email['message'] = '{all_fields}';
|
293 |
|
294 |
-
//
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
|
|
|
|
302 |
} else {
|
303 |
-
$
|
304 |
}
|
305 |
|
306 |
-
|
307 |
-
$email = apply_filters( 'wpforms_entry_email_atts', $email, $fields, $entry, $form_data );
|
308 |
|
309 |
-
|
310 |
-
|
311 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
312 |
|
313 |
-
|
314 |
-
|
315 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
316 |
}
|
317 |
|
318 |
/**
|
@@ -327,6 +377,6 @@ class WPForms_Process {
|
|
327 |
|
328 |
do_action( 'wpforms_process_entry_save', $fields, $entry_meta, $entry, $form_id, $form_data );
|
329 |
|
330 |
-
return
|
331 |
}
|
332 |
}
|
26 |
*/
|
27 |
public $fields;
|
28 |
|
29 |
+
/**
|
30 |
+
* Holds the ID of a successful entry.
|
31 |
+
*
|
32 |
+
* @since 1.2.3
|
33 |
+
* @var int
|
34 |
+
*/
|
35 |
+
public $entry_id = 0;
|
36 |
+
|
37 |
/**
|
38 |
* Primary class constructor.
|
39 |
*
|
41 |
*/
|
42 |
public function __construct() {
|
43 |
|
44 |
+
add_action( 'wp', array( $this, 'listen' ) );
|
45 |
}
|
46 |
|
47 |
/**
|
171 |
// Success - send email notification
|
172 |
$this->entry_email( $this->fields, $entry, $form_data, $entry_id );
|
173 |
|
174 |
+
// Pass completed and formatted fields in POST
|
175 |
+
$_POST['wpforms']['complete'] = $this->fields;
|
176 |
+
|
177 |
+
// Pass entry ID in POST
|
178 |
+
$_POST['wpforms']['entry_id'] = $entry_id;
|
179 |
+
|
180 |
// Logs entry depending on log levels set
|
181 |
+
wpforms_log(
|
182 |
+
'Entry',
|
183 |
+
$this->fields,
|
184 |
+
'entries',
|
185 |
+
array(
|
186 |
+
'type' => 'entry',
|
187 |
+
'parent' => $entry_id,
|
188 |
+
'form_id' => $form_data['id'],
|
189 |
+
)
|
190 |
);
|
|
|
191 |
|
192 |
// Post-process hooks
|
193 |
do_action( 'wpforms_process_complete', $this->fields, $entry, $form_data, $entry_id );
|
195 |
|
196 |
} else {
|
197 |
|
|
|
|
|
198 |
// Logs spam entry depending on log levels set
|
199 |
+
wpforms_log(
|
200 |
+
'Spam Entry',
|
201 |
+
array(
|
202 |
+
$honeypot,
|
203 |
+
$entry
|
204 |
+
),
|
205 |
+
'spam',
|
206 |
+
array(
|
207 |
+
'type' => 'spam',
|
208 |
+
'parent' => $entry_id,
|
209 |
+
'form_id' => $form_data['id'],
|
210 |
+
)
|
211 |
+
);
|
212 |
}
|
213 |
|
214 |
$this->entry_confirmation_redirect( $form_data );
|
266 |
if ( !empty( $form_data['settings']['confirmation_type'] ) && $form_data['settings']['confirmation_type'] != 'message' ) {
|
267 |
|
268 |
if ( $form_data['settings']['confirmation_type'] == 'redirect' ) {
|
269 |
+
$url = apply_filters( 'wpforms_process_smart_tags', $form_data['settings']['confirmation_redirect'], $form_data, $this->fields, $this->entry_id );
|
270 |
}
|
271 |
|
272 |
if ( $form_data['settings']['confirmation_type'] == 'page' ) {
|
304 |
return;
|
305 |
}
|
306 |
|
|
|
|
|
|
|
|
|
|
|
307 |
// Provide the opportunity to override via a filter
|
308 |
if ( ! apply_filters( 'wpforms_entry_email', true, $fields, $entry, $form_data ) ) {
|
309 |
return;
|
310 |
}
|
311 |
|
312 |
$fields = apply_filters( 'wpforms_entry_email_data', $fields, $entry, $form_data );
|
|
|
|
|
|
|
|
|
313 |
|
314 |
+
// Backwards compatibility for notifications before v1.2.3
|
315 |
+
if ( empty( $form_data['settings']['notifications'] ) ) {
|
316 |
+
$notifications[1] = array(
|
317 |
+
'email' => $form_data['settings']['notification_email'],
|
318 |
+
'subject' => $form_data['settings']['notification_subject'],
|
319 |
+
'sender_name' => $form_data['settings']['notification_fromname'],
|
320 |
+
'sender_address' => $form_data['settings']['notification_fromaddress'],
|
321 |
+
'replyto' => $form_data['settings']['notification_replyto'],
|
322 |
+
'message' => '{all_fields}',
|
323 |
+
);
|
324 |
} else {
|
325 |
+
$notifications = $form_data['settings']['notifications'];
|
326 |
}
|
327 |
|
328 |
+
foreach( $notifications as $notification_id => $notification ) {
|
|
|
329 |
|
330 |
+
if ( empty( $notification['email'] ) ) {
|
331 |
+
continue;
|
332 |
+
}
|
333 |
+
|
334 |
+
$process_email = apply_filters( 'wpforms_entry_email_process', true, $fields, $form_data, $notification_id );
|
335 |
+
|
336 |
+
if ( ! $process_email ) {
|
337 |
+
continue;
|
338 |
+
}
|
339 |
|
340 |
+
$email = array();
|
341 |
+
|
342 |
+
// Setup email properties
|
343 |
+
$email['address'] = explode( ',', apply_filters( 'wpforms_process_smart_tags', $notification['email'], $form_data, $fields, $this->entry_id ) );
|
344 |
+
$email['address'] = array_map( 'sanitize_email', $email['address'] );
|
345 |
+
$email['subject'] = !empty( $notification['subject'] ) ? $notification['subject'] : __( 'New %s Entry', $form_data['settings']['form_title'] );
|
346 |
+
$email['sender_address'] = !empty( $notification['sender_address'] ) ? $notification['sender_address'] : get_option( 'admin_email' );
|
347 |
+
$email['sender_name'] = !empty( $notification['sender_name'] ) ? $notification['sender_name'] : get_bloginfo( 'name' );
|
348 |
+
$email['replyto'] = !empty( $notification['replyto'] ) ? $notification['replyto'] : false;
|
349 |
+
$email['message'] = !empty( $notification['message'] ) ? $notification['message'] : '{all_fields}';
|
350 |
+
$email = apply_filters( 'wpforms_entry_email_atts', $email, $fields, $entry, $form_data, $notification_id );
|
351 |
+
|
352 |
+
// Create new email
|
353 |
+
$emails = new WPForms_WP_Emails;
|
354 |
+
$emails->__set( 'form_data', $form_data );
|
355 |
+
$emails->__set( 'fields', $fields );
|
356 |
+
$emails->__set( 'entry_id', $this->entry_id );
|
357 |
+
$emails->__set( 'from_name', $email['sender_name'] );
|
358 |
+
$emails->__set( 'from_address', $email['sender_address'] );
|
359 |
+
$emails->__set( 'reply_to', $email['replyto'] );
|
360 |
+
|
361 |
+
// Go
|
362 |
+
foreach( $email['address'] as $address ) {
|
363 |
+
$emails->send( $address, $email['subject'], $email['message'] );
|
364 |
+
}
|
365 |
+
}
|
366 |
}
|
367 |
|
368 |
/**
|
377 |
|
378 |
do_action( 'wpforms_process_entry_save', $fields, $entry_meta, $entry, $form_id, $form_data );
|
379 |
|
380 |
+
return $this->entry_id;
|
381 |
}
|
382 |
}
|
includes/class-smart-tags.php
CHANGED
@@ -17,7 +17,7 @@ class WPForms_Smart_Tags {
|
|
17 |
*/
|
18 |
public function __construct() {
|
19 |
|
20 |
-
add_filter( 'wpforms_process_smart_tags', array( $this, 'process' ), 10,
|
21 |
}
|
22 |
|
23 |
/**
|
@@ -30,6 +30,8 @@ class WPForms_Smart_Tags {
|
|
30 |
function get( $return = 'array' ) {
|
31 |
|
32 |
$tags = array(
|
|
|
|
|
33 |
'form_id' => __( 'Form ID', 'wpforms' ),
|
34 |
'form_name' => __( 'Form Name', 'wpforms' ),
|
35 |
'page_title' => __( 'Embedded Post/Page Title', 'wpforms' ),
|
@@ -73,9 +75,12 @@ class WPForms_Smart_Tags {
|
|
73 |
*
|
74 |
* @since 1.0.0
|
75 |
* @param string $content
|
|
|
|
|
|
|
76 |
* @return string
|
77 |
*/
|
78 |
-
function process( $content, $form_data, $fields = '' ) {
|
79 |
|
80 |
// Basic smart tags
|
81 |
preg_match_all( "/\{(.+?)\}/", $content, $tags );
|
@@ -90,8 +95,12 @@ class WPForms_Smart_Tags {
|
|
90 |
$content = str_replace( '{'.$tag.'}', sanitize_email( get_option( 'admin_email' ) ), $content );
|
91 |
break;
|
92 |
|
|
|
|
|
|
|
|
|
93 |
case 'form_id':
|
94 |
-
$content = str_replace( '{'.$tag.'}', $form_data['id'], $content );
|
95 |
break;
|
96 |
|
97 |
case 'form_name':
|
17 |
*/
|
18 |
public function __construct() {
|
19 |
|
20 |
+
add_filter( 'wpforms_process_smart_tags', array( $this, 'process' ), 10, 4 );
|
21 |
}
|
22 |
|
23 |
/**
|
30 |
function get( $return = 'array' ) {
|
31 |
|
32 |
$tags = array(
|
33 |
+
'admin_email' => __( 'Site Administer Email', 'wpforms' ),
|
34 |
+
'entry_id' => __( 'Entry ID', 'wpforms' ),
|
35 |
'form_id' => __( 'Form ID', 'wpforms' ),
|
36 |
'form_name' => __( 'Form Name', 'wpforms' ),
|
37 |
'page_title' => __( 'Embedded Post/Page Title', 'wpforms' ),
|
75 |
*
|
76 |
* @since 1.0.0
|
77 |
* @param string $content
|
78 |
+
* @param array $form_data
|
79 |
+
* @param array $fields
|
80 |
+
* @param int $entry_id
|
81 |
* @return string
|
82 |
*/
|
83 |
+
function process( $content, $form_data, $fields = '', $entry_id = '' ) {
|
84 |
|
85 |
// Basic smart tags
|
86 |
preg_match_all( "/\{(.+?)\}/", $content, $tags );
|
95 |
$content = str_replace( '{'.$tag.'}', sanitize_email( get_option( 'admin_email' ) ), $content );
|
96 |
break;
|
97 |
|
98 |
+
case 'entry_id':
|
99 |
+
$content = str_replace( '{'.$tag.'}', sanitize_text_field( $entry_id ), $content );
|
100 |
+
break;
|
101 |
+
|
102 |
case 'form_id':
|
103 |
+
$content = str_replace( '{'.$tag.'}', absint( $form_data['id'] ), $content );
|
104 |
break;
|
105 |
|
106 |
case 'form_name':
|
includes/emails/class-emails.php
CHANGED
@@ -65,25 +65,25 @@ class WPForms_WP_Emails {
|
|
65 |
private $template;
|
66 |
|
67 |
/**
|
68 |
-
*
|
69 |
*
|
70 |
* @since 1.1.3
|
71 |
*/
|
72 |
-
private $
|
73 |
|
74 |
/**
|
75 |
-
*
|
76 |
*
|
77 |
* @since 1.1.3
|
78 |
*/
|
79 |
-
private $
|
80 |
|
81 |
/**
|
82 |
-
*
|
83 |
*
|
84 |
-
* @since 1.
|
85 |
*/
|
86 |
-
private $
|
87 |
|
88 |
/**
|
89 |
* Get things going.
|
@@ -120,12 +120,10 @@ class WPForms_WP_Emails {
|
|
120 |
*/
|
121 |
public function get_from_name() {
|
122 |
|
123 |
-
if ( ! $this->from_name ) {
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
$this->from_name = get_bloginfo( 'name' );
|
128 |
-
}
|
129 |
}
|
130 |
|
131 |
return apply_filters( 'wpforms_email_from_name', wp_specialchars_decode( $this->from_name ), $this );
|
@@ -139,12 +137,10 @@ class WPForms_WP_Emails {
|
|
139 |
*/
|
140 |
public function get_from_address() {
|
141 |
|
142 |
-
if ( ! $this->from_address ) {
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
$this->from_address = get_option( 'admin_email' );
|
147 |
-
}
|
148 |
}
|
149 |
|
150 |
return apply_filters( 'wpforms_email_from_address', $this->from_address, $this );
|
@@ -158,10 +154,8 @@ class WPForms_WP_Emails {
|
|
158 |
*/
|
159 |
public function get_reply_to() {
|
160 |
|
161 |
-
if ( ! $this->reply_to ) {
|
162 |
-
|
163 |
-
$this->reply_to = $this->process_tag( $this->form_data['settings']['notification_replyto'] );
|
164 |
-
}
|
165 |
}
|
166 |
|
167 |
return apply_filters( 'wpforms_email_reply_to', $this->reply_to, $this );
|
@@ -218,8 +212,6 @@ class WPForms_WP_Emails {
|
|
218 |
return apply_filters( 'wpforms_email_message', wp_strip_all_tags( $message ), $this );
|
219 |
}
|
220 |
|
221 |
-
//$message = $this->text_to_html( $message );
|
222 |
-
|
223 |
ob_start();
|
224 |
|
225 |
$this->get_template_part( 'header', $this->get_template(), true );
|
@@ -237,9 +229,11 @@ class WPForms_WP_Emails {
|
|
237 |
// Hooks into the email footer
|
238 |
do_action( 'wpforms_email_footer', $this );
|
239 |
|
|
|
|
|
|
|
240 |
$body = ob_get_clean();
|
241 |
$message = str_replace( '{email}', $message, $body );
|
242 |
-
$message = $this->process_tag( $message, false );
|
243 |
$message = str_replace( '{all_fields}', $this->process_all_fields( true ), $message );
|
244 |
|
245 |
return apply_filters( 'wpforms_email_message', $message, $this );
|
@@ -271,6 +265,7 @@ class WPForms_WP_Emails {
|
|
271 |
|
272 |
$message = $this->build_email( $message );
|
273 |
$attachments = apply_filters( 'wpforms_email_attachments', $attachments, $this );
|
|
|
274 |
|
275 |
// Let's do this
|
276 |
$sent = wp_mail( $to, $subject, $message, $this->get_headers(), $attachments );
|
@@ -305,7 +300,6 @@ class WPForms_WP_Emails {
|
|
305 |
remove_filter( 'wp_mail_content_type', array( $this, 'get_content_type' ) );
|
306 |
}
|
307 |
|
308 |
-
|
309 |
/**
|
310 |
* Converts text formatted HTML. This is primarily for turning line breaks
|
311 |
* into <p> and <br/> tags.
|
@@ -333,7 +327,9 @@ class WPForms_WP_Emails {
|
|
333 |
*/
|
334 |
function process_tag( $string = '', $santiize = true ) {
|
335 |
|
336 |
-
$tag = apply_filters( 'wpforms_process_smart_tags', $string, $this->form_data, $this->fields );
|
|
|
|
|
337 |
|
338 |
if ( $santiize ) {
|
339 |
$tag = sanitize_text_field( $tag );
|
65 |
private $template;
|
66 |
|
67 |
/**
|
68 |
+
* Form data.
|
69 |
*
|
70 |
* @since 1.1.3
|
71 |
*/
|
72 |
+
private $form_data = '';
|
73 |
|
74 |
/**
|
75 |
+
* Fields, formatted, and sanitized.
|
76 |
*
|
77 |
* @since 1.1.3
|
78 |
*/
|
79 |
+
private $fields = '';
|
80 |
|
81 |
/**
|
82 |
+
* Entry ID.
|
83 |
*
|
84 |
+
* @since 1.2.3
|
85 |
*/
|
86 |
+
private $entry_id = '';
|
87 |
|
88 |
/**
|
89 |
* Get things going.
|
120 |
*/
|
121 |
public function get_from_name() {
|
122 |
|
123 |
+
if ( !empty( $this->from_name ) ) {
|
124 |
+
$this->from_name = $this->process_tag( $this->from_name );
|
125 |
+
} else {
|
126 |
+
$this->from_name = get_bloginfo( 'name' );
|
|
|
|
|
127 |
}
|
128 |
|
129 |
return apply_filters( 'wpforms_email_from_name', wp_specialchars_decode( $this->from_name ), $this );
|
137 |
*/
|
138 |
public function get_from_address() {
|
139 |
|
140 |
+
if ( !empty( $this->from_address ) ) {
|
141 |
+
$this->from_address = $this->process_tag( $this->from_address );
|
142 |
+
} else {
|
143 |
+
$this->from_address = get_option( 'admin_email' );
|
|
|
|
|
144 |
}
|
145 |
|
146 |
return apply_filters( 'wpforms_email_from_address', $this->from_address, $this );
|
154 |
*/
|
155 |
public function get_reply_to() {
|
156 |
|
157 |
+
if ( !empty( $this->reply_to ) ) {
|
158 |
+
$this->reply_to = $this->process_tag( $this->reply_to );
|
|
|
|
|
159 |
}
|
160 |
|
161 |
return apply_filters( 'wpforms_email_reply_to', $this->reply_to, $this );
|
212 |
return apply_filters( 'wpforms_email_message', wp_strip_all_tags( $message ), $this );
|
213 |
}
|
214 |
|
|
|
|
|
215 |
ob_start();
|
216 |
|
217 |
$this->get_template_part( 'header', $this->get_template(), true );
|
229 |
// Hooks into the email footer
|
230 |
do_action( 'wpforms_email_footer', $this );
|
231 |
|
232 |
+
$message = $this->process_tag( $message, false );
|
233 |
+
$message = nl2br( $message );
|
234 |
+
|
235 |
$body = ob_get_clean();
|
236 |
$message = str_replace( '{email}', $message, $body );
|
|
|
237 |
$message = str_replace( '{all_fields}', $this->process_all_fields( true ), $message );
|
238 |
|
239 |
return apply_filters( 'wpforms_email_message', $message, $this );
|
265 |
|
266 |
$message = $this->build_email( $message );
|
267 |
$attachments = apply_filters( 'wpforms_email_attachments', $attachments, $this );
|
268 |
+
$subject = wp_specialchars_decode( $this->process_tag( $subject ) );
|
269 |
|
270 |
// Let's do this
|
271 |
$sent = wp_mail( $to, $subject, $message, $this->get_headers(), $attachments );
|
300 |
remove_filter( 'wp_mail_content_type', array( $this, 'get_content_type' ) );
|
301 |
}
|
302 |
|
|
|
303 |
/**
|
304 |
* Converts text formatted HTML. This is primarily for turning line breaks
|
305 |
* into <p> and <br/> tags.
|
327 |
*/
|
328 |
function process_tag( $string = '', $santiize = true ) {
|
329 |
|
330 |
+
$tag = apply_filters( 'wpforms_process_smart_tags', $string, $this->form_data, $this->fields, $this->entry_id );
|
331 |
+
|
332 |
+
$tag = stripslashes( wp_specialchars_decode( $tag ) );
|
333 |
|
334 |
if ( $santiize ) {
|
335 |
$tag = sanitize_text_field( $tag );
|
includes/emails/templates/default.php
CHANGED
@@ -182,7 +182,7 @@ $header_image = wpforms_setting( 'email-header-image', false );
|
|
182 |
/* Body -Body Text */
|
183 |
#templateBody .mcnTextContent,
|
184 |
#templateBody .mcnTextContent p{
|
185 |
-
color:#
|
186 |
font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;
|
187 |
font-size:14px;
|
188 |
line-height:150%;
|
182 |
/* Body -Body Text */
|
183 |
#templateBody .mcnTextContent,
|
184 |
#templateBody .mcnTextContent p{
|
185 |
+
color:#555555;
|
186 |
font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;
|
187 |
font-size:14px;
|
188 |
line-height:150%;
|
includes/emails/templates/header-default.php
CHANGED
@@ -180,7 +180,7 @@ $header_image = wpforms_setting( 'email-header-image', false );
|
|
180 |
/* Body -Body Text */
|
181 |
#templateBody .mcnTextContent,
|
182 |
#templateBody .mcnTextContent p{
|
183 |
-
color:#
|
184 |
font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;
|
185 |
font-size:14px;
|
186 |
line-height:150%;
|
180 |
/* Body -Body Text */
|
181 |
#templateBody .mcnTextContent,
|
182 |
#templateBody .mcnTextContent p{
|
183 |
+
color:#555555;
|
184 |
font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;
|
185 |
font-size:14px;
|
186 |
line-height:150%;
|
includes/functions.php
CHANGED
@@ -731,6 +731,31 @@ function wpforms_sanitize_hex_color( $color ) {
|
|
731 |
}
|
732 |
}
|
733 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
734 |
/**
|
735 |
* Helper function to display debug data.
|
736 |
*
|
@@ -740,7 +765,7 @@ function wpforms_sanitize_hex_color( $color ) {
|
|
740 |
*/
|
741 |
function wpforms_debug_data( $data, $echo = true ) {
|
742 |
|
743 |
-
if ( (
|
744 |
|
745 |
$output = '<textarea style="background:#fff;margin: 20px 0;width:100%;height:500px;font-size:12px;font-family: Consolas,Monaco,monospace;direction: ltr;unicode-bidi: embed;line-height: 1.4;padding: 4px 6px 1px;" readonly>';
|
746 |
|
@@ -777,13 +802,19 @@ function wpforms_log( $title = '', $message = '', $level = 'errors', $args = arr
|
|
777 |
if ( empty( $title ) )
|
778 |
return;
|
779 |
|
|
|
|
|
|
|
|
|
|
|
780 |
/**
|
781 |
* Compare error levels to determine if we should log.
|
782 |
* Current supported levels:
|
783 |
-
* - All - always log. always.
|
784 |
-
* - Errors
|
785 |
-
* - Spam
|
786 |
-
* - Entries
|
|
|
787 |
*/
|
788 |
if ( $level != 'all' ) {
|
789 |
$logging_levels = get_option( 'wpforms_logging', array() );
|
@@ -799,11 +830,63 @@ function wpforms_log( $title = '', $message = '', $level = 'errors', $args = arr
|
|
799 |
);
|
800 |
$args = wp_parse_args( $args, $defaults );
|
801 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
802 |
// Make arrays and objects look nice
|
803 |
if ( is_array( $message ) || is_object( $message ) ) {
|
804 |
-
$message = '<pre>' . print_r( $
|
805 |
}
|
806 |
|
807 |
// Create log entry
|
808 |
-
wpforms()->logs->add( $title, $message, $args['parent'], $args['type'] );
|
809 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
731 |
}
|
732 |
}
|
733 |
|
734 |
+
/**
|
735 |
+
* Debug mode bool.
|
736 |
+
*
|
737 |
+
* @since 1.2.3
|
738 |
+
*/
|
739 |
+
function wpforms_debug() {
|
740 |
+
|
741 |
+
$debug = false;
|
742 |
+
|
743 |
+
if ( ( defined( 'WPFORMS_DEBUG' ) && true === WPFORMS_DEBUG ) && is_super_admin() ) {
|
744 |
+
$debug = true;
|
745 |
+
}
|
746 |
+
|
747 |
+
$debug_option = get_option( 'wpforms_debug' );
|
748 |
+
|
749 |
+
if ( $debug_option ) {
|
750 |
+
$current_user = wp_get_current_user();
|
751 |
+
if ( $current_user->user_login == $debug_option ) {
|
752 |
+
$debug = true;
|
753 |
+
}
|
754 |
+
}
|
755 |
+
|
756 |
+
return apply_filters( 'wpforms_debug', $debug );
|
757 |
+
}
|
758 |
+
|
759 |
/**
|
760 |
* Helper function to display debug data.
|
761 |
*
|
765 |
*/
|
766 |
function wpforms_debug_data( $data, $echo = true ) {
|
767 |
|
768 |
+
if ( wpforms_debug() ) {
|
769 |
|
770 |
$output = '<textarea style="background:#fff;margin: 20px 0;width:100%;height:500px;font-size:12px;font-family: Consolas,Monaco,monospace;direction: ltr;unicode-bidi: embed;line-height: 1.4;padding: 4px 6px 1px;" readonly>';
|
771 |
|
802 |
if ( empty( $title ) )
|
803 |
return;
|
804 |
|
805 |
+
// Force logging everything when in debug mode
|
806 |
+
if ( wpforms_debug() ) {
|
807 |
+
$level = 'all';
|
808 |
+
}
|
809 |
+
|
810 |
/**
|
811 |
* Compare error levels to determine if we should log.
|
812 |
* Current supported levels:
|
813 |
+
* - All - always log. always. (all)
|
814 |
+
* - Errors (errors)
|
815 |
+
* - Spam (spam)
|
816 |
+
* - Entries (entries)
|
817 |
+
* - Conditional Logic (conditional_logic)
|
818 |
*/
|
819 |
if ( $level != 'all' ) {
|
820 |
$logging_levels = get_option( 'wpforms_logging', array() );
|
830 |
);
|
831 |
$args = wp_parse_args( $args, $defaults );
|
832 |
|
833 |
+
if ( !empty( $args['form_id'] ) ) {
|
834 |
+
$meta = array( 'form' => absint( $args['form_id'] ) );
|
835 |
+
} elseif ( !empty( $args['meta'] ) ) {
|
836 |
+
$meta = $args['meta'];
|
837 |
+
} else {
|
838 |
+
$meta = '';
|
839 |
+
}
|
840 |
+
|
841 |
// Make arrays and objects look nice
|
842 |
if ( is_array( $message ) || is_object( $message ) ) {
|
843 |
+
$message = '<pre>' . print_r( $message, true ) . '</pre>';
|
844 |
}
|
845 |
|
846 |
// Create log entry
|
847 |
+
wpforms()->logs->add( $title, $message, $args['parent'], $args['type'], $meta );
|
848 |
+
}
|
849 |
+
|
850 |
+
if ( ! function_exists( 'array_replace_recursive' ) ) :
|
851 |
+
/**
|
852 |
+
* PHP-agnostic version of {@link array_replace_recursive()}.
|
853 |
+
*
|
854 |
+
* The array_replace_recursive() function is a PHP 5.3 function. WordPress
|
855 |
+
* currently supports down to PHP 5.2, so this method is a workaround
|
856 |
+
* for PHP 5.2.
|
857 |
+
*
|
858 |
+
* Note: array_replace_recursive() supports infinite arguments, but for our use-
|
859 |
+
* case, we only need to support two arguments.
|
860 |
+
*
|
861 |
+
* Subject to removal once WordPress makes PHP 5.3.0 the minimum requirement.
|
862 |
+
*
|
863 |
+
* @since 1.2.3
|
864 |
+
* @see http://php.net/manual/en/function.array-replace-recursive.php#109390
|
865 |
+
* @param array $base Array with keys needing to be replaced.
|
866 |
+
* @param array $replacements Array with the replaced keys.
|
867 |
+
* @return array
|
868 |
+
*/
|
869 |
+
function array_replace_recursive( $base = array(), $replacements = array() ) {
|
870 |
+
// PHP 5.2-compatible version
|
871 |
+
// http://php.net/manual/en/function.array-replace-recursive.php#109390.
|
872 |
+
foreach ( array_slice( func_get_args(), 1 ) as $replacements ) {
|
873 |
+
$bref_stack = array( &$base );
|
874 |
+
$head_stack = array( $replacements );
|
875 |
+
do {
|
876 |
+
end( $bref_stack );
|
877 |
+
$bref = &$bref_stack[ key( $bref_stack ) ];
|
878 |
+
$head = array_pop( $head_stack );
|
879 |
+
unset( $bref_stack[ key( $bref_stack ) ] );
|
880 |
+
foreach ( array_keys( $head ) as $key ) {
|
881 |
+
if ( isset( $key, $bref ) && is_array( $bref[ $key ] ) && is_array( $head[ $key ] ) ) {
|
882 |
+
$bref_stack[] = &$bref[ $key ];
|
883 |
+
$head_stack[] = $head[ $key ];
|
884 |
+
} else {
|
885 |
+
$bref[ $key ] = $head[ $key ];
|
886 |
+
}
|
887 |
+
}
|
888 |
+
} while ( count( $head_stack ) );
|
889 |
+
}
|
890 |
+
return $base;
|
891 |
+
}
|
892 |
+
endif;
|
includes/templates/class-contact.php
CHANGED
@@ -52,8 +52,12 @@ class WPForms_Template_Contact extends WPForms_Template {
|
|
52 |
),
|
53 |
),
|
54 |
'settings' => array(
|
55 |
-
'
|
56 |
-
|
|
|
|
|
|
|
|
|
57 |
'honeypot' => '1',
|
58 |
'confirmation_message_scroll' => '1',
|
59 |
),
|
52 |
),
|
53 |
),
|
54 |
'settings' => array(
|
55 |
+
'notifications' => array(
|
56 |
+
'1' => array(
|
57 |
+
'sender_name' => '{field_id="0"}',
|
58 |
+
'sender_address' => '{field_id="1"}',
|
59 |
+
),
|
60 |
+
),
|
61 |
'honeypot' => '1',
|
62 |
'confirmation_message_scroll' => '1',
|
63 |
),
|
includes/templates/class-suggestion.php
CHANGED
@@ -77,8 +77,12 @@ class WPForms_Template_Suggestion extends WPForms_Template {
|
|
77 |
),
|
78 |
),
|
79 |
'settings' => array(
|
80 |
-
'
|
81 |
-
|
|
|
|
|
|
|
|
|
82 |
'honeypot' => '1',
|
83 |
'confirmation_message_scroll' => '1',
|
84 |
),
|
77 |
),
|
78 |
),
|
79 |
'settings' => array(
|
80 |
+
'notifications' => array(
|
81 |
+
'1' => array(
|
82 |
+
'sender_name' => '{field_id="0"}',
|
83 |
+
'sender_address' => '{field_id="1"}',
|
84 |
+
),
|
85 |
+
),
|
86 |
'honeypot' => '1',
|
87 |
'confirmation_message_scroll' => '1',
|
88 |
),
|
languages/wpforms.pot
CHANGED
@@ -2,9 +2,9 @@
|
|
2 |
# This file is distributed under the same license as the WPForms package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: WPForms 1.2.
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wpforms\n"
|
7 |
-
"POT-Creation-Date: 2016-06-
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
@@ -20,190 +20,230 @@ msgstr ""
|
|
20 |
msgid "No data provided"
|
21 |
msgstr ""
|
22 |
|
23 |
-
#: includes/admin/ajax-actions.php:
|
24 |
msgid "An error occured and the form could not be saved"
|
25 |
msgstr ""
|
26 |
|
27 |
-
#: includes/admin/ajax-actions.php:
|
28 |
msgid "No form title provided"
|
29 |
msgstr ""
|
30 |
|
31 |
-
#: includes/admin/ajax-actions.php:
|
32 |
msgid "Error creating form"
|
33 |
msgstr ""
|
34 |
|
35 |
-
#: includes/admin/ajax-actions.php:
|
36 |
msgid "No form ID provided"
|
37 |
msgstr ""
|
38 |
|
39 |
-
#: includes/admin/ajax-actions.php:
|
40 |
msgid "Error updating form template"
|
41 |
msgstr ""
|
42 |
|
43 |
-
#: includes/admin/builder/class-builder.php:
|
44 |
#: includes/admin/class-editor.php:96
|
45 |
#: pro/includes/admin/entries/class-entries.php:974
|
46 |
msgid "Cancel"
|
47 |
msgstr ""
|
48 |
|
49 |
-
#: includes/admin/builder/class-builder.php:
|
50 |
msgid "OK"
|
51 |
msgstr ""
|
52 |
|
53 |
-
#: includes/admin/builder/class-builder.php:
|
54 |
#: includes/admin/class-editor.php:70
|
55 |
msgid "Close"
|
56 |
msgstr ""
|
57 |
|
58 |
-
#: includes/admin/builder/class-builder.php:
|
|
|
|
|
|
|
|
|
|
|
59 |
#: pro/includes/admin/entries/class-entries-table.php:141
|
60 |
msgid "Field"
|
61 |
msgstr ""
|
62 |
|
63 |
-
#: includes/admin/builder/class-builder.php:
|
64 |
msgid "Field Locked"
|
65 |
msgstr ""
|
66 |
|
67 |
-
#: includes/admin/builder/class-builder.php:
|
68 |
msgid "This field cannot be deleted because it required by the form template."
|
69 |
msgstr ""
|
70 |
|
71 |
-
#: includes/admin/builder/class-builder.php:
|
72 |
msgid "Available Fields"
|
73 |
msgstr ""
|
74 |
|
75 |
-
#: includes/admin/builder/class-builder.php:
|
76 |
msgid "No fields available"
|
77 |
msgstr ""
|
78 |
|
79 |
-
#: includes/admin/builder/class-builder.php:
|
|
|
|
|
|
|
|
|
80 |
msgid "No email fields"
|
81 |
msgstr ""
|
82 |
|
|
|
|
|
|
|
|
|
83 |
#: includes/admin/builder/class-builder.php:273
|
84 |
-
|
85 |
-
#: pro/includes/admin/class-settings.php:117
|
86 |
-
msgid "Saving ..."
|
87 |
msgstr ""
|
88 |
|
89 |
#: includes/admin/builder/class-builder.php:274
|
90 |
-
msgid "
|
91 |
msgstr ""
|
92 |
|
93 |
#: includes/admin/builder/class-builder.php:275
|
94 |
-
msgid "
|
95 |
msgstr ""
|
96 |
|
97 |
#: includes/admin/builder/class-builder.php:276
|
98 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
99 |
msgid "Loading"
|
100 |
msgstr ""
|
101 |
|
102 |
-
#: includes/admin/builder/class-builder.php:
|
103 |
msgid "Use Template"
|
104 |
msgstr ""
|
105 |
|
106 |
-
#: includes/admin/builder/class-builder.php:
|
107 |
msgid ""
|
108 |
"Changing templates on an existing form will DELETE existing form fields. Are "
|
109 |
"you sure you want apply the new template?"
|
110 |
msgstr ""
|
111 |
|
112 |
-
#: includes/admin/builder/class-builder.php:
|
113 |
msgid ""
|
114 |
"You are almost done. To embed this form on your site, please paste the "
|
115 |
"following shortcode inside a post or page."
|
116 |
msgstr ""
|
117 |
|
118 |
-
#: includes/admin/builder/class-builder.php:
|
119 |
msgid "Or you can follow the instructions in this video."
|
120 |
msgstr ""
|
121 |
|
122 |
-
#: includes/admin/builder/class-builder.php:
|
123 |
-
#: includes/admin/builder/class-builder.php:
|
124 |
msgid "Exit"
|
125 |
msgstr ""
|
126 |
|
127 |
-
#: includes/admin/builder/class-builder.php:
|
128 |
msgid "If you exit without saving, your changes will be lost."
|
129 |
msgstr ""
|
130 |
|
131 |
-
#: includes/admin/builder/class-builder.php:
|
132 |
msgid "Are you sure you want to delete this field?"
|
133 |
msgstr ""
|
134 |
|
135 |
-
#: includes/admin/builder/class-builder.php:
|
136 |
msgid "Please enter a form title."
|
137 |
msgstr ""
|
138 |
|
139 |
-
#: includes/admin/builder/class-builder.php:
|
140 |
msgid "This item must contain at least one choice."
|
141 |
msgstr ""
|
142 |
|
143 |
-
#: includes/admin/builder/class-builder.php:
|
144 |
-
#: includes/
|
145 |
-
#:
|
146 |
msgid "Off"
|
147 |
msgstr ""
|
148 |
|
149 |
-
#: includes/admin/builder/class-builder.php:
|
150 |
-
#: includes/
|
151 |
-
#:
|
152 |
msgid "On"
|
153 |
msgstr ""
|
154 |
|
155 |
-
#: includes/admin/builder/class-builder.php:
|
156 |
-
#: includes/class-
|
|
|
|
|
|
|
|
|
|
|
157 |
#: pro/includes/fields/class-page-break.php:144
|
158 |
msgid "Previous"
|
159 |
msgstr ""
|
160 |
|
161 |
-
#: includes/admin/builder/class-builder.php:
|
162 |
-
#: includes/admin/builder/functions.php:
|
163 |
msgid "Show Smart Tags"
|
164 |
msgstr ""
|
165 |
|
166 |
-
#: includes/admin/builder/class-builder.php:
|
167 |
msgid "Hide Smart Tags"
|
168 |
msgstr ""
|
169 |
|
170 |
-
#: includes/admin/builder/class-builder.php:
|
171 |
-
|
172 |
-
|
|
|
|
|
|
|
|
|
173 |
msgstr ""
|
174 |
|
175 |
-
#: includes/admin/builder/class-builder.php:
|
176 |
msgid "Now editing"
|
177 |
msgstr ""
|
178 |
|
179 |
-
#: includes/admin/builder/class-builder.php:
|
180 |
#: pro/includes/admin/entries/class-entries.php:510
|
181 |
msgid "Preview Form"
|
182 |
msgstr ""
|
183 |
|
184 |
-
#: includes/admin/builder/class-builder.php:
|
185 |
#: includes/admin/overview/class-overview-table.php:159
|
186 |
msgid "Preview"
|
187 |
msgstr ""
|
188 |
|
189 |
-
#: includes/admin/builder/class-builder.php:
|
190 |
msgid "Embed Form"
|
191 |
msgstr ""
|
192 |
|
193 |
-
#: includes/admin/builder/class-builder.php:
|
194 |
msgid "Embed"
|
195 |
msgstr ""
|
196 |
|
197 |
-
#: includes/admin/builder/class-builder.php:
|
198 |
msgid "Save Form"
|
199 |
msgstr ""
|
200 |
|
201 |
-
#: includes/admin/builder/class-builder.php:
|
202 |
-
#: pro/includes/admin/class-settings.php:
|
203 |
msgid "Save"
|
204 |
msgstr ""
|
205 |
|
206 |
-
#: includes/admin/builder/functions.php:
|
207 |
msgid "Field #"
|
208 |
msgstr ""
|
209 |
|
@@ -261,20 +301,22 @@ msgid "Click to edit. Drag to reorder."
|
|
261 |
msgstr ""
|
262 |
|
263 |
#: includes/admin/builder/panels/class-settings.php:21
|
264 |
-
#: includes/admin/class-menu.php:84 lite/includes/admin/class-settings.php:
|
265 |
-
#: pro/includes/admin/class-settings.php:
|
266 |
msgid "Settings"
|
267 |
msgstr ""
|
268 |
|
269 |
#: includes/admin/builder/panels/class-settings.php:57
|
270 |
#: includes/admin/builder/panels/class-settings.php:87
|
271 |
-
#: lite/includes/admin/class-settings.php:
|
272 |
-
#: pro/includes/admin/class-settings.php:
|
273 |
msgid "General"
|
274 |
msgstr ""
|
275 |
|
276 |
#: includes/admin/builder/panels/class-settings.php:58
|
277 |
-
|
|
|
|
|
278 |
msgstr ""
|
279 |
|
280 |
#: includes/admin/builder/panels/class-settings.php:59
|
@@ -322,47 +364,13 @@ msgstr ""
|
|
322 |
msgid "Enable reCAPTCHA"
|
323 |
msgstr ""
|
324 |
|
325 |
-
#: includes/admin/builder/panels/class-settings.php:153
|
326 |
-
#: includes/admin/builder/panels/class-settings.php:160
|
327 |
-
msgid "Notifications"
|
328 |
-
msgstr ""
|
329 |
-
|
330 |
-
#: includes/admin/builder/panels/class-settings.php:174
|
331 |
-
msgid "Send To Email Address"
|
332 |
-
msgstr ""
|
333 |
-
|
334 |
-
#: includes/admin/builder/panels/class-settings.php:177
|
335 |
-
msgid ""
|
336 |
-
"Enter the email address to receive form entry notifications. For multiple "
|
337 |
-
"notifications, seperate email addresses with a comma."
|
338 |
-
msgstr ""
|
339 |
-
|
340 |
-
#: includes/admin/builder/panels/class-settings.php:189
|
341 |
-
msgid "Email Subject"
|
342 |
-
msgstr ""
|
343 |
-
|
344 |
-
#: includes/admin/builder/panels/class-settings.php:191
|
345 |
-
msgid "New Entry: "
|
346 |
-
msgstr ""
|
347 |
-
|
348 |
-
#: includes/admin/builder/panels/class-settings.php:203
|
349 |
-
msgid "From Name"
|
350 |
-
msgstr ""
|
351 |
-
|
352 |
-
#: includes/admin/builder/panels/class-settings.php:217
|
353 |
-
msgid "From Email"
|
354 |
-
msgstr ""
|
355 |
-
|
356 |
-
#: includes/admin/builder/panels/class-settings.php:231
|
357 |
-
msgid "Reply-To"
|
358 |
-
msgstr ""
|
359 |
-
|
360 |
#: includes/admin/builder/panels/class-settings.php:254
|
361 |
msgid "Confirmation Type"
|
362 |
msgstr ""
|
363 |
|
364 |
#: includes/admin/builder/panels/class-settings.php:258
|
365 |
-
#: includes/templates/class-suggestion.php:74
|
|
|
366 |
msgid "Message"
|
367 |
msgstr ""
|
368 |
|
@@ -399,7 +407,7 @@ msgid "Setup"
|
|
399 |
msgstr ""
|
400 |
|
401 |
#: includes/admin/builder/panels/class-setup.php:54
|
402 |
-
#: includes/class-smart-tags.php:
|
403 |
msgid "Form Name"
|
404 |
msgstr ""
|
405 |
|
@@ -459,9 +467,9 @@ msgid ""
|
|
459 |
"a>?"
|
460 |
msgstr ""
|
461 |
|
462 |
-
#. #-#-#-#-# wpforms.pot (WPForms 1.2.
|
463 |
#. Plugin Name of the plugin/theme
|
464 |
-
#. #-#-#-#-# wpforms.pot (WPForms 1.2.
|
465 |
#. Author of the plugin/theme
|
466 |
#: includes/admin/class-menu.php:39 includes/admin/class-menu.php:40
|
467 |
#: includes/admin/class-menu.php:51
|
@@ -478,6 +486,7 @@ msgstr ""
|
|
478 |
|
479 |
#: includes/admin/class-menu.php:62
|
480 |
#: includes/admin/overview/class-overview.php:148
|
|
|
481 |
msgid "Add New"
|
482 |
msgstr ""
|
483 |
|
@@ -487,7 +496,7 @@ msgstr ""
|
|
487 |
|
488 |
#: includes/admin/class-menu.php:72
|
489 |
#: includes/admin/overview/class-overview-table.php:152
|
490 |
-
#: pro/includes/admin/entries/class-entries.php:409 pro/wpforms-pro.php:
|
491 |
msgid "Entries"
|
492 |
msgstr ""
|
493 |
|
@@ -659,11 +668,11 @@ msgstr ""
|
|
659 |
msgid "Forms Overview"
|
660 |
msgstr ""
|
661 |
|
662 |
-
#: includes/class-frontend.php:
|
663 |
msgid "Step"
|
664 |
msgstr ""
|
665 |
|
666 |
-
#: includes/class-frontend.php:
|
667 |
msgid "of"
|
668 |
msgstr ""
|
669 |
|
@@ -671,86 +680,94 @@ msgstr ""
|
|
671 |
msgid "WPForms Logs"
|
672 |
msgstr ""
|
673 |
|
674 |
-
#: includes/class-preview.php:
|
675 |
msgid "Entry #%d"
|
676 |
msgstr ""
|
677 |
|
678 |
-
#: includes/class-preview.php:
|
679 |
#: pro/includes/admin/entries/class-entries.php:896
|
680 |
msgid "This entry does not have any fields"
|
681 |
msgstr ""
|
682 |
|
683 |
-
#: includes/class-preview.php:
|
684 |
#: pro/includes/admin/entries/class-entries.php:912
|
685 |
msgid "Field ID #%d"
|
686 |
msgstr ""
|
687 |
|
688 |
-
#: includes/class-preview.php:
|
689 |
#: pro/includes/admin/entries/class-entries.php:917
|
690 |
msgid "Empty"
|
691 |
msgstr ""
|
692 |
|
693 |
-
#: includes/class-preview.php:
|
694 |
msgid ""
|
695 |
"This is the WPForms preview page. All your form previews will be handled on "
|
696 |
"this page."
|
697 |
msgstr ""
|
698 |
|
699 |
-
#: includes/class-preview.php:
|
700 |
msgid ""
|
701 |
"The page is set to private, so it is not publically accessible. Please do "
|
702 |
"not delete this page :) ."
|
703 |
msgstr ""
|
704 |
|
705 |
-
#: includes/class-preview.php:
|
706 |
msgid "WPForms Preview"
|
707 |
msgstr ""
|
708 |
|
709 |
-
#: includes/class-preview.php:
|
710 |
msgid "This is a preview of your form. This page not publically accessible."
|
711 |
msgstr ""
|
712 |
|
713 |
-
#: includes/class-preview.php:
|
714 |
msgid " Preview"
|
715 |
msgstr ""
|
716 |
|
717 |
-
#: includes/class-process.php:
|
718 |
msgid "Invalid form."
|
719 |
msgstr ""
|
720 |
|
721 |
-
#: includes/class-process.php:
|
722 |
msgid "Incorrect reCAPTCHA, please try again."
|
723 |
msgstr ""
|
724 |
|
725 |
-
#: includes/class-process.php:
|
726 |
msgid "Form has not been submitted, please see the errors below."
|
727 |
msgstr ""
|
728 |
|
729 |
-
#: includes/class-process.php:
|
730 |
msgid "WPForms honeypot field triggered."
|
731 |
msgstr ""
|
732 |
|
733 |
-
#: includes/class-process.php:
|
734 |
msgid "New %s Entry"
|
735 |
msgstr ""
|
736 |
|
737 |
#: includes/class-smart-tags.php:33
|
738 |
-
msgid "
|
|
|
|
|
|
|
|
|
739 |
msgstr ""
|
740 |
|
741 |
#: includes/class-smart-tags.php:35
|
|
|
|
|
|
|
|
|
742 |
msgid "Embedded Post/Page Title"
|
743 |
msgstr ""
|
744 |
|
745 |
-
#: includes/class-smart-tags.php:
|
746 |
msgid "Embeded Post Page URL"
|
747 |
msgstr ""
|
748 |
|
749 |
-
#: includes/class-smart-tags.php:
|
750 |
msgid "Embedded Post/Page ID"
|
751 |
msgstr ""
|
752 |
|
753 |
-
#: includes/class-smart-tags.php:
|
754 |
#: pro/includes/admin/entries/class-entries-export.php:172
|
755 |
#: pro/includes/admin/entries/class-entries-table.php:119
|
756 |
#: pro/includes/fields/class-date-time.php:48
|
@@ -760,43 +777,43 @@ msgstr ""
|
|
760 |
msgid "Date"
|
761 |
msgstr ""
|
762 |
|
763 |
-
#: includes/class-smart-tags.php:
|
764 |
msgid "Query String Variable"
|
765 |
msgstr ""
|
766 |
|
767 |
-
#: includes/class-smart-tags.php:
|
768 |
msgid "User IP Address"
|
769 |
msgstr ""
|
770 |
|
771 |
-
#: includes/class-smart-tags.php:
|
772 |
msgid "User ID"
|
773 |
msgstr ""
|
774 |
|
775 |
-
#: includes/class-smart-tags.php:
|
776 |
msgid "User Name"
|
777 |
msgstr ""
|
778 |
|
779 |
-
#: includes/class-smart-tags.php:
|
780 |
msgid "User Email"
|
781 |
msgstr ""
|
782 |
|
783 |
-
#: includes/class-smart-tags.php:
|
784 |
msgid "Referer URL"
|
785 |
msgstr ""
|
786 |
|
787 |
-
#: includes/class-smart-tags.php:
|
788 |
msgid "Login URL"
|
789 |
msgstr ""
|
790 |
|
791 |
-
#: includes/class-smart-tags.php:
|
792 |
msgid "Logout URL"
|
793 |
msgstr ""
|
794 |
|
795 |
-
#: includes/class-smart-tags.php:
|
796 |
msgid "Register URL"
|
797 |
msgstr ""
|
798 |
|
799 |
-
#: includes/class-smart-tags.php:
|
800 |
msgid "Lost Password URL"
|
801 |
msgstr ""
|
802 |
|
@@ -812,13 +829,13 @@ msgstr ""
|
|
812 |
msgid "Display form description"
|
813 |
msgstr ""
|
814 |
|
815 |
-
#: includes/emails/class-emails.php:
|
816 |
msgid ""
|
817 |
"You cannot send emails with WPForms_WP_Emails until init/admin_init has been "
|
818 |
"reached"
|
819 |
msgstr ""
|
820 |
|
821 |
-
#: includes/emails/class-emails.php:
|
822 |
msgid "Field ID #"
|
823 |
msgstr ""
|
824 |
|
@@ -1014,8 +1031,8 @@ msgid "Show Values"
|
|
1014 |
msgstr ""
|
1015 |
|
1016 |
#: includes/fields/class-email.php:21
|
1017 |
-
#: lite/includes/admin/class-settings.php:
|
1018 |
-
#: pro/includes/admin/class-settings.php:
|
1019 |
#: pro/includes/templates/class-donation.php:42
|
1020 |
#: pro/includes/templates/class-order.php:42
|
1021 |
#: pro/includes/templates/class-request-quote.php:46
|
@@ -1094,17 +1111,17 @@ msgid "Last name field advanced options."
|
|
1094 |
msgstr ""
|
1095 |
|
1096 |
#: includes/fields/class-name.php:160 includes/fields/class-name.php:242
|
1097 |
-
#: pro/includes/class-provider.php:
|
1098 |
msgid "First"
|
1099 |
msgstr ""
|
1100 |
|
1101 |
#: includes/fields/class-name.php:164 includes/fields/class-name.php:260
|
1102 |
-
#: pro/includes/class-provider.php:
|
1103 |
msgid "Middle"
|
1104 |
msgstr ""
|
1105 |
|
1106 |
#: includes/fields/class-name.php:168 includes/fields/class-name.php:287
|
1107 |
-
#: pro/includes/class-provider.php:
|
1108 |
msgid "Last"
|
1109 |
msgstr ""
|
1110 |
|
@@ -1197,114 +1214,115 @@ msgstr ""
|
|
1197 |
msgid "Product Development"
|
1198 |
msgstr ""
|
1199 |
|
1200 |
-
#: includes/templates/class-suggestion.php:59
|
1201 |
-
msgid "Other"
|
1202 |
-
msgstr ""
|
1203 |
-
|
1204 |
#: includes/templates/class-suggestion.php:67
|
1205 |
msgid "Subject"
|
1206 |
msgstr ""
|
1207 |
|
1208 |
-
#: lite/includes/admin/class-settings.php:116
|
1209 |
-
#: pro/includes/admin/class-settings.php:118
|
1210 |
-
msgid "Are you sure you want to disconnect this account?"
|
1211 |
-
msgstr ""
|
1212 |
-
|
1213 |
#: lite/includes/admin/class-settings.php:117
|
1214 |
#: pro/includes/admin/class-settings.php:119
|
1215 |
-
msgid "
|
1216 |
msgstr ""
|
1217 |
|
1218 |
#: lite/includes/admin/class-settings.php:118
|
1219 |
#: pro/includes/admin/class-settings.php:120
|
|
|
|
|
|
|
|
|
|
|
1220 |
msgid "Use Image"
|
1221 |
msgstr ""
|
1222 |
|
1223 |
-
#: lite/includes/admin/class-settings.php:
|
1224 |
-
#: pro/includes/admin/class-settings.php:
|
1225 |
-
|
|
|
|
|
|
|
|
|
|
|
1226 |
msgid "Settings check failed."
|
1227 |
msgstr ""
|
1228 |
|
1229 |
-
#: lite/includes/admin/class-settings.php:
|
1230 |
-
#: pro/includes/admin/class-settings.php:
|
1231 |
msgid "General settings updated."
|
1232 |
msgstr ""
|
1233 |
|
1234 |
-
#: lite/includes/admin/class-settings.php:
|
1235 |
-
#: pro/includes/admin/class-settings.php:
|
1236 |
msgid "Include Form Styling"
|
1237 |
msgstr ""
|
1238 |
|
1239 |
-
#: lite/includes/admin/class-settings.php:
|
1240 |
-
#: pro/includes/admin/class-settings.php:
|
1241 |
msgid "Base and form theme styling"
|
1242 |
msgstr ""
|
1243 |
|
1244 |
-
#: lite/includes/admin/class-settings.php:
|
1245 |
-
#: pro/includes/admin/class-settings.php:
|
1246 |
msgid "Base styling only"
|
1247 |
msgstr ""
|
1248 |
|
1249 |
-
#: lite/includes/admin/class-settings.php:
|
1250 |
-
#: pro/includes/admin/class-settings.php:
|
1251 |
#: pro/includes/fields/class-page-break.php:58
|
1252 |
msgid "None"
|
1253 |
msgstr ""
|
1254 |
|
1255 |
-
#: lite/includes/admin/class-settings.php:
|
1256 |
-
#: pro/includes/admin/class-settings.php:
|
1257 |
msgid "Determines which CSS files to load for the site."
|
1258 |
msgstr ""
|
1259 |
|
1260 |
-
#: lite/includes/admin/class-settings.php:
|
1261 |
-
#: pro/includes/admin/class-settings.php:
|
1262 |
msgid "Email Template"
|
1263 |
msgstr ""
|
1264 |
|
1265 |
-
#: lite/includes/admin/class-settings.php:
|
1266 |
-
#: pro/includes/admin/class-settings.php:
|
1267 |
msgid "Default HTML template"
|
1268 |
msgstr ""
|
1269 |
|
1270 |
-
#: lite/includes/admin/class-settings.php:
|
1271 |
-
#: pro/includes/admin/class-settings.php:
|
1272 |
msgid "Plain Text"
|
1273 |
msgstr ""
|
1274 |
|
1275 |
-
#: lite/includes/admin/class-settings.php:
|
1276 |
-
#: pro/includes/admin/class-settings.php:
|
1277 |
msgid "Determines how email notifications will be formatted."
|
1278 |
msgstr ""
|
1279 |
|
1280 |
-
#: lite/includes/admin/class-settings.php:
|
1281 |
-
#: pro/includes/admin/class-settings.php:
|
1282 |
msgid "Email Header Image "
|
1283 |
msgstr ""
|
1284 |
|
1285 |
-
#: lite/includes/admin/class-settings.php:
|
1286 |
-
#: pro/includes/admin/class-settings.php:
|
1287 |
msgid "Upload Image"
|
1288 |
msgstr ""
|
1289 |
|
1290 |
-
#: lite/includes/admin/class-settings.php:
|
1291 |
-
#: pro/includes/admin/class-settings.php:
|
1292 |
msgid ""
|
1293 |
"Upload or choose a logo to be displayed at the top of email notifications."
|
1294 |
msgstr ""
|
1295 |
|
1296 |
-
#: lite/includes/admin/class-settings.php:
|
1297 |
-
#: pro/includes/admin/class-settings.php:
|
1298 |
msgid "Recommended size is 300x100 or smaller for best support on all devices."
|
1299 |
msgstr ""
|
1300 |
|
1301 |
-
#: lite/includes/admin/class-settings.php:
|
1302 |
-
#: pro/includes/admin/class-settings.php:
|
1303 |
msgid "reCAPTCHA"
|
1304 |
msgstr ""
|
1305 |
|
1306 |
-
#: lite/includes/admin/class-settings.php:
|
1307 |
-
#: pro/includes/admin/class-settings.php:
|
1308 |
msgid ""
|
1309 |
"reCAPTCHA is a free anti-spam service from Google. Its helps protect your "
|
1310 |
"website from spam and abuse while letting real people pass through with "
|
@@ -1314,32 +1332,71 @@ msgid ""
|
|
1314 |
"\"_blank\">read our walk through</a> for step-by-step directions."
|
1315 |
msgstr ""
|
1316 |
|
1317 |
-
#: lite/includes/admin/class-settings.php:
|
1318 |
-
#: pro/includes/admin/class-settings.php:
|
1319 |
msgid "reCAPTCHA Site key"
|
1320 |
msgstr ""
|
1321 |
|
1322 |
-
#: lite/includes/admin/class-settings.php:
|
1323 |
-
#: pro/includes/admin/class-settings.php:
|
1324 |
msgid "reCAPTCHA Secret key"
|
1325 |
msgstr ""
|
1326 |
|
1327 |
-
#: lite/includes/admin/class-settings.php:
|
1328 |
-
#: pro/includes/admin/class-settings.php:
|
1329 |
msgid "Save General Settings"
|
1330 |
msgstr ""
|
1331 |
|
1332 |
-
#: lite/wpforms-lite.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1333 |
msgid "is a PRO Feature"
|
1334 |
msgstr ""
|
1335 |
|
1336 |
-
#: lite/wpforms-lite.php:
|
1337 |
msgid ""
|
1338 |
"We're sorry, %name% is not available on your plan.<br><br>Please upgrade to "
|
1339 |
"the PRO plan to unlock all these awesome features."
|
1340 |
msgstr ""
|
1341 |
|
1342 |
-
#: lite/wpforms-lite.php:
|
1343 |
msgid "Upgrade to PRO"
|
1344 |
msgstr ""
|
1345 |
|
@@ -1373,7 +1430,7 @@ msgid "Addon installed."
|
|
1373 |
msgstr ""
|
1374 |
|
1375 |
#: pro/includes/admin/builder/panels/class-payments.php:21
|
1376 |
-
#: pro/includes/admin/class-settings.php:
|
1377 |
msgid "Payments"
|
1378 |
msgstr ""
|
1379 |
|
@@ -1420,7 +1477,7 @@ msgid "Are you sure you want to delete this connecton?"
|
|
1420 |
msgstr ""
|
1421 |
|
1422 |
#: pro/includes/admin/builder/panels/class-providers.php:57
|
1423 |
-
msgid "Enter a
|
1424 |
msgstr ""
|
1425 |
|
1426 |
#: pro/includes/admin/builder/panels/class-providers.php:58
|
@@ -1573,68 +1630,68 @@ msgid ""
|
|
1573 |
"continue receiving automatic updates."
|
1574 |
msgstr ""
|
1575 |
|
1576 |
-
#: pro/includes/admin/class-settings.php:
|
1577 |
msgid "Integrations"
|
1578 |
msgstr ""
|
1579 |
|
1580 |
-
#: pro/includes/admin/class-settings.php:
|
1581 |
msgid "Please enter a license key to verify."
|
1582 |
msgstr ""
|
1583 |
|
1584 |
-
#: pro/includes/admin/class-settings.php:
|
1585 |
msgid "License"
|
1586 |
msgstr ""
|
1587 |
|
1588 |
-
#: pro/includes/admin/class-settings.php:
|
1589 |
msgid "Your license key provides access to updates and Add-ons. "
|
1590 |
msgstr ""
|
1591 |
|
1592 |
-
#: pro/includes/admin/class-settings.php:
|
1593 |
msgid "License Key"
|
1594 |
msgstr ""
|
1595 |
|
1596 |
-
#: pro/includes/admin/class-settings.php:
|
1597 |
msgid "Verify Key"
|
1598 |
msgstr ""
|
1599 |
|
1600 |
-
#: pro/includes/admin/class-settings.php:
|
1601 |
msgid "Deactivate Key"
|
1602 |
msgstr ""
|
1603 |
|
1604 |
-
#: pro/includes/admin/class-settings.php:
|
1605 |
msgid "License Key Type"
|
1606 |
msgstr ""
|
1607 |
|
1608 |
-
#: pro/includes/admin/class-settings.php:
|
1609 |
msgid "Your license key type for this site is <strong>%s.</strong>"
|
1610 |
msgstr ""
|
1611 |
|
1612 |
-
#: pro/includes/admin/class-settings.php:
|
1613 |
msgid "Refresh Key"
|
1614 |
msgstr ""
|
1615 |
|
1616 |
-
#: pro/includes/admin/class-settings.php:
|
1617 |
msgid ""
|
1618 |
"If your license has been upgraded or is incorrect, you may force a refresh."
|
1619 |
msgstr ""
|
1620 |
|
1621 |
-
#: pro/includes/admin/class-settings.php:
|
1622 |
msgid "Settings updated."
|
1623 |
msgstr ""
|
1624 |
|
1625 |
-
#: pro/includes/admin/class-settings.php:
|
1626 |
msgid "Currency"
|
1627 |
msgstr ""
|
1628 |
|
1629 |
-
#: pro/includes/admin/class-settings.php:
|
1630 |
msgid "US Dollars (USD)"
|
1631 |
msgstr ""
|
1632 |
|
1633 |
-
#: pro/includes/admin/class-settings.php:
|
1634 |
msgid "Determines which currency to use for payments."
|
1635 |
msgstr ""
|
1636 |
|
1637 |
-
#: pro/includes/admin/class-settings.php:
|
1638 |
msgid ""
|
1639 |
"You do not have any marketing add-ons activated. You can head over to the <a "
|
1640 |
"href=\"%s\">Add-Ons page</a> to install and activate the add-on for your "
|
@@ -1932,107 +1989,111 @@ msgstr ""
|
|
1932 |
msgid "Resend Notifications"
|
1933 |
msgstr ""
|
1934 |
|
1935 |
-
#: pro/includes/class-provider.php:
|
1936 |
-
|
|
|
|
|
|
|
|
|
1937 |
msgid "You do not have permission"
|
1938 |
msgstr ""
|
1939 |
|
1940 |
-
#: pro/includes/class-provider.php:
|
1941 |
msgid "Full"
|
1942 |
msgstr ""
|
1943 |
|
1944 |
-
#: pro/includes/class-provider.php:
|
1945 |
msgid "Select Account"
|
1946 |
msgstr ""
|
1947 |
|
1948 |
-
#: pro/includes/class-provider.php:
|
1949 |
msgid "Add New Account"
|
1950 |
msgstr ""
|
1951 |
|
1952 |
-
#: pro/includes/class-provider.php:
|
1953 |
msgid "Select List"
|
1954 |
msgstr ""
|
1955 |
|
1956 |
-
#: pro/includes/class-provider.php:
|
1957 |
msgid "Select Groups"
|
1958 |
msgstr ""
|
1959 |
|
1960 |
-
#: pro/includes/class-provider.php:
|
1961 |
msgid ""
|
1962 |
"We also noticed that you have some segments in your list. You can select "
|
1963 |
"specific list segments below if needed. This is optional."
|
1964 |
msgstr ""
|
1965 |
|
1966 |
-
#: pro/includes/class-provider.php:
|
1967 |
msgid "List Fields"
|
1968 |
msgstr ""
|
1969 |
|
1970 |
-
#: pro/includes/class-provider.php:
|
1971 |
msgid "Available Form Fields"
|
1972 |
msgstr ""
|
1973 |
|
1974 |
-
#: pro/includes/class-provider.php:
|
1975 |
msgid "Conditional Logic"
|
1976 |
msgstr ""
|
1977 |
|
1978 |
-
#: pro/includes/class-provider.php:
|
1979 |
msgid "Enable conditional logic"
|
1980 |
msgstr ""
|
1981 |
|
1982 |
-
#: pro/includes/class-provider.php:
|
1983 |
msgid "Process this form if"
|
1984 |
msgstr ""
|
1985 |
|
1986 |
-
#: pro/includes/class-provider.php:
|
1987 |
-
msgid "
|
1988 |
msgstr ""
|
1989 |
|
1990 |
-
#: pro/includes/class-provider.php:
|
1991 |
-
msgid "is
|
1992 |
msgstr ""
|
1993 |
|
1994 |
-
#: pro/includes/class-provider.php:
|
1995 |
-
msgid "
|
1996 |
msgstr ""
|
1997 |
|
1998 |
-
#: pro/includes/class-provider.php:
|
1999 |
msgid "AND"
|
2000 |
msgstr ""
|
2001 |
|
2002 |
-
#: pro/includes/class-provider.php:
|
2003 |
msgid "Add rule group"
|
2004 |
msgstr ""
|
2005 |
|
2006 |
-
#: pro/includes/class-provider.php:
|
2007 |
-
msgid "Add New Connection"
|
2008 |
-
msgstr ""
|
2009 |
-
|
2010 |
-
#: pro/includes/class-provider.php:1068 pro/includes/class-provider.php:1103
|
2011 |
msgid "Missing data"
|
2012 |
msgstr ""
|
2013 |
|
2014 |
-
#: pro/includes/class-provider.php:
|
2015 |
msgid "Connection missing"
|
2016 |
msgstr ""
|
2017 |
|
2018 |
-
#: pro/includes/class-provider.php:
|
2019 |
msgid "Connected on: "
|
2020 |
msgstr ""
|
2021 |
|
2022 |
-
#: pro/includes/class-provider.php:
|
2023 |
msgid "Disconnect "
|
2024 |
msgstr ""
|
2025 |
|
2026 |
-
#: pro/includes/class-provider.php:
|
|
|
|
|
|
|
|
|
2027 |
msgid "Connected"
|
2028 |
msgstr ""
|
2029 |
|
2030 |
-
#: pro/includes/class-provider.php:
|
2031 |
msgid ""
|
2032 |
"Please fill out all of the fields below to add your new provider account."
|
2033 |
msgstr ""
|
2034 |
|
2035 |
-
#: pro/includes/class-provider.php:
|
2036 |
msgid "Connect to"
|
2037 |
msgstr ""
|
2038 |
|
@@ -2561,17 +2622,29 @@ msgstr ""
|
|
2561 |
msgid "Click the marketing tab to configure your newsletter service provider"
|
2562 |
msgstr ""
|
2563 |
|
2564 |
-
#: pro/wpforms-pro.php:
|
2565 |
msgid "Disable storing entry information in WordPress"
|
2566 |
msgstr ""
|
2567 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2568 |
#: wpforms.php:54
|
2569 |
msgid "Please deactivate WPForms Lite before activating WPForms"
|
2570 |
msgstr ""
|
2571 |
|
2572 |
-
#. #-#-#-#-# wpforms.pot (WPForms 1.2.
|
2573 |
#. Plugin URI of the plugin/theme
|
2574 |
-
#. #-#-#-#-# wpforms.pot (WPForms 1.2.
|
2575 |
#. Author URI of the plugin/theme
|
2576 |
msgid "https://wpforms.com"
|
2577 |
msgstr ""
|
2 |
# This file is distributed under the same license as the WPForms package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: WPForms 1.2.3\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wpforms\n"
|
7 |
+
"POT-Creation-Date: 2016-06-23 15:17:21+00:00\n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
20 |
msgid "No data provided"
|
21 |
msgstr ""
|
22 |
|
23 |
+
#: includes/admin/ajax-actions.php:66
|
24 |
msgid "An error occured and the form could not be saved"
|
25 |
msgstr ""
|
26 |
|
27 |
+
#: includes/admin/ajax-actions.php:90
|
28 |
msgid "No form title provided"
|
29 |
msgstr ""
|
30 |
|
31 |
+
#: includes/admin/ajax-actions.php:115
|
32 |
msgid "Error creating form"
|
33 |
msgstr ""
|
34 |
|
35 |
+
#: includes/admin/ajax-actions.php:132
|
36 |
msgid "No form ID provided"
|
37 |
msgstr ""
|
38 |
|
39 |
+
#: includes/admin/ajax-actions.php:144
|
40 |
msgid "Error updating form template"
|
41 |
msgstr ""
|
42 |
|
43 |
+
#: includes/admin/builder/class-builder.php:260
|
44 |
#: includes/admin/class-editor.php:96
|
45 |
#: pro/includes/admin/entries/class-entries.php:974
|
46 |
msgid "Cancel"
|
47 |
msgstr ""
|
48 |
|
49 |
+
#: includes/admin/builder/class-builder.php:261
|
50 |
msgid "OK"
|
51 |
msgstr ""
|
52 |
|
53 |
+
#: includes/admin/builder/class-builder.php:262
|
54 |
#: includes/admin/class-editor.php:70
|
55 |
msgid "Close"
|
56 |
msgstr ""
|
57 |
|
58 |
+
#: includes/admin/builder/class-builder.php:263
|
59 |
+
msgid ""
|
60 |
+
"Due to form changes, conditional logic rules have been removed or updated:"
|
61 |
+
msgstr ""
|
62 |
+
|
63 |
+
#: includes/admin/builder/class-builder.php:264
|
64 |
#: pro/includes/admin/entries/class-entries-table.php:141
|
65 |
msgid "Field"
|
66 |
msgstr ""
|
67 |
|
68 |
+
#: includes/admin/builder/class-builder.php:265
|
69 |
msgid "Field Locked"
|
70 |
msgstr ""
|
71 |
|
72 |
+
#: includes/admin/builder/class-builder.php:266
|
73 |
msgid "This field cannot be deleted because it required by the form template."
|
74 |
msgstr ""
|
75 |
|
76 |
+
#: includes/admin/builder/class-builder.php:267
|
77 |
msgid "Available Fields"
|
78 |
msgstr ""
|
79 |
|
80 |
+
#: includes/admin/builder/class-builder.php:268
|
81 |
msgid "No fields available"
|
82 |
msgstr ""
|
83 |
|
84 |
+
#: includes/admin/builder/class-builder.php:269
|
85 |
+
msgid "Heads up!"
|
86 |
+
msgstr ""
|
87 |
+
|
88 |
+
#: includes/admin/builder/class-builder.php:271
|
89 |
msgid "No email fields"
|
90 |
msgstr ""
|
91 |
|
92 |
+
#: includes/admin/builder/class-builder.php:272
|
93 |
+
msgid "Are you sure you want to delete this notification?"
|
94 |
+
msgstr ""
|
95 |
+
|
96 |
#: includes/admin/builder/class-builder.php:273
|
97 |
+
msgid "Enter a notification name"
|
|
|
|
|
98 |
msgstr ""
|
99 |
|
100 |
#: includes/admin/builder/class-builder.php:274
|
101 |
+
msgid "Eg: User Confirmation"
|
102 |
msgstr ""
|
103 |
|
104 |
#: includes/admin/builder/class-builder.php:275
|
105 |
+
msgid "You must provide a notification name"
|
106 |
msgstr ""
|
107 |
|
108 |
#: includes/admin/builder/class-builder.php:276
|
109 |
+
msgid ""
|
110 |
+
"Form must contain one notification. To disable all notifications use the "
|
111 |
+
"setting Notifications dropdown setting."
|
112 |
+
msgstr ""
|
113 |
+
|
114 |
+
#: includes/admin/builder/class-builder.php:277
|
115 |
+
#: lite/includes/admin/class-settings.php:116
|
116 |
+
#: pro/includes/admin/class-settings.php:118
|
117 |
+
msgid "Saving ..."
|
118 |
+
msgstr ""
|
119 |
+
|
120 |
+
#: includes/admin/builder/class-builder.php:278
|
121 |
+
msgid "Saved!"
|
122 |
+
msgstr ""
|
123 |
+
|
124 |
+
#: includes/admin/builder/class-builder.php:279
|
125 |
+
msgid "Save and Exit"
|
126 |
+
msgstr ""
|
127 |
+
|
128 |
+
#: includes/admin/builder/class-builder.php:280
|
129 |
+
#: includes/admin/builder/class-builder.php:337
|
130 |
msgid "Loading"
|
131 |
msgstr ""
|
132 |
|
133 |
+
#: includes/admin/builder/class-builder.php:286
|
134 |
msgid "Use Template"
|
135 |
msgstr ""
|
136 |
|
137 |
+
#: includes/admin/builder/class-builder.php:287
|
138 |
msgid ""
|
139 |
"Changing templates on an existing form will DELETE existing form fields. Are "
|
140 |
"you sure you want apply the new template?"
|
141 |
msgstr ""
|
142 |
|
143 |
+
#: includes/admin/builder/class-builder.php:288
|
144 |
msgid ""
|
145 |
"You are almost done. To embed this form on your site, please paste the "
|
146 |
"following shortcode inside a post or page."
|
147 |
msgstr ""
|
148 |
|
149 |
+
#: includes/admin/builder/class-builder.php:289
|
150 |
msgid "Or you can follow the instructions in this video."
|
151 |
msgstr ""
|
152 |
|
153 |
+
#: includes/admin/builder/class-builder.php:290
|
154 |
+
#: includes/admin/builder/class-builder.php:387
|
155 |
msgid "Exit"
|
156 |
msgstr ""
|
157 |
|
158 |
+
#: includes/admin/builder/class-builder.php:292
|
159 |
msgid "If you exit without saving, your changes will be lost."
|
160 |
msgstr ""
|
161 |
|
162 |
+
#: includes/admin/builder/class-builder.php:293
|
163 |
msgid "Are you sure you want to delete this field?"
|
164 |
msgstr ""
|
165 |
|
166 |
+
#: includes/admin/builder/class-builder.php:294
|
167 |
msgid "Please enter a form title."
|
168 |
msgstr ""
|
169 |
|
170 |
+
#: includes/admin/builder/class-builder.php:295
|
171 |
msgid "This item must contain at least one choice."
|
172 |
msgstr ""
|
173 |
|
174 |
+
#: includes/admin/builder/class-builder.php:296
|
175 |
+
#: includes/fields/class-base.php:235 lite/wpforms-lite.php:75
|
176 |
+
#: pro/wpforms-pro.php:262
|
177 |
msgid "Off"
|
178 |
msgstr ""
|
179 |
|
180 |
+
#: includes/admin/builder/class-builder.php:297
|
181 |
+
#: includes/fields/class-base.php:235 lite/wpforms-lite.php:74
|
182 |
+
#: pro/wpforms-pro.php:261
|
183 |
msgid "On"
|
184 |
msgstr ""
|
185 |
|
186 |
+
#: includes/admin/builder/class-builder.php:298
|
187 |
+
#: includes/templates/class-suggestion.php:59
|
188 |
+
msgid "Other"
|
189 |
+
msgstr ""
|
190 |
+
|
191 |
+
#: includes/admin/builder/class-builder.php:299
|
192 |
+
#: includes/class-frontend.php:477
|
193 |
#: pro/includes/fields/class-page-break.php:144
|
194 |
msgid "Previous"
|
195 |
msgstr ""
|
196 |
|
197 |
+
#: includes/admin/builder/class-builder.php:302
|
198 |
+
#: includes/admin/builder/functions.php:204 includes/fields/class-base.php:335
|
199 |
msgid "Show Smart Tags"
|
200 |
msgstr ""
|
201 |
|
202 |
+
#: includes/admin/builder/class-builder.php:303
|
203 |
msgid "Hide Smart Tags"
|
204 |
msgstr ""
|
205 |
|
206 |
+
#: includes/admin/builder/class-builder.php:304
|
207 |
+
msgid "-- Select Field --"
|
208 |
+
msgstr ""
|
209 |
+
|
210 |
+
#: includes/admin/builder/class-builder.php:305
|
211 |
+
#: pro/includes/class-provider.php:912
|
212 |
+
msgid "-- Select Choice --"
|
213 |
msgstr ""
|
214 |
|
215 |
+
#: includes/admin/builder/class-builder.php:360
|
216 |
msgid "Now editing"
|
217 |
msgstr ""
|
218 |
|
219 |
+
#: includes/admin/builder/class-builder.php:370
|
220 |
#: pro/includes/admin/entries/class-entries.php:510
|
221 |
msgid "Preview Form"
|
222 |
msgstr ""
|
223 |
|
224 |
+
#: includes/admin/builder/class-builder.php:372
|
225 |
#: includes/admin/overview/class-overview-table.php:159
|
226 |
msgid "Preview"
|
227 |
msgstr ""
|
228 |
|
229 |
+
#: includes/admin/builder/class-builder.php:375
|
230 |
msgid "Embed Form"
|
231 |
msgstr ""
|
232 |
|
233 |
+
#: includes/admin/builder/class-builder.php:377
|
234 |
msgid "Embed"
|
235 |
msgstr ""
|
236 |
|
237 |
+
#: includes/admin/builder/class-builder.php:380
|
238 |
msgid "Save Form"
|
239 |
msgstr ""
|
240 |
|
241 |
+
#: includes/admin/builder/class-builder.php:382
|
242 |
+
#: pro/includes/admin/class-settings.php:397
|
243 |
msgid "Save"
|
244 |
msgstr ""
|
245 |
|
246 |
+
#: includes/admin/builder/functions.php:149
|
247 |
msgid "Field #"
|
248 |
msgstr ""
|
249 |
|
301 |
msgstr ""
|
302 |
|
303 |
#: includes/admin/builder/panels/class-settings.php:21
|
304 |
+
#: includes/admin/class-menu.php:84 lite/includes/admin/class-settings.php:339
|
305 |
+
#: pro/includes/admin/class-settings.php:489
|
306 |
msgid "Settings"
|
307 |
msgstr ""
|
308 |
|
309 |
#: includes/admin/builder/panels/class-settings.php:57
|
310 |
#: includes/admin/builder/panels/class-settings.php:87
|
311 |
+
#: lite/includes/admin/class-settings.php:137
|
312 |
+
#: pro/includes/admin/class-settings.php:139
|
313 |
msgid "General"
|
314 |
msgstr ""
|
315 |
|
316 |
#: includes/admin/builder/panels/class-settings.php:58
|
317 |
+
#: lite/wpforms-lite.php:60 lite/wpforms-lite.php:70 pro/wpforms-pro.php:248
|
318 |
+
#: pro/wpforms-pro.php:257
|
319 |
+
msgid "Notifications"
|
320 |
msgstr ""
|
321 |
|
322 |
#: includes/admin/builder/panels/class-settings.php:59
|
364 |
msgid "Enable reCAPTCHA"
|
365 |
msgstr ""
|
366 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
367 |
#: includes/admin/builder/panels/class-settings.php:254
|
368 |
msgid "Confirmation Type"
|
369 |
msgstr ""
|
370 |
|
371 |
#: includes/admin/builder/panels/class-settings.php:258
|
372 |
+
#: includes/templates/class-suggestion.php:74 lite/wpforms-lite.php:172
|
373 |
+
#: pro/wpforms-pro.php:365
|
374 |
msgid "Message"
|
375 |
msgstr ""
|
376 |
|
407 |
msgstr ""
|
408 |
|
409 |
#: includes/admin/builder/panels/class-setup.php:54
|
410 |
+
#: includes/class-smart-tags.php:36
|
411 |
msgid "Form Name"
|
412 |
msgstr ""
|
413 |
|
467 |
"a>?"
|
468 |
msgstr ""
|
469 |
|
470 |
+
#. #-#-#-#-# wpforms.pot (WPForms 1.2.3) #-#-#-#-#
|
471 |
#. Plugin Name of the plugin/theme
|
472 |
+
#. #-#-#-#-# wpforms.pot (WPForms 1.2.3) #-#-#-#-#
|
473 |
#. Author of the plugin/theme
|
474 |
#: includes/admin/class-menu.php:39 includes/admin/class-menu.php:40
|
475 |
#: includes/admin/class-menu.php:51
|
486 |
|
487 |
#: includes/admin/class-menu.php:62
|
488 |
#: includes/admin/overview/class-overview.php:148
|
489 |
+
#: pro/includes/class-provider.php:1050
|
490 |
msgid "Add New"
|
491 |
msgstr ""
|
492 |
|
496 |
|
497 |
#: includes/admin/class-menu.php:72
|
498 |
#: includes/admin/overview/class-overview-table.php:152
|
499 |
+
#: pro/includes/admin/entries/class-entries.php:409 pro/wpforms-pro.php:203
|
500 |
msgid "Entries"
|
501 |
msgstr ""
|
502 |
|
668 |
msgid "Forms Overview"
|
669 |
msgstr ""
|
670 |
|
671 |
+
#: includes/class-frontend.php:282
|
672 |
msgid "Step"
|
673 |
msgstr ""
|
674 |
|
675 |
+
#: includes/class-frontend.php:283
|
676 |
msgid "of"
|
677 |
msgstr ""
|
678 |
|
680 |
msgid "WPForms Logs"
|
681 |
msgstr ""
|
682 |
|
683 |
+
#: includes/class-preview.php:95
|
684 |
msgid "Entry #%d"
|
685 |
msgstr ""
|
686 |
|
687 |
+
#: includes/class-preview.php:107
|
688 |
#: pro/includes/admin/entries/class-entries.php:896
|
689 |
msgid "This entry does not have any fields"
|
690 |
msgstr ""
|
691 |
|
692 |
+
#: includes/class-preview.php:124
|
693 |
#: pro/includes/admin/entries/class-entries.php:912
|
694 |
msgid "Field ID #%d"
|
695 |
msgstr ""
|
696 |
|
697 |
+
#: includes/class-preview.php:129
|
698 |
#: pro/includes/admin/entries/class-entries.php:917
|
699 |
msgid "Empty"
|
700 |
msgstr ""
|
701 |
|
702 |
+
#: includes/class-preview.php:173
|
703 |
msgid ""
|
704 |
"This is the WPForms preview page. All your form previews will be handled on "
|
705 |
"this page."
|
706 |
msgstr ""
|
707 |
|
708 |
+
#: includes/class-preview.php:174
|
709 |
msgid ""
|
710 |
"The page is set to private, so it is not publically accessible. Please do "
|
711 |
"not delete this page :) ."
|
712 |
msgstr ""
|
713 |
|
714 |
+
#: includes/class-preview.php:179
|
715 |
msgid "WPForms Preview"
|
716 |
msgstr ""
|
717 |
|
718 |
+
#: includes/class-preview.php:261
|
719 |
msgid "This is a preview of your form. This page not publically accessible."
|
720 |
msgstr ""
|
721 |
|
722 |
+
#: includes/class-preview.php:262
|
723 |
msgid " Preview"
|
724 |
msgstr ""
|
725 |
|
726 |
+
#: includes/class-process.php:79
|
727 |
msgid "Invalid form."
|
728 |
msgstr ""
|
729 |
|
730 |
+
#: includes/class-process.php:113
|
731 |
msgid "Incorrect reCAPTCHA, please try again."
|
732 |
msgstr ""
|
733 |
|
734 |
+
#: includes/class-process.php:120 includes/class-process.php:163
|
735 |
msgid "Form has not been submitted, please see the errors below."
|
736 |
msgstr ""
|
737 |
|
738 |
+
#: includes/class-process.php:127
|
739 |
msgid "WPForms honeypot field triggered."
|
740 |
msgstr ""
|
741 |
|
742 |
+
#: includes/class-process.php:345
|
743 |
msgid "New %s Entry"
|
744 |
msgstr ""
|
745 |
|
746 |
#: includes/class-smart-tags.php:33
|
747 |
+
msgid "Site Administer Email"
|
748 |
+
msgstr ""
|
749 |
+
|
750 |
+
#: includes/class-smart-tags.php:34
|
751 |
+
msgid "Entry ID"
|
752 |
msgstr ""
|
753 |
|
754 |
#: includes/class-smart-tags.php:35
|
755 |
+
msgid "Form ID"
|
756 |
+
msgstr ""
|
757 |
+
|
758 |
+
#: includes/class-smart-tags.php:37
|
759 |
msgid "Embedded Post/Page Title"
|
760 |
msgstr ""
|
761 |
|
762 |
+
#: includes/class-smart-tags.php:38
|
763 |
msgid "Embeded Post Page URL"
|
764 |
msgstr ""
|
765 |
|
766 |
+
#: includes/class-smart-tags.php:39
|
767 |
msgid "Embedded Post/Page ID"
|
768 |
msgstr ""
|
769 |
|
770 |
+
#: includes/class-smart-tags.php:40
|
771 |
#: pro/includes/admin/entries/class-entries-export.php:172
|
772 |
#: pro/includes/admin/entries/class-entries-table.php:119
|
773 |
#: pro/includes/fields/class-date-time.php:48
|
777 |
msgid "Date"
|
778 |
msgstr ""
|
779 |
|
780 |
+
#: includes/class-smart-tags.php:41
|
781 |
msgid "Query String Variable"
|
782 |
msgstr ""
|
783 |
|
784 |
+
#: includes/class-smart-tags.php:42
|
785 |
msgid "User IP Address"
|
786 |
msgstr ""
|
787 |
|
788 |
+
#: includes/class-smart-tags.php:43
|
789 |
msgid "User ID"
|
790 |
msgstr ""
|
791 |
|
792 |
+
#: includes/class-smart-tags.php:44
|
793 |
msgid "User Name"
|
794 |
msgstr ""
|
795 |
|
796 |
+
#: includes/class-smart-tags.php:45
|
797 |
msgid "User Email"
|
798 |
msgstr ""
|
799 |
|
800 |
+
#: includes/class-smart-tags.php:46
|
801 |
msgid "Referer URL"
|
802 |
msgstr ""
|
803 |
|
804 |
+
#: includes/class-smart-tags.php:47
|
805 |
msgid "Login URL"
|
806 |
msgstr ""
|
807 |
|
808 |
+
#: includes/class-smart-tags.php:48
|
809 |
msgid "Logout URL"
|
810 |
msgstr ""
|
811 |
|
812 |
+
#: includes/class-smart-tags.php:49
|
813 |
msgid "Register URL"
|
814 |
msgstr ""
|
815 |
|
816 |
+
#: includes/class-smart-tags.php:50
|
817 |
msgid "Lost Password URL"
|
818 |
msgstr ""
|
819 |
|
829 |
msgid "Display form description"
|
830 |
msgstr ""
|
831 |
|
832 |
+
#: includes/emails/class-emails.php:254
|
833 |
msgid ""
|
834 |
"You cannot send emails with WPForms_WP_Emails until init/admin_init has been "
|
835 |
"reached"
|
836 |
msgstr ""
|
837 |
|
838 |
+
#: includes/emails/class-emails.php:370 includes/emails/class-emails.php:392
|
839 |
msgid "Field ID #"
|
840 |
msgstr ""
|
841 |
|
1031 |
msgstr ""
|
1032 |
|
1033 |
#: includes/fields/class-email.php:21
|
1034 |
+
#: lite/includes/admin/class-settings.php:210
|
1035 |
+
#: pro/includes/admin/class-settings.php:271
|
1036 |
#: pro/includes/templates/class-donation.php:42
|
1037 |
#: pro/includes/templates/class-order.php:42
|
1038 |
#: pro/includes/templates/class-request-quote.php:46
|
1111 |
msgstr ""
|
1112 |
|
1113 |
#: includes/fields/class-name.php:160 includes/fields/class-name.php:242
|
1114 |
+
#: pro/includes/class-provider.php:415
|
1115 |
msgid "First"
|
1116 |
msgstr ""
|
1117 |
|
1118 |
#: includes/fields/class-name.php:164 includes/fields/class-name.php:260
|
1119 |
+
#: pro/includes/class-provider.php:427
|
1120 |
msgid "Middle"
|
1121 |
msgstr ""
|
1122 |
|
1123 |
#: includes/fields/class-name.php:168 includes/fields/class-name.php:287
|
1124 |
+
#: pro/includes/class-provider.php:439
|
1125 |
msgid "Last"
|
1126 |
msgstr ""
|
1127 |
|
1214 |
msgid "Product Development"
|
1215 |
msgstr ""
|
1216 |
|
|
|
|
|
|
|
|
|
1217 |
#: includes/templates/class-suggestion.php:67
|
1218 |
msgid "Subject"
|
1219 |
msgstr ""
|
1220 |
|
|
|
|
|
|
|
|
|
|
|
1221 |
#: lite/includes/admin/class-settings.php:117
|
1222 |
#: pro/includes/admin/class-settings.php:119
|
1223 |
+
msgid "Are you sure you want to disconnect this account?"
|
1224 |
msgstr ""
|
1225 |
|
1226 |
#: lite/includes/admin/class-settings.php:118
|
1227 |
#: pro/includes/admin/class-settings.php:120
|
1228 |
+
msgid "Upload or Choose Your Image"
|
1229 |
+
msgstr ""
|
1230 |
+
|
1231 |
+
#: lite/includes/admin/class-settings.php:119
|
1232 |
+
#: pro/includes/admin/class-settings.php:121
|
1233 |
msgid "Use Image"
|
1234 |
msgstr ""
|
1235 |
|
1236 |
+
#: lite/includes/admin/class-settings.php:138
|
1237 |
+
#: pro/includes/admin/class-settings.php:142
|
1238 |
+
msgid "System Information"
|
1239 |
+
msgstr ""
|
1240 |
+
|
1241 |
+
#: lite/includes/admin/class-settings.php:161
|
1242 |
+
#: pro/includes/admin/class-settings.php:165
|
1243 |
+
#: pro/includes/admin/class-settings.php:355
|
1244 |
msgid "Settings check failed."
|
1245 |
msgstr ""
|
1246 |
|
1247 |
+
#: lite/includes/admin/class-settings.php:179
|
1248 |
+
#: pro/includes/admin/class-settings.php:183
|
1249 |
msgid "General settings updated."
|
1250 |
msgstr ""
|
1251 |
|
1252 |
+
#: lite/includes/admin/class-settings.php:196
|
1253 |
+
#: pro/includes/admin/class-settings.php:257
|
1254 |
msgid "Include Form Styling"
|
1255 |
msgstr ""
|
1256 |
|
1257 |
+
#: lite/includes/admin/class-settings.php:200
|
1258 |
+
#: pro/includes/admin/class-settings.php:261
|
1259 |
msgid "Base and form theme styling"
|
1260 |
msgstr ""
|
1261 |
|
1262 |
+
#: lite/includes/admin/class-settings.php:201
|
1263 |
+
#: pro/includes/admin/class-settings.php:262
|
1264 |
msgid "Base styling only"
|
1265 |
msgstr ""
|
1266 |
|
1267 |
+
#: lite/includes/admin/class-settings.php:202
|
1268 |
+
#: pro/includes/admin/class-settings.php:263
|
1269 |
#: pro/includes/fields/class-page-break.php:58
|
1270 |
msgid "None"
|
1271 |
msgstr ""
|
1272 |
|
1273 |
+
#: lite/includes/admin/class-settings.php:204
|
1274 |
+
#: pro/includes/admin/class-settings.php:265
|
1275 |
msgid "Determines which CSS files to load for the site."
|
1276 |
msgstr ""
|
1277 |
|
1278 |
+
#: lite/includes/admin/class-settings.php:215
|
1279 |
+
#: pro/includes/admin/class-settings.php:276
|
1280 |
msgid "Email Template"
|
1281 |
msgstr ""
|
1282 |
|
1283 |
+
#: lite/includes/admin/class-settings.php:219
|
1284 |
+
#: pro/includes/admin/class-settings.php:280
|
1285 |
msgid "Default HTML template"
|
1286 |
msgstr ""
|
1287 |
|
1288 |
+
#: lite/includes/admin/class-settings.php:220
|
1289 |
+
#: pro/includes/admin/class-settings.php:281
|
1290 |
msgid "Plain Text"
|
1291 |
msgstr ""
|
1292 |
|
1293 |
+
#: lite/includes/admin/class-settings.php:222
|
1294 |
+
#: pro/includes/admin/class-settings.php:283
|
1295 |
msgid "Determines how email notifications will be formatted."
|
1296 |
msgstr ""
|
1297 |
|
1298 |
+
#: lite/includes/admin/class-settings.php:227
|
1299 |
+
#: pro/includes/admin/class-settings.php:288
|
1300 |
msgid "Email Header Image "
|
1301 |
msgstr ""
|
1302 |
|
1303 |
+
#: lite/includes/admin/class-settings.php:239
|
1304 |
+
#: pro/includes/admin/class-settings.php:300
|
1305 |
msgid "Upload Image"
|
1306 |
msgstr ""
|
1307 |
|
1308 |
+
#: lite/includes/admin/class-settings.php:241
|
1309 |
+
#: pro/includes/admin/class-settings.php:302
|
1310 |
msgid ""
|
1311 |
"Upload or choose a logo to be displayed at the top of email notifications."
|
1312 |
msgstr ""
|
1313 |
|
1314 |
+
#: lite/includes/admin/class-settings.php:242
|
1315 |
+
#: pro/includes/admin/class-settings.php:303
|
1316 |
msgid "Recommended size is 300x100 or smaller for best support on all devices."
|
1317 |
msgstr ""
|
1318 |
|
1319 |
+
#: lite/includes/admin/class-settings.php:249
|
1320 |
+
#: pro/includes/admin/class-settings.php:310
|
1321 |
msgid "reCAPTCHA"
|
1322 |
msgstr ""
|
1323 |
|
1324 |
+
#: lite/includes/admin/class-settings.php:250
|
1325 |
+
#: pro/includes/admin/class-settings.php:311
|
1326 |
msgid ""
|
1327 |
"reCAPTCHA is a free anti-spam service from Google. Its helps protect your "
|
1328 |
"website from spam and abuse while letting real people pass through with "
|
1332 |
"\"_blank\">read our walk through</a> for step-by-step directions."
|
1333 |
msgstr ""
|
1334 |
|
1335 |
+
#: lite/includes/admin/class-settings.php:255
|
1336 |
+
#: pro/includes/admin/class-settings.php:316
|
1337 |
msgid "reCAPTCHA Site key"
|
1338 |
msgstr ""
|
1339 |
|
1340 |
+
#: lite/includes/admin/class-settings.php:263
|
1341 |
+
#: pro/includes/admin/class-settings.php:324
|
1342 |
msgid "reCAPTCHA Secret key"
|
1343 |
msgstr ""
|
1344 |
|
1345 |
+
#: lite/includes/admin/class-settings.php:272
|
1346 |
+
#: pro/includes/admin/class-settings.php:333
|
1347 |
msgid "Save General Settings"
|
1348 |
msgstr ""
|
1349 |
|
1350 |
+
#: lite/wpforms-lite.php:83 pro/wpforms-pro.php:269
|
1351 |
+
msgid "Default Notification"
|
1352 |
+
msgstr ""
|
1353 |
+
|
1354 |
+
#: lite/wpforms-lite.php:91 pro/wpforms-pro.php:284
|
1355 |
+
msgid "Send To Email Address"
|
1356 |
+
msgstr ""
|
1357 |
+
|
1358 |
+
#: lite/wpforms-lite.php:94 pro/wpforms-pro.php:287
|
1359 |
+
msgid ""
|
1360 |
+
"Enter the email address to receive form entry notifications. For multiple "
|
1361 |
+
"notifications, seperate email addresses with a comma."
|
1362 |
+
msgstr ""
|
1363 |
+
|
1364 |
+
#: lite/wpforms-lite.php:109 pro/wpforms-pro.php:302
|
1365 |
+
msgid "Email Subject"
|
1366 |
+
msgstr ""
|
1367 |
+
|
1368 |
+
#: lite/wpforms-lite.php:111 pro/wpforms-pro.php:304
|
1369 |
+
msgid "New Entry: "
|
1370 |
+
msgstr ""
|
1371 |
+
|
1372 |
+
#: lite/wpforms-lite.php:125 pro/wpforms-pro.php:318
|
1373 |
+
msgid "From Name"
|
1374 |
+
msgstr ""
|
1375 |
+
|
1376 |
+
#: lite/wpforms-lite.php:141 pro/wpforms-pro.php:334
|
1377 |
+
msgid "From Email"
|
1378 |
+
msgstr ""
|
1379 |
+
|
1380 |
+
#: lite/wpforms-lite.php:157 pro/wpforms-pro.php:350
|
1381 |
+
msgid "Reply-To"
|
1382 |
+
msgstr ""
|
1383 |
+
|
1384 |
+
#: lite/wpforms-lite.php:182 pro/wpforms-pro.php:375
|
1385 |
+
msgid ""
|
1386 |
+
"To display all form fields, use the <code>{all_fields}</code> Smart Tag."
|
1387 |
+
msgstr ""
|
1388 |
+
|
1389 |
+
#: lite/wpforms-lite.php:414
|
1390 |
msgid "is a PRO Feature"
|
1391 |
msgstr ""
|
1392 |
|
1393 |
+
#: lite/wpforms-lite.php:415
|
1394 |
msgid ""
|
1395 |
"We're sorry, %name% is not available on your plan.<br><br>Please upgrade to "
|
1396 |
"the PRO plan to unlock all these awesome features."
|
1397 |
msgstr ""
|
1398 |
|
1399 |
+
#: lite/wpforms-lite.php:416
|
1400 |
msgid "Upgrade to PRO"
|
1401 |
msgstr ""
|
1402 |
|
1430 |
msgstr ""
|
1431 |
|
1432 |
#: pro/includes/admin/builder/panels/class-payments.php:21
|
1433 |
+
#: pro/includes/admin/class-settings.php:140
|
1434 |
msgid "Payments"
|
1435 |
msgstr ""
|
1436 |
|
1477 |
msgstr ""
|
1478 |
|
1479 |
#: pro/includes/admin/builder/panels/class-providers.php:57
|
1480 |
+
msgid "Enter a %type% nickname"
|
1481 |
msgstr ""
|
1482 |
|
1483 |
#: pro/includes/admin/builder/panels/class-providers.php:58
|
1630 |
"continue receiving automatic updates."
|
1631 |
msgstr ""
|
1632 |
|
1633 |
+
#: pro/includes/admin/class-settings.php:141
|
1634 |
msgid "Integrations"
|
1635 |
msgstr ""
|
1636 |
|
1637 |
+
#: pro/includes/admin/class-settings.php:190
|
1638 |
msgid "Please enter a license key to verify."
|
1639 |
msgstr ""
|
1640 |
|
1641 |
+
#: pro/includes/admin/class-settings.php:220
|
1642 |
msgid "License"
|
1643 |
msgstr ""
|
1644 |
|
1645 |
+
#: pro/includes/admin/class-settings.php:221
|
1646 |
msgid "Your license key provides access to updates and Add-ons. "
|
1647 |
msgstr ""
|
1648 |
|
1649 |
+
#: pro/includes/admin/class-settings.php:226
|
1650 |
msgid "License Key"
|
1651 |
msgstr ""
|
1652 |
|
1653 |
+
#: pro/includes/admin/class-settings.php:230
|
1654 |
msgid "Verify Key"
|
1655 |
msgstr ""
|
1656 |
|
1657 |
+
#: pro/includes/admin/class-settings.php:232
|
1658 |
msgid "Deactivate Key"
|
1659 |
msgstr ""
|
1660 |
|
1661 |
+
#: pro/includes/admin/class-settings.php:240
|
1662 |
msgid "License Key Type"
|
1663 |
msgstr ""
|
1664 |
|
1665 |
+
#: pro/includes/admin/class-settings.php:243
|
1666 |
msgid "Your license key type for this site is <strong>%s.</strong>"
|
1667 |
msgstr ""
|
1668 |
|
1669 |
+
#: pro/includes/admin/class-settings.php:244
|
1670 |
msgid "Refresh Key"
|
1671 |
msgstr ""
|
1672 |
|
1673 |
+
#: pro/includes/admin/class-settings.php:245
|
1674 |
msgid ""
|
1675 |
"If your license has been upgraded or is incorrect, you may force a refresh."
|
1676 |
msgstr ""
|
1677 |
|
1678 |
+
#: pro/includes/admin/class-settings.php:366
|
1679 |
msgid "Settings updated."
|
1680 |
msgstr ""
|
1681 |
|
1682 |
+
#: pro/includes/admin/class-settings.php:380
|
1683 |
msgid "Currency"
|
1684 |
msgstr ""
|
1685 |
|
1686 |
+
#: pro/includes/admin/class-settings.php:384
|
1687 |
msgid "US Dollars (USD)"
|
1688 |
msgstr ""
|
1689 |
|
1690 |
+
#: pro/includes/admin/class-settings.php:386
|
1691 |
msgid "Determines which currency to use for payments."
|
1692 |
msgstr ""
|
1693 |
|
1694 |
+
#: pro/includes/admin/class-settings.php:417
|
1695 |
msgid ""
|
1696 |
"You do not have any marketing add-ons activated. You can head over to the <a "
|
1697 |
"href=\"%s\">Add-Ons page</a> to install and activate the add-on for your "
|
1989 |
msgid "Resend Notifications"
|
1990 |
msgstr ""
|
1991 |
|
1992 |
+
#: pro/includes/class-provider.php:84
|
1993 |
+
msgid "Connection"
|
1994 |
+
msgstr ""
|
1995 |
+
|
1996 |
+
#: pro/includes/class-provider.php:149 pro/includes/class-provider.php:1095
|
1997 |
+
#: pro/includes/class-provider.php:1130
|
1998 |
msgid "You do not have permission"
|
1999 |
msgstr ""
|
2000 |
|
2001 |
+
#: pro/includes/class-provider.php:404
|
2002 |
msgid "Full"
|
2003 |
msgstr ""
|
2004 |
|
2005 |
+
#: pro/includes/class-provider.php:626
|
2006 |
msgid "Select Account"
|
2007 |
msgstr ""
|
2008 |
|
2009 |
+
#: pro/includes/class-provider.php:638 pro/includes/class-provider.php:1209
|
2010 |
msgid "Add New Account"
|
2011 |
msgstr ""
|
2012 |
|
2013 |
+
#: pro/includes/class-provider.php:668
|
2014 |
msgid "Select List"
|
2015 |
msgstr ""
|
2016 |
|
2017 |
+
#: pro/includes/class-provider.php:708
|
2018 |
msgid "Select Groups"
|
2019 |
msgstr ""
|
2020 |
|
2021 |
+
#: pro/includes/class-provider.php:710
|
2022 |
msgid ""
|
2023 |
"We also noticed that you have some segments in your list. You can select "
|
2024 |
"specific list segments below if needed. This is optional."
|
2025 |
msgstr ""
|
2026 |
|
2027 |
+
#: pro/includes/class-provider.php:765 pro/includes/class-provider.php:770
|
2028 |
msgid "List Fields"
|
2029 |
msgstr ""
|
2030 |
|
2031 |
+
#: pro/includes/class-provider.php:770
|
2032 |
msgid "Available Form Fields"
|
2033 |
msgstr ""
|
2034 |
|
2035 |
+
#: pro/includes/class-provider.php:831
|
2036 |
msgid "Conditional Logic"
|
2037 |
msgstr ""
|
2038 |
|
2039 |
+
#: pro/includes/class-provider.php:840
|
2040 |
msgid "Enable conditional logic"
|
2041 |
msgstr ""
|
2042 |
|
2043 |
+
#: pro/includes/class-provider.php:847
|
2044 |
msgid "Process this form if"
|
2045 |
msgstr ""
|
2046 |
|
2047 |
+
#: pro/includes/class-provider.php:878
|
2048 |
+
msgid "-- Select field --"
|
2049 |
msgstr ""
|
2050 |
|
2051 |
+
#: pro/includes/class-provider.php:895
|
2052 |
+
msgid "is"
|
2053 |
msgstr ""
|
2054 |
|
2055 |
+
#: pro/includes/class-provider.php:896
|
2056 |
+
msgid "is not"
|
2057 |
msgstr ""
|
2058 |
|
2059 |
+
#: pro/includes/class-provider.php:930
|
2060 |
msgid "AND"
|
2061 |
msgstr ""
|
2062 |
|
2063 |
+
#: pro/includes/class-provider.php:947
|
2064 |
msgid "Add rule group"
|
2065 |
msgstr ""
|
2066 |
|
2067 |
+
#: pro/includes/class-provider.php:1099 pro/includes/class-provider.php:1134
|
|
|
|
|
|
|
|
|
2068 |
msgid "Missing data"
|
2069 |
msgstr ""
|
2070 |
|
2071 |
+
#: pro/includes/class-provider.php:1111
|
2072 |
msgid "Connection missing"
|
2073 |
msgstr ""
|
2074 |
|
2075 |
+
#: pro/includes/class-provider.php:1148 pro/includes/class-provider.php:1199
|
2076 |
msgid "Connected on: "
|
2077 |
msgstr ""
|
2078 |
|
2079 |
+
#: pro/includes/class-provider.php:1149 pro/includes/class-provider.php:1200
|
2080 |
msgid "Disconnect "
|
2081 |
msgstr ""
|
2082 |
|
2083 |
+
#: pro/includes/class-provider.php:1184
|
2084 |
+
msgid "Integrate %s with WPForms"
|
2085 |
+
msgstr ""
|
2086 |
+
|
2087 |
+
#: pro/includes/class-provider.php:1185
|
2088 |
msgid "Connected"
|
2089 |
msgstr ""
|
2090 |
|
2091 |
+
#: pro/includes/class-provider.php:1215
|
2092 |
msgid ""
|
2093 |
"Please fill out all of the fields below to add your new provider account."
|
2094 |
msgstr ""
|
2095 |
|
2096 |
+
#: pro/includes/class-provider.php:1221
|
2097 |
msgid "Connect to"
|
2098 |
msgstr ""
|
2099 |
|
2622 |
msgid "Click the marketing tab to configure your newsletter service provider"
|
2623 |
msgstr ""
|
2624 |
|
2625 |
+
#: pro/wpforms-pro.php:190
|
2626 |
msgid "Disable storing entry information in WordPress"
|
2627 |
msgstr ""
|
2628 |
|
2629 |
+
#: pro/wpforms-pro.php:249
|
2630 |
+
msgid "Add New Notification"
|
2631 |
+
msgstr ""
|
2632 |
+
|
2633 |
+
#: pro/wpforms-pro.php:388
|
2634 |
+
msgid "Send"
|
2635 |
+
msgstr ""
|
2636 |
+
|
2637 |
+
#: pro/wpforms-pro.php:389
|
2638 |
+
msgid "Don't send"
|
2639 |
+
msgstr ""
|
2640 |
+
|
2641 |
#: wpforms.php:54
|
2642 |
msgid "Please deactivate WPForms Lite before activating WPForms"
|
2643 |
msgstr ""
|
2644 |
|
2645 |
+
#. #-#-#-#-# wpforms.pot (WPForms 1.2.3) #-#-#-#-#
|
2646 |
#. Plugin URI of the plugin/theme
|
2647 |
+
#. #-#-#-#-# wpforms.pot (WPForms 1.2.3) #-#-#-#-#
|
2648 |
#. Author URI of the plugin/theme
|
2649 |
msgid "https://wpforms.com"
|
2650 |
msgstr ""
|
lite/includes/admin/class-settings.php
CHANGED
@@ -66,6 +66,7 @@ class WPForms_Settings {
|
|
66 |
$this->options = get_option( 'wpforms_settings', array() );
|
67 |
|
68 |
add_action( 'wpforms_tab_settings_general', array( $this, 'settings_page_tab_general' ) );
|
|
|
69 |
add_action( 'admin_enqueue_scripts', array( $this, 'enqueues' ) );
|
70 |
add_action( 'wpforms_admin_page', array( $this, 'output' ) );
|
71 |
|
@@ -134,6 +135,7 @@ class WPForms_Settings {
|
|
134 |
// Define our base tabs
|
135 |
$tabs = array(
|
136 |
'general' => __( 'General', 'wpforms' ),
|
|
|
137 |
);
|
138 |
|
139 |
// Allow for addons and extensions to add additional tabs
|
@@ -275,6 +277,22 @@ class WPForms_Settings {
|
|
275 |
<?php
|
276 |
}
|
277 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
278 |
/**
|
279 |
* Build the output for the plugin settings page.
|
280 |
*
|
@@ -323,5 +341,186 @@ class WPForms_Settings {
|
|
323 |
|
324 |
return $links;
|
325 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
326 |
}
|
327 |
new WPForms_Settings;
|
66 |
$this->options = get_option( 'wpforms_settings', array() );
|
67 |
|
68 |
add_action( 'wpforms_tab_settings_general', array( $this, 'settings_page_tab_general' ) );
|
69 |
+
add_action( 'wpforms_tab_settings_system', array( $this, 'settings_page_tab_system' ) );
|
70 |
add_action( 'admin_enqueue_scripts', array( $this, 'enqueues' ) );
|
71 |
add_action( 'wpforms_admin_page', array( $this, 'output' ) );
|
72 |
|
135 |
// Define our base tabs
|
136 |
$tabs = array(
|
137 |
'general' => __( 'General', 'wpforms' ),
|
138 |
+
'system' => __( 'System Information', 'wpforms' ),
|
139 |
);
|
140 |
|
141 |
// Allow for addons and extensions to add additional tabs
|
277 |
<?php
|
278 |
}
|
279 |
|
280 |
+
/**
|
281 |
+
* Build the output for System Info (system) tab on the settings page.
|
282 |
+
*
|
283 |
+
* @since 1.2.3
|
284 |
+
*/
|
285 |
+
public function settings_page_tab_system() {
|
286 |
+
|
287 |
+
?>
|
288 |
+
<div id="wpforms-settings-system">
|
289 |
+
|
290 |
+
<textarea readonly="readonly" class="system-info-textarea"><?php echo $this->get_system_info(); ?></textarea>
|
291 |
+
|
292 |
+
</div>
|
293 |
+
<?php
|
294 |
+
}
|
295 |
+
|
296 |
/**
|
297 |
* Build the output for the plugin settings page.
|
298 |
*
|
341 |
|
342 |
return $links;
|
343 |
}
|
344 |
+
|
345 |
+
/**
|
346 |
+
* Get system information.
|
347 |
+
*
|
348 |
+
* Based on a function from Easy Digital Downloads by Pippin Williamson
|
349 |
+
*
|
350 |
+
* @link https://github.com/easydigitaldownloads/easy-digital-downloads/blob/master/includes/admin/tools.php#L470
|
351 |
+
* @since 1.2.3
|
352 |
+
* @return string
|
353 |
+
*/
|
354 |
+
public function get_system_info() {
|
355 |
+
|
356 |
+
global $wpdb;
|
357 |
+
|
358 |
+
// Get theme info
|
359 |
+
$theme_data = wp_get_theme();
|
360 |
+
$theme = $theme_data->Name . ' ' . $theme_data->Version;
|
361 |
+
|
362 |
+
$return = '### Begin System Info ###' . "\n\n";
|
363 |
+
|
364 |
+
// Start with the basics...
|
365 |
+
$return .= '-- Site Info' . "\n\n";
|
366 |
+
$return .= 'Site URL: ' . site_url() . "\n";
|
367 |
+
$return .= 'Home URL: ' . home_url() . "\n";
|
368 |
+
$return .= 'Multisite: ' . ( is_multisite() ? 'Yes' : 'No' ) . "\n";
|
369 |
+
|
370 |
+
// WordPress configuration
|
371 |
+
$return .= "\n" . '-- WordPress Configuration' . "\n\n";
|
372 |
+
$return .= 'Version: ' . get_bloginfo( 'version' ) . "\n";
|
373 |
+
$return .= 'Language: ' . ( defined( 'WPLANG' ) && WPLANG ? WPLANG : 'en_US' ) . "\n";
|
374 |
+
$return .= 'Permalink Structure: ' . ( get_option( 'permalink_structure' ) ? get_option( 'permalink_structure' ) : 'Default' ) . "\n";
|
375 |
+
$return .= 'Active Theme: ' . $theme . "\n";
|
376 |
+
$return .= 'Show On Front: ' . get_option( 'show_on_front' ) . "\n";
|
377 |
+
|
378 |
+
// Only show page specs if frontpage is set to 'page'
|
379 |
+
if( get_option( 'show_on_front' ) == 'page' ) {
|
380 |
+
$front_page_id = get_option( 'page_on_front' );
|
381 |
+
$blog_page_id = get_option( 'page_for_posts' );
|
382 |
+
$return .= 'Page On Front: ' . ( $front_page_id != 0 ? get_the_title( $front_page_id ) . ' (#' . $front_page_id . ')' : 'Unset' ) . "\n";
|
383 |
+
$return .= 'Page For Posts: ' . ( $blog_page_id != 0 ? get_the_title( $blog_page_id ) . ' (#' . $blog_page_id . ')' : 'Unset' ) . "\n";
|
384 |
+
}
|
385 |
+
|
386 |
+
$return .= 'ABSPATH: ' . ABSPATH . "\n";
|
387 |
+
|
388 |
+
// Make sure wp_remote_post() is working
|
389 |
+
/*
|
390 |
+
$request['cmd'] = '_notify-validate';
|
391 |
+
$params = array(
|
392 |
+
'sslverify' => false,
|
393 |
+
'timeout' => 60,
|
394 |
+
'user-agent' => 'WPForms/' . WPFORMS_VERSION,
|
395 |
+
'body' => $request
|
396 |
+
);
|
397 |
+
|
398 |
+
$response = wp_remote_post( 'https://www.paypal.com/cgi-bin/webscr', $params );
|
399 |
+
|
400 |
+
if( !is_wp_error( $response ) && $response['response']['code'] >= 200 && $response['response']['code'] < 300 ) {
|
401 |
+
$WP_REMOTE_POST = 'wp_remote_post() works';
|
402 |
+
} else {
|
403 |
+
$WP_REMOTE_POST = 'wp_remote_post() does not work';
|
404 |
+
}
|
405 |
+
$return .= 'Remote Post: ' . $WP_REMOTE_POST . "\n";
|
406 |
+
*/
|
407 |
+
|
408 |
+
$return .= 'Table Prefix: ' . 'Length: ' . strlen( $wpdb->prefix ) . ' Status: ' . ( strlen( $wpdb->prefix ) > 16 ? 'ERROR: Too long' : 'Acceptable' ) . "\n";
|
409 |
+
$return .= 'WP_DEBUG: ' . ( defined( 'WP_DEBUG' ) ? WP_DEBUG ? 'Enabled' : 'Disabled' : 'Not set' ) . "\n";
|
410 |
+
$return .= 'WPFORMS_DEBUG: ' . ( defined( 'WPFORMS_DEBUG' ) ? WPFORMS_DEBUG ? 'Enabled' : 'Disabled' : 'Not set' ) . "\n";
|
411 |
+
$return .= 'Memory Limit: ' . WP_MEMORY_LIMIT . "\n";
|
412 |
+
$return .= 'Registered Post Stati: ' . implode( ', ', get_post_stati() ) . "\n";
|
413 |
+
|
414 |
+
// @todo WPForms configuration/specific details
|
415 |
+
$return .= "\n" . '-- WordPress Uploads/Constants' . "\n\n";
|
416 |
+
$return .= 'WP_CONTENT_DIR: ' . ( defined( 'WP_CONTENT_DIR' ) ? WP_CONTENT_DIR ? WP_CONTENT_DIR : 'Disabled' : 'Not set' ) . "\n";
|
417 |
+
$return .= 'WP_CONTENT_URL: ' . ( defined( 'WP_CONTENT_URL' ) ? WP_CONTENT_URL ? WP_CONTENT_URL : 'Disabled' : 'Not set' ) . "\n";
|
418 |
+
$return .= 'UPLOADS: ' . ( defined( 'UPLOADS' ) ? UPLOADS ? UPLOADS : 'Disabled' : 'Not set' ) . "\n";
|
419 |
+
$uploads_dir = wp_upload_dir();
|
420 |
+
$return .= 'wp_uploads_dir() path: ' . $uploads_dir['path']. "\n";
|
421 |
+
$return .= 'wp_uploads_dir() url: ' . $uploads_dir['url']. "\n";
|
422 |
+
$return .= 'wp_uploads_dir() basedir: ' . $uploads_dir['basedir']. "\n";
|
423 |
+
$return .= 'wp_uploads_dir() baseurl: ' . $uploads_dir['baseurl']. "\n";
|
424 |
+
|
425 |
+
|
426 |
+
// Get plugins that have an update
|
427 |
+
$updates = get_plugin_updates();
|
428 |
+
|
429 |
+
// Must-use plugins
|
430 |
+
// NOTE: MU plugins can't show updates!
|
431 |
+
$muplugins = get_mu_plugins();
|
432 |
+
if( count( $muplugins ) > 0 && !empty( $muplugins ) ) {
|
433 |
+
$return .= "\n" . '-- Must-Use Plugins' . "\n\n";
|
434 |
+
|
435 |
+
foreach( $muplugins as $plugin => $plugin_data ) {
|
436 |
+
$return .= $plugin_data['Name'] . ': ' . $plugin_data['Version'] . "\n";
|
437 |
+
}
|
438 |
+
}
|
439 |
+
|
440 |
+
// WordPress active plugins
|
441 |
+
$return .= "\n" . '-- WordPress Active Plugins' . "\n\n";
|
442 |
+
|
443 |
+
$plugins = get_plugins();
|
444 |
+
$active_plugins = get_option( 'active_plugins', array() );
|
445 |
+
|
446 |
+
foreach( $plugins as $plugin_path => $plugin ) {
|
447 |
+
if( !in_array( $plugin_path, $active_plugins ) )
|
448 |
+
continue;
|
449 |
+
|
450 |
+
$update = ( array_key_exists( $plugin_path, $updates ) ) ? ' (needs update - ' . $updates[$plugin_path]->update->new_version . ')' : '';
|
451 |
+
$return .= $plugin['Name'] . ': ' . $plugin['Version'] . $update . "\n";
|
452 |
+
}
|
453 |
+
|
454 |
+
// WordPress inactive plugins
|
455 |
+
$return .= "\n" . '-- WordPress Inactive Plugins' . "\n\n";
|
456 |
+
|
457 |
+
foreach( $plugins as $plugin_path => $plugin ) {
|
458 |
+
if( in_array( $plugin_path, $active_plugins ) )
|
459 |
+
continue;
|
460 |
+
|
461 |
+
$update = ( array_key_exists( $plugin_path, $updates ) ) ? ' (needs update - ' . $updates[$plugin_path]->update->new_version . ')' : '';
|
462 |
+
$return .= $plugin['Name'] . ': ' . $plugin['Version'] . $update . "\n";
|
463 |
+
}
|
464 |
+
|
465 |
+
if( is_multisite() ) {
|
466 |
+
// WordPress Multisite active plugins
|
467 |
+
$return .= "\n" . '-- Network Active Plugins' . "\n\n";
|
468 |
+
|
469 |
+
$plugins = wp_get_active_network_plugins();
|
470 |
+
$active_plugins = get_site_option( 'active_sitewide_plugins', array() );
|
471 |
+
|
472 |
+
foreach( $plugins as $plugin_path ) {
|
473 |
+
$plugin_base = plugin_basename( $plugin_path );
|
474 |
+
|
475 |
+
if( !array_key_exists( $plugin_base, $active_plugins ) )
|
476 |
+
continue;
|
477 |
+
|
478 |
+
$update = ( array_key_exists( $plugin_path, $updates ) ) ? ' (needs update - ' . $updates[$plugin_path]->update->new_version . ')' : '';
|
479 |
+
$plugin = get_plugin_data( $plugin_path );
|
480 |
+
$return .= $plugin['Name'] . ': ' . $plugin['Version'] . $update . "\n";
|
481 |
+
}
|
482 |
+
}
|
483 |
+
|
484 |
+
// Server configuration (really just versioning)
|
485 |
+
$return .= "\n" . '-- Webserver Configuration' . "\n\n";
|
486 |
+
$return .= 'PHP Version: ' . PHP_VERSION . "\n";
|
487 |
+
$return .= 'MySQL Version: ' . $wpdb->db_version() . "\n";
|
488 |
+
$return .= 'Webserver Info: ' . $_SERVER['SERVER_SOFTWARE'] . "\n";
|
489 |
+
|
490 |
+
// PHP configs... now we're getting to the important stuff
|
491 |
+
$return .= "\n" . '-- PHP Configuration' . "\n\n";
|
492 |
+
$return .= 'Safe Mode: ' . ( ini_get( 'safe_mode' ) ? 'Enabled' : 'Disabled' . "\n" );
|
493 |
+
$return .= 'Memory Limit: ' . ini_get( 'memory_limit' ) . "\n";
|
494 |
+
$return .= 'Upload Max Size: ' . ini_get( 'upload_max_filesize' ) . "\n";
|
495 |
+
$return .= 'Post Max Size: ' . ini_get( 'post_max_size' ) . "\n";
|
496 |
+
$return .= 'Upload Max Filesize: ' . ini_get( 'upload_max_filesize' ) . "\n";
|
497 |
+
$return .= 'Time Limit: ' . ini_get( 'max_execution_time' ) . "\n";
|
498 |
+
$return .= 'Max Input Vars: ' . ini_get( 'max_input_vars' ) . "\n";
|
499 |
+
$return .= 'Display Errors: ' . ( ini_get( 'display_errors' ) ? 'On (' . ini_get( 'display_errors' ) . ')' : 'N/A' ) . "\n";
|
500 |
+
|
501 |
+
// PHP extensions and such
|
502 |
+
$return .= "\n" . '-- PHP Extensions' . "\n\n";
|
503 |
+
$return .= 'cURL: ' . ( function_exists( 'curl_init' ) ? 'Supported' : 'Not Supported' ) . "\n";
|
504 |
+
$return .= 'fsockopen: ' . ( function_exists( 'fsockopen' ) ? 'Supported' : 'Not Supported' ) . "\n";
|
505 |
+
$return .= 'SOAP Client: ' . ( class_exists( 'SoapClient' ) ? 'Installed' : 'Not Installed' ) . "\n";
|
506 |
+
$return .= 'Suhosin: ' . ( extension_loaded( 'suhosin' ) ? 'Installed' : 'Not Installed' ) . "\n";
|
507 |
+
|
508 |
+
// Session stuff
|
509 |
+
$return .= "\n" . '-- Session Configuration' . "\n\n";
|
510 |
+
$return .= 'Session: ' . ( isset( $_SESSION ) ? 'Enabled' : 'Disabled' ) . "\n";
|
511 |
+
|
512 |
+
// The rest of this is only relevant is session is enabled
|
513 |
+
if( isset( $_SESSION ) ) {
|
514 |
+
$return .= 'Session Name: ' . esc_html( ini_get( 'session.name' ) ) . "\n";
|
515 |
+
$return .= 'Cookie Path: ' . esc_html( ini_get( 'session.cookie_path' ) ) . "\n";
|
516 |
+
$return .= 'Save Path: ' . esc_html( ini_get( 'session.save_path' ) ) . "\n";
|
517 |
+
$return .= 'Use Cookies: ' . ( ini_get( 'session.use_cookies' ) ? 'On' : 'Off' ) . "\n";
|
518 |
+
$return .= 'Use Only Cookies: ' . ( ini_get( 'session.use_only_cookies' ) ? 'On' : 'Off' ) . "\n";
|
519 |
+
}
|
520 |
+
|
521 |
+
$return .= "\n" . '### End System Info ###';
|
522 |
+
|
523 |
+
return $return;
|
524 |
+
}
|
525 |
}
|
526 |
new WPForms_Settings;
|
lite/wpforms-lite.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/**
|
3 |
* WPForms Lite. Load Lite specific features/functionality.
|
4 |
*
|
5 |
-
* @since 1.2.
|
6 |
* @package WPForms
|
7 |
*/
|
8 |
class WPForms_Lite {
|
@@ -16,13 +16,14 @@ class WPForms_Lite {
|
|
16 |
|
17 |
$this->includes();
|
18 |
|
19 |
-
add_action( '
|
20 |
-
|
21 |
-
|
22 |
-
add_action( '
|
23 |
-
add_action( '
|
24 |
-
add_action( '
|
25 |
-
add_action( '
|
|
|
26 |
}
|
27 |
|
28 |
/**
|
@@ -37,6 +38,154 @@ class WPForms_Lite {
|
|
37 |
}
|
38 |
}
|
39 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
40 |
/**
|
41 |
* Provide upgrade URL.
|
42 |
*
|
@@ -352,6 +501,14 @@ class WPForms_Lite {
|
|
352 |
<div class="wpforms-addon-action"><a href="<?php echo $upgrade; ?>" target="_blank">Upgrade Now</a></div>
|
353 |
</div>
|
354 |
<div class="wpforms-addon-item wpforms-addon-status-upgrade wpforms-second">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
355 |
<div class="wpforms-addon-image"><img src="https://wpforms.com/images/addon-icon-conditional-logic.png"></div>
|
356 |
<div class="wpforms-addon-text">
|
357 |
<h4>Conditional Logic Addon</h4>
|
@@ -359,6 +516,14 @@ class WPForms_Lite {
|
|
359 |
</div>
|
360 |
<div class="wpforms-addon-action"><a href="<?php echo $upgrade; ?>" target="_blank">Upgrade Now</a></div>
|
361 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
362 |
<div class="wpforms-addon-item wpforms-addon-status-upgrade wpforms-first">
|
363 |
<div class="wpforms-addon-image"><img src="https://wpforms.com/images/addon-icon-mailchimp.png"></div>
|
364 |
<div class="wpforms-addon-text">
|
2 |
/**
|
3 |
* WPForms Lite. Load Lite specific features/functionality.
|
4 |
*
|
5 |
+
* @since 1.2.0
|
6 |
* @package WPForms
|
7 |
*/
|
8 |
class WPForms_Lite {
|
16 |
|
17 |
$this->includes();
|
18 |
|
19 |
+
add_action( 'wpforms_form_settings_notifications', array( $this, 'form_settings_notifications' ), 8, 1 );
|
20 |
+
add_action( 'wpforms_setup_panel_after', array( $this, 'form_templates' ) );
|
21 |
+
add_filter( 'wpforms_builder_fields_buttons', array( $this, 'form_fields' ), 20 );
|
22 |
+
add_action( 'wpforms_builder_panel_buttons', array( $this, 'form_panels' ), 20 );
|
23 |
+
add_action( 'wpforms_builder_enqueues_before', array( $this, 'builder_enqueues' ) );
|
24 |
+
add_action( 'wpforms_admin_page', array( $this, 'entries_page' ) );
|
25 |
+
add_action( 'admin_enqueue_scripts', array( $this, 'addon_page_enqueues' ) );
|
26 |
+
add_action( 'wpforms_admin_page', array( $this, 'addons_page' ) );
|
27 |
}
|
28 |
|
29 |
/**
|
38 |
}
|
39 |
}
|
40 |
|
41 |
+
/**
|
42 |
+
* Form notification settings, supports multiple notifications.
|
43 |
+
*
|
44 |
+
* @since 1.2.3
|
45 |
+
* @param object $settings
|
46 |
+
*/
|
47 |
+
public function form_settings_notifications( $settings ) {
|
48 |
+
|
49 |
+
// Fetch next ID and handle backwards compatibility
|
50 |
+
if ( empty( $settings->form_data['settings']['notifications'] ) ) {
|
51 |
+
$settings->form_data['settings']['notifications'][1]['email'] = !empty( $settings->form_data['settings']['notification_email'] ) ? $settings->form_data['settings']['notification_email'] : '';
|
52 |
+
$settings->form_data['settings']['notifications'][1]['subject'] = !empty( $settings->form_data['settings']['notification_subject'] ) ? $settings->form_data['settings']['notification_subject'] : '';
|
53 |
+
$settings->form_data['settings']['notifications'][1]['sender_name'] = !empty( $settings->form_data['settings']['notification_fromname'] ) ? $settings->form_data['settings']['notification_fromname'] : '';
|
54 |
+
$settings->form_data['settings']['notifications'][1]['sender_address'] = !empty( $settings->form_data['settings']['notification_fromaddress'] ) ? $settings->form_data['settings']['notification_fromaddress'] : '';
|
55 |
+
$settings->form_data['settings']['notifications'][1]['replyto'] = !empty( $settings->form_data['settings']['notification_replyto'] ) ? $settings->form_data['settings']['notification_replyto'] : '';
|
56 |
+
}
|
57 |
+
$id = 1;
|
58 |
+
|
59 |
+
echo '<div class="wpforms-panel-content-section-title">';
|
60 |
+
_e( 'Notifications', 'wpforms' );
|
61 |
+
echo '</div>';
|
62 |
+
|
63 |
+
echo '<p class="wpforms-alert wpforms-alert-info">Want multiple notifications with smart conditional logic?<br><a href="' . $this->upgrade_link() . 'target="_blank"><strong>Upgrade to PRO</strong></a> to unlock it and more awesome features.</p>';
|
64 |
+
|
65 |
+
wpforms_panel_field(
|
66 |
+
'select',
|
67 |
+
'settings',
|
68 |
+
'notification_enable',
|
69 |
+
$settings->form_data,
|
70 |
+
__( 'Notifications', 'wpforms' ),
|
71 |
+
array(
|
72 |
+
'default' => '1',
|
73 |
+
'options' => array(
|
74 |
+
'1' => __( 'On', 'wpforms' ),
|
75 |
+
'0' => __( 'Off', 'wpforms' ),
|
76 |
+
),
|
77 |
+
)
|
78 |
+
);
|
79 |
+
|
80 |
+
echo '<div class="wpforms-notification">';
|
81 |
+
|
82 |
+
echo '<div class="wpforms-notification-header">';
|
83 |
+
echo '<span>' . __( 'Default Notification', 'wpforms' ) . '</span>';
|
84 |
+
echo '</div>';
|
85 |
+
|
86 |
+
wpforms_panel_field(
|
87 |
+
'text',
|
88 |
+
'notifications',
|
89 |
+
'email',
|
90 |
+
$settings->form_data,
|
91 |
+
__( 'Send To Email Address', 'wpforms' ),
|
92 |
+
array(
|
93 |
+
'default' => '{admin_email}',
|
94 |
+
'tooltip' => __( 'Enter the email address to receive form entry notifications. For multiple notifications, seperate email addresses with a comma.', 'wpforms' ),
|
95 |
+
'smarttags' => array(
|
96 |
+
'type' => 'fields',
|
97 |
+
'fields' => 'name,email,text',
|
98 |
+
),
|
99 |
+
'parent' => 'settings',
|
100 |
+
'subsection' => $id,
|
101 |
+
'class' => 'email-recipient',
|
102 |
+
)
|
103 |
+
);
|
104 |
+
wpforms_panel_field(
|
105 |
+
'text',
|
106 |
+
'notifications',
|
107 |
+
'subject',
|
108 |
+
$settings->form_data,
|
109 |
+
__( 'Email Subject', 'wpforms' ),
|
110 |
+
array(
|
111 |
+
'default' => __( 'New Entry: ' , 'wpforms' ) . $settings->form->post_title,
|
112 |
+
'smarttags' => array(
|
113 |
+
'type' => 'fields',
|
114 |
+
'fields' => 'name,email,text',
|
115 |
+
),
|
116 |
+
'parent' => 'settings',
|
117 |
+
'subsection' => $id
|
118 |
+
)
|
119 |
+
);
|
120 |
+
wpforms_panel_field(
|
121 |
+
'text',
|
122 |
+
'notifications',
|
123 |
+
'sender_name',
|
124 |
+
$settings->form_data,
|
125 |
+
__( 'From Name', 'wpforms' ),
|
126 |
+
array(
|
127 |
+
'default' => sanitize_text_field( get_option( 'blogname' ) ),
|
128 |
+
'smarttags' => array(
|
129 |
+
'type' => 'fields',
|
130 |
+
'fields' => 'name,email,text',
|
131 |
+
),
|
132 |
+
'parent' => 'settings',
|
133 |
+
'subsection' => $id
|
134 |
+
)
|
135 |
+
);
|
136 |
+
wpforms_panel_field(
|
137 |
+
'text',
|
138 |
+
'notifications',
|
139 |
+
'sender_address',
|
140 |
+
$settings->form_data,
|
141 |
+
__( 'From Email', 'wpforms' ),
|
142 |
+
array(
|
143 |
+
'default' => '{admin_email}',
|
144 |
+
'smarttags' => array(
|
145 |
+
'type' => 'fields',
|
146 |
+
'fields' => 'name,email,text',
|
147 |
+
),
|
148 |
+
'parent' => 'settings',
|
149 |
+
'subsection' => $id
|
150 |
+
)
|
151 |
+
);
|
152 |
+
wpforms_panel_field(
|
153 |
+
'text',
|
154 |
+
'notifications',
|
155 |
+
'replyto',
|
156 |
+
$settings->form_data,
|
157 |
+
__( 'Reply-To', 'wpforms' ),
|
158 |
+
array(
|
159 |
+
'smarttags' => array(
|
160 |
+
'type' => 'fields',
|
161 |
+
'fields' => 'name,email,text',
|
162 |
+
),
|
163 |
+
'parent' => 'settings',
|
164 |
+
'subsection' => $id
|
165 |
+
)
|
166 |
+
);
|
167 |
+
wpforms_panel_field(
|
168 |
+
'textarea',
|
169 |
+
'notifications',
|
170 |
+
'message',
|
171 |
+
$settings->form_data,
|
172 |
+
__( 'Message', 'wpforms' ),
|
173 |
+
array(
|
174 |
+
'rows' => 6,
|
175 |
+
'default' => '{all_fields}',
|
176 |
+
'smarttags' => array(
|
177 |
+
'type' => 'all'
|
178 |
+
),
|
179 |
+
'parent' => 'settings',
|
180 |
+
'subsection' => $id,
|
181 |
+
'class' => 'email-msg',
|
182 |
+
'after' => '<p class="note">' . __( 'To display all form fields, use the <code>{all_fields}</code> Smart Tag.', 'wpforms' ) . '</p>'
|
183 |
+
)
|
184 |
+
);
|
185 |
+
|
186 |
+
echo '</div>';
|
187 |
+
}
|
188 |
+
|
189 |
/**
|
190 |
* Provide upgrade URL.
|
191 |
*
|
501 |
<div class="wpforms-addon-action"><a href="<?php echo $upgrade; ?>" target="_blank">Upgrade Now</a></div>
|
502 |
</div>
|
503 |
<div class="wpforms-addon-item wpforms-addon-status-upgrade wpforms-second">
|
504 |
+
<div class="wpforms-addon-image"><img src="https://wpforms.com/images/addon-icon-campaign-monitor.png"></div>
|
505 |
+
<div class="wpforms-addon-text">
|
506 |
+
<h4>Campaign Monitor Addon</h4>
|
507 |
+
<p class="desc">WPForms Campaign Monitor addon allows you to create Campaign Monitor newsletter signup forms in WordPress, so you can grow your email list.</p>
|
508 |
+
</div>
|
509 |
+
<div class="wpforms-addon-action"><a href="<?php echo $upgrade; ?>" target="_blank">Upgrade Now</a></div>
|
510 |
+
</div>
|
511 |
+
<div class="wpforms-addon-item wpforms-addon-status-upgrade wpforms-first">
|
512 |
<div class="wpforms-addon-image"><img src="https://wpforms.com/images/addon-icon-conditional-logic.png"></div>
|
513 |
<div class="wpforms-addon-text">
|
514 |
<h4>Conditional Logic Addon</h4>
|
516 |
</div>
|
517 |
<div class="wpforms-addon-action"><a href="<?php echo $upgrade; ?>" target="_blank">Upgrade Now</a></div>
|
518 |
</div>
|
519 |
+
<div class="wpforms-addon-item wpforms-addon-status-upgrade wpforms-second">
|
520 |
+
<div class="wpforms-addon-image"><img src="https://wpforms.com/images/addon-icon-getresponse.png"></div>
|
521 |
+
<div class="wpforms-addon-text">
|
522 |
+
<h4>GetResponse Addon</h4>
|
523 |
+
<p class="desc">WPForms GetResponse addon allows you to create GetResponse newsletter signup forms in WordPress, so you can grow your email list.</p>
|
524 |
+
</div>
|
525 |
+
<div class="wpforms-addon-action"><a href="<?php echo $upgrade; ?>" target="_blank">Upgrade Now</a></div>
|
526 |
+
</div>
|
527 |
<div class="wpforms-addon-item wpforms-addon-status-upgrade wpforms-first">
|
528 |
<div class="wpforms-addon-image"><img src="https://wpforms.com/images/addon-icon-mailchimp.png"></div>
|
529 |
<div class="wpforms-addon-text">
|
readme.txt
CHANGED
@@ -160,6 +160,16 @@ Syed Balkhi
|
|
160 |
|
161 |
== Changelog ==
|
162 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
163 |
= 1.2.2.2 =
|
164 |
- Fixed: Javascript asset not loading due to incorrect path
|
165 |
|
160 |
|
161 |
== Changelog ==
|
162 |
|
163 |
+
= 1.2.3 =
|
164 |
+
- Added: Form notification message setting
|
165 |
+
- Added: Additional Smart Tags available inside Form Settings panels
|
166 |
+
- Added: Process Smart Tags inside form confirmation messages and URLs
|
167 |
+
- Added: Hide WPForms Preview page from WordPress dashboard
|
168 |
+
- Added: System Details tab to WPForms Settings, to display debug information, etc
|
169 |
+
- Changed: Many form builder javascript improvements
|
170 |
+
- Changed: Improved internal logging and debugging tools
|
171 |
+
- Fixed: Large forms not always saving because of max_input_vars PHP setting
|
172 |
+
|
173 |
= 1.2.2.2 =
|
174 |
- Fixed: Javascript asset not loading due to incorrect path
|
175 |
|
wpforms.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
* Description: Beginner friendly WordPress contact form plugin. Use our Drag & Drop form builder to create your WordPress forms.
|
6 |
* Author: WPForms
|
7 |
* Author URI: https://wpforms.com
|
8 |
-
* Version: 1.2.
|
9 |
* Text Domain: wpforms
|
10 |
* Domain Path: languages
|
11 |
*
|
@@ -44,7 +44,7 @@ if ( class_exists( 'WPForms' ) ) :
|
|
44 |
deactivate_plugins( plugin_basename( __FILE__ ) );
|
45 |
}
|
46 |
add_action( 'admin_init', 'wpforms_deactivate' );
|
47 |
-
|
48 |
/**
|
49 |
* Display notice after deactivation.
|
50 |
*
|
@@ -60,7 +60,7 @@ if ( class_exists( 'WPForms' ) ) :
|
|
60 |
else :
|
61 |
|
62 |
/**
|
63 |
-
* Main WPForms class
|
64 |
*
|
65 |
* @since 1.0.0
|
66 |
* @package WPForms
|
@@ -81,7 +81,7 @@ final class WPForms {
|
|
81 |
* @since 1.0.0
|
82 |
* @var sting
|
83 |
*/
|
84 |
-
public $version = '1.2.
|
85 |
|
86 |
/**
|
87 |
* The form data handler instance.
|
@@ -211,6 +211,7 @@ final class WPForms {
|
|
211 |
require_once WPFORMS_PLUGIN_DIR . 'includes/admin/class-menu.php';
|
212 |
require_once WPFORMS_PLUGIN_DIR . 'includes/admin/overview/class-overview.php';
|
213 |
require_once WPFORMS_PLUGIN_DIR . 'includes/admin/builder/class-builder.php';
|
|
|
214 |
require_once WPFORMS_PLUGIN_DIR . 'includes/admin/class-welcome.php';
|
215 |
require_once WPFORMS_PLUGIN_DIR . 'includes/admin/class-editor.php';
|
216 |
require_once WPFORMS_PLUGIN_DIR . 'includes/admin/ajax-actions.php';
|
5 |
* Description: Beginner friendly WordPress contact form plugin. Use our Drag & Drop form builder to create your WordPress forms.
|
6 |
* Author: WPForms
|
7 |
* Author URI: https://wpforms.com
|
8 |
+
* Version: 1.2.3
|
9 |
* Text Domain: wpforms
|
10 |
* Domain Path: languages
|
11 |
*
|
44 |
deactivate_plugins( plugin_basename( __FILE__ ) );
|
45 |
}
|
46 |
add_action( 'admin_init', 'wpforms_deactivate' );
|
47 |
+
|
48 |
/**
|
49 |
* Display notice after deactivation.
|
50 |
*
|
60 |
else :
|
61 |
|
62 |
/**
|
63 |
+
* Main WPForms class.
|
64 |
*
|
65 |
* @since 1.0.0
|
66 |
* @package WPForms
|
81 |
* @since 1.0.0
|
82 |
* @var sting
|
83 |
*/
|
84 |
+
public $version = '1.2.3';
|
85 |
|
86 |
/**
|
87 |
* The form data handler instance.
|
211 |
require_once WPFORMS_PLUGIN_DIR . 'includes/admin/class-menu.php';
|
212 |
require_once WPFORMS_PLUGIN_DIR . 'includes/admin/overview/class-overview.php';
|
213 |
require_once WPFORMS_PLUGIN_DIR . 'includes/admin/builder/class-builder.php';
|
214 |
+
require_once WPFORMS_PLUGIN_DIR . 'includes/admin/builder/functions.php';
|
215 |
require_once WPFORMS_PLUGIN_DIR . 'includes/admin/class-welcome.php';
|
216 |
require_once WPFORMS_PLUGIN_DIR . 'includes/admin/class-editor.php';
|
217 |
require_once WPFORMS_PLUGIN_DIR . 'includes/admin/ajax-actions.php';
|