Version Description
- New: Improved autoupdating and installation for form add-ons
- Tweak: Only show the form add-ons page to those who can activate plugins
- Fix: Radio button shadows had a box around them in some browsers
- Fix: Don't mark an entry as a duplicate when the second entry includes more fields than the first
- Code: Move deprecated code to its own folder
Download this release
Release Info
Developer | sswells |
Plugin | Formidable Forms – Form Builder for WordPress |
Version | 3.04.03 |
Comparing to | |
See all releases |
Code changes from version 3.04.02 to 3.04.03
- changelog.txt +2373 -0
- classes/controllers/FrmAddonsController.php +356 -159
- classes/controllers/FrmAppController.php +80 -72
- classes/controllers/FrmEntriesController.php +16 -18
- classes/controllers/FrmFieldsController.php +38 -71
- classes/controllers/FrmFormsController.php +12 -85
- classes/controllers/FrmHooksController.php +2 -2
- classes/controllers/FrmSettingsController.php +19 -7
- classes/helpers/FrmAppHelper.php +33 -66
- classes/helpers/FrmFieldsHelper.php +42 -63
- classes/helpers/FrmStylesHelper.php +33 -102
- classes/models/FrmAddon.php +206 -51
- classes/models/FrmDb.php +3 -12
- classes/models/FrmEntry.php +17 -2
- classes/models/FrmEntryValidate.php +32 -57
- classes/models/FrmForm.php +19 -21
- classes/models/FrmMigrate.php +2 -0
- classes/models/FrmReviews.php +133 -0
- classes/views/addons/list.php +13 -8
- classes/views/addons/settings.php +3 -11
- classes/views/addons/upgrade_to_pro.php +4 -4
- classes/views/shared/errors.php +1 -1
- classes/views/shared/review.php +92 -0
- classes/views/shared/upgrade_overlay.php +15 -8
- css/custom_theme.css.php +2 -1
- css/frm_admin.css +222 -43
- css/frm_fonts.css +1 -1
- {classes/models → deprecated}/FrmDbDeprecated.php +5 -3
- deprecated/FrmDeprecated.php +786 -0
- {classes/models → deprecated}/FrmEDD_SL_Plugin_Updater.php +0 -0
- {classes/models → deprecated}/FrmEntryDeprecated.php +2 -0
- {classes/models → deprecated}/FrmEntryFormat.php +4 -1
- {classes/models → deprecated}/FrmEntryMetaDeprecated.php +2 -0
- {classes/models → deprecated}/FrmFieldDeprecated.php +2 -0
- {classes/models → deprecated}/FrmFormDeprecated.php +3 -1
- {classes/models → deprecated}/FrmPointers.php +2 -0
- formidable.php +17 -11
- js/formidable.js +1 -24
- js/formidable.min.js +36 -36
- js/formidable_admin_global.js +37 -3
- languages/formidable.pot +533 -490
- readme.txt +166 -158
changelog.txt
ADDED
@@ -0,0 +1,2373 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
== Changelog ==
|
2 |
+
= 3.04.03 =
|
3 |
+
* New: Improved autoupdating and installation for form add-ons
|
4 |
+
* Tweak: Only show the form add-ons page to those who can activate plugins
|
5 |
+
* Fix: Radio button shadows had a box around them in some browsers
|
6 |
+
* Fix: Don't mark an entry as a duplicate when the second entry includes more fields than the first
|
7 |
+
* Code: Move deprecated code to its own folder
|
8 |
+
|
9 |
+
= 3.04.02 =
|
10 |
+
* New: When HTML5 is used, auto add the http in a url field if it is omitted by the user
|
11 |
+
|
12 |
+
= 3.04.01 =
|
13 |
+
* New: When a form includes a user ID field, include helpers in the Advanced tab to get data from the user profile for use in emails and other form actions.
|
14 |
+
* Code: Refactor and clean up the code for the Advanced tab in the form settings sidebar
|
15 |
+
* Code: Add frm_advanced_helpers hook to move some Advanced shortcode examples to Pro
|
16 |
+
* Code: Add frm_field_code_tab hook to add extra shortcodes in the customization sidebar for a single field
|
17 |
+
* Update translations
|
18 |
+
|
19 |
+
= 3.04 =
|
20 |
+
* New: Add option to duplicate a form action
|
21 |
+
* New: Add option to turn form actions on or off
|
22 |
+
* New: Add frm_is_multiple_select hook
|
23 |
+
|
24 |
+
= 3.03.03 =
|
25 |
+
* Improve the appearance of the import/export page
|
26 |
+
* Move the admin menu position below the post comments
|
27 |
+
* Remove unused CSS including CSS for login forms in the user registration plugin
|
28 |
+
* Override theme styling for box shadows on inputs
|
29 |
+
* Add a new migrator class that will serve as a base for migrations from other form builder plugins
|
30 |
+
* Add a prepare_field_value function for altering the value show inside a form field that can be overridden in extension classes for fields
|
31 |
+
|
32 |
+
= 3.03.02 =
|
33 |
+
* Fix: When syntax highlighting was turned off in the user profile, the custom CSS box didn't appear.
|
34 |
+
* Fix: Allow 'aside' tags in the form widget. Don't remove it when sanitizing.
|
35 |
+
* Fix: When a form includes a reCaptcha, the loading indicator on the submit button wasn't triggered on submit.
|
36 |
+
* Fix: The reCaptcha label was orphaned and didn't pass WCAG compliance. This fix applies to new reCaptcha fields. For existing fields, delete it and add it again.
|
37 |
+
* Fix: Automatically scroll the form builder window when a field is dragged and dropped in the form.
|
38 |
+
* Fix: Use a percentage for left labels instead of a fixed with to ensure the margin isn't too big for small spaces.
|
39 |
+
|
40 |
+
= 3.03.01 =
|
41 |
+
* Fix: Allow the section html in the form widget. Don't remove it when sanitizing.
|
42 |
+
* Fix: Show the scrollbar for the list of fields in Chrome on the form builder. Some devices don't allow scrolling without it.
|
43 |
+
|
44 |
+
= 3.03 =
|
45 |
+
* Fix: Custom css like #frm_field_196_container > label was being sanitized and preventing the > from working correctly
|
46 |
+
* Fix: Allow <i icon="something"> to pass sanitization in checkbox and radio field options
|
47 |
+
* Fix: A warning message in the form style builder was sometimes appearing multiple times and not closing
|
48 |
+
* Move datepicker css and images to Pro form builder
|
49 |
+
|
50 |
+
= 3.02.02 =
|
51 |
+
* Update PO file for translation
|
52 |
+
|
53 |
+
= 3.02.01 =
|
54 |
+
* Fix: Allow the heading class and ids to stay for the sidebar form widget. The headings were missing a class and not the same as other headings in some themes.
|
55 |
+
* Fix: If all form templates are deleted, keep the 'templates' nav item so new templates can still be created.
|
56 |
+
* Fix: When creating a new form, don't include trashed form templates in the form template options
|
57 |
+
* Fix: Remove outdated sslverify references
|
58 |
+
* Fix: The sample form for the form styler didn't have a great layout when CSS grids were turned on
|
59 |
+
|
60 |
+
= 3.02 =
|
61 |
+
* New: Add support for WordPress export and erase personal data options for easier GDPR support
|
62 |
+
* Fix: HTML was getting stripped in field labels when a form was edited on the form builder page
|
63 |
+
* Fix: If a field option includes HTML, allow the HTML rather than sanitizing it with entities
|
64 |
+
* Fix: When the 'add option' button on the form builder is clicked multiple times, add the options correctly if the previous option isn't yes showing in the form maker
|
65 |
+
* Fix: The HTML for the link to the user profile was showing in the sidebar when editing or viewing an entry
|
66 |
+
* Code change: Move input classes into the field object class so it can be more easily overridden and amended. The FrmFieldType->get_input_class() function can be overridden in sub classes
|
67 |
+
|
68 |
+
= 3.01.03 =
|
69 |
+
* Fix: Add responsive styling for the .frm_four_col class when grids are disabled
|
70 |
+
* Fix: Fix number field HTML5 min, max, and step. This code was still in the pro form builder
|
71 |
+
* Fix: More escaping for translated strings, and whitelist false positives for code security tools
|
72 |
+
* Fix: When form builder is loaded with ajax, prevent errors when the default value is an array
|
73 |
+
* Fix: Add a nonce check when updating settings for a form
|
74 |
+
* Removed: Get rid of the start tour. We will add this back in a less annoying way.
|
75 |
+
|
76 |
+
= 3.01.02 =
|
77 |
+
* New: Add frm_sanitize_shortcodes hook. This hook allows shortcodes in field values to be processed rather than shown on the page.
|
78 |
+
* Fix: Stylesheets weren't saving correctly when multiple styles were used for forms
|
79 |
+
|
80 |
+
= 3.01.01 =
|
81 |
+
* New: Replace the jQuery colorpicker with the WordPress colorpicker in the visual form styler
|
82 |
+
* New: Process shortcodes in the redirect url after form submission
|
83 |
+
* New: frm_override_default_styles and frm_default_style_settings hooks
|
84 |
+
* Fix: Prevent shortcodes inside field values from being processed in more places including the redirect url. This is a security precaution.
|
85 |
+
* Fix: A default contact form was being added with each update. This update ensures the contact form is only generated once.
|
86 |
+
* Fix: Allow the visual form styler to show instant changes to the sample contact form since server limits of url size were being hit in some cases.
|
87 |
+
* Fix: HTML was being stripped from some form field settings on the form creator page like validation messages
|
88 |
+
|
89 |
+
= 3.01 =
|
90 |
+
* New: Added frm_js_location hook for saving the combined javascript file in a different location
|
91 |
+
* New: Added frm_include_field_in_content hook for excluding fields in the default email message
|
92 |
+
* Tweak: Process shortcodes inside the form validation messages
|
93 |
+
* Tweak: Reduce page load time by not autoloading the saved form styling from the database. In most cases, this data is saved in the CSS file, and doesn't need to be retrieved from the database.
|
94 |
+
* Fix: The Invisible reCaptcha wasn't being validated correctly in contact forms when the Pro version was not running.
|
95 |
+
* Fix: Run the server-side form validation on a number field that uses 0 for the minimum value. This was being skipped.
|
96 |
+
* Fix: Show the label above a dropdown field if the label position is set to inside since dropdown placeholders are not yet supported. Plus, don't show the Inside label position option for any fields that don't allow placeholders.
|
97 |
+
* Fix: If there is an error during a database update, make sure it can try again in the future
|
98 |
+
* Fix: Prevent more conflicts with Divi when editing some posts with forms
|
99 |
+
* Fix: Form fields without CSS grids were not aligning correctly with left, right, or inline labels
|
100 |
+
|
101 |
+
= 3.0.06 =
|
102 |
+
* New: Include the option to duplicate a form in the free form maker
|
103 |
+
* Fix: If the reply to address in the email is not specified, use only the from email without the from name to increase receivability
|
104 |
+
* Fix: Improve form styling without CSS grids when using left, right, and inline labels
|
105 |
+
* Fix: Make the frmFrontForm.fieldValueChanged function public in the javascript so it can be triggered by scripts in other plugins
|
106 |
+
|
107 |
+
= 3.0.05 =
|
108 |
+
* Fix: The visual form styler didn't look good when CSS grids were turned off
|
109 |
+
* Fix: Prevent past database migrations from being run again. This was making some field sizes much larger.
|
110 |
+
* Fix: If field sizes are extra long, reverse them because it most likely happened in the last release.
|
111 |
+
* Fix: Sort by a number field on the entries page was ordering by text instead of number
|
112 |
+
* Fix: The export page was showing weird styling for the form selector on some sites
|
113 |
+
* Fix: If CSS grids are off, don't force the width to 100% for form fields like before
|
114 |
+
|
115 |
+
= 3.0.04 =
|
116 |
+
* Fix required validation: URL and number fields were requiring a value when the field was not required
|
117 |
+
* Fix double recaptcha validation which was causing it to fail validation
|
118 |
+
|
119 |
+
= 3.0.03 =
|
120 |
+
* Enhancement: Use relative path in the form css now that the css is inside the plugin. Now font icons will continue working without a style save when the site url is changed.
|
121 |
+
* Fix: Save a different stylesheet file for each site in a network to prevent them from saving over eachother
|
122 |
+
* Fix: Use auto field height when grids are off to prevent tiny form fields on some sites
|
123 |
+
* Fix: Correctly set default email message to 100% width
|
124 |
+
* Fix: Fields with a layout class and labels set to right or left were not aligned right with CSS grids off
|
125 |
+
* Fix: Some field shortcodes weren't being processed when the whitespace was abnormal from some cases of copy/paste
|
126 |
+
* Fix: Set the width of the box with field types on form builder page a bit differently to prevent it from being too small when the page includes a lot of admin notices at the top
|
127 |
+
* Remove a few 100% translations from the plugin so WordPress can handle it
|
128 |
+
|
129 |
+
= 3.0.02 =
|
130 |
+
* Tweak: Move the forms css inside the plugin rather than saving it in the uploads folder so it will always be reset after updates
|
131 |
+
* New: Add frm_fields_container_class hook for changing the new form container class attributes
|
132 |
+
* Fix: More form styling fixes for css grids. Fixes cover layouts with frm_alignright and smoother responsive layouts.
|
133 |
+
* Fix: Combine the old and new form css, and include the old layout CSS by default
|
134 |
+
* Fix: Trigger the activation install right when the plugin is installed
|
135 |
+
* Fix: Don't add label position styling to fields that don't include the option to change the label position
|
136 |
+
* Fix: Correctly limit the number of fields returned when using the FrmField::get_all_for_form function with a limit set
|
137 |
+
* **Pro Version Forms**
|
138 |
+
* New: Show a generated screenshot of the embedded form in the form builder rather than the first few fields
|
139 |
+
* Fix: Auto updates with the nested version going from 3.0 were failing and updating to lite
|
140 |
+
* Fix: Some default values were overiding non defaults when the form was displayed. This included user ID fields and other ifelds with separate values.
|
141 |
+
* Fix: Recompile the combined javascript file any time the pro version number changes
|
142 |
+
* Fix: Embedded forms were being changed when the parent form was saved
|
143 |
+
* Fix: Dynamic fields showing the entry key were blank with [25 show=key].
|
144 |
+
* Fix: More reliably run calculations in hidden fields inside of a section on multi paged forms
|
145 |
+
* Fix: Don't apply auto layout classes to inline forms with more than 12 fields
|
146 |
+
* Fix: When checking if an inline form needs layout classes added, check for non-numeric classes like frm_half
|
147 |
+
* Fix: Prevent the comment box on the entries page from closing immediately
|
148 |
+
|
149 |
+
= 3.0.01 =
|
150 |
+
* Fix: Trigger style update when a form is loaded instead of only when an admin page is visited
|
151 |
+
* Fix: A few various form styling and layout fixes
|
152 |
+
* Fix: Prevent screenreader text for accessibility from showing on sites with older cached css
|
153 |
+
* Fix: Prevent conflict with Divi when a form shortcode with a recaptcha is included in page editor
|
154 |
+
* Fix: Use 'readfile' instead of 'include' for css files for extra safety precautions
|
155 |
+
* Fix: Load the field options before frm_new_fields_vars hook for reverse compatibility
|
156 |
+
* **Pro Version Forms**
|
157 |
+
* New: Use toggle fields in calculations and conditional logic
|
158 |
+
* Fix: Some conditional logic based on empty radio fields wasn't functioning
|
159 |
+
* Fix: Require time fields at the correct times
|
160 |
+
|
161 |
+
= 3.0 =
|
162 |
+
* Move features into the free form builder: redirect and show page after save, javascript validation, field format options with HTML5 pattern validation, and phone number, number, user ID, hidden field, and HTML fields
|
163 |
+
* Possibly breaking change: Remove code that has been deprecated since before v2.02
|
164 |
+
* Save a combined js file to use on the front-end with a fallback if the file fails to generate. This file is updated when the plugin is activated or updated.
|
165 |
+
* A UI pick-me-up in preparation of things to come in 4.0.
|
166 |
+
* New: Use CSS grids for better layouts. If you would like your column layouts to show in Internet Explorer, you'll need to turn on the old styling in the Formidable -> Global settings. The grids use a 12-column layout with classes that range from frm1 (1 column of 12) to frm12 (span all 12 columns). (Thanks for the feedback from our feedback group!)
|
167 |
+
* New: Search for fields by name, id, and key in the customization panel
|
168 |
+
* Improved RTL styling in backend
|
169 |
+
* Enhancement: Add frm_rtl class to forms with styles set to RTL for easier styling.
|
170 |
+
* Enhancement: Customize the invalid message when a custom format is set on text fields
|
171 |
+
* Better a11y/WCAG support: hidden labels where required, "for" tag on most labels, and link the field to its description for screenreaders.
|
172 |
+
* Move form shortcodes from the sidebar to the form settings page
|
173 |
+
* Change "field options" to "field settings" on the form builder page
|
174 |
+
* Update the Print styling for the entries page
|
175 |
+
* Remove frm_text_block class and do it by default. Radio buttons and checkboxes with wrapping text should look good by default.
|
176 |
+
* Add a link in the footer to review Formidable
|
177 |
+
* New: field object class to make it easy to make new field types. We don't have docs yet, but developers can take a look at the FrmFieldType class. But we've gone to great efforts to make sure fields done the old way will continue to function.
|
178 |
+
* New hook: Add frm_output_single_style hook to add extra css into the generated stylesheet
|
179 |
+
* New hook: Add frm_before_get_form hook for enqueueing form scripts
|
180 |
+
* New hook: Add frm_enqueue_builder_scripts hook to load extra scripts on the form builder page
|
181 |
+
* New hook: Add frm_show_entry_defaults hook to add extra atts to the frm_show_entry shortcode
|
182 |
+
* Tweak: Include 'original_default' in the field array for new entries so we can compare and prevent double processing later
|
183 |
+
* Fix: quotation marks were being escaped in frm_form_attributes and frm_form_div_attributes hooks
|
184 |
+
* Removed: The preview page option in the global settings is no longer used. The form preview page is now generated.
|
185 |
+
* Removed: The placeholder fallback javascript for old versions of IE is gone. No need to give everyone extra scripts to load.
|
186 |
+
* Deprecated the accordion javascript checkbox in global settings since it isn't used by the plugin. If you had this box checked, you'll still see it. Once you uncheck it the option will no longer appear.
|
187 |
+
* **Pro Version Forms**
|
188 |
+
* New: Move Formidable Pro to its own plugin during update or install. Wahoo!
|
189 |
+
* New: If the Pro version is installed without the lite forms, install it automatically. Prevent errors if pro is running alone or is also nested inside of lite.
|
190 |
+
* Add range slider and toggle fields
|
191 |
+
* Add visibility option to HTML and section fields
|
192 |
+
* Move repeater field to its own field button
|
193 |
+
* Combine image and URL fields
|
194 |
+
* Add readonly option to time fields
|
195 |
+
* Star rating fields: Separate from scale fields and remove the jquery rating js and replace with mostly html and css
|
196 |
+
* Show frm-stats as stars with straight html/css (no more js)
|
197 |
+
* New: Make it easier to show star values. Show the stars by default on the View entry page and show stars in a view with [25 html=1].
|
198 |
+
* New: Added param checking to inline conditionals: [if 25 equals='param' param='set-name-here'] and [if get param="level" equals="gold"]
|
199 |
+
* New: Add entry_position shortcode for incremental content in views. For example, this gives the option to show more or different information for the first entry in the view or insert ads after the third entry.
|
200 |
+
* New: Automatically adjust fields to fit equally in an inline form
|
201 |
+
* Separate Pro and Lite translations
|
202 |
+
* Enhancement: If a form creates posts and is set to not save entries, save the created post.
|
203 |
+
* Enhancement: Run form install on an API route instead of the admin ajax route and make sure there won't be multiple instances of the install running at once.
|
204 |
+
* Enhancement: Use the options instead of transients for checking for updates. Some types of caching store transients indefinitely.
|
205 |
+
* Enhancement: Get the shortcodes for a view more concisely. Check for any numeric shortcode instead of checking the database for the field ids
|
206 |
+
* Tweak: Open files in the form upload field in a new tab
|
207 |
+
* Tweak: Don't show the reports nav if the form has no entries
|
208 |
+
* Tweak: Add .do-calculation class on a form to run calculations even if they are not on the current page of the form
|
209 |
+
* Tweak: Add $atts with $atts['view'] to all pagination hooks
|
210 |
+
* Fix: calculations in hidden fields inside of sections were not calculating
|
211 |
+
* Fix: Add validation for the year range in date fields
|
212 |
+
* Fix: Don't use conditional logic in form actions when the field isn't selected
|
213 |
+
* Fix: Show address fields without <br> in dynamic fields
|
214 |
+
* Fix: Require the credit card field when editing a draft
|
215 |
+
* Fix: Only show the user login for a user id field when the display name is empty. Don't show it as a fallback for other user values.
|
216 |
+
* Fix: Return 403 instead of 401 when a file type isn't allowed to be uploaded.
|
217 |
+
* Fix: Install the wp_frm_copies table during the first multisite installation, and prevent it from checking tables before they exist.
|
218 |
+
* Fix: Do not process a shortcode that is inserted into a field.
|
219 |
+
* Fix: Conditionals that check user meta were always returning true
|
220 |
+
* Fix: Autocomplete for dynamic fields was too small
|
221 |
+
* Fix: If a field includes regex, keep the slashes when the field is duplicated
|
222 |
+
* Fix: Correctly check conditional logic when comparing 0 to blank.
|
223 |
+
* Fix: Prevent double filtering shortcodes in a nested view
|
224 |
+
* Fix: Allow a view to not be filtered on the same page as a filtered view
|
225 |
+
* Fix: Searching dynamic fields were returning extra, incorrect results
|
226 |
+
* Fix: Searching for a decimal value was dropping the value after the decimal
|
227 |
+
* Fix: Searching for a number with post entries and frm-search wasn't correctly checking the posts
|
228 |
+
* Fix: datepicker settings weren't loading correctly in an ajax form with date fields that aren't on the first form page
|
229 |
+
* Fix: Correctly hide and show fields in embedded forms with the frm-show-entry shortcode
|
230 |
+
* Fix: When a field immediately follows an embedded form, it was showing up when include_fields included the embedded form
|
231 |
+
* Removed the option to bulk create templates from forms
|
232 |
+
* Removed the list of users on the reports page for quicker report loading.
|
233 |
+
|
234 |
+
= 2.05.09 =
|
235 |
+
* Fix: Read only background and border colors weren't showing in the form correctly
|
236 |
+
* Fix: A PHP warning was showing with validation messages in the form
|
237 |
+
* **Pro Version Forms**
|
238 |
+
* Fix: Autocomplete dropdowns were looking for a space before the typed value
|
239 |
+
* Fix: /r was showing in conditional multi-line default values
|
240 |
+
* Fix: Add error styling to single option autocomplete dropdowns
|
241 |
+
* Fix: Check conditional logic on html fields inside a repeating section
|
242 |
+
* Fix: Prevent database errors on the first install in a multisite network
|
243 |
+
|
244 |
+
= 2.05.08 =
|
245 |
+
* Fix: Hide extra columns on the Formidable -> Entries page more accurately
|
246 |
+
* Fix: Prevent WP confirmation messages from showing when saving a form
|
247 |
+
* Fix: Some tooltips were partially covered by the admin menu
|
248 |
+
* **Pro Version Forms**
|
249 |
+
* Enhancement: When [auto_id start=100] is higher than the last value in the entry, use 100.
|
250 |
+
* Enhancement: Remove type="text/javascript" for new HTML5 validation requirements
|
251 |
+
* Fix: The Formidable -> Views page didn't look good on small screens
|
252 |
+
* Fix: All custom field rows were being removed in post settings when one was removed
|
253 |
+
* Fix: Lookup calculations in repeating sections were returning javascript errors
|
254 |
+
|
255 |
+
= 2.05.07 =
|
256 |
+
* New: Limit the number of field columns in the entry listing page to a max of 11 fields
|
257 |
+
* Security Fix: Fix an SQL injection vulnerability on the Form listing page on the backend. Vulnerability discovered by the static code analysis solution RIPS (www.ripstech.com)
|
258 |
+
* **Pro Version Forms**
|
259 |
+
* New: Add links to edit views and post entry in the top admin bar
|
260 |
+
* Tweak: Show default val/placeholder text icons for any item in an address field and confirmation fields
|
261 |
+
* Tweak: Apply the frm_csv_sep hook when importing addresses. This allows for a difference separator to be specified for values in an address field
|
262 |
+
* Fix: View pagination was being ignored when is wasn't overridden from the view shortcode
|
263 |
+
* Fix: Prevent errors with hitting server limits for a long regex when processing shortcodes in a view with a long form
|
264 |
+
* Fix: Set dependencies on the datepicker locale js. This solves the problem with the scripts getting out of order on some sites.
|
265 |
+
|
266 |
+
= 2.05.06 =
|
267 |
+
* Tweak: Move database functions from FrmAppHelper to FrmDb
|
268 |
+
* Tweak: Move install/update/migrate functions from FrmDb to FrmMigrate
|
269 |
+
* Tweak: Remove unused check_cache_and_transient function
|
270 |
+
* Fix: Rename ja_JP translation to ja
|
271 |
+
* **Pro Version Forms**
|
272 |
+
* New: Add frm_load_ajax_field_scripts hook to allow custom field types to load scripts on the first page of the ajax form
|
273 |
+
* Tweak: Only check for shortcodes in calculations if it includes a bracket [ to reduce processing time
|
274 |
+
* Tweak: Speed up load time for long forms with field calculations by preventing the calculations from running when the total field is not on the current page.
|
275 |
+
* Fix: Better sanitizing before running view query
|
276 |
+
* Fix: Save the HTML in the "no entries" message for views
|
277 |
+
* Fix: Save all filter settings correctly in the view
|
278 |
+
* Tweak: A few adjustments for the entry shortcode array. Use the child entry id in the returned entry array and include the child form id in the entry array. This fixes issues with API entry updating.
|
279 |
+
|
280 |
+
= 2.05.05 =
|
281 |
+
* Fix: When form actions were added at the same time with non-alphabetical naming, a new addon was replacing the first one
|
282 |
+
* **Pro Version Forms**
|
283 |
+
* Fix: Show update notifications more reliably on sites that don't save the transient expiration
|
284 |
+
* Fix: Allow script and style tags in the content boxes of views
|
285 |
+
|
286 |
+
= 2.05.04 =
|
287 |
+
* Tweak: Remove recaptcha and website fields from sample Contact us form template since most people don't need them
|
288 |
+
* Fix: Updates for WP 4.9 compatibility. This includes preventing double filtering on contact form widgets and using the WordPress Codemirror scripts for the form CSS page.
|
289 |
+
* Fix: Prevent "are you sure" message that has started occuring from WordPress when saving a WordPress form
|
290 |
+
* Fix: Correctly validate form fields with an Inside field label when HTML5 forms are not enabled
|
291 |
+
* Fix: Set the background color on loading form submit button. Depending on the hover button covers, the loading spinner may have been the same color as the button
|
292 |
+
* Fix: Additional security checks when getting POST or GET values in some places
|
293 |
+
* Fix: Return int rather than string from FrmForm::getIdByKey
|
294 |
+
* **Pro Version Forms**
|
295 |
+
* New: Allow normal WordPress shortcodes in the field calculations box
|
296 |
+
* Fix: Strip commas during form validation in non-HTML5 number fields
|
297 |
+
* Fix: Correctly order the views dropdown in the shortcode builder
|
298 |
+
|
299 |
+
= 2.05.03 =
|
300 |
+
* Enhancement: Clean up BCC and CC email buttons on small screens
|
301 |
+
* Security enhancement: Use wp_kses instead of wp_kses_post for showing entries
|
302 |
+
* Enhancement: Add more HTML options to the wp_kses filters
|
303 |
+
* Fix: Correctly show the list of trashed forms after one is permanently deleted
|
304 |
+
* **Pro Version Forms**
|
305 |
+
* New: Add frm_xml_field_export_value hook
|
306 |
+
* Fix: PHP error when editing an entry with a date field set as the post date
|
307 |
+
* Fix: Field value formatting when exporting XML
|
308 |
+
* Fix: Allow striphtml=1 to work for array values
|
309 |
+
* Fix: Prevent confirmation field from moving down on small screens
|
310 |
+
|
311 |
+
= 2.05.02 =
|
312 |
+
* New: Add frm_affiliate_id hook for theme author affiliates
|
313 |
+
* Fix: XSS vulnerability on form preview page. Don't check POST values before displaying the form
|
314 |
+
* Enhancement: Speed up the Formidable > Entries listing page for large forms
|
315 |
+
* Fix: Don't add slashes to default field values
|
316 |
+
* Fix: Replace the arrows in the settings sections that disappeared in WP 4.8
|
317 |
+
* **Pro Version Forms**
|
318 |
+
* Enhancement: Add frmCalSeparation jQuery event for changing the comma in text calculations to something else
|
319 |
+
* Fix: Prevent more themes from overriding the progress bar styling when the option to override theme styling is checked
|
320 |
+
* Fix: More reliably hide and show the buttons for adding taxonomies and custom fields in the create post settings
|
321 |
+
* Fix: Several issues with calculations with both fields inside and outside of repeating sections. Fixed issue with conditional radio fields used in repeating calculations.
|
322 |
+
* Fix: Prevent endless loops in conditional logic when fields are dependent on each other
|
323 |
+
* Fix: Searching number field values with LIKE was causing issues
|
324 |
+
* Fix: Use secure cookies on SSL sites
|
325 |
+
* Fix: Convert dates in certain formats more realibly before save
|
326 |
+
* Fix: Correctly duplicate fields inside a repeating section
|
327 |
+
|
328 |
+
= 2.05.01 =
|
329 |
+
* Fix: Let the new label position option override the setting in the styles
|
330 |
+
* Fix: Trigger an update for the styling settings so a manual save isn't required to get new updates
|
331 |
+
* Fix: Prevent an undefined php warning when viewing the form page
|
332 |
+
* **Pro Version Forms**
|
333 |
+
* Fix: Revert the functionality behind filter=1 in views, and instead add a new filter=limited option for compatibility mode
|
334 |
+
|
335 |
+
= 2.05 =
|
336 |
+
* New: Add option to not save IP address with entries for GDPR compliant forms
|
337 |
+
* New: Add a new label position option: Inside. This option automatically uses the field labels as placeholders.
|
338 |
+
* Enhancement: Prevent jumping when selecting field to edit on form builder.
|
339 |
+
* Enhancement: Trigger frm_after_entry_processed hook after save when the action is set to show a message. This affects deleting entries automatically.
|
340 |
+
* Enhancement: Allow text colors like "red" in frm-show-entry.
|
341 |
+
* Enhancement: Increase minimum WP version requirement to 4.0.
|
342 |
+
* Enhancement: Add array_key option to entry shortcode to set whether an ID or key is used when an array is returned.
|
343 |
+
* Fix: Restore Default Plain button for filling email content.
|
344 |
+
* Fix: Set dependency on reCaptcha script to ensure it loads after the Formidable script when defer fails.
|
345 |
+
* Fix: Add frm_entries_list_query hook to filter queries on the Formidable -> Entries page.
|
346 |
+
* Fix: Improve field duplication on form builder.
|
347 |
+
* Fix: Remove deprecated notification settings on import.
|
348 |
+
* Fix: Allow multiple invisible recaptchas to work on the same page.
|
349 |
+
* Fix: Make sure licenses tab loads if navigating to it directly.
|
350 |
+
* **Pro Version Forms**
|
351 |
+
* New: Add Repeat Limit option to Repeatable Sections.
|
352 |
+
* New: Add target="_blank" option to file upload shortcodes with new_page=1 param.
|
353 |
+
* New: Add frm_before_entries_table hook to display extra content on the Formidable -> Entries page.
|
354 |
+
* New: Add frm_lookup_is_current_user_filter_needed filter to allow the options in a lookup field to be conditionally limited.
|
355 |
+
* Enhancement: Allow repeating fields to be excluded from show entry shortcode.
|
356 |
+
* Enhancement: Improve calculated fields that include fields both inside and outside a repeating section
|
357 |
+
* Enhancement: Add RTL form support for time fields.
|
358 |
+
* Enhancement: Conditionally allow int, rather than string, comparison in Lookup fields.
|
359 |
+
* Enhancement: Add frm_main_feedback hook to messages shown after draft and edit.
|
360 |
+
* Enhancement: Display zip code on the same line with city and state when an address is displayed.
|
361 |
+
* Enhancement: Improve searching Dynamic field values on Entries tab
|
362 |
+
* Fix: Improve compatibility with page builders and membership plugins. Don't run the_content filter on the View content. Instead, filter the content by calling those functions directly.
|
363 |
+
* Fix: Delete temporary files after no less than 3 hours, regardless of time zone.
|
364 |
+
* Fix: Append the media meta_query rather than replacing it. This resolves a conflict with files in WooCommerce.
|
365 |
+
* Fix: Trim logic and actual value in conditional logic comparison.
|
366 |
+
* Fix: Improve layout of confirmation field with a left label.
|
367 |
+
* Fix: Allow a default value for checkbox fields on any form page.
|
368 |
+
* Fix: Prevent Hidden fields from retaining "Clear default value when typing" setting when the field type changes.
|
369 |
+
* Fix: Prevent errors when searching Dynamic fields with frm-search bar.
|
370 |
+
* Fix: Do not send update emails when a draft is converted to an entry.
|
371 |
+
* Fix: Do not show editable entry after submitting a draft, even though users can save and continue partial submissions.
|
372 |
+
* Fix: Ensure the setting to not save credit card values is respected for draft entries too.
|
373 |
+
* Fix: Do not show full address if [x show="line_2"] is empty.
|
374 |
+
* Fix: Fix undefined index error for section ID shortcode.
|
375 |
+
* Fix: Prevent jQuery from being loaded an extra time with edit in-place.
|
376 |
+
* Fix: Correctly validate required field in embedded form on multi-page form.
|
377 |
+
* Fix: Error messages were appearing in some server configurations when credit card numbers includes spaces.
|
378 |
+
|
379 |
+
= 2.04.01 =
|
380 |
+
* Fix: Prevent php warning when 'show' attr is missing.
|
381 |
+
* **Pro Version Forms**
|
382 |
+
* Fix: Prevent get_post_field() call on null.
|
383 |
+
|
384 |
+
= 2.04 =
|
385 |
+
* New: Add FrmEntryValues and FrmFieldValue classes, which should be widely reusable.
|
386 |
+
* New: Add ready-to-use contact form. Use it anywhere with [formidable id=contact-form]. It will only be created on new installs.
|
387 |
+
* Enhancement: Load global settings tabs with AJAX to improve the load speed.
|
388 |
+
* Enhancement: Add form and entry to frm_email_message filter.
|
389 |
+
* Fix: Changed blank title processing in the form widget to match WordPress core widgets.
|
390 |
+
* **Pro Version Forms**
|
391 |
+
* New: Add FrmProEntryValues and FrmProFieldValue classes, which should be widely reusable.
|
392 |
+
* New: Add frm_validate_file and frm_response_after_upload hooks.
|
393 |
+
* Enhancement: Set license keys in wp-config.php. Use define('FRM_PRO_LICENSE', 'license-key-here');
|
394 |
+
* Enhancement: Prevent the submit button from being clicked while Lookup fields are processing.
|
395 |
+
* Fix: If a field is in a section in an embedded form, it will now be included in the default email message.
|
396 |
+
* Fix: Entry array passed to API and Zapier includes repeating fields with their own value arrays.
|
397 |
+
* Fix: Include_fields parameter applies in show entry shortcode.
|
398 |
+
* Fix: Some repeating or embedded fields were duplicated in the default emails and the show entry shortcode.
|
399 |
+
* Fix: Only show section headings in email if there are values submitted inside the section.
|
400 |
+
* Fix: Calculation error occurred when calculation contained fields inside and outside repeating section.
|
401 |
+
* Fix: Make sure [input opt=1] works when "other" options are present in radio fields.
|
402 |
+
* Fix: Prevent JS error for calc with no trigger field.
|
403 |
+
* Fix: Show loading icon when updating a field with update link.
|
404 |
+
* Fix: Allow "3" in the title of a collapsible section
|
405 |
+
* Fix: Only check get_user_locale in admin area to stay in step with WordPress.
|
406 |
+
* Fix: Keep Lookup option with special characters selected when editing entry.
|
407 |
+
* Fix: Prevent fields from returning validation errors when they're in a hidden section.
|
408 |
+
* Fix: Fix "Array" showing for the options in post status View filter.
|
409 |
+
* Fix: Filter fields autopopulated by lookup based on parent settings.
|
410 |
+
* Fix: Don't set cookie during API request.
|
411 |
+
* Fix: Fix entry ID greater than and less than filters.
|
412 |
+
* Fix: Close the file type limit selection box when clicking away.
|
413 |
+
* Fix: Remove autoclear from masks.
|
414 |
+
|
415 |
+
|
416 |
+
= 2.03.10 =
|
417 |
+
* New: Add <a href="https://formidableforms.com/wordpress-anti-spam-invisible-recaptcha/">invisible recaptcha to your WordPress forms</a>
|
418 |
+
* New: Add frm_form_div_attributes action hook
|
419 |
+
* Enhancement: Replace is_super_admin calls per WordPress recommendations
|
420 |
+
* Enhancement: Add duplicated field right below original instead of at the end of the form for easier drag and drop form building with long forms
|
421 |
+
* Fix: When importing entries, save the IP from the imported CSV rather than the IP of the person running the import
|
422 |
+
* Fix: Fix duplicate frm_verify ID HTML vaildation error in forms
|
423 |
+
* Fix: Fix squished customization panel showing up when clicking into some field settings
|
424 |
+
* Fix: Run frm_validate_entry when there are errors
|
425 |
+
* **Pro Version Forms**
|
426 |
+
* New: Add format option to Text Lookup fields
|
427 |
+
* Enhancement: Make file upload errors translatable
|
428 |
+
* Enhancement: Pull translations based on the user locale in the WordPress profile
|
429 |
+
* Enhancement: Allow show=city in frm-field-value shortcode
|
430 |
+
* Fix: Immediate update dropdown appearance on the form builder page when multi-select dropdown setting is changed
|
431 |
+
* Fix: Don’t run JavaScript form validation on page load
|
432 |
+
* Fix: Don’t force form placeholders in combo fields
|
433 |
+
* Fix: Attach files from repeating sections to form emails when the option is checked
|
434 |
+
* Fix: Update rewrite endpoints when the view parameter changes to prevent 404s
|
435 |
+
* Fix: Assume equals=1 when is_draft shortcode is missing the equals parameter
|
436 |
+
* Fix: Import form data correctly into Lookup Checkbox fields
|
437 |
+
|
438 |
+
= 2.03.09 =
|
439 |
+
* New: Add frmStartFormLoading and frmEndFormLoading jQuery events.
|
440 |
+
* **Pro Version Forms**
|
441 |
+
* New: Add frm_set_and_or_for_lookup filter to allow for filtering lookups that match every value.
|
442 |
+
* Fix: Do not clear values in form fields when previous page is conditionally hidden.
|
443 |
+
* Fix: Don't include combo field description html with empty description.
|
444 |
+
|
445 |
+
= 2.03.08 =
|
446 |
+
* New: Add frm_label_justify CSS layout class to justify text in long labels
|
447 |
+
* Fix: Prevent XSS error messages in Chrome when saving a form on the back-end
|
448 |
+
* Fix: Remove extra space between textarea and description.
|
449 |
+
* Fix: Resolve errors in frm_entries_footer_scripts action call.
|
450 |
+
* Fix: Decrease size of file path for automatic updates to avoid hitting file path limits on Windows servers.
|
451 |
+
* Fix: Improve checkbox and radio styling with Bootstrap active.
|
452 |
+
* Fix: Remove Bootstrap error class with js validation.
|
453 |
+
* **Pro Version Forms**
|
454 |
+
* New: Add unique date/time validation back to time fields in your forms.
|
455 |
+
* New: Add custom jQuery events that fire before form redirect (frmBeforeFormRedirect) and after deleting/adding a row (frmAfterRemoveRow/frmAfterAddRow).
|
456 |
+
* New: Add frm_full_upload CSS Layout Class.
|
457 |
+
* Enhancement: Remove deprecated safe_mode references.
|
458 |
+
* Enhancement: Allow field descriptions to be set in all sub fields.
|
459 |
+
* Enhancement: Display a 0 in numeric calculations rather than a blank value.
|
460 |
+
* Enhancement: Add [event_date] shortcode in View sidebar.
|
461 |
+
* Enhancement: Check required fields before allowing a file to be uploaded.
|
462 |
+
* Enhancement: Add Parent Entry ID column to entry listing page.
|
463 |
+
* Enhancement: Allow Formidable forms shortcodes as auto_id prefix or suffix.
|
464 |
+
* Fix: Improve styling for Other text box in horizontal radio or checkbox field
|
465 |
+
* Fix: Switch Cancel Link back to Edit after entry is updated in-place.
|
466 |
+
* Fix: Allow quotes in update link value.
|
467 |
+
* Fix: Prevent other option from showing when using [input opt=1].
|
468 |
+
* Fix: Skip content shortcode checks that have already been run.
|
469 |
+
* Fix: Do not treat 0 value as empty in conditional shortcode.
|
470 |
+
* Fix: Calculate median properly for stats.
|
471 |
+
* Fix: Do not rely on field order to check if a field is conditionally hidden.
|
472 |
+
* Fix: Include the html to set a dynamic field to multiple on the form builder page.
|
473 |
+
* Fix: Get form and section ID correctly when existing field is dragged into a section.
|
474 |
+
* Fix: Do not replace values in fields watching Lookups on edit.
|
475 |
+
|
476 |
+
= 2.03.07 =
|
477 |
+
* New: Add frm_after_import_view hook.
|
478 |
+
* New: Add frmPageChanged, frmFormComplete, and frmFormErrors jQuery events.
|
479 |
+
* Fix: Include full where query in cache key to avoid identical keys for different queries.
|
480 |
+
* Fix: Show entries from all forms on the entry listing page.
|
481 |
+
* Fix: Remove IE8-specific CSS causing errors in stylesheet.
|
482 |
+
* **Pro Version Forms**
|
483 |
+
* New: Add frm_before_create_post hook.
|
484 |
+
* Enhancement: Add frm_final_submit class to submit button for easier form styling.
|
485 |
+
* Fix: Allow star rating statistics to work for non-scale fields.
|
486 |
+
* Fix: Add more file upload spam protection to stop spam files in your forms.
|
487 |
+
* Fix: Prevent file uploads from some specific headless browsers.
|
488 |
+
* Fix: Clear options when switching to Lookup field type to prevent conditional logic conflicts.
|
489 |
+
* Fix: Convert show=id to show=ID in user ID shortcodes to prevent error messages.
|
490 |
+
* Fix: Make sure Entry Status filter works.
|
491 |
+
* Fix: Include Lookup Checkboxes in calculations.
|
492 |
+
|
493 |
+
= 2.03.06 =
|
494 |
+
* **Pro Version Forms**
|
495 |
+
* Fix: Add nonce check for uploads
|
496 |
+
* Fix: Decrease maximum number of orphaned files that can be deleted at one time
|
497 |
+
* Fix: Carry page titles across on import
|
498 |
+
|
499 |
+
= 2.03.05 =
|
500 |
+
* New: Add <a href="https://formidableforms.com/defeat-spambots-honeypot-spam-protection/">Honeypot spam protection to your WordPress forms</a>
|
501 |
+
* Enhancement: Add frm_form_attributes hook
|
502 |
+
* Enhancement: Make field value dropdown code available in the free form builder plugin
|
503 |
+
* Enhancement: Add deprecated notice for old globals such as $frm_form, $frm_entry, $frm_entry_meta, and $frmdb
|
504 |
+
* Fix: Set default menu name to Formidable
|
505 |
+
* Fix: Allow Date column to be toggled on form listing page
|
506 |
+
* **Pro Version Forms**
|
507 |
+
* New: Add Honeypot spam protection on file uploads in your forms.
|
508 |
+
* New: Add option to get oldest or newest unique values in Views.
|
509 |
+
* New: Add custom frmDrawChart event for customizing graphs.
|
510 |
+
* Enhancement: Delete temporary files after 6 hours.
|
511 |
+
* Enhancement: Add more comparison types for Lookup field queries. Affects frm_set_comparison_type_for_lookup hook options.
|
512 |
+
* Enhancement: Add frm_pro_value_selector_options hook for customizing options available in field value dropdown.
|
513 |
+
* Enhancement: Trigger frmLookupOptionsLoaded event when options are loaded in Lookup field.
|
514 |
+
* Fix: Separate multiple files with comma for Zapier.
|
515 |
+
* Fix: Start and end date not applying to repeating date fields.
|
516 |
+
* Fix: Do not clear hidden form field in conditionally hidden Repeatable Section.
|
517 |
+
* Fix: Create queue for fields watching cascading Lookups so the value set is always the correct value.
|
518 |
+
* Fix: If a field doesn't have separate values, simplify the options array to include only the key and displayed value.
|
519 |
+
* Fix: Delete child entries when a Repeating fields are conditionally hidden and entry is updated.
|
520 |
+
|
521 |
+
= 2.03.04 =
|
522 |
+
* Fix: Allow quotes within shortcodes in email settings
|
523 |
+
* Fix: Check if an option is "other" a little more reliably. Instead of checking for 'other' anywhere in the option key, check for other_ at the beginning.
|
524 |
+
* Fix: Correctly use default version number for jquery ui URL if query string is not included
|
525 |
+
* Fix: Increase room for ids in the database. Increase from 11 to 20 to match the WordPress DB fields
|
526 |
+
* Fix: Resolve a conflict with themes adding display:block; as the default for all input elements that is causing checkboxes and radio buttons to look bad
|
527 |
+
* Code: Email code refactoring
|
528 |
+
* **Pro Version Forms**
|
529 |
+
* Fix: text calculations using a single dropdown time field
|
530 |
+
* Fix: issue with duplicate headings after a repeating section in the default email message and the frm-show-entry shortcode
|
531 |
+
* Fix: Prevent blank lines when headings are excluded in the default email message and the frm-show-entry shortcode
|
532 |
+
* Fix: Remove the non-functional search box from the Formidable -> Entries page for all forms
|
533 |
+
* Fix: invalid HTML when displaying paragraph field text in a Dynamic List field
|
534 |
+
* Fix: Prevent a php error message when showing an empty table from the formresults shortcode
|
535 |
+
* Fix: & was converting to & in fields watching Lookups
|
536 |
+
* Fix: Remove fields within section from section's logic options to help prevent logic loops
|
537 |
+
* Fix: Time field conditional statements weren't showing content when they should
|
538 |
+
* Fix: Time Field validation was having trouble when the start or end settings didn't include the leading zero (7:30 instead of 07:30)
|
539 |
+
* Fix: Unique time fields were causing errors on submit
|
540 |
+
|
541 |
+
= 2.03.03 =
|
542 |
+
* Fix: Update the minified JS to match the non-minified version. This fixes issues with calculations.
|
543 |
+
* Fix: Allow the first form action label to be clickable
|
544 |
+
|
545 |
+
= 2.03.02 =
|
546 |
+
* Fix: javascript error in Safari in form builder
|
547 |
+
* Fix: Prevent null values from leaving a white space on the entries listing page
|
548 |
+
* Fix: Form shortcode parameters were also affecting the forms in a widget
|
549 |
+
* Fix: Prevent action trigger options from getting cut off at the bottom of the page
|
550 |
+
* **Pro Version Forms**
|
551 |
+
* New: Add an option on the Global settings page to fade in forms with conditional logic. This fixes issues on sites with javascript errors causing the form to never show.
|
552 |
+
* Tweak: don't show the section headings in email by default
|
553 |
+
* Tweak: Force Ajax submit when editing entry inline
|
554 |
+
* Enhancement: Add time range validation when submitting the form based on settings for each time field
|
555 |
+
* Fix: prevent duplicate form submissions with ajax submit
|
556 |
+
* Fix: Entries on listing page were showing a php warning for entries submitted by logged out users
|
557 |
+
* Fix: Prevent form submission while Lookups are loading options
|
558 |
+
* Fix: Prevent two common calculation errors
|
559 |
+
* Fix: Hide the child entries in repeating fields on the page that lists all entries
|
560 |
+
* Fix: After selecting a form in the view settings, it wasn't possible to show the field keys in the sidebar
|
561 |
+
* Fix: Lookup Checkboxes weren't saving in embedded form
|
562 |
+
* Fix: Lookup fields weren't getting enabled if change triggered repeatedly
|
563 |
+
* Fix: Time fields with missing settings were showing php warnings on the page
|
564 |
+
* Fix: Make rootline look nice in Edge
|
565 |
+
* Fix: Autosave values with the non-ajax autosave on page turn
|
566 |
+
* Fix: Prevent multipage forms from submitting on the first page when redirecting after submit
|
567 |
+
* Fix: "Array" was showing in the default emails for checkbox fields inside a repeating section
|
568 |
+
* Fix: Prevent autocomplete dropdown from showing twice when editing in place
|
569 |
+
|
570 |
+
= 2.03.01 =
|
571 |
+
* Fix: Some colors were not being used correctly in the visual form styler settings
|
572 |
+
* **Pro Version Forms**
|
573 |
+
* New: Added an option to use the old time field with one dropdown
|
574 |
+
* Fix: Syntax error on entry submit in older versions of PHP
|
575 |
+
* Fix: [25 show=value] was returning the displayed value instead of the saved value
|
576 |
+
* Fix: Conditional fields were showing after ajax save or ajax page turn
|
577 |
+
* Fix: Save Rich Text value when form is submitted with button and ajax
|
578 |
+
* Fix: Prevent button styling from applying to buttons inside a rich text field
|
579 |
+
* Fix: Only include one column on the entries listing page for post status
|
580 |
+
* Fix: Fields with conditional logic depending on time fields weren't showing correctly
|
581 |
+
* Fix: PM was always saving as AM in time fields
|
582 |
+
* Fix: Time fields sometimes had no minute options depending on the start time and minute step settings
|
583 |
+
* Fix: Lookup Checkboxes were not saving in embedded forms
|
584 |
+
* Fix: Removed the section descriptions and duplicate section headings in default email message
|
585 |
+
* Fix: Prevent double submissions with ajax submit enabled with redirect after submit
|
586 |
+
* Fix: Default Emails were coming through empty if the form only had embedded forms
|
587 |
+
|
588 |
+
= 2.03 =
|
589 |
+
* New: Add a combined list of all entries on the Formidable -> Entries page instead of defaulting to the first form
|
590 |
+
* New: Replace submit input with button HTML for new forms. This allows us to show the loading indicator on top of the button instead of outside. This applies to new forms only. Existing forms will need the submit button HTML adjusted to see this new styling. But we decided it was best for reverse compatibility if we don't change it automatically
|
591 |
+
* New: Add frm_after_title hook for inserting content between the title and form fields
|
592 |
+
* Enhancement: Speed up adding and editing field options and conditional logic in the form builder
|
593 |
+
* Enhancement: Don't save the field options until the whole form is saved
|
594 |
+
* Tweak: Pass error array in frm_get_paged_fields instead of true/false. If you are using the frm_get_paged_fields hook, it's possible your code may need to be adjusted.
|
595 |
+
* Fix: styling issue when select field moves when changing between a blank and not blank option
|
596 |
+
* Fix: Make sure "Activate" button for add-ons is specific to subsite in multisite network
|
597 |
+
* Removed: pro fields and styling options from the visual styler, extra pro version css, and registering pro scripts. We don't need unused options.
|
598 |
+
* **Pro Version Forms**
|
599 |
+
* New: Add multi page progress bars and rootline to jump to different pages
|
600 |
+
* New: Add a page number parameter to the url when the form page changes
|
601 |
+
* New: Auto-save drafts on page turn when drafts are enabled in the form maker settings
|
602 |
+
* New: Add save button to back-end entries. This allows an entry to be saved from any page when editing.
|
603 |
+
* New: Break out repeating sections in the email and frm-single-entry shortcode. Now they repeat instead of separate with commas.
|
604 |
+
* New: Add options for email content/single entry shortcode: include_extras="section,page,html", include_fields="10,15", exclude_fields="10,15"
|
605 |
+
* New: Change the time field to multiple dropdowns that always save in hh:mm format. This allows for secondary sorting by time fields in views. Using h:i A for the time format in a shortcode will be forced to g:i A.
|
606 |
+
* Enhancement: Switch the unique time functionality from front-end disabling to back-end validation
|
607 |
+
* Enhancement: Hide form on page load and fade it in to prevent conditional fields flashing
|
608 |
+
* Enhancement: Order the post type dropdown by post key instead of defaulting to the order of post type creation
|
609 |
+
* Enhancement: Make the custom field options more helpful by including custom fields only for the selected post type
|
610 |
+
* Enhancement: Add .frm_loading_form class on the form tag while the form is processing
|
611 |
+
* Enhancement: Show the dropzone error message all the time instead of only on hover
|
612 |
+
* Tweak: Use css to make the conditional logic field options shorter instead of truncating in the form builder
|
613 |
+
* Tweak: Use function to convert field object to array during in_section migration.
|
614 |
+
* Tweak: Avoid errors after Lookup field is deleted and other fields watched that Lookup field.
|
615 |
+
* Fix: Do not delete values in frm_item_metas table for all fields selected in create front-end Post action (such as the conditional logic).
|
616 |
+
* Fix: Show the correct option label for a blank value. Previously option label for "0" saved value was displaying.
|
617 |
+
* Fix: Compact file upload field wasn't aligned with other fields in the row
|
618 |
+
* Fix: Evaluate date strings the same way in view filters and inline conditions for date fields
|
619 |
+
* Removed: Old auto updating code. If you are running add-ons you haven't updated since before November 2015, they will no longer auto update.
|
620 |
+
|
621 |
+
= 2.02.13 =
|
622 |
+
* New: Add frm_send_separate_emails filter. If there are multiple emails in the "to" box, this hook will send one email per address.
|
623 |
+
* Fixed: Prevent field option reset when a style is included with the imported form
|
624 |
+
* **Pro Version Forms**
|
625 |
+
* New: Add dynamic Lookup population options to paragraph fields
|
626 |
+
* New: Allow no_link=1 for [25 truncate=20 no_link=1]. By default, when a value is truncated in a view, it shows a link to show more content. This shortcode option can remove the link.
|
627 |
+
* New: Add does_not_contain filter to stats shortcode
|
628 |
+
* New: Add frm_filter_view hook for modifying View object
|
629 |
+
* New: Add frm_graph_default_colors hook
|
630 |
+
* Tweak: Replace all formidablepro.com links with formidableforms.com
|
631 |
+
* Improved: Remove arrows on read-only HTML5 number field
|
632 |
+
* Improved: Apply Formidable styling to Dynamic List fields
|
633 |
+
* Improved: Allow Lookup fields with repeating section values to filter based on parent value
|
634 |
+
* Fixed: Do not enable read-only dependent Lookup fields
|
635 |
+
* Fixed: Form scrolls correctly on page turn
|
636 |
+
* Fixed: JavaScript errors caused by file upload field in Woocommerce form
|
637 |
+
* Fixed: Allow ajax submit if there are no file fields on the page with a value
|
638 |
+
* Fixed: Correctly import address values into Address field
|
639 |
+
* Fixed: [created_at] conditionals take timezone into account
|
640 |
+
* Fixed: Do not urlencode GET variables that are set in form shortcode
|
641 |
+
* Fixed: Prevent WordPress auto paragraphs from adding unwanted paragraph tags in calendar View headings
|
642 |
+
* Fixed: Removed repeating fields from non-repeating field logic
|
643 |
+
|
644 |
+
= 2.02.12 =
|
645 |
+
* Fixed: PHP 7.1 illegal string offset warnings addressed.
|
646 |
+
* **Pro Version Forms**
|
647 |
+
* New: Add frm_order_lookup_options hook to adjust the order of options in a Lookup field.
|
648 |
+
* Fixed: JavaScript errors were occurring when illegal file type was uploaded and Woocommerce was active.
|
649 |
+
* Fixed: Make sure PDF files display correctly with show_image=1 in WP 4.7.
|
650 |
+
* Fixed: Scroll error when switching pages with Ajax submit.
|
651 |
+
* Fixed: Make sure dependent autocomplete Lookup fields aren't disabled permanently.
|
652 |
+
* Fixed: Make sure GET variables set in View shortcodes work correctly.
|
653 |
+
|
654 |
+
= 2.02.11 =
|
655 |
+
* New: Added frm_create_default_email_action hook to prevent default email action creation.
|
656 |
+
* New: Added frm_inline_submit CSS Layout Class to use in the form generator.
|
657 |
+
* Improved: Include IP for checking comment blacklist.
|
658 |
+
* Improved: Load minified themepicker js and placeholder js when possible.
|
659 |
+
* Improved: Better spam checking with Akismet.
|
660 |
+
* Improved: Update placeholder JS for old browsers to v2.3.1.
|
661 |
+
* Fixed: Don’t force fields created by a add-on to a text field when Pro is not installed.
|
662 |
+
* Fixed: Style success message text color now applies to nested paragraph tags.
|
663 |
+
* Fixed: Prevent PHP warning messages some sites are seeing during cache key retrieval.
|
664 |
+
* Fixed: -1 offset in frm_scroll_offset hook now stops auto-scrolling.
|
665 |
+
* Fixed: Invalid Portuguese translation for field is invalid message.
|
666 |
+
* Fixed: A few HTML errors on form Settings page are resolved.
|
667 |
+
* Fixed: Set default margin on checkbox and radio divs. This resolves conflicts with Bootstrap styling and frm_two_col and frm_three_col classes.
|
668 |
+
* Fixed: If same form is published multiple times on the same page, make sure success message shows with the right occurrence of the form. Auto-scroll to the correct form as well.
|
669 |
+
* **Pro Version Forms**
|
670 |
+
* New: Add time_ago=2 and time_ago=3 to created_at shortcode options. The number used here will determine how many time levels are shown, e.g. time_ago=1 will show “2 years”, time_ago=2 will show “2 years 3 months”, time_ago=3 will show "2 years 3 months 15 days”.
|
671 |
+
* New: Allow time comparisons with NOW, e.g. [if x less_than="NOW"]Show this content[/if x]
|
672 |
+
* New: Added author_link parameter to userID shortcode options. [25 show=author_link] will include a link to the WordPress author page.
|
673 |
+
* New: Added frm_allow_date_mismatch hook to improve validation for certain date formats. This may be needed if you are using a custom format in your date fields that include non-English text.
|
674 |
+
* New: Added greater than or equal to and less than or equal to filter to stats and graphs.
|
675 |
+
* Improved: Added comma between values in text calculation when multiple values come from the same field.
|
676 |
+
* Improved: RTL indented sub-category styling for checkboxes and radio buttons.
|
677 |
+
* Improved: Include the hidden Dropzone field inside the form instead of in the footer.
|
678 |
+
* Improved: Remove entry div from the page after fadeout when deleting an entry.
|
679 |
+
* Improved: Order post type dropdown in Create Post action by post key.
|
680 |
+
* Improved: Allow repeating fields to be selected in a field's Lookup population options.
|
681 |
+
* Improved: Repeating entry keys are now randomly generated.
|
682 |
+
* Improved: Allow dynamic default value shortcodes in calculation box.
|
683 |
+
* Fixed: Do not filter shortcodes submitted in entry when editing the entry. Process external shortcodes before replacing [input].
|
684 |
+
* Fixed: The default value is now set correctly in dependent Lookup radio and checkbox fields.
|
685 |
+
* Fixed: Style font now applies to section headings.
|
686 |
+
* Fixed: Unnecessary urlencode removed from $_GET variable. Allows searching with + symbol in query string now.
|
687 |
+
* Fixed: Endless loop prevented when new child form is given same ID as parent from XML.
|
688 |
+
* Fixed: Allow updating of read-only dropdown in back-end Entries.
|
689 |
+
* Fixed: Lookup field options wouldn't update while dropdown was open in Chrome on Windows. Dropdown is now disabled until options are completely loaded.
|
690 |
+
* Fixed: Ensure that autocomplete text shows in dropdown when theme styling is overridden in Style.
|
691 |
+
* Fixed: UserID field now autopopulates correctly when creating an entry in the WordPress dashboard.
|
692 |
+
* Fixed: Errors on entries page when file didn't exist.
|
693 |
+
* Fixed: The include_zero parameter in graphs caused errors with certain WordPress date formats. This now works with any date format.
|
694 |
+
* Fixed: Using "hours" in a Creation Date View filter would result in erroneous results.
|
695 |
+
* Fixed: Data was duplicated in the frm_item_metas and post meta or taxonomies table. It is now only present in the post meta or taxonomies table.
|
696 |
+
* Fixed: Do not force html=1 on file upload field in frm-field-value shortcode.
|
697 |
+
* Fixed: Prevent errors when a hidden field or text field is used for post status.
|
698 |
+
|
699 |
+
= 2.02.10 =
|
700 |
+
* Add frm_form_error_class hook
|
701 |
+
* Fix db error when updating title in some forms
|
702 |
+
* Fix unclickable keys in Customization Panel
|
703 |
+
* Fix print styling on entries page
|
704 |
+
* Clear entry cache after delete all entries
|
705 |
+
* **Pro Form Features**
|
706 |
+
* Add frm_time_ago_levels hook for drilling down time_ago
|
707 |
+
* Fix adding new file after removal when editing
|
708 |
+
* In multi-site, only copy forms if copy form setting is checked
|
709 |
+
* Make sure detaillink works if View is on home page
|
710 |
+
|
711 |
+
= 2.02.09 =
|
712 |
+
* Add frm_before_install hook
|
713 |
+
* Trigger a database update to flush permalinks
|
714 |
+
* Fix PHP 5.4 syntax error
|
715 |
+
* **Pro Form Features**
|
716 |
+
* Fix single post page content
|
717 |
+
|
718 |
+
= 2.02.08 =
|
719 |
+
* Fix recaptcha error (change default to normal)
|
720 |
+
* Prevent double submit clicks
|
721 |
+
* Make sure recaptcha English language setting applies
|
722 |
+
* Add placeholder color CSS
|
723 |
+
* Add frm_after_import_form action hook
|
724 |
+
* Add frm_send_email hook for stopping the email
|
725 |
+
* Add frm_upgrade_page hook
|
726 |
+
* Include field object in frm_prepare_data_before_db hook
|
727 |
+
* Fix nav errors when trying to edit form that doesn't exist
|
728 |
+
* Replace specific cache key deletion with group cache delete for more cache clearing fixes
|
729 |
+
* **Pro Form Features**
|
730 |
+
* Added pretty URLs to views
|
731 |
+
* Added month and year labels in credit card dropdowns
|
732 |
+
* Show user options for admin when editing user-limited dynamic field
|
733 |
+
* Added frm_load_dropzone hook for disabling dropzone
|
734 |
+
* Added frm_dynamic_field_user hook for dynamic fields.
|
735 |
+
* Load pro translations in plugin instead of allowing translations from wp.org to trump
|
736 |
+
* Fix error when editing a multi-page form with blank repeating section on separate page
|
737 |
+
* Add space next to collapsible section icons
|
738 |
+
* Fix required file error when file is present
|
739 |
+
* Fix clearing dependent autocomplete dropdown in repeating sections
|
740 |
+
* Update EDD updater
|
741 |
+
|
742 |
+
= 2.02.07 =
|
743 |
+
* Improve cache clearing in order to make Formidable compatible with persistent object caching
|
744 |
+
* Add vertical-align:baseline to radio and checkboxes to prevent styling conflicts
|
745 |
+
* Add hook for invalid form entry error message
|
746 |
+
* Add form id to 'frm_include_meta_keys' hook
|
747 |
+
* Fix IE11 and Edge form builder issues with editing field options
|
748 |
+
* Allow localhost to pass URL validation
|
749 |
+
* Remove frm_field_input_html calls for fields on form builder page
|
750 |
+
* **Pro Forms Features**
|
751 |
+
* Add option to send emails on import
|
752 |
+
* Allow default style to export with form
|
753 |
+
* Fix form importing with a style (make sure style is selected in form's settings)
|
754 |
+
* Fix exporting Views without form
|
755 |
+
* Fix adding subfield types in Chrome
|
756 |
+
* Make sure "Remove" link still shows when frm_compact is used in file upload field
|
757 |
+
* Make sure actions only trigger on import when import is selected
|
758 |
+
* Check if transient timeout has been deleted to prevent expired update links
|
759 |
+
* Fix conditional logic in a section after removing and re-adding a row
|
760 |
+
* Make sure repeating section is cleared after a form is submitted
|
761 |
+
* Move repeating section form to trash when parent is trashed
|
762 |
+
* Make sure collapsible icon uses section color
|
763 |
+
* Fix errors when "Show page content" is selected in form's settings
|
764 |
+
* If repeating form entries page is accessed directly, go to parent's entries page
|
765 |
+
* Fix editing entries with file upload in repeating section
|
766 |
+
* Allow translation of more file upload messages and no results message in autocomplete dropdown
|
767 |
+
* Fix donut graphs
|
768 |
+
* Fix PHP 5.2 graph errors
|
769 |
+
* Adjust lowercase value sorting in Lookup fields
|
770 |
+
* Fix auto_id errors with WPML
|
771 |
+
* Prevent multiple View filters from being added during migration
|
772 |
+
* Fix Phone Number mask on ajax submission form
|
773 |
+
* Fix exclude_fields option with editlink
|
774 |
+
* Fix truncating in place so it doesn't cut words in half
|
775 |
+
* Make sure autocomplete, multi-select, and read-only attributes are included for category dropdowns
|
776 |
+
* Remove "Unique" option from userID fields
|
777 |
+
* Fix hidden row_ids field name (in repeating section)
|
778 |
+
* Make sure character limit, read-only, etc do not apply on form builder page
|
779 |
+
* Make sure second and third level Lookup fields correctly limit options to the current user
|
780 |
+
* Fix HTML validation errors for checkboxes in repeating fields
|
781 |
+
|
782 |
+
= 2.02.06 =
|
783 |
+
* Prevent styling conflict with field buttons on form builder
|
784 |
+
* **Pro Forms Features**
|
785 |
+
* Add styling for left and right labels in combo fields
|
786 |
+
* Fix PHP 5.2 error in graphs controller
|
787 |
+
* Add taxonomy support to graphs and stats
|
788 |
+
* A couple other graph fixes
|
789 |
+
* Fix entry_id and created_at issue with stats
|
790 |
+
* Fix lowercase text sorting in Lookup fields
|
791 |
+
* Make sure conditional logic works on embedded form fields when editing
|
792 |
+
* Fix conditional logic dependent on hidden embedded form field
|
793 |
+
* Make sure time field displays correctly by default with frm-field-value shortcode
|
794 |
+
* Add Format option to Text fields
|
795 |
+
|
796 |
+
= 2.02.05 =
|
797 |
+
* Clear caching when updating styling settings
|
798 |
+
* Add frm_field_div_classes hook
|
799 |
+
* Remove deprecated safe_mode check
|
800 |
+
* Warning added for invalid height/padding styling combination
|
801 |
+
* **Pro Forms Features**
|
802 |
+
* Added several new graph types and options
|
803 |
+
* Prevent repeating field value duplication when saving drafts
|
804 |
+
* Add migration to remove duplicated repeating section data
|
805 |
+
* Show child forms in CSV export options
|
806 |
+
* Allow 2 decimal places for max file size
|
807 |
+
* Fix frm-stats y=""
|
808 |
+
* Allow time fields to be used in calculations
|
809 |
+
* Add a Country label option for Address fields
|
810 |
+
* Remove a few graph filters
|
811 |
+
* Make sure address fields display error messages
|
812 |
+
* Make sure category fields keep value when saving a draft
|
813 |
+
* Other bug fixes
|
814 |
+
|
815 |
+
= 2.02.04 =
|
816 |
+
* Add field description margin option
|
817 |
+
* Fixes for submitting forms in <IE10
|
818 |
+
* **Pro Forms Features**
|
819 |
+
* Prevent star styling conflict with some themes
|
820 |
+
* Fix conditional logic dependent on numeric checkboxes
|
821 |
+
* Allow arrays in Lookup checkbox field default value
|
822 |
+
* Make sure Lookup fields load correctly with ajax in repeating section on form builder
|
823 |
+
* Fix field errors showing on dependent Dynamic fields
|
824 |
+
* Only validate on change when js validation is on
|
825 |
+
* Make sure address field errors show up correctly
|
826 |
+
* Include confirmation field classes for old HTML
|
827 |
+
* Make repeating fields work with frm_date_field_js hook
|
828 |
+
* Don't show long decimal for allowed file size
|
829 |
+
* Fix conditional logic with ampersands
|
830 |
+
* Fix left label with autocomplete dropdown
|
831 |
+
* Don't allow switching between sections and HTML field types
|
832 |
+
* Fix JS error when multi-select logic field has no options selected
|
833 |
+
* Make sure WP errors are returned correctly in file upload field
|
834 |
+
* Allow use of show_image, add_link, and show_filename with frm-field-value
|
835 |
+
* Don't show date pop-up for read-only date field
|
836 |
+
* Fix ordering by number fields mapped to a custom field
|
837 |
+
|
838 |
+
|
839 |
+
= 2.02.03 =
|
840 |
+
* Update translations
|
841 |
+
* **Pro Forms Features**
|
842 |
+
* Fix file upload field display with an ID ending in 0
|
843 |
+
* Fix file upload fields in a repeating section when editing entries
|
844 |
+
* Don't trigger update on all repeating Lookup fields when new row is added
|
845 |
+
* Don't clear Lookup dropdown values when editing
|
846 |
+
* Fix showing the error message on confirmation fields
|
847 |
+
* Fix conditional shortcodes for embedded file upload fields
|
848 |
+
* Make sure visible repeating dependent Dynamic field values are not cleared
|
849 |
+
|
850 |
+
= 2.02.02 =
|
851 |
+
* Fix clicking the undo link after bulk trash forms
|
852 |
+
* Add submitFormManual function for custom scripts
|
853 |
+
* HTML5 error fields now have styling
|
854 |
+
* **Pro Forms Features**
|
855 |
+
* Fix conditional logic on radio fields in an embedded form
|
856 |
+
* Add download link to files in uploader
|
857 |
+
* Fix undefined message in Address fields
|
858 |
+
* Make sure new file upload field works in repeating sections
|
859 |
+
* Show credit card errors
|
860 |
+
* Make sure date fields show the correct format in repeating sections when editing
|
861 |
+
* Make sure incorporated upload importer works correctly
|
862 |
+
* Fix file upload field on multi-page ajax submission form
|
863 |
+
* Exclude credit cards and passwords from default email
|
864 |
+
* Fix phone number field JS issues in firefox
|
865 |
+
* Add loading text to Lookup fields
|
866 |
+
* Improve reverse compatibility for file upload field ID shortcode
|
867 |
+
* Allow specific user ID and entry ID searching in form entries tab
|
868 |
+
|
869 |
+
= 2.02.01 =
|
870 |
+
* **Pro Forms Features**
|
871 |
+
* Add styling for uploader with left label
|
872 |
+
* Add styling for rich text field with left label
|
873 |
+
* Make new file upload strings translatable
|
874 |
+
* Fix default date issue in Firefox
|
875 |
+
* Search post fields in admin entries tab
|
876 |
+
* Allow searching by IP address in admin entries tab
|
877 |
+
* Fixed showing default avatars if there is none selected in the form
|
878 |
+
* Fixed issue with newly uploaded files getting dropped when there are validation errors while editing an entry
|
879 |
+
* Fixed issue with showing the url of the icon instead of the uploaded file by default
|
880 |
+
|
881 |
+
= 2.02 =
|
882 |
+
* Improve user role dropdowns in global settings
|
883 |
+
* Remove some deprecated functions
|
884 |
+
* More output escaping
|
885 |
+
* Move file creation for stylesheet to its own file for an easier API
|
886 |
+
* **Pro Forms Features**
|
887 |
+
* Add drag and drop file uploading
|
888 |
+
* Add options to set the file size and count limits
|
889 |
+
* Merge the upload importer plugin into main plugin
|
890 |
+
* Filter the media library so uploads in forms can only be viewed by those with permission to edit entries
|
891 |
+
* Don't allow direct viewing of attachment pages
|
892 |
+
* Add file protection options per form to prevent direct access to files
|
893 |
+
* Add a prefix to the attachment slug to prevent the attachments from using top-level slugs that would be better used elsewhere
|
894 |
+
* Process files during validation if javascript errors on the page, or if browser doesn't support the in-place file uploader
|
895 |
+
* Include the error message at the top of the page when there are ajax validation errors
|
896 |
+
* Add frm_image_html_array hook so we can tie in with modals soon
|
897 |
+
* Add an option to use text calculations for combining values instead of requiring math operations
|
898 |
+
* Add age shortcode for use in calculations. Use [age id=25] in a calculation, where 25 is the id of the date field.
|
899 |
+
* If a calculation doesn't have any field triggers, trigger it on load
|
900 |
+
* Fixed calculations using multiselect fields across page breaks
|
901 |
+
* Fixed date calculations with an empty date field. The calculation will now wait until any date fields have been filled.
|
902 |
+
* Only use ajax validation when ajax submit is turned on to prevent double validation checks
|
903 |
+
* Allow recaptcha to be dragged into section
|
904 |
+
* Fixed issue with html showing in rich text
|
905 |
+
* Fixed filtering conditionals from parent form inside of a foreach loop
|
906 |
+
* Change default sep for images displayed in View
|
907 |
+
* Don't force links when displaying a non-image file
|
908 |
+
* Make sure repeating fields watching Lookups keep custom value
|
909 |
+
* Fix undefined index error with date field calendar style setting
|
910 |
+
* Make sure page size and limit work together well in Views
|
911 |
+
* Don't run date calculations until all dates are selected
|
912 |
+
* Allow address field labels to be edited when field is initially added
|
913 |
+
* Fix single row Lookup field checkboxes styling
|
914 |
+
|
915 |
+
= 2.01.03 =
|
916 |
+
* **Pro Forms Features**
|
917 |
+
* Make sure HTML entities don't show in rich text fields
|
918 |
+
|
919 |
+
= 2.01.02 =
|
920 |
+
* Increased minimum required WordPress version to 3.8
|
921 |
+
* Added frm_skip_form_action hook. This hook can be used to change whether the action is skipped or not
|
922 |
+
* Added border radius settings to success and error messages
|
923 |
+
* Fixed issue allowing a trashed form shortcode to still show the form
|
924 |
+
* Fixed issue causing & to show instead of & when editing paragraph fields
|
925 |
+
* Removes French and Swedish translations since they are complete online
|
926 |
+
* Update for better cache deletion in WP 4.0+
|
927 |
+
* Allow a specific field type to change the value for emails and entry array
|
928 |
+
* Prevent errors with Redis cache plugin
|
929 |
+
* Improve styling for submit buttons on mobile devices
|
930 |
+
* Don't let imported style override default
|
931 |
+
* Add frm_clean_[field-type-here]_field_options_before_update hook
|
932 |
+
* Fix &, >, and other character comparison issues
|
933 |
+
* **Pro Forms Features:**
|
934 |
+
* Added frm_combo_dropdown_label filter. This hook can be used to add a label to the blank option in combo field dropdowns (state, and country, Credit card month, year)
|
935 |
+
* Added frm_use_embedded_form_actions hook. If this hook is used to return the value "true", form actions for embedded forms will be fired
|
936 |
+
* Make sure the view page number is not 0
|
937 |
+
* When getting the entry array, address fields will no longer be sent as an array
|
938 |
+
* Don't load more than 500 options in a lookup field on the form builder page
|
939 |
+
* Fixed rich text fields with in place edit
|
940 |
+
* Fixed javascript error when submitting an entry from the back-end
|
941 |
+
* Use the correct calendar locale when editing an entry from the back-end
|
942 |
+
* Fixed issue with the unique message being replaced if it was the same as the global unique message
|
943 |
+
* Fixed issue with dependent dynamic field change events not getting triggered
|
944 |
+
* Exclude password and credit card fields from the default email message
|
945 |
+
* Add views parameter to frm-search shortcode
|
946 |
+
* Fix error that appeared when using a date field in a calculation in multi-page form
|
947 |
+
* Fix issue with switching from a dropdown to a Lookup field
|
948 |
+
* Fix issue with loading icon replacing Lookup field options
|
949 |
+
* Set confirmation field description correctly
|
950 |
+
* Allow post fields in form action conditional logic
|
951 |
+
* Set default value correctly when address field is shown
|
952 |
+
* Don't let spaces break conditional logic
|
953 |
+
* Fix JS error after in-place edit
|
954 |
+
* Fix PHP warning message for Lookup fields
|
955 |
+
* Fix ambiguous form ID SQL error
|
956 |
+
* Don't require credit card fields when editing
|
957 |
+
* Make sure ampersand doesn't break Lookup fields
|
958 |
+
* Add autopopulate option to Image URL, time, and hidden fields
|
959 |
+
* Add hook to allow LIKE comparison with Lookup fields
|
960 |
+
|
961 |
+
= 2.01.01 =
|
962 |
+
* Use a different email regex to allow more characters, and longer TLDs
|
963 |
+
* Only load custom styles on the styler. Don't include it on the manage styles, or custom css tabs. Bad custom css can make the page uneditable.
|
964 |
+
* Fix issue preventing the option to Allow the multiple recaptchas to be turned off
|
965 |
+
* Fixed issue with white space allowed in field options when bulk editing
|
966 |
+
* Use javascript instead of jQuery to scroll after submit
|
967 |
+
* Add missing styling to make inline labels work with checkbox/radio fields
|
968 |
+
* **Pro Forms Features:**
|
969 |
+
* Add checkbox option to Lookup fields
|
970 |
+
* Hide empty radio/checkbox Lookup fields
|
971 |
+
* Allow autocomplete Lookup fields to populate text fields
|
972 |
+
* Add filter for setting field type used for logic 'frm_logic_FIELDTYPE_input_type'
|
973 |
+
* Prevent duplicate submissions during in-place-edit or ajax-loaded forms
|
974 |
+
* Make sure post fields show up correctly on edit
|
975 |
+
* Always show the number range options in a number field
|
976 |
+
* Fixed issue with dynamic list fields not saving a value when the visibility is set to administrator
|
977 |
+
* check for __frmDatepicker before using it. This resolves issues when using a date field with custom code.
|
978 |
+
* Strip slashes shown in an entry right after POSTing
|
979 |
+
* If a field in calculation is missing, don't break the js
|
980 |
+
* Prevent conditional loops with dropdown fields
|
981 |
+
* Fixed issue with Dynamic fields not showing up when expected, and when editing 3+ level Dynamic fields
|
982 |
+
* Remove the country field when the "other" address option is selected
|
983 |
+
* Fixed issue with required Address field on conditionally hidden page. They were still required, even when skipped.
|
984 |
+
* Fixed star fields on multi-paged ajax forms. Going back a page was showing radio buttons.
|
985 |
+
* Fixed issue with small autocomplete field, when it is hidden on page load.
|
986 |
+
* Fixed issue that allowed conditional fields to show right after hitting "save draft"
|
987 |
+
* Fixed default values inside of conditional logic
|
988 |
+
* Fixed issue preventing "none" from being selected for the date styling in the styles
|
989 |
+
|
990 |
+
= 2.01.0 =
|
991 |
+
* Allow shortcodes for the submit button label
|
992 |
+
* Increase the timeout for activating a license
|
993 |
+
* Add a couple static functions to use in add-ons with form actions
|
994 |
+
* Don't show templates on the add-ons page
|
995 |
+
* Add frm_switch_field_types hook for specifying which fields can be switched to/from
|
996 |
+
* Add Authorize, Stripe, WOO, and copy icons
|
997 |
+
* Some back-end styling improvements
|
998 |
+
* Additional bug fixes
|
999 |
+
* **Pro Forms Feature:**
|
1000 |
+
* Add new "Lookup" field type
|
1001 |
+
* Add "Lookup value" option to several field types
|
1002 |
+
* Add clear on focus and default blank option to Address fields
|
1003 |
+
* Move form submit js to js file
|
1004 |
+
* Add repeating field args to new and edit fields hooks
|
1005 |
+
* Refactor conditional logic
|
1006 |
+
* Improve and limit post redirection
|
1007 |
+
* Cut down on View query size when no field filters are set
|
1008 |
+
* Additional bug fixes
|
1009 |
+
|
1010 |
+
= 2.0.25 =
|
1011 |
+
* Add an option to allow multiple recaptchas. This is off by default to avoid new conflicts.
|
1012 |
+
* Use the recaptcha size setting when displaying multiple recaptchas per page.
|
1013 |
+
* Add frm_after_field_is_imported and frm_prepare_single_field_for_duplication hooks
|
1014 |
+
* Add property="stylesheet" to the stylehsheets when HTML5 is enabled
|
1015 |
+
* **Pro Forms Features**
|
1016 |
+
* Redirect to post when View detail page is linked to post
|
1017 |
+
* Make sure entry ID is unique filter does not get used
|
1018 |
+
* Make sure limit applies to a View's pagination
|
1019 |
+
* Add dynamic field to frm_data_sort hook
|
1020 |
+
* Add a message when the file upload field is included before a page break
|
1021 |
+
* Fix the issue with the frm_first class applying to the confirmation field
|
1022 |
+
* Remove the invalid email message used when the email confirmation doesn't match
|
1023 |
+
|
1024 |
+
= 2.0.24 =
|
1025 |
+
* Add option to use the dark reCaptcha
|
1026 |
+
* Show a helpful error message when recaptcha communication fails
|
1027 |
+
* Fix the clear on focus setting to not switch to the default blank
|
1028 |
+
* **Pro Forms Features:**
|
1029 |
+
* Validate recaptcha during the javascript validation checks
|
1030 |
+
* Make sure required credit card fields are required
|
1031 |
+
* Add option to removes names from credit card fields to prevent the values from being posted to the server (most secure)
|
1032 |
+
* Don't require address fields when conditionally hidden
|
1033 |
+
* Exclude linked dynamic fields from calculation fields dropdown since they aren't functional
|
1034 |
+
* Improve third-party shortcode filtering in Views
|
1035 |
+
* Ignore View filters with no value selected for where field
|
1036 |
+
* Fix the file upload background color setting
|
1037 |
+
* Include a flag on the field to indicate if it is inside a section or not
|
1038 |
+
|
1039 |
+
= 2.0.23 =
|
1040 |
+
* Add support for multiple reCaptchas on a page
|
1041 |
+
* Make sure the screen options for the form listings only shows when needed
|
1042 |
+
* Make sure a value is selected when it includes an &
|
1043 |
+
* Load grid CSS on the back-end entries and form builder pages
|
1044 |
+
* Allow transparent background color on fields and form
|
1045 |
+
* Don't update clear on click options until whole form is saved
|
1046 |
+
* Don't force an array to be a string before going through get_display_value function
|
1047 |
+
* Added frm_trigger_create_action hook to alter action triggering
|
1048 |
+
* Added frm_csv_format hook for changing the exported CSV format
|
1049 |
+
* Added frm_is_field_required hook for allowing a field to be conditionally required
|
1050 |
+
* Added frm_field_options_to_update hook for setting more field options to update
|
1051 |
+
* Added frm_display_FIELDTYPE_value_custom hook
|
1052 |
+
* Added frm_get_FIELDTYPE_display_value
|
1053 |
+
* Added frm_csv_field_columns hook. Once the columns are added, if a field value is an array, it will automatically fill added csv columns
|
1054 |
+
* **Pro Forms Features:**
|
1055 |
+
* Added straight up client-side validation
|
1056 |
+
* Added Credit card and Address field types. Enable the Credit card field with add_filter( 'frm_include_credit_card', '__return_true' );
|
1057 |
+
* Allow actions to be triggered when a draft is saved
|
1058 |
+
* Allow free text in user id field filtering in views
|
1059 |
+
* Improved the unique filter in Views
|
1060 |
+
* Add Entry ID filter to all existing single entry Views instead of always checking for the entry param in the url
|
1061 |
+
* Allow "any" for the number step
|
1062 |
+
* Updated Chosen script to 1.5.1
|
1063 |
+
* Correctly check for multisite sitewide activation
|
1064 |
+
* Fixed the problem with the file upload attachment option not staying checked
|
1065 |
+
* Fixed filtering by entry ID and fields together in Views
|
1066 |
+
* Make sure the limit setting doesn't affect calendar Views, and show empty calendar for Calendar views with no entries
|
1067 |
+
* Make sure closing shortcodes in After Content are filtered
|
1068 |
+
* Make sure Dynamic List fields show up in default html email
|
1069 |
+
* Make sure we are jumping to the first field in the form after validation instead of the field with the lowest id
|
1070 |
+
* Fix field ID issue in repeating sections across pages
|
1071 |
+
|
1072 |
+
= 2.0.22 =
|
1073 |
+
* Add an upgrade banner when affiliate links are active
|
1074 |
+
* Add permission checks in addition to nonce for several actions for extra security
|
1075 |
+
* Don't allow javascript to be saved in field choices
|
1076 |
+
* Include the admin_url params inside the function to resolve a conflict with WPML
|
1077 |
+
* Prevent XML breaking with US character
|
1078 |
+
* Fix rand() error with float some users are seeing with PHP7
|
1079 |
+
* **Pro Forms Features:**
|
1080 |
+
* Add the option to automatically delete files when a file is replaced, and and entry is deleted
|
1081 |
+
* Allow a prefix and/or suffix along with the [auto_id] shortcode
|
1082 |
+
* Add is_draft shortcode for views. This allows [is_draft], [if is_draft equals="1"]-draft-[/if is_draft], and [if is_draft equals="0"]-complete-[/if is_draft]
|
1083 |
+
* Add frm_no_entries_message filter to adjust the output when there are no entries found
|
1084 |
+
* Add frm_search_for_dynamic_text hook for searching numeric values in Dynamic fields
|
1085 |
+
* Add the saved value into the array and json response. The entries fetched using FrmEntriesController::show_entry_shortcode were only returning the displayed value. This adds the saved value to the array as well. This covers user id, dynamic fields, radio, dropdown, and checkbox fields anytime the saved and displayed values are different.
|
1086 |
+
* Add filter on add/remove fields to allow translations
|
1087 |
+
* Default new number fields to use "any" step
|
1088 |
+
* Fix conditional logic dependent on a paragraph field
|
1089 |
+
* Fix date fields inside form loaded with in-place-edit
|
1090 |
+
|
1091 |
+
= 2.0.21 =
|
1092 |
+
* Add a timestamp to the css file instead of plugin version number to improve issues with styling caching
|
1093 |
+
* Add pro tips & upgrade calls
|
1094 |
+
* Fix bug with importing old forms with no custom style
|
1095 |
+
* **Pro Forms Features:**
|
1096 |
+
* Remove autoinsertion options from the view settings. Any views that were set to be inserted automatically will have their shortcodes saved onto that page.
|
1097 |
+
* Allow the delete link to work after an ajax load
|
1098 |
+
* Apply styling settings to HTML fields
|
1099 |
+
* Randomize entry key on CSV import
|
1100 |
+
* Make sure the old transient doesn't delay automatic update
|
1101 |
+
* Allow forced plugin update check if it hasn't been forced before
|
1102 |
+
* Fix CSV import form dropdown with only 1 item
|
1103 |
+
* Fix bug with importing data in embed form fields
|
1104 |
+
* Fix time_ago issue with blank value
|
1105 |
+
* Fix missing pro license message to link to global settings
|
1106 |
+
* Fix a fatal error when a non-Site Admin visits the Global settings page in multisite
|
1107 |
+
|
1108 |
+
= 2.0.20 =
|
1109 |
+
* Added more styling options: box-shadow, font-weight, Form Title, and Form Description
|
1110 |
+
* Fixed a couple issues with activating and deactivating licences
|
1111 |
+
* A few improvements for importing styles
|
1112 |
+
* Add a hook for approved theme authors to add affiliate links. If the free version is packaged with a theme, the theme author can get commissions on upgrades.
|
1113 |
+
* **Pro Forms Features:**
|
1114 |
+
* Added Parent entry ID to view filters
|
1115 |
+
* Added a button to autofill addon licenses
|
1116 |
+
* Improve accuracy of time_ago for leap years
|
1117 |
+
|
1118 |
+
= 2.0.19 =
|
1119 |
+
* Add CSV export to free version
|
1120 |
+
* Add page with list of add-ons
|
1121 |
+
* Set up base for allowing affiliate links inside the free version
|
1122 |
+
* **Pro Forms Features:**
|
1123 |
+
* Updating improvements
|
1124 |
+
* Add show_image=1 and add_link=1 to file upload field shortcode
|
1125 |
+
* Show draft, pending, and private posts for creator and admin in frm-entry-links shortcode
|
1126 |
+
* Make sure Number fields perform calc when shown
|
1127 |
+
* Deprecate the frm_csv_field_ids filter
|
1128 |
+
* Fix graph bug
|
1129 |
+
* Fix Dynamic Field filtering in Views
|
1130 |
+
* Fix JavaScript error in repeating section
|
1131 |
+
* Fix showing errors in collapsible sections
|
1132 |
+
* Hide the end divider field when needed
|
1133 |
+
* Fix inline label for Dynamic dropdowns
|
1134 |
+
* Make LIKE logic case-insensitive in field ID shortcode
|
1135 |
+
* Make sure multiple file upload fields save on edit when all files are removed
|
1136 |
+
* Fix conditional logic issues with extra white space
|
1137 |
+
* Fix LIKE conditional logic issues with arrays and number values
|
1138 |
+
* Fix calcs with edit in-place
|
1139 |
+
* Include embedded fields in CSV export
|
1140 |
+
|
1141 |
+
= 2.0.18 =
|
1142 |
+
* PHP 7 updates
|
1143 |
+
* Add frm_field_extra_html hook
|
1144 |
+
* Prevent specific html entity from breaking email message
|
1145 |
+
* Add filter for removing wpautop from form success message
|
1146 |
+
* Fix HTML error on form builder page
|
1147 |
+
* Change the "Licenses" submenu to "Plugin Licenses"
|
1148 |
+
* **Pro Forms Features:**
|
1149 |
+
* Allow ? and * in Phone Number Format
|
1150 |
+
* Remove child form from export options
|
1151 |
+
* Fix LIKE conditional logic bug
|
1152 |
+
* Some auto-update adjustments
|
1153 |
+
* Add frm_search_any_terms filter
|
1154 |
+
* Fix file upload issue in CSV export
|
1155 |
+
* Fix issue with duplicate classes in HTML field
|
1156 |
+
* Fix filtering with user_id=current in graphs
|
1157 |
+
* Fix Dynamic List field with value like 9.99
|
1158 |
+
* Make sure userID field doesn't lose value when conditionally hidden/shown
|
1159 |
+
|
1160 |
+
= 2.0.17 =
|
1161 |
+
* **Pro Forms Features:**
|
1162 |
+
* Fix post update bug
|
1163 |
+
|
1164 |
+
= 2.0.16 =
|
1165 |
+
* Escape font family correctly for quotation marks
|
1166 |
+
* Only check for updates every 24 hours
|
1167 |
+
* Allow emails to be separated by a space
|
1168 |
+
* Prevent old versions of Akismet from causing errors
|
1169 |
+
* Add unit tests for XML import
|
1170 |
+
* Styling updates for WP 4.4
|
1171 |
+
* Save form action settings even if they aren't in the default options
|
1172 |
+
* More contrast on form builder page
|
1173 |
+
* Use normal font weight for from builder
|
1174 |
+
* **Pro Forms Features:**
|
1175 |
+
* Allow Styles to be duplicated
|
1176 |
+
* Allow the form key in the CSV download url
|
1177 |
+
* Make like/not like conditional logic not case-sensitive
|
1178 |
+
* Fix multiple conditional logics on a Dynamic field
|
1179 |
+
* Fix XML import with repeating fields
|
1180 |
+
* Fix notice for old dfe fields
|
1181 |
+
* Make sure integer is being used for auto_id
|
1182 |
+
* Fix read-only dependent Dynamic field with a default value
|
1183 |
+
* Fix conditional radio button default value issue
|
1184 |
+
* Fixes for conditional logic on sections
|
1185 |
+
* Fix autoupdating for add-ons
|
1186 |
+
* Show a message if no license has been entered for an add-on
|
1187 |
+
|
1188 |
+
= 2.0.15 =
|
1189 |
+
* Send plugin updates through formidableforms.com
|
1190 |
+
* Update Swedish translation
|
1191 |
+
* Use media_buttons hook instead of deprecated media_buttons_context hook
|
1192 |
+
* Unit test updates
|
1193 |
+
* Fix Portuguese translation error
|
1194 |
+
* Allow more characters in field description
|
1195 |
+
* Prevent plugin styling conflict with user roles dropdown
|
1196 |
+
* Fix installing when the plugin is activated
|
1197 |
+
* Get rid of ambiguity in FrmField::getAll function
|
1198 |
+
* Fix the plugin url when used in the mu-plugins folder
|
1199 |
+
* Make selected values show on form builder page before refresh
|
1200 |
+
* Minor styling changes to frm_total class
|
1201 |
+
* Update stylesheet after import
|
1202 |
+
* Make long text wrap in Chrome cb/radio fields
|
1203 |
+
* Add 'compact' option to Recaptcha
|
1204 |
+
* **Pro Forms Features:**
|
1205 |
+
* Fix conditional logic bug
|
1206 |
+
* Fix calculations in repeating sections with visibility admin
|
1207 |
+
* Fix dynamic list fields in repeating sections
|
1208 |
+
* Fix JS error when removing row w/ read only field
|
1209 |
+
* Add JavaScript hook for removeRow function
|
1210 |
+
* Fix error for ordering view by time
|
1211 |
+
* Fix error with no posted values in embedded forms
|
1212 |
+
* Escape CSV cells with ' if they start with = (this is to prevent a vulnerability in Excel)
|
1213 |
+
* Prevent array keys from being appended to user meta vals
|
1214 |
+
* Switch autoupdating to EDD at formidableforms.com
|
1215 |
+
* Prevent frm_display_id from switching when View is updated
|
1216 |
+
* Fix multi-file upload display for embedded forms
|
1217 |
+
* Allow text value to autopopulate dynamic fields
|
1218 |
+
* Make embedded fields show up in View filters
|
1219 |
+
* Don't let userID field affect css class in repeating section
|
1220 |
+
* Don't check for shortcodes if no brackets are present
|
1221 |
+
* A few auto updating fixes for multisite
|
1222 |
+
* Switch [foreach 25] when form is duplicated
|
1223 |
+
|
1224 |
+
|
1225 |
+
= 2.0.14 =
|
1226 |
+
* Stripslashes in Other field
|
1227 |
+
* Prevent collapse icon from being inserted inside of section
|
1228 |
+
* Make sure roles dropdowns show correctly after clicking update (in Global Settings)
|
1229 |
+
* Make form listing and entry listing pages responsive
|
1230 |
+
* Don't truncate form name in excerpt mode
|
1231 |
+
* Fix validating embedded forms
|
1232 |
+
* Fix filtering by repeating fields in Dynamic Views > Detail Page
|
1233 |
+
* Fix dependent Dynamic autocomplete fields with default values
|
1234 |
+
* Fix logic on embedded forms and multiselect dd
|
1235 |
+
* Some readonly field fixes
|
1236 |
+
* Read-only improvements for multiselect dropdown
|
1237 |
+
* Improve JavaScript for multiple forms on a page
|
1238 |
+
* Use the minified css for jQuery UI styling
|
1239 |
+
* Allow view filtering with time fields using NOW
|
1240 |
+
* Allow times to be formatted with [25 format='g:i A']
|
1241 |
+
|
1242 |
+
= 2.0.13 =
|
1243 |
+
* Allow recaptcha to be conditionally hidden on previous pages of form
|
1244 |
+
* Fix error with embedded form on a conditionally hidden page
|
1245 |
+
* Show the editlink after an entry is edited in place
|
1246 |
+
* Make sure collapsible section icons show regardless of characters in the section title
|
1247 |
+
* Don't require conditionally hidden dynamic category fields
|
1248 |
+
* Add fields attribute to [editlink] shortcode
|
1249 |
+
* Fix calculations using repeating checkboxes
|
1250 |
+
* Prevent double click on Add button in repeating section
|
1251 |
+
* Clear conditionally hidden fields even if they aren't visible
|
1252 |
+
* Make sure pro form templates get imported in multisite
|
1253 |
+
* Use separate values by default for post status fields
|
1254 |
+
* Make sure the separate values option is allows for post status fields
|
1255 |
+
* Show the frmcal-week-end class consistently
|
1256 |
+
* Fix default values in repeating Dynamic fields
|
1257 |
+
* Make Private Views show up in shortcode builder
|
1258 |
+
* Don't do calculations in conditionally hidden repeating fields
|
1259 |
+
* Do calcs in repeating fields when adding a row
|
1260 |
+
* Improve JS for IE8
|
1261 |
+
* Fix unique time error
|
1262 |
+
* Fix default date in jQuery calendar
|
1263 |
+
* Allow entry key with frm-field-value shortcode
|
1264 |
+
* Fix unique time error
|
1265 |
+
* Improve calculations across page breaks
|
1266 |
+
* Prevent clearing default values when hiding/showing sections
|
1267 |
+
* Run calculations in collapsible sections
|
1268 |
+
* Fix duplicating regular sections
|
1269 |
+
* Add post ID View filter
|
1270 |
+
* Fix empty graphs
|
1271 |
+
* Allow frm-entry-update-field, editlink, and deletelink inside foreach loop
|
1272 |
+
* Fix importing parent_form_id on child forms
|
1273 |
+
* Allow css file updating if FTP creds are present
|
1274 |
+
* A few jshint fixes
|
1275 |
+
* Add 'frm_ajax_url' hook
|
1276 |
+
* Allow layout classes to be used with submit button
|
1277 |
+
* Remove frm_last class
|
1278 |
+
* Prevent get_filesystem_method error in multisite after update
|
1279 |
+
* Conditionally use ssl for the ajax url for form submission
|
1280 |
+
|
1281 |
+
|
1282 |
+
= 2.0.12 =
|
1283 |
+
* Add option to center form on page
|
1284 |
+
* Improve styling classes for more consistency across different field classes, and make all classes responsive
|
1285 |
+
* Added a few more styling classes: frm_three_fourths, frm_two_fifths, frm_three_fifths
|
1286 |
+
* Remove in-place-editing from the field keys on the form builder page
|
1287 |
+
* Add 'frm_after_update_field_name' hook for changing a field name during editing
|
1288 |
+
* Update Bootstrap multiselect to v0.9.13
|
1289 |
+
* Add license page to prepare for add-ons. Big things are coming.
|
1290 |
+
* Fix: Prevent loading icon from being huge in some themes
|
1291 |
+
* Fix: When the jQuery UI css is loaded by another plugin on the form builder page, the required icon looked the same whether required or not. This styling conflict is resolved.
|
1292 |
+
* Fix: Make sure the form description size can be changed in the styling settings.
|
1293 |
+
* **Pro Forms Features:**
|
1294 |
+
* Views can now be filtered by fields in the repeating sections.
|
1295 |
+
* Added [parent_id] shortcode for use in views. This shortcode will only have a value when the displaying entries in repeating sections.
|
1296 |
+
* Allow views to be created using the repeated entries. Since each repeating row is an entry in a hidden form, we can allow views to be created using those repeating rows for more flexability.
|
1297 |
+
* Added order parameter to frm-entry-links
|
1298 |
+
* Allow options in a post status field to come from the form builder. The options should have separate values and the saved values can include 'publish', 'draft', 'private', 'scheduled'.
|
1299 |
+
* Remove the option to lock field and form keys. This is more of a hassle than a feature.
|
1300 |
+
* Allow the entry key to be used with the frm-field-value shortcode instead of forcing the entry
|
1301 |
+
* Replaced inline 50px height for image fields with .frm_image_from_url class for easier control
|
1302 |
+
* Improve file upload field in Chrome to prevent extra space from showing.
|
1303 |
+
* Added 'frm_save_post_name' filter. This can be used for custom form actions that create posts.
|
1304 |
+
* Added 'frm_display_data_opts' filter.
|
1305 |
+
* Prevent frm_display_id custom field from saving when a field is selected in the create post settings instead of customized content
|
1306 |
+
* Fix: When forms were submitted without ajax, the redirect wasn't working consistently.
|
1307 |
+
* Fix: The shortcodes weren't processing in the message shown after an entry is updated.
|
1308 |
+
* Fix: When we prevented the PayPal action from triggering on import, we stopped all actions. This is now fixed so an action can be set (in the code) to be triggered on import. Posts will now be created on import again.
|
1309 |
+
* Fix: The dynamic list field was showing the entry ID in the entries tab instead of the value.
|
1310 |
+
* Fix: The Add row button wasn't showing in a repeating section when returning to edit an entry if there were more than two rows in the section.
|
1311 |
+
* Fix: Improve dropping a field between two sections.
|
1312 |
+
* Fix: Remove nonce check for frm-entry-update-field shortode. Page caching gives front-end nonce checks issues.
|
1313 |
+
* Fix: We changed the parameters sent to the frm_after_update_field hook without realizing it. The 'field_id' attribute was sometimes an object, but was previously always an integer. This has been updated for reverse compatibility, and 'field' has been added with the full field object.
|
1314 |
+
* Fix: If you put -100 for the start date in a date field, -100 would show in the date field instead of 1915. This is now working correctly for dynamic values like this with three digits.
|
1315 |
+
* Fix: When filtering a view with a Dynamic field, NOT EQUAL TO will work correctly.
|
1316 |
+
* Fix: Double quotes were causing trouble when included inside an error message returned by the frm_validate_field_entry hook
|
1317 |
+
* Fix: Graphs using x_axis and start_date were having trouble
|
1318 |
+
* Fix: The js error after selecting an option in autocomplete field is fixed when there are calculations in the form.
|
1319 |
+
|
1320 |
+
= 2.0.11 =
|
1321 |
+
* Fix issue with clearing array keys when sanitizing an array when displaying entry values
|
1322 |
+
* When the email "reply to" value uses the "from" setting, only use the email address without the name
|
1323 |
+
* Switch the form action events to dropdown instead of checkboxes
|
1324 |
+
* Shrink the reCaptcha on small screens
|
1325 |
+
* Add font-weight 100-900 options to styler
|
1326 |
+
* Add frm_email_message filter
|
1327 |
+
* Fixes for javascript errors while form building in IE8
|
1328 |
+
* Only load font.css for the admin bar when user can edit forms
|
1329 |
+
* Add frm_include_form_tag filter for using div instead of form tag
|
1330 |
+
* Add frm_show_submit_button filter for hiding and showing the submit button
|
1331 |
+
* Fix date calculations using date formats that begin with the year
|
1332 |
+
* Allow classes to be included on a hidden input
|
1333 |
+
* Process the entry a little sooner (wp_loaded instead of wp)
|
1334 |
+
* Add frm_capitalize layout class
|
1335 |
+
* Make frm_customize class work for more field types
|
1336 |
+
* **Pro Forms Features:**
|
1337 |
+
* Set new views to private by default
|
1338 |
+
* Allow clickable=1 in the frm-show-entry shortcode
|
1339 |
+
* Make sure to show the Add row button for repeating sections in IE9
|
1340 |
+
* Correctly require a password before showing password protected views
|
1341 |
+
* Add update_single_field function for easier updating of a single field
|
1342 |
+
* Add frm_datepicker_formats hook for adding format additional options on the Formidable -> global settings page
|
1343 |
+
* Add frm_csv_row hook for adding data to a row in the CSV
|
1344 |
+
* Keep the Pending status selected after save in the post settings
|
1345 |
+
* Add frm_is_dynamic_field_empty filter for overriding whether a dependent dynamic field is available for validation or if the value should be cleared
|
1346 |
+
* Improve dragging and dropping large sections of fields
|
1347 |
+
* Don't trigger form actions while importing
|
1348 |
+
* Make sure $entry_ids is still intact for the frm_after_content hook
|
1349 |
+
* Replace m/d/Y format option
|
1350 |
+
* Fix updating a field with the frm-entry-update-field shortcode
|
1351 |
+
* Work on calculating different combinations of fields inside and outside a repeating section
|
1352 |
+
* Only return unique values when a list field is displayed based on checkboxes
|
1353 |
+
* Fix searching entries with a trailing space
|
1354 |
+
* Fix truncating in the dynamic content
|
1355 |
+
|
1356 |
+
= 2.0.10 =
|
1357 |
+
* Add frm_action_triggers hook for adding custom triggers into the actions
|
1358 |
+
* Add frm_{action name here}_action_options hook so any action can be altered
|
1359 |
+
* Prevent extra form actions when a form is duplicated
|
1360 |
+
* Load correct version of formidable.js based on wp-config debugging constant (Thanks @naomicbush for the contributions!)
|
1361 |
+
* Revert get_sortable_columns changes for < WP 4.0 support
|
1362 |
+
* **Pro Forms Features:**
|
1363 |
+
* Allow calculations inside repeating sections and embedded forms
|
1364 |
+
* Set default values for conditional checkboxes and radio fields and inside conditional sections
|
1365 |
+
* A few changes to the way section fields create divs
|
1366 |
+
|
1367 |
+
= 2.0.09 =
|
1368 |
+
* Add frm_time_to_check duplicate entries filter
|
1369 |
+
* Allow custom JavaScript validation
|
1370 |
+
* Add frm_do_html_shortcodes fiter
|
1371 |
+
* Fix the duplicate entry check
|
1372 |
+
* Include get_columns function in list tables for 4.3
|
1373 |
+
* Use relative URLs in the stylesheet
|
1374 |
+
* Make frm_fifth classes responsive
|
1375 |
+
* Allow 0 to be saved in a checkbox field
|
1376 |
+
* Fix saving forms as drafts
|
1377 |
+
* **Pro Forms Features:**
|
1378 |
+
* Reduce database calls for Views
|
1379 |
+
* Allow format for default [time] and [date] shortcodes ie [time format='H:i A' round=5]
|
1380 |
+
* Include Dynamic List fields in calculation options
|
1381 |
+
* Make file upload fields more responsive
|
1382 |
+
* Improve repeating section styling
|
1383 |
+
* Improve calculation triggering when fields involved are conditionally hidden
|
1384 |
+
* Don't clear readonly fields or default values when hidden conditionally
|
1385 |
+
* Don't trigger dynamic field values if there is other logic telling the field to be hidden
|
1386 |
+
* Include Indonesian option for datepicker
|
1387 |
+
* Allow the post author to be changed by the user ID field on edit
|
1388 |
+
* Trigger calculations at the time a conditional field is shown
|
1389 |
+
* Keep the value submitted in a dynamic list field
|
1390 |
+
* Fix graphs that show multiple fields and define the x-axis
|
1391 |
+
* Allow graphs to be included in the success message after ajax submit
|
1392 |
+
* Conditionally show the max character setting in number fields based on whether HTML5 is enabled
|
1393 |
+
* Allow scale fields to work in calculations across multiple pages
|
1394 |
+
* Turn off ajax submit if repeating section includes a file
|
1395 |
+
* Fix entry creation date format on import
|
1396 |
+
* Fix filtering by a checkbox field in the frm-stats shortcode
|
1397 |
+
* Fix logic for third-level fields with conditional logic inside a repeating section
|
1398 |
+
* Make sure conditional logic only affects the newly added row when triggered after a row is added
|
1399 |
+
* Make sure orphaned data is deleted when switching divider to repeating/non-repeating
|
1400 |
+
* Allow drafts=both with user_id filter in View shortcode
|
1401 |
+
* Fix conditionally required fields when option includes quote
|
1402 |
+
* Fix date field errors on multi-page form that submits with Ajax
|
1403 |
+
* Prevent the JetPack conflict with the shortcodes module
|
1404 |
+
* Fix sorting in dependent Dynamic fields
|
1405 |
+
* Registration add-on login form styling
|
1406 |
+
* Fix inline scale field labels
|
1407 |
+
* Fix spacing issue with repeating section grid
|
1408 |
+
* Fix truncation with special characters
|
1409 |
+
* Fix importing repeating sections and embedded forms
|
1410 |
+
* Fix readonly checkboxes in calculations
|
1411 |
+
* Don't show empty custom field rows in the post settings
|
1412 |
+
* A few fixes to the formresults shortcode including the file display
|
1413 |
+
* Fix error when duplicating a section without any included fields
|
1414 |
+
* Fix timezones for searching by entry creation and updated dates in a view
|
1415 |
+
|
1416 |
+
= 2.0.08 =
|
1417 |
+
* Fix security vulnerability allowing shortcodes to be excuted inside a form https://research.g0blin.co.uk/?p=618&d=i4ziyggqao0oz0L0vpUTd8KZwrO2P9Mw
|
1418 |
+
* Added frm_filter_final_form hook. This will need to be used to cover shortcodes that span multiple blocks of field HTML since we can't do a general shortcode replacement on the rendered form
|
1419 |
+
* Revert change that prevented scripts from firing in the form success message
|
1420 |
+
* Fix timestamp timezone on view/edit entry page
|
1421 |
+
* Added frm_entries_{$col_name}_column hook to allow custom columns on the entries listing page
|
1422 |
+
* Pro: Allow the last page of a form to be conditional
|
1423 |
+
* Pro: When a field is conditionally hidden, clear the value and trigger calculations and child logic
|
1424 |
+
* Pro: Improved accuracy of calculations using the other option, and across page breaks
|
1425 |
+
* Pro: Added frm_calendar_day_names hook for displaying the full weekday name in calendar view
|
1426 |
+
* Pro: Allow a comma-separated list of ids when filtering by entry id in the view settings
|
1427 |
+
* Pro: Include the remove link on multiple file uploads
|
1428 |
+
* Pro: Display a view row correctly right after a quick-edit
|
1429 |
+
* Pro: Delete views when their form is permanently deleted
|
1430 |
+
* Pro: Only show the ID column in google table when specified
|
1431 |
+
* Pro: Fix boolean values in google entry table
|
1432 |
+
* Pro: Reduce the memory usage when exporting a CSV by preventing entry caching
|
1433 |
+
* Pro: Fix dependent taxonomies
|
1434 |
+
* Pro: Fix the graph tooltips and wrap the text on graphs so it doesn't go beyond the width of the graph
|
1435 |
+
* Pro: Allow the frm_user_can_edit hook to fire when loading a form with the entry id in the form shortcode
|
1436 |
+
* Pro: Fix backslash removal in the phone format option when the form is saved
|
1437 |
+
* Pro: Make sure validation is always performed even if there are only radio fields on the page, before showing a message that the entry failed
|
1438 |
+
* Pro: Fix Dynamic List fields dependent on Dynamic checkboxes
|
1439 |
+
* Pro: Keep the user on the last page when a draft is saved and there is only one field on the last page
|
1440 |
+
* Pro: Export the category name in the CSV instead of the id
|
1441 |
+
* Pro: Save user ID even if it's in a conditional section/page
|
1442 |
+
|
1443 |
+
= 2.0.07 =
|
1444 |
+
* Don't escape urls in ajax
|
1445 |
+
* Correctly save all the options on the form settings page
|
1446 |
+
|
1447 |
+
= 2.0.06 =
|
1448 |
+
* Fix an XSS vulnerability in the lite version. When the pro version is active, the vulnerability was resolved.
|
1449 |
+
* Increased security
|
1450 |
+
* Fix the shortcode display on form listing page
|
1451 |
+
* Add frm_helper_shortcode filter
|
1452 |
+
* Prevent javascript error on form settings page when WooThemes Helper plugin is active
|
1453 |
+
* Prevent conflict from unknown plugin/theme that was modifying the post excerpt in form actions, which prevented them from showing
|
1454 |
+
* Only scroll to the errored field and success message if they are not already in view
|
1455 |
+
* Make sure admins always have permission to view menus
|
1456 |
+
* Pro: Fix datepicker field when the jQuery CSS is set to load on all pages
|
1457 |
+
* Pro: Added frm_footer_scripts hook
|
1458 |
+
* Pro: Don't autoselect 0 in scale fields
|
1459 |
+
|
1460 |
+
= 2.0.05 =
|
1461 |
+
* Remove deprecated jQuery toggle() calls
|
1462 |
+
* Add html ids to hidden fields
|
1463 |
+
* Make sure the entry name doesn't exceed allowed database field size
|
1464 |
+
* Adjust user agent displayed values
|
1465 |
+
* Update Bootstrap javascript to v3.3.4
|
1466 |
+
* Clear more caching for forms, fields, and entries when changes are made
|
1467 |
+
* Lite only: Remove the entry search box on the entries page since the functionality is in pro
|
1468 |
+
* Pro: Fix issue with the CSV export on the Import/Export page
|
1469 |
+
* Pro: Allow for FRMRULES to be on the page multiple times for ajax-loaded forms
|
1470 |
+
* Pro: Add frmThemeOverride_jsErrors function hook
|
1471 |
+
* Pro: Conditionally require fields in a conditional embedded form
|
1472 |
+
* Pro: Fix date calculations and calculations across multiple pages
|
1473 |
+
* Pro: Show the user display name by default with dynamic fields using a user ID field
|
1474 |
+
* Pro: Fix read-only date fields on form submitted with ajax
|
1475 |
+
* Pro: Fix issue with browsing view revisions
|
1476 |
+
* Pro: Fix numeric phone formats without other characters
|
1477 |
+
* Pro: Update masked input js to v1.4
|
1478 |
+
* Pro: Fix issue with NaN showing instead of 0 in values without a number
|
1479 |
+
* Pro: Fix conflict with Easy Digital download auto-updating
|
1480 |
+
* Pro: Include list dynamic fields in the CSV and default email message
|
1481 |
+
* Pro: Match up logic when an option with & is selected
|
1482 |
+
|
1483 |
+
= 2.0.04 =
|
1484 |
+
* Fix XSS vulnerability from add_query_args and remove_query_args
|
1485 |
+
* Remove unneeded options from the form widget and switch old styling setting width from 400px to 100%
|
1486 |
+
* Fix the new form class box in the customizable HTML
|
1487 |
+
* Remove WP support for v3.5 and lower
|
1488 |
+
* Don't require the captcha if the keys haven't been configured
|
1489 |
+
* Styling enhancements for left and right label settings
|
1490 |
+
* Deactivate plugin after uninstall to prevent tables from being added back
|
1491 |
+
* Add frm_text_block class to Layout tab
|
1492 |
+
* Fix migration of email settigns that haven't been updated in over two years
|
1493 |
+
* Fix emailing from only a multiple word name with no email
|
1494 |
+
* Send emails for WordPress default if trying to send from Yahoo
|
1495 |
+
* Pro: Trigger calculation update each time a row is added or removed from repeating section
|
1496 |
+
* Pro: Allow phone format inside of repeating sections
|
1497 |
+
* Pro: Add allow=everyone option to frm-entry-update-field shortcode to prevent permission checking when updating a single field
|
1498 |
+
* Pro: Fix graph limit defaulting to 10 and the min and max options
|
1499 |
+
* Pro: Fix CSV download vulnerability without permission check
|
1500 |
+
* Pro: Fix searching by field on entry listing page
|
1501 |
+
* Pro: Fix exporting multiple entries with the bulk CSV export option
|
1502 |
+
* Pro: Fix Entry ID filter in views when using a comma separated list of ids
|
1503 |
+
* Pro: Fix 3+ level dynamic fields to hide the last field when the first is changed
|
1504 |
+
* Pro: Fix apostraphes in form action logic
|
1505 |
+
|
1506 |
+
= 2.0.03 =
|
1507 |
+
* Use frm_clear instead of clear to minimize conflicts
|
1508 |
+
* Add js fallback for database update on sites without CURL
|
1509 |
+
* Fix issues with emails migrating to actions in php 5.3, and t showing in some emails after updating settings
|
1510 |
+
* Pro: Add frm_date_format filter
|
1511 |
+
* Pro: If a comma separated list of dates is sent for formatting, explode it before formatting
|
1512 |
+
* Pro: Increase the backtrack limit when needed when replacing shortcodes in the view content if server has the limit below default
|
1513 |
+
* Pro: Fix issue causing csv export error
|
1514 |
+
* Pro: Fix the issue cuasing new posts to not be linked to a view if a field is selected for the post content
|
1515 |
+
* Pro: Fix issue some users are having with blank date fields
|
1516 |
+
* Pro: Fix ending collapsible sections at the end of a section instead of waiting for the next section
|
1517 |
+
* Pro: Fix firing calculations on page load when there are multiple calculations
|
1518 |
+
* Pro: Don't allow theme to affect the font size of stars
|
1519 |
+
|
1520 |
+
= 2.0.02 =
|
1521 |
+
* Make sure frm_to_email hook is reverse compatible
|
1522 |
+
* Fix php example in the shortcode examples
|
1523 |
+
* Add styling for frm_half classes combined with left or right labels
|
1524 |
+
* Add a fallback if dbDelta is missing
|
1525 |
+
* Remove inline js from the draft button in the default HTML to prevent 404/403 errors on some servers. This change only applies to new forms
|
1526 |
+
* Move the legend tag into the customizable HTML, but without a migration so it won't be added to existing forms
|
1527 |
+
* Move the "before fields" HTML into the fieldset to it will be parallell with the "After fields" HTML
|
1528 |
+
* Make sure partial form transients aren't saved for long forms. Make sure it's all or nothing.
|
1529 |
+
* Make sure the parent_form_id column was added, and try to add it again if it's not there
|
1530 |
+
* Pro: Allow [25 show=count]. This shortcode will return a count of items instead of the items themselves. Intended for use with a repeating section field, but would work with anything.
|
1531 |
+
* Pro: Fix filtering by text from a dynamic field
|
1532 |
+
* Pro: Make sure conditional logic doesn't apply to fields that follow a section with logic
|
1533 |
+
* Pro: Make sure any post fields used in custom code are included when the post is created
|
1534 |
+
* Pro: Load the datepicker localization file from the new hosted location
|
1535 |
+
* Pro: Rework the CSV export generation with lower memory usage and more hooks for easily removing columns
|
1536 |
+
* Pro: Fix exporting checkbox fields inside a CSV
|
1537 |
+
* Pro: Update the pagination for Genesis the '...'
|
1538 |
+
* Pro: Hopefully fix the missing date format issue some users are running into with the datepicker. Unverified since we couldn't replicate.
|
1539 |
+
* Pro: When creating a new view, make sure the filter and order rows include the fields from the selected form
|
1540 |
+
|
1541 |
+
= 2.0.01 =
|
1542 |
+
* Break transients into chunks for large forms ( > 200 fields )
|
1543 |
+
* Remove the upgrade link and perform the upgrade automatically
|
1544 |
+
* Allow upgrades to be done automatically in WordPress multisite with the 'Upgrade Network' option
|
1545 |
+
* Updated translations
|
1546 |
+
* Only add one line in the email headers for cc and bcc
|
1547 |
+
* Added frm_include_meta_keys hook for including the previously included meta values referenced by field key
|
1548 |
+
* Delete transients with uninstall
|
1549 |
+
* Make sure the legend stays hidden after opening form in a popup
|
1550 |
+
* Pro: Fixed issue with losing conditional logic on fields loaded with ajax on the form builder page
|
1551 |
+
* Pro: Fixed the auto field reordering when adding end sections to old forms
|
1552 |
+
* Pro: Fixed the daily entries graph on the reports page
|
1553 |
+
* Pro: Allow the post author to be overridden with hooks
|
1554 |
+
* Pro: Fixed the [get-param] shortcode for reverse compatibility
|
1555 |
+
|
1556 |
+
= 2.0 =
|
1557 |
+
* Move visual form styler into the free WordPress form plugin
|
1558 |
+
* Added multiple emails to free version
|
1559 |
+
* Added BCC, CC, and reply to options to emails
|
1560 |
+
* Replaced the reCaptcha with the new no-captcha recaptcha
|
1561 |
+
* Allow multiple roles to be selected for the permissions on the global settings page
|
1562 |
+
* Updated the UI
|
1563 |
+
* Added a trash can for forms as well as draft forms
|
1564 |
+
* Extra security with sanitizing output and prepare database queries extra just to be sure
|
1565 |
+
* Switch to frm_first frm_last frm_half classes for more flexibility
|
1566 |
+
* Added more responsiveness to the styling classes
|
1567 |
+
* Change the field width option from characters to pixels
|
1568 |
+
* Change the user browser info into a more easily readable format, and include it in the lite version
|
1569 |
+
* Add (hidden) legend tag for accessibility
|
1570 |
+
* Fix preview page with 2015 theme
|
1571 |
+
* Reduce duplicate entry check to 1 minute
|
1572 |
+
* Remove a bunch of upgrade messages in the lite version
|
1573 |
+
* Reduce size of indexed db columns for utf8mb4 in WordPress 4.2
|
1574 |
+
* Fixed a SQL vulnerability. Thanks @KacperSzurek for finding it!
|
1575 |
+
* Pro: Added multiple form styling templates, more styling options, and updated the default styling
|
1576 |
+
* Pro: Added repeatable fields and embedded forms
|
1577 |
+
* Pro: Created form actions and consolidated notifications and add-ons
|
1578 |
+
* Pro: All form actions can use conditional logic
|
1579 |
+
* Pro: Added confirmation fields
|
1580 |
+
* Pro: Added read-only radio and check box fields
|
1581 |
+
* Pro: View pagination will automatically take on Genesis theme styling
|
1582 |
+
* Pro: Entire sections can be moved and duplicated
|
1583 |
+
* Pro: Add frm_repeat_start_rows filter to allow the form to start with multiple rows in a repeating section
|
1584 |
+
* Pro: Make the query work for custom code returning a string query on the frm_where_filter hook for reverse compatibility
|
1585 |
+
* Pro: Escape all quotes in CSV
|
1586 |
+
* Pro: Don't require dynamic fields with no options
|
1587 |
+
* Pro: Remove stray div in the calendar view
|
1588 |
+
* Pro: Remove 'no files selected' text if files are selected
|
1589 |
+
* Pro: Add decimal option to calculations
|
1590 |
+
* Pro: Add starts with, ends with, and group by options in View filters
|
1591 |
+
* Pro: Add IP option to view filters
|
1592 |
+
* Pro: Added entry ID to view order options
|
1593 |
+
* Pro: Added hooks: frm_selectable_dates, frm_main_feedback, frm_allowed_times, frm_view_order, frm_csv_headers, frm_map_csv_field
|
1594 |
+
* Pro: Allow min or max in the graph shortcode to be equal to 0
|
1595 |
+
* Pro: Keep users on current page when they click "Save Draft"
|
1596 |
+
* Pro: Add pending for post status options in the post settings
|
1597 |
+
* Pro: Include JS with form when editing in place
|
1598 |
+
* Pro: Fix displaying stats accuracy with partial stars
|
1599 |
+
* Pro: Enqueued scripts right before they are printed for easier integration with more popup plugins
|
1600 |
+
* Pro: Allow slashes in Phone Number Format option
|
1601 |
+
* Pro: Allow default templates to be deleted
|
1602 |
+
* Pro: Reduce the baseline memory load
|
1603 |
+
* Pro: Load the form styling on view pages when set to only load styling on applicable pages
|
1604 |
+
* Pro: Change deletelink so it deletes with ajax
|
1605 |
+
* Pro: Add [user_role] shortcode for current user's role
|
1606 |
+
* Pro: Add read-only option to Dynamic fields
|
1607 |
+
* Pro: Add single row and multiple row options to Dynamic Radio and Checkbox fields
|
1608 |
+
* Pro: Allow arrays in View filters
|
1609 |
+
* Pro: Allow drafts to be searched with the frm-search form
|
1610 |
+
* Pro: Fix sql error when searching by Hebrew characters
|
1611 |
+
* Pro: Allow the use of field keys in the frm-stats shortcode
|
1612 |
+
* Pro: Force tooltip wrapping in graphs
|
1613 |
+
* Pro: Improve frm_total class for number fields
|
1614 |
+
* Lots of other small features, bug fixes, and code cleanup. Too many little features to list!
|
1615 |
+
|
1616 |
+
= 1.07.12 =
|
1617 |
+
* Add a bunch more caching
|
1618 |
+
* Scroll to field on click in form builder
|
1619 |
+
|
1620 |
+
= 1.07.11 =
|
1621 |
+
* Added hook: frm_check_blacklist for disabling the comment blacklist spam check
|
1622 |
+
* Make nonce id unique per form
|
1623 |
+
* Make sure there is at least one word before truncation
|
1624 |
+
* Pro: Check conditional logic when importing dependent data from entries data
|
1625 |
+
* Pro: Added number field min and max settings to php validation
|
1626 |
+
* Pro: Added dynamic height to the chosen search field
|
1627 |
+
* Pro: Allow HTML in the message for the frm-entry-update-field shortcode
|
1628 |
+
* Pro: Added title parameter to frm-entry-update-field, frm-entry-edit-link, and frm-entry-delete-link
|
1629 |
+
* Pro: Added end_date parameter to frm-stats shortcode
|
1630 |
+
* Pro: Added hook: frm_display_value_atts
|
1631 |
+
* Pro: Added hook: frm_after_duplicate_entry
|
1632 |
+
* Pro: Added hook: frm_show_it
|
1633 |
+
* Pro: Add nonce check for importing entries
|
1634 |
+
* Pro: Fixed display of files with an icon when editing an entry
|
1635 |
+
|
1636 |
+
= 1.07.10 =
|
1637 |
+
* Improve ajax form load speed on form builder page
|
1638 |
+
* Added 4.0 compatibility for deprecated like_escape function
|
1639 |
+
* Remove label html in radio and checkbox fields when label=0 is used on the [input] tag in the customizable HTML
|
1640 |
+
* Fix Akismet integration for current version of Akismet
|
1641 |
+
* Added Italian translation
|
1642 |
+
* Added a few ajax nonce checks but don't require valid nonce for logged-out users for caching reasons
|
1643 |
+
* Allow data-something="value" inside the [input] short code
|
1644 |
+
* Pro: Allow [default-message] to have short code parameters to set rtl (direction=rtl), font size (font_size="14px"), and styling (text_color="000" border_width="1px" border_color="000" bg_color="fff" alt_bg_color="eee").
|
1645 |
+
* Pro: Added frm_html_scoll_box class for scrolling content in an HTML field
|
1646 |
+
* Pro: Allow recurring entries using values like "Third Wednesday of [frmcal-date]"
|
1647 |
+
* Pro: Allow comma separated view filters for entry key and id
|
1648 |
+
* Pro: Allow drafts=both in view short code and form results short code
|
1649 |
+
* Pro: Added created_at and updated_at support to the frm-stats short code
|
1650 |
+
* Pro: Added column separation option to csv export
|
1651 |
+
* Pro: Added hook: frm_csv_column_sep for changing the , separation between columns in csv
|
1652 |
+
* Pro: Added hook: frm_csv_field_ids to specify fields to export in CSV
|
1653 |
+
* Pro: Added hook: frm_filter_where_val and frm_filter_dfe_where_val for filtering only the value instead of the full WHERE statement
|
1654 |
+
* Pro: Added hook: frm_rte_options for adding options to the TinyMce editor
|
1655 |
+
* Pro: Added hook: frm_show_form_after_edit to show or hide the form differently from create
|
1656 |
+
* Pro: Added hook: frm_scroll_offset to change the point of scroll after submit to allow for static headers
|
1657 |
+
* Pro: Added hook: frm_ajax_load_styles for allowing additional styles on ajax loaded form pages
|
1658 |
+
* Pro: Added hook: frm_create_cookies for preventing cookie creation
|
1659 |
+
* Pro: Added hook: frm_filter_auto_content to prevent filtering on auto-inserted views
|
1660 |
+
* Pro: Added hook: frm_file_icon to change what is displayed for a upload field when editing
|
1661 |
+
* Pro: Import CSV values for a taxonomy field correctly when the term name is in the CSV instead of requiring the ID
|
1662 |
+
* Pro: Import CSV dates correctly in entries if format has been changed to a day-first format
|
1663 |
+
* Pro: Added Post ID into the view filtering options
|
1664 |
+
* Pro: Added support for multiselect drop downs in calculations
|
1665 |
+
* Pro: Updated the way templates are fetched for wpmu copying
|
1666 |
+
* Pro: Show any additional info on the entry view page that is stored in the entry description
|
1667 |
+
* Pro: Update to Chosen 1.1.0
|
1668 |
+
* Pro: Allow comma-separated values to populate a checkbox field
|
1669 |
+
* Pro: Make fields and exclude_fields parameter work with multi-page forms (required fields are still a limitation)
|
1670 |
+
* Pro: Allow drafts=1 or drafts=both in stats shortcode
|
1671 |
+
* Pro: Allow field keys in stats filtering
|
1672 |
+
* Miscellaneous bug fixes
|
1673 |
+
|
1674 |
+
= 1.07.09 =
|
1675 |
+
* Added hook: frm_bulk_field_choices for adding custom prepopulated options
|
1676 |
+
* Cleanup styling on bulk option popup
|
1677 |
+
* Fixed submission error affecting some sites
|
1678 |
+
* PRO: Don't reload javascripts after ajax submit
|
1679 |
+
* PRO: Improve no conflict styling mode
|
1680 |
+
* PRO: Fixed cascading calculations
|
1681 |
+
* PRO: Allow HTML for the label and cancel links in the edit link shortcodes
|
1682 |
+
|
1683 |
+
= 1.07.08 =
|
1684 |
+
* Check the words on the WordPress blacklist before submitting an entry
|
1685 |
+
* PRO: Added server dynamic default value for getting values from the PHP SERVER array like the current url
|
1686 |
+
* PRO: Added hook: frm_csv_sep for changing , to a different separator for checkbox fields
|
1687 |
+
* PRO: Exclude child categories in regular dropdown fields
|
1688 |
+
* PRO: Added drafts parameter to formresults shortcode
|
1689 |
+
* PRO: Added x_order parameter to graph shortcode and modified graphs to work correctly with checkboxes
|
1690 |
+
* PRO: Added hook: frm_delete_message to customize the message shown after an entry is deleted
|
1691 |
+
* PRO: Added != option to frm-stats shortcode options
|
1692 |
+
* PRO: Added repeating events
|
1693 |
+
* PRO: Improved database call for Views.
|
1694 |
+
* PRO: Added a no conflict styling mode for overriding theme styling in the styling settings
|
1695 |
+
|
1696 |
+
= 1.07.07 =
|
1697 |
+
* Added clarity to message in license box when pro is not installed
|
1698 |
+
* Added Spanish and Serbian translations. Thank you Ognjen Djuraskovic!
|
1699 |
+
* Fixed XML form export in free version
|
1700 |
+
* PRO: Added import_csv function back in with deprecated message and fallback
|
1701 |
+
* PRO: Improved conditional statement replacing
|
1702 |
+
* PRO: Minimize search form HTML
|
1703 |
+
* PRO: Prevent comments on the view entry page from being deleted when the entry is updated
|
1704 |
+
* PRO: Only run before delete entry hook on delete all button if posts are turned on
|
1705 |
+
* PRO: Switch out ids for dependent fields after importing forms
|
1706 |
+
* PRO: Added x_axis=month and x_axis=quarter option to graph shortcode
|
1707 |
+
|
1708 |
+
= 1.07.06 =
|
1709 |
+
* Return graceful error message if no DOMDocument enabled
|
1710 |
+
* Allow fields to be updated via XML import by field key for non-templates
|
1711 |
+
* Added minimize=1 option to the [formidable] short code to minimize the form HTML to prevent wpautop interference
|
1712 |
+
* Correctly return fallbacks on a couple deprecated functions
|
1713 |
+
* PRO: Allow field keys in the frm-stats shortcode for fieldid=value
|
1714 |
+
* PRO: Fixed attaching file upload to entries when using single files
|
1715 |
+
|
1716 |
+
= 1.07.05 =
|
1717 |
+
* Added XML import/export
|
1718 |
+
* Moved more email settings and bulk form delete to free version
|
1719 |
+
* Added form edit links to admin bar
|
1720 |
+
* Removed .required class from required form inputs to minimize conflicts
|
1721 |
+
* Revert to random entry keys now that data from entries values can be used in filtering views
|
1722 |
+
* Encode email subject with frm_encode_subject hook to prevent encoding
|
1723 |
+
* PRO: Allow entries to be edited via csv import when entry ID is included
|
1724 |
+
* PRO: Expanded conditional logic for email notifications
|
1725 |
+
* PRO: Allow the frm-field-value shortcode to get the entry ID from the URL. [frm-field-value field_id=x entry_id=id]. Replace "id" with the name of the parameter in your URL
|
1726 |
+
* PRO: Added separate set of confirmation options for editing
|
1727 |
+
* PRO: Added option to disable visual tab on each view
|
1728 |
+
* PRO: Added 'action' parameter back to the frm_redirect_url hook
|
1729 |
+
* PRO: Added drafts parameter to view shortcode to show draft entries. [display-frm-data id=40 drafts=1]
|
1730 |
+
* PRO: Switched star ratings to icon font
|
1731 |
+
* PRO: Added multiple="multiple" into multiple file upload fields
|
1732 |
+
* PRO: Allow field keys in the exlude_fields shortcode option
|
1733 |
+
* PRO: Allow updated-at, created-at, updated-by to by used in conditional statements
|
1734 |
+
* PRO: Added update message and button to global default messages
|
1735 |
+
* PRO: Added progress bar to csv import
|
1736 |
+
* PRO: Added hook: frm_csv_line_break filter for changing line breaks in csv export
|
1737 |
+
* PRO: Change the updated_at and updated_by values when a field is changed with the edit field link
|
1738 |
+
* PRO: Fixed adding new conditional logic to newly added notifications
|
1739 |
+
* PRO: Allow "GROUP BY" addition to form in frm_where_filter by rearranging SQL
|
1740 |
+
* PRO: Don't apply custom display filters to single post page
|
1741 |
+
* PRO: Fixed showing only file name in views
|
1742 |
+
* PRO: Removed Pretty Link plugin integration to be placed in an add-on
|
1743 |
+
* PRO: Added delete_link and confirm parameter to formresults shortcode
|
1744 |
+
* PRO: Added entry_id, x_title, y_title, start_date, and tooltip_label to graph shortcode options
|
1745 |
+
* PRO: Allow data from entries fields to be used as x_axis in graphs
|
1746 |
+
* PRO: Allow field keys in graph shortcode
|
1747 |
+
* PRO: Add height and line-height to Global Settings
|
1748 |
+
* PRO: Filter the empty_msg for Views
|
1749 |
+
* PRO: Added draft status to csv export/import
|
1750 |
+
* PRO: Check for valid file type when saving a draft
|
1751 |
+
* PRO: Added sorting on entry listing table for non-post fields
|
1752 |
+
* PRO: Fixed form pagination with errors and no ajax validation
|
1753 |
+
* PRO: Changed image to a link when editing an entry with an image
|
1754 |
+
* PRO: Moved the frm_setup_new_fields_vars hook to fire later when dynamically getting options from a dependent data from entries field
|
1755 |
+
* PRO: Added frm_get_categories hook
|
1756 |
+
* PRO: Added frm_jquery_themes hook for creating custom jQuery calendar themes
|
1757 |
+
* PRO: Added frm_no_data_graph hook for customizing "No Data" message for graphs
|
1758 |
+
|
1759 |
+
= 1.07.04 =
|
1760 |
+
* Minor back-end styling fixes
|
1761 |
+
* PRO: Added frm_show_delete_all hook to hide the "delete all entries" button, and show by default for those with back-end entry editing capabilities
|
1762 |
+
* PRO: Fixed inserting conditional examples from the sidebar box
|
1763 |
+
* PRO: Fixed viewing single post with some view configurations
|
1764 |
+
* PRO: Fixed detailed view for calendar displays when entries are not posts
|
1765 |
+
* PRO: Fixed conditional logic on page load for radio buttons
|
1766 |
+
* PRO: Make sure entries aren't deleted in another form if using the form switcher right after deleting all entries in a form
|
1767 |
+
* PRO: Fixed error when saving a field with conditional logic with no field selected
|
1768 |
+
* PRO: Allow subscribers and below to add custom taxonomies to posts
|
1769 |
+
* PRO: Fixed conditional data from entries fields across multiple pages in an ajax form
|
1770 |
+
|
1771 |
+
= 1.07.03 =
|
1772 |
+
* Removed auto updating from free version
|
1773 |
+
* PRO: Added secondary ordering options in Views
|
1774 |
+
* PRO: Allow newly added custom fields on the "Create posts" tab to be selected from existing options
|
1775 |
+
* PRO: Allow html=1 and show_filename=1 to be used together for showing a filename linking to the file
|
1776 |
+
* PRO: If not using show_filename=1, default to show the file type icon or non-image file types
|
1777 |
+
* PRO: Fixed ordering in a view set to show a single entry
|
1778 |
+
* PRO: Fixed adding new filters to views
|
1779 |
+
* PRO: Allow a low-level user to edit entries submitted by another user when the setting is turned on, even if they have not submitted an entry themselves
|
1780 |
+
* PRO: Fixed data from entries fields across multiple pages
|
1781 |
+
* PRO: Added [updated-by] shortcode for use in views
|
1782 |
+
* PRO: Send the detail page of a view through any set filters
|
1783 |
+
* PRO: In a view, use limit over page size if limit is lower
|
1784 |
+
* PRO: Fixed going backwards in a multi-paged form, when 2 or more pages are skipped at a time
|
1785 |
+
|
1786 |
+
= 1.07.02 =
|
1787 |
+
* Added form switcher to nav and other UI enhancements
|
1788 |
+
* Remove slashes from a single entry retrieved from cache
|
1789 |
+
* Remove slashes added by ajax before saving to db
|
1790 |
+
* Fixed naming so plugin info and change log links are correct on plugins page
|
1791 |
+
* Updated default submit button HTML to include [frmurl] for a dynamic url
|
1792 |
+
* Added nonce fields and checking for increased security
|
1793 |
+
* Switched to placeholder with IE fallback for those using HTML5
|
1794 |
+
* Updated duplicate entry checking for more accuracy
|
1795 |
+
* Improved long form load time and usability
|
1796 |
+
* Added French translation
|
1797 |
+
* Removed unnecessary definitions: FRM_IMAGES_URL, IS_WPMU, FRMPRO_IMAGES_URL
|
1798 |
+
* Dropped support for < jQuery 1.7 (< WP 3.3)
|
1799 |
+
* Added frm_radio_class, frm_checkbox_class, and frm_submit_button_class hooks
|
1800 |
+
* Moved radio and checkbox inputs inside the label tags
|
1801 |
+
* Updated default styling
|
1802 |
+
* Added frm_text_block and frm_clearfix styling classes
|
1803 |
+
* Added force_balance_tags on the in-place-editing fields on the form builder page to prevent issues with adding bad HTML
|
1804 |
+
* PRO: Switch field IDs in email settings in duplicated form
|
1805 |
+
* PRO: Added option to save drafts in forms. Users can save and continue partial subissions on the front-end.
|
1806 |
+
* PRO: Added phone format option, including an input mask if format is not a regular expression
|
1807 |
+
* PRO: Added exclude_fields to the form shortcode. Ex [formidable id=2 exclude_fields="25,26"]
|
1808 |
+
* PRO: Added styling reset button on styling page
|
1809 |
+
* PRO: Switch "Custom Display" terminology to "View"
|
1810 |
+
* PRO: Allow any values in the form shortcode to set $_GET values. [formidable id=x get="something"]. Then use [get param="get"] in a field
|
1811 |
+
* PRO: Allow the field value to be used to filter data from entries values in custom displays, statistics, and graphs
|
1812 |
+
* PRO: Increased CSV export efficiency
|
1813 |
+
* PRO: Allow for quotation marks in values used to get stats in the frm-stats shortcode
|
1814 |
+
* PRO: Fixed entry listing widget to get values from stats for more accuracy
|
1815 |
+
* PRO: Updated form template export to include all form settings
|
1816 |
+
* PRO: Drop WP_List_Table fallback for < WP 3.1
|
1817 |
+
* PRO: Make custom display pagination unique to allow multiple paginated displays on a single page
|
1818 |
+
* PRO: Remove WPML-related translating options, and move to the add-on
|
1819 |
+
* PRO: Added [entry_count] for use in custom displays
|
1820 |
+
* PRO: Allow a blank option for multiselect data from entries fields when set to autocomplete
|
1821 |
+
* PRO: Adjust imported created and updated times from server setting to UTC
|
1822 |
+
* PRO: Switch time field generation from javascript to php
|
1823 |
+
* PRO: Allow [if created-at less_than="-1 month"]
|
1824 |
+
* PRO: Added frm_default_field_opts hook
|
1825 |
+
* PRO: Added frm_send_to_not_email hook for notifications that are triggered on non-emails
|
1826 |
+
* PRO: Updated file uploading progress bar with frm_uploading_files hook added to text
|
1827 |
+
* PRO: Only show "create entry in form" box if user has permission to create entries
|
1828 |
+
* PRO: Removed icons from error message
|
1829 |
+
* PRO: Fixed collapsable entry list bullets
|
1830 |
+
* PRO: Fixed dependent multi-select data from entries fields on edit
|
1831 |
+
* PRO: Added frm_back_button_class hook
|
1832 |
+
* PRO: Fixed quotation marks in conditional logic
|
1833 |
+
* PRO: Allow filtering by a field value in graphs
|
1834 |
+
* PRO: Make x_axis=created_at work in graphs
|
1835 |
+
* PRO: Added if statements to Default HTML button in email message
|
1836 |
+
* PRO: Added show_filename option to file upload fields
|
1837 |
+
* PRO: Allow dropdown data from entries fields to be set as read only
|
1838 |
+
|
1839 |
+
= 1.07.01 =
|
1840 |
+
* Added for attribute to labels for newly created fields
|
1841 |
+
* Fixed issue with slashes showing in content if retrieved from cache
|
1842 |
+
* Prevent multiple checks for updates when pro is authorized, but free version is installed
|
1843 |
+
* Added frm_form_fields_class hook
|
1844 |
+
* PRO: Fixed days events are shown on the calendar with months starting on Sunday and week start day set to Monday
|
1845 |
+
* PRO: Added option to not load a JQuery UI stylesheet
|
1846 |
+
* PRO: Added "Entry ID" option to the back-end entry search options
|
1847 |
+
* PRO: Added frm_csv_filename hook for changing the csv file name
|
1848 |
+
* PRO: Allow siteurl and sitename in after content box in custom display
|
1849 |
+
* PRO: Allow autocomplete selection to be unselected on front-end
|
1850 |
+
* PRO: Fixed conditional validation for fields in a conditional section heading beyond page 1
|
1851 |
+
|
1852 |
+
= 1.07.0 =
|
1853 |
+
* Submit build form in one input with ajax to prevent max_input_vars limitations
|
1854 |
+
* Load fields on the build page with ajax for long forms and other form builder page optimization
|
1855 |
+
* Added submit button to customizable HTML
|
1856 |
+
* Added clickable styling classes to form builder sidebar
|
1857 |
+
* Create entry key from first required text field
|
1858 |
+
* Set the default name of a field to the field type instead of "Untitled"
|
1859 |
+
* Added minified version of formidable.js
|
1860 |
+
* Added warning message if a non-unique value is added as a field value
|
1861 |
+
* Removed messages for strict standards
|
1862 |
+
* Fixed inline and left labels for checkboxes
|
1863 |
+
* PRO: Added back button on multi-paged forms
|
1864 |
+
* PRO: Added conditional logic on page breaks for skipping pages
|
1865 |
+
* PRO: Added loading indicator by submit button and on dependent data from entries fields
|
1866 |
+
* PRO: Switched out username and passwords for license numbers
|
1867 |
+
* PRO: Updated timestamp in CSV to adjust for WordPress timezone selection
|
1868 |
+
* PRO: Updated value in CSV for file upload fields
|
1869 |
+
* PRO: Include comments in the CSV export
|
1870 |
+
* PRO: Made dynamic default values clickable on form builder page
|
1871 |
+
* PRO: Added column in CSV for value for fields that are set to use separate values
|
1872 |
+
* PRO: Allow for quotation marks in field labels for the CSV export
|
1873 |
+
* PRO: Added frm_import_val hook for CSV importing
|
1874 |
+
* PRO: Removed border styling from the container around radio and checkbox fields
|
1875 |
+
* PRO: Added frm_order_display hook
|
1876 |
+
* PRO: Added utf8 support to sanitize_url=1 option
|
1877 |
+
* PRO: Added "confirm" option to frm-entry-links shortocode that is used before an entry is deleted
|
1878 |
+
* PRO: Copy conditional logic and field calculations into duplicated forms
|
1879 |
+
* PRO: Allow clickable=1 and images to be used with Google formresults shortcode
|
1880 |
+
* PRO: Allow [25 show="user_email"] for data from entries fields to get user info from the user ID from the linked form, and [25 show="30" show_info="user_email"] to get values from a field linked through 2 data from entries fields
|
1881 |
+
* PRO: Allow tags fields to be used with hierarchal taxonomies
|
1882 |
+
* PRO: No longer require fields in a conditionally hidden section heading
|
1883 |
+
* PRO: Added option for frmThemeOverride_frmAfterSubmit function for custom javascript after ajax submit
|
1884 |
+
* PRO: Updated star rating javascript version
|
1885 |
+
* PRO: Check field key when creating a form from a template to see if the trailing "2" can be removed
|
1886 |
+
* PRO: Don't show custom display content for password protected posts until allowed
|
1887 |
+
* PRO: Switch the cancel link to edit link after a form is submitted with in-place-edit and ajax
|
1888 |
+
* PRO: Switched front-end ajax to use hooks (frm_ajax_{controller}_{action})
|
1889 |
+
* PRO: Call ajax later on the init hook to prevent php notices when WooCommerce is active
|
1890 |
+
* PRO: Delete entries on the same page as the frm-entry-links shortcode, and added a confirmation message: confirm="Are you sure?"
|
1891 |
+
* PRO: Correctly check if jQuery on() function exists
|
1892 |
+
* PRO: Fixed calendar display for months starting on Sunday when the week start day is set to Monday
|
1893 |
+
* PRO: Removed "custom display" from the post type options on the "create posts" settings tab
|
1894 |
+
* PRO: Allow multiple values to be imported into an entry via csv in a multi-select dropdown field
|
1895 |
+
|
1896 |
+
= 1.06.11 =
|
1897 |
+
* Added styling classes: two thirds, scroll box, columns (frm_first_two_thirds, frm_last_two_thirds, frm_scroll_box, frm_total, frm_two_col, frm_three_col, frm_four_col, )
|
1898 |
+
* Added container in default html for new check box and radio fields
|
1899 |
+
* PRO: Added a print link on the view entry page in the back-end
|
1900 |
+
* PRO: Added support for category stats in the frm-stats shortcode
|
1901 |
+
* PRO: Allow the edit link to dynamically get the id of the entry when used on a post page. Ex: [frm-entry-edit-link id=current label="Edit" page_id=92]
|
1902 |
+
* PRO: Allow non-admin users to see the user ID drop down in the back-end when they have permission to edit entries from the back-end
|
1903 |
+
* PRO: Added frm_data_sort hook for sorting data from entries options
|
1904 |
+
* PRO: Allow dropdown fields to be selected as the post title
|
1905 |
+
* PRO: Switched data from entries drop downs to use field key in the html id instead of the field id for consistency
|
1906 |
+
* PRO: When importing templates, use the path shown in the box whether it has been saved or not
|
1907 |
+
* PRO: Fixed admin-only fields to still save to created post
|
1908 |
+
* PRO: Fixed issue preventing required multiple file upload fields from being required
|
1909 |
+
* PRO: Updated input mask script to 1.3.1
|
1910 |
+
* PRO: Added hooks for entries in the admin: frm_row_actions, frm_edit_entry_publish_box, frm_show_entry_publish_box, frm_edit_entry_sidebar
|
1911 |
+
|
1912 |
+
= 1.06.10 =
|
1913 |
+
* Allow the usage of any html attributes inside the [input] tag in the customizable HTML
|
1914 |
+
* PRO: Added "Chosen" autocomplete to dropdown fields
|
1915 |
+
* PRO: Added automatic width option to data from entries fields
|
1916 |
+
* PRO: Extended the "admin only" field option to all user roles, or only logged-in or logged-out users
|
1917 |
+
* PRO: Added multiple-select to data from entries dropdowns
|
1918 |
+
* PRO: Added more info to the form settings sidebar
|
1919 |
+
* PRO: Resolved conflict between ajax submit and plugins/themes with whitespace in php files
|
1920 |
+
* PRO: Fixed form template export to properly serialize and escape for multiple choice fields
|
1921 |
+
|
1922 |
+
= 1.06.09 =
|
1923 |
+
* DROPPED PHP4 SUPPORT. Do not update if you run PHP4.
|
1924 |
+
* Added the "create template" link into the free version
|
1925 |
+
* Added quotes around the menu position number to minimize menu position conflicts with other plugins
|
1926 |
+
* Moved all stripslashes to the point the data is retrieved from the database
|
1927 |
+
* Switched the field options bulk edit to use the admin ajax url to minimize plugin conflicts
|
1928 |
+
* Changed all occurrences of .live() to .on() for jQuery 1.9 compatibility
|
1929 |
+
* PRO: Added AJAX form submit
|
1930 |
+
* PRO: Dropped Open Flash Chart support due to security vulnerabilities
|
1931 |
+
* PRO: Added multiple option to dropdown fields
|
1932 |
+
* PRO: Added unique error message into global and field settings
|
1933 |
+
* PRO: Added option to limit by ranges in the frm-stats shortcode. Ex: [frm-stats id=50 '-1 month'<45<'-3 days']
|
1934 |
+
* PRO: Automatically strip javascript before displaying entries through a custom display
|
1935 |
+
* PRO: Added striphtml=1 and keepjs=1 options for use in custom displays
|
1936 |
+
* PRO: Added option to get the field description with [125 show="description"]
|
1937 |
+
* PRO: Added separate value column on entries page
|
1938 |
+
* PRO: Added link to delete entry only and leave post
|
1939 |
+
* PRO: Added box for custom css in the styling settings
|
1940 |
+
* PRO: Added buttons to insert default HTML or plain text for those who wish to modify the default message without starting from scratch
|
1941 |
+
* PRO: Added link to uploaded files in the entry edit form
|
1942 |
+
* PRO: Added "like" and "not like" options to the conditional logic for hiding and showing fields
|
1943 |
+
* PRO: Switched section headings to use h3 tags by default instead of h2
|
1944 |
+
* PRO: Migrated "Allow Only One Entry for Each" fields to the unique checkbox on each field
|
1945 |
+
* PRO: Allow for multiple uses of frm-entry-update-field for the same field and entry
|
1946 |
+
* PRO: Allow external short codes in the email recipients box
|
1947 |
+
* PRO: Allow the frm-search shortcode to be used in text widgets
|
1948 |
+
* PRO: Switched conditional fields to show and hide instead of fadeIn and fadeOut
|
1949 |
+
* PRO: Switched rich text fields to default to TinyMCE
|
1950 |
+
* PRO: Correctly send emails to [admin_email], and allow the same email address to receive multiple notifications from the same form
|
1951 |
+
* PRO: Filter shortcodes in success message when the form is limited to one entry per user and editable
|
1952 |
+
* PRO: Correctly show the taxonomy name even if it is not linked to a post
|
1953 |
+
* PRO: Fixed read-only option to work with dropdown fields
|
1954 |
+
* PRO: Fixed post password setting
|
1955 |
+
* PRO: Fixed post content replacement when entry is updated instead of only on creation
|
1956 |
+
* PRO: Fixed frm-stats shortcode to allow field keys when using the value option
|
1957 |
+
* PRO: Fixed custom displays getting used if they are in the trash
|
1958 |
+
* PRO: Fixed custom display pages to not include the unfiltered post content when there are no entries to display
|
1959 |
+
* PRO: Fixed the bulk delete option showing for users without permission to delete in the bulk actions dropdown on the admin entry listing page
|
1960 |
+
* PRO: Fixed the delete link in entry edit links shortcode to prevent it from going to a blank form when using the page_id param
|
1961 |
+
* PRO: Fixed calendar to show the correct number of extra boxes when not starting on Sunday
|
1962 |
+
* PRO: Fixed repeated, inline conditional logic in custom displays
|
1963 |
+
* PRO: Fixed option to copy forms to other sites in multi-site installs, so they will no longer be copied when the box is unchecked
|
1964 |
+
* PRO: Fixed admin-only fields to not validate for users who can't see the field
|
1965 |
+
|
1966 |
+
= 1.06.08 =
|
1967 |
+
* Changed class names on action links on the form listing table to prevent conflicts with themes and other plugins
|
1968 |
+
* PRO: Filter shortcodes if any in the login message
|
1969 |
+
* PRO: Fixed order of fields shown in default email notification
|
1970 |
+
* PRO: Keep files attached to the post when editing the entry and using multiple file upload option
|
1971 |
+
* PRO: Attach file uploads to WP post even if the upload field is not set as a custom field
|
1972 |
+
* PRO: Fixed bug forcing site name and admin email as the email "from" info when a custom name/email is selected
|
1973 |
+
* PRO: Send a notification even if the notification before it is empty
|
1974 |
+
* PRO: Fixed conditional logic on email notifications to make sure they are stopped when they should be
|
1975 |
+
* PRO: Automatically send emails to the saved value of a field when used in the "Email recipients" box without requiring show=field_value
|
1976 |
+
|
1977 |
+
= 1.06.07 =
|
1978 |
+
* Added mb_split fallback for servers without mbstring installed
|
1979 |
+
* Changed menu position to prevent override from other plugins and themes
|
1980 |
+
* PRO: Fixed issue with the form shortcode showing if using multiple forms with default values on the same page
|
1981 |
+
* PRO: Fixed javascript error in frm-entry-update-field shortcode
|
1982 |
+
* PRO: Send the "read more" link to the single entry page instead of showing in-place for dynamic displays
|
1983 |
+
|
1984 |
+
= 1.06.06 =
|
1985 |
+
* Removed generic classes from input fields like "text" and "date"
|
1986 |
+
* Correctly jump down to form with error messages
|
1987 |
+
* Added frm_setup_new_entry hook for overriding defaults for all fields in one hook when presenting a blank form
|
1988 |
+
* Added "This field cannot be blank" message to global settings
|
1989 |
+
* Changed substr to mb_substr for language-safe truncation
|
1990 |
+
* WP 3.5 compatibility
|
1991 |
+
* Fixed conflict with W3TC that was adding slashes into options on the form settings page
|
1992 |
+
* Show a message on the form builder page if a reCaptcha is included in the form, but not set up
|
1993 |
+
* Switch from add_object_page to add_menu_page to prevent menu position conflicts
|
1994 |
+
* (Free only) Allow emails to be sent from the admin email instead of forcing an email address from the submitted entry
|
1995 |
+
* PRO: Added multiple-image upload
|
1996 |
+
* PRO: Added unlimited emails per form and conditional routing
|
1997 |
+
* PRO: Use the "customized content" box to save the actual content if no field is selected for the post content
|
1998 |
+
* PRO: Added frm-field-value shortcode to get the value of a field in another form. [frm-field-value field_id=25 user_id=current entry_id=140 ip=1]
|
1999 |
+
* PRO: Added frm-show-entry shortcode to show an entry in the same formats as the default email message. [frm-show-entry id=100 plain_text=1 user_info=1]
|
2000 |
+
* PRO: Added frm_set_get shortcode to artificially set $_GET values for use in custom displays or dynamic defaults values. [frm-set-get any_param="any value" another="value 2"] This can be fetched with [get param="any_param"] [get param="another"]
|
2001 |
+
* PRO: Extended conditional logic for displaying fields to include text, number, email, website, and time fields
|
2002 |
+
* PRO: Added support for the [frm-search] shortcode into the [formresults] table
|
2003 |
+
* PRO: Updated NicEdit
|
2004 |
+
* PRO: If http isn't included in a url or image field, automatically add it during validation
|
2005 |
+
* PRO: Added "wrap" parameter to the frm-graph shortcode to wrap the text in long questions
|
2006 |
+
* PRO: Added localization to custom display calendar to start on day of the week selected in WordPress settings
|
2007 |
+
* PRO: Added entry updated dates to custom display shortcodes
|
2008 |
+
* PRO: Correctly check uniqueness of post fields when there are no other error messages
|
2009 |
+
* PRO: If using a number field with the value "0" that is linked through a data from entries field, show 0 instead of nothing
|
2010 |
+
* PRO: Update for more accurate checking for hierarchal taxonomies when saving posts
|
2011 |
+
* PRO: Evaluate numbers as numeric instead of a string for conditional logic for hiding and showing fields
|
2012 |
+
* PRO: Fix to allow tags fields and other fields in the same form that are mapped to the same taxonomy
|
2013 |
+
* PRO: Fixed conditional logic to work correctly when dependent on the value "0"
|
2014 |
+
* PRO: Fixed display of shortcodes inside the before or after content areas of the custom display if nesting [get param=something]
|
2015 |
+
* PRO: Fixed calculations for multiple-paged calculations with checkbox fields that may not be checked
|
2016 |
+
* PRO: Fixed checkbox fields linked through another field to display properly in a custom display
|
2017 |
+
* PRO: Fixed separate values to work with sending to email addresses
|
2018 |
+
* PRO: Show a max of 500 options in a data from entries field in the admin to prevent server limits from making the form inaccessible
|
2019 |
+
* PRO: Make sure the graphs printed from the reports page are not split when printing
|
2020 |
+
* PRO: Fixed the link to show more text in the custom display to show the text in place or link to the single page correctly depending on the custom display type
|
2021 |
+
* PRO: Removed "just show it" data from entries fields in the email checkbox settings
|
2022 |
+
* PRO: Remove post custom fields from database if blank
|
2023 |
+
* PRO: Fixed frm-stats shortcode to work with post custom fields combined with the value parameter
|
2024 |
+
* PRO: Fixed div nesting issue when using collapsible section headings followed by non-collapsible sections headings
|
2025 |
+
* PRO: Removed separate values checkbox for post status and taxonomy fields
|
2026 |
+
* PRO: Fixed double filtering forms if inserted in the dynamic box of a custom display used for posts
|
2027 |
+
* PRO: Fixed page size and limit overriding single entry displays
|
2028 |
+
|
2029 |
+
= 1.06.05 =
|
2030 |
+
* Fixed WP 3.4 layout issues with missing sidebars
|
2031 |
+
* Added responsive css for WP 3.4 to keep the form builder sidebar box showing on small screens
|
2032 |
+
* Updated the delete option trash can to appear more easily
|
2033 |
+
* Use absolute path for php includes() and requires() to prevent them from using files from other plugins or themes
|
2034 |
+
* Updated translations
|
2035 |
+
* PRO: Prevent wp_redirect from stripping square brackets from urls
|
2036 |
+
* PRO: Fixed calculations for fields hidden in a collapsible section
|
2037 |
+
* PRO: Fixed delete link to work on pages without forms
|
2038 |
+
* PRO: Added support to import checkbox field values in multiple columns
|
2039 |
+
|
2040 |
+
= 1.06.04 =
|
2041 |
+
* Moved form processing to avoid multiple submissions when some plugins are activated and remove the page before redirection
|
2042 |
+
* Removed BuddyPress filters from the email notifications to avoid forcing them to send from noreply@domain.com
|
2043 |
+
* Allow blank required indicator and to email in forms
|
2044 |
+
* Fix to allow access to form, entry, and display pages for WordPress versions < 3.1
|
2045 |
+
* Fixed default checkbox or radio field values for fields with separate option values
|
2046 |
+
* Corrected Arkansas abbreviation in templates and bulk edit options
|
2047 |
+
* Fixed display of radio field values from fields with separate values
|
2048 |
+
* PRO: Added custom display content box into "create posts" settings tab
|
2049 |
+
* PRO: Added options to auto-create fields for post status and post categories/taxonomies
|
2050 |
+
* PRO: Added link to de-authorize a site to use your Pro credentials
|
2051 |
+
* PRO: Added meta box on posts with link to automatically create a form entry linked to the post
|
2052 |
+
* PRO: Hide pro credentials settings form when pro is active
|
2053 |
+
* PRO: Fixed redirect URL to correctly replace shortcodes for forms set to not save any entries
|
2054 |
+
* PRO: Fixed regular dropdown field taxonomies to trigger conditional logic and use the auto width option
|
2055 |
+
* PRO: Allow searching by user login when selecting a user ID field to search by on the admin entries page
|
2056 |
+
* PRO: Updated the auto_id default value to continue functioning correctly even if there are non-numeric values in entries
|
2057 |
+
* PRO: Added an index.php file into the uploads/formidable folder to prevent file browsing for those without an htaccess file
|
2058 |
+
* PRO: Allow field IDs as dynamic default values ie [25]. This will ONLY work when the value has just been posted.
|
2059 |
+
* PRO: Added the display object into the args array to pass to the frm_where_filter hook
|
2060 |
+
* PRO: Allow for negative numbers in calculations
|
2061 |
+
* PRO: Allow for unlimited GET parameter setting in the custom display shortcode. [display-frm-data id=2 whatever=value whatever2=value2]
|
2062 |
+
* PRO: Switched phone field to HTML5 "tel" input type
|
2063 |
+
* PRO: Added a frm_cookie_expiration hook to change the cookie expiration time
|
2064 |
+
* PRO: Added cookie expiration option
|
2065 |
+
* PRO: Added frm_used_dates hook for blocked out dates in unique datepickers
|
2066 |
+
* PRO: Added frm_redirect_url hook
|
2067 |
+
* PRO: Fixed forms submit button labels for forms in add entry mode that follow a form in edit mode on the same page
|
2068 |
+
* PRO: Fixed CSV import for delimiters other than a comma
|
2069 |
+
* PRO: Added three icons to the error icon setting
|
2070 |
+
* PRO: Fixed duplicate deletion messages when using [deletelink] in the form customizable HTML
|
2071 |
+
* PRO: Updated calculations and conditional logic to work across multi-paged forms
|
2072 |
+
* PRO: Added basic support for data from entries csv import
|
2073 |
+
* PRO: Show image for data from entries fields using upload fields
|
2074 |
+
|
2075 |
+
= 1.06.03 =
|
2076 |
+
* Added option to not store entries in the database from a specific form
|
2077 |
+
* Added option to skip Akismet spam check for logged in users
|
2078 |
+
* The forms, entries, and custom display page columns that are shown and entries per page are now customizable for those running at least v3.1 of WordPress
|
2079 |
+
* Added a css class option to the field options with predefined CSS classes for multi-column forms: frm_first_half, frm_last_half, frm_first_third, frm_third, frm_last_third, frm_first_fourth, frm_fourth, frm_last_fourth, frm_first_inline, frm_inline, frm_last_inline, frm_full, frm_grid_first, frm_grid, frm_grid_odd
|
2080 |
+
* Added the option to add a class to an input. In the customizable HTML, change [input] to [input class="your_class_here"]
|
2081 |
+
* Added "inline" option to label position options to have a label to the left without the width restriction
|
2082 |
+
* Switched the "action" parameter to "frm_action" to prevent conflicts. If no "frm_action" value is present, "action" will still be used
|
2083 |
+
* Updated form templates (including the contact us form template) with new styling classes
|
2084 |
+
* Show quotation marks instead of entities in the site name in email notifications
|
2085 |
+
* Added Polish translation
|
2086 |
+
* PRO: Removed a vulnerable Open Flash Charts file. If you do not update, be sure to REMOVE THIS FILE! (pro/js/ofc-library/ofc_upload_image.php)
|
2087 |
+
* PRO: Added option to use a separate value for the radio, checkbox, and select choices
|
2088 |
+
* PRO: Added option to use dynamic default values for radio, checkbox, dropdown, and user ID fields
|
2089 |
+
* PRO: Added option to use Google charts and automatically fall back to them on mobile devices [frm-graph id=x type=bar google=1]
|
2090 |
+
* PRO: Added data from entry field support to graphs
|
2091 |
+
* PRO: Added option to use Google tables for easy pagination and sorting [formresults id=x google=1]
|
2092 |
+
* PRO: Added edit link option to formresults shortcode. [formresults id=x edit_link="Edit" page_id=5]
|
2093 |
+
* PRO: Added date support to built-in calculations for date1-date2 types of calculations
|
2094 |
+
* PRO: Added checking for disabled used dates for fields set as post fields in date picker for dates marked as unique
|
2095 |
+
* PRO: Added not_like, less_than, and greater_than options to conditional custom display statements. Ex [if 25 not_like="hello"]...[/if 25]
|
2096 |
+
* PRO: Allow [if created-at less_than='-1 month'] type of statements in the custom display for date fields, created-at, and updated-at
|
2097 |
+
* PRO: Added option to display the field label in custom displays. Ex [25 show="field_label"]
|
2098 |
+
* PRO: Added option to turn off auto paragraphs for paragraph fields. Ex [25 wpautop=0]
|
2099 |
+
* PRO: Added options to custom display shortcode: [display-frm-data id=5 get="whatever" get_value="value"]. This allows the use of [get param="whatever"] in the custom display.
|
2100 |
+
* PRO: Updated the frm-entry-links shortcode to use show_delete with type=list
|
2101 |
+
* PRO: Updated custom display where options to fetch entries more accurately when "not like" and "not equal to" are used
|
2102 |
+
* PRO: Fixed image upload naming for uploads with numeric names like 1.png
|
2103 |
+
* PRO: Fixed issue with multiple editable forms on the same page when one is set to only allow one entry per user
|
2104 |
+
* PRO: Added a check for automatically inserted custom displays to make sure we are in the loop to avoid the need for increasing the insert position setting
|
2105 |
+
* PRO: Show the post type label in the post type dropdown instead of the singular label to avoid blank options for custom post types without a singular name defined
|
2106 |
+
* PRO: Switched out the case-sensitive sorting in data from entries fields
|
2107 |
+
* PRO: If a custom display has detail link parameters defined, ONLY allow those parameters
|
2108 |
+
* PRO: Added an input mask option available via the $frm_input_masks global and 'frm_input_masks' hook
|
2109 |
+
* PRO: Added type=maximum and type=minimum to the frm-stats shortcode
|
2110 |
+
* PRO: Month and year dropdowns added to custom display calendar, along with a few styling changes
|
2111 |
+
* PRO: Get the custom display calendar month and day names from WordPress
|
2112 |
+
* PRO: Allow dynamic default values in HTML field type
|
2113 |
+
* PRO: Get post status options from WordPress function instead of a copy
|
2114 |
+
* PRO: Check the default [auto_id] value after submit to make sure it's still unique
|
2115 |
+
* PRO: If the "round" parameter is used in the frm-stats shortcode, floating zeros will be kept
|
2116 |
+
* PRO: If greater than or less than options are used with a number field in a custom display, treat them as numbers instead of regular text
|
2117 |
+
* PRO: Allow user logins for the user_id parameter in the frm-graph, frm-stats, and display-frm-data shortcodes
|
2118 |
+
* PRO: Fixed the date format d-mm-yyyy to work correctly in the date field
|
2119 |
+
* PRO: Added timeout to redirect so users will see the redirect message for a few seconds before being redirected
|
2120 |
+
* PRO: Allow decimal values in graphs instead of forcing integers
|
2121 |
+
* PRO: Updated the time field to use a true select box instead of a text field
|
2122 |
+
* PRO: Removed included swfobject and json2 javascripts to use the included WordPress versions
|
2123 |
+
* PRO: Added 'frm_graph_value' filters to change the value used in the graphs
|
2124 |
+
* PRO: Populate strings to be translated without requiring a visit to the WPML plugin
|
2125 |
+
* PRO: If the where options in a custom display include a GET or POST value that is an array, translate the search to check each value instead of searching for a comma-separated value in one record.
|
2126 |
+
* PRO: Added entry key and entry ID to the where options in custom displays
|
2127 |
+
* PRO: Added HTML classes on the search form, so if themes include styling for the WP search form, it will be applied to the [frm-search] as well
|
2128 |
+
* PRO: Allow multiple data from entries fields to be searched using the frm-search shortcode instead of only one
|
2129 |
+
* PRO: Fixed update checking to not cause a slow down if the formidableforms.com server is down
|
2130 |
+
* PRO: Updated the user_id parameter for the display-frm-data shortcode to be used even if there's no user ID field selected in the where options for that custom display
|
2131 |
+
* PRO: Added DOING_AJAX flags for WPML compatibility
|
2132 |
+
* PRO: Added time_ago=1 option for displaying dates. Ex: [created-at time_ago=1] or [25 time_ago=1]
|
2133 |
+
* PRO: Updated file upload process to change the file path before uploading instead of moving the files afterwards
|
2134 |
+
|
2135 |
+
= 1.06.02 =
|
2136 |
+
* Fixed selection of dropdowns on the form maker page in Chrome
|
2137 |
+
* Added WPML integration. Requires the add-on available from WPML. Pro version includes a quick translation page.
|
2138 |
+
* Added option to use the custom menu name site wide in multi-site installs
|
2139 |
+
* Added 'frm_use_wpautop' filter for disabling all built-in occurrences of auto paragraphs (form description, HTML fields, and displaying paragraph fields)
|
2140 |
+
* Only show the form icon button on the edit post page for users with permission to view forms
|
2141 |
+
* Changed .form-required class to .frm_required_field
|
2142 |
+
* Start with label in edit mode after adding a new field
|
2143 |
+
* Added required indicator to styling
|
2144 |
+
* Don't allow whitespace to pass required field validation
|
2145 |
+
* PRO: Added option to restrict the file types uploaded in file upload fields
|
2146 |
+
* PRO: Added export to XML and export to CSV to bulk action dropdowns
|
2147 |
+
* PRO: Added [user_id] dynamic default value
|
2148 |
+
* PRO: Allow dynamic dates in the frm-graph shortcode. Ex [frm-graph id=x x_axis="created_at" x_start="-1 month"]
|
2149 |
+
* PRO: Added bar_flat to the graphs. Ex [frm-graph id=x type="bar_flat"]
|
2150 |
+
* PRO: Dynamically hide some x-axis labels if there are too many for the width of the graph. Note: Does not work with percentage widths
|
2151 |
+
* PRO: Added the option to select an end date in calendar custom displays for displaying multiple day events
|
2152 |
+
* PRO: Added 'frm_show_entry_dates' filter for customizing which dates an entry should show on
|
2153 |
+
* PRO: Disabled used dates in date picker for dates marked as unique
|
2154 |
+
* PRO: Added option to search by entry creation date on admin entries listing page
|
2155 |
+
* PRO: Added windows-1251 option for CSV export format
|
2156 |
+
* PRO: Added the class parameter to the edit-in-place cancel link
|
2157 |
+
* PRO: Improved CSV import to work better with large files
|
2158 |
+
* PRO: Make a guess at which fields should match up on CSV import
|
2159 |
+
* PRO: Added option to resend the email notifications when entry is updated. (This will be expanded when conditional email routing is added.)
|
2160 |
+
* PRO: Don't send autoresponder message when importing
|
2161 |
+
* PRO: Allow an entry id in the frm-stats shortcode. Ex [frm-stats id=25 entry_id=100]. Display a star vote as stars for a single entry in a custom display with [frm-stats id=25 type=star entry_id=[id]]
|
2162 |
+
* PRO: Allow multiple star ratings for the same field on the same page
|
2163 |
+
* PRO: Fixed post options that would not deselect
|
2164 |
+
* PRO: Fixed issue causing the wrong conditional logic row to sometimes be removed
|
2165 |
+
* PRO: Fixed bug preventing hidden fields from saving as a post field
|
2166 |
+
* PRO: Fixed required tags fields to not return errors when not blank
|
2167 |
+
* PRO: Fixed bug preventing some javascripts and stylesheets from getting loaded on admin pages if the menu title was changed
|
2168 |
+
* PRO: Fixed graphs to show x_axis dates in the correct order if 2011 and 2012 dates are in the same graph
|
2169 |
+
* PRO: Corrected WP multisite table name for the table to copy forms and custom displays
|
2170 |
+
* PRO: Fixed issue with graphs showing in front of dropdown menus in Chrome
|
2171 |
+
* PRO: Fixed bug in custom displays causing the wrong entries to be returned when a post category field is set to NOT show a certain category
|
2172 |
+
* PRO: Fixed bug with multiple paged forms that was sometimes causing the next page to show even if errors were present on previous page
|
2173 |
+
* PRO: Allow entries to be correctly editing from the backend by a user other than the one who created it, when data from entries field options are set to be limited to only the user currently filling out the form
|
2174 |
+
* PRO: Updated conditional logic for those who set up the logic before v1.6 and haven't clicked the update button in their forms
|
2175 |
+
* PRO: Corrected file upload naming for the various sizes of an upload with the same name as an existing upload
|
2176 |
+
|
2177 |
+
= 1.06.01 =
|
2178 |
+
* Added option to customize the admin menu name
|
2179 |
+
* Added instructions to publish forms if no entries exist
|
2180 |
+
* Free only: Fixed form maker settings page to allow tabs to work
|
2181 |
+
* Free only: Updated styling to align multiple checkboxes/radio buttons when the label is aligned left
|
2182 |
+
* PRO: Fixed issue with the default value getting lost from a hidden field when updating from the form settings page
|
2183 |
+
* PRO: Fixed conditionally hidden fields that are already considered hidden if inside a collapsible section
|
2184 |
+
* PRO: Fixed graphs using x_axis=created_at and user_id=x
|
2185 |
+
* PRO: Fixed multiple paged forms with more than two pages
|
2186 |
+
* PRO: Validate HTML for checkbox taxonomies
|
2187 |
+
|
2188 |
+
= 1.06 =
|
2189 |
+
* User Interface improvements to form builder
|
2190 |
+
* Increased security, speed, and optimization
|
2191 |
+
* Moved the "automatic width" check box for drop-down select fields to free form builder plugin
|
2192 |
+
* Moved email "From/Reply to" options to free WordPress form builder plugin
|
2193 |
+
* Fixed form preview page for form templates
|
2194 |
+
* Added German translation (Andre Lisbert)
|
2195 |
+
* Added ajax to uninstall button
|
2196 |
+
* Correctly filter external shortcodes in the form success message
|
2197 |
+
* Show error messages at the top if they are not for fields in the form (ie Akismet errors)
|
2198 |
+
* Updated bulk edit options to change the dropdown in the form builder at the time the options are submitted
|
2199 |
+
* Fixed default values set to clear on click to work with values that include hard returns
|
2200 |
+
* Free only: Fixed hidden label CSS
|
2201 |
+
* PRO: Extended the conditional field smart logic
|
2202 |
+
* PRO: Added graphs for fields over time, and other customizing options: x_axis, x_start, x_end, min, max, grid_color, show_key, and include_zero
|
2203 |
+
* PRO: Moved post creation settings from individual fields to the forms settings page
|
2204 |
+
* PRO: Added option in WP 3.3 to use Tiny MCE as the rich text editor
|
2205 |
+
* PRO: Added "format" option to date fields. Example [25 format='Y-m-d']
|
2206 |
+
* PRO: Added star rating option to scale fields
|
2207 |
+
* PRO: Added star type to [frm-stats] shortcode to display the average in star format. Example [frm-stats id=5 type=star]
|
2208 |
+
* PRO: Added option to format individual radio and checkbox fields in one or multiple rows
|
2209 |
+
* PRO: Added server-side validation for dates inserted into date fields
|
2210 |
+
* PRO: Allow multiple fields for the same taxonomy/category
|
2211 |
+
* PRO: Allow a taxonomy/category to be selected for data from entries fields. This makes cascading category fields possible.
|
2212 |
+
* PRO: Added [post_author_email] dynamic default value
|
2213 |
+
* PRO: Added a frm_notification_attachment hook
|
2214 |
+
* PRO: Added clickable and user_id options to the formresults shortcode. ex [formresults id=x clickable=1 user_id=current]
|
2215 |
+
* PRO: Improved field calculations to extract a price from the end of an option
|
2216 |
+
* PRO: Added the option to specify how many decimal places to show, and what characters to use for the decimal and thousands separator. For example, to format USD:
|
2217 |
+
$[25 decimal=2 dec_point='.' thousands_sep=',']
|
2218 |
+
* PRO: Added a message before the user is redirected, along with a filter to change it (frm_redirect_msg).
|
2219 |
+
* PRO: Added a button to delete ALL entries in a form at the bottom of the entries page
|
2220 |
+
* PRO: Added a password field type
|
2221 |
+
* PRO: Conditionally remove HTML5 validation of form if default values are present
|
2222 |
+
* PRO: Added like parameter for inline conditions in custom displays. Example: [if 25 like="hello"]That field said hello[/if 25]
|
2223 |
+
* PRO: Allow contact form fields set as custom post fields to be used for sorting custom displays
|
2224 |
+
* PRO: Updated import to create the posts at the time of import
|
2225 |
+
* PRO: Unattach images from a post if they are replaced
|
2226 |
+
* PRO: Leave the date format in yyyy-dd-mm format in the CSV export
|
2227 |
+
* PRO: Allow importing into checkbox fields
|
2228 |
+
* PRO: Added option to use previously uploaded CSV for import so new upload isn't required when reimporting
|
2229 |
+
* PRO: Added option to change the text on the submit button in the frm-search shortcode. Example [frm-search label="Search"]
|
2230 |
+
* PRO: Fixed bug preventing a field dependent on another data from entries field from updating
|
2231 |
+
* PRO: Fixed bug affecting pages with multiple editable forms on the same page that caused the first form to always be submitted
|
2232 |
+
* PRO: Updated the truncate option to not require full words if truncating 10 or less characters
|
2233 |
+
* PRO: Fixed bug preventing front-end entry deletion when the form was editable and limited to one per user
|
2234 |
+
* PRO: Fixed bug preventing checkbox selections from showing in custom email notifications if a checkbox contained a quotation mark
|
2235 |
+
* PRO: Prevent the uploading files message from showing if no files were selected
|
2236 |
+
* PRO: Check a default value when using dynamic default values in the check box options
|
2237 |
+
* PRO: Fixed bug preventing a newly created post from getting assigned to the user selected in the user ID dropdown if the selected user was not the user submitting the entry or was created with the registration add-on in the same form
|
2238 |
+
* PRO: Fixed bug preventing Data from entries "just show it" fields from showing a value in admin listing and view entry pages
|
2239 |
+
* PRO: Fixed bug causing the options to be empty if the data from entries options are limited to the current user and the form they are pulled from are creating posts
|
2240 |
+
* PRO: Fixed empty results in the [formresults] table for contact forms that create posts
|
2241 |
+
* PRO: When a blog is deleted in WP multi-site, delete database table rows related to copying contact forms from that blog
|
2242 |
+
* PRO: Don't strip out desired backslashes
|
2243 |
+
* PRO: Updated to latest version of form datepicker javascript
|
2244 |
+
|
2245 |
+
= 1.05.05 =
|
2246 |
+
* Added Dutch translation (Eric Horstman)
|
2247 |
+
* Fixed "Customize Form HTML" link issues some users were having
|
2248 |
+
* PRO: Load jQuery UI javascript for form datepicker
|
2249 |
+
* PRO: Fixed custom display "where" options to work with multiple where rows
|
2250 |
+
|
2251 |
+
= 1.05.04 =
|
2252 |
+
* Bulk edit and add radio, select, and check box choices
|
2253 |
+
* Added option to turn off HTML5 use in front-end contact forms
|
2254 |
+
* Added option to turn off contact form user tracking
|
2255 |
+
* Scroll form field choices in the form edit page if radio, check box, or select fields have more than 10 choices
|
2256 |
+
* Free only: Removed export template link since the functionality behind it is only in Pro version
|
2257 |
+
* PRO: Added CSV form entry import
|
2258 |
+
* PRO: Added file icons when editing an entry with a non-image file type attached
|
2259 |
+
* PRO: Added functionality for time fields set as unique so time options will be removed after a date is selected
|
2260 |
+
* PRO: Check wp_query if no matching GET or POST variable in the get shortcode
|
2261 |
+
* PRO: Switch taxonomy lists to links in custom displays
|
2262 |
+
* PRO: Added functionality for a where option to be set to a taxonomy name ie [get param=tag]
|
2263 |
+
* PRO: Added functionality for a taxonomy to work with equals and not_equal in custom displays
|
2264 |
+
* PRO: Removed ajax error checking on the captcha field to fix the incorrect response messages
|
2265 |
+
* PRO: Fixed dependent data from entries form fields to show the selected values on validation error and on edit
|
2266 |
+
* PRO: Added `[frm-entry-update-field]` shortcode to update a single field in an entry with an ajax link
|
2267 |
+
* PRO: Added global styling option to set newly-added select form fields to an automatic width
|
2268 |
+
* PRO: Fixed calendar to allow fields mapped to a post to be used as the date field
|
2269 |
+
* PRO: Fixed conditionally hidden field options to work with post category and post status fields
|
2270 |
+
* PRO: Fixed custom displays to work automatically with pages instead of just post and custom post types (CPTs)
|
2271 |
+
* PRO: Added functionality to frm-stats shortcode to work with posts and adds where options in key/id=value pairs. ex: [frm-stats id=x 25=hello] where 25 is the field ID and "Hello" is the value the other field in the form should have in order to display
|
2272 |
+
* PRO: Updated form datepicker and timepicker to latest versions
|
2273 |
+
* PRO: Fixed bug preventing images from saving correctly if the form is set to create a post and the upload field is not set as a post field
|
2274 |
+
* PRO: Added an "Insert Position" option to the custom display. This will prevent the custom display from being loaded multiple times per page, but will allow users to set when it shows up for themes like Thesis
|
2275 |
+
* PRO: Fixed number field to work with decimals and when ordering descending
|
2276 |
+
* PRO: Added a limit to the number of entries that show in the entry drop-down in places like the custom display page to prevent memory errors
|
2277 |
+
* PRO: Fixed field options to work better with symbols like ® in graphs
|
2278 |
+
* PRO: Automatically open collapsible heading if there is a form error message inside it
|
2279 |
+
* PRO: Added type=deviation to the frm-stats shortcode. Example: [frm-stats id=x type=deviation]
|
2280 |
+
* PRO: Updated calculations to work with radio, scale, and drop-down fields
|
2281 |
+
* PRO: Fixed default values for check boxes
|
2282 |
+
* PRO: Added CSV export format option
|
2283 |
+
* PRO: Fixed scale field reports to show all options
|
2284 |
+
|
2285 |
+
= 1.05.03 =
|
2286 |
+
* Updated user role options to work more reliably with WP 3.1
|
2287 |
+
* Added functionality for "Fit Select Boxes into SideBar" checkbox and field size in the free contact form widget
|
2288 |
+
* Moved reCaptcha error message to individual field options
|
2289 |
+
* Updated referring URL and added tracking throughout the visit
|
2290 |
+
* PRO: Added "clickable" option for use in custom displays to make email addresses and URLs into links. ex `[25 clickable=1]`
|
2291 |
+
* PRO: Added option to select the taxonomy type
|
2292 |
+
* PRO: Updated contact form styling to work better in IE
|
2293 |
+
* PRO: Updated emails to work with Data from entries checkbox fields
|
2294 |
+
* PRO: Updated dependent Data from entries fields to work with checkboxes
|
2295 |
+
* PRO: Adjusted [date] and [time] values to adjust for WordPress timezone settings
|
2296 |
+
* PRO: Updated the way conditionally hidden fields save in the admin to prevent lingering dependencies
|
2297 |
+
* PRO: Fixed link to duplicate entries in form maker
|
2298 |
+
* PRO: Updated file upload indicator to show up sooner
|
2299 |
+
* PRO: Added ajax delete to [deletelink] shortcode
|
2300 |
+
* PRO: Updated admin only fields to show for administrators on front-end forms
|
2301 |
+
* PRO: Added more attributes to the [display-frm-data] shortcode: limit="5", page_size="5", order_by="rand" or field ID, order="DESC" or "ASC"
|
2302 |
+
* PRO: Fixed custom display bulk delete
|
2303 |
+
* PRO: Updated WPMU/multisite form copy features to work with WP 3.0+
|
2304 |
+
* PRO: Switched the email form "add/or" drop-down to check boxes
|
2305 |
+
* PRO: Added box for message to be displayed if there are no entries for a custom display
|
2306 |
+
* PRO: Added ajax edit options with [frm-entry-edit-link id=x label=Edit cancel=Cancel class='add_classes' page_id= prefix='frm_edit_' form_id=>y]. Also works with [editlink location=front] in custom displays.
|
2307 |
+
* PRO: Moved styling options into a tab on the settings page
|
2308 |
+
* PRO: Added limited "data from entries" options to the custom display "where" row. Entry keys or IDs can be used
|
2309 |
+
* PRO: Added unique validation for fields set as post fields
|
2310 |
+
* PRO: Removed error messages for required fields hidden via the shortcode options
|
2311 |
+
* PRO: Only return [deletelink] if user has permission to delete the form entry
|
2312 |
+
* PRO: Added order options to WordPress event calendars
|
2313 |
+
* PRO: Updated custom display ordering to order correctly when using a 12 hour time field
|
2314 |
+
* PRO: Added taxonomy options to the "Tags" field
|
2315 |
+
* PRO: Added HTML escaping to text fields to allow HTML entities to remain as entities when editing
|
2316 |
+
* PRO: Added functionality to use taxonomy fields in where options in custom displays
|
2317 |
+
* PRO: Added option to use [get param=CUSTOM] in custom displays
|
2318 |
+
|
2319 |
+
= 1.05.02 =
|
2320 |
+
* Fixed issue with PHP4 that was causing the field options to get cleared out and only show a "0" or "<" instead of the field
|
2321 |
+
* Prevent javascript from getting loaded twice
|
2322 |
+
* Updated stylesheets for better looking left aligned field labels. In the Pro version, setting the global labels to one location and setting a single field to another will keep the field description and error messages aligned.
|
2323 |
+
* PRO: Fixed issue causing form to be hidden on front-end edit if it was set not to show with the success message
|
2324 |
+
* PRO: Show the linked image instead of the url when a file is linked in a "just show it" data from entries field
|
2325 |
+
* PRO: Added functionality for ordering by post fields in a custom display
|
2326 |
+
|
2327 |
+
= 1.05.01 =
|
2328 |
+
* PRO: Fix custom display settings for posts/custom posts
|
2329 |
+
|
2330 |
+
= 1.05.0 =
|
2331 |
+
* Moved a contact form widget from Pro to the free version
|
2332 |
+
* Updated some form templates with fields aligned in a row. First and last name are on one line in the contact form template.
|
2333 |
+
* Moved error messages underneath input fields
|
2334 |
+
* Added option to display labels "hidden" instead of just none. This makes aligning fields in a row with only one label easier
|
2335 |
+
* Additional XHTML compliance for multiple forms on one
|
2336 |
+
* Removed the HTML5 required attribute (temporarily)
|
2337 |
+
* Corrected the label position styling in the regular version
|
2338 |
+
* A little UI clean up
|
2339 |
+
* Added hook for recaptcha customizations
|
2340 |
+
* PRO: Added front-end custom post type support. Create front-end CPT posts. Most field types will integrate out-of-the-box with the Advanced Custom Fields (ACF) WordPress plugin.
|
2341 |
+
* PRO: Added hierarchy to post categories
|
2342 |
+
* PRO: Added a loading indicator while files are uploading
|
2343 |
+
* PRO: Added a `[default-message]` shortcode for use in the email message. Now you can add to the default message without completely replacing it
|
2344 |
+
* PRO: Added default styling to the formresults shortcode, as well as additional shortcode options: `[formresults id=x style=1 no_entries="No Entries Found" fields="25,26,27"]`
|
2345 |
+
* PRO: Added localizations options to calendar
|
2346 |
+
* PRO: Fixed collapsible Section headings to work with updated form builder HTML
|
2347 |
+
* PRO: Added functionality to admin search to check data from entries fields
|
2348 |
+
* PRO: Added start and end time options for time fields
|
2349 |
+
* PRO: Added 'type' to `[frm-graph]` shortcode to force 'pie' or 'bar': `[frm-graph id=x type=pie]`
|
2350 |
+
* PRO: Added post_id option to the `[frm-search]` shortcode. This will set the action link for the search form. Ex: `[frm-search post_id=3]`
|
2351 |
+
* PRO: Fixed `[frm-search]` shortcode for use on dynamic custom displays. If searching on a detailed entry page, the search will return to the listing page.
|
2352 |
+
* PRO: Updated post fields to work in "data from entries" fields
|
2353 |
+
|
2354 |
+
= 1.04.06 =
|
2355 |
+
* Additional back-end XHTML compliance
|
2356 |
+
* PRO: Fixed conditionally hidden fields bug some users were experiencing
|
2357 |
+
|
2358 |
+
= 1.04.05 =
|
2359 |
+
* Added duplicate entry checks for form submissions
|
2360 |
+
* Added a checkbox on form creator to mark form fields required
|
2361 |
+
* Moved the duplicate form field option into the free form builder
|
2362 |
+
* Show the contact form success message even if the form isn't displayed with it
|
2363 |
+
* Added option to not use dynamic stylesheet loading
|
2364 |
+
* PRO: Added option to resend form email notification and autoresponders
|
2365 |
+
* PRO: Fixes for editing forms with unique fields
|
2366 |
+
* PRO: Fixes for editing multi-page forms with validation errors
|
2367 |
+
* PRO: Fixes for multiple multi-step forms on the same page
|
2368 |
+
* PRO: Added linked fields into the field drop-downs for inserting shortcodes and sending emails
|
2369 |
+
* PRO: Added powerful calculated fields in forms
|
2370 |
+
* PRO: Allow hidden fields to be edited from the WordPress admin
|
2371 |
+
* PRO: Allow sections of fields to be hidden conditionally with the Section Header fields
|
2372 |
+
* PRO: Added user_id option to the `[frm-graph]` shortcode
|
2373 |
+
* PRO: Updated the custom display settings interface
|
classes/controllers/FrmAddonsController.php
CHANGED
@@ -3,7 +3,11 @@
|
|
3 |
class FrmAddonsController {
|
4 |
|
5 |
public static function menu() {
|
6 |
-
|
|
|
|
|
|
|
|
|
7 |
|
8 |
if ( ! FrmAppHelper::pro_is_installed() ) {
|
9 |
add_submenu_page( 'formidable', 'Formidable | ' . __( 'Upgrade to Pro', 'formidable' ), __( 'Upgrade to Pro', 'formidable' ), 'frm_view_forms', 'formidable-pro-upgrade', 'FrmAddonsController::upgrade_to_pro' );
|
@@ -14,6 +18,10 @@ class FrmAddonsController {
|
|
14 |
$installed_addons = apply_filters( 'frm_installed_addons', array() );
|
15 |
|
16 |
$addons = self::get_api_addons();
|
|
|
|
|
|
|
|
|
17 |
self::prepare_addons( $addons );
|
18 |
|
19 |
$pricing = FrmAppHelper::admin_upgrade_link( 'addons' );
|
@@ -29,57 +37,51 @@ class FrmAddonsController {
|
|
29 |
}
|
30 |
|
31 |
ksort( $plugins );
|
32 |
-
$allow_autofill = self::allow_autofill();
|
33 |
|
34 |
include( FrmAppHelper::plugin_path() . '/classes/views/addons/settings.php' );
|
35 |
}
|
36 |
|
37 |
-
/**
|
38 |
-
* Don't allow subsite addon licenses to be fetched
|
39 |
-
* unless the current user has super admin permissions
|
40 |
-
*
|
41 |
-
* @since 2.03.10
|
42 |
-
*/
|
43 |
-
private static function allow_autofill() {
|
44 |
-
$allow_autofill = FrmAppHelper::pro_is_installed();
|
45 |
-
if ( $allow_autofill && is_multisite() ) {
|
46 |
-
$sitewide_activated = get_site_option( 'frmpro-wpmu-sitewide' );
|
47 |
-
if ( $sitewide_activated ) {
|
48 |
-
$allow_autofill = current_user_can( 'setup_network' );
|
49 |
-
}
|
50 |
-
}
|
51 |
-
return $allow_autofill;
|
52 |
-
}
|
53 |
-
|
54 |
private static function get_api_addons() {
|
55 |
-
$
|
56 |
-
$
|
57 |
-
if (
|
58 |
-
$
|
59 |
-
$license = $edd_update->get_license();
|
60 |
-
if ( ! empty( $license ) ) {
|
61 |
-
$url .= '?l=' . urlencode( base64_encode( $license ) );
|
62 |
-
}
|
63 |
}
|
64 |
|
65 |
-
$
|
66 |
-
if ( is_array( $response ) && ! is_wp_error( $response ) ) {
|
67 |
-
$addons = $response['body'];
|
68 |
-
}
|
69 |
|
70 |
-
if (
|
71 |
-
$addons =
|
72 |
-
|
73 |
foreach ( $addons as $k => $addon ) {
|
74 |
-
|
75 |
-
if ( empty( $addon['excerpt'] ) || ! empty( $cats ) ) {
|
76 |
unset( $addons[ $k ] );
|
77 |
}
|
78 |
}
|
79 |
-
return $addons;
|
80 |
}
|
81 |
|
82 |
-
$addons
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
83 |
'formidable-pro' => array(
|
84 |
'title' => 'Formidable Pro',
|
85 |
'link' => 'pricing/',
|
@@ -149,10 +151,273 @@ class FrmAddonsController {
|
|
149 |
'excerpt' => 'Allow users to text their votes for polls created by Formidable Forms, or send SMS notifications when entries are submitted or updated.',
|
150 |
),
|
151 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
152 |
|
153 |
return $addons;
|
154 |
}
|
155 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
156 |
private static function prepare_addons( &$addons ) {
|
157 |
$activate_url = '';
|
158 |
if ( current_user_can( 'activate_plugins' ) ) {
|
@@ -163,32 +428,28 @@ class FrmAddonsController {
|
|
163 |
foreach ( $loop_addons as $id => $addon ) {
|
164 |
if ( is_numeric( $id ) ) {
|
165 |
$slug = str_replace( array( '-wordpress-plugin', '-wordpress' ), '', $addon['slug'] );
|
166 |
-
|
167 |
} else {
|
168 |
$slug = $id;
|
|
|
|
|
|
|
|
|
|
|
|
|
169 |
}
|
170 |
-
if ( isset( $addon['file'] ) ) {
|
171 |
-
$base_file = $addon['file'];
|
172 |
-
} else {
|
173 |
-
$base_file = 'formidable-' . $slug;
|
174 |
-
}
|
175 |
-
$file = WP_PLUGIN_DIR . '/' . $base_file;
|
176 |
|
177 |
-
$addon['installed']
|
178 |
$addon['activate_url'] = '';
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
$activate_url
|
189 |
-
);
|
190 |
-
}
|
191 |
-
}
|
192 |
}
|
193 |
|
194 |
if ( ! isset( $addon['docs'] ) ) {
|
@@ -206,18 +467,6 @@ class FrmAddonsController {
|
|
206 |
}
|
207 |
}
|
208 |
|
209 |
-
/**
|
210 |
-
* @since 3.04.02
|
211 |
-
*/
|
212 |
-
private static function prepare_folder_name( &$addon ) {
|
213 |
-
if ( isset( $addon['url'] ) ) {
|
214 |
-
$url = explode( '?', $addon['url'] );
|
215 |
-
$file = explode( '/', $url[0] );
|
216 |
-
$file = end( $file );
|
217 |
-
$addon['file'] = str_replace( '-' . $addon['version'] . '.zip', '', $file );
|
218 |
-
}
|
219 |
-
}
|
220 |
-
|
221 |
/**
|
222 |
* @since 3.04.02
|
223 |
*/
|
@@ -260,58 +509,6 @@ class FrmAddonsController {
|
|
260 |
}
|
261 |
}
|
262 |
|
263 |
-
public static function get_licenses() {
|
264 |
-
$allow_autofill = self::allow_autofill();
|
265 |
-
$required_role = $allow_autofill ? 'setup_network' : 'frm_change_settings';
|
266 |
-
FrmAppHelper::permission_check( $required_role );
|
267 |
-
check_ajax_referer( 'frm_ajax', 'nonce' );
|
268 |
-
|
269 |
-
if ( is_multisite() && get_site_option( 'frmpro-wpmu-sitewide' ) ) {
|
270 |
-
$license = get_site_option( 'frmpro-credentials' );
|
271 |
-
} else {
|
272 |
-
$license = get_option( 'frmpro-credentials' );
|
273 |
-
}
|
274 |
-
|
275 |
-
if ( $license && is_array( $license ) && isset( $license['license'] ) ) {
|
276 |
-
$url = 'https://formidableforms.com/frm-edd-api/licenses?l=' . urlencode( base64_encode( $license['license'] ) );
|
277 |
-
$licenses = self::send_api_request(
|
278 |
-
$url,
|
279 |
-
array(
|
280 |
-
'name' => 'frm_api_licence',
|
281 |
-
'expires' => 60 * 60 * 5,
|
282 |
-
)
|
283 |
-
);
|
284 |
-
echo json_encode( $licenses );
|
285 |
-
}
|
286 |
-
|
287 |
-
wp_die();
|
288 |
-
}
|
289 |
-
|
290 |
-
private static function send_api_request( $url, $transient = array() ) {
|
291 |
-
$data = get_transient( $transient['name'] );
|
292 |
-
if ( $data !== false ) {
|
293 |
-
return $data;
|
294 |
-
}
|
295 |
-
|
296 |
-
$arg_array = array(
|
297 |
-
'body' => array(
|
298 |
-
'url' => home_url(),
|
299 |
-
),
|
300 |
-
'timeout' => 15,
|
301 |
-
'user-agent' => 'Formidable/' . FrmAppHelper::$plug_version . '; ' . home_url(),
|
302 |
-
);
|
303 |
-
|
304 |
-
$response = wp_remote_post( $url, $arg_array );
|
305 |
-
$body = wp_remote_retrieve_body( $response );
|
306 |
-
$data = false;
|
307 |
-
if ( ! is_wp_error( $response ) && ! is_wp_error( $body ) ) {
|
308 |
-
$data = json_decode( $body, true );
|
309 |
-
set_transient( $transient['name'], $data, $transient['expires'] );
|
310 |
-
}
|
311 |
-
|
312 |
-
return $data;
|
313 |
-
}
|
314 |
-
|
315 |
public static function upgrade_to_pro() {
|
316 |
$pro_pricing = self::prepare_pro_info();
|
317 |
|
@@ -347,42 +544,6 @@ class FrmAddonsController {
|
|
347 |
);
|
348 |
}
|
349 |
|
350 |
-
/**
|
351 |
-
* Add a filter to shorten the EDD filename for Formidable plugin, and add-on, updates
|
352 |
-
*
|
353 |
-
* @since 2.03.08
|
354 |
-
*
|
355 |
-
* @param boolean $return
|
356 |
-
* @param string $package
|
357 |
-
*
|
358 |
-
* @return boolean
|
359 |
-
*/
|
360 |
-
public static function add_shorten_edd_filename_filter( $return, $package ) {
|
361 |
-
if ( strpos( $package, '/edd-sl/package_download/' ) !== false && strpos( $package, 'formidableforms.com' ) !== false ) {
|
362 |
-
add_filter( 'wp_unique_filename', 'FrmAddonsController::shorten_edd_filename', 10, 2 );
|
363 |
-
}
|
364 |
-
|
365 |
-
return $return;
|
366 |
-
}
|
367 |
-
|
368 |
-
/**
|
369 |
-
* Shorten the EDD filename for automatic updates
|
370 |
-
* Decreases size of file path so file path limit is not hit on Windows servers
|
371 |
-
*
|
372 |
-
* @since 2.03.08
|
373 |
-
*
|
374 |
-
* @param string $filename
|
375 |
-
* @param string $ext
|
376 |
-
*
|
377 |
-
* @return string
|
378 |
-
*/
|
379 |
-
public static function shorten_edd_filename( $filename, $ext ) {
|
380 |
-
$filename = substr( $filename, 0, 50 ) . $ext;
|
381 |
-
remove_filter( 'wp_unique_filename', 'FrmAddonsController::shorten_edd_filename', 10 );
|
382 |
-
|
383 |
-
return $filename;
|
384 |
-
}
|
385 |
-
|
386 |
/**
|
387 |
* @since 3.04.02
|
388 |
*/
|
@@ -482,4 +643,40 @@ class FrmAddonsController {
|
|
482 |
wp_die();
|
483 |
}
|
484 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
485 |
}
|
3 |
class FrmAddonsController {
|
4 |
|
5 |
public static function menu() {
|
6 |
+
if ( ! current_user_can( 'activate_plugins' ) ) {
|
7 |
+
return;
|
8 |
+
}
|
9 |
+
|
10 |
+
add_submenu_page( 'formidable', 'Formidable | ' . __( 'Add-Ons', 'formidable' ), __( 'Add-Ons', 'formidable' ), 'frm_view_forms', 'formidable-addons', 'FrmAddonsController::list_addons' );
|
11 |
|
12 |
if ( ! FrmAppHelper::pro_is_installed() ) {
|
13 |
add_submenu_page( 'formidable', 'Formidable | ' . __( 'Upgrade to Pro', 'formidable' ), __( 'Upgrade to Pro', 'formidable' ), 'frm_view_forms', 'formidable-pro-upgrade', 'FrmAddonsController::upgrade_to_pro' );
|
18 |
$installed_addons = apply_filters( 'frm_installed_addons', array() );
|
19 |
|
20 |
$addons = self::get_api_addons();
|
21 |
+
$errors = self::get_error_from_response( $addons );
|
22 |
+
if ( isset( $addons['error'] ) ) {
|
23 |
+
unset( $addons['error'] );
|
24 |
+
}
|
25 |
self::prepare_addons( $addons );
|
26 |
|
27 |
$pricing = FrmAppHelper::admin_upgrade_link( 'addons' );
|
37 |
}
|
38 |
|
39 |
ksort( $plugins );
|
|
|
40 |
|
41 |
include( FrmAppHelper::plugin_path() . '/classes/views/addons/settings.php' );
|
42 |
}
|
43 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
44 |
private static function get_api_addons() {
|
45 |
+
$license = '';
|
46 |
+
$edd_update = self::get_pro_updater();
|
47 |
+
if ( ! empty( $edd_update ) ) {
|
48 |
+
$license = $edd_update->license;
|
|
|
|
|
|
|
|
|
49 |
}
|
50 |
|
51 |
+
$addons = self::get_addon_info( $license );
|
|
|
|
|
|
|
52 |
|
53 |
+
if ( empty( $addons ) ) {
|
54 |
+
$addons = self::fallback_plugin_list();
|
55 |
+
} else {
|
56 |
foreach ( $addons as $k => $addon ) {
|
57 |
+
if ( empty( $addon['excerpt'] ) && $k !== 'error' ) {
|
|
|
58 |
unset( $addons[ $k ] );
|
59 |
}
|
60 |
}
|
|
|
61 |
}
|
62 |
|
63 |
+
return $addons;
|
64 |
+
}
|
65 |
+
|
66 |
+
/**
|
67 |
+
* @since 3.04.03
|
68 |
+
*/
|
69 |
+
public static function get_pro_updater() {
|
70 |
+
if ( FrmAppHelper::pro_is_installed() && is_callable( 'FrmProAppHelper::get_updater' ) ) {
|
71 |
+
return FrmProAppHelper::get_updater();
|
72 |
+
}
|
73 |
+
|
74 |
+
return false;
|
75 |
+
}
|
76 |
+
|
77 |
+
/**
|
78 |
+
* If the API is unable to connect, show something on the addons page
|
79 |
+
*
|
80 |
+
* @since 3.04.03
|
81 |
+
* @return array
|
82 |
+
*/
|
83 |
+
private static function fallback_plugin_list() {
|
84 |
+
return array(
|
85 |
'formidable-pro' => array(
|
86 |
'title' => 'Formidable Pro',
|
87 |
'link' => 'pricing/',
|
151 |
'excerpt' => 'Allow users to text their votes for polls created by Formidable Forms, or send SMS notifications when entries are submitted or updated.',
|
152 |
),
|
153 |
);
|
154 |
+
}
|
155 |
+
|
156 |
+
/**
|
157 |
+
* If Pro is missing but has been authenticated, include a download URL
|
158 |
+
*
|
159 |
+
* @since 3.04.03
|
160 |
+
* @return string
|
161 |
+
*/
|
162 |
+
public static function get_pro_download_url() {
|
163 |
+
$pro_cred_store = 'frmpro-credentials';
|
164 |
+
$pro_wpmu_store = 'frmpro-wpmu-sitewide';
|
165 |
+
if ( is_multisite() && get_site_option( $pro_wpmu_store ) ) {
|
166 |
+
$creds = get_site_option( $pro_cred_store );
|
167 |
+
} else {
|
168 |
+
$creds = get_option( $pro_cred_store );
|
169 |
+
}
|
170 |
+
|
171 |
+
if ( empty( $creds ) || ! is_array( $creds ) || ! isset( $creds['license'] ) ) {
|
172 |
+
return '';
|
173 |
+
}
|
174 |
+
|
175 |
+
$license = $creds['license'];
|
176 |
+
if ( empty( $license ) ) {
|
177 |
+
return '';
|
178 |
+
}
|
179 |
+
|
180 |
+
if ( strpos( $license, '-' ) ) {
|
181 |
+
// this is a fix for licenses saved in the past
|
182 |
+
$license = strtoupper( $license );
|
183 |
+
}
|
184 |
+
|
185 |
+
$downloads = self::get_addon_info( $license );
|
186 |
+
$pro = isset( $downloads['93790'] ) ? $downloads['93790'] : array();
|
187 |
+
|
188 |
+
return isset( $pro['url'] ) ? $pro['url'] : '';
|
189 |
+
}
|
190 |
+
|
191 |
+
/**
|
192 |
+
* @since 3.04.03
|
193 |
+
* @return array
|
194 |
+
*/
|
195 |
+
public static function get_addon_info( $license = '' ) {
|
196 |
+
$addons = array();
|
197 |
+
$url = 'https://formidableforms.com/wp-json/s11edd/v1/updates/';
|
198 |
+
if ( ! empty( $license ) ) {
|
199 |
+
$url .= '?l=' . urlencode( base64_encode( $license ) );
|
200 |
+
}
|
201 |
+
|
202 |
+
$addons = self::get_cached_addons( $license );
|
203 |
+
if ( ! empty( $addons ) ) {
|
204 |
+
return $addons;
|
205 |
+
}
|
206 |
+
|
207 |
+
$response = wp_remote_get( $url );
|
208 |
+
if ( is_array( $response ) && ! is_wp_error( $response ) ) {
|
209 |
+
$addons = $response['body'];
|
210 |
+
if ( ! empty( $addons ) ) {
|
211 |
+
$addons = json_decode( $addons, true );
|
212 |
+
|
213 |
+
$skip_categories = array( 'WordPress Form Templates', 'WordPress Form Style Templates' );
|
214 |
+
foreach ( $addons as $k => $addon ) {
|
215 |
+
if ( ! isset( $addon['categories'] ) ) {
|
216 |
+
continue;
|
217 |
+
}
|
218 |
+
$cats = array_intersect( $skip_categories, $addon['categories'] );
|
219 |
+
if ( ! empty( $cats ) ) {
|
220 |
+
unset( $addons[ $k ] );
|
221 |
+
}
|
222 |
+
}
|
223 |
+
|
224 |
+
self::set_cached_addons( $addons, $license );
|
225 |
+
}
|
226 |
+
}
|
227 |
|
228 |
return $addons;
|
229 |
}
|
230 |
|
231 |
+
/**
|
232 |
+
* @since 3.04.03
|
233 |
+
* @return array
|
234 |
+
*/
|
235 |
+
private static function get_cached_addons( $license = '' ) {
|
236 |
+
$cache_key = self::get_cache_key( $license );
|
237 |
+
$cache = get_option( $cache_key );
|
238 |
+
|
239 |
+
if ( empty( $cache ) || empty( $cache['timeout'] ) || current_time( 'timestamp' ) > $cache['timeout'] ) {
|
240 |
+
return false; // Cache is expired
|
241 |
+
}
|
242 |
+
|
243 |
+
return json_decode( $cache['value'], true );
|
244 |
+
}
|
245 |
+
|
246 |
+
/**
|
247 |
+
* @since 3.04.03
|
248 |
+
*/
|
249 |
+
private static function set_cached_addons( $addons, $license = '' ) {
|
250 |
+
$cache_key = self::get_cache_key( $license );
|
251 |
+
$data = array(
|
252 |
+
'timeout' => strtotime( '+6 hours', current_time( 'timestamp' ) ),
|
253 |
+
'value' => json_encode( $addons ),
|
254 |
+
);
|
255 |
+
|
256 |
+
update_option( $cache_key, $data, 'no' );
|
257 |
+
}
|
258 |
+
|
259 |
+
/**
|
260 |
+
* @since 3.04.03
|
261 |
+
*/
|
262 |
+
public static function reset_cached_addons( $license = '' ) {
|
263 |
+
delete_option( self::get_cache_key( $license ) );
|
264 |
+
}
|
265 |
+
|
266 |
+
/**
|
267 |
+
* @since 3.04.03
|
268 |
+
* @return string
|
269 |
+
*/
|
270 |
+
public static function get_cache_key( $license ) {
|
271 |
+
return 'frm_addons_l' . ( empty( $license ) ? '' : md5( $license ) );
|
272 |
+
}
|
273 |
+
|
274 |
+
/**
|
275 |
+
* @since 3.04.03
|
276 |
+
* @return array
|
277 |
+
*/
|
278 |
+
public static function error_for_license( $license ) {
|
279 |
+
$errors = array();
|
280 |
+
if ( ! empty( $license ) ) {
|
281 |
+
$addons = self::get_addon_info( $license );
|
282 |
+
$errors = self::get_error_from_response( $addons );
|
283 |
+
}
|
284 |
+
return $errors;
|
285 |
+
}
|
286 |
+
|
287 |
+
/**
|
288 |
+
* @since 3.04.03
|
289 |
+
* @return array
|
290 |
+
*/
|
291 |
+
private static function get_error_from_response( $addons ) {
|
292 |
+
$errors = array();
|
293 |
+
if ( isset( $addons['error'] ) ) {
|
294 |
+
$errors[] = $addons['error']['message'];
|
295 |
+
do_action( 'frm_license_error', $addons['error'] );
|
296 |
+
}
|
297 |
+
return $errors;
|
298 |
+
}
|
299 |
+
|
300 |
+
/**
|
301 |
+
* @since 3.04.03
|
302 |
+
*/
|
303 |
+
public static function check_update( $transient ) {
|
304 |
+
if ( ! is_object( $transient ) ) {
|
305 |
+
$transient = new stdClass;
|
306 |
+
}
|
307 |
+
|
308 |
+
$installed_addons = apply_filters( 'frm_installed_addons', array() );
|
309 |
+
if ( empty( $installed_addons ) ) {
|
310 |
+
return $transient;
|
311 |
+
}
|
312 |
+
|
313 |
+
$version_info = self::fill_update_addon_info( $installed_addons );
|
314 |
+
|
315 |
+
$transient->last_checked = time();
|
316 |
+
|
317 |
+
$wp_plugins = get_plugins();
|
318 |
+
|
319 |
+
foreach ( $version_info as $id => $plugin ) {
|
320 |
+
$plugin = (object) $plugin;
|
321 |
+
|
322 |
+
if ( ! isset( $plugin->new_version ) || ! isset( $plugin->package ) ) {
|
323 |
+
continue;
|
324 |
+
}
|
325 |
+
|
326 |
+
$folder = $plugin->plugin;
|
327 |
+
if ( empty( $folder ) ) {
|
328 |
+
continue;
|
329 |
+
}
|
330 |
+
|
331 |
+
$wp_plugin = isset( $wp_plugins[ $folder ] ) ? $wp_plugins[ $folder ] : array();
|
332 |
+
$wp_version = isset( $wp_plugin['Version'] ) ? $wp_plugin['Version'] : '1.0';
|
333 |
+
|
334 |
+
if ( version_compare( $wp_version, $plugin->new_version, '<' ) ) {
|
335 |
+
$slug = explode( '/', $folder );
|
336 |
+
$plugin->slug = $slug[0];
|
337 |
+
$transient->response[ $folder ] = $plugin;
|
338 |
+
}
|
339 |
+
|
340 |
+
$transient->checked[ $folder ] = $wp_version;
|
341 |
+
|
342 |
+
}
|
343 |
+
|
344 |
+
return $transient;
|
345 |
+
}
|
346 |
+
|
347 |
+
/**
|
348 |
+
* @since 3.04.03
|
349 |
+
*
|
350 |
+
* @param array $installed_addons
|
351 |
+
*
|
352 |
+
* @return array
|
353 |
+
*/
|
354 |
+
private static function fill_update_addon_info( $installed_addons ) {
|
355 |
+
$checked_licenses = array();
|
356 |
+
$version_info = array();
|
357 |
+
|
358 |
+
foreach ( $installed_addons as $addon ) {
|
359 |
+
if ( $addon->store_url !== 'https://formidableforms.com' ) {
|
360 |
+
// check if this is a third-party addon
|
361 |
+
continue;
|
362 |
+
}
|
363 |
+
|
364 |
+
$new_license = $addon->license;
|
365 |
+
if ( empty( $new_license ) || in_array( $new_license, $checked_licenses ) ) {
|
366 |
+
continue;
|
367 |
+
}
|
368 |
+
|
369 |
+
$checked_licenses[] = $new_license;
|
370 |
+
|
371 |
+
if ( empty( $version_info ) ) {
|
372 |
+
$version_info = self::get_addon_info( $new_license );
|
373 |
+
continue;
|
374 |
+
}
|
375 |
+
|
376 |
+
$plugin = self::get_addon_for_license( $version_info, $addon );
|
377 |
+
if ( empty( $plugin ) ) {
|
378 |
+
continue;
|
379 |
+
}
|
380 |
+
|
381 |
+
$download_id = isset( $plugin['id'] ) ? $plugin['id'] : 0;
|
382 |
+
if ( ! empty( $download_id ) && ! isset( $version_info[ $download_id ]['package'] ) ) {
|
383 |
+
// if this addon is using its own license, get the update url
|
384 |
+
$addon_info = self::get_addon_info( $new_license );
|
385 |
+
|
386 |
+
$version_info[ $download_id ] = $addon_info[ $download_id ];
|
387 |
+
if ( isset( $addon_info['error'] ) ) {
|
388 |
+
$version_info[ $download_id ]['error'] = array(
|
389 |
+
'message' => $addon_info['error']['message'],
|
390 |
+
'code' => $addon_info['error']['code'],
|
391 |
+
);
|
392 |
+
}
|
393 |
+
}
|
394 |
+
}
|
395 |
+
|
396 |
+
return $version_info;
|
397 |
+
}
|
398 |
+
|
399 |
+
/**
|
400 |
+
* @since 3.04.03
|
401 |
+
* @param array $addons
|
402 |
+
* @param object $license The FrmAddon object
|
403 |
+
* @return array
|
404 |
+
*/
|
405 |
+
public static function get_addon_for_license( $addons, $license ) {
|
406 |
+
$download_id = $license->download_id;
|
407 |
+
$plugin = array();
|
408 |
+
if ( empty( $download_id ) ) {
|
409 |
+
foreach ( $addons as $addon ) {
|
410 |
+
if ( strtolower( $license->plugin_name ) == strtolower( $addon['title'] ) ) {
|
411 |
+
return $addon;
|
412 |
+
}
|
413 |
+
}
|
414 |
+
} elseif ( isset( $addons[ $download_id ] ) ) {
|
415 |
+
$plugin = $addons[ $download_id ];
|
416 |
+
}
|
417 |
+
|
418 |
+
return $plugin;
|
419 |
+
}
|
420 |
+
|
421 |
private static function prepare_addons( &$addons ) {
|
422 |
$activate_url = '';
|
423 |
if ( current_user_can( 'activate_plugins' ) ) {
|
428 |
foreach ( $loop_addons as $id => $addon ) {
|
429 |
if ( is_numeric( $id ) ) {
|
430 |
$slug = str_replace( array( '-wordpress-plugin', '-wordpress' ), '', $addon['slug'] );
|
431 |
+
$file_name = $addon['plugin'];
|
432 |
} else {
|
433 |
$slug = $id;
|
434 |
+
if ( isset( $addon['file'] ) ) {
|
435 |
+
$base_file = $addon['file'];
|
436 |
+
} else {
|
437 |
+
$base_file = 'formidable-' . $slug;
|
438 |
+
}
|
439 |
+
$file_name = $base_file . '/' . $base_file . '.php';
|
440 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
441 |
|
442 |
+
$addon['installed'] = file_exists( WP_PLUGIN_DIR . '/' . $file_name );
|
443 |
$addon['activate_url'] = '';
|
444 |
+
|
445 |
+
if ( $addon['installed'] && ! empty( $activate_url ) && ! is_plugin_active( $file_name ) ) {
|
446 |
+
$addon['activate_url'] = add_query_arg(
|
447 |
+
array(
|
448 |
+
'_wpnonce' => wp_create_nonce( 'activate-plugin_' . $file_name ),
|
449 |
+
'plugin' => $file_name,
|
450 |
+
),
|
451 |
+
$activate_url
|
452 |
+
);
|
|
|
|
|
|
|
|
|
453 |
}
|
454 |
|
455 |
if ( ! isset( $addon['docs'] ) ) {
|
467 |
}
|
468 |
}
|
469 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
470 |
/**
|
471 |
* @since 3.04.02
|
472 |
*/
|
509 |
}
|
510 |
}
|
511 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
512 |
public static function upgrade_to_pro() {
|
513 |
$pro_pricing = self::prepare_pro_info();
|
514 |
|
544 |
);
|
545 |
}
|
546 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
547 |
/**
|
548 |
* @since 3.04.02
|
549 |
*/
|
643 |
wp_die();
|
644 |
}
|
645 |
}
|
646 |
+
|
647 |
+
/**
|
648 |
+
* @since 2.03.08
|
649 |
+
* @deprecated 3.04.03
|
650 |
+
* @codeCoverageIgnore
|
651 |
+
*
|
652 |
+
* @param boolean $return
|
653 |
+
* @param string $package
|
654 |
+
*
|
655 |
+
* @return boolean
|
656 |
+
*/
|
657 |
+
public static function add_shorten_edd_filename_filter( $return, $package ) {
|
658 |
+
return FrmDeprecated::add_shorten_edd_filename_filter( $return, $package );
|
659 |
+
}
|
660 |
+
|
661 |
+
/**
|
662 |
+
* @since 2.03.08
|
663 |
+
* @deprecated 3.04.03
|
664 |
+
* @codeCoverageIgnore
|
665 |
+
*
|
666 |
+
* @param string $filename
|
667 |
+
* @param string $ext
|
668 |
+
*
|
669 |
+
* @return string
|
670 |
+
*/
|
671 |
+
public static function shorten_edd_filename( $filename, $ext ) {
|
672 |
+
return FrmDeprecated::shorten_edd_filename( $filename, $ext );
|
673 |
+
}
|
674 |
+
|
675 |
+
/**
|
676 |
+
* @deprecated 3.04.03
|
677 |
+
* @codeCoverageIgnore
|
678 |
+
*/
|
679 |
+
public static function get_licenses() {
|
680 |
+
FrmDeprecated::get_licenses();
|
681 |
+
}
|
682 |
}
|
classes/controllers/FrmAppController.php
CHANGED
@@ -30,7 +30,7 @@ class FrmAppController {
|
|
30 |
* @since 3.0
|
31 |
*/
|
32 |
private static function is_white_page() {
|
33 |
-
$is_white_page = ( FrmAppHelper::is_admin_page( 'formidable' ) || FrmAppHelper::is_admin_page( 'formidable-entries' ) || FrmAppHelper::is_admin_page( 'formidable-pro-upgrade' ) );
|
34 |
if ( ! $is_white_page ) {
|
35 |
$screen = get_current_screen();
|
36 |
$is_white_page = ( $screen && $screen->id === 'edit-frm_display' );
|
@@ -118,6 +118,7 @@ class FrmAppController {
|
|
118 |
|
119 |
public static function pro_get_started_headline() {
|
120 |
self::maybe_show_upgrade_bar();
|
|
|
121 |
|
122 |
// Don't display this error as we're upgrading the thing, or if the user shouldn't see the message
|
123 |
if ( 'upgrade-plugin' == FrmAppHelper::simple_get( 'action', 'sanitize_title' ) || ! current_user_can( 'update_plugins' ) ) {
|
@@ -125,26 +126,34 @@ class FrmAppController {
|
|
125 |
}
|
126 |
|
127 |
$pro_installed = is_dir( WP_PLUGIN_DIR . '/formidable-pro' );
|
|
|
|
|
|
|
|
|
128 |
|
129 |
-
|
130 |
-
FrmAppHelper::load_admin_wide_js();
|
131 |
|
132 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
133 |
|
134 |
-
if ( $
|
135 |
-
// if pro version is installed, include link to activate it
|
136 |
-
$inst_install_url = wp_nonce_url( self_admin_url( 'plugins.php?action=activate&plugin=formidable-pro/formidable-pro.php' ), 'activate-plugin_formidable-pro/formidable-pro.php' );
|
137 |
-
} else {
|
138 |
$inst_install_url = 'https://formidableforms.com/knowledgebase/install-formidable-forms/?utm_source=WordPress&utm_medium=get-started&utm_campaign=liteplugin';
|
139 |
}
|
|
|
140 |
?>
|
141 |
-
<div class="error
|
142 |
<?php
|
143 |
echo apply_filters( // WPCS: XSS ok.
|
144 |
'frm_pro_update_msg',
|
145 |
sprintf(
|
146 |
esc_html__( 'This site has been previously authorized to run Formidable Forms. %1$sInstall Formidable Pro%2$s or %3$sdeauthorize%4$s this site to continue running the free version and remove this message.', 'formidable' ),
|
147 |
-
'<br/><a href="' . esc_url( $inst_install_url ) . '" target="_blank">',
|
148 |
'</a>',
|
149 |
'<a href="#" class="frm_deauthorize_link">',
|
150 |
'</a>'
|
@@ -152,18 +161,13 @@ class FrmAppController {
|
|
152 |
esc_url( $inst_install_url )
|
153 |
);
|
154 |
?>
|
|
|
155 |
</div>
|
156 |
<?php
|
157 |
-
}
|
158 |
}
|
159 |
|
160 |
private static function maybe_show_upgrade_bar() {
|
161 |
-
|
162 |
-
if ( strpos( $page, 'formidable' ) !== 0 ) {
|
163 |
-
return;
|
164 |
-
}
|
165 |
-
|
166 |
-
if ( FrmAppHelper::pro_is_installed() ) {
|
167 |
return;
|
168 |
}
|
169 |
|
@@ -181,6 +185,29 @@ class FrmAppController {
|
|
181 |
}
|
182 |
}
|
183 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
184 |
/**
|
185 |
* @since 3.04.02
|
186 |
*/
|
@@ -352,31 +379,6 @@ class FrmAppController {
|
|
352 |
load_plugin_textdomain( 'formidable', false, FrmAppHelper::plugin_folder() . '/languages/' );
|
353 |
}
|
354 |
|
355 |
-
/**
|
356 |
-
* Filter shortcodes in text widgets
|
357 |
-
*
|
358 |
-
* @deprecated 2.5.4
|
359 |
-
* @codeCoverageIgnore
|
360 |
-
*/
|
361 |
-
public static function widget_text_filter( $content ) {
|
362 |
-
_deprecated_function( __METHOD__, '2.5.4' );
|
363 |
-
$regex = '/\[\s*(formidable|display-frm-data|frm-stats|frm-graph|frm-entry-links|formresults|frm-search)\s+.*\]/';
|
364 |
-
return preg_replace_callback( $regex, 'FrmAppHelper::widget_text_filter_callback', $content );
|
365 |
-
}
|
366 |
-
|
367 |
-
/**
|
368 |
-
* Deprecated in favor of wpmu_upgrade_site
|
369 |
-
*
|
370 |
-
* @deprecated 2.3
|
371 |
-
* @codeCoverageIgnore
|
372 |
-
*/
|
373 |
-
public static function front_head() {
|
374 |
-
_deprecated_function( __FUNCTION__, '2.3' );
|
375 |
-
if ( is_multisite() && self::needs_update() ) {
|
376 |
-
self::install();
|
377 |
-
}
|
378 |
-
}
|
379 |
-
|
380 |
/**
|
381 |
* Check if the styles are updated when a form is loaded on the front-end
|
382 |
*
|
@@ -451,17 +453,6 @@ class FrmAppController {
|
|
451 |
wp_die();
|
452 |
}
|
453 |
|
454 |
-
/**
|
455 |
-
* @deprecated 3.0.04
|
456 |
-
* @codeCoverageIgnore
|
457 |
-
*/
|
458 |
-
public static function activation_install() {
|
459 |
-
_deprecated_function( __METHOD__, '3.0.04', 'FrmAppController::install' );
|
460 |
-
FrmDb::delete_cache_and_transient( 'frm_plugin_version' );
|
461 |
-
FrmFormActionsController::actions_init();
|
462 |
-
self::install();
|
463 |
-
}
|
464 |
-
|
465 |
public static function install() {
|
466 |
$frmdb = new FrmMigrate();
|
467 |
$frmdb->upgrade();
|
@@ -490,23 +481,6 @@ class FrmAppController {
|
|
490 |
return $tables;
|
491 |
}
|
492 |
|
493 |
-
/**
|
494 |
-
* Routes for wordpress pages -- we're just replacing content
|
495 |
-
*
|
496 |
-
* @deprecated 3.0
|
497 |
-
* @codeCoverageIgnore
|
498 |
-
*/
|
499 |
-
public static function page_route( $content ) {
|
500 |
-
_deprecated_function( __METHOD__, '3.0' );
|
501 |
-
global $post;
|
502 |
-
|
503 |
-
if ( $post && isset( $_GET['form'] ) ) {
|
504 |
-
$content = FrmFormsController::page_preview();
|
505 |
-
}
|
506 |
-
|
507 |
-
return $content;
|
508 |
-
}
|
509 |
-
|
510 |
public static function deauthorize() {
|
511 |
FrmAppHelper::permission_check( 'frm_change_settings' );
|
512 |
check_ajax_referer( 'frm_ajax', 'nonce' );
|
@@ -539,7 +513,41 @@ class FrmAppController {
|
|
539 |
* @codeCoverageIgnore
|
540 |
*/
|
541 |
public static function get_form_shortcode( $atts ) {
|
542 |
-
|
543 |
-
return FrmFormsController::get_form_shortcode( $atts );
|
544 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
545 |
}
|
30 |
* @since 3.0
|
31 |
*/
|
32 |
private static function is_white_page() {
|
33 |
+
$is_white_page = ( FrmAppHelper::is_admin_page( 'formidable' ) || FrmAppHelper::is_admin_page( 'formidable-entries' ) || FrmAppHelper::is_admin_page( 'formidable-pro-upgrade' ) || FrmAppHelper::is_admin_page( 'formidable-addons' ) );
|
34 |
if ( ! $is_white_page ) {
|
35 |
$screen = get_current_screen();
|
36 |
$is_white_page = ( $screen && $screen->id === 'edit-frm_display' );
|
118 |
|
119 |
public static function pro_get_started_headline() {
|
120 |
self::maybe_show_upgrade_bar();
|
121 |
+
self::review_request();
|
122 |
|
123 |
// Don't display this error as we're upgrading the thing, or if the user shouldn't see the message
|
124 |
if ( 'upgrade-plugin' == FrmAppHelper::simple_get( 'action', 'sanitize_title' ) || ! current_user_can( 'update_plugins' ) ) {
|
126 |
}
|
127 |
|
128 |
$pro_installed = is_dir( WP_PLUGIN_DIR . '/formidable-pro' );
|
129 |
+
$authorized = get_site_option( 'frmpro-authorized' ) && ! is_callable( 'load_formidable_pro' );
|
130 |
+
if ( ! $authorized ) {
|
131 |
+
return;
|
132 |
+
}
|
133 |
|
134 |
+
FrmAppHelper::load_admin_wide_js();
|
|
|
135 |
|
136 |
+
// user is authorized, but running free version
|
137 |
+
$download_url = '';
|
138 |
+
if ( $pro_installed ) {
|
139 |
+
// if pro version is installed, include link to activate it
|
140 |
+
$inst_install_url = wp_nonce_url( self_admin_url( 'plugins.php?action=activate&plugin=formidable-pro/formidable-pro.php' ), 'activate-plugin_formidable-pro/formidable-pro.php' );
|
141 |
+
} else {
|
142 |
+
$inst_install_url = '#';
|
143 |
+
$download_url = FrmAddonsController::get_pro_download_url();
|
144 |
|
145 |
+
if ( empty( $download_url ) ) {
|
|
|
|
|
|
|
146 |
$inst_install_url = 'https://formidableforms.com/knowledgebase/install-formidable-forms/?utm_source=WordPress&utm_medium=get-started&utm_campaign=liteplugin';
|
147 |
}
|
148 |
+
}
|
149 |
?>
|
150 |
+
<div class="error frm_previous_install">
|
151 |
<?php
|
152 |
echo apply_filters( // WPCS: XSS ok.
|
153 |
'frm_pro_update_msg',
|
154 |
sprintf(
|
155 |
esc_html__( 'This site has been previously authorized to run Formidable Forms. %1$sInstall Formidable Pro%2$s or %3$sdeauthorize%4$s this site to continue running the free version and remove this message.', 'formidable' ),
|
156 |
+
'<br/><a href="' . esc_url( $inst_install_url ) . '" id="frm_install_link" target="_blank" data-prourl="' . esc_url( $download_url ) . '">',
|
157 |
'</a>',
|
158 |
'<a href="#" class="frm_deauthorize_link">',
|
159 |
'</a>'
|
161 |
esc_url( $inst_install_url )
|
162 |
);
|
163 |
?>
|
164 |
+
<div id="frm_install_message" class="hidden frm_hidden"></div>
|
165 |
</div>
|
166 |
<?php
|
|
|
167 |
}
|
168 |
|
169 |
private static function maybe_show_upgrade_bar() {
|
170 |
+
if ( ! FrmAppHelper::is_formidable_admin() || FrmAppHelper::pro_is_installed() ) {
|
|
|
|
|
|
|
|
|
|
|
171 |
return;
|
172 |
}
|
173 |
|
185 |
}
|
186 |
}
|
187 |
|
188 |
+
/**
|
189 |
+
* Add admin notices as needed for reviews
|
190 |
+
*
|
191 |
+
* @since 3.04.03
|
192 |
+
*/
|
193 |
+
private static function review_request() {
|
194 |
+
$reviews = new FrmReviews();
|
195 |
+
$reviews->review_request();
|
196 |
+
}
|
197 |
+
|
198 |
+
/**
|
199 |
+
* Save the request to hide the review
|
200 |
+
*
|
201 |
+
* @since 3.04.03
|
202 |
+
*/
|
203 |
+
public static function dismiss_review() {
|
204 |
+
FrmAppHelper::permission_check( 'frm_change_settings' );
|
205 |
+
check_ajax_referer( 'frm_ajax', 'nonce' );
|
206 |
+
|
207 |
+
$reviews = new FrmReviews();
|
208 |
+
$reviews->dismiss_review();
|
209 |
+
}
|
210 |
+
|
211 |
/**
|
212 |
* @since 3.04.02
|
213 |
*/
|
379 |
load_plugin_textdomain( 'formidable', false, FrmAppHelper::plugin_folder() . '/languages/' );
|
380 |
}
|
381 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
382 |
/**
|
383 |
* Check if the styles are updated when a form is loaded on the front-end
|
384 |
*
|
453 |
wp_die();
|
454 |
}
|
455 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
456 |
public static function install() {
|
457 |
$frmdb = new FrmMigrate();
|
458 |
$frmdb->upgrade();
|
481 |
return $tables;
|
482 |
}
|
483 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
484 |
public static function deauthorize() {
|
485 |
FrmAppHelper::permission_check( 'frm_change_settings' );
|
486 |
check_ajax_referer( 'frm_ajax', 'nonce' );
|
513 |
* @codeCoverageIgnore
|
514 |
*/
|
515 |
public static function get_form_shortcode( $atts ) {
|
516 |
+
return FrmDeprecated::get_form_shortcode( $atts );
|
|
|
517 |
}
|
518 |
+
|
519 |
+
/**
|
520 |
+
* @deprecated 2.5.4
|
521 |
+
* @codeCoverageIgnore
|
522 |
+
*/
|
523 |
+
public static function widget_text_filter( $content ) {
|
524 |
+
return FrmDeprecated::widget_text_filter( $content );
|
525 |
+
}
|
526 |
+
|
527 |
+
/**
|
528 |
+
* Deprecated in favor of wpmu_upgrade_site
|
529 |
+
*
|
530 |
+
* @deprecated 2.3
|
531 |
+
* @codeCoverageIgnore
|
532 |
+
*/
|
533 |
+
public static function front_head() {
|
534 |
+
FrmDeprecated::front_head();
|
535 |
+
}
|
536 |
+
|
537 |
+
|
538 |
+
/**
|
539 |
+
* @deprecated 3.0.04
|
540 |
+
* @codeCoverageIgnore
|
541 |
+
*/
|
542 |
+
public static function activation_install() {
|
543 |
+
FrmDeprecated::activation_install();
|
544 |
+
}
|
545 |
+
|
546 |
+
/**
|
547 |
+
* @deprecated 3.0
|
548 |
+
* @codeCoverageIgnore
|
549 |
+
*/
|
550 |
+
public static function page_route( $content ) {
|
551 |
+
return FrmDeprecated::page_route( $content );
|
552 |
+
}
|
553 |
}
|
classes/controllers/FrmEntriesController.php
CHANGED
@@ -551,24 +551,6 @@ class FrmEntriesController {
|
|
551 |
return $form_ids;
|
552 |
}
|
553 |
|
554 |
-
/**
|
555 |
-
* @deprecated 1.07.05
|
556 |
-
* @codeCoverageIgnore
|
557 |
-
*/
|
558 |
-
public static function show_form( $id = '', $key = '', $title = false, $description = false ) {
|
559 |
-
_deprecated_function( __FUNCTION__, '1.07.05', 'FrmFormsController::show_form()' );
|
560 |
-
return FrmFormsController::show_form( $id, $key, $title, $description );
|
561 |
-
}
|
562 |
-
|
563 |
-
/**
|
564 |
-
* @deprecated 1.07.05
|
565 |
-
* @codeCoverageIgnore
|
566 |
-
*/
|
567 |
-
public static function get_form( $filename, $form, $title, $description ) {
|
568 |
-
_deprecated_function( __FUNCTION__, '1.07.05', 'FrmFormsController::get_form()' );
|
569 |
-
return FrmFormsController::get_form( $form, $title, $description );
|
570 |
-
}
|
571 |
-
|
572 |
public static function process_entry( $errors = '', $ajax = false ) {
|
573 |
$form_id = FrmAppHelper::get_post_param( 'form_id', '', 'absint' );
|
574 |
if ( FrmAppHelper::is_admin() || empty( $_POST ) || empty( $form_id ) || ! isset( $_POST['item_key'] ) ) {
|
@@ -731,4 +713,20 @@ class FrmEntriesController {
|
|
731 |
|
732 |
include( FrmAppHelper::plugin_path() . '/classes/views/frm-entries/sidebar-shared.php' );
|
733 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
734 |
}
|
551 |
return $form_ids;
|
552 |
}
|
553 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
554 |
public static function process_entry( $errors = '', $ajax = false ) {
|
555 |
$form_id = FrmAppHelper::get_post_param( 'form_id', '', 'absint' );
|
556 |
if ( FrmAppHelper::is_admin() || empty( $_POST ) || empty( $form_id ) || ! isset( $_POST['item_key'] ) ) {
|
713 |
|
714 |
include( FrmAppHelper::plugin_path() . '/classes/views/frm-entries/sidebar-shared.php' );
|
715 |
}
|
716 |
+
|
717 |
+
/**
|
718 |
+
* @deprecated 1.07.05
|
719 |
+
* @codeCoverageIgnore
|
720 |
+
*/
|
721 |
+
public static function show_form( $id = '', $key = '', $title = false, $description = false ) {
|
722 |
+
return FrmDeprecated::show_form( $id, $key, $title, $description );
|
723 |
+
}
|
724 |
+
|
725 |
+
/**
|
726 |
+
* @deprecated 1.07.05
|
727 |
+
* @codeCoverageIgnore
|
728 |
+
*/
|
729 |
+
public static function get_form( $filename, $form, $title, $description ) {
|
730 |
+
return FrmDeprecated::get_form( $filename, $form, $title, $description );
|
731 |
+
}
|
732 |
}
|
classes/controllers/FrmFieldsController.php
CHANGED
@@ -98,40 +98,6 @@ class FrmFieldsController {
|
|
98 |
return $field;
|
99 |
}
|
100 |
|
101 |
-
/**
|
102 |
-
* @deprecated 3.0
|
103 |
-
* @codeCoverageIgnore
|
104 |
-
*/
|
105 |
-
public static function edit_name( $field = 'name', $id = '' ) {
|
106 |
-
_deprecated_function( __FUNCTION__, '3.0' );
|
107 |
-
|
108 |
-
FrmAppHelper::permission_check( 'frm_edit_forms' );
|
109 |
-
check_ajax_referer( 'frm_ajax', 'nonce' );
|
110 |
-
|
111 |
-
if ( empty( $field ) ) {
|
112 |
-
$field = 'name';
|
113 |
-
}
|
114 |
-
|
115 |
-
if ( empty( $id ) ) {
|
116 |
-
$id = FrmAppHelper::get_post_param( 'element_id', '', 'sanitize_title' );
|
117 |
-
$id = str_replace( 'field_label_', '', $id );
|
118 |
-
}
|
119 |
-
|
120 |
-
$value = FrmAppHelper::get_post_param( 'update_value', '', 'wp_kses_post' );
|
121 |
-
$value = trim( $value );
|
122 |
-
if ( trim( strip_tags( $value ) ) === '' ) {
|
123 |
-
// set blank value if there is no content
|
124 |
-
$value = '';
|
125 |
-
}
|
126 |
-
|
127 |
-
FrmField::update( $id, array( $field => $value ) );
|
128 |
-
|
129 |
-
do_action( 'frm_after_update_field_' . $field, compact( 'id', 'value' ) );
|
130 |
-
|
131 |
-
echo stripslashes( wp_kses_post( $value ) ); // WPCS: XSS ok.
|
132 |
-
wp_die();
|
133 |
-
}
|
134 |
-
|
135 |
public static function update_ajax_option() {
|
136 |
FrmAppHelper::permission_check( 'frm_edit_forms' );
|
137 |
check_ajax_referer( 'frm_ajax', 'nonce' );
|
@@ -188,27 +154,6 @@ class FrmFieldsController {
|
|
188 |
wp_die();
|
189 |
}
|
190 |
|
191 |
-
/**
|
192 |
-
* Load a single field in the form builder along with all needed variables
|
193 |
-
*
|
194 |
-
* @deprecated 3.0
|
195 |
-
* @codeCoverageIgnore
|
196 |
-
*
|
197 |
-
* @param int $field_id
|
198 |
-
* @param array $values
|
199 |
-
* @param int $form_id
|
200 |
-
*
|
201 |
-
* @return array
|
202 |
-
*/
|
203 |
-
public static function include_single_field( $field_id, $values, $form_id = 0 ) {
|
204 |
-
_deprecated_function( __FUNCTION__, '3.0', 'FrmFieldsController::load_single_field' );
|
205 |
-
|
206 |
-
$field = FrmFieldsHelper::setup_edit_vars( FrmField::getOne( $field_id ) );
|
207 |
-
self::load_single_field( $field, $values, $form_id );
|
208 |
-
|
209 |
-
return $field;
|
210 |
-
}
|
211 |
-
|
212 |
/**
|
213 |
* @since 3.0
|
214 |
*
|
@@ -319,22 +264,6 @@ class FrmFieldsController {
|
|
319 |
wp_die();
|
320 |
}
|
321 |
|
322 |
-
/**
|
323 |
-
* @deprecated 2.3
|
324 |
-
* @codeCoverageIgnore
|
325 |
-
*/
|
326 |
-
public static function edit_option() {
|
327 |
-
_deprecated_function( __FUNCTION__, '2.3' );
|
328 |
-
}
|
329 |
-
|
330 |
-
/**
|
331 |
-
* @deprecated 2.3
|
332 |
-
* @codeCoverageIgnore
|
333 |
-
*/
|
334 |
-
public static function delete_option() {
|
335 |
-
_deprecated_function( __FUNCTION__, '2.3' );
|
336 |
-
}
|
337 |
-
|
338 |
public static function import_choices() {
|
339 |
FrmAppHelper::permission_check( 'frm_edit_forms', 'hide' );
|
340 |
|
@@ -765,4 +694,42 @@ class FrmFieldsController {
|
|
765 |
|
766 |
return $opt;
|
767 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
768 |
}
|
98 |
return $field;
|
99 |
}
|
100 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
101 |
public static function update_ajax_option() {
|
102 |
FrmAppHelper::permission_check( 'frm_edit_forms' );
|
103 |
check_ajax_referer( 'frm_ajax', 'nonce' );
|
154 |
wp_die();
|
155 |
}
|
156 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
157 |
/**
|
158 |
* @since 3.0
|
159 |
*
|
264 |
wp_die();
|
265 |
}
|
266 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
267 |
public static function import_choices() {
|
268 |
FrmAppHelper::permission_check( 'frm_edit_forms', 'hide' );
|
269 |
|
694 |
|
695 |
return $opt;
|
696 |
}
|
697 |
+
|
698 |
+
/**
|
699 |
+
* @deprecated 3.0
|
700 |
+
* @codeCoverageIgnore
|
701 |
+
*/
|
702 |
+
public static function edit_name( $field = 'name', $id = '' ) {
|
703 |
+
FrmDeprecated::edit_name( $field, $id );
|
704 |
+
}
|
705 |
+
|
706 |
+
/**
|
707 |
+
* @deprecated 3.0
|
708 |
+
* @codeCoverageIgnore
|
709 |
+
*
|
710 |
+
* @param int $field_id
|
711 |
+
* @param array $values
|
712 |
+
* @param int $form_id
|
713 |
+
*
|
714 |
+
* @return array
|
715 |
+
*/
|
716 |
+
public static function include_single_field( $field_id, $values, $form_id = 0 ) {
|
717 |
+
return FrmDeprecated::include_single_field( $field_id, $values, $form_id );
|
718 |
+
}
|
719 |
+
|
720 |
+
/**
|
721 |
+
* @deprecated 2.3
|
722 |
+
* @codeCoverageIgnore
|
723 |
+
*/
|
724 |
+
public static function edit_option() {
|
725 |
+
FrmDeprecated::deprecated( __METHOD__, '2.3' );
|
726 |
+
}
|
727 |
+
|
728 |
+
/**
|
729 |
+
* @deprecated 2.3
|
730 |
+
* @codeCoverageIgnore
|
731 |
+
*/
|
732 |
+
public static function delete_option() {
|
733 |
+
FrmDeprecated::deprecated( __METHOD__, '2.3' );
|
734 |
+
}
|
735 |
}
|
classes/controllers/FrmFormsController.php
CHANGED
@@ -1011,52 +1011,6 @@ class FrmFormsController {
|
|
1011 |
return $errors;
|
1012 |
}
|
1013 |
|
1014 |
-
/**
|
1015 |
-
* @deprecated 1.07.05
|
1016 |
-
* @codeCoverageIgnore
|
1017 |
-
*/
|
1018 |
-
public static function add_default_templates( $path, $default = true, $template = true ) {
|
1019 |
-
_deprecated_function( __FUNCTION__, '1.07.05', 'FrmXMLController::add_default_templates()' );
|
1020 |
-
|
1021 |
-
$path = untrailingslashit( trim( $path ) );
|
1022 |
-
$templates = glob( $path . '/*.php' );
|
1023 |
-
|
1024 |
-
for ( $i = count( $templates ) - 1; $i >= 0; $i-- ) {
|
1025 |
-
$filename = str_replace( '.php', '', str_replace( $path . '/', '', $templates[ $i ] ) );
|
1026 |
-
$template_query = array( 'form_key' => $filename );
|
1027 |
-
if ( $template ) {
|
1028 |
-
$template_query['is_template'] = 1;
|
1029 |
-
}
|
1030 |
-
if ( $default ) {
|
1031 |
-
$template_query['default_template'] = 1;
|
1032 |
-
}
|
1033 |
-
$form = FrmForm::getAll( $template_query, '', 1 );
|
1034 |
-
|
1035 |
-
$values = FrmFormsHelper::setup_new_vars();
|
1036 |
-
$values['form_key'] = $filename;
|
1037 |
-
$values['is_template'] = $template;
|
1038 |
-
$values['status'] = 'published';
|
1039 |
-
if ( $default ) {
|
1040 |
-
$values['default_template'] = 1;
|
1041 |
-
}
|
1042 |
-
|
1043 |
-
include( $templates[ $i ] );
|
1044 |
-
|
1045 |
-
//get updated form
|
1046 |
-
if ( isset( $form ) && ! empty( $form ) ) {
|
1047 |
-
$old_id = $form->id;
|
1048 |
-
$form = FrmForm::getOne( $form->id );
|
1049 |
-
} else {
|
1050 |
-
$old_id = false;
|
1051 |
-
$form = FrmForm::getAll( $template_query, '', 1 );
|
1052 |
-
}
|
1053 |
-
|
1054 |
-
if ( $form ) {
|
1055 |
-
do_action( 'frm_after_duplicate_form', $form->id, (array) $form, array( 'old_id' => $old_id ) );
|
1056 |
-
}
|
1057 |
-
}
|
1058 |
-
}
|
1059 |
-
|
1060 |
public static function route() {
|
1061 |
$action = isset( $_REQUEST['frm_action'] ) ? 'frm_action' : 'action';
|
1062 |
$vars = array();
|
@@ -1697,19 +1651,20 @@ class FrmFormsController {
|
|
1697 |
return isset( $atts['minimize'] ) && ! empty( $atts['minimize'] );
|
1698 |
}
|
1699 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1700 |
/**
|
1701 |
* @deprecated 3.0
|
1702 |
* @codeCoverageIgnore
|
1703 |
*/
|
1704 |
public static function bulk_create_template( $ids ) {
|
1705 |
-
|
1706 |
-
FrmAppHelper::permission_check( 'frm_edit_forms' );
|
1707 |
-
|
1708 |
-
foreach ( $ids as $id ) {
|
1709 |
-
FrmForm::duplicate( $id, true, true );
|
1710 |
-
}
|
1711 |
-
|
1712 |
-
return __( 'Form template was Successfully Created', 'formidable' );
|
1713 |
}
|
1714 |
|
1715 |
/**
|
@@ -1717,10 +1672,7 @@ class FrmFormsController {
|
|
1717 |
* @codeCoverageIgnore
|
1718 |
*/
|
1719 |
public static function register_pro_scripts() {
|
1720 |
-
|
1721 |
-
if ( FrmAppHelper::pro_is_installed() ) {
|
1722 |
-
FrmProEntriesController::register_scripts();
|
1723 |
-
}
|
1724 |
}
|
1725 |
|
1726 |
/**
|
@@ -1728,10 +1680,7 @@ class FrmFormsController {
|
|
1728 |
* @codeCoverageIgnore
|
1729 |
*/
|
1730 |
public static function edit_key() {
|
1731 |
-
|
1732 |
-
$values = self::edit_in_place_value( 'form_key' );
|
1733 |
-
echo wp_kses( stripslashes( FrmForm::get_key_by_id( $values['form_id'] ) ), array() );
|
1734 |
-
wp_die();
|
1735 |
}
|
1736 |
|
1737 |
/**
|
@@ -1739,28 +1688,6 @@ class FrmFormsController {
|
|
1739 |
* @codeCoverageIgnore
|
1740 |
*/
|
1741 |
public static function edit_description() {
|
1742 |
-
|
1743 |
-
$values = self::edit_in_place_value( 'description' );
|
1744 |
-
echo wp_kses_post( FrmAppHelper::use_wpautop( stripslashes( $values['description'] ) ) );
|
1745 |
-
wp_die();
|
1746 |
-
}
|
1747 |
-
|
1748 |
-
/**
|
1749 |
-
* @deprecated 3.0
|
1750 |
-
* @codeCoverageIgnore
|
1751 |
-
*/
|
1752 |
-
private static function edit_in_place_value( $field ) {
|
1753 |
-
_deprecated_function( __METHOD__, '3.0' );
|
1754 |
-
check_ajax_referer( 'frm_ajax', 'nonce' );
|
1755 |
-
FrmAppHelper::permission_check( 'frm_edit_forms', 'hide' );
|
1756 |
-
|
1757 |
-
$form_id = FrmAppHelper::get_post_param( 'form_id', '', 'absint' );
|
1758 |
-
$value = FrmAppHelper::get_post_param( 'update_value', '', 'wp_filter_post_kses' );
|
1759 |
-
|
1760 |
-
$values = array( $field => trim( $value ) );
|
1761 |
-
FrmForm::update( $form_id, $values );
|
1762 |
-
$values['form_id'] = $form_id;
|
1763 |
-
|
1764 |
-
return $values;
|
1765 |
}
|
1766 |
}
|
1011 |
return $errors;
|
1012 |
}
|
1013 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1014 |
public static function route() {
|
1015 |
$action = isset( $_REQUEST['frm_action'] ) ? 'frm_action' : 'action';
|
1016 |
$vars = array();
|
1651 |
return isset( $atts['minimize'] ) && ! empty( $atts['minimize'] );
|
1652 |
}
|
1653 |
|
1654 |
+
/**
|
1655 |
+
* @deprecated 1.07.05
|
1656 |
+
* @codeCoverageIgnore
|
1657 |
+
*/
|
1658 |
+
public static function add_default_templates( $path, $default = true, $template = true ) {
|
1659 |
+
FrmDeprecated::add_default_templates( $path, $default, $template );
|
1660 |
+
}
|
1661 |
+
|
1662 |
/**
|
1663 |
* @deprecated 3.0
|
1664 |
* @codeCoverageIgnore
|
1665 |
*/
|
1666 |
public static function bulk_create_template( $ids ) {
|
1667 |
+
return FrmDeprecated::bulk_create_template( $ids );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1668 |
}
|
1669 |
|
1670 |
/**
|
1672 |
* @codeCoverageIgnore
|
1673 |
*/
|
1674 |
public static function register_pro_scripts() {
|
1675 |
+
FrmDeprecated::register_pro_scripts();
|
|
|
|
|
|
|
1676 |
}
|
1677 |
|
1678 |
/**
|
1680 |
* @codeCoverageIgnore
|
1681 |
*/
|
1682 |
public static function edit_key() {
|
1683 |
+
FrmDeprecated::edit_key();
|
|
|
|
|
|
|
1684 |
}
|
1685 |
|
1686 |
/**
|
1688 |
* @codeCoverageIgnore
|
1689 |
*/
|
1690 |
public static function edit_description() {
|
1691 |
+
FrmDeprecated::edit_description();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1692 |
}
|
1693 |
}
|
classes/controllers/FrmHooksController.php
CHANGED
@@ -85,10 +85,11 @@ class FrmHooksController {
|
|
85 |
add_action( 'admin_init', 'FrmAppController::admin_init', 11 );
|
86 |
add_filter( 'plugin_action_links_' . FrmAppHelper::plugin_folder() . '/formidable.php', 'FrmAppController::settings_link' );
|
87 |
add_filter( 'admin_footer_text', 'FrmAppController::set_footer_text' );
|
|
|
88 |
|
89 |
// Addons Controller
|
90 |
add_action( 'admin_menu', 'FrmAddonsController::menu', 100 );
|
91 |
-
add_filter( '
|
92 |
|
93 |
// Entries Controller
|
94 |
add_action( 'admin_menu', 'FrmEntriesController::menu', 12 );
|
@@ -137,7 +138,6 @@ class FrmHooksController {
|
|
137 |
// Addons
|
138 |
add_action( 'wp_ajax_frm_addon_activate', 'FrmAddon::activate' );
|
139 |
add_action( 'wp_ajax_frm_addon_deactivate', 'FrmAddon::deactivate' );
|
140 |
-
add_action( 'wp_ajax_frm_fill_licenses', 'FrmAddonsController::get_licenses' );
|
141 |
add_action( 'wp_ajax_frm_install_addon', 'FrmAddonsController::ajax_install_addon' );
|
142 |
|
143 |
// Fields Controller
|
85 |
add_action( 'admin_init', 'FrmAppController::admin_init', 11 );
|
86 |
add_filter( 'plugin_action_links_' . FrmAppHelper::plugin_folder() . '/formidable.php', 'FrmAppController::settings_link' );
|
87 |
add_filter( 'admin_footer_text', 'FrmAppController::set_footer_text' );
|
88 |
+
add_action( 'wp_ajax_frm_dismiss_review', 'FrmAppController::dismiss_review' );
|
89 |
|
90 |
// Addons Controller
|
91 |
add_action( 'admin_menu', 'FrmAddonsController::menu', 100 );
|
92 |
+
add_filter( 'pre_set_site_transient_update_plugins', 'FrmAddonsController::check_update' );
|
93 |
|
94 |
// Entries Controller
|
95 |
add_action( 'admin_menu', 'FrmEntriesController::menu', 12 );
|
138 |
// Addons
|
139 |
add_action( 'wp_ajax_frm_addon_activate', 'FrmAddon::activate' );
|
140 |
add_action( 'wp_ajax_frm_addon_deactivate', 'FrmAddon::deactivate' );
|
|
|
141 |
add_action( 'wp_ajax_frm_install_addon', 'FrmAddonsController::ajax_install_addon' );
|
142 |
|
143 |
// Fields Controller
|
classes/controllers/FrmSettingsController.php
CHANGED
@@ -33,12 +33,24 @@ class FrmSettingsController {
|
|
33 |
private static function get_settings_tabs() {
|
34 |
$sections = array();
|
35 |
if ( apply_filters( 'frm_include_addon_page', false ) ) {
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
'
|
41 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
42 |
}
|
43 |
$sections = apply_filters( 'frm_add_settings_section', $sections );
|
44 |
|
@@ -149,7 +161,7 @@ class FrmSettingsController {
|
|
149 |
public static function settings_cta_dismiss() {
|
150 |
FrmAppHelper::permission_check( 'frm_change_settings' );
|
151 |
|
152 |
-
update_option( 'frm_lite_settings_upgrade', time() );
|
153 |
|
154 |
wp_send_json_success();
|
155 |
}
|
33 |
private static function get_settings_tabs() {
|
34 |
$sections = array();
|
35 |
if ( apply_filters( 'frm_include_addon_page', false ) ) {
|
36 |
+
// if no addons need a license, skip this page
|
37 |
+
$show_licenses = false;
|
38 |
+
$installed_addons = apply_filters( 'frm_installed_addons', array() );
|
39 |
+
foreach ( $installed_addons as $installed_addon ) {
|
40 |
+
if ( ! $installed_addon->is_parent_licence && $installed_addon->plugin_name != 'Formidable Pro' ) {
|
41 |
+
$show_licenses = true;
|
42 |
+
break;
|
43 |
+
}
|
44 |
+
}
|
45 |
+
|
46 |
+
if ( $show_licenses ) {
|
47 |
+
$sections['licenses'] = array(
|
48 |
+
'class' => 'FrmAddonsController',
|
49 |
+
'function' => 'license_settings',
|
50 |
+
'name' => __( 'Plugin Licenses', 'formidable' ),
|
51 |
+
'ajax' => true,
|
52 |
+
);
|
53 |
+
}
|
54 |
}
|
55 |
$sections = apply_filters( 'frm_add_settings_section', $sections );
|
56 |
|
161 |
public static function settings_cta_dismiss() {
|
162 |
FrmAppHelper::permission_check( 'frm_change_settings' );
|
163 |
|
164 |
+
update_option( 'frm_lite_settings_upgrade', time(), 'no' );
|
165 |
|
166 |
wp_send_json_success();
|
167 |
}
|
classes/helpers/FrmAppHelper.php
CHANGED
@@ -11,7 +11,7 @@ class FrmAppHelper {
|
|
11 |
/**
|
12 |
* @since 2.0
|
13 |
*/
|
14 |
-
public static $plug_version = '3.04.
|
15 |
|
16 |
/**
|
17 |
* @since 1.07.02
|
@@ -409,15 +409,6 @@ class FrmAppHelper {
|
|
409 |
}
|
410 |
}
|
411 |
|
412 |
-
/**
|
413 |
-
* @deprecated 3.01
|
414 |
-
* @codeCoverageIgnore
|
415 |
-
*/
|
416 |
-
public static function sanitize_array( &$values ) {
|
417 |
-
_deprecated_function( __METHOD__, '3.01', 'FrmAppHelper::sanitize_value' );
|
418 |
-
self::sanitize_value( 'wp_kses_post', $values );
|
419 |
-
}
|
420 |
-
|
421 |
/**
|
422 |
* Sanitize the value, and allow some HTML
|
423 |
* @since 2.0
|
@@ -634,17 +625,6 @@ class FrmAppHelper {
|
|
634 |
return ( true === $value || 1 == $value || 'true' == $value || 'yes' == $value );
|
635 |
}
|
636 |
|
637 |
-
/**
|
638 |
-
* Used to filter shortcode in text widgets
|
639 |
-
*
|
640 |
-
* @deprecated 2.5.4
|
641 |
-
* @codeCoverageIgnore
|
642 |
-
*/
|
643 |
-
public static function widget_text_filter_callback( $matches ) {
|
644 |
-
_deprecated_function( __METHOD__, '2.5.4' );
|
645 |
-
return do_shortcode( $matches[0] );
|
646 |
-
}
|
647 |
-
|
648 |
public static function get_pages() {
|
649 |
$query = array(
|
650 |
'post_type' => 'page',
|
@@ -1810,8 +1790,24 @@ class FrmAppHelper {
|
|
1810 |
}
|
1811 |
|
1812 |
/**
|
1813 |
-
*
|
1814 |
*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1815 |
* @param array $settings
|
1816 |
* @param string $group
|
1817 |
*
|
@@ -1820,29 +1816,19 @@ class FrmAppHelper {
|
|
1820 |
* @codeCoverageIgnore
|
1821 |
*/
|
1822 |
public static function save_settings( $settings, $group ) {
|
1823 |
-
|
1824 |
-
return FrmDb::save_settings( $settings, $group );
|
1825 |
}
|
1826 |
|
1827 |
/**
|
1828 |
-
* Since actions are JSON encoded, we don't want any filters messing with it.
|
1829 |
-
* Remove the filters and then add them back in case any posts or views are
|
1830 |
-
* also being imported.
|
1831 |
-
*
|
1832 |
-
* Used when saving form actions and styles
|
1833 |
-
*
|
1834 |
* @since 2.0.4
|
1835 |
* @deprecated 2.05.06
|
1836 |
* @codeCoverageIgnore
|
1837 |
*/
|
1838 |
public static function save_json_post( $settings ) {
|
1839 |
-
|
1840 |
-
return FrmDb::save_json_post( $settings );
|
1841 |
}
|
1842 |
|
1843 |
/**
|
1844 |
-
* Check cache before fetching values and saving to cache
|
1845 |
-
*
|
1846 |
* @since 2.0
|
1847 |
* @deprecated 2.05.06
|
1848 |
* @codeCoverageIgnore
|
@@ -1854,8 +1840,7 @@ class FrmAppHelper {
|
|
1854 |
* @return mixed $results The cache or query results
|
1855 |
*/
|
1856 |
public static function check_cache( $cache_key, $group = '', $query = '', $type = 'get_var', $time = 300 ) {
|
1857 |
-
|
1858 |
-
return FrmDb::check_cache( $cache_key, $group, $query, $type, $time );
|
1859 |
}
|
1860 |
|
1861 |
/**
|
@@ -1863,19 +1848,15 @@ class FrmAppHelper {
|
|
1863 |
* @codeCoverageIgnore
|
1864 |
*/
|
1865 |
public static function set_cache( $cache_key, $results, $group = '', $time = 300 ) {
|
1866 |
-
|
1867 |
-
FrmDb::set_cache( $cache_key, $results, $group, $time );
|
1868 |
}
|
1869 |
|
1870 |
/**
|
1871 |
-
* Keep track of the keys cached in each group so they can be deleted
|
1872 |
-
* in Redis and Memcache
|
1873 |
* @deprecated 2.05.06
|
1874 |
* @codeCoverageIgnore
|
1875 |
*/
|
1876 |
public static function add_key_to_group_cache( $key, $group ) {
|
1877 |
-
|
1878 |
-
FrmDb::add_key_to_group_cache( $key, $group );
|
1879 |
}
|
1880 |
|
1881 |
/**
|
@@ -1883,8 +1864,7 @@ class FrmAppHelper {
|
|
1883 |
* @codeCoverageIgnore
|
1884 |
*/
|
1885 |
public static function get_group_cached_keys( $group ) {
|
1886 |
-
|
1887 |
-
return FrmDb::get_group_cached_keys( $group );
|
1888 |
}
|
1889 |
|
1890 |
/**
|
@@ -1894,8 +1874,7 @@ class FrmAppHelper {
|
|
1894 |
* @return mixed The cached value or false
|
1895 |
*/
|
1896 |
public static function check_cache_and_transient( $cache_key ) {
|
1897 |
-
|
1898 |
-
return FrmDb::check_cache( $cache_key );
|
1899 |
}
|
1900 |
|
1901 |
/**
|
@@ -1905,8 +1884,7 @@ class FrmAppHelper {
|
|
1905 |
* @param string $cache_key
|
1906 |
*/
|
1907 |
public static function delete_cache_and_transient( $cache_key, $group = 'default' ) {
|
1908 |
-
|
1909 |
-
FrmDb::delete_cache_and_transient( $cache_key, $group );
|
1910 |
}
|
1911 |
|
1912 |
/**
|
@@ -1917,13 +1895,10 @@ class FrmAppHelper {
|
|
1917 |
* @param string $group The name of the cache group
|
1918 |
*/
|
1919 |
public static function cache_delete_group( $group ) {
|
1920 |
-
|
1921 |
-
FrmDb::cache_delete_group( $group );
|
1922 |
}
|
1923 |
|
1924 |
/**
|
1925 |
-
* Added for < WP 4.0 compatability
|
1926 |
-
*
|
1927 |
* @since 1.07.10
|
1928 |
* @deprecated 2.05.06
|
1929 |
* @codeCoverageIgnore
|
@@ -1932,8 +1907,7 @@ class FrmAppHelper {
|
|
1932 |
* @return string The escaped value
|
1933 |
*/
|
1934 |
public static function esc_like( $term ) {
|
1935 |
-
|
1936 |
-
return FrmDb::esc_like( $term );
|
1937 |
}
|
1938 |
|
1939 |
/**
|
@@ -1942,18 +1916,15 @@ class FrmAppHelper {
|
|
1942 |
* @codeCoverageIgnore
|
1943 |
*/
|
1944 |
public static function esc_order( $order_query ) {
|
1945 |
-
|
1946 |
-
return FrmDb::esc_order( $order_query );
|
1947 |
}
|
1948 |
|
1949 |
/**
|
1950 |
-
* Make sure this is ordering by either ASC or DESC
|
1951 |
* @deprecated 2.05.06
|
1952 |
* @codeCoverageIgnore
|
1953 |
*/
|
1954 |
public static function esc_order_by( &$order_by ) {
|
1955 |
-
|
1956 |
-
FrmDb::esc_order_by( $order_by );
|
1957 |
}
|
1958 |
|
1959 |
/**
|
@@ -1962,19 +1933,16 @@ class FrmAppHelper {
|
|
1962 |
* @codeCoverageIgnore
|
1963 |
*/
|
1964 |
public static function esc_limit( $limit ) {
|
1965 |
-
|
1966 |
-
return FrmDb::esc_limit( $limit );
|
1967 |
}
|
1968 |
|
1969 |
/**
|
1970 |
-
* Get an array of values ready to go through $wpdb->prepare
|
1971 |
* @since 2.0
|
1972 |
* @deprecated 2.05.06
|
1973 |
* @codeCoverageIgnore
|
1974 |
*/
|
1975 |
public static function prepare_array_values( $array, $type = '%s' ) {
|
1976 |
-
|
1977 |
-
return FrmDb::prepare_array_values( $array, $type );
|
1978 |
}
|
1979 |
|
1980 |
/**
|
@@ -1982,7 +1950,6 @@ class FrmAppHelper {
|
|
1982 |
* @codeCoverageIgnore
|
1983 |
*/
|
1984 |
public static function prepend_and_or_where( $starts_with = ' WHERE ', $where = '' ) {
|
1985 |
-
|
1986 |
-
return FrmDb::prepend_and_or_where( $starts_with, $where );
|
1987 |
}
|
1988 |
}
|
11 |
/**
|
12 |
* @since 2.0
|
13 |
*/
|
14 |
+
public static $plug_version = '3.04.03';
|
15 |
|
16 |
/**
|
17 |
* @since 1.07.02
|
409 |
}
|
410 |
}
|
411 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
412 |
/**
|
413 |
* Sanitize the value, and allow some HTML
|
414 |
* @since 2.0
|
625 |
return ( true === $value || 1 == $value || 'true' == $value || 'yes' == $value );
|
626 |
}
|
627 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
628 |
public static function get_pages() {
|
629 |
$query = array(
|
630 |
'post_type' => 'page',
|
1790 |
}
|
1791 |
|
1792 |
/**
|
1793 |
+
* Used to filter shortcode in text widgets
|
1794 |
*
|
1795 |
+
* @deprecated 2.5.4
|
1796 |
+
* @codeCoverageIgnore
|
1797 |
+
*/
|
1798 |
+
public static function widget_text_filter_callback( $matches ) {
|
1799 |
+
return FrmDeprecated::widget_text_filter_callback( $matches );
|
1800 |
+
}
|
1801 |
+
|
1802 |
+
/**
|
1803 |
+
* @deprecated 3.01
|
1804 |
+
* @codeCoverageIgnore
|
1805 |
+
*/
|
1806 |
+
public static function sanitize_array( &$values ) {
|
1807 |
+
FrmDeprecated::sanitize_array( $values );
|
1808 |
+
}
|
1809 |
+
|
1810 |
+
/**
|
1811 |
* @param array $settings
|
1812 |
* @param string $group
|
1813 |
*
|
1816 |
* @codeCoverageIgnore
|
1817 |
*/
|
1818 |
public static function save_settings( $settings, $group ) {
|
1819 |
+
return FrmDeprecated::save_settings( $settings, $group );
|
|
|
1820 |
}
|
1821 |
|
1822 |
/**
|
|
|
|
|
|
|
|
|
|
|
|
|
1823 |
* @since 2.0.4
|
1824 |
* @deprecated 2.05.06
|
1825 |
* @codeCoverageIgnore
|
1826 |
*/
|
1827 |
public static function save_json_post( $settings ) {
|
1828 |
+
return FrmDeprecated::save_json_post( $settings );
|
|
|
1829 |
}
|
1830 |
|
1831 |
/**
|
|
|
|
|
1832 |
* @since 2.0
|
1833 |
* @deprecated 2.05.06
|
1834 |
* @codeCoverageIgnore
|
1840 |
* @return mixed $results The cache or query results
|
1841 |
*/
|
1842 |
public static function check_cache( $cache_key, $group = '', $query = '', $type = 'get_var', $time = 300 ) {
|
1843 |
+
return FrmDeprecated::check_cache( $cache_key, $group, $query, $type, $time );
|
|
|
1844 |
}
|
1845 |
|
1846 |
/**
|
1848 |
* @codeCoverageIgnore
|
1849 |
*/
|
1850 |
public static function set_cache( $cache_key, $results, $group = '', $time = 300 ) {
|
1851 |
+
return FrmDeprecated::set_cache( $cache_key, $results, $group, $time );
|
|
|
1852 |
}
|
1853 |
|
1854 |
/**
|
|
|
|
|
1855 |
* @deprecated 2.05.06
|
1856 |
* @codeCoverageIgnore
|
1857 |
*/
|
1858 |
public static function add_key_to_group_cache( $key, $group ) {
|
1859 |
+
FrmDeprecated::add_key_to_group_cache( $key, $group );
|
|
|
1860 |
}
|
1861 |
|
1862 |
/**
|
1864 |
* @codeCoverageIgnore
|
1865 |
*/
|
1866 |
public static function get_group_cached_keys( $group ) {
|
1867 |
+
return FrmDeprecated::get_group_cached_keys( $group );
|
|
|
1868 |
}
|
1869 |
|
1870 |
/**
|
1874 |
* @return mixed The cached value or false
|
1875 |
*/
|
1876 |
public static function check_cache_and_transient( $cache_key ) {
|
1877 |
+
return FrmDeprecated::check_cache( $cache_key );
|
|
|
1878 |
}
|
1879 |
|
1880 |
/**
|
1884 |
* @param string $cache_key
|
1885 |
*/
|
1886 |
public static function delete_cache_and_transient( $cache_key, $group = 'default' ) {
|
1887 |
+
FrmDeprecated::delete_cache_and_transient( $cache_key, $group );
|
|
|
1888 |
}
|
1889 |
|
1890 |
/**
|
1895 |
* @param string $group The name of the cache group
|
1896 |
*/
|
1897 |
public static function cache_delete_group( $group ) {
|
1898 |
+
FrmDeprecated::cache_delete_group( $group );
|
|
|
1899 |
}
|
1900 |
|
1901 |
/**
|
|
|
|
|
1902 |
* @since 1.07.10
|
1903 |
* @deprecated 2.05.06
|
1904 |
* @codeCoverageIgnore
|
1907 |
* @return string The escaped value
|
1908 |
*/
|
1909 |
public static function esc_like( $term ) {
|
1910 |
+
return FrmDeprecated::esc_like( $term );
|
|
|
1911 |
}
|
1912 |
|
1913 |
/**
|
1916 |
* @codeCoverageIgnore
|
1917 |
*/
|
1918 |
public static function esc_order( $order_query ) {
|
1919 |
+
return FrmDeprecated::esc_order( $order_query );
|
|
|
1920 |
}
|
1921 |
|
1922 |
/**
|
|
|
1923 |
* @deprecated 2.05.06
|
1924 |
* @codeCoverageIgnore
|
1925 |
*/
|
1926 |
public static function esc_order_by( &$order_by ) {
|
1927 |
+
FrmDeprecated::esc_order_by( $order_by );
|
|
|
1928 |
}
|
1929 |
|
1930 |
/**
|
1933 |
* @codeCoverageIgnore
|
1934 |
*/
|
1935 |
public static function esc_limit( $limit ) {
|
1936 |
+
return FrmDeprecated::esc_limit( $limit );
|
|
|
1937 |
}
|
1938 |
|
1939 |
/**
|
|
|
1940 |
* @since 2.0
|
1941 |
* @deprecated 2.05.06
|
1942 |
* @codeCoverageIgnore
|
1943 |
*/
|
1944 |
public static function prepare_array_values( $array, $type = '%s' ) {
|
1945 |
+
return FrmDeprecated::prepare_array_values( $array, $type );
|
|
|
1946 |
}
|
1947 |
|
1948 |
/**
|
1950 |
* @codeCoverageIgnore
|
1951 |
*/
|
1952 |
public static function prepend_and_or_where( $starts_with = ' WHERE ', $where = '' ) {
|
1953 |
+
return FrmDeprecated::prepend_and_or_where( $starts_with, $where );
|
|
|
1954 |
}
|
1955 |
}
|
classes/helpers/FrmFieldsHelper.php
CHANGED
@@ -321,24 +321,6 @@ class FrmFieldsHelper {
|
|
321 |
}
|
322 |
}
|
323 |
|
324 |
-
/**
|
325 |
-
* @deprecated 3.0
|
326 |
-
* @codeCoverageIgnore
|
327 |
-
*
|
328 |
-
* @param string $html
|
329 |
-
* @param array $field
|
330 |
-
* @param array $errors
|
331 |
-
* @param object $form
|
332 |
-
* @param array $args
|
333 |
-
*
|
334 |
-
* @return string
|
335 |
-
*/
|
336 |
-
public static function replace_shortcodes( $html, $field, $errors = array(), $form = false, $args = array() ) {
|
337 |
-
_deprecated_function( __FUNCTION__, '3.0', 'FrmFieldType::prepare_field_html' );
|
338 |
-
$field_obj = FrmFieldFactory::get_field_type( $field['type'], $field );
|
339 |
-
return $field_obj->prepare_field_html( compact( 'errors', 'form' ) );
|
340 |
-
}
|
341 |
-
|
342 |
/**
|
343 |
* @since 3.0
|
344 |
*
|
@@ -390,24 +372,6 @@ class FrmFieldsHelper {
|
|
390 |
return ! in_array( $type, array( 'select', 'radio', 'checkbox', 'hidden', 'file' ) );
|
391 |
}
|
392 |
|
393 |
-
/**
|
394 |
-
* @deprecated 3.0
|
395 |
-
* @codeCoverageIgnore
|
396 |
-
*/
|
397 |
-
public static function remove_inline_conditions( $no_vars, $code, $replace_with, &$html ) {
|
398 |
-
_deprecated_function( __FUNCTION__, '3.0', 'FrmShortcodeHelper::remove_inline_conditions' );
|
399 |
-
FrmShortcodeHelper::remove_inline_conditions( $no_vars, $code, $replace_with, $html );
|
400 |
-
}
|
401 |
-
|
402 |
-
/**
|
403 |
-
* @deprecated 3.0
|
404 |
-
* @codeCoverageIgnore
|
405 |
-
*/
|
406 |
-
public static function get_shortcode_tag( $shortcodes, $short_key, $args ) {
|
407 |
-
_deprecated_function( __FUNCTION__, '3.0', 'FrmShortcodeHelper::get_shortcode_tag' );
|
408 |
-
return FrmShortcodeHelper::get_shortcode_tag( $shortcodes, $short_key, $args );
|
409 |
-
}
|
410 |
-
|
411 |
public static function get_checkbox_id( $field, $opt_key ) {
|
412 |
$id = $field['id'];
|
413 |
if ( isset( $field['in_section'] ) && $field['in_section'] ) {
|
@@ -416,14 +380,6 @@ class FrmFieldsHelper {
|
|
416 |
return 'frm_checkbox_' . $id . '-' . $opt_key;
|
417 |
}
|
418 |
|
419 |
-
/**
|
420 |
-
* @deprecated 3.0
|
421 |
-
* @codeCoverageIgnore
|
422 |
-
*/
|
423 |
-
public static function display_recaptcha( $field ) {
|
424 |
-
_deprecated_function( __FUNCTION__, '3.0', 'FrmFieldCaptcha::field_input' );
|
425 |
-
}
|
426 |
-
|
427 |
public static function show_single_option( $field ) {
|
428 |
if ( ! is_array( $field['options'] ) ) {
|
429 |
return;
|
@@ -1356,32 +1312,55 @@ class FrmFieldsHelper {
|
|
1356 |
* @deprecated 3.0
|
1357 |
* @codeCoverageIgnore
|
1358 |
*/
|
1359 |
-
public static function
|
1360 |
-
|
1361 |
-
|
1362 |
-
$field_options = self::get_default_field_options( $type );
|
1363 |
-
} else {
|
1364 |
-
_deprecated_function( __FUNCTION__, '3.0', 'FrmFieldHelper::get_default_field' );
|
1365 |
-
$field_options = self::get_default_field( $type );
|
1366 |
-
}
|
1367 |
|
1368 |
-
|
|
|
|
|
|
|
|
|
|
|
1369 |
}
|
1370 |
|
1371 |
/**
|
1372 |
-
* @deprecated
|
1373 |
* @codeCoverageIgnore
|
1374 |
*/
|
1375 |
-
public static function
|
1376 |
-
|
|
|
1377 |
|
1378 |
-
|
1379 |
-
|
1380 |
-
|
1381 |
-
|
1382 |
-
|
1383 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1384 |
|
1385 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1386 |
}
|
1387 |
}
|
321 |
}
|
322 |
}
|
323 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
324 |
/**
|
325 |
* @since 3.0
|
326 |
*
|
372 |
return ! in_array( $type, array( 'select', 'radio', 'checkbox', 'hidden', 'file' ) );
|
373 |
}
|
374 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
375 |
public static function get_checkbox_id( $field, $opt_key ) {
|
376 |
$id = $field['id'];
|
377 |
if ( isset( $field['in_section'] ) && $field['in_section'] ) {
|
380 |
return 'frm_checkbox_' . $id . '-' . $opt_key;
|
381 |
}
|
382 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
383 |
public static function show_single_option( $field ) {
|
384 |
if ( ! is_array( $field['options'] ) ) {
|
385 |
return;
|
1312 |
* @deprecated 3.0
|
1313 |
* @codeCoverageIgnore
|
1314 |
*/
|
1315 |
+
public static function display_recaptcha() {
|
1316 |
+
_deprecated_function( __FUNCTION__, '3.0', 'FrmFieldCaptcha::field_input' );
|
1317 |
+
}
|
|
|
|
|
|
|
|
|
|
|
1318 |
|
1319 |
+
/**
|
1320 |
+
* @deprecated 3.0
|
1321 |
+
* @codeCoverageIgnore
|
1322 |
+
*/
|
1323 |
+
public static function remove_inline_conditions( $no_vars, $code, $replace_with, &$html ) {
|
1324 |
+
FrmDeprecated::remove_inline_conditions( $no_vars, $code, $replace_with, $html );
|
1325 |
}
|
1326 |
|
1327 |
/**
|
1328 |
+
* @deprecated 3.0
|
1329 |
* @codeCoverageIgnore
|
1330 |
*/
|
1331 |
+
public static function get_shortcode_tag( $shortcodes, $short_key, $args ) {
|
1332 |
+
return FrmDeprecated::get_shortcode_tag( $shortcodes, $short_key, $args );
|
1333 |
+
}
|
1334 |
|
1335 |
+
/**
|
1336 |
+
* @deprecated 3.0
|
1337 |
+
* @codeCoverageIgnore
|
1338 |
+
*
|
1339 |
+
* @param string $html
|
1340 |
+
* @param array $field
|
1341 |
+
* @param array $errors
|
1342 |
+
* @param object $form
|
1343 |
+
* @param array $args
|
1344 |
+
*
|
1345 |
+
* @return string
|
1346 |
+
*/
|
1347 |
+
public static function replace_shortcodes( $html, $field, $errors = array(), $form = false, $args = array() ) {
|
1348 |
+
return FrmDeprecated::replace_shortcodes( $html, $field, $errors, $form, $args );
|
1349 |
+
}
|
1350 |
|
1351 |
+
/**
|
1352 |
+
* @deprecated 3.0
|
1353 |
+
* @codeCoverageIgnore
|
1354 |
+
*/
|
1355 |
+
public static function get_default_field_opts( $type, $field = null, $limit = false ) {
|
1356 |
+
return FrmDeprecated::get_default_field_opts( $type, $field, $limit );
|
1357 |
+
}
|
1358 |
+
|
1359 |
+
/**
|
1360 |
+
* @deprecated 2.02.07
|
1361 |
+
* @codeCoverageIgnore
|
1362 |
+
*/
|
1363 |
+
public static function dropdown_categories( $args ) {
|
1364 |
+
return FrmDeprecated::dropdown_categories( $args );
|
1365 |
}
|
1366 |
}
|
classes/helpers/FrmStylesHelper.php
CHANGED
@@ -1,106 +1,6 @@
|
|
1 |
<?php
|
2 |
class FrmStylesHelper {
|
3 |
|
4 |
-
/**
|
5 |
-
* @deprecated 3.02.03
|
6 |
-
* @codeCoverageIgnore
|
7 |
-
*/
|
8 |
-
public static function jquery_themes() {
|
9 |
-
_deprecated_function( __METHOD__, '3.02.03', 'FrmProStylesController::jquery_themes' );
|
10 |
-
|
11 |
-
$themes = array(
|
12 |
-
'ui-lightness' => 'UI Lightness',
|
13 |
-
'ui-darkness' => 'UI Darkness',
|
14 |
-
'smoothness' => 'Smoothness',
|
15 |
-
'start' => 'Start',
|
16 |
-
'redmond' => 'Redmond',
|
17 |
-
'sunny' => 'Sunny',
|
18 |
-
'overcast' => 'Overcast',
|
19 |
-
'le-frog' => 'Le Frog',
|
20 |
-
'flick' => 'Flick',
|
21 |
-
'pepper-grinder' => 'Pepper Grinder',
|
22 |
-
'eggplant' => 'Eggplant',
|
23 |
-
'dark-hive' => 'Dark Hive',
|
24 |
-
'cupertino' => 'Cupertino',
|
25 |
-
'south-street' => 'South Street',
|
26 |
-
'blitzer' => 'Blitzer',
|
27 |
-
'humanity' => 'Humanity',
|
28 |
-
'hot-sneaks' => 'Hot Sneaks',
|
29 |
-
'excite-bike' => 'Excite Bike',
|
30 |
-
'vader' => 'Vader',
|
31 |
-
'dot-luv' => 'Dot Luv',
|
32 |
-
'mint-choc' => 'Mint Choc',
|
33 |
-
'black-tie' => 'Black Tie',
|
34 |
-
'trontastic' => 'Trontastic',
|
35 |
-
'swanky-purse' => 'Swanky Purse',
|
36 |
-
);
|
37 |
-
|
38 |
-
$themes = apply_filters( 'frm_jquery_themes', $themes );
|
39 |
-
return $themes;
|
40 |
-
}
|
41 |
-
|
42 |
-
/**
|
43 |
-
* @deprecated 3.02.03
|
44 |
-
* @codeCoverageIgnore
|
45 |
-
*/
|
46 |
-
public static function jquery_css_url( $theme_css ) {
|
47 |
-
_deprecated_function( __METHOD__, '3.02.03', 'FrmProStylesController::jquery_css_url' );
|
48 |
-
|
49 |
-
if ( $theme_css == -1 ) {
|
50 |
-
return;
|
51 |
-
}
|
52 |
-
|
53 |
-
if ( ! $theme_css || $theme_css == '' || $theme_css == 'ui-lightness' ) {
|
54 |
-
$css_file = FrmAppHelper::plugin_url() . '/css/ui-lightness/jquery-ui.css';
|
55 |
-
} elseif ( preg_match( '/^http.?:\/\/.*\..*$/', $theme_css ) ) {
|
56 |
-
$css_file = $theme_css;
|
57 |
-
} else {
|
58 |
-
$uploads = self::get_upload_base();
|
59 |
-
$file_path = '/formidable/css/' . $theme_css . '/jquery-ui.css';
|
60 |
-
if ( file_exists( $uploads['basedir'] . $file_path ) ) {
|
61 |
-
$css_file = $uploads['baseurl'] . $file_path;
|
62 |
-
} else {
|
63 |
-
$css_file = FrmAppHelper::jquery_ui_base_url() . '/themes/' . $theme_css . '/jquery-ui.min.css';
|
64 |
-
}
|
65 |
-
}
|
66 |
-
|
67 |
-
return $css_file;
|
68 |
-
}
|
69 |
-
|
70 |
-
/**
|
71 |
-
* @deprecated 3.02.03
|
72 |
-
* @codeCoverageIgnore
|
73 |
-
*/
|
74 |
-
public static function enqueue_jquery_css() {
|
75 |
-
_deprecated_function( __METHOD__, '3.02.03', 'FrmProStylesController::enqueue_jquery_css' );
|
76 |
-
|
77 |
-
$form = self::get_form_for_page();
|
78 |
-
$theme_css = FrmStylesController::get_style_val( 'theme_css', $form );
|
79 |
-
if ( $theme_css != -1 ) {
|
80 |
-
wp_enqueue_style( 'jquery-theme', self::jquery_css_url( $theme_css ), array(), FrmAppHelper::plugin_version() );
|
81 |
-
}
|
82 |
-
}
|
83 |
-
|
84 |
-
/**
|
85 |
-
* @deprecated 3.02.03
|
86 |
-
* @codeCoverageIgnore
|
87 |
-
*/
|
88 |
-
public static function get_form_for_page() {
|
89 |
-
_deprecated_function( __METHOD__, '3.02.03' );
|
90 |
-
|
91 |
-
global $frm_vars;
|
92 |
-
$form_id = 'default';
|
93 |
-
if ( ! empty( $frm_vars['forms_loaded'] ) ) {
|
94 |
-
foreach ( $frm_vars['forms_loaded'] as $form ) {
|
95 |
-
if ( is_object( $form ) ) {
|
96 |
-
$form_id = $form->id;
|
97 |
-
break;
|
98 |
-
}
|
99 |
-
}
|
100 |
-
}
|
101 |
-
return $form_id;
|
102 |
-
}
|
103 |
-
|
104 |
public static function get_upload_base() {
|
105 |
$uploads = wp_upload_dir();
|
106 |
if ( is_ssl() && ! preg_match( '/^https:\/\/.*\..*$/', $uploads['baseurl'] ) ) {
|
@@ -429,7 +329,38 @@ class FrmStylesHelper {
|
|
429 |
* @codeCoverageIgnore
|
430 |
*/
|
431 |
public static function get_sigle_label_postitions() {
|
432 |
-
|
433 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
434 |
}
|
435 |
}
|
1 |
<?php
|
2 |
class FrmStylesHelper {
|
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
public static function get_upload_base() {
|
5 |
$uploads = wp_upload_dir();
|
6 |
if ( is_ssl() && ! preg_match( '/^https:\/\/.*\..*$/', $uploads['baseurl'] ) ) {
|
329 |
* @codeCoverageIgnore
|
330 |
*/
|
331 |
public static function get_sigle_label_postitions() {
|
332 |
+
return FrmDeprecated::get_single_label_positions();
|
333 |
+
}
|
334 |
+
|
335 |
+
/**
|
336 |
+
* @deprecated 3.02.03
|
337 |
+
* @codeCoverageIgnore
|
338 |
+
*/
|
339 |
+
public static function jquery_themes() {
|
340 |
+
return FrmDeprecated::jquery_themes();
|
341 |
+
}
|
342 |
+
|
343 |
+
/**
|
344 |
+
* @deprecated 3.02.03
|
345 |
+
* @codeCoverageIgnore
|
346 |
+
*/
|
347 |
+
public static function jquery_css_url( $theme_css ) {
|
348 |
+
return FrmDeprecated::jquery_css_url( $theme_css );
|
349 |
+
}
|
350 |
+
|
351 |
+
/**
|
352 |
+
* @deprecated 3.02.03
|
353 |
+
* @codeCoverageIgnore
|
354 |
+
*/
|
355 |
+
public static function enqueue_jquery_css() {
|
356 |
+
FrmDeprecated::enqueue_jquery_css();
|
357 |
+
}
|
358 |
+
|
359 |
+
/**
|
360 |
+
* @deprecated 3.02.03
|
361 |
+
* @codeCoverageIgnore
|
362 |
+
*/
|
363 |
+
public static function get_form_for_page() {
|
364 |
+
return FrmDeprecated::get_form_for_page();
|
365 |
}
|
366 |
}
|
classes/models/FrmAddon.php
CHANGED
@@ -14,7 +14,9 @@ class FrmAddon {
|
|
14 |
public $option_name;
|
15 |
public $version;
|
16 |
public $author = 'Strategy11';
|
17 |
-
|
|
|
|
|
18 |
protected $get_beta = false;
|
19 |
|
20 |
public function __construct() {
|
@@ -57,35 +59,101 @@ class FrmAddon {
|
|
57 |
$this->is_license_revoked();
|
58 |
$license = $this->license;
|
59 |
|
60 |
-
|
61 |
-
add_action( 'after_plugin_row_' . plugin_basename( $this->plugin_file ), array( $this, 'show_license_message' ), 10, 2 );
|
62 |
-
} else {
|
63 |
|
64 |
-
|
65 |
-
$api_data = array(
|
66 |
-
'version' => $this->version,
|
67 |
-
'license' => $license,
|
68 |
-
'author' => $this->author,
|
69 |
-
'beta' => $this->get_beta,
|
70 |
-
);
|
71 |
-
if ( is_numeric( $this->download_id ) ) {
|
72 |
-
$api_data['item_id'] = $this->download_id;
|
73 |
-
}
|
74 |
|
75 |
-
|
76 |
-
|
77 |
-
remove_filter( 'plugins_api', array( $edd, 'plugins_api_filter' ), 10, 3 );
|
78 |
}
|
79 |
|
80 |
add_filter( 'site_transient_update_plugins', array( &$this, 'clear_expired_download' ) );
|
81 |
}
|
82 |
}
|
83 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
84 |
public function get_license() {
|
|
|
|
|
|
|
|
|
|
|
85 |
$license = trim( get_option( $this->option_name . 'key' ) );
|
86 |
if ( empty( $license ) ) {
|
87 |
$license = $this->activate_defined_license();
|
88 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
89 |
return $license;
|
90 |
}
|
91 |
|
@@ -136,29 +204,75 @@ class FrmAddon {
|
|
136 |
return get_option( $this->option_name . 'active' );
|
137 |
}
|
138 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
139 |
public function clear_license() {
|
140 |
delete_option( $this->option_name . 'active' );
|
141 |
delete_option( $this->option_name . 'key' );
|
142 |
delete_site_option( $this->transient_key() );
|
143 |
delete_option( $this->transient_key() );
|
144 |
-
|
145 |
}
|
146 |
|
147 |
public function set_active( $is_active ) {
|
148 |
update_option( $this->option_name . 'active', $is_active );
|
149 |
-
|
150 |
FrmAppHelper::save_combined_js();
|
151 |
}
|
152 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
153 |
public function show_license_message( $file, $plugin ) {
|
154 |
-
$
|
155 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
156 |
|
157 |
-
|
158 |
-
|
159 |
-
$id =
|
160 |
-
echo
|
161 |
-
echo '</
|
|
|
162 |
}
|
163 |
|
164 |
public function clear_expired_download( $transient ) {
|
@@ -172,26 +286,14 @@ class FrmAddon {
|
|
172 |
unset( $transient->response[ $this->plugin_folder ] );
|
173 |
}
|
174 |
} elseif ( isset( $transient->response ) && isset( $transient->response[ $this->plugin_folder ] ) ) {
|
175 |
-
$
|
176 |
-
$version_info = get_option( $cache_key );
|
177 |
|
178 |
-
|
179 |
-
|
180 |
-
if ( is_array( $version_info ) && isset( $version_info['value'] ) ) {
|
181 |
-
$version_info = json_decode( $version_info['value'] );
|
182 |
-
$version_info->new_version = trim( $version_info->new_version, 'p' );
|
183 |
-
}
|
184 |
-
|
185 |
-
if ( false !== $version_info && version_compare( $version_info->new_version, $this->version, '>' ) ) {
|
186 |
-
$transient->response[ $this->plugin_folder ] = $version_info;
|
187 |
-
} else {
|
188 |
-
delete_option( $cache_key );
|
189 |
if ( ! $this->has_been_cleared() ) {
|
190 |
-
// if the transient has expired, clear the update and trigger it again
|
191 |
$this->cleared_plugins();
|
192 |
$this->manually_queue_update();
|
193 |
}
|
194 |
-
|
195 |
unset( $transient->response[ $this->plugin_folder ] );
|
196 |
}
|
197 |
}
|
@@ -199,13 +301,53 @@ class FrmAddon {
|
|
199 |
return $transient;
|
200 |
}
|
201 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
202 |
|
203 |
/**
|
204 |
-
*
|
|
|
|
|
205 |
*/
|
206 |
-
|
207 |
-
$
|
208 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
209 |
}
|
210 |
|
211 |
/**
|
@@ -215,12 +357,25 @@ class FrmAddon {
|
|
215 |
* @since 2.05.05
|
216 |
*/
|
217 |
private function clear_old_plugin_version( &$version_info ) {
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
224 |
}
|
225 |
}
|
226 |
}
|
14 |
public $option_name;
|
15 |
public $version;
|
16 |
public $author = 'Strategy11';
|
17 |
+
public $is_parent_licence = false;
|
18 |
+
private $is_expired_addon = false;
|
19 |
+
public $license;
|
20 |
protected $get_beta = false;
|
21 |
|
22 |
public function __construct() {
|
59 |
$this->is_license_revoked();
|
60 |
$license = $this->license;
|
61 |
|
62 |
+
add_action( 'after_plugin_row_' . plugin_basename( $this->plugin_file ), array( $this, 'maybe_show_license_message' ), 10, 2 );
|
|
|
|
|
63 |
|
64 |
+
if ( ! empty( $license ) ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
65 |
|
66 |
+
if ( 'formidable/formidable.php' !== $this->plugin_folder ) {
|
67 |
+
add_filter( 'plugins_api', array( &$this, 'plugins_api_filter' ), 10, 3 );
|
|
|
68 |
}
|
69 |
|
70 |
add_filter( 'site_transient_update_plugins', array( &$this, 'clear_expired_download' ) );
|
71 |
}
|
72 |
}
|
73 |
|
74 |
+
/**
|
75 |
+
* Updates information on the "View version x.x details" page with custom data.
|
76 |
+
*
|
77 |
+
* @uses api_request()
|
78 |
+
*
|
79 |
+
* @param mixed $_data
|
80 |
+
* @param string $_action
|
81 |
+
* @param object $_args
|
82 |
+
* @return object $_data
|
83 |
+
*/
|
84 |
+
public function plugins_api_filter( $_data, $_action = '', $_args = null ) {
|
85 |
+
|
86 |
+
if ( $_action != 'plugin_information' ) {
|
87 |
+
return $_data;
|
88 |
+
}
|
89 |
+
|
90 |
+
$slug = basename( $this->plugin_file, '.php' );
|
91 |
+
if ( ! isset( $_args->slug ) || $_args->slug != $slug ) {
|
92 |
+
return $_data;
|
93 |
+
}
|
94 |
+
|
95 |
+
$item_id = $this->download_id;
|
96 |
+
if ( empty( $item_id ) ) {
|
97 |
+
$_data = array(
|
98 |
+
'name' => $this->plugin_name,
|
99 |
+
'excerpt' => '',
|
100 |
+
'changelog' => 'See the full changelog at <a href="' . esc_url( $this->store_url . '/changelog/' ) . '"></a>',
|
101 |
+
'banners' => array(
|
102 |
+
'high' => '',
|
103 |
+
'low' => 'https://ps.w.org/formidable/assets/banner-1544x500.png',
|
104 |
+
),
|
105 |
+
);
|
106 |
+
} else {
|
107 |
+
$plugins = FrmAddonsController::get_addon_info( $this->license );
|
108 |
+
$_data = $plugins[ $item_id ];
|
109 |
+
}
|
110 |
+
|
111 |
+
$_data['sections'] = array(
|
112 |
+
'description' => $_data['excerpt'],
|
113 |
+
'changelog' => $_data['changelog'],
|
114 |
+
);
|
115 |
+
$_data['author'] = '<a href="' . esc_url( $this->store_url ) . '">' . esc_html( $this->author ) . '</a>';
|
116 |
+
$_data['homepage'] = $this->store_url;
|
117 |
+
|
118 |
+
return (object) $_data;
|
119 |
+
}
|
120 |
+
|
121 |
public function get_license() {
|
122 |
+
$license = $this->maybe_get_pro_license();
|
123 |
+
if ( ! empty( $license ) ) {
|
124 |
+
return $license;
|
125 |
+
}
|
126 |
+
|
127 |
$license = trim( get_option( $this->option_name . 'key' ) );
|
128 |
if ( empty( $license ) ) {
|
129 |
$license = $this->activate_defined_license();
|
130 |
}
|
131 |
+
|
132 |
+
return $license;
|
133 |
+
}
|
134 |
+
|
135 |
+
/**
|
136 |
+
* @since 3.04.03
|
137 |
+
*/
|
138 |
+
protected function maybe_get_pro_license() {
|
139 |
+
// prevent a loop if $this is the pro plugin
|
140 |
+
$get_license = FrmAppHelper::pro_is_installed() && is_callable( 'FrmProAppHelper::get_updater' ) && $this->plugin_name != 'Formidable Pro';
|
141 |
+
|
142 |
+
if ( ! $get_license ) {
|
143 |
+
return false;
|
144 |
+
}
|
145 |
+
|
146 |
+
$frmpro_updater = FrmAddonsController::get_pro_updater();
|
147 |
+
$license = $frmpro_updater->license;
|
148 |
+
if ( empty( $license ) ) {
|
149 |
+
return false;
|
150 |
+
}
|
151 |
+
|
152 |
+
$this->get_api_info( $license );
|
153 |
+
if ( ! $this->is_parent_licence ) {
|
154 |
+
$license = false;
|
155 |
+
}
|
156 |
+
|
157 |
return $license;
|
158 |
}
|
159 |
|
204 |
return get_option( $this->option_name . 'active' );
|
205 |
}
|
206 |
|
207 |
+
/**
|
208 |
+
* @since 3.04.03
|
209 |
+
* @param array error
|
210 |
+
*/
|
211 |
+
public function maybe_clear_license( $error ) {
|
212 |
+
if ( $error['code'] === 'disabled' && $error['license'] === $this->license ) {
|
213 |
+
$this->clear_license();
|
214 |
+
}
|
215 |
+
}
|
216 |
+
|
217 |
public function clear_license() {
|
218 |
delete_option( $this->option_name . 'active' );
|
219 |
delete_option( $this->option_name . 'key' );
|
220 |
delete_site_option( $this->transient_key() );
|
221 |
delete_option( $this->transient_key() );
|
222 |
+
$this->delete_cache();
|
223 |
}
|
224 |
|
225 |
public function set_active( $is_active ) {
|
226 |
update_option( $this->option_name . 'active', $is_active );
|
227 |
+
$this->delete_cache();
|
228 |
FrmAppHelper::save_combined_js();
|
229 |
}
|
230 |
|
231 |
+
/**
|
232 |
+
* @since 3.04.03
|
233 |
+
*/
|
234 |
+
protected function delete_cache() {
|
235 |
+
delete_transient( 'frm_api_licence' );
|
236 |
+
delete_option( FrmAddonsController::get_cache_key( $this->license ) );
|
237 |
+
}
|
238 |
+
|
239 |
+
/**
|
240 |
+
* The Pro version includes the show_license_message function.
|
241 |
+
* We need an extra check before we allow it to show a message.
|
242 |
+
*
|
243 |
+
* @since 3.04.03
|
244 |
+
*/
|
245 |
+
public function maybe_show_license_message( $file, $plugin ) {
|
246 |
+
if ( $this->is_expired_addon || isset( $plugin['package'] ) ) {
|
247 |
+
// let's not show a ton of duplicate messages
|
248 |
+
return;
|
249 |
+
}
|
250 |
+
|
251 |
+
$this->show_license_message( $file, $plugin );
|
252 |
+
}
|
253 |
+
|
254 |
public function show_license_message( $file, $plugin ) {
|
255 |
+
$message = '';
|
256 |
+
if ( empty( $this->license ) ) {
|
257 |
+
/* translators: %1$s: Plugin name, %2$s: Start link HTML, %3$s: end link HTML */
|
258 |
+
$message = sprintf( esc_html__( 'Your %1$s license key is missing. Please add it on the %2$slicenses page%3$s.', 'formidable' ), esc_html( $this->plugin_name ), '<a href="' . esc_url( admin_url( 'admin.php?page=formidable-settings&t=licenses_settings' ) ) . '">', '</a>' );
|
259 |
+
} else {
|
260 |
+
$errors = FrmAddonsController::error_for_license( $this->license );
|
261 |
+
if ( ! empty( $errors ) ) {
|
262 |
+
$message = reset( $errors );
|
263 |
+
}
|
264 |
+
}
|
265 |
+
|
266 |
+
if ( empty( $message ) ) {
|
267 |
+
return;
|
268 |
+
}
|
269 |
|
270 |
+
$wp_list_table = _get_list_table( 'WP_Plugins_List_Table' );
|
271 |
+
$id = sanitize_title( $plugin['Name'] ) . '-next';
|
272 |
+
echo '<tr class="plugin-update-tr active" id="' . esc_attr( $id ) . '"><td colspan="' . esc_attr( $wp_list_table->get_column_count() ) . '" class="plugin-update colspanchange"><div class="update-message notice error inline notice-error notice-alt"><p>';
|
273 |
+
echo FrmAppHelper::kses( $message, 'a' ); // WPCS: XSS ok.
|
274 |
+
echo '<script type="text/javascript">var d = document.getElementById("' . esc_attr( $id ) . '").previousSibling;if ( d !== null ){ d.className = d.className + " update"; }</script>';
|
275 |
+
echo '</p></div></td></tr>';
|
276 |
}
|
277 |
|
278 |
public function clear_expired_download( $transient ) {
|
286 |
unset( $transient->response[ $this->plugin_folder ] );
|
287 |
}
|
288 |
} elseif ( isset( $transient->response ) && isset( $transient->response[ $this->plugin_folder ] ) ) {
|
289 |
+
$this->prepare_update_details( $transient->response[ $this->plugin_folder ] );
|
|
|
290 |
|
291 |
+
// if the transient has expired, clear the update and trigger it again
|
292 |
+
if ( $transient->response[ $this->plugin_folder ] === false ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
293 |
if ( ! $this->has_been_cleared() ) {
|
|
|
294 |
$this->cleared_plugins();
|
295 |
$this->manually_queue_update();
|
296 |
}
|
|
|
297 |
unset( $transient->response[ $this->plugin_folder ] );
|
298 |
}
|
299 |
}
|
301 |
return $transient;
|
302 |
}
|
303 |
|
304 |
+
/**
|
305 |
+
* Check if the plugin information is correct to allow an update
|
306 |
+
*
|
307 |
+
* @since 3.04.03
|
308 |
+
* @param object $transient - the current plugin info saved for update
|
309 |
+
*/
|
310 |
+
private function prepare_update_details( &$transient ) {
|
311 |
+
$version_info = $transient;
|
312 |
+
$has_beta_url = isset( $version_info->beta ) && ! empty( $version_info->beta );
|
313 |
+
if ( $this->get_beta && ! $has_beta_url ) {
|
314 |
+
$version_info = (object) $this->get_api_info( $this->license );
|
315 |
+
}
|
316 |
+
|
317 |
+
if ( isset( $version_info->new_version ) && ! empty( $version_info->new_version ) ) {
|
318 |
+
$this->clear_old_plugin_version( $version_info );
|
319 |
+
if ( $version_info === false ) { // was cleared with timeout
|
320 |
+
$transient = false;
|
321 |
+
} else {
|
322 |
+
$this->maybe_use_beta_url( $version_info );
|
323 |
+
$version_info->new_version = trim( $version_info->new_version, 'p' );
|
324 |
+
|
325 |
+
if ( version_compare( $version_info->new_version, $this->version, '>' ) ) {
|
326 |
+
$transient = $version_info;
|
327 |
+
}
|
328 |
+
}
|
329 |
+
}
|
330 |
+
}
|
331 |
|
332 |
/**
|
333 |
+
* Get the API info for this plugin
|
334 |
+
*
|
335 |
+
* @since 3.04.03
|
336 |
*/
|
337 |
+
protected function get_api_info( $license ) {
|
338 |
+
$addons = FrmAddonsController::get_addon_info( $license );
|
339 |
+
$addon = FrmAddonsController::get_addon_for_license( $addons, $this );
|
340 |
+
|
341 |
+
// if there is no download url, this license does not apply to the addon
|
342 |
+
if ( isset( $addon['package'] ) ) {
|
343 |
+
$this->is_parent_licence = true;
|
344 |
+
} elseif ( isset( $addons['error'] ) ) {
|
345 |
+
// if the license is expired, we must assume all add-ons were packaged
|
346 |
+
$this->is_parent_licence = true;
|
347 |
+
$this->is_expired_addon = true;
|
348 |
+
}
|
349 |
+
|
350 |
+
return $addon;
|
351 |
}
|
352 |
|
353 |
/**
|
357 |
* @since 2.05.05
|
358 |
*/
|
359 |
private function clear_old_plugin_version( &$version_info ) {
|
360 |
+
$timeout = ( isset( $version_info->timeout ) && ! empty( $version_info->timeout ) ) ? $version_info->timeout : 0;
|
361 |
+
if ( ! empty( $timeout ) && time() > $timeout ) {
|
362 |
+
$version_info = false; // Cache is expired
|
363 |
+
FrmAddonsController::reset_cached_addons( $this->license );
|
364 |
+
}
|
365 |
+
}
|
366 |
+
|
367 |
+
/**
|
368 |
+
* The beta url is always included if the download has a beta.
|
369 |
+
* Check if the beta should be downloaded.
|
370 |
+
*
|
371 |
+
* @since 3.04.03
|
372 |
+
*/
|
373 |
+
private function maybe_use_beta_url( &$version_info ) {
|
374 |
+
if ( $this->get_beta && isset( $version_info->beta ) && ! empty( $version_info->beta ) ) {
|
375 |
+
$version_info->new_version = $version_info->beta['version'];
|
376 |
+
$version_info->package = $version_info->beta['package'];
|
377 |
+
if ( isset( $version_info->plugin ) && ! empty( $version_info->plugin ) ) {
|
378 |
+
$version_info->plugin = $version_info->beta['plugin'];
|
379 |
}
|
380 |
}
|
381 |
}
|
classes/models/FrmDb.php
CHANGED
@@ -695,10 +695,7 @@ class FrmDb {
|
|
695 |
* @codeCoverageIgnore
|
696 |
*/
|
697 |
public function upgrade() {
|
698 |
-
|
699 |
-
|
700 |
-
$db = new FrmMigrate();
|
701 |
-
$db->upgrade();
|
702 |
}
|
703 |
|
704 |
/**
|
@@ -706,10 +703,7 @@ class FrmDb {
|
|
706 |
* @codeCoverageIgnore
|
707 |
*/
|
708 |
public function collation() {
|
709 |
-
|
710 |
-
|
711 |
-
$db = new FrmMigrate();
|
712 |
-
return $db->collation();
|
713 |
}
|
714 |
|
715 |
/**
|
@@ -717,9 +711,6 @@ class FrmDb {
|
|
717 |
* @codeCoverageIgnore
|
718 |
*/
|
719 |
public function uninstall() {
|
720 |
-
|
721 |
-
|
722 |
-
$db = new FrmMigrate();
|
723 |
-
$db->uninstall();
|
724 |
}
|
725 |
}
|
695 |
* @codeCoverageIgnore
|
696 |
*/
|
697 |
public function upgrade() {
|
698 |
+
FrmDeprecated::upgrade();
|
|
|
|
|
|
|
699 |
}
|
700 |
|
701 |
/**
|
703 |
* @codeCoverageIgnore
|
704 |
*/
|
705 |
public function collation() {
|
706 |
+
return FrmDeprecated::collation();
|
|
|
|
|
|
|
707 |
}
|
708 |
|
709 |
/**
|
711 |
* @codeCoverageIgnore
|
712 |
*/
|
713 |
public function uninstall() {
|
714 |
+
FrmDeprecated::uninstall();
|
|
|
|
|
|
|
715 |
}
|
716 |
}
|
classes/models/FrmEntry.php
CHANGED
@@ -69,7 +69,7 @@ class FrmEntry {
|
|
69 |
foreach ( $entry_exists as $entry_exist ) {
|
70 |
$is_duplicate = true;
|
71 |
|
72 |
-
|
73 |
$metas = FrmEntryMeta::get_entry_meta_info( $entry_exist );
|
74 |
$field_metas = array();
|
75 |
foreach ( $metas as $meta ) {
|
@@ -78,11 +78,26 @@ class FrmEntry {
|
|
78 |
|
79 |
// If prev entry is empty and current entry is not, they are not duplicates
|
80 |
$filtered_vals = array_filter( $values['item_meta'] );
|
|
|
81 |
if ( empty( $field_metas ) && ! empty( $filtered_vals ) ) {
|
82 |
return false;
|
83 |
}
|
84 |
|
85 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
86 |
foreach ( $diff as $field_id => $meta_value ) {
|
87 |
if ( ! empty( $meta_value ) ) {
|
88 |
$is_duplicate = false;
|
69 |
foreach ( $entry_exists as $entry_exist ) {
|
70 |
$is_duplicate = true;
|
71 |
|
72 |
+
// make sure it's a duplicate
|
73 |
$metas = FrmEntryMeta::get_entry_meta_info( $entry_exist );
|
74 |
$field_metas = array();
|
75 |
foreach ( $metas as $meta ) {
|
78 |
|
79 |
// If prev entry is empty and current entry is not, they are not duplicates
|
80 |
$filtered_vals = array_filter( $values['item_meta'] );
|
81 |
+
$field_metas = array_filter( $field_metas );
|
82 |
if ( empty( $field_metas ) && ! empty( $filtered_vals ) ) {
|
83 |
return false;
|
84 |
}
|
85 |
|
86 |
+
// compare serialized values and not arrays
|
87 |
+
$new_meta = array_map( 'maybe_serialize', $filtered_vals );
|
88 |
+
|
89 |
+
if ( $field_metas === $new_meta ) {
|
90 |
+
$is_duplicate = true;
|
91 |
+
break;
|
92 |
+
}
|
93 |
+
|
94 |
+
if ( count( $field_metas ) !== count( $new_meta ) ) {
|
95 |
+
// TODO: compare values saved in the post also
|
96 |
+
$is_duplicate = false;
|
97 |
+
continue;
|
98 |
+
}
|
99 |
+
|
100 |
+
$diff = array_diff_assoc( $field_metas, $new_meta );
|
101 |
foreach ( $diff as $field_id => $meta_value ) {
|
102 |
if ( ! empty( $meta_value ) ) {
|
103 |
$is_duplicate = false;
|
classes/models/FrmEntryValidate.php
CHANGED
@@ -134,49 +134,6 @@ class FrmEntryValidate {
|
|
134 |
}
|
135 |
}
|
136 |
|
137 |
-
/**
|
138 |
-
* @deprecated 3.0
|
139 |
-
* @codeCoverageIgnore
|
140 |
-
*/
|
141 |
-
public static function validate_url_field( &$errors, $field, $value, $args ) {
|
142 |
-
_deprecated_function( __FUNCTION__, '3.0', 'FrmFieldType::validate' );
|
143 |
-
|
144 |
-
if ( $value == '' || ! in_array( $field->type, array( 'website', 'url' ) ) ) {
|
145 |
-
return;
|
146 |
-
}
|
147 |
-
|
148 |
-
self::validate_field_types( $errors, $field, $value, $args );
|
149 |
-
}
|
150 |
-
|
151 |
-
/**
|
152 |
-
* @deprecated 3.0
|
153 |
-
* @codeCoverageIgnore
|
154 |
-
*/
|
155 |
-
public static function validate_email_field( &$errors, $field, $value, $args ) {
|
156 |
-
_deprecated_function( __FUNCTION__, '3.0', 'FrmFieldType::validate' );
|
157 |
-
|
158 |
-
if ( $field->type != 'email' ) {
|
159 |
-
return;
|
160 |
-
}
|
161 |
-
|
162 |
-
self::validate_field_types( $errors, $field, $value, $args );
|
163 |
-
}
|
164 |
-
|
165 |
-
/**
|
166 |
-
* @deprecated 3.0
|
167 |
-
* @codeCoverageIgnore
|
168 |
-
*/
|
169 |
-
public static function validate_number_field( &$errors, $field, $value, $args ) {
|
170 |
-
_deprecated_function( __FUNCTION__, '3.0', 'FrmFieldType::validate' );
|
171 |
-
|
172 |
-
//validate the number format
|
173 |
-
if ( $field->type != 'number' ) {
|
174 |
-
return;
|
175 |
-
}
|
176 |
-
|
177 |
-
self::validate_field_types( $errors, $field, $value, $args );
|
178 |
-
}
|
179 |
-
|
180 |
public static function validate_phone_field( &$errors, $field, $value, $args ) {
|
181 |
if ( $field->type == 'phone' || ( $field->type == 'text' && FrmField::is_option_true_in_object( $field, 'format' ) ) ) {
|
182 |
|
@@ -249,20 +206,6 @@ class FrmEntryValidate {
|
|
249 |
return $pattern;
|
250 |
}
|
251 |
|
252 |
-
/**
|
253 |
-
* @deprecated 3.0
|
254 |
-
* @codeCoverageIgnore
|
255 |
-
*/
|
256 |
-
public static function validate_recaptcha( &$errors, $field, $args ) {
|
257 |
-
_deprecated_function( __FUNCTION__, '3.0', 'FrmFieldType::validate' );
|
258 |
-
|
259 |
-
if ( $field->type != 'captcha' ) {
|
260 |
-
return;
|
261 |
-
}
|
262 |
-
|
263 |
-
self::validate_field_types( $errors, $field, '', $args );
|
264 |
-
}
|
265 |
-
|
266 |
/**
|
267 |
* check for spam
|
268 |
* @param boolean $exclude
|
@@ -429,4 +372,36 @@ class FrmEntryValidate {
|
|
429 |
unset( $key, $value );
|
430 |
}
|
431 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
432 |
}
|
134 |
}
|
135 |
}
|
136 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
137 |
public static function validate_phone_field( &$errors, $field, $value, $args ) {
|
138 |
if ( $field->type == 'phone' || ( $field->type == 'text' && FrmField::is_option_true_in_object( $field, 'format' ) ) ) {
|
139 |
|
206 |
return $pattern;
|
207 |
}
|
208 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
209 |
/**
|
210 |
* check for spam
|
211 |
* @param boolean $exclude
|
372 |
unset( $key, $value );
|
373 |
}
|
374 |
}
|
375 |
+
|
376 |
+
/**
|
377 |
+
* @deprecated 3.0
|
378 |
+
* @codeCoverageIgnore
|
379 |
+
*/
|
380 |
+
public static function validate_url_field( &$errors, $field, $value, $args ) {
|
381 |
+
FrmDeprecated::validate_url_field( $errors, $field, $value, $args );
|
382 |
+
}
|
383 |
+
|
384 |
+
/**
|
385 |
+
* @deprecated 3.0
|
386 |
+
* @codeCoverageIgnore
|
387 |
+
*/
|
388 |
+
public static function validate_email_field( &$errors, $field, $value, $args ) {
|
389 |
+
FrmDeprecated::validate_email_field( $errors, $field, $value, $args );
|
390 |
+
}
|
391 |
+
|
392 |
+
/**
|
393 |
+
* @deprecated 3.0
|
394 |
+
* @codeCoverageIgnore
|
395 |
+
*/
|
396 |
+
public static function validate_number_field( &$errors, $field, $value, $args ) {
|
397 |
+
FrmDeprecated::validate_number_field( $errors, $field, $value, $args );
|
398 |
+
}
|
399 |
+
|
400 |
+
/**
|
401 |
+
* @deprecated 3.0
|
402 |
+
* @codeCoverageIgnore
|
403 |
+
*/
|
404 |
+
public static function validate_recaptcha( &$errors, $field, $args ) {
|
405 |
+
FrmDeprecated::validate_recaptcha( $errors, $field, $args );
|
406 |
+
}
|
407 |
}
|
classes/models/FrmForm.php
CHANGED
@@ -488,18 +488,6 @@ class FrmForm {
|
|
488 |
return (int) FrmDb::get_var( 'frm_forms', array( 'form_key' => sanitize_title( $key ) ) );
|
489 |
}
|
490 |
|
491 |
-
/**
|
492 |
-
* @deprecated 3.0
|
493 |
-
* @codeCoverageIgnore
|
494 |
-
*
|
495 |
-
* @param string $key
|
496 |
-
* @return int form id
|
497 |
-
*/
|
498 |
-
public static function getIdByKey( $key ) {
|
499 |
-
_deprecated_function( __METHOD__, '3.0', 'FrmForm::get_id_by_key' );
|
500 |
-
return self::get_id_by_key( $key );
|
501 |
-
}
|
502 |
-
|
503 |
/**
|
504 |
* @since 3.0
|
505 |
* @param int $id
|
@@ -517,15 +505,6 @@ class FrmForm {
|
|
517 |
return $key;
|
518 |
}
|
519 |
|
520 |
-
/**
|
521 |
-
* @deprecated 3.0
|
522 |
-
* @codeCoverageIgnore
|
523 |
-
*/
|
524 |
-
public static function getKeyById( $id ) {
|
525 |
-
_deprecated_function( __METHOD__, '3.0', 'FrmForm::get_key_by_id' );
|
526 |
-
return self::get_key_by_id( $id );
|
527 |
-
}
|
528 |
-
|
529 |
/**
|
530 |
* If $form is numeric, get the form object
|
531 |
* @param object|int $form
|
@@ -877,4 +856,23 @@ class FrmForm {
|
|
877 |
$form = $atts['form'];
|
878 |
return isset( $form->options[ $atts['option'] ] ) ? $form->options[ $atts['option'] ] : $atts['default'];
|
879 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
880 |
}
|
488 |
return (int) FrmDb::get_var( 'frm_forms', array( 'form_key' => sanitize_title( $key ) ) );
|
489 |
}
|
490 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
491 |
/**
|
492 |
* @since 3.0
|
493 |
* @param int $id
|
505 |
return $key;
|
506 |
}
|
507 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
508 |
/**
|
509 |
* If $form is numeric, get the form object
|
510 |
* @param object|int $form
|
856 |
$form = $atts['form'];
|
857 |
return isset( $form->options[ $atts['option'] ] ) ? $form->options[ $atts['option'] ] : $atts['default'];
|
858 |
}
|
859 |
+
|
860 |
+
/**
|
861 |
+
* @deprecated 3.0
|
862 |
+
* @codeCoverageIgnore
|
863 |
+
*
|
864 |
+
* @param string $key
|
865 |
+
* @return int form id
|
866 |
+
*/
|
867 |
+
public static function getIdByKey( $key ) {
|
868 |
+
return FrmFormDeprecated::getIdByKey( $key );
|
869 |
+
}
|
870 |
+
|
871 |
+
/**
|
872 |
+
* @deprecated 3.0
|
873 |
+
* @codeCoverageIgnore
|
874 |
+
*/
|
875 |
+
public static function getKeyById( $id ) {
|
876 |
+
return FrmFormDeprecated::getKeyById( $id );
|
877 |
+
}
|
878 |
}
|
classes/models/FrmMigrate.php
CHANGED
@@ -224,6 +224,8 @@ class FrmMigrate {
|
|
224 |
|
225 |
delete_option( 'frm_options' );
|
226 |
delete_option( 'frm_db_version' );
|
|
|
|
|
227 |
|
228 |
//delete roles
|
229 |
$frm_roles = FrmAppHelper::frm_capabilities();
|
224 |
|
225 |
delete_option( 'frm_options' );
|
226 |
delete_option( 'frm_db_version' );
|
227 |
+
delete_option( 'frm_install_running' );
|
228 |
+
delete_option( 'frm_lite_settings_upgrade' );
|
229 |
|
230 |
//delete roles
|
231 |
$frm_roles = FrmAppHelper::frm_capabilities();
|
classes/models/FrmReviews.php
ADDED
@@ -0,0 +1,133 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
class FrmReviews {
|
4 |
+
|
5 |
+
private $option_name = 'frm_reviewed';
|
6 |
+
|
7 |
+
private $review_status = array();
|
8 |
+
|
9 |
+
/**
|
10 |
+
* Add admin notices as needed for reviews
|
11 |
+
*
|
12 |
+
* @since 3.04.03
|
13 |
+
*/
|
14 |
+
public function review_request() {
|
15 |
+
|
16 |
+
// Only show the review request to high-level users on Formidable pages
|
17 |
+
if ( ! current_user_can( 'frm_change_settings' ) || ! FrmAppHelper::is_formidable_admin() ) {
|
18 |
+
return;
|
19 |
+
}
|
20 |
+
|
21 |
+
// Verify that we can do a check for reviews
|
22 |
+
$this->set_review_status();
|
23 |
+
|
24 |
+
// Check if it has been dismissed or if we can ask later
|
25 |
+
$dismissed = $this->review_status['dismissed'];
|
26 |
+
if ( $dismissed === 'later' && $this->review_status['asked'] < 3 ) {
|
27 |
+
$dismissed = false;
|
28 |
+
}
|
29 |
+
|
30 |
+
$week_ago = ( $this->review_status['time'] + WEEK_IN_SECONDS ) <= time();
|
31 |
+
|
32 |
+
if ( empty( $dismissed ) && $week_ago ) {
|
33 |
+
$this->review();
|
34 |
+
}
|
35 |
+
}
|
36 |
+
|
37 |
+
/**
|
38 |
+
* When was the review request last dismissed?
|
39 |
+
*
|
40 |
+
* @since 3.04.03
|
41 |
+
*/
|
42 |
+
private function set_review_status() {
|
43 |
+
$user_id = get_current_user_id();
|
44 |
+
$review = get_user_meta( $user_id, $this->option_name, true );
|
45 |
+
$default = array(
|
46 |
+
'time' => time(),
|
47 |
+
'dismissed' => false,
|
48 |
+
'asked' => 0,
|
49 |
+
);
|
50 |
+
|
51 |
+
if ( empty( $review ) ) {
|
52 |
+
// Set the review request to show in a week
|
53 |
+
update_user_meta( $user_id, $this->option_name, $default );
|
54 |
+
}
|
55 |
+
|
56 |
+
$review = array_merge( $default, (array) $review );
|
57 |
+
$review['asked'] = (int) $review['asked'];
|
58 |
+
$this->review_status = $review;
|
59 |
+
}
|
60 |
+
|
61 |
+
/**
|
62 |
+
* Maybe show review request
|
63 |
+
*
|
64 |
+
* @since 3.04.03
|
65 |
+
* @param int $asked
|
66 |
+
*/
|
67 |
+
private function review() {
|
68 |
+
|
69 |
+
// show the review request 3 times, depending on the number of entries
|
70 |
+
$show_intervals = array( 50, 200, 500 );
|
71 |
+
$asked = $this->review_status['asked'];
|
72 |
+
|
73 |
+
if ( ! isset( $show_intervals[ $asked ] ) ) {
|
74 |
+
return;
|
75 |
+
}
|
76 |
+
|
77 |
+
$entries = FrmEntry::getRecordCount();
|
78 |
+
$count = $show_intervals[ $asked ];
|
79 |
+
$user = wp_get_current_user();
|
80 |
+
|
81 |
+
// Only show review request if the site has collected enough entries
|
82 |
+
if ( $entries < $count ) {
|
83 |
+
// check the entry count again in a week
|
84 |
+
$this->review_status['time'] = time();
|
85 |
+
update_user_meta( $user->ID, $this->option_name, $this->review_status );
|
86 |
+
return;
|
87 |
+
}
|
88 |
+
|
89 |
+
if ( $entries <= 100 ) {
|
90 |
+
// round to the nearest 10
|
91 |
+
$entries = floor( $entries / 10 ) * 10;
|
92 |
+
} else {
|
93 |
+
// round to the nearest 50
|
94 |
+
$entries = floor( $entries / 50 ) * 50;
|
95 |
+
}
|
96 |
+
$name = $user->first_name;
|
97 |
+
if ( ! empty( $name ) ) {
|
98 |
+
$name = ' ' . $name;
|
99 |
+
}
|
100 |
+
|
101 |
+
// We have a candidate! Output a review message.
|
102 |
+
include( FrmAppHelper::plugin_path() . '/classes/views/shared/review.php' );
|
103 |
+
}
|
104 |
+
|
105 |
+
/**
|
106 |
+
* Save the request to hide the review
|
107 |
+
*
|
108 |
+
* @since 3.04.03
|
109 |
+
*/
|
110 |
+
public function dismiss_review() {
|
111 |
+
FrmAppHelper::permission_check( 'frm_change_settings' );
|
112 |
+
check_ajax_referer( 'frm_ajax', 'nonce' );
|
113 |
+
|
114 |
+
$user_id = get_current_user_id();
|
115 |
+
$review = get_user_meta( $user_id, $this->option_name, true );
|
116 |
+
if ( empty( $review ) ) {
|
117 |
+
$review = array();
|
118 |
+
}
|
119 |
+
|
120 |
+
if ( isset( $review['dismissed'] ) && $review['dismissed'] === 'done' ) {
|
121 |
+
// if feedback was submitted, don't update it again when the review is dismissed
|
122 |
+
wp_die();
|
123 |
+
}
|
124 |
+
|
125 |
+
$dismissed = FrmAppHelper::get_post_param( 'link', 'no', 'sanitize_text_field' );
|
126 |
+
$review['time'] = time();
|
127 |
+
$review['dismissed'] = $dismissed === 'done' ? true : 'later';
|
128 |
+
$review['asked'] = isset( $review['asked'] ) ? $review['asked'] + 1 : 1;
|
129 |
+
|
130 |
+
update_user_meta( $user_id, $this->option_name, $review );
|
131 |
+
wp_die();
|
132 |
+
}
|
133 |
+
}
|
classes/views/addons/list.php
CHANGED
@@ -1,10 +1,18 @@
|
|
|
|
1 |
<div class="wrap">
|
2 |
-
<h1><?php esc_html_e( 'Formidable
|
|
|
|
|
3 |
|
4 |
<div id="the-list" class="frm-addons">
|
5 |
<?php foreach ( $addons as $slug => $addon ) { ?>
|
6 |
<div class="plugin-card plugin-card-<?php echo esc_attr( $slug ); ?> frm-no-thumb frm-addon-<?php echo esc_attr( $addon['status']['type'] ); ?>">
|
7 |
<div class="plugin-card-top">
|
|
|
|
|
|
|
|
|
|
|
8 |
<h2>
|
9 |
<?php echo esc_html( $addon['title'] ) ?>
|
10 |
</h2>
|
@@ -25,20 +33,16 @@
|
|
25 |
?>
|
26 |
</span>
|
27 |
<?php if ( $addon['status']['type'] === 'installed' ) { ?>
|
28 |
-
<a href="<?php echo esc_url( $addon['activate_url'] ) ?>" class="button activate-now
|
29 |
<?php esc_html_e( 'Activate', 'formidable' ); ?>
|
30 |
</a>
|
31 |
<?php } elseif ( isset( $addon['url'] ) && ! empty( $addon['url'] ) ) { ?>
|
32 |
-
<a class="frm-install-addon button
|
33 |
<?php esc_html_e( 'Install', 'formidable' ); ?>
|
34 |
</a>
|
35 |
<span class="spinner"></span>
|
36 |
-
<?php } elseif ( FrmAppHelper::pro_is_installed() ) { ?>
|
37 |
-
<a class="install-now button frm_button" href="<?php echo esc_url( $pricing ); ?>" target="_blank" aria-label="<?php esc_attr_e( 'Get Started', 'formidable' ); ?>">
|
38 |
-
<?php esc_html_e( 'Get Started', 'formidable' ); ?>
|
39 |
-
</a>
|
40 |
<?php } else { ?>
|
41 |
-
<a class="install-now button
|
42 |
<?php esc_html_e( 'Upgrade Now', 'formidable' ); ?>
|
43 |
</a>
|
44 |
<?php } ?>
|
@@ -47,3 +51,4 @@
|
|
47 |
<?php } ?>
|
48 |
</div>
|
49 |
</div>
|
|
1 |
+
<div class="frm_wrap" id="frm-addons-page">
|
2 |
<div class="wrap">
|
3 |
+
<h1><?php esc_html_e( 'Formidable Add-Ons', 'formidable' ); ?></h1>
|
4 |
+
|
5 |
+
<?php include( FrmAppHelper::plugin_path() . '/classes/views/shared/errors.php' ); ?>
|
6 |
|
7 |
<div id="the-list" class="frm-addons">
|
8 |
<?php foreach ( $addons as $slug => $addon ) { ?>
|
9 |
<div class="plugin-card plugin-card-<?php echo esc_attr( $slug ); ?> frm-no-thumb frm-addon-<?php echo esc_attr( $addon['status']['type'] ); ?>">
|
10 |
<div class="plugin-card-top">
|
11 |
+
<?php if ( strtotime( $addon['released'] ) > strtotime( '-90 days' ) ) { ?>
|
12 |
+
<div class="frm_ribbon">
|
13 |
+
<span>New</span>
|
14 |
+
</div>
|
15 |
+
<?php } ?>
|
16 |
<h2>
|
17 |
<?php echo esc_html( $addon['title'] ) ?>
|
18 |
</h2>
|
33 |
?>
|
34 |
</span>
|
35 |
<?php if ( $addon['status']['type'] === 'installed' ) { ?>
|
36 |
+
<a href="<?php echo esc_url( $addon['activate_url'] ) ?>" class="button button-primary activate-now <?php echo esc_attr( empty( $addon['activate_url'] ) ? 'frm_hidden' : '' ); ?>">
|
37 |
<?php esc_html_e( 'Activate', 'formidable' ); ?>
|
38 |
</a>
|
39 |
<?php } elseif ( isset( $addon['url'] ) && ! empty( $addon['url'] ) ) { ?>
|
40 |
+
<a class="frm-install-addon button button-primary" rel="<?php echo esc_attr( $addon['url'] ); ?>" aria-label="<?php esc_attr_e( 'Install', 'formidable' ); ?>">
|
41 |
<?php esc_html_e( 'Install', 'formidable' ); ?>
|
42 |
</a>
|
43 |
<span class="spinner"></span>
|
|
|
|
|
|
|
|
|
44 |
<?php } else { ?>
|
45 |
+
<a class="install-now button button-primary" href="<?php echo esc_url( $pricing ); ?>" target="_blank" aria-label="<?php esc_attr_e( 'Upgrade Now', 'formidable' ); ?>">
|
46 |
<?php esc_html_e( 'Upgrade Now', 'formidable' ); ?>
|
47 |
</a>
|
48 |
<?php } ?>
|
51 |
<?php } ?>
|
52 |
</div>
|
53 |
</div>
|
54 |
+
</div>
|
classes/views/addons/settings.php
CHANGED
@@ -3,18 +3,14 @@
|
|
3 |
|
4 |
<?php
|
5 |
|
6 |
-
$any_unauthorized = false;
|
7 |
foreach ( $plugins as $slug => $plugin ) {
|
8 |
-
if ( $slug == 'formidable_pro' ) {
|
9 |
continue;
|
10 |
}
|
11 |
|
12 |
-
$license =
|
13 |
-
$status = get_option(
|
14 |
$activate = ( false !== $license && $status == 'valid' ) ? 'deactivate' : 'activate';
|
15 |
-
if ( $activate == 'activate' ) {
|
16 |
-
$any_unauthorized = true;
|
17 |
-
}
|
18 |
$icon_class = ( empty( $license ) ) ? 'frm_hidden' : '';
|
19 |
?>
|
20 |
|
@@ -35,8 +31,4 @@
|
|
35 |
|
36 |
</div>
|
37 |
<?php } ?>
|
38 |
-
<?php if ( $any_unauthorized && $allow_autofill ) { ?>
|
39 |
-
<div class="clear"></div>
|
40 |
-
<p><a href="#" class="edd_frm_fill_license button-secondary"><?php esc_html_e( 'Autofill Licenses', 'formidable' ) ?></a></p>
|
41 |
-
<?php } ?>
|
42 |
</div>
|
3 |
|
4 |
<?php
|
5 |
|
|
|
6 |
foreach ( $plugins as $slug => $plugin ) {
|
7 |
+
if ( $slug == 'formidable_pro' || $plugin->is_parent_licence ) {
|
8 |
continue;
|
9 |
}
|
10 |
|
11 |
+
$license = $plugin->license;
|
12 |
+
$status = get_option( $plugin->option_name . 'active' );
|
13 |
$activate = ( false !== $license && $status == 'valid' ) ? 'deactivate' : 'activate';
|
|
|
|
|
|
|
14 |
$icon_class = ( empty( $license ) ) ? 'frm_hidden' : '';
|
15 |
?>
|
16 |
|
31 |
|
32 |
</div>
|
33 |
<?php } ?>
|
|
|
|
|
|
|
|
|
34 |
</div>
|
classes/views/addons/upgrade_to_pro.php
CHANGED
@@ -57,11 +57,11 @@
|
|
57 |
<td>Elite Support</td>
|
58 |
</tr>
|
59 |
<tr>
|
60 |
-
<th>Included
|
61 |
<td>None</td>
|
62 |
-
<td><a href="<?php echo esc_url( FrmAppHelper::make_affiliate_url( FrmAppHelper::admin_upgrade_link( 'upgrade' ) ) ); ?>" target="_blank">Premium
|
63 |
-
<td><a href="<?php echo esc_url( FrmAppHelper::make_affiliate_url( FrmAppHelper::admin_upgrade_link( 'upgrade' ) ) ); ?>" target="_blank">Advanced
|
64 |
-
<td><a href="<?php echo esc_url( FrmAppHelper::make_affiliate_url( FrmAppHelper::admin_upgrade_link( 'upgrade' ) ) ); ?>" target="_blank">Enterprise
|
65 |
</tr>
|
66 |
</tbody>
|
67 |
</table>
|
57 |
<td>Elite Support</td>
|
58 |
</tr>
|
59 |
<tr>
|
60 |
+
<th>Included Add-Ons</th>
|
61 |
<td>None</td>
|
62 |
+
<td><a href="<?php echo esc_url( FrmAppHelper::make_affiliate_url( FrmAppHelper::admin_upgrade_link( 'upgrade' ) ) ); ?>" target="_blank">Premium Add-Ons</a></td>
|
63 |
+
<td><a href="<?php echo esc_url( FrmAppHelper::make_affiliate_url( FrmAppHelper::admin_upgrade_link( 'upgrade' ) ) ); ?>" target="_blank">Advanced Add-Ons</a></td>
|
64 |
+
<td><a href="<?php echo esc_url( FrmAppHelper::make_affiliate_url( FrmAppHelper::admin_upgrade_link( 'upgrade' ) ) ); ?>" target="_blank">Enterprise Add-Ons</a></td>
|
65 |
</tr>
|
66 |
</tbody>
|
67 |
</table>
|
classes/views/shared/errors.php
CHANGED
@@ -12,7 +12,7 @@ if ( isset( $message ) && '' !== $message ) {
|
|
12 |
|
13 |
if ( isset( $errors ) && is_array( $errors ) && count( $errors ) > 0 ) {
|
14 |
?>
|
15 |
-
<div class="error" role="alert">
|
16 |
<ul id="frm_errors">
|
17 |
<?php
|
18 |
foreach ( $errors as $error ) {
|
12 |
|
13 |
if ( isset( $errors ) && is_array( $errors ) && count( $errors ) > 0 ) {
|
14 |
?>
|
15 |
+
<div class="error frm_error_style inline" role="alert">
|
16 |
<ul id="frm_errors">
|
17 |
<?php
|
18 |
foreach ( $errors as $error ) {
|
classes/views/shared/review.php
ADDED
@@ -0,0 +1,92 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="notice notice-info is-dismissible frm-review-notice">
|
2 |
+
<div class="frm-satisfied">
|
3 |
+
<p>
|
4 |
+
<?php printf( esc_html__( 'Congratulations%1$s! You have collected %2$d form submissions.', 'formidable' ), esc_html( $name ), absint( $entries ) ); ?><br/><br/>
|
5 |
+
<?php esc_html_e( 'Are you enjoying Formidable Forms?', 'formidable' ); ?>
|
6 |
+
</p>
|
7 |
+
<br/>
|
8 |
+
<a href="#" class="frm_reverse_button frm_animate_bg show-frm-feedback" data-link="feedback">
|
9 |
+
<?php esc_html_e( 'Not Really', 'formidable' ); ?>
|
10 |
+
</a>
|
11 |
+
<a href="#" class="frm_orange_button frm_animate_bg show-frm-feedback" data-link="review">
|
12 |
+
<?php esc_html_e( 'Yes!', 'formidable' ); ?>
|
13 |
+
</a>
|
14 |
+
</div>
|
15 |
+
<div class="frm-review-request frm_hidden">
|
16 |
+
<p><?php esc_html_e( 'Awesome! Could you do me a BIG favor and give Formidable Forms a review to help me grow my little business and boost our motivation?', 'formidable' ); ?></p>
|
17 |
+
<p>- Steph Wells<br/>
|
18 |
+
<span><?php esc_html_e( 'Founder and Lead Developer of Formidable Forms', 'formidable' ); ?><span>
|
19 |
+
</p>
|
20 |
+
<a href="#" class="frm-dismiss-review-notice frm_reverse_button" data-link="no" target="_blank" rel="noopener noreferrer">
|
21 |
+
<?php esc_html_e( 'No thanks, maybe later', 'formidable' ); ?>
|
22 |
+
</a>
|
23 |
+
<a href="https://wordpress.org/support/plugin/formidable/reviews/?filter=5#new-post" class="frm-dismiss-review-notice frm-review-out frm_orange_button" data-link="yes" target="_blank" rel="noopener">
|
24 |
+
<?php esc_html_e( 'Ok, you deserve it', 'formidable' ); ?>
|
25 |
+
</a>
|
26 |
+
<a href="#" class="frm-dismiss-review-notice" data-link="done" target="_blank" rel="noopener noreferrer">
|
27 |
+
<?php esc_html_e( 'I already did', 'formidable' ); ?>
|
28 |
+
</a>
|
29 |
+
</div>
|
30 |
+
<div class="frm-feedback-request frm_hidden">
|
31 |
+
<p><?php esc_html_e( 'Sorry to hear you aren\'t enjoying building with Formidable. We would love a chance to improve. Could you take a minute and let us know what we can do better?', 'formidable' ); ?></p>
|
32 |
+
|
33 |
+
<div id="frmapi-feedback" class="frmapi-form" data-url="https://community.formidableforms.com/wp-json/frm/v2/forms/feedback?return=html">
|
34 |
+
<span class="spinner frm_visible_spinner"></span>
|
35 |
+
</div>
|
36 |
+
</div>
|
37 |
+
</div>
|
38 |
+
<script type="text/javascript">
|
39 |
+
jQuery( document ).ready( function( $ ) {
|
40 |
+
$(document).on( 'click', '.frm-dismiss-review-notice, .frm-review-notice .notice-dismiss', function( event ) {
|
41 |
+
|
42 |
+
if ( ! $( this ).hasClass( 'frm-review-out' ) ) {
|
43 |
+
event.preventDefault();
|
44 |
+
}
|
45 |
+
var link = $( this ).data('link');
|
46 |
+
if ( typeof link === 'undefined' ) {
|
47 |
+
link = 'no';
|
48 |
+
}
|
49 |
+
|
50 |
+
frmDismissReview( link );
|
51 |
+
$( '.frm-review-notice' ).remove();
|
52 |
+
} );
|
53 |
+
|
54 |
+
$(document).on('click', '.frm-feedback-request button', function() {
|
55 |
+
frmDismissReview( 'done' );
|
56 |
+
} );
|
57 |
+
|
58 |
+
$('.show-frm-feedback').click( function( e ){
|
59 |
+
e.preventDefault();
|
60 |
+
var link = $(this).data('link');
|
61 |
+
var className = '.frm-' + link + '-request';
|
62 |
+
jQuery('.frm-satisfied').hide();
|
63 |
+
jQuery(className).show();
|
64 |
+
|
65 |
+
if ( className === '.frm-feedback-request' ) {
|
66 |
+
var frmapi = $('#frmapi-feedback');
|
67 |
+
frmapiGetData( frmapi );
|
68 |
+
}
|
69 |
+
});
|
70 |
+
} );
|
71 |
+
|
72 |
+
function frmDismissReview( link ) {
|
73 |
+
jQuery.post( ajaxurl, {
|
74 |
+
action: 'frm_dismiss_review',
|
75 |
+
link: link,
|
76 |
+
nonce: '<?php echo esc_html( wp_create_nonce( 'frm_ajax' ) ); ?>'
|
77 |
+
} );
|
78 |
+
}
|
79 |
+
|
80 |
+
function frmapiGetData( frmcont ) {
|
81 |
+
jQuery.ajax({
|
82 |
+
dataType:'json',
|
83 |
+
url:frmcont.data('url'),
|
84 |
+
success:function(json){
|
85 |
+
var form = json.renderedHtml;
|
86 |
+
form = form.replace(/<script\b[^<]*(community.formidableforms.com\/wp-includes\/js\/jquery\/jquery)[^<]*><\/script>/gi, '' );
|
87 |
+
form = form.replace(/<link\b[^>]*(formidableforms.css)[^>]*>/gi, '' );
|
88 |
+
frmcont.html(form);
|
89 |
+
}
|
90 |
+
});
|
91 |
+
}
|
92 |
+
</script>
|
classes/views/shared/upgrade_overlay.php
CHANGED
@@ -8,7 +8,7 @@
|
|
8 |
<h2>
|
9 |
<?php
|
10 |
printf(
|
11 |
-
esc_html__( '%s are
|
12 |
'<span class="frm_feature_label"></span>'
|
13 |
);
|
14 |
?>
|
@@ -17,21 +17,28 @@
|
|
17 |
<p>
|
18 |
<?php
|
19 |
if ( $is_pro ) {
|
20 |
-
$message = __( '
|
21 |
} else {
|
22 |
$message = __( '%s are not available on your plan. Please upgrade to PRO to unlock more awesome features.', 'formidable' );
|
23 |
}
|
24 |
printf( esc_html( $message ), '<span class="frm_feature_label"></span>' );
|
25 |
?>
|
26 |
</p>
|
27 |
-
|
|
|
|
|
|
|
|
|
|
|
28 |
<?php esc_html_e( 'Upgrade to Pro', 'formidable' ); ?>
|
29 |
-
</a>
|
30 |
-
<p>
|
31 |
-
<a href="<?php echo esc_url( FrmAppHelper::make_affiliate_url( FrmAppHelper::admin_upgrade_link( 'builder-upgrade', 'knowledgebase/install-formidable-forms/' ) ) ); ?>" target="_blank" class="frm-link-secondary">
|
32 |
-
<?php esc_html_e( 'Already purchased?', 'formidable' ); ?>
|
33 |
</a>
|
34 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
</div>
|
36 |
</div>
|
37 |
</div>
|
8 |
<h2>
|
9 |
<?php
|
10 |
printf(
|
11 |
+
esc_html__( '%s are not installed', 'formidable' ),
|
12 |
'<span class="frm_feature_label"></span>'
|
13 |
);
|
14 |
?>
|
17 |
<p>
|
18 |
<?php
|
19 |
if ( $is_pro ) {
|
20 |
+
$message = __( 'Please see the add-ons that are included with your plan.', 'formidable' );
|
21 |
} else {
|
22 |
$message = __( '%s are not available on your plan. Please upgrade to PRO to unlock more awesome features.', 'formidable' );
|
23 |
}
|
24 |
printf( esc_html( $message ), '<span class="frm_feature_label"></span>' );
|
25 |
?>
|
26 |
</p>
|
27 |
+
<?php if ( $is_pro ) { ?>
|
28 |
+
<a href="<?php echo esc_url( admin_url( 'admin.php?page=formidable-addons' ) ); ?>" class="button button-primary">
|
29 |
+
<?php esc_html_e( 'See My Add-Ons', 'formidable' ); ?>
|
30 |
+
</a>
|
31 |
+
<?php } else { ?>
|
32 |
+
<a href="<?php echo esc_url( FrmAppHelper::admin_upgrade_link( 'builder-upgrade' ) ); ?>" class="button button-primary" target="_blank" rel="noopener noreferrer">
|
33 |
<?php esc_html_e( 'Upgrade to Pro', 'formidable' ); ?>
|
|
|
|
|
|
|
|
|
34 |
</a>
|
35 |
+
|
36 |
+
<p>
|
37 |
+
<a href="<?php echo esc_url( FrmAppHelper::make_affiliate_url( FrmAppHelper::admin_upgrade_link( 'builder-upgrade', 'knowledgebase/install-formidable-forms/' ) ) ); ?>" target="_blank" class="frm-link-secondary">
|
38 |
+
<?php esc_html_e( 'Already purchased?', 'formidable' ); ?>
|
39 |
+
</a>
|
40 |
+
</p>
|
41 |
+
<?php } ?>
|
42 |
</div>
|
43 |
</div>
|
44 |
</div>
|
css/custom_theme.css.php
CHANGED
@@ -332,15 +332,16 @@ a.frm_save_draft{
|
|
332 |
|
333 |
.with_frm_style .frm_radio input[type=radio]{
|
334 |
-webkit-appearance:radio;
|
|
|
335 |
}
|
336 |
|
337 |
.with_frm_style .frm_checkbox input[type=checkbox]{
|
338 |
-webkit-appearance:checkbox;
|
|
|
339 |
}
|
340 |
|
341 |
.with_frm_style .frm_radio input[type=radio],
|
342 |
.with_frm_style .frm_checkbox input[type=checkbox]{
|
343 |
-
border-radius:initial;
|
344 |
flex: none;
|
345 |
display:inline-block;
|
346 |
margin:4px 5px 0 0;
|
332 |
|
333 |
.with_frm_style .frm_radio input[type=radio]{
|
334 |
-webkit-appearance:radio;
|
335 |
+
border-radius:50%;
|
336 |
}
|
337 |
|
338 |
.with_frm_style .frm_checkbox input[type=checkbox]{
|
339 |
-webkit-appearance:checkbox;
|
340 |
+
border-radius:initial;
|
341 |
}
|
342 |
|
343 |
.with_frm_style .frm_radio input[type=radio],
|
344 |
.with_frm_style .frm_checkbox input[type=checkbox]{
|
|
|
345 |
flex: none;
|
346 |
display:inline-block;
|
347 |
margin:4px 5px 0 0;
|
css/frm_admin.css
CHANGED
@@ -121,35 +121,6 @@ td.column-title .frm_actions_dropdown{
|
|
121 |
float:left;
|
122 |
}
|
123 |
|
124 |
-
.post-type-frm_display .wrap .add-new-h2,
|
125 |
-
.frm_wrap .add-new-h2{
|
126 |
-
font-size:12px;
|
127 |
-
border: 1px solid #f37656;
|
128 |
-
color: #f37656;
|
129 |
-
line-height: 1.4;
|
130 |
-
font-weight: 600;
|
131 |
-
margin: 1px 0 0 10px;
|
132 |
-
padding: 1px 4px;
|
133 |
-
vertical-align: top;
|
134 |
-
-webkit-border-radius: 10px;
|
135 |
-
border-radius: 2px;
|
136 |
-
text-transform:lowercase;
|
137 |
-
position:initial;
|
138 |
-
vertical-align: middle;
|
139 |
-
background:transparent;
|
140 |
-
}
|
141 |
-
|
142 |
-
.post-type-frm_display .wrap .add-new-h2:hover,
|
143 |
-
.post-type-frm_display .wrap .add-new-h2:active,
|
144 |
-
.post-type-frm_display .wrap .add-new-h2:focus,
|
145 |
-
.frm_wrap .add-new-h2:hover,
|
146 |
-
.frm_wrap .add-new-h2:active,
|
147 |
-
.frm_wrap .add-new-h2:focus{
|
148 |
-
color: #fff;
|
149 |
-
background:#f37656;
|
150 |
-
border: 1px solid #f37656;
|
151 |
-
}
|
152 |
-
|
153 |
ul.frm_form_nav {
|
154 |
margin:0;
|
155 |
float:left;
|
@@ -408,24 +379,138 @@ ul.frm_form_nav > li{
|
|
408 |
margin-left: 5px;
|
409 |
}
|
410 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
411 |
#frm_upgrade_modal .button,
|
412 |
-
|
413 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
414 |
text-shadow:none;
|
415 |
box-shadow:none;
|
416 |
-
border-radius:
|
417 |
border-color:#e5e5e5;
|
418 |
font-size: 1.1em;
|
|
|
419 |
}
|
420 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
421 |
.wrap .frm_pricing a.button-primary,
|
422 |
.toplevel_page_formidable #frm_upgrade_modal .button-primary,
|
423 |
.toplevel_page_formidable .frm_wrap button.button-primary{
|
424 |
-
border-color: #da791d;
|
425 |
background: #f37656;
|
426 |
color:#fff;
|
427 |
}
|
428 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
429 |
#frm-preview-action{
|
430 |
float:right;
|
431 |
}
|
@@ -449,6 +534,55 @@ input.frm_insert_in_template{
|
|
449 |
font-weight:normal
|
450 |
}
|
451 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
452 |
/* Generic Classes */
|
453 |
.frm_invisible{
|
454 |
visibility:hidden;
|
@@ -654,21 +788,49 @@ form .form-field.frm_field_loading{
|
|
654 |
padding: 5px 12px;
|
655 |
}
|
656 |
|
|
|
|
|
657 |
div.frm_updated_message{
|
658 |
-
border-radius:
|
659 |
border: 1px solid #D6E9C6;
|
660 |
background-color: #DFF0D8;
|
661 |
color: #468847;
|
662 |
padding: 10px 15px;
|
663 |
font-size:14px;
|
664 |
-
margin:5px
|
665 |
}
|
666 |
|
667 |
-
.
|
668 |
-
|
669 |
-
margin-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
670 |
}
|
671 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
672 |
.update-nag.frm-update-to-pro{
|
673 |
border:none;
|
674 |
border-bottom: 1px solid #d55a1e;
|
@@ -737,10 +899,22 @@ div.frm_updated_message{
|
|
737 |
width: 31.3%;
|
738 |
margin:0 3% 30px 0;
|
739 |
clear:none;
|
|
|
|
|
|
|
740 |
}
|
741 |
|
742 |
.frm-addons .plugin-card-top{
|
743 |
-
height:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
744 |
}
|
745 |
|
746 |
.frm-addons .plugin-card:nth-child(3n+3) {
|
@@ -752,8 +926,10 @@ div.frm_updated_message{
|
|
752 |
}
|
753 |
|
754 |
.frm-addons .plugin-card-bottom {
|
755 |
-
padding:20px;
|
756 |
text-align:center;
|
|
|
|
|
757 |
}
|
758 |
|
759 |
.frm-addons .plugin-card-bottom,
|
@@ -767,6 +943,7 @@ div.frm_updated_message{
|
|
767 |
|
768 |
.frm-addons .addon-status {
|
769 |
float:left;
|
|
|
770 |
}
|
771 |
|
772 |
.frm-addon-active .button {
|
@@ -938,7 +1115,7 @@ div.frm_updated_message{
|
|
938 |
}
|
939 |
|
940 |
a.frm-option-icon:before{
|
941 |
-
color:
|
942 |
font-size: 22px;
|
943 |
width: 22px;
|
944 |
height: 22px;
|
@@ -2752,11 +2929,11 @@ ul .frm_col_two{float:right;}
|
|
2752 |
border: 1px solid #5b9dd9;
|
2753 |
color:#1c94c4;
|
2754 |
display:block;
|
2755 |
-
border-radius:
|
2756 |
}
|
2757 |
|
2758 |
.frm_code_list.frm_grid_container a:hover{
|
2759 |
-
background-color
|
2760 |
color:#fbfdff;
|
2761 |
}
|
2762 |
|
@@ -2879,6 +3056,8 @@ li.frm_noallow.button.frm_show_upgrade {
|
|
2879 |
#frm_upgrade_modal .dismiss {
|
2880 |
padding: 5px;
|
2881 |
color: #c4c4c4;
|
|
|
|
|
2882 |
}
|
2883 |
|
2884 |
#frm_upgrade_modal .dashicons-lock{
|
121 |
float:left;
|
122 |
}
|
123 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
124 |
ul.frm_form_nav {
|
125 |
margin:0;
|
126 |
float:left;
|
379 |
margin-left: 5px;
|
380 |
}
|
381 |
|
382 |
+
/* Buttons */
|
383 |
+
|
384 |
+
.frm_orange_button,
|
385 |
+
.frm_reverse_button,
|
386 |
+
.post-type-frm_display .wrap .add-new-h2,
|
387 |
+
.frm_wrap .add-new-h2{
|
388 |
+
font-size:12px;
|
389 |
+
border: 1px solid #f37656;
|
390 |
+
color: #f37656;
|
391 |
+
line-height: 1.4;
|
392 |
+
font-weight: 600;
|
393 |
+
padding: 1px 4px;
|
394 |
+
-webkit-border-radius: 4px;
|
395 |
+
border-radius: 4px;
|
396 |
+
background:transparent;
|
397 |
+
}
|
398 |
+
|
399 |
+
.post-type-frm_display .wrap .add-new-h2,
|
400 |
+
.frm_wrap .add-new-h2{
|
401 |
+
margin: 1px 0 0 10px;
|
402 |
+
vertical-align: top;
|
403 |
+
text-transform:lowercase;
|
404 |
+
position:initial;
|
405 |
+
vertical-align: middle;
|
406 |
+
}
|
407 |
+
|
408 |
+
.frm_reverse_button:hover,
|
409 |
+
.frm_reverse_button:active,
|
410 |
+
.frm_reverse_button:focus,
|
411 |
+
.post-type-frm_display .wrap .add-new-h2:hover,
|
412 |
+
.post-type-frm_display .wrap .add-new-h2:active,
|
413 |
+
.post-type-frm_display .wrap .add-new-h2:focus,
|
414 |
+
.frm_wrap .add-new-h2:hover,
|
415 |
+
.frm_wrap .add-new-h2:active,
|
416 |
+
.frm_wrap .add-new-h2:focus{
|
417 |
+
color: #fff;
|
418 |
+
background:#f37656;
|
419 |
+
border: 1px solid #f37656;
|
420 |
+
}
|
421 |
+
|
422 |
+
.frm_reverse_button{
|
423 |
+
font-size: 1.1em;
|
424 |
+
transition: all .2s ease;
|
425 |
+
}
|
426 |
+
|
427 |
+
.frm_orange_button,
|
428 |
+
.wrap .frm_pricing a.button-primary,
|
429 |
+
.toplevel_page_formidable #frm_upgrade_modal .button-primary,
|
430 |
#frm_upgrade_modal .button,
|
431 |
+
#form_global_settings .button-primary,
|
432 |
+
#form_global_settings .button-secondary,
|
433 |
+
.wp-core-ui.frm-white-body .button-primary,
|
434 |
+
.wp-core-ui.frm-white-body .button-secondary,
|
435 |
+
.wp-core-ui.frm-white-body .button,
|
436 |
+
.wp-core-ui.frm-white-body button,
|
437 |
+
.frm-white-body .button-primary,
|
438 |
+
.frm-white-body .button-secondary,
|
439 |
+
.frm-white-body .button,
|
440 |
+
.frm-white-body button{
|
441 |
text-shadow:none;
|
442 |
box-shadow:none;
|
443 |
+
border-radius:4px;
|
444 |
border-color:#e5e5e5;
|
445 |
font-size: 1.1em;
|
446 |
+
transition: all .2s ease;
|
447 |
}
|
448 |
|
449 |
+
#frm-addons-page .button-primary,
|
450 |
+
.frm_single_entry_page .button-primary,
|
451 |
+
#form_global_settings .button-primary,
|
452 |
+
#frm_upgrade_modal .button,
|
453 |
+
.frm_wrap .preview > .button{
|
454 |
+
border-color: rgba(53,97,150,0.5) !important;
|
455 |
+
background: rgb(53,97,150);
|
456 |
+
color: #fff;
|
457 |
+
}
|
458 |
+
|
459 |
+
.frm_orange_button,
|
460 |
.wrap .frm_pricing a.button-primary,
|
461 |
.toplevel_page_formidable #frm_upgrade_modal .button-primary,
|
462 |
.toplevel_page_formidable .frm_wrap button.button-primary{
|
463 |
+
border-color: #da791d !important;
|
464 |
background: #f37656;
|
465 |
color:#fff;
|
466 |
}
|
467 |
|
468 |
+
#frm-addons-page .button-primary:hover,
|
469 |
+
#frm-addons-page .button-primary:focus,
|
470 |
+
#form_global_settings .button-primary:hover,
|
471 |
+
#form_global_settings .button-primary:focus,
|
472 |
+
#frm_upgrade_modal .button:hover,
|
473 |
+
#frm_upgrade_modal .button:focus,
|
474 |
+
.frm_wrap .preview > .button:hover,
|
475 |
+
.frm_wrap .preview > .button:focus{
|
476 |
+
border-color: rgba(130, 168, 203,0.5) !important;
|
477 |
+
background: rgb(130, 168, 203);
|
478 |
+
color: #fff;
|
479 |
+
box-shadow:none;
|
480 |
+
}
|
481 |
+
|
482 |
+
#frm-addons-page .button-primary:focus,
|
483 |
+
#form_global_settings .button-primary:focus,
|
484 |
+
#frm_upgrade_modal .button:focus,
|
485 |
+
.frm_wrap .preview > .button:focus {
|
486 |
+
border-color: rgba(53,97,150,0.5) !important;
|
487 |
+
outline:none;
|
488 |
+
}
|
489 |
+
|
490 |
+
.frm_orange_button:hover,
|
491 |
+
.frm_orange_button:focus,
|
492 |
+
.wrap .frm_pricing a.button-primary:hover,
|
493 |
+
.wrap .frm_pricing a.button-primary:focus,
|
494 |
+
.toplevel_page_formidable #frm_upgrade_modal .button-primary:hover,
|
495 |
+
.toplevel_page_formidable #frm_upgrade_modal .button-primary:focus,
|
496 |
+
.toplevel_page_formidable .frm_wrap button.button-primary:hover,
|
497 |
+
.toplevel_page_formidable .frm_wrap button.button-primary:focus{
|
498 |
+
box-shadow:none;
|
499 |
+
opacity:0.8;
|
500 |
+
}
|
501 |
+
|
502 |
+
.frm_orange_button:hover,
|
503 |
+
.frm_orange_button:focus{
|
504 |
+
border-color: #f37656 !important;
|
505 |
+
background: transparent;
|
506 |
+
color:#f37656;
|
507 |
+
opacity:1;
|
508 |
+
}
|
509 |
+
|
510 |
+
.preview .button .caret {
|
511 |
+
border-top-color: #fff;
|
512 |
+
}
|
513 |
+
|
514 |
#frm-preview-action{
|
515 |
float:right;
|
516 |
}
|
534 |
font-weight:normal
|
535 |
}
|
536 |
|
537 |
+
/* Review request */
|
538 |
+
.frm-review-notice.notice{
|
539 |
+
border:1px solid #ddd;
|
540 |
+
text-align:center;
|
541 |
+
}
|
542 |
+
|
543 |
+
.frm-review-notice.notice form,
|
544 |
+
.frm-review-notice.notice p {
|
545 |
+
font-size:15px;
|
546 |
+
max-width:600px;
|
547 |
+
margin-left:auto;
|
548 |
+
margin-right:auto;
|
549 |
+
}
|
550 |
+
|
551 |
+
.frm-review-notice a{
|
552 |
+
margin:5px;
|
553 |
+
}
|
554 |
+
|
555 |
+
.frm-review-notice > div{
|
556 |
+
padding-bottom:20px;
|
557 |
+
}
|
558 |
+
|
559 |
+
.frm-review-notice .frm_reverse_button,
|
560 |
+
.frm-review-notice .frm_orange_button{
|
561 |
+
min-width:100px;
|
562 |
+
display:inline-block;
|
563 |
+
text-align:center;
|
564 |
+
padding:2px 10px;
|
565 |
+
}
|
566 |
+
|
567 |
+
.frm-review-notice p > span{
|
568 |
+
font-size:14px;
|
569 |
+
opacity:0.75;
|
570 |
+
}
|
571 |
+
|
572 |
+
#frmapi-feedback{
|
573 |
+
margin-top:30px;
|
574 |
+
}
|
575 |
+
|
576 |
+
.frm-review-notice .frm_error,
|
577 |
+
.frm-review-notice label{
|
578 |
+
color:#444;
|
579 |
+
text-align:left;
|
580 |
+
}
|
581 |
+
|
582 |
+
.frm-review-notice label{
|
583 |
+
font-size:14px;
|
584 |
+
}
|
585 |
+
|
586 |
/* Generic Classes */
|
587 |
.frm_invisible{
|
588 |
visibility:hidden;
|
788 |
padding: 5px 12px;
|
789 |
}
|
790 |
|
791 |
+
.frm_message,
|
792 |
+
.frm_wrap .wrap .frm_updated_message,
|
793 |
div.frm_updated_message{
|
794 |
+
border-radius:4px;
|
795 |
border: 1px solid #D6E9C6;
|
796 |
background-color: #DFF0D8;
|
797 |
color: #468847;
|
798 |
padding: 10px 15px;
|
799 |
font-size:14px;
|
800 |
+
margin:5px 0 10px;
|
801 |
}
|
802 |
|
803 |
+
.frm_message,
|
804 |
+
.frm_wrap div.frm_updated_message{
|
805 |
+
margin-left:25px;
|
806 |
+
margin-right:25px;
|
807 |
+
}
|
808 |
+
|
809 |
+
.frm_ribbon {
|
810 |
+
-webkit-transform: rotate(45deg);
|
811 |
+
-moz-transform: rotate(45deg);
|
812 |
+
-ms-transform: rotate(45deg);
|
813 |
+
-o-transform: rotate(45deg);
|
814 |
+
transform: rotate(45deg);
|
815 |
+
border: 25px solid transparent;
|
816 |
+
border-bottom: 25px solid #f37656;
|
817 |
+
position: absolute;
|
818 |
+
top: 3px;
|
819 |
+
right: -39px;
|
820 |
+
padding: 0 10px;
|
821 |
+
width: 65px;
|
822 |
+
color: white;
|
823 |
+
font-family: sans-serif;
|
824 |
+
size: 11px;
|
825 |
}
|
826 |
|
827 |
+
.frm_ribbon span {
|
828 |
+
position: absolute;
|
829 |
+
top: 2px;
|
830 |
+
left: 25px;
|
831 |
+
font-size: 17px;
|
832 |
+
}
|
833 |
+
|
834 |
.update-nag.frm-update-to-pro{
|
835 |
border:none;
|
836 |
border-bottom: 1px solid #d55a1e;
|
899 |
width: 31.3%;
|
900 |
margin:0 3% 30px 0;
|
901 |
clear:none;
|
902 |
+
border-radius: 10px;
|
903 |
+
border-color: rgb( 235, 235, 235 );
|
904 |
+
border-width: 2px;
|
905 |
}
|
906 |
|
907 |
.frm-addons .plugin-card-top{
|
908 |
+
height:175px;
|
909 |
+
}
|
910 |
+
|
911 |
+
.frm-addons .plugin-card-top h2 {
|
912 |
+
margin-top: 10px;
|
913 |
+
font-weight: 400;
|
914 |
+
}
|
915 |
+
|
916 |
+
.frm-addons .plugin-card-top p {
|
917 |
+
opacity:0.8;
|
918 |
}
|
919 |
|
920 |
.frm-addons .plugin-card:nth-child(3n+3) {
|
926 |
}
|
927 |
|
928 |
.frm-addons .plugin-card-bottom {
|
929 |
+
padding: 5px 20px 20px;
|
930 |
text-align:center;
|
931 |
+
background: transparent;
|
932 |
+
border-top: none;
|
933 |
}
|
934 |
|
935 |
.frm-addons .plugin-card-bottom,
|
943 |
|
944 |
.frm-addons .addon-status {
|
945 |
float:left;
|
946 |
+
padding-top: 4px;
|
947 |
}
|
948 |
|
949 |
.frm-addon-active .button {
|
1115 |
}
|
1116 |
|
1117 |
a.frm-option-icon:before{
|
1118 |
+
color: rgb(53,97,150);
|
1119 |
font-size: 22px;
|
1120 |
width: 22px;
|
1121 |
height: 22px;
|
2929 |
border: 1px solid #5b9dd9;
|
2930 |
color:#1c94c4;
|
2931 |
display:block;
|
2932 |
+
border-radius: 4px;
|
2933 |
}
|
2934 |
|
2935 |
.frm_code_list.frm_grid_container a:hover{
|
2936 |
+
background-color:rgb(53,97,150);
|
2937 |
color:#fbfdff;
|
2938 |
}
|
2939 |
|
3056 |
#frm_upgrade_modal .dismiss {
|
3057 |
padding: 5px;
|
3058 |
color: #c4c4c4;
|
3059 |
+
z-index: 100;
|
3060 |
+
position: relative;
|
3061 |
}
|
3062 |
|
3063 |
#frm_upgrade_modal .dashicons-lock{
|
css/frm_fonts.css
CHANGED
@@ -34,7 +34,7 @@
|
|
34 |
float:none;
|
35 |
}
|
36 |
.frm_plugin_updating{line-height:24px;}
|
37 |
-
.frm_plugin_updating .frm_spinner{float:left;display:block;}
|
38 |
|
39 |
.frm_hidden, input.frm_hidden{display:none;}
|
40 |
|
34 |
float:none;
|
35 |
}
|
36 |
.frm_plugin_updating{line-height:24px;}
|
37 |
+
.frm_plugin_updating .frm_spinner{float:left;display:block;visibility:visible;}
|
38 |
|
39 |
.frm_hidden, input.frm_hidden{display:none;}
|
40 |
|
{classes/models → deprecated}/FrmDbDeprecated.php
RENAMED
@@ -4,6 +4,8 @@
|
|
4 |
* Class FrmDbDeprecated
|
5 |
*
|
6 |
* @since 2.03.05
|
|
|
|
|
7 |
*/
|
8 |
class FrmDbDeprecated {
|
9 |
|
@@ -28,7 +30,7 @@ class FrmDbDeprecated {
|
|
28 |
* @deprecated 2.03.05
|
29 |
*/
|
30 |
public function upgrade() {
|
31 |
-
_deprecated_function( __FUNCTION__, '2.
|
32 |
|
33 |
$db = new FrmMigrate();
|
34 |
$db->upgrade();
|
@@ -38,7 +40,7 @@ class FrmDbDeprecated {
|
|
38 |
* @deprecated 2.03.05
|
39 |
*/
|
40 |
public function collation() {
|
41 |
-
_deprecated_function( __FUNCTION__, '2.
|
42 |
|
43 |
$db = new FrmMigrate();
|
44 |
return $db->collation();
|
@@ -48,7 +50,7 @@ class FrmDbDeprecated {
|
|
48 |
* @deprecated 2.03.05
|
49 |
*/
|
50 |
public function uninstall() {
|
51 |
-
_deprecated_function( __FUNCTION__, '2.
|
52 |
|
53 |
$db = new FrmMigrate();
|
54 |
$db->uninstall();
|
4 |
* Class FrmDbDeprecated
|
5 |
*
|
6 |
* @since 2.03.05
|
7 |
+
* @deprecated 2.03.05
|
8 |
+
* @codeCoverageIgnore
|
9 |
*/
|
10 |
class FrmDbDeprecated {
|
11 |
|
30 |
* @deprecated 2.03.05
|
31 |
*/
|
32 |
public function upgrade() {
|
33 |
+
_deprecated_function( __FUNCTION__, '2.05.06', 'FrmMigrate::upgrade' );
|
34 |
|
35 |
$db = new FrmMigrate();
|
36 |
$db->upgrade();
|
40 |
* @deprecated 2.03.05
|
41 |
*/
|
42 |
public function collation() {
|
43 |
+
_deprecated_function( __FUNCTION__, '2.05.06', 'FrmMigrate::collation' );
|
44 |
|
45 |
$db = new FrmMigrate();
|
46 |
return $db->collation();
|
50 |
* @deprecated 2.03.05
|
51 |
*/
|
52 |
public function uninstall() {
|
53 |
+
_deprecated_function( __FUNCTION__, '2.05.06', 'FrmMigrate::uninstall' );
|
54 |
|
55 |
$db = new FrmMigrate();
|
56 |
$db->uninstall();
|
deprecated/FrmDeprecated.php
ADDED
@@ -0,0 +1,786 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Class FrmDeprecated
|
5 |
+
*
|
6 |
+
* @since 3.04.03
|
7 |
+
* @codeCoverageIgnore
|
8 |
+
*/
|
9 |
+
class FrmDeprecated {
|
10 |
+
|
11 |
+
/**
|
12 |
+
* @deprecated 2.3
|
13 |
+
*/
|
14 |
+
public static function deprecated( $function, $version ) {
|
15 |
+
_deprecated_function( $function, $version );
|
16 |
+
}
|
17 |
+
|
18 |
+
/**
|
19 |
+
* @deprecated 3.04.03
|
20 |
+
*/
|
21 |
+
public static function get_licenses() {
|
22 |
+
_deprecated_function( __FUNCTION__, '3.04.03' );
|
23 |
+
|
24 |
+
$allow_autofill = self::allow_autofill();
|
25 |
+
$required_role = $allow_autofill ? 'setup_network' : 'frm_change_settings';
|
26 |
+
FrmAppHelper::permission_check( $required_role );
|
27 |
+
check_ajax_referer( 'frm_ajax', 'nonce' );
|
28 |
+
|
29 |
+
if ( is_multisite() && get_site_option( 'frmpro-wpmu-sitewide' ) ) {
|
30 |
+
$license = get_site_option( 'frmpro-credentials' );
|
31 |
+
} else {
|
32 |
+
$license = get_option( 'frmpro-credentials' );
|
33 |
+
}
|
34 |
+
|
35 |
+
if ( $license && is_array( $license ) && isset( $license['license'] ) ) {
|
36 |
+
$url = 'https://formidableforms.com/frm-edd-api/licenses?l=' . urlencode( base64_encode( $license['license'] ) );
|
37 |
+
$licenses = self::send_api_request(
|
38 |
+
$url,
|
39 |
+
array(
|
40 |
+
'name' => 'frm_api_licence',
|
41 |
+
'expires' => 60 * 60 * 5,
|
42 |
+
)
|
43 |
+
);
|
44 |
+
echo json_encode( $licenses );
|
45 |
+
}
|
46 |
+
|
47 |
+
wp_die();
|
48 |
+
}
|
49 |
+
|
50 |
+
|
51 |
+
/**
|
52 |
+
* Don't allow subsite addon licenses to be fetched
|
53 |
+
* unless the current user has super admin permissions
|
54 |
+
*
|
55 |
+
* @since 2.03.10
|
56 |
+
* @deprecated 3.04.03
|
57 |
+
*/
|
58 |
+
private static function allow_autofill() {
|
59 |
+
$allow_autofill = FrmAppHelper::pro_is_installed();
|
60 |
+
if ( $allow_autofill && is_multisite() ) {
|
61 |
+
$sitewide_activated = get_site_option( 'frmpro-wpmu-sitewide' );
|
62 |
+
if ( $sitewide_activated ) {
|
63 |
+
$allow_autofill = current_user_can( 'setup_network' );
|
64 |
+
}
|
65 |
+
}
|
66 |
+
return $allow_autofill;
|
67 |
+
}
|
68 |
+
|
69 |
+
/**
|
70 |
+
* @deprecated 3.04.03
|
71 |
+
*/
|
72 |
+
private static function send_api_request( $url, $transient = array() ) {
|
73 |
+
$data = get_transient( $transient['name'] );
|
74 |
+
if ( $data !== false ) {
|
75 |
+
return $data;
|
76 |
+
}
|
77 |
+
|
78 |
+
$arg_array = array(
|
79 |
+
'body' => array(
|
80 |
+
'url' => home_url(),
|
81 |
+
),
|
82 |
+
'timeout' => 15,
|
83 |
+
'user-agent' => 'Formidable/' . FrmAppHelper::$plug_version . '; ' . home_url(),
|
84 |
+
);
|
85 |
+
|
86 |
+
$response = wp_remote_post( $url, $arg_array );
|
87 |
+
$body = wp_remote_retrieve_body( $response );
|
88 |
+
$data = false;
|
89 |
+
if ( ! is_wp_error( $response ) && ! is_wp_error( $body ) ) {
|
90 |
+
$data = json_decode( $body, true );
|
91 |
+
set_transient( $transient['name'], $data, $transient['expires'] );
|
92 |
+
}
|
93 |
+
|
94 |
+
return $data;
|
95 |
+
}
|
96 |
+
|
97 |
+
/**
|
98 |
+
* Add a filter to shorten the EDD filename for Formidable plugin, and add-on, updates
|
99 |
+
*
|
100 |
+
* @since 2.03.08
|
101 |
+
* @deprecated 3.04.03
|
102 |
+
*
|
103 |
+
* @param boolean $return
|
104 |
+
* @param string $package
|
105 |
+
*
|
106 |
+
* @return boolean
|
107 |
+
*/
|
108 |
+
public static function add_shorten_edd_filename_filter( $return, $package ) {
|
109 |
+
_deprecated_function( __FUNCTION__, '3.04.03' );
|
110 |
+
|
111 |
+
if ( strpos( $package, '/edd-sl/package_download/' ) !== false && strpos( $package, 'formidableforms.com' ) !== false ) {
|
112 |
+
add_filter( 'wp_unique_filename', 'FrmDeprecated::shorten_edd_filename', 10, 2 );
|
113 |
+
}
|
114 |
+
|
115 |
+
return $return;
|
116 |
+
}
|
117 |
+
|
118 |
+
/**
|
119 |
+
* Shorten the EDD filename for automatic updates
|
120 |
+
* Decreases size of file path so file path limit is not hit on Windows servers
|
121 |
+
*
|
122 |
+
* @since 2.03.08
|
123 |
+
* @deprecated 3.04.03
|
124 |
+
*
|
125 |
+
* @param string $filename
|
126 |
+
* @param string $ext
|
127 |
+
*
|
128 |
+
* @return string
|
129 |
+
*/
|
130 |
+
public static function shorten_edd_filename( $filename, $ext ) {
|
131 |
+
_deprecated_function( __FUNCTION__, '3.04.03' );
|
132 |
+
|
133 |
+
$filename = substr( $filename, 0, 50 ) . $ext;
|
134 |
+
remove_filter( 'wp_unique_filename', 'FrmDeprecated::shorten_edd_filename', 10 );
|
135 |
+
|
136 |
+
return $filename;
|
137 |
+
}
|
138 |
+
|
139 |
+
/**
|
140 |
+
* Filter shortcodes in text widgets
|
141 |
+
*
|
142 |
+
* @deprecated 2.5.4
|
143 |
+
*/
|
144 |
+
public static function widget_text_filter( $content ) {
|
145 |
+
_deprecated_function( __FUNCTION__, '2.5.4' );
|
146 |
+
$regex = '/\[\s*(formidable|display-frm-data|frm-stats|frm-graph|frm-entry-links|formresults|frm-search)\s+.*\]/';
|
147 |
+
return preg_replace_callback( $regex, 'FrmAppHelper::widget_text_filter_callback', $content );
|
148 |
+
}
|
149 |
+
|
150 |
+
/**
|
151 |
+
* Used to filter shortcode in text widgets
|
152 |
+
*
|
153 |
+
* @deprecated 2.5.4
|
154 |
+
*/
|
155 |
+
public static function widget_text_filter_callback( $matches ) {
|
156 |
+
_deprecated_function( __FUNCTION__, '2.5.4' );
|
157 |
+
return do_shortcode( $matches[0] );
|
158 |
+
}
|
159 |
+
|
160 |
+
/**
|
161 |
+
* Deprecated in favor of wpmu_upgrade_site
|
162 |
+
*
|
163 |
+
* @deprecated 2.3
|
164 |
+
*/
|
165 |
+
public static function front_head() {
|
166 |
+
_deprecated_function( __FUNCTION__, '2.3' );
|
167 |
+
if ( is_multisite() && FrmAppController::needs_update() ) {
|
168 |
+
FrmAppController::install();
|
169 |
+
}
|
170 |
+
}
|
171 |
+
|
172 |
+
/**
|
173 |
+
* @deprecated 3.0.04
|
174 |
+
*/
|
175 |
+
public static function activation_install() {
|
176 |
+
_deprecated_function( __FUNCTION__, '3.0.04', 'FrmAppController::install' );
|
177 |
+
FrmDb::delete_cache_and_transient( 'frm_plugin_version' );
|
178 |
+
FrmFormActionsController::actions_init();
|
179 |
+
FrmAppController::install();
|
180 |
+
}
|
181 |
+
|
182 |
+
/**
|
183 |
+
* Routes for wordpress pages -- we're just replacing content
|
184 |
+
*
|
185 |
+
* @deprecated 3.0
|
186 |
+
*/
|
187 |
+
public static function page_route( $content ) {
|
188 |
+
_deprecated_function( __FUNCTION__, '3.0' );
|
189 |
+
global $post;
|
190 |
+
|
191 |
+
if ( $post && isset( $_GET['form'] ) ) {
|
192 |
+
$content = FrmFormsController::page_preview();
|
193 |
+
}
|
194 |
+
|
195 |
+
return $content;
|
196 |
+
}
|
197 |
+
|
198 |
+
/**
|
199 |
+
* @deprecated 1.07.05
|
200 |
+
*/
|
201 |
+
public static function get_form_shortcode( $atts ) {
|
202 |
+
_deprecated_function( __FUNCTION__, '1.07.05', 'FrmFormsController::get_form_shortcode()' );
|
203 |
+
return FrmFormsController::get_form_shortcode( $atts );
|
204 |
+
}
|
205 |
+
|
206 |
+
/**
|
207 |
+
* @deprecated 1.07.05
|
208 |
+
*/
|
209 |
+
public static function show_form( $id = '', $key = '', $title = false, $description = false ) {
|
210 |
+
_deprecated_function( __FUNCTION__, '1.07.05', 'FrmFormsController::show_form()' );
|
211 |
+
return FrmFormsController::show_form( $id, $key, $title, $description );
|
212 |
+
}
|
213 |
+
|
214 |
+
/**
|
215 |
+
* @deprecated 1.07.05
|
216 |
+
*/
|
217 |
+
public static function get_form( $filename, $form, $title, $description ) {
|
218 |
+
_deprecated_function( __FUNCTION__, '1.07.05', 'FrmFormsController::get_form()' );
|
219 |
+
return FrmFormsController::get_form( $form, $title, $description );
|
220 |
+
}
|
221 |
+
|
222 |
+
/**
|
223 |
+
* @deprecated 3.0
|
224 |
+
*/
|
225 |
+
public static function edit_name( $field = 'name', $id = '' ) {
|
226 |
+
_deprecated_function( __FUNCTION__, '3.0' );
|
227 |
+
|
228 |
+
FrmAppHelper::permission_check( 'frm_edit_forms' );
|
229 |
+
check_ajax_referer( 'frm_ajax', 'nonce' );
|
230 |
+
|
231 |
+
if ( empty( $field ) ) {
|
232 |
+
$field = 'name';
|
233 |
+
}
|
234 |
+
|
235 |
+
if ( empty( $id ) ) {
|
236 |
+
$id = FrmAppHelper::get_post_param( 'element_id', '', 'sanitize_title' );
|
237 |
+
$id = str_replace( 'field_label_', '', $id );
|
238 |
+
}
|
239 |
+
|
240 |
+
$value = FrmAppHelper::get_post_param( 'update_value', '', 'wp_kses_post' );
|
241 |
+
$value = trim( $value );
|
242 |
+
if ( trim( strip_tags( $value ) ) === '' ) {
|
243 |
+
// set blank value if there is no content
|
244 |
+
$value = '';
|
245 |
+
}
|
246 |
+
|
247 |
+
FrmField::update( $id, array( $field => $value ) );
|
248 |
+
|
249 |
+
do_action( 'frm_after_update_field_' . $field, compact( 'id', 'value' ) );
|
250 |
+
|
251 |
+
echo stripslashes( wp_kses_post( $value ) ); // WPCS: XSS ok.
|
252 |
+
wp_die();
|
253 |
+
}
|
254 |
+
|
255 |
+
/**
|
256 |
+
* Load a single field in the form builder along with all needed variables
|
257 |
+
*
|
258 |
+
* @deprecated 3.0
|
259 |
+
*
|
260 |
+
* @param int $field_id
|
261 |
+
* @param array $values
|
262 |
+
* @param int $form_id
|
263 |
+
*
|
264 |
+
* @return array
|
265 |
+
*/
|
266 |
+
public static function include_single_field( $field_id, $values, $form_id = 0 ) {
|
267 |
+
_deprecated_function( __FUNCTION__, '3.0', 'FrmFieldsController::load_single_field' );
|
268 |
+
|
269 |
+
$field = FrmFieldsHelper::setup_edit_vars( FrmField::getOne( $field_id ) );
|
270 |
+
FrmFieldsController::load_single_field( $field, $values, $form_id );
|
271 |
+
|
272 |
+
return $field;
|
273 |
+
}
|
274 |
+
|
275 |
+
/**
|
276 |
+
* @deprecated 3.0
|
277 |
+
*/
|
278 |
+
public static function bulk_create_template( $ids ) {
|
279 |
+
_deprecated_function( __FUNCTION__, '3.0', 'FrmForm::duplicate( $id, true, true )' );
|
280 |
+
FrmAppHelper::permission_check( 'frm_edit_forms' );
|
281 |
+
|
282 |
+
foreach ( $ids as $id ) {
|
283 |
+
FrmForm::duplicate( $id, true, true );
|
284 |
+
}
|
285 |
+
|
286 |
+
return __( 'Form template was Successfully Created', 'formidable' );
|
287 |
+
}
|
288 |
+
|
289 |
+
/**
|
290 |
+
* @deprecated 2.03
|
291 |
+
*/
|
292 |
+
public static function register_pro_scripts() {
|
293 |
+
_deprecated_function( __FUNCTION__, '2.03', 'FrmProEntriesController::register_scripts' );
|
294 |
+
if ( FrmAppHelper::pro_is_installed() ) {
|
295 |
+
FrmProEntriesController::register_scripts();
|
296 |
+
}
|
297 |
+
}
|
298 |
+
|
299 |
+
/**
|
300 |
+
* @deprecated 3.0
|
301 |
+
*/
|
302 |
+
public static function edit_key() {
|
303 |
+
_deprecated_function( __FUNCTION__, '3.0' );
|
304 |
+
$values = self::edit_in_place_value( 'form_key' );
|
305 |
+
echo wp_kses( stripslashes( FrmForm::get_key_by_id( $values['form_id'] ) ), array() );
|
306 |
+
wp_die();
|
307 |
+
}
|
308 |
+
|
309 |
+
/**
|
310 |
+
* @deprecated 3.0
|
311 |
+
*/
|
312 |
+
public static function edit_description() {
|
313 |
+
_deprecated_function( __FUNCTION__, '3.0' );
|
314 |
+
$values = self::edit_in_place_value( 'description' );
|
315 |
+
echo wp_kses_post( FrmAppHelper::use_wpautop( stripslashes( $values['description'] ) ) );
|
316 |
+
wp_die();
|
317 |
+
}
|
318 |
+
|
319 |
+
/**
|
320 |
+
* @deprecated 3.0
|
321 |
+
*/
|
322 |
+
private static function edit_in_place_value( $field ) {
|
323 |
+
_deprecated_function( __FUNCTION__, '3.0' );
|
324 |
+
check_ajax_referer( 'frm_ajax', 'nonce' );
|
325 |
+
FrmAppHelper::permission_check( 'frm_edit_forms', 'hide' );
|
326 |
+
|
327 |
+
$form_id = FrmAppHelper::get_post_param( 'form_id', '', 'absint' );
|
328 |
+
$value = FrmAppHelper::get_post_param( 'update_value', '', 'wp_filter_post_kses' );
|
329 |
+
|
330 |
+
$values = array( $field => trim( $value ) );
|
331 |
+
FrmForm::update( $form_id, $values );
|
332 |
+
$values['form_id'] = $form_id;
|
333 |
+
|
334 |
+
return $values;
|
335 |
+
}
|
336 |
+
|
337 |
+
/**
|
338 |
+
* @deprecated 1.07.05
|
339 |
+
*/
|
340 |
+
public static function add_default_templates( $path, $default = true, $template = true ) {
|
341 |
+
_deprecated_function( __FUNCTION__, '1.07.05', 'FrmXMLController::add_default_templates()' );
|
342 |
+
|
343 |
+
$path = untrailingslashit( trim( $path ) );
|
344 |
+
$templates = glob( $path . '/*.php' );
|
345 |
+
|
346 |
+
for ( $i = count( $templates ) - 1; $i >= 0; $i-- ) {
|
347 |
+
$filename = str_replace( '.php', '', str_replace( $path . '/', '', $templates[ $i ] ) );
|
348 |
+
$template_query = array( 'form_key' => $filename );
|
349 |
+
if ( $template ) {
|
350 |
+
$template_query['is_template'] = 1;
|
351 |
+
}
|
352 |
+
if ( $default ) {
|
353 |
+
$template_query['default_template'] = 1;
|
354 |
+
}
|
355 |
+
$form = FrmForm::getAll( $template_query, '', 1 );
|
356 |
+
|
357 |
+
$values = FrmFormsHelper::setup_new_vars();
|
358 |
+
$values['form_key'] = $filename;
|
359 |
+
$values['is_template'] = $template;
|
360 |
+
$values['status'] = 'published';
|
361 |
+
if ( $default ) {
|
362 |
+
$values['default_template'] = 1;
|
363 |
+
}
|
364 |
+
|
365 |
+
include( $templates[ $i ] );
|
366 |
+
|
367 |
+
//get updated form
|
368 |
+
if ( isset( $form ) && ! empty( $form ) ) {
|
369 |
+
$old_id = $form->id;
|
370 |
+
$form = FrmForm::getOne( $form->id );
|
371 |
+
} else {
|
372 |
+
$old_id = false;
|
373 |
+
$form = FrmForm::getAll( $template_query, '', 1 );
|
374 |
+
}
|
375 |
+
|
376 |
+
if ( $form ) {
|
377 |
+
do_action( 'frm_after_duplicate_form', $form->id, (array) $form, array( 'old_id' => $old_id ) );
|
378 |
+
}
|
379 |
+
}
|
380 |
+
}
|
381 |
+
|
382 |
+
/**
|
383 |
+
* @deprecated 3.01
|
384 |
+
*/
|
385 |
+
public static function sanitize_array( &$values ) {
|
386 |
+
_deprecated_function( __FUNCTION__, '3.01', 'FrmAppHelper::sanitize_value' );
|
387 |
+
FrmAppHelper::sanitize_value( 'wp_kses_post', $values );
|
388 |
+
}
|
389 |
+
|
390 |
+
/**
|
391 |
+
* Prepare and save settings in styles and actions
|
392 |
+
*
|
393 |
+
* @param array $settings
|
394 |
+
* @param string $group
|
395 |
+
*
|
396 |
+
* @since 2.0.6
|
397 |
+
* @deprecated 2.05.06
|
398 |
+
*/
|
399 |
+
public static function save_settings( $settings, $group ) {
|
400 |
+
_deprecated_function( __FUNCTION__, '2.05.06', 'FrmDb::' . __FUNCTION__ );
|
401 |
+
return FrmDb::save_settings( $settings, $group );
|
402 |
+
}
|
403 |
+
|
404 |
+
/**
|
405 |
+
* Since actions are JSON encoded, we don't want any filters messing with it.
|
406 |
+
* Remove the filters and then add them back in case any posts or views are
|
407 |
+
* also being imported.
|
408 |
+
*
|
409 |
+
* Used when saving form actions and styles
|
410 |
+
*
|
411 |
+
* @since 2.0.4
|
412 |
+
* @deprecated 2.05.06
|
413 |
+
*/
|
414 |
+
public static function save_json_post( $settings ) {
|
415 |
+
_deprecated_function( __FUNCTION__, '2.05.06', 'FrmDb::' . __FUNCTION__ );
|
416 |
+
return FrmDb::save_json_post( $settings );
|
417 |
+
}
|
418 |
+
|
419 |
+
/**
|
420 |
+
* Check cache before fetching values and saving to cache
|
421 |
+
*
|
422 |
+
* @since 2.0
|
423 |
+
* @deprecated 2.05.06
|
424 |
+
*
|
425 |
+
* @param string $cache_key The unique name for this cache
|
426 |
+
* @param string $group The name of the cache group
|
427 |
+
* @param string $query If blank, don't run a db call
|
428 |
+
* @param string $type The wpdb function to use with this query
|
429 |
+
* @return mixed $results The cache or query results
|
430 |
+
*/
|
431 |
+
public static function check_cache( $cache_key, $group = '', $query = '', $type = 'get_var', $time = 300 ) {
|
432 |
+
_deprecated_function( __FUNCTION__, '2.05.06', 'FrmDb::' . __FUNCTION__ );
|
433 |
+
return FrmDb::check_cache( $cache_key, $group, $query, $type, $time );
|
434 |
+
}
|
435 |
+
|
436 |
+
/**
|
437 |
+
* @deprecated 2.05.06
|
438 |
+
*/
|
439 |
+
public static function set_cache( $cache_key, $results, $group = '', $time = 300 ) {
|
440 |
+
_deprecated_function( __FUNCTION__, '2.05.06', 'FrmDb::' . __FUNCTION__ );
|
441 |
+
FrmDb::set_cache( $cache_key, $results, $group, $time );
|
442 |
+
}
|
443 |
+
|
444 |
+
/**
|
445 |
+
* Keep track of the keys cached in each group so they can be deleted
|
446 |
+
* in Redis and Memcache
|
447 |
+
* @deprecated 2.05.06
|
448 |
+
*/
|
449 |
+
public static function add_key_to_group_cache( $key, $group ) {
|
450 |
+
_deprecated_function( __FUNCTION__, '2.05.06', 'FrmDb::' . __FUNCTION__ );
|
451 |
+
FrmDb::add_key_to_group_cache( $key, $group );
|
452 |
+
}
|
453 |
+
|
454 |
+
/**
|
455 |
+
* @deprecated 2.05.06
|
456 |
+
*/
|
457 |
+
public static function get_group_cached_keys( $group ) {
|
458 |
+
_deprecated_function( __FUNCTION__, '2.05.06', 'FrmDb::' . __FUNCTION__ );
|
459 |
+
return FrmDb::get_group_cached_keys( $group );
|
460 |
+
}
|
461 |
+
|
462 |
+
/**
|
463 |
+
* @since 2.0
|
464 |
+
* @deprecated 2.05.06
|
465 |
+
* @param string $cache_key
|
466 |
+
*/
|
467 |
+
public static function delete_cache_and_transient( $cache_key, $group = 'default' ) {
|
468 |
+
_deprecated_function( __FUNCTION__, '2.05.06', 'FrmDb::' . __FUNCTION__ );
|
469 |
+
FrmDb::delete_cache_and_transient( $cache_key, $group );
|
470 |
+
}
|
471 |
+
|
472 |
+
/**
|
473 |
+
* @since 2.0
|
474 |
+
* @deprecated 2.05.06
|
475 |
+
*
|
476 |
+
* @param string $group The name of the cache group
|
477 |
+
*/
|
478 |
+
public static function cache_delete_group( $group ) {
|
479 |
+
_deprecated_function( __FUNCTION__, '2.05.06', 'FrmDb::' . __FUNCTION__ );
|
480 |
+
FrmDb::cache_delete_group( $group );
|
481 |
+
}
|
482 |
+
|
483 |
+
/**
|
484 |
+
* Added for < WP 4.0 compatability
|
485 |
+
*
|
486 |
+
* @since 1.07.10
|
487 |
+
* @deprecated 2.05.06
|
488 |
+
*
|
489 |
+
* @param string $term The value to escape
|
490 |
+
* @return string The escaped value
|
491 |
+
*/
|
492 |
+
public static function esc_like( $term ) {
|
493 |
+
_deprecated_function( __FUNCTION__, '2.05.06', 'FrmDb::' . __FUNCTION__ );
|
494 |
+
return FrmDb::esc_like( $term );
|
495 |
+
}
|
496 |
+
|
497 |
+
/**
|
498 |
+
* @param string $order_query
|
499 |
+
* @deprecated 2.05.06
|
500 |
+
*/
|
501 |
+
public static function esc_order( $order_query ) {
|
502 |
+
_deprecated_function( __FUNCTION__, '2.05.06', 'FrmDb::' . __FUNCTION__ );
|
503 |
+
return FrmDb::esc_order( $order_query );
|
504 |
+
}
|
505 |
+
|
506 |
+
/**
|
507 |
+
* Make sure this is ordering by either ASC or DESC
|
508 |
+
* @deprecated 2.05.06
|
509 |
+
*/
|
510 |
+
public static function esc_order_by( &$order_by ) {
|
511 |
+
_deprecated_function( __FUNCTION__, '2.05.06', 'FrmDb::' . __FUNCTION__ );
|
512 |
+
FrmDb::esc_order_by( $order_by );
|
513 |
+
}
|
514 |
+
|
515 |
+
/**
|
516 |
+
* @param string $limit
|
517 |
+
* @deprecated 2.05.06
|
518 |
+
*/
|
519 |
+
public static function esc_limit( $limit ) {
|
520 |
+
_deprecated_function( __FUNCTION__, '2.05.06', 'FrmDb::' . __FUNCTION__ );
|
521 |
+
return FrmDb::esc_limit( $limit );
|
522 |
+
}
|
523 |
+
|
524 |
+
/**
|
525 |
+
* Get an array of values ready to go through $wpdb->prepare
|
526 |
+
* @since 2.0
|
527 |
+
* @deprecated 2.05.06
|
528 |
+
*/
|
529 |
+
public static function prepare_array_values( $array, $type = '%s' ) {
|
530 |
+
_deprecated_function( __FUNCTION__, '2.05.06', 'FrmDb::' . __FUNCTION__ );
|
531 |
+
return FrmDb::prepare_array_values( $array, $type );
|
532 |
+
}
|
533 |
+
|
534 |
+
/**
|
535 |
+
* @deprecated 2.05.06
|
536 |
+
*/
|
537 |
+
public static function prepend_and_or_where( $starts_with = ' WHERE ', $where = '' ) {
|
538 |
+
_deprecated_function( __FUNCTION__, '2.05.06', 'FrmDb::' . __FUNCTION__ );
|
539 |
+
return FrmDb::prepend_and_or_where( $starts_with, $where );
|
540 |
+
}
|
541 |
+
|
542 |
+
/**
|
543 |
+
* @deprecated 2.05.06
|
544 |
+
*/
|
545 |
+
public static function upgrade() {
|
546 |
+
$db = new FrmDbDeprecated();
|
547 |
+
$db->upgrade();
|
548 |
+
}
|
549 |
+
|
550 |
+
/**
|
551 |
+
* @deprecated 2.05.06
|
552 |
+
*/
|
553 |
+
public static function collation() {
|
554 |
+
$db = new FrmDbDeprecated();
|
555 |
+
return $db->collation();
|
556 |
+
}
|
557 |
+
|
558 |
+
/**
|
559 |
+
* @deprecated 2.05.06
|
560 |
+
*/
|
561 |
+
public static function uninstall() {
|
562 |
+
$db = new FrmDbDeprecated();
|
563 |
+
$db->uninstall();
|
564 |
+
}
|
565 |
+
|
566 |
+
/**
|
567 |
+
* @deprecated 3.0
|
568 |
+
*
|
569 |
+
* @param string $html
|
570 |
+
* @param array $field
|
571 |
+
* @param array $errors
|
572 |
+
* @param object $form
|
573 |
+
* @param array $args
|
574 |
+
*
|
575 |
+
* @return string
|
576 |
+
*/
|
577 |
+
public static function replace_shortcodes( $html, $field, $errors = array(), $form = false, $args = array() ) {
|
578 |
+
_deprecated_function( __FUNCTION__, '3.0', 'FrmFieldType::prepare_field_html' );
|
579 |
+
$field_obj = FrmFieldFactory::get_field_type( $field['type'], $field );
|
580 |
+
return $field_obj->prepare_field_html( compact( 'errors', 'form' ) );
|
581 |
+
}
|
582 |
+
|
583 |
+
/**
|
584 |
+
* @deprecated 3.0
|
585 |
+
*/
|
586 |
+
public static function get_default_field_opts( $type, $field = null, $limit = false ) {
|
587 |
+
if ( $limit ) {
|
588 |
+
_deprecated_function( __FUNCTION__, '3.0', 'FrmFieldHelper::get_default_field_options' );
|
589 |
+
$field_options = FrmFieldsHelper::get_default_field_options( $type );
|
590 |
+
} else {
|
591 |
+
_deprecated_function( __FUNCTION__, '3.0', 'FrmFieldHelper::get_default_field' );
|
592 |
+
$field_options = FrmFieldsHelper::get_default_field( $type );
|
593 |
+
}
|
594 |
+
|
595 |
+
return $field_options;
|
596 |
+
}
|
597 |
+
|
598 |
+
/**
|
599 |
+
* @deprecated 2.02.07
|
600 |
+
*/
|
601 |
+
public static function dropdown_categories( $args ) {
|
602 |
+
_deprecated_function( __FUNCTION__, '2.02.07', 'FrmProPost::get_category_dropdown' );
|
603 |
+
|
604 |
+
if ( FrmAppHelper::pro_is_installed() ) {
|
605 |
+
$args['location'] = 'front';
|
606 |
+
$dropdown = FrmProPost::get_category_dropdown( $args['field'], $args );
|
607 |
+
} else {
|
608 |
+
$dropdown = '';
|
609 |
+
}
|
610 |
+
|
611 |
+
return $dropdown;
|
612 |
+
}
|
613 |
+
|
614 |
+
/**
|
615 |
+
* @deprecated 3.0
|
616 |
+
*/
|
617 |
+
public static function remove_inline_conditions( $no_vars, $code, $replace_with, &$html ) {
|
618 |
+
_deprecated_function( __FUNCTION__, '3.0', 'FrmShortcodeHelper::remove_inline_conditions' );
|
619 |
+
FrmShortcodeHelper::remove_inline_conditions( $no_vars, $code, $replace_with, $html );
|
620 |
+
}
|
621 |
+
|
622 |
+
/**
|
623 |
+
* @deprecated 3.0
|
624 |
+
*/
|
625 |
+
public static function get_shortcode_tag( $shortcodes, $short_key, $args ) {
|
626 |
+
_deprecated_function( __FUNCTION__, '3.0', 'FrmShortcodeHelper::get_shortcode_tag' );
|
627 |
+
return FrmShortcodeHelper::get_shortcode_tag( $shortcodes, $short_key, $args );
|
628 |
+
}
|
629 |
+
|
630 |
+
/**
|
631 |
+
* @deprecated 3.01
|
632 |
+
*/
|
633 |
+
public static function get_sigle_label_postitions() {
|
634 |
+
_deprecated_function( __FUNCTION__, '3.01', 'FrmStylesHelper::get_single_label_positions' );
|
635 |
+
return FrmStylesHelper::get_single_label_positions();
|
636 |
+
}
|
637 |
+
|
638 |
+
/**
|
639 |
+
* @deprecated 3.02.03
|
640 |
+
*/
|
641 |
+
public static function jquery_themes() {
|
642 |
+
_deprecated_function( __FUNCTION__, '3.02.03', 'FrmProStylesController::jquery_themes' );
|
643 |
+
|
644 |
+
$themes = array(
|
645 |
+
'ui-lightness' => 'UI Lightness',
|
646 |
+
'ui-darkness' => 'UI Darkness',
|
647 |
+
'smoothness' => 'Smoothness',
|
648 |
+
'start' => 'Start',
|
649 |
+
'redmond' => 'Redmond',
|
650 |
+
'sunny' => 'Sunny',
|
651 |
+
'overcast' => 'Overcast',
|
652 |
+
'le-frog' => 'Le Frog',
|
653 |
+
'flick' => 'Flick',
|
654 |
+
'pepper-grinder' => 'Pepper Grinder',
|
655 |
+
'eggplant' => 'Eggplant',
|
656 |
+
'dark-hive' => 'Dark Hive',
|
657 |
+
'cupertino' => 'Cupertino',
|
658 |
+
'south-street' => 'South Street',
|
659 |
+
'blitzer' => 'Blitzer',
|
660 |
+
'humanity' => 'Humanity',
|
661 |
+
'hot-sneaks' => 'Hot Sneaks',
|
662 |
+
'excite-bike' => 'Excite Bike',
|
663 |
+
'vader' => 'Vader',
|
664 |
+
'dot-luv' => 'Dot Luv',
|
665 |
+
'mint-choc' => 'Mint Choc',
|
666 |
+
'black-tie' => 'Black Tie',
|
667 |
+
'trontastic' => 'Trontastic',
|
668 |
+
'swanky-purse' => 'Swanky Purse',
|
669 |
+
);
|
670 |
+
|
671 |
+
$themes = apply_filters( 'frm_jquery_themes', $themes );
|
672 |
+
return $themes;
|
673 |
+
}
|
674 |
+
|
675 |
+
/**
|
676 |
+
* @deprecated 3.02.03
|
677 |
+
*/
|
678 |
+
public static function enqueue_jquery_css() {
|
679 |
+
_deprecated_function( __FUNCTION__, '3.02.03', 'FrmProStylesController::enqueue_jquery_css' );
|
680 |
+
|
681 |
+
$form = self::get_form_for_page();
|
682 |
+
$theme_css = FrmStylesController::get_style_val( 'theme_css', $form );
|
683 |
+
if ( $theme_css != -1 ) {
|
684 |
+
wp_enqueue_style( 'jquery-theme', self::jquery_css_url( $theme_css ), array(), FrmAppHelper::plugin_version() );
|
685 |
+
}
|
686 |
+
}
|
687 |
+
|
688 |
+
/**
|
689 |
+
* @deprecated 3.02.03
|
690 |
+
*/
|
691 |
+
public static function jquery_css_url( $theme_css ) {
|
692 |
+
_deprecated_function( __FUNCTION__, '3.02.03', 'FrmProStylesController::jquery_css_url' );
|
693 |
+
|
694 |
+
if ( $theme_css == -1 ) {
|
695 |
+
return;
|
696 |
+
}
|
697 |
+
|
698 |
+
if ( ! $theme_css || $theme_css == '' || $theme_css == 'ui-lightness' ) {
|
699 |
+
$css_file = FrmAppHelper::plugin_url() . '/css/ui-lightness/jquery-ui.css';
|
700 |
+
} elseif ( preg_match( '/^http.?:\/\/.*\..*$/', $theme_css ) ) {
|
701 |
+
$css_file = $theme_css;
|
702 |
+
} else {
|
703 |
+
$uploads = FrmStylesHelper::get_upload_base();
|
704 |
+
$file_path = '/formidable/css/' . $theme_css . '/jquery-ui.css';
|
705 |
+
if ( file_exists( $uploads['basedir'] . $file_path ) ) {
|
706 |
+
$css_file = $uploads['baseurl'] . $file_path;
|
707 |
+
} else {
|
708 |
+
$css_file = FrmAppHelper::jquery_ui_base_url() . '/themes/' . $theme_css . '/jquery-ui.min.css';
|
709 |
+
}
|
710 |
+
}
|
711 |
+
|
712 |
+
return $css_file;
|
713 |
+
}
|
714 |
+
|
715 |
+
/**
|
716 |
+
* @deprecated 3.02.03
|
717 |
+
*/
|
718 |
+
public static function get_form_for_page() {
|
719 |
+
_deprecated_function( __FUNCTION__, '3.02.03' );
|
720 |
+
|
721 |
+
global $frm_vars;
|
722 |
+
$form_id = 'default';
|
723 |
+
if ( ! empty( $frm_vars['forms_loaded'] ) ) {
|
724 |
+
foreach ( $frm_vars['forms_loaded'] as $form ) {
|
725 |
+
if ( is_object( $form ) ) {
|
726 |
+
$form_id = $form->id;
|
727 |
+
break;
|
728 |
+
}
|
729 |
+
}
|
730 |
+
}
|
731 |
+
return $form_id;
|
732 |
+
}
|
733 |
+
|
734 |
+
/**
|
735 |
+
* @deprecated 3.0
|
736 |
+
*/
|
737 |
+
public static function validate_url_field( &$errors, $field, $value, $args ) {
|
738 |
+
_deprecated_function( __FUNCTION__, '3.0', 'FrmFieldType::validate' );
|
739 |
+
|
740 |
+
if ( $value == '' || ! in_array( $field->type, array( 'website', 'url' ) ) ) {
|
741 |
+
return;
|
742 |
+
}
|
743 |
+
|
744 |
+
FrmEntryValidate::validate_field_types( $errors, $field, $value, $args );
|
745 |
+
}
|
746 |
+
|
747 |
+
/**
|
748 |
+
* @deprecated 3.0
|
749 |
+
*/
|
750 |
+
public static function validate_email_field( &$errors, $field, $value, $args ) {
|
751 |
+
_deprecated_function( __FUNCTION__, '3.0', 'FrmFieldType::validate' );
|
752 |
+
|
753 |
+
if ( $field->type != 'email' ) {
|
754 |
+
return;
|
755 |
+
}
|
756 |
+
|
757 |
+
FrmEntryValidate::validate_field_types( $errors, $field, $value, $args );
|
758 |
+
}
|
759 |
+
|
760 |
+
/**
|
761 |
+
* @deprecated 3.0
|
762 |
+
*/
|
763 |
+
public static function validate_number_field( &$errors, $field, $value, $args ) {
|
764 |
+
_deprecated_function( __FUNCTION__, '3.0', 'FrmFieldType::validate' );
|
765 |
+
|
766 |
+
//validate the number format
|
767 |
+
if ( $field->type != 'number' ) {
|
768 |
+
return;
|
769 |
+
}
|
770 |
+
|
771 |
+
FrmEntryValidate::validate_field_types( $errors, $field, $value, $args );
|
772 |
+
}
|
773 |
+
|
774 |
+
/**
|
775 |
+
* @deprecated 3.0
|
776 |
+
*/
|
777 |
+
public static function validate_recaptcha( &$errors, $field, $args ) {
|
778 |
+
_deprecated_function( __FUNCTION__, '3.0', 'FrmFieldType::validate' );
|
779 |
+
|
780 |
+
if ( $field->type != 'captcha' ) {
|
781 |
+
return;
|
782 |
+
}
|
783 |
+
|
784 |
+
FrmEntryValidate::validate_field_types( $errors, $field, '', $args );
|
785 |
+
}
|
786 |
+
}
|
{classes/models → deprecated}/FrmEDD_SL_Plugin_Updater.php
RENAMED
File without changes
|
{classes/models → deprecated}/FrmEntryDeprecated.php
RENAMED
@@ -2,6 +2,8 @@
|
|
2 |
|
3 |
/**
|
4 |
* @since 2.03.05
|
|
|
|
|
5 |
*/
|
6 |
class FrmEntryDeprecated {
|
7 |
|
2 |
|
3 |
/**
|
4 |
* @since 2.03.05
|
5 |
+
* @deprecated 2.03.05
|
6 |
+
* @codeCoverageIgnore
|
7 |
*/
|
8 |
class FrmEntryDeprecated {
|
9 |
|
{classes/models → deprecated}/FrmEntryFormat.php
RENAMED
@@ -1,5 +1,8 @@
|
|
1 |
<?php
|
2 |
-
|
|
|
|
|
|
|
3 |
class FrmEntryFormat {
|
4 |
|
5 |
/***********************************************************************
|
1 |
<?php
|
2 |
+
/**
|
3 |
+
* @deprecated 2.04
|
4 |
+
* @codeCoverageIgnore
|
5 |
+
*/
|
6 |
class FrmEntryFormat {
|
7 |
|
8 |
/***********************************************************************
|
{classes/models → deprecated}/FrmEntryMetaDeprecated.php
RENAMED
@@ -2,6 +2,8 @@
|
|
2 |
|
3 |
/**
|
4 |
* @since 2.03.05
|
|
|
|
|
5 |
*/
|
6 |
class FrmEntryMetaDeprecated {
|
7 |
|
2 |
|
3 |
/**
|
4 |
* @since 2.03.05
|
5 |
+
* @deprecated 2.03.05
|
6 |
+
* @codeCoverageIgnore
|
7 |
*/
|
8 |
class FrmEntryMetaDeprecated {
|
9 |
|
{classes/models → deprecated}/FrmFieldDeprecated.php
RENAMED
@@ -2,6 +2,8 @@
|
|
2 |
|
3 |
/**
|
4 |
* @since 2.03.05
|
|
|
|
|
5 |
*/
|
6 |
class FrmFieldDeprecated {
|
7 |
|
2 |
|
3 |
/**
|
4 |
* @since 2.03.05
|
5 |
+
* @deprecated 2.03.05
|
6 |
+
* @codeCoverageIgnore
|
7 |
*/
|
8 |
class FrmFieldDeprecated {
|
9 |
|
{classes/models → deprecated}/FrmFormDeprecated.php
RENAMED
@@ -2,6 +2,8 @@
|
|
2 |
|
3 |
/**
|
4 |
* @since 2.03.05
|
|
|
|
|
5 |
*/
|
6 |
class FrmFormDeprecated {
|
7 |
|
@@ -109,7 +111,7 @@ class FrmFormDeprecated {
|
|
109 |
* @deprecated 2.03.05
|
110 |
*/
|
111 |
public static function getIdByKey( $key ) {
|
112 |
-
_deprecated_function( __FUNCTION__, '2.03.05', 'FrmForm::
|
113 |
|
114 |
return FrmForm::get_id_by_key( $key );
|
115 |
}
|
2 |
|
3 |
/**
|
4 |
* @since 2.03.05
|
5 |
+
* @deprecated 2.03.05
|
6 |
+
* @codeCoverageIgnore
|
7 |
*/
|
8 |
class FrmFormDeprecated {
|
9 |
|
111 |
* @deprecated 2.03.05
|
112 |
*/
|
113 |
public static function getIdByKey( $key ) {
|
114 |
+
_deprecated_function( __FUNCTION__, '2.03.05', 'FrmForm::get_id_by_key' );
|
115 |
|
116 |
return FrmForm::get_id_by_key( $key );
|
117 |
}
|
{classes/models → deprecated}/FrmPointers.php
RENAMED
@@ -2,6 +2,8 @@
|
|
2 |
|
3 |
/**
|
4 |
* This class handles the pointers used in the introduction tour.
|
|
|
|
|
5 |
*/
|
6 |
class FrmPointers {
|
7 |
|
2 |
|
3 |
/**
|
4 |
* This class handles the pointers used in the introduction tour.
|
5 |
+
* @deprecated 3.01.03
|
6 |
+
* @codeCoverageIgnore
|
7 |
*/
|
8 |
class FrmPointers {
|
9 |
|
formidable.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
/*
|
3 |
Plugin Name: Formidable Forms
|
4 |
Description: Quickly and easily create drag-and-drop forms
|
5 |
-
Version: 3.04.
|
6 |
Plugin URI: https://formidableforms.com/
|
7 |
Author URI: https://formidableforms.com/
|
8 |
Author: Strategy11
|
@@ -65,18 +65,24 @@ function frm_forms_autoloader( $class_name ) {
|
|
65 |
* @since 3.0
|
66 |
*/
|
67 |
function frm_class_autoloader( $class_name, $filepath ) {
|
68 |
-
$
|
|
|
69 |
|
70 |
-
if (
|
71 |
-
$filepath .= '/
|
72 |
-
} else if ( preg_match( '/^.+Controller$/', $class_name ) ) {
|
73 |
-
$filepath .= '/controllers/';
|
74 |
-
} else if ( preg_match( '/^.+Factory$/', $class_name ) ) {
|
75 |
-
$filepath .= '/factories/';
|
76 |
} else {
|
77 |
-
$filepath .= '/
|
78 |
-
if (
|
79 |
-
$filepath .= '
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
80 |
}
|
81 |
}
|
82 |
|
2 |
/*
|
3 |
Plugin Name: Formidable Forms
|
4 |
Description: Quickly and easily create drag-and-drop forms
|
5 |
+
Version: 3.04.03
|
6 |
Plugin URI: https://formidableforms.com/
|
7 |
Author URI: https://formidableforms.com/
|
8 |
Author: Strategy11
|
65 |
* @since 3.0
|
66 |
*/
|
67 |
function frm_class_autoloader( $class_name, $filepath ) {
|
68 |
+
$deprecated = array( 'FrmEntryFormat', 'FrmPointers', 'FrmEDD_SL_Plugin_Updater' );
|
69 |
+
$is_deprecated = in_array( $class_name, $deprecated ) || preg_match( '/^.+Deprecate/', $class_name );
|
70 |
|
71 |
+
if ( $is_deprecated ) {
|
72 |
+
$filepath .= '/deprecated/';
|
|
|
|
|
|
|
|
|
73 |
} else {
|
74 |
+
$filepath .= '/classes/';
|
75 |
+
if ( preg_match( '/^.+Helper$/', $class_name ) ) {
|
76 |
+
$filepath .= 'helpers/';
|
77 |
+
} else if ( preg_match( '/^.+Controller$/', $class_name ) ) {
|
78 |
+
$filepath .= 'controllers/';
|
79 |
+
} else if ( preg_match( '/^.+Factory$/', $class_name ) ) {
|
80 |
+
$filepath .= 'factories/';
|
81 |
+
} else {
|
82 |
+
$filepath .= 'models/';
|
83 |
+
if ( strpos( $class_name, 'Field' ) && ! file_exists( $filepath . $class_name . '.php' ) ) {
|
84 |
+
$filepath .= 'fields/';
|
85 |
+
}
|
86 |
}
|
87 |
}
|
88 |
|
js/formidable.js
CHANGED
@@ -138,8 +138,6 @@ function frmFrontFormJS(){
|
|
138 |
errors = checkNumberField( field, errors );
|
139 |
} else if ( field.type === 'email' ) {
|
140 |
errors = checkEmailField( field, errors, emailFields );
|
141 |
-
} else if (field.type === 'password') {
|
142 |
-
errors = checkPasswordField(field, errors);
|
143 |
} else if ( field.pattern !== null ) {
|
144 |
errors = checkPatternField( field, errors );
|
145 |
}
|
@@ -183,8 +181,6 @@ function frmFrontFormJS(){
|
|
183 |
errors = checkEmailField( field, errors, emailFields );
|
184 |
} else if ( field.type === 'number' ) {
|
185 |
errors = checkNumberField( field, errors );
|
186 |
-
} else if (field.type === 'password') {
|
187 |
-
errors = checkPasswordField( field, errors );
|
188 |
} else if ( field.pattern !== null ) {
|
189 |
errors = checkPatternField( field, errors );
|
190 |
}
|
@@ -336,25 +332,6 @@ function frmFrontFormJS(){
|
|
336 |
return errors;
|
337 |
}
|
338 |
|
339 |
-
function checkPasswordField( field, errors ) {
|
340 |
-
var classes = field.className;
|
341 |
-
|
342 |
-
if (classes.indexOf('frm_strong_pass') < 0) {
|
343 |
-
return errors;
|
344 |
-
}
|
345 |
-
|
346 |
-
var text = field.value;
|
347 |
-
var regEx = /^(?=.*?[a-z])(?=.*?[A-Z])(?=.*[^a-zA-Z0-9])(?=.*?[0-9]).{8,}$/;
|
348 |
-
var matches = regEx.test(text); //true if matches format, false otherwise
|
349 |
-
|
350 |
-
if (!matches) {
|
351 |
-
var fieldID = getFieldId( field, true );
|
352 |
-
errors[ fieldID ] = getFieldValidationMessage( field, 'data-invmsg' );
|
353 |
-
}
|
354 |
-
|
355 |
-
return errors;
|
356 |
-
}
|
357 |
-
|
358 |
function hasInvisibleRecaptcha( object ) {
|
359 |
if ( typeof frmProForm !== 'undefined' && frmProForm.goingToPreviousPage( object ) ) {
|
360 |
return false;
|
@@ -887,7 +864,7 @@ function frmFrontFormJS(){
|
|
887 |
}
|
888 |
}
|
889 |
|
890 |
-
if ( jQuery('body').hasClass('wp-admin') ) {
|
891 |
return;
|
892 |
}
|
893 |
|
138 |
errors = checkNumberField( field, errors );
|
139 |
} else if ( field.type === 'email' ) {
|
140 |
errors = checkEmailField( field, errors, emailFields );
|
|
|
|
|
141 |
} else if ( field.pattern !== null ) {
|
142 |
errors = checkPatternField( field, errors );
|
143 |
}
|
181 |
errors = checkEmailField( field, errors, emailFields );
|
182 |
} else if ( field.type === 'number' ) {
|
183 |
errors = checkNumberField( field, errors );
|
|
|
|
|
184 |
} else if ( field.pattern !== null ) {
|
185 |
errors = checkPatternField( field, errors );
|
186 |
}
|
332 |
return errors;
|
333 |
}
|
334 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
335 |
function hasInvisibleRecaptcha( object ) {
|
336 |
if ( typeof frmProForm !== 'undefined' && frmProForm.goingToPreviousPage( object ) ) {
|
337 |
return false;
|
864 |
}
|
865 |
}
|
866 |
|
867 |
+
if ( jQuery('body').hasClass('wp-admin') && jQuery(object).closest('.frmapi-form').length < 1 ) {
|
868 |
return;
|
869 |
}
|
870 |
|
js/formidable.min.js
CHANGED
@@ -1,36 +1,36 @@
|
|
1 |
-
function frmFrontFormJS(){function e(){var a=jQuery(this),b=a.closest(".frm_inside_container").find("label.frm_primary_label");0<a.val().length?b.addClass("frm_visible"):b.removeClass("frm_visible")}function f(a,b){var c="";c=a instanceof jQuery?a.attr("name"):a.name;if(""===c)return c=a instanceof jQuery?a.data("name"):a.getAttribute("data-name"),""!==c&&c?c:0;c=c.replace("item_meta[","").replace("[]","").split("]");if(1>c.length)return 0;c=c.filter(function(a){return""!==a});var d=c[0],
|
2 |
-
c.length)return d;if("[form"===c[1]||"[row_ids"===c[1])return 0;jQuery('input[name="item_meta['+d+'][form]"]').length&&(d=c[2].replace("[",""),
|
3 |
-
jQuery(c).each(function(){d=this.value});else if("file"===a.type||c)"undefined"===typeof c&&(c=f(a,!0),c=c.replace("file","")),"undefined"===typeof b[c]&&(d=
|
4 |
-
null!==c&&d===c&&(d="")}""===d&&(""===
|
5 |
-
e=
|
6 |
-
a.
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
"
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
jQuery(document).on("change
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
checkDependentDynamicFields:function(a){console.warn("DEPRECATED: function frmFrontForm.
|
31 |
-
|
32 |
-
|
33 |
-
function frmUpdateField(e,f,
|
34 |
-
function frmDeleteEntry(e,f){console.warn("DEPRECATED: function frmDeleteEntry in v2.0.13 use frmFrontForm.deleteEntry");jQuery(document.getElementById("frm_delete_"+e)).replaceWith('<span class="frm-loading-img" id="frm_delete_'+e+'"></span>');jQuery.ajax({type:"POST",url:frm_js.ajax_url,data:{action:"frm_entries_destroy",entry:e,nonce:frm_js.nonce},success:function(
|
35 |
-
e)).replaceWith(
|
36 |
-
function frm_resend_email(e,f){console.warn("DEPRECATED: function frm_resend_email in v2.0");var
|
1 |
+
function frmFrontFormJS(){function e(){var a=jQuery(this),b=a.closest(".frm_inside_container").find("label.frm_primary_label");0<a.val().length?b.addClass("frm_visible"):b.removeClass("frm_visible")}function f(a,b){var c="";c=a instanceof jQuery?a.attr("name"):a.name;if(""===c)return c=a instanceof jQuery?a.data("name"):a.getAttribute("data-name"),""!==c&&c?c:0;c=c.replace("item_meta[","").replace("[]","").split("]");if(1>c.length)return 0;c=c.filter(function(a){return""!==a});var d=c[0],g=!1;if(1===
|
2 |
+
c.length)return d;if("[form"===c[1]||"[row_ids"===c[1])return 0;jQuery('input[name="item_meta['+d+'][form]"]').length&&(d=c[2].replace("[",""),g=!0);"other"===d&&(d=g?c[3].replace("[",""):c[1].replace("[",""));!0===b&&(d=d===c[0]?d+"-"+c[1].replace("[",""):d+"-"+c[0]+"-"+c[1].replace("[",""));return d}function h(a,b){var c=a.getAttribute("data-frmfile");if("hidden"===a.type&&null===c)return b;var d="",g="";if("checkbox"===a.type||"radio"===a.type)c=jQuery('input[name="'+a.name+'"]').closest(".frm_required_field").find("input:checked"),
|
3 |
+
jQuery(c).each(function(){d=this.value});else if("file"===a.type||c)"undefined"===typeof c&&(c=f(a,!0),c=c.replace("file","")),"undefined"===typeof b[c]&&(d=p(c)),g=c;else{c=a.className;if(-1!==c.indexOf("frm_pos_none"))return b;d=jQuery(a).val();if(null===d)d="";else if("string"!==typeof d){g=d;d="";for(var k=0;k<g.length;k++)""!==g[k]&&(d=g[k])}g=-1===c.indexOf("frm_other_input")?f(a,!0):f(a,!1);-1!==c.indexOf("frm_time_select")&&(g=g.replace("-H","").replace("-m",""));c=a.getAttribute("data-frmplaceholder");
|
4 |
+
null!==c&&d===c&&(d="")}""===d&&(""===g&&(g=f(a,!0)),g in b||(b[g]=r(a,"data-reqmsg")));return b}function p(a){var b="";jQuery('input[name="file'+a+'"], input[name="file'+a+'[]"], input[name^="item_meta['+a+']"]').each(function(){""===b&&(b=this.value)});return b}function q(a,b,c){var d=a.value,g=f(a,!0);if(g in b)return b;var k=0===g.indexOf("conf_");if(""!==d||k){var n=/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/i,
|
5 |
+
e=r(a,"data-invmsg");""!==d&&!1===n.test(d)?(b[g]=e,k&&(b[g.replace("conf_","")]="")):k&&(a=a.name.replace("conf_",""),c.filter('[name="'+a+'"]').val()!==d&&(b[g]="",b[g.replace("conf_","")]=""))}return b}function x(a,b){var c=a.value;""!==c&&!1!==isNaN(c/1)&&(c=f(a,!0),c in b||(b[c]=r(a,"data-invmsg")));return b}function y(a,b){var c=a.value,d=r(a,"pattern");if(""!==d&&""!==c){var g=f(a,!0);g in b||(d=new RegExp("^"+d+"$","i"),!1===d.test(c)&&(b[g]=r(a,"data-invmsg")))}return b}function r(a,b){var c=
|
6 |
+
a.getAttribute(b);null===c&&(c="");return c}function D(a,b){"undefined"===typeof b&&jQuery(a).find('input[name="frm_action"]').val();var c=jQuery(a).find(".frm_form_field");c.addClass("frm_doing_ajax");jQuery.ajax({type:"POST",url:frm_js.ajax_url,data:jQuery(a).serialize()+"&action=frm_entries_"+b+"&nonce="+frm_js.nonce,success:function(b){var d={content:"",errors:{},pass:!1};null===b&&(b=d);b=b.replace(/^\s+|\s+$/g,"");b=0===b.indexOf("{")?jQuery.parseJSON(b):d;if("undefined"!==typeof b.redirect)jQuery(document).trigger("frmBeforeFormRedirect",
|
7 |
+
[a,b]),window.location=b.redirect;else if(""!==b.content){u(jQuery(a));-1!=frm_js.offset&&frmFrontForm.scrollMsg(jQuery(a),!1);var k=jQuery(a).find('input[name="form_id"]').val();b.content=b.content.replace(/ frm_pro_form /g," frm_pro_form frm_no_hide ");d=jQuery(a).closest(".frm_forms");var e=jQuery(".frm_end_ajax_"+k);e.length&&(d.nextUntil(".frm_end_ajax_"+k).remove(),e.remove());d.replaceWith(b.content);d=b;if(history.pushState&&"undefined"!==typeof d.page){var f=d.page;e=encodeURI("frm_page");
|
8 |
+
f=encodeURI(f);for(var l=document.location.search.substr(1).split("&"),h=l.length,m;h--;)if(m=l[h].split("="),m[0]==e){m[1]=f;l[h]=m.join("=");break}0>h&&(l[l.length]=[e,f].join("="));e=l.join("&");window.history.pushState({html:d.html},"","?"+e)}"function"===typeof frmThemeOverride_frmAfterSubmit&&(k=jQuery('input[name="frm_page_order_'+k+'"]').val(),d=jQuery(b.content).find('input[name="form_id"]').val(),frmThemeOverride_frmAfterSubmit(d,k,b.content,a));jQuery(b.content).find(".frm_message").length?
|
9 |
+
jQuery(document).trigger("frmFormComplete",[a,b]):jQuery(document).trigger("frmPageChanged",[a,b])}else if(Object.keys(b.errors).length){u(jQuery(a),"enable");d=!0;z();e=!1;for(k in b.errors)f=jQuery(a).find("#frm_field_"+k+"_container"),f.length&&(f.is(":visible")||(l=f.closest(".frm_toggle_container"),l.length&&(l=l.prev(),l.hasClass("frm_trigger")||(l=l.prev(".frm_trigger")),l.click())),f.is(":visible")&&(v(f,k,b.errors),d=!1,f=jQuery(a).find("#frm_field_"+k+"_container .frm-g-recaptcha, #frm_field_"+
|
10 |
+
k+"_container .g-recaptcha"),f.length&&(e=!0,f=f.data("rid"),jQuery().grecaptcha&&(f?grecaptcha.reset(f):grecaptcha.reset()))));jQuery(document).trigger("frmFormErrors",[a,b]);c.removeClass("frm_doing_ajax");A(a);!0!==e&&B(a,!1);d?a.submit():jQuery(a).prepend(b.error_message)}else E(a),B(a,!0),a.submit()},error:function(){jQuery(a).find('input[type="submit"], input[type="button"]').removeAttr("disabled");a.submit()}})}function v(a,b,c){a.length&&a.is(":visible")&&(a.addClass("frm_blank_field"),"function"===
|
11 |
+
typeof frmThemeOverride_frmPlaceError?frmThemeOverride_frmPlaceError(b,c):a.append('<div class="frm_error">'+c[b]+"</div>"),jQuery(document).trigger("frmAddFieldError",[a,b,c]))}function z(){jQuery(".form-field").removeClass("frm_blank_field has-error");jQuery(".form-field .frm_error").replaceWith("");jQuery(".frm_error_style").remove()}function A(a){var b=jQuery(a).find(".frm_blank_field:first");b.length&&frmFrontForm.scrollMsg(b,a,!0)}function w(a){a.hasClass("frm_loading_form")||(a.addClass("frm_loading_form"),
|
12 |
+
a.trigger("frmStartFormLoading"));a.find('input[type="submit"], input[type="button"], button[type="submit"]').attr("disabled","disabled")}function u(a,b,c){0<c||(a.removeClass("frm_loading_form"),a.trigger("frmEndFormLoading"),"enable"===b&&a.find('input[type="submit"], input[type="button"], button[type="submit"]').removeAttr("disabled"))}function E(a){var b=document.getElementById("frm_loading");null!==b&&(a=jQuery(a).find("input[type=file]").val(),"undefined"!==typeof a&&""!==a&&setTimeout(function(){jQuery(b).fadeIn("slow")},
|
13 |
+
2E3))}function B(a,b){var c=jQuery(a).find(".frm-g-recaptcha, .g-recaptcha");c.length&&(!b||1>jQuery(a).find(".frm_next_page").length||1>jQuery(a).find(".frm_next_page").val())&&c.closest(".frm_form_field").replaceWith('<input type="hidden" name="recaptcha_checked" value="'+frm_js.nonce+'">')}function F(){C(jQuery(this),"clear")}function G(){C(jQuery(this),"replace")}function C(a,b){var c=a.data("frmval").replace(/(\n|\r\n)/g,"\r");if(""===c||"undefined"===typeof c)return!1;var d=a.val().replace(/(\n|\r\n)/g,
|
14 |
+
"\r");"replace"==b?""===d&&a.addClass("frm_default").val(c):d==c&&a.removeClass("frm_default").val("")}function H(){var a=jQuery(this),b=a.data("eid"),c=a.data("fid");a.append('<span class="spinner" style="display:inline"></span>');jQuery.ajax({type:"POST",url:frm_js.ajax_url,data:{action:"frm_entries_send_email",entry_id:b,form_id:c,nonce:frm_js.nonce},success:function(b){a.replaceWith(b)}});return!1}function I(){var a=jQuery(this).data("frmconfirm");return confirm(a)}function J(){var a=jQuery(this).data("frmtoggle");
|
15 |
+
jQuery(a).is(":visible")?jQuery(a).slideUp("fast"):jQuery(a).slideDown("fast");return!1}function K(){Array.prototype.indexOf||(Array.prototype.indexOf=function(a,b){var c=this.length>>>0,d=Number(b)||0;d=0>d?Math.ceil(d):Math.floor(d);for(0>d&&(d+=c);d<c;d++)if(d in this&&this[d]===a)return d;return-1})}function L(){"function"!==typeof String.prototype.trim&&(String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")})}function M(){Array.prototype.filter||(Array.prototype.filter=function(a,
|
16 |
+
b){if(void 0===this||null===this)throw new TypeError;var c=Object(this),d=c.length>>>0;if("function"!==typeof a)throw new TypeError;for(var f=[],e=0;e<d;e++)if(e in c){var h=c[e];a.call(b,h,e,c)&&f.push(h)}return f})}function N(){Object.keys||(Object.keys=function(a){var b=[],c;for(c in a)a.hasOwnProperty(c)&&b.push(c);return b})}var t="",m=[];return{init:function(){jQuery(document).off("submit.formidable",".frm-show-form");jQuery(document).on("submit.formidable",".frm-show-form",frmFrontForm.submitForm);
|
17 |
+
jQuery(".frm-show-form input[onblur], .frm-show-form textarea[onblur]").each(function(){""===jQuery(this).val()&&jQuery(this).blur()});jQuery(document).on("focus",".frm_toggle_default",F);jQuery(document).on("blur",".frm_toggle_default",G);jQuery(".frm_toggle_default").blur();jQuery(document.getElementById("frm_resend_email")).click(H);jQuery(document).on("change",'.frm-show-form input[name^="item_meta"], .frm-show-form select[name^="item_meta"], .frm-show-form textarea[name^="item_meta"]',frmFrontForm.fieldValueChanged);
|
18 |
+
jQuery(document).on("change keyup",".frm-show-form .frm_inside_container input, .frm-show-form .frm_inside_container select, .frm-show-form .frm_inside_container textarea",e);jQuery(document).on("click","a[data-frmconfirm]",I);jQuery("a[data-frmtoggle]").click(J);K();L();M();N()},getFieldId:function(a,b){return f(a,b)},renderRecaptcha:function(a){var b=a.getAttribute("data-size"),c={sitekey:a.getAttribute("data-sitekey"),size:b,theme:a.getAttribute("data-theme")};if("invisible"===b){var d=jQuery(a).closest("form").find('input[name="form_id"]').val();
|
19 |
+
c.callback=function(a){frmFrontForm.afterRecaptcha(a,d)}}b=grecaptcha.render(a.id,c);a.setAttribute("data-rid",b)},afterSingleRecaptcha:function(a){a=jQuery(".frm-show-form .g-recaptcha").closest("form")[0];frmFrontForm.submitFormNow(a)},afterRecaptcha:function(a,b){var c=jQuery("#frm_form_"+b+"_container form")[0];frmFrontForm.submitFormNow(c)},submitForm:function(a){frmFrontForm.submitFormManual(a,this)},submitFormManual:function(a,b){if("undefined"!==typeof frmProForm&&frmProForm.goingToPreviousPage(b))var c=
|
20 |
+
!1;else{var d=jQuery(b).find('.frm-g-recaptcha[data-size="invisible"], .g-recaptcha[data-size="invisible"]');d.length?(c=d.data("rid"),c=0===grecaptcha.getResponse(c).length?d:!1):c=!1}d=b.className.trim().split(/\s+/gi);d&&1>c.length&&!(-1<d.indexOf("frm_pro_form"))||jQuery("body").hasClass("wp-admin")&&1>jQuery(b).closest(".frmapi-form").length||(a.preventDefault(),"undefined"!==typeof frmProForm&&"function"===typeof frmProForm.submitAllowed&&!frmProForm.submitAllowed(b))||(c.length?(w(jQuery(b)),
|
21 |
+
d=c.data("rid"),grecaptcha.reset(d),grecaptcha.execute(d)):(c=frmFrontForm.validateFormSubmit(b),0===Object.keys(c).length&&(w(jQuery(b)),frmFrontForm.submitFormNow(b,d))))},submitFormNow:function(a){-1<a.className.trim().split(/\s+/gi).indexOf("frm_ajax_submit")?1>jQuery(a).find('input[type="file"]').filter(function(){return!!this.value}).length?(t=jQuery(a).find('input[name="frm_action"]').val(),frmFrontForm.checkFormErrors(a,t)):a.submit():a.submit()},validateFormSubmit:function(a){"undefined"!==
|
22 |
+
typeof tinyMCE&&jQuery(a).find(".wp-editor-wrap").length&&tinyMCE.triggerSave();m=[];var b=jQuery(a).hasClass("frm_js_validate");b&&"undefined"!==typeof frmProForm&&(frmProForm.savingDraft(a)||frmProForm.goingToPreviousPage(a))&&(b=!1);b&&(frmFrontForm.getAjaxFormErrors(a),Object.keys(m).length&&frmFrontForm.addAjaxFormErrors(a));return m},getAjaxFormErrors:function(a){var b=[],c=jQuery(a).find(".frm_required_field:visible input, .frm_required_field:visible select, .frm_required_field:visible textarea").filter(":not(.frm_optional)");
|
23 |
+
if(c.length)for(var d=0,e=c.length;d<e;d++)b=h(c[d],b);c=jQuery(a).find("input[type=email]").filter(":visible");d=jQuery(a).find("input,select,textarea");if(d.length){e=0;for(var f=d.length;e<f;e++){var n=d[e];""!==n.value&&"hidden"!==n.type&&("number"===n.type?b=x(n,b):"email"===n.type?b=q(n,b,c):null!==n.pattern&&(b=y(n,b)))}}c=jQuery(a).find(".frm-g-recaptcha");c.length&&(d=c.data("rid"),0===grecaptcha.getResponse(d).length&&(c=c.closest(".frm_form_field").attr("id").replace("frm_field_","").replace("_container",
|
24 |
+
""),b[c]=""));m=b;if("function"===typeof frmThemeOverride_jsErrors&&(t=jQuery(a).find('input[name="frm_action"]').val(),a=frmThemeOverride_jsErrors(t,a),Object.keys(a).length))for(var p in a)m[p]=a[p];return m},addAjaxFormErrors:function(a){z();for(var b in m){var c=jQuery(a).find("#frm_field_"+b+"_container");c.length?v(c,b,m):delete m[b]}A(a)},checkFormErrors:function(a,b){D(a,b)},checkRequiredField:function(a,b){return h(a,b)},showSubmitLoading:function(a){w(a)},removeSubmitLoading:function(a,
|
25 |
+
b,c){u(a,b,c)},scrollToID:function(a){a=jQuery(document.getElementById(a));frmFrontForm.scrollMsg(a,!1)},scrollMsg:function(a,b,c){if("undefined"===typeof b){if(a=jQuery(document.getElementById("frm_form_"+a+"_container")),1>a.length)return}else a="string"===typeof a?jQuery(b).find("#frm_field_"+a+"_container"):a;if(a=a.offset().top){a-=frm_js.offset;b=jQuery("html").css("margin-top");var d=jQuery("body").css("margin-top");if(b||d)a=a-parseInt(b)-parseInt(d);if(a&&window.innerHeight&&(b=document.documentElement.scrollTop||
|
26 |
+
document.body.scrollTop,a>b+window.innerHeight||a<b))return"undefined"===typeof c?jQuery(window).scrollTop(a):jQuery("html,body").animate({scrollTop:a},500),!1}},fieldValueChanged:function(a){var b=frmFrontForm.getFieldId(this,!1);if(b&&"undefined"!==typeof b&&(!a.frmTriggered||a.frmTriggered!=b)&&(jQuery(document).trigger("frmFieldChanged",[this,b,a]),!0!==a.selfTriggered&&("url"===this.type&&(a=this.value,b=a.match(/^(https?|ftps?|mailto|news|feed|telnet):/),""!==this.value&&null===b&&(this.value=
|
27 |
+
"http://"+a)),jQuery(this).closest("form").hasClass("frm_js_validate")))){a=[];b=jQuery(this).closest(".frm_form_field");b.hasClass("frm_required_field")&&!jQuery(this).hasClass("frm_optional")&&(a=h(this,a));if(1>a.length)if("email"===this.type){var c=jQuery(this).closest("form").find("input[type=email]");a=q(this,a,c)}else"number"===this.type?a=x(this,a):null!==this.pattern&&(a=y(this,a));b.removeClass("frm_blank_field has-error");b.find(".frm_error").remove();if(0<Object.keys(a).length)for(var d in a)v(b,
|
28 |
+
d,a)}},savingDraft:function(a){console.warn("DEPRECATED: function frmFrontForm.savingDraft in v3.0 use frmProForm.savingDraft");if("undefined"!==typeof frmProForm)return frmProForm.savingDraft(a)},goingToPreviousPage:function(a){console.warn("DEPRECATED: function frmFrontForm.goingToPreviousPage in v3.0 use frmProForm.goingToPreviousPage");if("undefined"!==typeof frmProForm)return frmProForm.goingToPreviousPage(a)},hideOrShowFields:function(a,b){console.warn("DEPRECATED: function frmFrontForm.hideOrShowFields in v3.0 use frmProForm.hideOrShowFields");
|
29 |
+
"undefined"!==typeof frmProForm&&frmProForm.hideOrShowFields()},hidePreviouslyHiddenFields:function(){console.warn("DEPRECATED: function frmFrontForm.hidePreviouslyHiddenFields in v3.0 use frmProForm.hidePreviouslyHiddenFields");"undefined"!==typeof frmProForm&&frmProForm.hidePreviouslyHiddenFields()},checkDependentDynamicFields:function(a){console.warn("DEPRECATED: function frmFrontForm.checkDependentDynamicFields in v3.0 use frmProForm.checkDependentDynamicFields");"undefined"!==typeof frmProForm&&
|
30 |
+
frmProForm.checkDependentDynamicFields(a)},checkDependentLookupFields:function(a){console.warn("DEPRECATED: function frmFrontForm.checkDependentLookupFields in v3.0 use frmProForm.checkDependentLookupFields");"undefined"!==typeof frmProForm&&frmProForm.checkDependentLookupFields(a)},loadGoogle:function(){console.warn("DEPRECATED: function frmFrontForm.loadGoogle in v3.0 use frmProForm.loadGoogle");frmProForm.loadGoogle()},removeUsedTimes:function(a,b){console.warn("DEPRECATED: function frmFrontForm.removeUsedTimes in v3.0 use frmProForm.removeUsedTimes");
|
31 |
+
"undefined"!==typeof frmProForm&&frmProForm.removeUsedTimes()},escapeHtml:function(a){return a.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},invisible:function(a){jQuery(a).css("visibility","hidden")},visible:function(a){jQuery(a).css("visibility","visible")}}}var frmFrontForm=frmFrontFormJS();jQuery(document).ready(function(e){frmFrontForm.init()});
|
32 |
+
function frmRecaptcha(){for(var e=jQuery(".frm-g-recaptcha"),f=0,h=e.length;f<h;f++)frmFrontForm.renderRecaptcha(e[f])}function frmAfterRecaptcha(e){frmFrontForm.afterSingleRecaptcha(e)}
|
33 |
+
function frmUpdateField(e,f,h,p,q){jQuery(document.getElementById("frm_update_field_"+e+"_"+f+"_"+q)).html('<span class="frm-loading-img"></span>');jQuery.ajax({type:"POST",url:frm_js.ajax_url,data:{action:"frm_entries_update_field_ajax",entry_id:e,field_id:f,value:h,nonce:frm_js.nonce},success:function(){""===p.replace(/^\s+|\s+$/g,"")?jQuery(document.getElementById("frm_update_field_"+e+"_"+f+"_"+q)).fadeOut("slow"):jQuery(document.getElementById("frm_update_field_"+e+"_"+f+"_"+q)).replaceWith(p)}})}
|
34 |
+
function frmDeleteEntry(e,f){console.warn("DEPRECATED: function frmDeleteEntry in v2.0.13 use frmFrontForm.deleteEntry");jQuery(document.getElementById("frm_delete_"+e)).replaceWith('<span class="frm-loading-img" id="frm_delete_'+e+'"></span>');jQuery.ajax({type:"POST",url:frm_js.ajax_url,data:{action:"frm_entries_destroy",entry:e,nonce:frm_js.nonce},success:function(h){"success"===h.replace(/^\s+|\s+$/g,"")?jQuery(document.getElementById(f+e)).fadeOut("slow"):jQuery(document.getElementById("frm_delete_"+
|
35 |
+
e)).replaceWith(h)}})}function frmOnSubmit(e){console.warn("DEPRECATED: function frmOnSubmit in v2.0 use frmFrontForm.submitForm");frmFrontForm.submitForm(e,this)}
|
36 |
+
function frm_resend_email(e,f){console.warn("DEPRECATED: function frm_resend_email in v2.0");var h=jQuery(document.getElementById("frm_resend_email"));h.append('<span class="spinner" style="display:inline"></span>');jQuery.ajax({type:"POST",url:frm_js.ajax_url,data:{action:"frm_entries_send_email",entry_id:e,form_id:f,nonce:frm_js.nonce},success:function(e){h.replaceWith(e)}})};
|
js/formidable_admin_global.js
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
jQuery(document).ready(function(){
|
2 |
var installLink = document.getElementById('frm_install_link');
|
3 |
if(installLink !== null){
|
4 |
-
jQuery(installLink).click(
|
5 |
}
|
6 |
|
7 |
var deauthLink = jQuery('.frm_deauthorize_link');
|
@@ -15,16 +15,50 @@ jQuery(document).ready(function(){
|
|
15 |
});
|
16 |
|
17 |
function frm_install_now(){
|
18 |
-
|
19 |
$msg.html('<div class="frm_plugin_updating">'+frmGlobal.updating_msg+'<div class="spinner frm_spinner"></div></div>');
|
20 |
jQuery.ajax({
|
21 |
type:'POST',url:ajaxurl,
|
22 |
-
|
23 |
success:function(){$msg.fadeOut('slow');}
|
24 |
});
|
25 |
return false;
|
26 |
}
|
27 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
28 |
function frmDeauthorizeNow(){
|
29 |
if(!confirm(frmGlobal.deauthorize)){
|
30 |
return false;
|
1 |
jQuery(document).ready(function(){
|
2 |
var installLink = document.getElementById('frm_install_link');
|
3 |
if(installLink !== null){
|
4 |
+
jQuery(installLink).click(frmInstallPro);
|
5 |
}
|
6 |
|
7 |
var deauthLink = jQuery('.frm_deauthorize_link');
|
15 |
});
|
16 |
|
17 |
function frm_install_now(){
|
18 |
+
var $msg = jQuery(document.getElementById('frm_install_message'));
|
19 |
$msg.html('<div class="frm_plugin_updating">'+frmGlobal.updating_msg+'<div class="spinner frm_spinner"></div></div>');
|
20 |
jQuery.ajax({
|
21 |
type:'POST',url:ajaxurl,
|
22 |
+
data:{action:'frm_install',nonce:frmGlobal.nonce},
|
23 |
success:function(){$msg.fadeOut('slow');}
|
24 |
});
|
25 |
return false;
|
26 |
}
|
27 |
|
28 |
+
function frmInstallPro( e ){
|
29 |
+
var plugin = jQuery(this).data('prourl');
|
30 |
+
if ( plugin === '' ) {
|
31 |
+
return false;
|
32 |
+
}
|
33 |
+
|
34 |
+
e.preventDefault();
|
35 |
+
|
36 |
+
var $msg = jQuery(document.getElementById('frm_install_message'));
|
37 |
+
$msg.html('<div class="frm_plugin_updating">'+frmGlobal.updating_msg+'<div class="spinner frm_spinner"></div></div>');
|
38 |
+
$msg.fadeIn('slow');
|
39 |
+
|
40 |
+
jQuery.ajax({
|
41 |
+
url: ajaxurl,
|
42 |
+
type: 'POST',
|
43 |
+
async: true,
|
44 |
+
cache: false,
|
45 |
+
dataType: 'json',
|
46 |
+
data: {
|
47 |
+
action: 'frm_install_addon',
|
48 |
+
nonce: frmGlobal.nonce,
|
49 |
+
plugin: plugin
|
50 |
+
},
|
51 |
+
success: function() {
|
52 |
+
$msg.fadeOut('slow');
|
53 |
+
$msg.parent().fadeOut('slow');
|
54 |
+
},
|
55 |
+
error: function(xhr, textStatus, e) {
|
56 |
+
$msg.fadeOut('slow');
|
57 |
+
}
|
58 |
+
});
|
59 |
+
return false;
|
60 |
+
}
|
61 |
+
|
62 |
function frmDeauthorizeNow(){
|
63 |
if(!confirm(frmGlobal.deauthorize)){
|
64 |
return false;
|
languages/formidable.pot
CHANGED
@@ -3,7 +3,7 @@ msgid ""
|
|
3 |
msgstr ""
|
4 |
"Project-Id-Version: Formidable v2.05\n"
|
5 |
"Report-Msgid-Bugs-To: \n"
|
6 |
-
"POT-Creation-Date: 2018-11-
|
7 |
"POT-Revision-Date: Tue Sep 26 2017 16:06:46 GMT-0600 (MDT)\n"
|
8 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
9 |
"Last-Translator: \n"
|
@@ -27,34 +27,49 @@ msgstr ""
|
|
27 |
"X-Poedit-SearchPath-0: .\n"
|
28 |
"X-Textdomain-Support: yes"
|
29 |
|
30 |
-
#:
|
31 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32 |
msgstr ""
|
33 |
|
34 |
-
#: classes/controllers/FrmAddonsController.php:
|
35 |
-
#: classes/views/shared/upgrade_overlay.php:
|
36 |
msgid "Upgrade to Pro"
|
37 |
msgstr ""
|
38 |
|
39 |
-
#: classes/controllers/FrmAddonsController.php:
|
40 |
msgid "There are no plugins on your site that require a license"
|
41 |
msgstr ""
|
42 |
|
43 |
-
#: classes/controllers/FrmAddonsController.php:
|
44 |
msgid "Installed"
|
45 |
msgstr ""
|
46 |
|
47 |
-
#: classes/controllers/FrmAddonsController.php:
|
48 |
-
#: classes/helpers/FrmAppHelper.php:
|
49 |
#: classes/views/styles/_field-colors.php:10
|
50 |
msgid "Active"
|
51 |
msgstr ""
|
52 |
|
53 |
-
#: classes/controllers/FrmAddonsController.php:
|
54 |
msgid "Not Installed"
|
55 |
msgstr ""
|
56 |
|
57 |
-
#: classes/controllers/FrmAddonsController.php:
|
58 |
msgid ""
|
59 |
"Sorry, you're site requires FTP authentication. Please install plugins "
|
60 |
"manaully."
|
@@ -84,7 +99,7 @@ msgstr ""
|
|
84 |
msgid "Build a Form"
|
85 |
msgstr ""
|
86 |
|
87 |
-
#: classes/controllers/FrmAppController.php:
|
88 |
#, php-format
|
89 |
msgid ""
|
90 |
"This site has been previously authorized to run Formidable Forms. "
|
@@ -92,7 +107,7 @@ msgid ""
|
|
92 |
"running the free version and remove this message."
|
93 |
msgstr ""
|
94 |
|
95 |
-
#: classes/controllers/FrmAppController.php:
|
96 |
#, php-format
|
97 |
msgid ""
|
98 |
"Help us spread the %1$sFormidable Forms%2$s love with %3$s %5$s on WordPress."
|
@@ -184,11 +199,11 @@ msgstr ""
|
|
184 |
msgid "No entries were specified"
|
185 |
msgstr ""
|
186 |
|
187 |
-
#: classes/controllers/FrmFieldsController.php:
|
188 |
msgid "Other"
|
189 |
msgstr ""
|
190 |
|
191 |
-
#: classes/controllers/FrmFieldsController.php:
|
192 |
msgid "New Option"
|
193 |
msgstr ""
|
194 |
|
@@ -218,11 +233,6 @@ msgstr ""
|
|
218 |
msgid "Form was Successfully Updated"
|
219 |
msgstr ""
|
220 |
|
221 |
-
#: classes/controllers/FrmFormsController.php:232
|
222 |
-
#: classes/controllers/FrmFormsController.php:1712
|
223 |
-
msgid "Form template was Successfully Created"
|
224 |
-
msgstr ""
|
225 |
-
|
226 |
#: classes/controllers/FrmFormsController.php:232
|
227 |
msgid "Form was Successfully Copied"
|
228 |
msgstr ""
|
@@ -441,20 +451,20 @@ msgstr ""
|
|
441 |
msgid "No forms were specified"
|
442 |
msgstr ""
|
443 |
|
444 |
-
#: classes/controllers/FrmFormsController.php:
|
445 |
msgid "Abnormal HTML characters prevented your form from saving correctly"
|
446 |
msgstr ""
|
447 |
|
448 |
-
#: classes/controllers/FrmFormsController.php:
|
449 |
-
#: classes/controllers/FrmFormsController.php:
|
450 |
msgid "Please select a valid form"
|
451 |
msgstr ""
|
452 |
|
453 |
-
#: classes/controllers/FrmFormsController.php:
|
454 |
msgid "Please wait while you are redirected."
|
455 |
msgstr ""
|
456 |
|
457 |
-
#: classes/controllers/FrmFormsController.php:
|
458 |
#, php-format
|
459 |
msgid "%1$sClick here%2$s if you are not automatically redirected."
|
460 |
msgstr ""
|
@@ -464,73 +474,73 @@ msgstr ""
|
|
464 |
msgid "Global Settings"
|
465 |
msgstr ""
|
466 |
|
467 |
-
#: classes/controllers/FrmSettingsController.php:
|
468 |
#: classes/views/addons/settings.php:2
|
469 |
msgid "Plugin Licenses"
|
470 |
msgstr ""
|
471 |
|
472 |
-
#: classes/controllers/FrmSettingsController.php:
|
473 |
-
#: classes/controllers/FrmSettingsController.php:
|
474 |
msgid "Settings Saved"
|
475 |
msgstr ""
|
476 |
|
477 |
-
#: classes/controllers/FrmSettingsController.php:
|
478 |
msgid "Extra form features like file uploads, pagination, etc"
|
479 |
msgstr ""
|
480 |
|
481 |
-
#: classes/controllers/FrmSettingsController.php:
|
482 |
msgid "Repeaters & cascading fields for advanced forms"
|
483 |
msgstr ""
|
484 |
|
485 |
-
#: classes/controllers/FrmSettingsController.php:
|
486 |
msgid "Flexibly view, search, edit, and delete entries anywhere"
|
487 |
msgstr ""
|
488 |
|
489 |
-
#: classes/controllers/FrmSettingsController.php:
|
490 |
msgid "Display entries with virtually limitless Formidable views"
|
491 |
msgstr ""
|
492 |
|
493 |
-
#: classes/controllers/FrmSettingsController.php:
|
494 |
msgid "Create surveys & polls"
|
495 |
msgstr ""
|
496 |
|
497 |
-
#: classes/controllers/FrmSettingsController.php:
|
498 |
msgid "WordPress user registration and login forms"
|
499 |
msgstr ""
|
500 |
|
501 |
-
#: classes/controllers/FrmSettingsController.php:
|
502 |
msgid "Create Stripe, PayPal or Authorize.net payment forms"
|
503 |
msgstr ""
|
504 |
|
505 |
-
#: classes/controllers/FrmSettingsController.php:
|
506 |
msgid "Powerful conditional logic for smart forms"
|
507 |
msgstr ""
|
508 |
|
509 |
-
#: classes/controllers/FrmSettingsController.php:
|
510 |
msgid "Integrations with 1000+ marketing & payment services"
|
511 |
msgstr ""
|
512 |
|
513 |
-
#: classes/controllers/FrmSettingsController.php:
|
514 |
msgid "Collect digital signatures"
|
515 |
msgstr ""
|
516 |
|
517 |
-
#: classes/controllers/FrmSettingsController.php:
|
518 |
msgid "Accept user-submitted content with Post submissions"
|
519 |
msgstr ""
|
520 |
|
521 |
-
#: classes/controllers/FrmSettingsController.php:
|
522 |
msgid "Email routing"
|
523 |
msgstr ""
|
524 |
|
525 |
-
#: classes/controllers/FrmSettingsController.php:
|
526 |
msgid "Create calculator forms"
|
527 |
msgstr ""
|
528 |
|
529 |
-
#: classes/controllers/FrmSettingsController.php:
|
530 |
msgid "Save draft entries and return later"
|
531 |
msgstr ""
|
532 |
|
533 |
-
#: classes/controllers/FrmSettingsController.php:
|
534 |
msgid "Analyze form data with graphs & stats"
|
535 |
msgstr ""
|
536 |
|
@@ -640,222 +650,222 @@ msgstr ""
|
|
640 |
msgid "There are no entries for that form."
|
641 |
msgstr ""
|
642 |
|
643 |
-
#: classes/helpers/FrmAppHelper.php:
|
644 |
#: classes/helpers/FrmFormsListHelper.php:108
|
645 |
msgid "Add New"
|
646 |
msgstr ""
|
647 |
|
648 |
-
#: classes/helpers/FrmAppHelper.php:
|
649 |
msgid "View Forms and Templates"
|
650 |
msgstr ""
|
651 |
|
652 |
-
#: classes/helpers/FrmAppHelper.php:
|
653 |
msgid "Add/Edit Forms and Templates"
|
654 |
msgstr ""
|
655 |
|
656 |
-
#: classes/helpers/FrmAppHelper.php:
|
657 |
msgid "Delete Forms and Templates"
|
658 |
msgstr ""
|
659 |
|
660 |
-
#: classes/helpers/FrmAppHelper.php:
|
661 |
msgid "Access this Settings Page"
|
662 |
msgstr ""
|
663 |
|
664 |
-
#: classes/helpers/FrmAppHelper.php:
|
665 |
msgid "View Entries from Admin Area"
|
666 |
msgstr ""
|
667 |
|
668 |
-
#: classes/helpers/FrmAppHelper.php:
|
669 |
msgid "Delete Entries from Admin Area"
|
670 |
msgstr ""
|
671 |
|
672 |
-
#: classes/helpers/FrmAppHelper.php:
|
673 |
msgid "Add Entries from Admin Area"
|
674 |
msgstr ""
|
675 |
|
676 |
-
#: classes/helpers/FrmAppHelper.php:
|
677 |
msgid "Edit Entries from Admin Area"
|
678 |
msgstr ""
|
679 |
|
680 |
-
#: classes/helpers/FrmAppHelper.php:
|
681 |
msgid "View Reports"
|
682 |
msgstr ""
|
683 |
|
684 |
-
#: classes/helpers/FrmAppHelper.php:
|
685 |
msgid "Add/Edit Views"
|
686 |
msgstr ""
|
687 |
|
688 |
-
#: classes/helpers/FrmAppHelper.php:
|
689 |
msgid "at"
|
690 |
msgstr ""
|
691 |
|
692 |
-
#: classes/helpers/FrmAppHelper.php:
|
693 |
msgid "seconds"
|
694 |
msgstr ""
|
695 |
|
696 |
-
#: classes/helpers/FrmAppHelper.php:
|
697 |
msgid "year"
|
698 |
msgstr ""
|
699 |
|
700 |
-
#: classes/helpers/FrmAppHelper.php:
|
701 |
msgid "years"
|
702 |
msgstr ""
|
703 |
|
704 |
-
#: classes/helpers/FrmAppHelper.php:
|
705 |
msgid "month"
|
706 |
msgstr ""
|
707 |
|
708 |
-
#: classes/helpers/FrmAppHelper.php:
|
709 |
msgid "months"
|
710 |
msgstr ""
|
711 |
|
712 |
-
#: classes/helpers/FrmAppHelper.php:
|
713 |
msgid "week"
|
714 |
msgstr ""
|
715 |
|
716 |
-
#: classes/helpers/FrmAppHelper.php:
|
717 |
msgid "weeks"
|
718 |
msgstr ""
|
719 |
|
720 |
-
#: classes/helpers/FrmAppHelper.php:
|
721 |
msgid "day"
|
722 |
msgstr ""
|
723 |
|
724 |
-
#: classes/helpers/FrmAppHelper.php:
|
725 |
msgid "days"
|
726 |
msgstr ""
|
727 |
|
728 |
-
#: classes/helpers/FrmAppHelper.php:
|
729 |
msgid "hour"
|
730 |
msgstr ""
|
731 |
|
732 |
-
#: classes/helpers/FrmAppHelper.php:
|
733 |
msgid "hours"
|
734 |
msgstr ""
|
735 |
|
736 |
-
#: classes/helpers/FrmAppHelper.php:
|
737 |
msgid "minute"
|
738 |
msgstr ""
|
739 |
|
740 |
-
#: classes/helpers/FrmAppHelper.php:
|
741 |
msgid "minutes"
|
742 |
msgstr ""
|
743 |
|
744 |
-
#: classes/helpers/FrmAppHelper.php:
|
745 |
msgid "second"
|
746 |
msgstr ""
|
747 |
|
748 |
-
#: classes/helpers/FrmAppHelper.php:
|
749 |
msgid "Give this action a label for easy reference."
|
750 |
msgstr ""
|
751 |
|
752 |
-
#: classes/helpers/FrmAppHelper.php:
|
753 |
msgid ""
|
754 |
"Add one or more recipient addresses separated by a \",\". FORMAT: Name "
|
755 |
"<name@email.com> or name@email.com. [admin_email] is the address set in WP "
|
756 |
"General Settings."
|
757 |
msgstr ""
|
758 |
|
759 |
-
#: classes/helpers/FrmAppHelper.php:
|
760 |
msgid ""
|
761 |
"Add CC addresses separated by a \",\". FORMAT: Name <name@email.com> or "
|
762 |
"name@email.com."
|
763 |
msgstr ""
|
764 |
|
765 |
-
#: classes/helpers/FrmAppHelper.php:
|
766 |
msgid ""
|
767 |
"Add BCC addresses separated by a \",\". FORMAT: Name <name@email.com> or "
|
768 |
"name@email.com."
|
769 |
msgstr ""
|
770 |
|
771 |
-
#: classes/helpers/FrmAppHelper.php:
|
772 |
msgid ""
|
773 |
"If you would like a different reply to address than the \"from\" address, "
|
774 |
"add a single address here. FORMAT: Name <name@email.com> or name@email.com."
|
775 |
msgstr ""
|
776 |
|
777 |
-
#: classes/helpers/FrmAppHelper.php:
|
778 |
msgid ""
|
779 |
"Enter the name and/or email address of the sender. FORMAT: John Bates "
|
780 |
"<john@example.com> or john@example.com."
|
781 |
msgstr ""
|
782 |
|
783 |
-
#: classes/helpers/FrmAppHelper.php:
|
784 |
#, php-format
|
785 |
msgid ""
|
786 |
"If you leave the subject blank, the default will be used: %1$s Form "
|
787 |
"submitted on %2$s"
|
788 |
msgstr ""
|
789 |
|
790 |
-
#: classes/helpers/FrmAppHelper.php:
|
791 |
msgid "Please wait while your site updates."
|
792 |
msgstr ""
|
793 |
|
794 |
-
#: classes/helpers/FrmAppHelper.php:
|
795 |
msgid "Are you sure you want to deauthorize Formidable Forms on this site?"
|
796 |
msgstr ""
|
797 |
|
798 |
-
#: classes/helpers/FrmAppHelper.php:
|
799 |
msgid "Remove"
|
800 |
msgstr ""
|
801 |
|
802 |
-
#: classes/helpers/FrmAppHelper.php:
|
803 |
#: classes/helpers/FrmCSVExportHelper.php:150
|
804 |
msgid "ID"
|
805 |
msgstr ""
|
806 |
|
807 |
-
#: classes/helpers/FrmAppHelper.php:
|
808 |
msgid "No results match"
|
809 |
msgstr ""
|
810 |
|
811 |
-
#: classes/helpers/FrmAppHelper.php:
|
812 |
msgid "That file looks like Spam."
|
813 |
msgstr ""
|
814 |
|
815 |
-
#: classes/helpers/FrmAppHelper.php:
|
816 |
msgid "There is an error in the calculation in the field with key"
|
817 |
msgstr ""
|
818 |
|
819 |
-
#: classes/helpers/FrmAppHelper.php:
|
820 |
msgid "Please complete the preceding required fields before uploading a file."
|
821 |
msgstr ""
|
822 |
|
823 |
-
#: classes/helpers/FrmAppHelper.php:
|
824 |
msgid ""
|
825 |
"Are you sure you want to do this? Clicking OK will delete all forms, form "
|
826 |
"data, and all other Formidable data. There is no Undo."
|
827 |
msgstr ""
|
828 |
|
829 |
-
#: classes/helpers/FrmAppHelper.php:
|
830 |
#: classes/views/frm-forms/add_field.php:37
|
831 |
#: classes/views/frm-forms/add_field.php:50
|
832 |
msgid "(Click to add description)"
|
833 |
msgstr ""
|
834 |
|
835 |
-
#: classes/helpers/FrmAppHelper.php:
|
836 |
#: classes/views/frm-fields/single-option.php:8
|
837 |
#: classes/views/frm-fields/single-option.php:14
|
838 |
msgid "(Blank)"
|
839 |
msgstr ""
|
840 |
|
841 |
-
#: classes/helpers/FrmAppHelper.php:
|
842 |
#: classes/views/frm-forms/add_field.php:17
|
843 |
msgid "(no label)"
|
844 |
msgstr ""
|
845 |
|
846 |
-
#: classes/helpers/FrmAppHelper.php:
|
847 |
msgid "Saving"
|
848 |
msgstr ""
|
849 |
|
850 |
-
#: classes/helpers/FrmAppHelper.php:
|
851 |
msgid "Saved"
|
852 |
msgstr ""
|
853 |
|
854 |
-
#: classes/helpers/FrmAppHelper.php:
|
855 |
msgid "Cancel"
|
856 |
msgstr ""
|
857 |
|
858 |
-
#: classes/helpers/FrmAppHelper.php:
|
859 |
#: classes/helpers/FrmFormsListHelper.php:300
|
860 |
#: classes/views/frm-forms/add_field.php:197
|
861 |
#: classes/views/styles/_buttons.php:12
|
@@ -863,361 +873,361 @@ msgstr ""
|
|
863 |
msgid "Default"
|
864 |
msgstr ""
|
865 |
|
866 |
-
#: classes/helpers/FrmAppHelper.php:
|
867 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
868 |
msgid "Clear default value when typing"
|
869 |
msgstr ""
|
870 |
|
871 |
-
#: classes/helpers/FrmAppHelper.php:
|
872 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
873 |
msgid "Do not clear default value when typing"
|
874 |
msgstr ""
|
875 |
|
876 |
-
#: classes/helpers/FrmAppHelper.php:
|
877 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
878 |
msgid "Default value will pass form validation"
|
879 |
msgstr ""
|
880 |
|
881 |
-
#: classes/helpers/FrmAppHelper.php:
|
882 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
883 |
msgid "Default value will NOT pass form validation"
|
884 |
msgstr ""
|
885 |
|
886 |
-
#: classes/helpers/FrmAppHelper.php:
|
887 |
#: classes/helpers/FrmEntriesListHelper.php:257
|
888 |
#: classes/helpers/FrmFormsHelper.php:831 classes/views/styles/show.php:64
|
889 |
msgid "Are you sure?"
|
890 |
msgstr ""
|
891 |
|
892 |
-
#: classes/helpers/FrmAppHelper.php:
|
893 |
msgid ""
|
894 |
"Are you sure you want to delete this field and all data associated with it?"
|
895 |
msgstr ""
|
896 |
|
897 |
-
#: classes/helpers/FrmAppHelper.php:
|
898 |
msgid "WARNING: This will delete all fields inside of the section as well."
|
899 |
msgstr ""
|
900 |
|
901 |
-
#: classes/helpers/FrmAppHelper.php:
|
902 |
msgid ""
|
903 |
"Warning: If you have entries with multiple rows, all but the first row will "
|
904 |
"be lost."
|
905 |
msgstr ""
|
906 |
|
907 |
-
#: classes/helpers/FrmAppHelper.php:
|
908 |
#: classes/helpers/FrmFieldsHelper.php:268
|
909 |
msgid "The entered values do not match"
|
910 |
msgstr ""
|
911 |
|
912 |
-
#: classes/helpers/FrmAppHelper.php:
|
913 |
msgid "Enter Email"
|
914 |
msgstr ""
|
915 |
|
916 |
-
#: classes/helpers/FrmAppHelper.php:
|
917 |
msgid "Confirm Email"
|
918 |
msgstr ""
|
919 |
|
920 |
-
#: classes/helpers/FrmAppHelper.php:
|
921 |
msgid ""
|
922 |
"In certain browsers (e.g. Firefox) text will not display correctly if the "
|
923 |
"field height is too small relative to the field padding and text size. "
|
924 |
"Please increase your field height or decrease your field padding."
|
925 |
msgstr ""
|
926 |
|
927 |
-
#: classes/helpers/FrmAppHelper.php:
|
928 |
msgid "Enter Password"
|
929 |
msgstr ""
|
930 |
|
931 |
-
#: classes/helpers/FrmAppHelper.php:
|
932 |
msgid "Confirm Password"
|
933 |
msgstr ""
|
934 |
|
935 |
-
#: classes/helpers/FrmAppHelper.php:
|
936 |
msgid "Import Complete"
|
937 |
msgstr ""
|
938 |
|
939 |
-
#: classes/helpers/FrmAppHelper.php:
|
940 |
msgid "Warning: There is no way to retrieve unsaved entries."
|
941 |
msgstr ""
|
942 |
|
943 |
-
#: classes/helpers/FrmAppHelper.php:
|
944 |
msgid "No new licenses were found"
|
945 |
msgstr ""
|
946 |
|
947 |
-
#: classes/helpers/FrmAppHelper.php:
|
948 |
msgid "This calculation has at least one unmatched ( ) { } [ ]."
|
949 |
msgstr ""
|
950 |
|
951 |
-
#: classes/helpers/FrmAppHelper.php:
|
952 |
msgid "This calculation may have shortcodes that work in Views but not forms."
|
953 |
msgstr ""
|
954 |
|
955 |
-
#: classes/helpers/FrmAppHelper.php:
|
956 |
msgid ""
|
957 |
"This calculation may have shortcodes that work in text calculations but not "
|
958 |
"numeric calculations."
|
959 |
msgstr ""
|
960 |
|
961 |
-
#: classes/helpers/FrmAppHelper.php:
|
962 |
msgid "Please enter a Repeat Limit that is greater than 1."
|
963 |
msgstr ""
|
964 |
|
965 |
-
#: classes/helpers/FrmAppHelper.php:
|
966 |
msgid "Installing"
|
967 |
msgstr ""
|
968 |
|
969 |
-
#: classes/helpers/FrmAppHelper.php:
|
970 |
-
#: classes/views/addons/list.php:
|
971 |
msgid "Install"
|
972 |
msgstr ""
|
973 |
|
974 |
-
#: classes/helpers/FrmAppHelper.php:
|
975 |
msgid ""
|
976 |
"You are running an outdated version of Formidable. This plugin may not work "
|
977 |
"correctly if you do not update Formidable."
|
978 |
msgstr ""
|
979 |
|
980 |
-
#: classes/helpers/FrmAppHelper.php:
|
981 |
msgid "English"
|
982 |
msgstr ""
|
983 |
|
984 |
-
#: classes/helpers/FrmAppHelper.php:
|
985 |
msgid "English/Western"
|
986 |
msgstr ""
|
987 |
|
988 |
-
#: classes/helpers/FrmAppHelper.php:
|
989 |
msgid "Afrikaans"
|
990 |
msgstr ""
|
991 |
|
992 |
-
#: classes/helpers/FrmAppHelper.php:
|
993 |
msgid "Albanian"
|
994 |
msgstr ""
|
995 |
|
996 |
-
#: classes/helpers/FrmAppHelper.php:
|
997 |
msgid "Arabic"
|
998 |
msgstr ""
|
999 |
|
1000 |
-
#: classes/helpers/FrmAppHelper.php:
|
1001 |
msgid "Armenian"
|
1002 |
msgstr ""
|
1003 |
|
1004 |
-
#: classes/helpers/FrmAppHelper.php:
|
1005 |
msgid "Azerbaijani"
|
1006 |
msgstr ""
|
1007 |
|
1008 |
-
#: classes/helpers/FrmAppHelper.php:
|
1009 |
msgid "Basque"
|
1010 |
msgstr ""
|
1011 |
|
1012 |
-
#: classes/helpers/FrmAppHelper.php:
|
1013 |
msgid "Bosnian"
|
1014 |
msgstr ""
|
1015 |
|
1016 |
-
#: classes/helpers/FrmAppHelper.php:
|
1017 |
msgid "Bulgarian"
|
1018 |
msgstr ""
|
1019 |
|
1020 |
-
#: classes/helpers/FrmAppHelper.php:
|
1021 |
msgid "Catalan"
|
1022 |
msgstr ""
|
1023 |
|
1024 |
-
#: classes/helpers/FrmAppHelper.php:
|
1025 |
msgid "Chinese Hong Kong"
|
1026 |
msgstr ""
|
1027 |
|
1028 |
-
#: classes/helpers/FrmAppHelper.php:
|
1029 |
msgid "Chinese Simplified"
|
1030 |
msgstr ""
|
1031 |
|
1032 |
-
#: classes/helpers/FrmAppHelper.php:
|
1033 |
msgid "Chinese Traditional"
|
1034 |
msgstr ""
|
1035 |
|
1036 |
-
#: classes/helpers/FrmAppHelper.php:
|
1037 |
msgid "Croatian"
|
1038 |
msgstr ""
|
1039 |
|
1040 |
-
#: classes/helpers/FrmAppHelper.php:
|
1041 |
msgid "Czech"
|
1042 |
msgstr ""
|
1043 |
|
1044 |
-
#: classes/helpers/FrmAppHelper.php:
|
1045 |
msgid "Danish"
|
1046 |
msgstr ""
|
1047 |
|
1048 |
-
#: classes/helpers/FrmAppHelper.php:
|
1049 |
msgid "Dutch"
|
1050 |
msgstr ""
|
1051 |
|
1052 |
-
#: classes/helpers/FrmAppHelper.php:
|
1053 |
msgid "English/UK"
|
1054 |
msgstr ""
|
1055 |
|
1056 |
-
#: classes/helpers/FrmAppHelper.php:
|
1057 |
msgid "Esperanto"
|
1058 |
msgstr ""
|
1059 |
|
1060 |
-
#: classes/helpers/FrmAppHelper.php:
|
1061 |
msgid "Estonian"
|
1062 |
msgstr ""
|
1063 |
|
1064 |
-
#: classes/helpers/FrmAppHelper.php:
|
1065 |
msgid "Faroese"
|
1066 |
msgstr ""
|
1067 |
|
1068 |
-
#: classes/helpers/FrmAppHelper.php:
|
1069 |
msgid "Farsi/Persian"
|
1070 |
msgstr ""
|
1071 |
|
1072 |
-
#: classes/helpers/FrmAppHelper.php:
|
1073 |
msgid "Filipino"
|
1074 |
msgstr ""
|
1075 |
|
1076 |
-
#: classes/helpers/FrmAppHelper.php:
|
1077 |
msgid "Finnish"
|
1078 |
msgstr ""
|
1079 |
|
1080 |
-
#: classes/helpers/FrmAppHelper.php:
|
1081 |
msgid "French"
|
1082 |
msgstr ""
|
1083 |
|
1084 |
-
#: classes/helpers/FrmAppHelper.php:
|
1085 |
msgid "French/Canadian"
|
1086 |
msgstr ""
|
1087 |
|
1088 |
-
#: classes/helpers/FrmAppHelper.php:
|
1089 |
msgid "French/Swiss"
|
1090 |
msgstr ""
|
1091 |
|
1092 |
-
#: classes/helpers/FrmAppHelper.php:
|
1093 |
msgid "German"
|
1094 |
msgstr ""
|
1095 |
|
1096 |
-
#: classes/helpers/FrmAppHelper.php:
|
1097 |
msgid "German/Austria"
|
1098 |
msgstr ""
|
1099 |
|
1100 |
-
#: classes/helpers/FrmAppHelper.php:
|
1101 |
msgid "German/Switzerland"
|
1102 |
msgstr ""
|
1103 |
|
1104 |
-
#: classes/helpers/FrmAppHelper.php:
|
1105 |
msgid "Greek"
|
1106 |
msgstr ""
|
1107 |
|
1108 |
-
#: classes/helpers/FrmAppHelper.php:
|
1109 |
msgid "Hebrew"
|
1110 |
msgstr ""
|
1111 |
|
1112 |
-
#: classes/helpers/FrmAppHelper.php:
|
1113 |
msgid "Hindi"
|
1114 |
msgstr ""
|
1115 |
|
1116 |
-
#: classes/helpers/FrmAppHelper.php:
|
1117 |
msgid "Hungarian"
|
1118 |
msgstr ""
|
1119 |
|
1120 |
-
#: classes/helpers/FrmAppHelper.php:
|
1121 |
msgid "Icelandic"
|
1122 |
msgstr ""
|
1123 |
|
1124 |
-
#: classes/helpers/FrmAppHelper.php:
|
1125 |
msgid "Indonesian"
|
1126 |
msgstr ""
|
1127 |
|
1128 |
-
#: classes/helpers/FrmAppHelper.php:
|
1129 |
msgid "Italian"
|
1130 |
msgstr ""
|
1131 |
|
1132 |
-
#: classes/helpers/FrmAppHelper.php:
|
1133 |
msgid "Japanese"
|
1134 |
msgstr ""
|
1135 |
|
1136 |
-
#: classes/helpers/FrmAppHelper.php:
|
1137 |
msgid "Korean"
|
1138 |
msgstr ""
|
1139 |
|
1140 |
-
#: classes/helpers/FrmAppHelper.php:
|
1141 |
msgid "Latvian"
|
1142 |
msgstr ""
|
1143 |
|
1144 |
-
#: classes/helpers/FrmAppHelper.php:
|
1145 |
msgid "Lithuanian"
|
1146 |
msgstr ""
|
1147 |
|
1148 |
-
#: classes/helpers/FrmAppHelper.php:
|
1149 |
msgid "Malaysian"
|
1150 |
msgstr ""
|
1151 |
|
1152 |
-
#: classes/helpers/FrmAppHelper.php:
|
1153 |
msgid "Norwegian"
|
1154 |
msgstr ""
|
1155 |
|
1156 |
-
#: classes/helpers/FrmAppHelper.php:
|
1157 |
msgid "Polish"
|
1158 |
msgstr ""
|
1159 |
|
1160 |
-
#: classes/helpers/FrmAppHelper.php:
|
1161 |
msgid "Portuguese"
|
1162 |
msgstr ""
|
1163 |
|
1164 |
-
#: classes/helpers/FrmAppHelper.php:
|
1165 |
msgid "Portuguese/Brazilian"
|
1166 |
msgstr ""
|
1167 |
|
1168 |
-
#: classes/helpers/FrmAppHelper.php:
|
1169 |
msgid "Portuguese/Portugal"
|
1170 |
msgstr ""
|
1171 |
|
1172 |
-
#: classes/helpers/FrmAppHelper.php:
|
1173 |
msgid "Romanian"
|
1174 |
msgstr ""
|
1175 |
|
1176 |
-
#: classes/helpers/FrmAppHelper.php:
|
1177 |
msgid "Russian"
|
1178 |
msgstr ""
|
1179 |
|
1180 |
-
#: classes/helpers/FrmAppHelper.php:
|
1181 |
msgid "Serbian"
|
1182 |
msgstr ""
|
1183 |
|
1184 |
-
#: classes/helpers/FrmAppHelper.php:
|
1185 |
msgid "Slovak"
|
1186 |
msgstr ""
|
1187 |
|
1188 |
-
#: classes/helpers/FrmAppHelper.php:
|
1189 |
msgid "Slovenian"
|
1190 |
msgstr ""
|
1191 |
|
1192 |
-
#: classes/helpers/FrmAppHelper.php:
|
1193 |
msgid "Spanish"
|
1194 |
msgstr ""
|
1195 |
|
1196 |
-
#: classes/helpers/FrmAppHelper.php:
|
1197 |
msgid "Spanish/Latin America"
|
1198 |
msgstr ""
|
1199 |
|
1200 |
-
#: classes/helpers/FrmAppHelper.php:
|
1201 |
msgid "Swedish"
|
1202 |
msgstr ""
|
1203 |
|
1204 |
-
#: classes/helpers/FrmAppHelper.php:
|
1205 |
msgid "Tamil"
|
1206 |
msgstr ""
|
1207 |
|
1208 |
-
#: classes/helpers/FrmAppHelper.php:
|
1209 |
msgid "Thai"
|
1210 |
msgstr ""
|
1211 |
|
1212 |
-
#: classes/helpers/FrmAppHelper.php:
|
1213 |
msgid "Turkish"
|
1214 |
msgstr ""
|
1215 |
|
1216 |
-
#: classes/helpers/FrmAppHelper.php:
|
1217 |
msgid "Ukranian"
|
1218 |
msgstr ""
|
1219 |
|
1220 |
-
#: classes/helpers/FrmAppHelper.php:
|
1221 |
msgid "Vietnamese"
|
1222 |
msgstr ""
|
1223 |
|
@@ -1302,976 +1312,976 @@ msgstr ""
|
|
1302 |
msgid "This field is invalid"
|
1303 |
msgstr ""
|
1304 |
|
1305 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1306 |
#, php-format
|
1307 |
msgid "Please add options from the WordPress \"%1$s\" page"
|
1308 |
msgstr ""
|
1309 |
|
1310 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1311 |
msgid "Afghanistan"
|
1312 |
msgstr ""
|
1313 |
|
1314 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1315 |
msgid "Albania"
|
1316 |
msgstr ""
|
1317 |
|
1318 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1319 |
msgid "Algeria"
|
1320 |
msgstr ""
|
1321 |
|
1322 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1323 |
msgid "American Samoa"
|
1324 |
msgstr ""
|
1325 |
|
1326 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1327 |
msgid "Andorra"
|
1328 |
msgstr ""
|
1329 |
|
1330 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1331 |
msgid "Angola"
|
1332 |
msgstr ""
|
1333 |
|
1334 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1335 |
msgid "Anguilla"
|
1336 |
msgstr ""
|
1337 |
|
1338 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1339 |
msgid "Antarctica"
|
1340 |
msgstr ""
|
1341 |
|
1342 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1343 |
msgid "Antigua and Barbuda"
|
1344 |
msgstr ""
|
1345 |
|
1346 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1347 |
msgid "Argentina"
|
1348 |
msgstr ""
|
1349 |
|
1350 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1351 |
msgid "Armenia"
|
1352 |
msgstr ""
|
1353 |
|
1354 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1355 |
msgid "Aruba"
|
1356 |
msgstr ""
|
1357 |
|
1358 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1359 |
msgid "Australia"
|
1360 |
msgstr ""
|
1361 |
|
1362 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1363 |
msgid "Austria"
|
1364 |
msgstr ""
|
1365 |
|
1366 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1367 |
msgid "Azerbaijan"
|
1368 |
msgstr ""
|
1369 |
|
1370 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1371 |
msgid "Bahamas"
|
1372 |
msgstr ""
|
1373 |
|
1374 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1375 |
msgid "Bahrain"
|
1376 |
msgstr ""
|
1377 |
|
1378 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1379 |
msgid "Bangladesh"
|
1380 |
msgstr ""
|
1381 |
|
1382 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1383 |
msgid "Barbados"
|
1384 |
msgstr ""
|
1385 |
|
1386 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1387 |
msgid "Belarus"
|
1388 |
msgstr ""
|
1389 |
|
1390 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1391 |
msgid "Belgium"
|
1392 |
msgstr ""
|
1393 |
|
1394 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1395 |
msgid "Belize"
|
1396 |
msgstr ""
|
1397 |
|
1398 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1399 |
msgid "Benin"
|
1400 |
msgstr ""
|
1401 |
|
1402 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1403 |
msgid "Bermuda"
|
1404 |
msgstr ""
|
1405 |
|
1406 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1407 |
msgid "Bhutan"
|
1408 |
msgstr ""
|
1409 |
|
1410 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1411 |
msgid "Bolivia"
|
1412 |
msgstr ""
|
1413 |
|
1414 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1415 |
msgid "Bosnia and Herzegovina"
|
1416 |
msgstr ""
|
1417 |
|
1418 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1419 |
msgid "Botswana"
|
1420 |
msgstr ""
|
1421 |
|
1422 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1423 |
msgid "Brazil"
|
1424 |
msgstr ""
|
1425 |
|
1426 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1427 |
msgid "Brunei"
|
1428 |
msgstr ""
|
1429 |
|
1430 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1431 |
msgid "Bulgaria"
|
1432 |
msgstr ""
|
1433 |
|
1434 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1435 |
msgid "Burkina Faso"
|
1436 |
msgstr ""
|
1437 |
|
1438 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1439 |
msgid "Burundi"
|
1440 |
msgstr ""
|
1441 |
|
1442 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1443 |
msgid "Cambodia"
|
1444 |
msgstr ""
|
1445 |
|
1446 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1447 |
msgid "Cameroon"
|
1448 |
msgstr ""
|
1449 |
|
1450 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1451 |
msgid "Canada"
|
1452 |
msgstr ""
|
1453 |
|
1454 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1455 |
msgid "Cape Verde"
|
1456 |
msgstr ""
|
1457 |
|
1458 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1459 |
msgid "Cayman Islands"
|
1460 |
msgstr ""
|
1461 |
|
1462 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1463 |
msgid "Central African Republic"
|
1464 |
msgstr ""
|
1465 |
|
1466 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1467 |
msgid "Chad"
|
1468 |
msgstr ""
|
1469 |
|
1470 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1471 |
msgid "Chile"
|
1472 |
msgstr ""
|
1473 |
|
1474 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1475 |
msgid "China"
|
1476 |
msgstr ""
|
1477 |
|
1478 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1479 |
msgid "Colombia"
|
1480 |
msgstr ""
|
1481 |
|
1482 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1483 |
msgid "Comoros"
|
1484 |
msgstr ""
|
1485 |
|
1486 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1487 |
msgid "Congo"
|
1488 |
msgstr ""
|
1489 |
|
1490 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1491 |
msgid "Costa Rica"
|
1492 |
msgstr ""
|
1493 |
|
1494 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1495 |
msgid "Côte d'Ivoire"
|
1496 |
msgstr ""
|
1497 |
|
1498 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1499 |
msgid "Croatia"
|
1500 |
msgstr ""
|
1501 |
|
1502 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1503 |
msgid "Cuba"
|
1504 |
msgstr ""
|
1505 |
|
1506 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1507 |
msgid "Cyprus"
|
1508 |
msgstr ""
|
1509 |
|
1510 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1511 |
msgid "Czech Republic"
|
1512 |
msgstr ""
|
1513 |
|
1514 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1515 |
msgid "Denmark"
|
1516 |
msgstr ""
|
1517 |
|
1518 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1519 |
msgid "Djibouti"
|
1520 |
msgstr ""
|
1521 |
|
1522 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1523 |
msgid "Dominica"
|
1524 |
msgstr ""
|
1525 |
|
1526 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1527 |
msgid "Dominican Republic"
|
1528 |
msgstr ""
|
1529 |
|
1530 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1531 |
msgid "East Timor"
|
1532 |
msgstr ""
|
1533 |
|
1534 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1535 |
msgid "Ecuador"
|
1536 |
msgstr ""
|
1537 |
|
1538 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1539 |
msgid "Egypt"
|
1540 |
msgstr ""
|
1541 |
|
1542 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1543 |
msgid "El Salvador"
|
1544 |
msgstr ""
|
1545 |
|
1546 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1547 |
msgid "Equatorial Guinea"
|
1548 |
msgstr ""
|
1549 |
|
1550 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1551 |
msgid "Eritrea"
|
1552 |
msgstr ""
|
1553 |
|
1554 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1555 |
msgid "Estonia"
|
1556 |
msgstr ""
|
1557 |
|
1558 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1559 |
msgid "Ethiopia"
|
1560 |
msgstr ""
|
1561 |
|
1562 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1563 |
msgid "Fiji"
|
1564 |
msgstr ""
|
1565 |
|
1566 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1567 |
msgid "Finland"
|
1568 |
msgstr ""
|
1569 |
|
1570 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1571 |
msgid "France"
|
1572 |
msgstr ""
|
1573 |
|
1574 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1575 |
msgid "French Guiana"
|
1576 |
msgstr ""
|
1577 |
|
1578 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1579 |
msgid "French Polynesia"
|
1580 |
msgstr ""
|
1581 |
|
1582 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1583 |
msgid "Gabon"
|
1584 |
msgstr ""
|
1585 |
|
1586 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1587 |
msgid "Gambia"
|
1588 |
msgstr ""
|
1589 |
|
1590 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1591 |
msgid "Georgia"
|
1592 |
msgstr ""
|
1593 |
|
1594 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1595 |
msgid "Germany"
|
1596 |
msgstr ""
|
1597 |
|
1598 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1599 |
msgid "Ghana"
|
1600 |
msgstr ""
|
1601 |
|
1602 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1603 |
msgid "Gibraltar"
|
1604 |
msgstr ""
|
1605 |
|
1606 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1607 |
msgid "Greece"
|
1608 |
msgstr ""
|
1609 |
|
1610 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1611 |
msgid "Greenland"
|
1612 |
msgstr ""
|
1613 |
|
1614 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1615 |
msgid "Grenada"
|
1616 |
msgstr ""
|
1617 |
|
1618 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1619 |
msgid "Guam"
|
1620 |
msgstr ""
|
1621 |
|
1622 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1623 |
msgid "Guatemala"
|
1624 |
msgstr ""
|
1625 |
|
1626 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1627 |
msgid "Guinea"
|
1628 |
msgstr ""
|
1629 |
|
1630 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1631 |
msgid "Guinea-Bissau"
|
1632 |
msgstr ""
|
1633 |
|
1634 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1635 |
msgid "Guyana"
|
1636 |
msgstr ""
|
1637 |
|
1638 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1639 |
msgid "Haiti"
|
1640 |
msgstr ""
|
1641 |
|
1642 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1643 |
msgid "Honduras"
|
1644 |
msgstr ""
|
1645 |
|
1646 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1647 |
msgid "Hong Kong"
|
1648 |
msgstr ""
|
1649 |
|
1650 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1651 |
msgid "Hungary"
|
1652 |
msgstr ""
|
1653 |
|
1654 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1655 |
msgid "Iceland"
|
1656 |
msgstr ""
|
1657 |
|
1658 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1659 |
msgid "India"
|
1660 |
msgstr ""
|
1661 |
|
1662 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1663 |
msgid "Indonesia"
|
1664 |
msgstr ""
|
1665 |
|
1666 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1667 |
msgid "Iran"
|
1668 |
msgstr ""
|
1669 |
|
1670 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1671 |
msgid "Iraq"
|
1672 |
msgstr ""
|
1673 |
|
1674 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1675 |
msgid "Ireland"
|
1676 |
msgstr ""
|
1677 |
|
1678 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1679 |
msgid "Israel"
|
1680 |
msgstr ""
|
1681 |
|
1682 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1683 |
msgid "Italy"
|
1684 |
msgstr ""
|
1685 |
|
1686 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1687 |
msgid "Jamaica"
|
1688 |
msgstr ""
|
1689 |
|
1690 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1691 |
msgid "Japan"
|
1692 |
msgstr ""
|
1693 |
|
1694 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1695 |
msgid "Jordan"
|
1696 |
msgstr ""
|
1697 |
|
1698 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1699 |
msgid "Kazakhstan"
|
1700 |
msgstr ""
|
1701 |
|
1702 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1703 |
msgid "Kenya"
|
1704 |
msgstr ""
|
1705 |
|
1706 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1707 |
msgid "Kiribati"
|
1708 |
msgstr ""
|
1709 |
|
1710 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1711 |
msgid "North Korea"
|
1712 |
msgstr ""
|
1713 |
|
1714 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1715 |
msgid "South Korea"
|
1716 |
msgstr ""
|
1717 |
|
1718 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1719 |
msgid "Kuwait"
|
1720 |
msgstr ""
|
1721 |
|
1722 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1723 |
msgid "Kyrgyzstan"
|
1724 |
msgstr ""
|
1725 |
|
1726 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1727 |
msgid "Laos"
|
1728 |
msgstr ""
|
1729 |
|
1730 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1731 |
msgid "Latvia"
|
1732 |
msgstr ""
|
1733 |
|
1734 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1735 |
msgid "Lebanon"
|
1736 |
msgstr ""
|
1737 |
|
1738 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1739 |
msgid "Lesotho"
|
1740 |
msgstr ""
|
1741 |
|
1742 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1743 |
msgid "Liberia"
|
1744 |
msgstr ""
|
1745 |
|
1746 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1747 |
msgid "Libya"
|
1748 |
msgstr ""
|
1749 |
|
1750 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1751 |
msgid "Liechtenstein"
|
1752 |
msgstr ""
|
1753 |
|
1754 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1755 |
msgid "Lithuania"
|
1756 |
msgstr ""
|
1757 |
|
1758 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1759 |
msgid "Luxembourg"
|
1760 |
msgstr ""
|
1761 |
|
1762 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1763 |
msgid "Macedonia"
|
1764 |
msgstr ""
|
1765 |
|
1766 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1767 |
msgid "Madagascar"
|
1768 |
msgstr ""
|
1769 |
|
1770 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1771 |
msgid "Malawi"
|
1772 |
msgstr ""
|
1773 |
|
1774 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1775 |
msgid "Malaysia"
|
1776 |
msgstr ""
|
1777 |
|
1778 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1779 |
msgid "Maldives"
|
1780 |
msgstr ""
|
1781 |
|
1782 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1783 |
msgid "Mali"
|
1784 |
msgstr ""
|
1785 |
|
1786 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1787 |
msgid "Malta"
|
1788 |
msgstr ""
|
1789 |
|
1790 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1791 |
msgid "Marshall Islands"
|
1792 |
msgstr ""
|
1793 |
|
1794 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1795 |
msgid "Mauritania"
|
1796 |
msgstr ""
|
1797 |
|
1798 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1799 |
msgid "Mauritius"
|
1800 |
msgstr ""
|
1801 |
|
1802 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1803 |
msgid "Mexico"
|
1804 |
msgstr ""
|
1805 |
|
1806 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1807 |
msgid "Micronesia"
|
1808 |
msgstr ""
|
1809 |
|
1810 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1811 |
msgid "Moldova"
|
1812 |
msgstr ""
|
1813 |
|
1814 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1815 |
msgid "Monaco"
|
1816 |
msgstr ""
|
1817 |
|
1818 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1819 |
msgid "Mongolia"
|
1820 |
msgstr ""
|
1821 |
|
1822 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1823 |
msgid "Montenegro"
|
1824 |
msgstr ""
|
1825 |
|
1826 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1827 |
msgid "Montserrat"
|
1828 |
msgstr ""
|
1829 |
|
1830 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1831 |
msgid "Morocco"
|
1832 |
msgstr ""
|
1833 |
|
1834 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1835 |
msgid "Mozambique"
|
1836 |
msgstr ""
|
1837 |
|
1838 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1839 |
msgid "Myanmar"
|
1840 |
msgstr ""
|
1841 |
|
1842 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1843 |
msgid "Namibia"
|
1844 |
msgstr ""
|
1845 |
|
1846 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1847 |
msgid "Nauru"
|
1848 |
msgstr ""
|
1849 |
|
1850 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1851 |
msgid "Nepal"
|
1852 |
msgstr ""
|
1853 |
|
1854 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1855 |
msgid "Netherlands"
|
1856 |
msgstr ""
|
1857 |
|
1858 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1859 |
msgid "New Zealand"
|
1860 |
msgstr ""
|
1861 |
|
1862 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1863 |
msgid "Nicaragua"
|
1864 |
msgstr ""
|
1865 |
|
1866 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1867 |
msgid "Niger"
|
1868 |
msgstr ""
|
1869 |
|
1870 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1871 |
msgid "Nigeria"
|
1872 |
msgstr ""
|
1873 |
|
1874 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1875 |
msgid "Norway"
|
1876 |
msgstr ""
|
1877 |
|
1878 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1879 |
msgid "Northern Mariana Islands"
|
1880 |
msgstr ""
|
1881 |
|
1882 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1883 |
msgid "Oman"
|
1884 |
msgstr ""
|
1885 |
|
1886 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1887 |
msgid "Pakistan"
|
1888 |
msgstr ""
|
1889 |
|
1890 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1891 |
msgid "Palau"
|
1892 |
msgstr ""
|
1893 |
|
1894 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1895 |
msgid "Palestine"
|
1896 |
msgstr ""
|
1897 |
|
1898 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1899 |
msgid "Panama"
|
1900 |
msgstr ""
|
1901 |
|
1902 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1903 |
msgid "Papua New Guinea"
|
1904 |
msgstr ""
|
1905 |
|
1906 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1907 |
msgid "Paraguay"
|
1908 |
msgstr ""
|
1909 |
|
1910 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1911 |
msgid "Peru"
|
1912 |
msgstr ""
|
1913 |
|
1914 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1915 |
msgid "Philippines"
|
1916 |
msgstr ""
|
1917 |
|
1918 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1919 |
msgid "Poland"
|
1920 |
msgstr ""
|
1921 |
|
1922 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1923 |
msgid "Portugal"
|
1924 |
msgstr ""
|
1925 |
|
1926 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1927 |
msgid "Puerto Rico"
|
1928 |
msgstr ""
|
1929 |
|
1930 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1931 |
msgid "Qatar"
|
1932 |
msgstr ""
|
1933 |
|
1934 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1935 |
msgid "Romania"
|
1936 |
msgstr ""
|
1937 |
|
1938 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1939 |
msgid "Russia"
|
1940 |
msgstr ""
|
1941 |
|
1942 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1943 |
msgid "Rwanda"
|
1944 |
msgstr ""
|
1945 |
|
1946 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1947 |
msgid "Saint Kitts and Nevis"
|
1948 |
msgstr ""
|
1949 |
|
1950 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1951 |
msgid "Saint Lucia"
|
1952 |
msgstr ""
|
1953 |
|
1954 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1955 |
msgid "Saint Vincent and the Grenadines"
|
1956 |
msgstr ""
|
1957 |
|
1958 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1959 |
msgid "Samoa"
|
1960 |
msgstr ""
|
1961 |
|
1962 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1963 |
msgid "San Marino"
|
1964 |
msgstr ""
|
1965 |
|
1966 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1967 |
msgid "Sao Tome and Principe"
|
1968 |
msgstr ""
|
1969 |
|
1970 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1971 |
msgid "Saudi Arabia"
|
1972 |
msgstr ""
|
1973 |
|
1974 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1975 |
msgid "Senegal"
|
1976 |
msgstr ""
|
1977 |
|
1978 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1979 |
msgid "Serbia and Montenegro"
|
1980 |
msgstr ""
|
1981 |
|
1982 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1983 |
msgid "Seychelles"
|
1984 |
msgstr ""
|
1985 |
|
1986 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1987 |
msgid "Sierra Leone"
|
1988 |
msgstr ""
|
1989 |
|
1990 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1991 |
msgid "Singapore"
|
1992 |
msgstr ""
|
1993 |
|
1994 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1995 |
msgid "Slovakia"
|
1996 |
msgstr ""
|
1997 |
|
1998 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
1999 |
msgid "Slovenia"
|
2000 |
msgstr ""
|
2001 |
|
2002 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2003 |
msgid "Solomon Islands"
|
2004 |
msgstr ""
|
2005 |
|
2006 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2007 |
msgid "Somalia"
|
2008 |
msgstr ""
|
2009 |
|
2010 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2011 |
msgid "South Africa"
|
2012 |
msgstr ""
|
2013 |
|
2014 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2015 |
msgid "South Sudan"
|
2016 |
msgstr ""
|
2017 |
|
2018 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2019 |
msgid "Spain"
|
2020 |
msgstr ""
|
2021 |
|
2022 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2023 |
msgid "Sri Lanka"
|
2024 |
msgstr ""
|
2025 |
|
2026 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2027 |
msgid "Sudan"
|
2028 |
msgstr ""
|
2029 |
|
2030 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2031 |
msgid "Suriname"
|
2032 |
msgstr ""
|
2033 |
|
2034 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2035 |
msgid "Swaziland"
|
2036 |
msgstr ""
|
2037 |
|
2038 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2039 |
msgid "Sweden"
|
2040 |
msgstr ""
|
2041 |
|
2042 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2043 |
msgid "Switzerland"
|
2044 |
msgstr ""
|
2045 |
|
2046 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2047 |
msgid "Syria"
|
2048 |
msgstr ""
|
2049 |
|
2050 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2051 |
msgid "Taiwan"
|
2052 |
msgstr ""
|
2053 |
|
2054 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2055 |
msgid "Tajikistan"
|
2056 |
msgstr ""
|
2057 |
|
2058 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2059 |
msgid "Tanzania"
|
2060 |
msgstr ""
|
2061 |
|
2062 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2063 |
msgid "Thailand"
|
2064 |
msgstr ""
|
2065 |
|
2066 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2067 |
msgid "Togo"
|
2068 |
msgstr ""
|
2069 |
|
2070 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2071 |
msgid "Tonga"
|
2072 |
msgstr ""
|
2073 |
|
2074 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2075 |
msgid "Trinidad and Tobago"
|
2076 |
msgstr ""
|
2077 |
|
2078 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2079 |
msgid "Tunisia"
|
2080 |
msgstr ""
|
2081 |
|
2082 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2083 |
msgid "Turkey"
|
2084 |
msgstr ""
|
2085 |
|
2086 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2087 |
msgid "Turkmenistan"
|
2088 |
msgstr ""
|
2089 |
|
2090 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2091 |
msgid "Tuvalu"
|
2092 |
msgstr ""
|
2093 |
|
2094 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2095 |
msgid "Uganda"
|
2096 |
msgstr ""
|
2097 |
|
2098 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2099 |
msgid "Ukraine"
|
2100 |
msgstr ""
|
2101 |
|
2102 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2103 |
msgid "United Arab Emirates"
|
2104 |
msgstr ""
|
2105 |
|
2106 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2107 |
msgid "United Kingdom"
|
2108 |
msgstr ""
|
2109 |
|
2110 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2111 |
msgid "United States"
|
2112 |
msgstr ""
|
2113 |
|
2114 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2115 |
msgid "Uruguay"
|
2116 |
msgstr ""
|
2117 |
|
2118 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2119 |
msgid "Uzbekistan"
|
2120 |
msgstr ""
|
2121 |
|
2122 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2123 |
msgid "Vanuatu"
|
2124 |
msgstr ""
|
2125 |
|
2126 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2127 |
msgid "Vatican City"
|
2128 |
msgstr ""
|
2129 |
|
2130 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2131 |
msgid "Venezuela"
|
2132 |
msgstr ""
|
2133 |
|
2134 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2135 |
msgid "Vietnam"
|
2136 |
msgstr ""
|
2137 |
|
2138 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2139 |
msgid "Virgin Islands, British"
|
2140 |
msgstr ""
|
2141 |
|
2142 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2143 |
msgid "Virgin Islands, U.S."
|
2144 |
msgstr ""
|
2145 |
|
2146 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2147 |
msgid "Yemen"
|
2148 |
msgstr ""
|
2149 |
|
2150 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2151 |
msgid "Zambia"
|
2152 |
msgstr ""
|
2153 |
|
2154 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2155 |
msgid "Zimbabwe"
|
2156 |
msgstr ""
|
2157 |
|
2158 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2159 |
msgid "Countries"
|
2160 |
msgstr ""
|
2161 |
|
2162 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2163 |
msgid "U.S. State Abbreviations"
|
2164 |
msgstr ""
|
2165 |
|
2166 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2167 |
msgid "U.S. States"
|
2168 |
msgstr ""
|
2169 |
|
2170 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2171 |
msgid "Age"
|
2172 |
msgstr ""
|
2173 |
|
2174 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2175 |
msgid "Under 18"
|
2176 |
msgstr ""
|
2177 |
|
2178 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2179 |
msgid "18-24"
|
2180 |
msgstr ""
|
2181 |
|
2182 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2183 |
msgid "25-34"
|
2184 |
msgstr ""
|
2185 |
|
2186 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2187 |
msgid "35-44"
|
2188 |
msgstr ""
|
2189 |
|
2190 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2191 |
msgid "45-54"
|
2192 |
msgstr ""
|
2193 |
|
2194 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2195 |
msgid "55-64"
|
2196 |
msgstr ""
|
2197 |
|
2198 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2199 |
msgid "65 or Above"
|
2200 |
msgstr ""
|
2201 |
|
2202 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2203 |
msgid "Prefer Not to Answer"
|
2204 |
msgstr ""
|
2205 |
|
2206 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2207 |
msgid "Satisfaction"
|
2208 |
msgstr ""
|
2209 |
|
2210 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2211 |
msgid "Very Satisfied"
|
2212 |
msgstr ""
|
2213 |
|
2214 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2215 |
msgid "Satisfied"
|
2216 |
msgstr ""
|
2217 |
|
2218 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2219 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2220 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2221 |
msgid "Neutral"
|
2222 |
msgstr ""
|
2223 |
|
2224 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2225 |
msgid "Unsatisfied"
|
2226 |
msgstr ""
|
2227 |
|
2228 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2229 |
msgid "Very Unsatisfied"
|
2230 |
msgstr ""
|
2231 |
|
2232 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2233 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2234 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2235 |
msgid "N/A"
|
2236 |
msgstr ""
|
2237 |
|
2238 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2239 |
msgid "Importance"
|
2240 |
msgstr ""
|
2241 |
|
2242 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2243 |
msgid "Very Important"
|
2244 |
msgstr ""
|
2245 |
|
2246 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2247 |
msgid "Important"
|
2248 |
msgstr ""
|
2249 |
|
2250 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2251 |
msgid "Somewhat Important"
|
2252 |
msgstr ""
|
2253 |
|
2254 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2255 |
msgid "Not at all Important"
|
2256 |
msgstr ""
|
2257 |
|
2258 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2259 |
msgid "Agreement"
|
2260 |
msgstr ""
|
2261 |
|
2262 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2263 |
msgid "Strongly Agree"
|
2264 |
msgstr ""
|
2265 |
|
2266 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2267 |
msgid "Agree"
|
2268 |
msgstr ""
|
2269 |
|
2270 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2271 |
msgid "Disagree"
|
2272 |
msgstr ""
|
2273 |
|
2274 |
-
#: classes/helpers/FrmFieldsHelper.php:
|
2275 |
msgid "Strongly Disagree"
|
2276 |
msgstr ""
|
2277 |
|
@@ -2342,7 +2352,7 @@ msgid ""
|
|
2342 |
msgstr ""
|
2343 |
|
2344 |
#: classes/helpers/FrmFormsHelper.php:853
|
2345 |
-
#: classes/helpers/FrmStylesHelper.php:
|
2346 |
msgid "Right"
|
2347 |
msgstr ""
|
2348 |
|
@@ -2459,65 +2469,65 @@ msgstr ""
|
|
2459 |
msgid "Custom"
|
2460 |
msgstr ""
|
2461 |
|
2462 |
-
#: classes/helpers/FrmStylesHelper.php:
|
2463 |
msgid "Edit Styles"
|
2464 |
msgstr ""
|
2465 |
|
2466 |
-
#: classes/helpers/FrmStylesHelper.php:
|
2467 |
msgid "Manage Form Styles"
|
2468 |
msgstr ""
|
2469 |
|
2470 |
-
#: classes/helpers/FrmStylesHelper.php:
|
2471 |
msgid "Custom CSS"
|
2472 |
msgstr ""
|
2473 |
|
2474 |
-
#: classes/helpers/FrmStylesHelper.php:
|
2475 |
msgid "top"
|
2476 |
msgstr ""
|
2477 |
|
2478 |
-
#: classes/helpers/FrmStylesHelper.php:
|
2479 |
#: classes/views/styles/_field-description.php:33
|
2480 |
#: classes/views/styles/_field-labels.php:31
|
2481 |
#: classes/views/styles/_general.php:11
|
2482 |
msgid "left"
|
2483 |
msgstr ""
|
2484 |
|
2485 |
-
#: classes/helpers/FrmStylesHelper.php:
|
2486 |
#: classes/views/styles/_field-description.php:36
|
2487 |
#: classes/views/styles/_field-labels.php:34
|
2488 |
#: classes/views/styles/_general.php:14
|
2489 |
msgid "right"
|
2490 |
msgstr ""
|
2491 |
|
2492 |
-
#: classes/helpers/FrmStylesHelper.php:
|
2493 |
msgid "none"
|
2494 |
msgstr ""
|
2495 |
|
2496 |
-
#: classes/helpers/FrmStylesHelper.php:
|
2497 |
msgid "inside"
|
2498 |
msgstr ""
|
2499 |
|
2500 |
-
#: classes/helpers/FrmStylesHelper.php:
|
2501 |
msgid "Top"
|
2502 |
msgstr ""
|
2503 |
|
2504 |
-
#: classes/helpers/FrmStylesHelper.php:
|
2505 |
msgid "Left"
|
2506 |
msgstr ""
|
2507 |
|
2508 |
-
#: classes/helpers/FrmStylesHelper.php:
|
2509 |
msgid "Inline (left without a set width)"
|
2510 |
msgstr ""
|
2511 |
|
2512 |
-
#: classes/helpers/FrmStylesHelper.php:
|
2513 |
msgid "None"
|
2514 |
msgstr ""
|
2515 |
|
2516 |
-
#: classes/helpers/FrmStylesHelper.php:
|
2517 |
msgid "Hidden (but leave the space)"
|
2518 |
msgstr ""
|
2519 |
|
2520 |
-
#: classes/helpers/FrmStylesHelper.php:
|
2521 |
msgid "Placeholder inside the field"
|
2522 |
msgstr ""
|
2523 |
|
@@ -2801,64 +2811,64 @@ msgstr ""
|
|
2801 |
msgid "Email Notification"
|
2802 |
msgstr ""
|
2803 |
|
2804 |
-
#: classes/models/FrmAddon.php:
|
2805 |
#, php-format
|
2806 |
msgid ""
|
2807 |
"Your %1$s license key is missing. Please add it on the %2$slicenses page%3$s."
|
2808 |
msgstr ""
|
2809 |
|
2810 |
-
#: classes/models/FrmAddon.php:
|
2811 |
msgid "Oops! You forgot to enter your license number."
|
2812 |
msgstr ""
|
2813 |
|
2814 |
-
#: classes/models/FrmAddon.php:
|
2815 |
msgid "Your license has been activated. Enjoy!"
|
2816 |
msgstr ""
|
2817 |
|
2818 |
-
#: classes/models/FrmAddon.php:
|
2819 |
msgid "That license key is invalid"
|
2820 |
msgstr ""
|
2821 |
|
2822 |
-
#: classes/models/FrmAddon.php:
|
2823 |
msgid "That license is expired"
|
2824 |
msgstr ""
|
2825 |
|
2826 |
-
#: classes/models/FrmAddon.php:
|
2827 |
msgid "That license has been refunded"
|
2828 |
msgstr ""
|
2829 |
|
2830 |
-
#: classes/models/FrmAddon.php:
|
2831 |
msgid "That license has been used on too many sites"
|
2832 |
msgstr ""
|
2833 |
|
2834 |
-
#: classes/models/FrmAddon.php:
|
2835 |
msgid "Oops! That is the wrong license key for this plugin."
|
2836 |
msgstr ""
|
2837 |
|
2838 |
-
#: classes/models/FrmAddon.php:
|
2839 |
msgid "That license was removed successfully"
|
2840 |
msgstr ""
|
2841 |
|
2842 |
-
#: classes/models/FrmAddon.php:
|
2843 |
msgid "There was an error deactivating your license."
|
2844 |
msgstr ""
|
2845 |
|
2846 |
-
#: classes/models/FrmAddon.php:
|
2847 |
msgid "Your License Key was invalid"
|
2848 |
msgstr ""
|
2849 |
|
2850 |
-
#: classes/models/FrmAddon.php:
|
2851 |
#, php-format
|
2852 |
msgid ""
|
2853 |
"You had an error communicating with the Formidable API. %1$sClick here%2$s "
|
2854 |
"for more information."
|
2855 |
msgstr ""
|
2856 |
|
2857 |
-
#: classes/models/FrmAddon.php:
|
2858 |
msgid "You had an HTTP error connecting to the Formidable API"
|
2859 |
msgstr ""
|
2860 |
|
2861 |
-
#: classes/models/FrmAddon.php:
|
2862 |
#, php-format
|
2863 |
msgid "There was a %1$s error: %2$s"
|
2864 |
msgstr ""
|
@@ -2867,16 +2877,6 @@ msgstr ""
|
|
2867 |
msgid "Use the query in an array format so it can be properly prepared."
|
2868 |
msgstr ""
|
2869 |
|
2870 |
-
#: classes/models/FrmEDD_SL_Plugin_Updater.php:315
|
2871 |
-
msgid "You do not have permission to install plugin updates"
|
2872 |
-
msgstr ""
|
2873 |
-
|
2874 |
-
#: classes/models/FrmEDD_SL_Plugin_Updater.php:315
|
2875 |
-
#: classes/views/styles/_field-colors.php:15
|
2876 |
-
#: classes/views/styles/_form-messages.php:7
|
2877 |
-
msgid "Error"
|
2878 |
-
msgstr ""
|
2879 |
-
|
2880 |
#: classes/models/FrmEmail.php:262
|
2881 |
#, php-format
|
2882 |
msgid "%1$s Form submitted on %2$s"
|
@@ -2905,12 +2905,12 @@ msgstr ""
|
|
2905 |
msgid "There was a problem with your submission. Please try again."
|
2906 |
msgstr ""
|
2907 |
|
2908 |
-
#: classes/models/FrmEntryValidate.php:
|
2909 |
-
#: classes/models/FrmEntryValidate.php:
|
2910 |
msgid "Your entry appears to be spam!"
|
2911 |
msgstr ""
|
2912 |
|
2913 |
-
#: classes/models/FrmEntryValidate.php:
|
2914 |
msgid "Your entry appears to be blacklist spam!"
|
2915 |
msgstr ""
|
2916 |
|
@@ -3082,7 +3082,7 @@ msgstr ""
|
|
3082 |
msgid "Default Form"
|
3083 |
msgstr ""
|
3084 |
|
3085 |
-
#: classes/models/FrmMigrate.php:
|
3086 |
msgid "Sending"
|
3087 |
msgstr ""
|
3088 |
|
@@ -3205,44 +3205,40 @@ msgstr ""
|
|
3205 |
msgid "Website"
|
3206 |
msgstr ""
|
3207 |
|
3208 |
-
#: classes/views/addons/list.php:
|
3209 |
-
msgid "Formidable
|
3210 |
msgstr ""
|
3211 |
|
3212 |
-
#: classes/views/addons/list.php:
|
3213 |
msgid "View Docs"
|
3214 |
msgstr ""
|
3215 |
|
3216 |
-
#: classes/views/addons/list.php:
|
3217 |
#, php-format
|
3218 |
msgid "Status: %s"
|
3219 |
msgstr ""
|
3220 |
|
3221 |
-
#: classes/views/addons/list.php:
|
3222 |
msgid "Activate"
|
3223 |
msgstr ""
|
3224 |
|
3225 |
-
#: classes/views/addons/list.php:
|
3226 |
#: classes/views/addons/upgrade_to_pro.php:24
|
3227 |
msgid "Get Started"
|
3228 |
msgstr ""
|
3229 |
|
3230 |
-
#: classes/views/addons/list.php:
|
3231 |
msgid "Upgrade Now"
|
3232 |
msgstr ""
|
3233 |
|
3234 |
-
#: classes/views/addons/settings.php:
|
3235 |
msgid "Good to go!"
|
3236 |
msgstr ""
|
3237 |
|
3238 |
-
#: classes/views/addons/settings.php:
|
3239 |
msgid "Deactivate"
|
3240 |
msgstr ""
|
3241 |
|
3242 |
-
#: classes/views/addons/settings.php:40
|
3243 |
-
msgid "Autofill Licenses"
|
3244 |
-
msgstr ""
|
3245 |
-
|
3246 |
#: classes/views/frm-entries/_sidebar-shared-pub.php:17
|
3247 |
msgid "Print"
|
3248 |
msgstr ""
|
@@ -4126,7 +4122,7 @@ msgid "To unlock more features consider %1$supgrading to PRO%2$s."
|
|
4126 |
msgstr ""
|
4127 |
|
4128 |
#: classes/views/frm-settings/license_box.php:10
|
4129 |
-
#: classes/views/shared/upgrade_overlay.php:
|
4130 |
msgid "Already purchased?"
|
4131 |
msgstr ""
|
4132 |
|
@@ -4203,16 +4199,59 @@ msgstr ""
|
|
4203 |
msgid "Click a button below to insert sample logic into your view"
|
4204 |
msgstr ""
|
4205 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4206 |
#: classes/views/shared/upgrade_overlay.php:11
|
4207 |
#, php-format
|
4208 |
-
msgid "%s are
|
4209 |
msgstr ""
|
4210 |
|
4211 |
#: classes/views/shared/upgrade_overlay.php:20
|
4212 |
-
|
4213 |
-
msgid ""
|
4214 |
-
"%s are not installed on this site. Please see the addons that are included "
|
4215 |
-
"with your plan."
|
4216 |
msgstr ""
|
4217 |
|
4218 |
#: classes/views/shared/upgrade_overlay.php:22
|
@@ -4222,6 +4261,10 @@ msgid ""
|
|
4222 |
"awesome features."
|
4223 |
msgstr ""
|
4224 |
|
|
|
|
|
|
|
|
|
4225 |
#: classes/views/styles/_buttons.php:4
|
4226 |
msgid "Disable submit button styling"
|
4227 |
msgstr ""
|
3 |
msgstr ""
|
4 |
"Project-Id-Version: Formidable v2.05\n"
|
5 |
"Report-Msgid-Bugs-To: \n"
|
6 |
+
"POT-Creation-Date: 2018-11-30 19:15+0000\n"
|
7 |
"POT-Revision-Date: Tue Sep 26 2017 16:06:46 GMT-0600 (MDT)\n"
|
8 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
9 |
"Last-Translator: \n"
|
27 |
"X-Poedit-SearchPath-0: .\n"
|
28 |
"X-Textdomain-Support: yes"
|
29 |
|
30 |
+
#: deprecated/FrmDeprecated.php:286
|
31 |
+
#: classes/controllers/FrmFormsController.php:232
|
32 |
+
msgid "Form template was Successfully Created"
|
33 |
+
msgstr ""
|
34 |
+
|
35 |
+
#: deprecated/FrmEDD_SL_Plugin_Updater.php:315
|
36 |
+
msgid "You do not have permission to install plugin updates"
|
37 |
+
msgstr ""
|
38 |
+
|
39 |
+
#: deprecated/FrmEDD_SL_Plugin_Updater.php:315
|
40 |
+
#: classes/views/styles/_field-colors.php:15
|
41 |
+
#: classes/views/styles/_form-messages.php:7
|
42 |
+
msgid "Error"
|
43 |
+
msgstr ""
|
44 |
+
|
45 |
+
#: classes/controllers/FrmAddonsController.php:10
|
46 |
+
msgid "Add-Ons"
|
47 |
msgstr ""
|
48 |
|
49 |
+
#: classes/controllers/FrmAddonsController.php:13
|
50 |
+
#: classes/views/shared/upgrade_overlay.php:33
|
51 |
msgid "Upgrade to Pro"
|
52 |
msgstr ""
|
53 |
|
54 |
+
#: classes/controllers/FrmAddonsController.php:35
|
55 |
msgid "There are no plugins on your site that require a license"
|
56 |
msgstr ""
|
57 |
|
58 |
+
#: classes/controllers/FrmAddonsController.php:462
|
59 |
msgid "Installed"
|
60 |
msgstr ""
|
61 |
|
62 |
+
#: classes/controllers/FrmAddonsController.php:467
|
63 |
+
#: classes/helpers/FrmAppHelper.php:1684
|
64 |
#: classes/views/styles/_field-colors.php:10
|
65 |
msgid "Active"
|
66 |
msgstr ""
|
67 |
|
68 |
+
#: classes/controllers/FrmAddonsController.php:472
|
69 |
msgid "Not Installed"
|
70 |
msgstr ""
|
71 |
|
72 |
+
#: classes/controllers/FrmAddonsController.php:556
|
73 |
msgid ""
|
74 |
"Sorry, you're site requires FTP authentication. Please install plugins "
|
75 |
"manaully."
|
99 |
msgid "Build a Form"
|
100 |
msgstr ""
|
101 |
|
102 |
+
#: classes/controllers/FrmAppController.php:147
|
103 |
#, php-format
|
104 |
msgid ""
|
105 |
"This site has been previously authorized to run Formidable Forms. "
|
107 |
"running the free version and remove this message."
|
108 |
msgstr ""
|
109 |
|
110 |
+
#: classes/controllers/FrmAppController.php:491
|
111 |
#, php-format
|
112 |
msgid ""
|
113 |
"Help us spread the %1$sFormidable Forms%2$s love with %3$s %5$s on WordPress."
|
199 |
msgid "No entries were specified"
|
200 |
msgstr ""
|
201 |
|
202 |
+
#: classes/controllers/FrmFieldsController.php:249
|
203 |
msgid "Other"
|
204 |
msgstr ""
|
205 |
|
206 |
+
#: classes/controllers/FrmFieldsController.php:252
|
207 |
msgid "New Option"
|
208 |
msgstr ""
|
209 |
|
233 |
msgid "Form was Successfully Updated"
|
234 |
msgstr ""
|
235 |
|
|
|
|
|
|
|
|
|
|
|
236 |
#: classes/controllers/FrmFormsController.php:232
|
237 |
msgid "Form was Successfully Copied"
|
238 |
msgstr ""
|
451 |
msgid "No forms were specified"
|
452 |
msgstr ""
|
453 |
|
454 |
+
#: classes/controllers/FrmFormsController.php:1083
|
455 |
msgid "Abnormal HTML characters prevented your form from saving correctly"
|
456 |
msgstr ""
|
457 |
|
458 |
+
#: classes/controllers/FrmFormsController.php:1198
|
459 |
+
#: classes/controllers/FrmFormsController.php:1212
|
460 |
msgid "Please select a valid form"
|
461 |
msgstr ""
|
462 |
|
463 |
+
#: classes/controllers/FrmFormsController.php:1440
|
464 |
msgid "Please wait while you are redirected."
|
465 |
msgstr ""
|
466 |
|
467 |
+
#: classes/controllers/FrmFormsController.php:1474
|
468 |
#, php-format
|
469 |
msgid "%1$sClick here%2$s if you are not automatically redirected."
|
470 |
msgstr ""
|
474 |
msgid "Global Settings"
|
475 |
msgstr ""
|
476 |
|
477 |
+
#: classes/controllers/FrmSettingsController.php:50
|
478 |
#: classes/views/addons/settings.php:2
|
479 |
msgid "Plugin Licenses"
|
480 |
msgstr ""
|
481 |
|
482 |
+
#: classes/controllers/FrmSettingsController.php:100
|
483 |
+
#: classes/controllers/FrmSettingsController.php:103
|
484 |
msgid "Settings Saved"
|
485 |
msgstr ""
|
486 |
|
487 |
+
#: classes/controllers/FrmSettingsController.php:136
|
488 |
msgid "Extra form features like file uploads, pagination, etc"
|
489 |
msgstr ""
|
490 |
|
491 |
+
#: classes/controllers/FrmSettingsController.php:137
|
492 |
msgid "Repeaters & cascading fields for advanced forms"
|
493 |
msgstr ""
|
494 |
|
495 |
+
#: classes/controllers/FrmSettingsController.php:138
|
496 |
msgid "Flexibly view, search, edit, and delete entries anywhere"
|
497 |
msgstr ""
|
498 |
|
499 |
+
#: classes/controllers/FrmSettingsController.php:139
|
500 |
msgid "Display entries with virtually limitless Formidable views"
|
501 |
msgstr ""
|
502 |
|
503 |
+
#: classes/controllers/FrmSettingsController.php:140
|
504 |
msgid "Create surveys & polls"
|
505 |
msgstr ""
|
506 |
|
507 |
+
#: classes/controllers/FrmSettingsController.php:141
|
508 |
msgid "WordPress user registration and login forms"
|
509 |
msgstr ""
|
510 |
|
511 |
+
#: classes/controllers/FrmSettingsController.php:142
|
512 |
msgid "Create Stripe, PayPal or Authorize.net payment forms"
|
513 |
msgstr ""
|
514 |
|
515 |
+
#: classes/controllers/FrmSettingsController.php:143
|
516 |
msgid "Powerful conditional logic for smart forms"
|
517 |
msgstr ""
|
518 |
|
519 |
+
#: classes/controllers/FrmSettingsController.php:144
|
520 |
msgid "Integrations with 1000+ marketing & payment services"
|
521 |
msgstr ""
|
522 |
|
523 |
+
#: classes/controllers/FrmSettingsController.php:145
|
524 |
msgid "Collect digital signatures"
|
525 |
msgstr ""
|
526 |
|
527 |
+
#: classes/controllers/FrmSettingsController.php:146
|
528 |
msgid "Accept user-submitted content with Post submissions"
|
529 |
msgstr ""
|
530 |
|
531 |
+
#: classes/controllers/FrmSettingsController.php:147
|
532 |
msgid "Email routing"
|
533 |
msgstr ""
|
534 |
|
535 |
+
#: classes/controllers/FrmSettingsController.php:148
|
536 |
msgid "Create calculator forms"
|
537 |
msgstr ""
|
538 |
|
539 |
+
#: classes/controllers/FrmSettingsController.php:149
|
540 |
msgid "Save draft entries and return later"
|
541 |
msgstr ""
|
542 |
|
543 |
+
#: classes/controllers/FrmSettingsController.php:150
|
544 |
msgid "Analyze form data with graphs & stats"
|
545 |
msgstr ""
|
546 |
|
650 |
msgid "There are no entries for that form."
|
651 |
msgstr ""
|
652 |
|
653 |
+
#: classes/helpers/FrmAppHelper.php:574
|
654 |
#: classes/helpers/FrmFormsListHelper.php:108
|
655 |
msgid "Add New"
|
656 |
msgstr ""
|
657 |
|
658 |
+
#: classes/helpers/FrmAppHelper.php:691
|
659 |
msgid "View Forms and Templates"
|
660 |
msgstr ""
|
661 |
|
662 |
+
#: classes/helpers/FrmAppHelper.php:692
|
663 |
msgid "Add/Edit Forms and Templates"
|
664 |
msgstr ""
|
665 |
|
666 |
+
#: classes/helpers/FrmAppHelper.php:693
|
667 |
msgid "Delete Forms and Templates"
|
668 |
msgstr ""
|
669 |
|
670 |
+
#: classes/helpers/FrmAppHelper.php:694
|
671 |
msgid "Access this Settings Page"
|
672 |
msgstr ""
|
673 |
|
674 |
+
#: classes/helpers/FrmAppHelper.php:695
|
675 |
msgid "View Entries from Admin Area"
|
676 |
msgstr ""
|
677 |
|
678 |
+
#: classes/helpers/FrmAppHelper.php:696
|
679 |
msgid "Delete Entries from Admin Area"
|
680 |
msgstr ""
|
681 |
|
682 |
+
#: classes/helpers/FrmAppHelper.php:703
|
683 |
msgid "Add Entries from Admin Area"
|
684 |
msgstr ""
|
685 |
|
686 |
+
#: classes/helpers/FrmAppHelper.php:704
|
687 |
msgid "Edit Entries from Admin Area"
|
688 |
msgstr ""
|
689 |
|
690 |
+
#: classes/helpers/FrmAppHelper.php:705
|
691 |
msgid "View Reports"
|
692 |
msgstr ""
|
693 |
|
694 |
+
#: classes/helpers/FrmAppHelper.php:706
|
695 |
msgid "Add/Edit Views"
|
696 |
msgstr ""
|
697 |
|
698 |
+
#: classes/helpers/FrmAppHelper.php:1305
|
699 |
msgid "at"
|
700 |
msgstr ""
|
701 |
|
702 |
+
#: classes/helpers/FrmAppHelper.php:1354 classes/helpers/FrmAppHelper.php:1373
|
703 |
msgid "seconds"
|
704 |
msgstr ""
|
705 |
|
706 |
+
#: classes/helpers/FrmAppHelper.php:1367
|
707 |
msgid "year"
|
708 |
msgstr ""
|
709 |
|
710 |
+
#: classes/helpers/FrmAppHelper.php:1367
|
711 |
msgid "years"
|
712 |
msgstr ""
|
713 |
|
714 |
+
#: classes/helpers/FrmAppHelper.php:1368
|
715 |
msgid "month"
|
716 |
msgstr ""
|
717 |
|
718 |
+
#: classes/helpers/FrmAppHelper.php:1368
|
719 |
msgid "months"
|
720 |
msgstr ""
|
721 |
|
722 |
+
#: classes/helpers/FrmAppHelper.php:1369
|
723 |
msgid "week"
|
724 |
msgstr ""
|
725 |
|
726 |
+
#: classes/helpers/FrmAppHelper.php:1369
|
727 |
msgid "weeks"
|
728 |
msgstr ""
|
729 |
|
730 |
+
#: classes/helpers/FrmAppHelper.php:1370
|
731 |
msgid "day"
|
732 |
msgstr ""
|
733 |
|
734 |
+
#: classes/helpers/FrmAppHelper.php:1370
|
735 |
msgid "days"
|
736 |
msgstr ""
|
737 |
|
738 |
+
#: classes/helpers/FrmAppHelper.php:1371
|
739 |
msgid "hour"
|
740 |
msgstr ""
|
741 |
|
742 |
+
#: classes/helpers/FrmAppHelper.php:1371
|
743 |
msgid "hours"
|
744 |
msgstr ""
|
745 |
|
746 |
+
#: classes/helpers/FrmAppHelper.php:1372
|
747 |
msgid "minute"
|
748 |
msgstr ""
|
749 |
|
750 |
+
#: classes/helpers/FrmAppHelper.php:1372
|
751 |
msgid "minutes"
|
752 |
msgstr ""
|
753 |
|
754 |
+
#: classes/helpers/FrmAppHelper.php:1373
|
755 |
msgid "second"
|
756 |
msgstr ""
|
757 |
|
758 |
+
#: classes/helpers/FrmAppHelper.php:1465
|
759 |
msgid "Give this action a label for easy reference."
|
760 |
msgstr ""
|
761 |
|
762 |
+
#: classes/helpers/FrmAppHelper.php:1466
|
763 |
msgid ""
|
764 |
"Add one or more recipient addresses separated by a \",\". FORMAT: Name "
|
765 |
"<name@email.com> or name@email.com. [admin_email] is the address set in WP "
|
766 |
"General Settings."
|
767 |
msgstr ""
|
768 |
|
769 |
+
#: classes/helpers/FrmAppHelper.php:1467
|
770 |
msgid ""
|
771 |
"Add CC addresses separated by a \",\". FORMAT: Name <name@email.com> or "
|
772 |
"name@email.com."
|
773 |
msgstr ""
|
774 |
|
775 |
+
#: classes/helpers/FrmAppHelper.php:1468
|
776 |
msgid ""
|
777 |
"Add BCC addresses separated by a \",\". FORMAT: Name <name@email.com> or "
|
778 |
"name@email.com."
|
779 |
msgstr ""
|
780 |
|
781 |
+
#: classes/helpers/FrmAppHelper.php:1469
|
782 |
msgid ""
|
783 |
"If you would like a different reply to address than the \"from\" address, "
|
784 |
"add a single address here. FORMAT: Name <name@email.com> or name@email.com."
|
785 |
msgstr ""
|
786 |
|
787 |
+
#: classes/helpers/FrmAppHelper.php:1470
|
788 |
msgid ""
|
789 |
"Enter the name and/or email address of the sender. FORMAT: John Bates "
|
790 |
"<john@example.com> or john@example.com."
|
791 |
msgstr ""
|
792 |
|
793 |
+
#: classes/helpers/FrmAppHelper.php:1471
|
794 |
#, php-format
|
795 |
msgid ""
|
796 |
"If you leave the subject blank, the default will be used: %1$s Form "
|
797 |
"submitted on %2$s"
|
798 |
msgstr ""
|
799 |
|
800 |
+
#: classes/helpers/FrmAppHelper.php:1602 classes/helpers/FrmAppHelper.php:1672
|
801 |
msgid "Please wait while your site updates."
|
802 |
msgstr ""
|
803 |
|
804 |
+
#: classes/helpers/FrmAppHelper.php:1603
|
805 |
msgid "Are you sure you want to deauthorize Formidable Forms on this site?"
|
806 |
msgstr ""
|
807 |
|
808 |
+
#: classes/helpers/FrmAppHelper.php:1633
|
809 |
msgid "Remove"
|
810 |
msgstr ""
|
811 |
|
812 |
+
#: classes/helpers/FrmAppHelper.php:1636
|
813 |
#: classes/helpers/FrmCSVExportHelper.php:150
|
814 |
msgid "ID"
|
815 |
msgstr ""
|
816 |
|
817 |
+
#: classes/helpers/FrmAppHelper.php:1637
|
818 |
msgid "No results match"
|
819 |
msgstr ""
|
820 |
|
821 |
+
#: classes/helpers/FrmAppHelper.php:1638
|
822 |
msgid "That file looks like Spam."
|
823 |
msgstr ""
|
824 |
|
825 |
+
#: classes/helpers/FrmAppHelper.php:1639
|
826 |
msgid "There is an error in the calculation in the field with key"
|
827 |
msgstr ""
|
828 |
|
829 |
+
#: classes/helpers/FrmAppHelper.php:1640
|
830 |
msgid "Please complete the preceding required fields before uploading a file."
|
831 |
msgstr ""
|
832 |
|
833 |
+
#: classes/helpers/FrmAppHelper.php:1647
|
834 |
msgid ""
|
835 |
"Are you sure you want to do this? Clicking OK will delete all forms, form "
|
836 |
"data, and all other Formidable data. There is no Undo."
|
837 |
msgstr ""
|
838 |
|
839 |
+
#: classes/helpers/FrmAppHelper.php:1648
|
840 |
#: classes/views/frm-forms/add_field.php:37
|
841 |
#: classes/views/frm-forms/add_field.php:50
|
842 |
msgid "(Click to add description)"
|
843 |
msgstr ""
|
844 |
|
845 |
+
#: classes/helpers/FrmAppHelper.php:1649
|
846 |
#: classes/views/frm-fields/single-option.php:8
|
847 |
#: classes/views/frm-fields/single-option.php:14
|
848 |
msgid "(Blank)"
|
849 |
msgstr ""
|
850 |
|
851 |
+
#: classes/helpers/FrmAppHelper.php:1650
|
852 |
#: classes/views/frm-forms/add_field.php:17
|
853 |
msgid "(no label)"
|
854 |
msgstr ""
|
855 |
|
856 |
+
#: classes/helpers/FrmAppHelper.php:1651
|
857 |
msgid "Saving"
|
858 |
msgstr ""
|
859 |
|
860 |
+
#: classes/helpers/FrmAppHelper.php:1652
|
861 |
msgid "Saved"
|
862 |
msgstr ""
|
863 |
|
864 |
+
#: classes/helpers/FrmAppHelper.php:1654
|
865 |
msgid "Cancel"
|
866 |
msgstr ""
|
867 |
|
868 |
+
#: classes/helpers/FrmAppHelper.php:1655
|
869 |
#: classes/helpers/FrmFormsListHelper.php:300
|
870 |
#: classes/views/frm-forms/add_field.php:197
|
871 |
#: classes/views/styles/_buttons.php:12
|
873 |
msgid "Default"
|
874 |
msgstr ""
|
875 |
|
876 |
+
#: classes/helpers/FrmAppHelper.php:1656
|
877 |
+
#: classes/helpers/FrmFieldsHelper.php:1109
|
878 |
msgid "Clear default value when typing"
|
879 |
msgstr ""
|
880 |
|
881 |
+
#: classes/helpers/FrmAppHelper.php:1657
|
882 |
+
#: classes/helpers/FrmFieldsHelper.php:1109
|
883 |
msgid "Do not clear default value when typing"
|
884 |
msgstr ""
|
885 |
|
886 |
+
#: classes/helpers/FrmAppHelper.php:1658
|
887 |
+
#: classes/helpers/FrmFieldsHelper.php:1119
|
888 |
msgid "Default value will pass form validation"
|
889 |
msgstr ""
|
890 |
|
891 |
+
#: classes/helpers/FrmAppHelper.php:1659
|
892 |
+
#: classes/helpers/FrmFieldsHelper.php:1119
|
893 |
msgid "Default value will NOT pass form validation"
|
894 |
msgstr ""
|
895 |
|
896 |
+
#: classes/helpers/FrmAppHelper.php:1660
|
897 |
#: classes/helpers/FrmEntriesListHelper.php:257
|
898 |
#: classes/helpers/FrmFormsHelper.php:831 classes/views/styles/show.php:64
|
899 |
msgid "Are you sure?"
|
900 |
msgstr ""
|
901 |
|
902 |
+
#: classes/helpers/FrmAppHelper.php:1661
|
903 |
msgid ""
|
904 |
"Are you sure you want to delete this field and all data associated with it?"
|
905 |
msgstr ""
|
906 |
|
907 |
+
#: classes/helpers/FrmAppHelper.php:1662
|
908 |
msgid "WARNING: This will delete all fields inside of the section as well."
|
909 |
msgstr ""
|
910 |
|
911 |
+
#: classes/helpers/FrmAppHelper.php:1663
|
912 |
msgid ""
|
913 |
"Warning: If you have entries with multiple rows, all but the first row will "
|
914 |
"be lost."
|
915 |
msgstr ""
|
916 |
|
917 |
+
#: classes/helpers/FrmAppHelper.php:1665
|
918 |
#: classes/helpers/FrmFieldsHelper.php:268
|
919 |
msgid "The entered values do not match"
|
920 |
msgstr ""
|
921 |
|
922 |
+
#: classes/helpers/FrmAppHelper.php:1666
|
923 |
msgid "Enter Email"
|
924 |
msgstr ""
|
925 |
|
926 |
+
#: classes/helpers/FrmAppHelper.php:1667
|
927 |
msgid "Confirm Email"
|
928 |
msgstr ""
|
929 |
|
930 |
+
#: classes/helpers/FrmAppHelper.php:1668
|
931 |
msgid ""
|
932 |
"In certain browsers (e.g. Firefox) text will not display correctly if the "
|
933 |
"field height is too small relative to the field padding and text size. "
|
934 |
"Please increase your field height or decrease your field padding."
|
935 |
msgstr ""
|
936 |
|
937 |
+
#: classes/helpers/FrmAppHelper.php:1669
|
938 |
msgid "Enter Password"
|
939 |
msgstr ""
|
940 |
|
941 |
+
#: classes/helpers/FrmAppHelper.php:1670
|
942 |
msgid "Confirm Password"
|
943 |
msgstr ""
|
944 |
|
945 |
+
#: classes/helpers/FrmAppHelper.php:1671
|
946 |
msgid "Import Complete"
|
947 |
msgstr ""
|
948 |
|
949 |
+
#: classes/helpers/FrmAppHelper.php:1673
|
950 |
msgid "Warning: There is no way to retrieve unsaved entries."
|
951 |
msgstr ""
|
952 |
|
953 |
+
#: classes/helpers/FrmAppHelper.php:1677
|
954 |
msgid "No new licenses were found"
|
955 |
msgstr ""
|
956 |
|
957 |
+
#: classes/helpers/FrmAppHelper.php:1678
|
958 |
msgid "This calculation has at least one unmatched ( ) { } [ ]."
|
959 |
msgstr ""
|
960 |
|
961 |
+
#: classes/helpers/FrmAppHelper.php:1679
|
962 |
msgid "This calculation may have shortcodes that work in Views but not forms."
|
963 |
msgstr ""
|
964 |
|
965 |
+
#: classes/helpers/FrmAppHelper.php:1680
|
966 |
msgid ""
|
967 |
"This calculation may have shortcodes that work in text calculations but not "
|
968 |
"numeric calculations."
|
969 |
msgstr ""
|
970 |
|
971 |
+
#: classes/helpers/FrmAppHelper.php:1681
|
972 |
msgid "Please enter a Repeat Limit that is greater than 1."
|
973 |
msgstr ""
|
974 |
|
975 |
+
#: classes/helpers/FrmAppHelper.php:1682
|
976 |
msgid "Installing"
|
977 |
msgstr ""
|
978 |
|
979 |
+
#: classes/helpers/FrmAppHelper.php:1683 classes/views/addons/list.php:40
|
980 |
+
#: classes/views/addons/list.php:41
|
981 |
msgid "Install"
|
982 |
msgstr ""
|
983 |
|
984 |
+
#: classes/helpers/FrmAppHelper.php:1706
|
985 |
msgid ""
|
986 |
"You are running an outdated version of Formidable. This plugin may not work "
|
987 |
"correctly if you do not update Formidable."
|
988 |
msgstr ""
|
989 |
|
990 |
+
#: classes/helpers/FrmAppHelper.php:1712
|
991 |
msgid "English"
|
992 |
msgstr ""
|
993 |
|
994 |
+
#: classes/helpers/FrmAppHelper.php:1713
|
995 |
msgid "English/Western"
|
996 |
msgstr ""
|
997 |
|
998 |
+
#: classes/helpers/FrmAppHelper.php:1714
|
999 |
msgid "Afrikaans"
|
1000 |
msgstr ""
|
1001 |
|
1002 |
+
#: classes/helpers/FrmAppHelper.php:1715
|
1003 |
msgid "Albanian"
|
1004 |
msgstr ""
|
1005 |
|
1006 |
+
#: classes/helpers/FrmAppHelper.php:1716
|
1007 |
msgid "Arabic"
|
1008 |
msgstr ""
|
1009 |
|
1010 |
+
#: classes/helpers/FrmAppHelper.php:1717
|
1011 |
msgid "Armenian"
|
1012 |
msgstr ""
|
1013 |
|
1014 |
+
#: classes/helpers/FrmAppHelper.php:1718
|
1015 |
msgid "Azerbaijani"
|
1016 |
msgstr ""
|
1017 |
|
1018 |
+
#: classes/helpers/FrmAppHelper.php:1719
|
1019 |
msgid "Basque"
|
1020 |
msgstr ""
|
1021 |
|
1022 |
+
#: classes/helpers/FrmAppHelper.php:1720
|
1023 |
msgid "Bosnian"
|
1024 |
msgstr ""
|
1025 |
|
1026 |
+
#: classes/helpers/FrmAppHelper.php:1721
|
1027 |
msgid "Bulgarian"
|
1028 |
msgstr ""
|
1029 |
|
1030 |
+
#: classes/helpers/FrmAppHelper.php:1722
|
1031 |
msgid "Catalan"
|
1032 |
msgstr ""
|
1033 |
|
1034 |
+
#: classes/helpers/FrmAppHelper.php:1723
|
1035 |
msgid "Chinese Hong Kong"
|
1036 |
msgstr ""
|
1037 |
|
1038 |
+
#: classes/helpers/FrmAppHelper.php:1724
|
1039 |
msgid "Chinese Simplified"
|
1040 |
msgstr ""
|
1041 |
|
1042 |
+
#: classes/helpers/FrmAppHelper.php:1725
|
1043 |
msgid "Chinese Traditional"
|
1044 |
msgstr ""
|
1045 |
|
1046 |
+
#: classes/helpers/FrmAppHelper.php:1726
|
1047 |
msgid "Croatian"
|
1048 |
msgstr ""
|
1049 |
|
1050 |
+
#: classes/helpers/FrmAppHelper.php:1727
|
1051 |
msgid "Czech"
|
1052 |
msgstr ""
|
1053 |
|
1054 |
+
#: classes/helpers/FrmAppHelper.php:1728
|
1055 |
msgid "Danish"
|
1056 |
msgstr ""
|
1057 |
|
1058 |
+
#: classes/helpers/FrmAppHelper.php:1729
|
1059 |
msgid "Dutch"
|
1060 |
msgstr ""
|
1061 |
|
1062 |
+
#: classes/helpers/FrmAppHelper.php:1730
|
1063 |
msgid "English/UK"
|
1064 |
msgstr ""
|
1065 |
|
1066 |
+
#: classes/helpers/FrmAppHelper.php:1731
|
1067 |
msgid "Esperanto"
|
1068 |
msgstr ""
|
1069 |
|
1070 |
+
#: classes/helpers/FrmAppHelper.php:1732
|
1071 |
msgid "Estonian"
|
1072 |
msgstr ""
|
1073 |
|
1074 |
+
#: classes/helpers/FrmAppHelper.php:1733
|
1075 |
msgid "Faroese"
|
1076 |
msgstr ""
|
1077 |
|
1078 |
+
#: classes/helpers/FrmAppHelper.php:1734
|
1079 |
msgid "Farsi/Persian"
|
1080 |
msgstr ""
|
1081 |
|
1082 |
+
#: classes/helpers/FrmAppHelper.php:1735
|
1083 |
msgid "Filipino"
|
1084 |
msgstr ""
|
1085 |
|
1086 |
+
#: classes/helpers/FrmAppHelper.php:1736
|
1087 |
msgid "Finnish"
|
1088 |
msgstr ""
|
1089 |
|
1090 |
+
#: classes/helpers/FrmAppHelper.php:1737
|
1091 |
msgid "French"
|
1092 |
msgstr ""
|
1093 |
|
1094 |
+
#: classes/helpers/FrmAppHelper.php:1738
|
1095 |
msgid "French/Canadian"
|
1096 |
msgstr ""
|
1097 |
|
1098 |
+
#: classes/helpers/FrmAppHelper.php:1739
|
1099 |
msgid "French/Swiss"
|
1100 |
msgstr ""
|
1101 |
|
1102 |
+
#: classes/helpers/FrmAppHelper.php:1740
|
1103 |
msgid "German"
|
1104 |
msgstr ""
|
1105 |
|
1106 |
+
#: classes/helpers/FrmAppHelper.php:1741
|
1107 |
msgid "German/Austria"
|
1108 |
msgstr ""
|
1109 |
|
1110 |
+
#: classes/helpers/FrmAppHelper.php:1742
|
1111 |
msgid "German/Switzerland"
|
1112 |
msgstr ""
|
1113 |
|
1114 |
+
#: classes/helpers/FrmAppHelper.php:1743
|
1115 |
msgid "Greek"
|
1116 |
msgstr ""
|
1117 |
|
1118 |
+
#: classes/helpers/FrmAppHelper.php:1744 classes/helpers/FrmAppHelper.php:1745
|
1119 |
msgid "Hebrew"
|
1120 |
msgstr ""
|
1121 |
|
1122 |
+
#: classes/helpers/FrmAppHelper.php:1746
|
1123 |
msgid "Hindi"
|
1124 |
msgstr ""
|
1125 |
|
1126 |
+
#: classes/helpers/FrmAppHelper.php:1747
|
1127 |
msgid "Hungarian"
|
1128 |
msgstr ""
|
1129 |
|
1130 |
+
#: classes/helpers/FrmAppHelper.php:1748
|
1131 |
msgid "Icelandic"
|
1132 |
msgstr ""
|
1133 |
|
1134 |
+
#: classes/helpers/FrmAppHelper.php:1749
|
1135 |
msgid "Indonesian"
|
1136 |
msgstr ""
|
1137 |
|
1138 |
+
#: classes/helpers/FrmAppHelper.php:1750
|
1139 |
msgid "Italian"
|
1140 |
msgstr ""
|
1141 |
|
1142 |
+
#: classes/helpers/FrmAppHelper.php:1751
|
1143 |
msgid "Japanese"
|
1144 |
msgstr ""
|
1145 |
|
1146 |
+
#: classes/helpers/FrmAppHelper.php:1752
|
1147 |
msgid "Korean"
|
1148 |
msgstr ""
|
1149 |
|
1150 |
+
#: classes/helpers/FrmAppHelper.php:1753
|
1151 |
msgid "Latvian"
|
1152 |
msgstr ""
|
1153 |
|
1154 |
+
#: classes/helpers/FrmAppHelper.php:1754
|
1155 |
msgid "Lithuanian"
|
1156 |
msgstr ""
|
1157 |
|
1158 |
+
#: classes/helpers/FrmAppHelper.php:1755
|
1159 |
msgid "Malaysian"
|
1160 |
msgstr ""
|
1161 |
|
1162 |
+
#: classes/helpers/FrmAppHelper.php:1756
|
1163 |
msgid "Norwegian"
|
1164 |
msgstr ""
|
1165 |
|
1166 |
+
#: classes/helpers/FrmAppHelper.php:1757
|
1167 |
msgid "Polish"
|
1168 |
msgstr ""
|
1169 |
|
1170 |
+
#: classes/helpers/FrmAppHelper.php:1758
|
1171 |
msgid "Portuguese"
|
1172 |
msgstr ""
|
1173 |
|
1174 |
+
#: classes/helpers/FrmAppHelper.php:1759
|
1175 |
msgid "Portuguese/Brazilian"
|
1176 |
msgstr ""
|
1177 |
|
1178 |
+
#: classes/helpers/FrmAppHelper.php:1760
|
1179 |
msgid "Portuguese/Portugal"
|
1180 |
msgstr ""
|
1181 |
|
1182 |
+
#: classes/helpers/FrmAppHelper.php:1761
|
1183 |
msgid "Romanian"
|
1184 |
msgstr ""
|
1185 |
|
1186 |
+
#: classes/helpers/FrmAppHelper.php:1762
|
1187 |
msgid "Russian"
|
1188 |
msgstr ""
|
1189 |
|
1190 |
+
#: classes/helpers/FrmAppHelper.php:1763 classes/helpers/FrmAppHelper.php:1764
|
1191 |
msgid "Serbian"
|
1192 |
msgstr ""
|
1193 |
|
1194 |
+
#: classes/helpers/FrmAppHelper.php:1765
|
1195 |
msgid "Slovak"
|
1196 |
msgstr ""
|
1197 |
|
1198 |
+
#: classes/helpers/FrmAppHelper.php:1766
|
1199 |
msgid "Slovenian"
|
1200 |
msgstr ""
|
1201 |
|
1202 |
+
#: classes/helpers/FrmAppHelper.php:1767
|
1203 |
msgid "Spanish"
|
1204 |
msgstr ""
|
1205 |
|
1206 |
+
#: classes/helpers/FrmAppHelper.php:1768
|
1207 |
msgid "Spanish/Latin America"
|
1208 |
msgstr ""
|
1209 |
|
1210 |
+
#: classes/helpers/FrmAppHelper.php:1769
|
1211 |
msgid "Swedish"
|
1212 |
msgstr ""
|
1213 |
|
1214 |
+
#: classes/helpers/FrmAppHelper.php:1770
|
1215 |
msgid "Tamil"
|
1216 |
msgstr ""
|
1217 |
|
1218 |
+
#: classes/helpers/FrmAppHelper.php:1771
|
1219 |
msgid "Thai"
|
1220 |
msgstr ""
|
1221 |
|
1222 |
+
#: classes/helpers/FrmAppHelper.php:1772 classes/helpers/FrmAppHelper.php:1773
|
1223 |
msgid "Turkish"
|
1224 |
msgstr ""
|
1225 |
|
1226 |
+
#: classes/helpers/FrmAppHelper.php:1774
|
1227 |
msgid "Ukranian"
|
1228 |
msgstr ""
|
1229 |
|
1230 |
+
#: classes/helpers/FrmAppHelper.php:1775
|
1231 |
msgid "Vietnamese"
|
1232 |
msgstr ""
|
1233 |
|
1312 |
msgid "This field is invalid"
|
1313 |
msgstr ""
|
1314 |
|
1315 |
+
#: classes/helpers/FrmFieldsHelper.php:435
|
1316 |
#, php-format
|
1317 |
msgid "Please add options from the WordPress \"%1$s\" page"
|
1318 |
msgstr ""
|
1319 |
|
1320 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1321 |
msgid "Afghanistan"
|
1322 |
msgstr ""
|
1323 |
|
1324 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1325 |
msgid "Albania"
|
1326 |
msgstr ""
|
1327 |
|
1328 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1329 |
msgid "Algeria"
|
1330 |
msgstr ""
|
1331 |
|
1332 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1333 |
msgid "American Samoa"
|
1334 |
msgstr ""
|
1335 |
|
1336 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1337 |
msgid "Andorra"
|
1338 |
msgstr ""
|
1339 |
|
1340 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1341 |
msgid "Angola"
|
1342 |
msgstr ""
|
1343 |
|
1344 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1345 |
msgid "Anguilla"
|
1346 |
msgstr ""
|
1347 |
|
1348 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1349 |
msgid "Antarctica"
|
1350 |
msgstr ""
|
1351 |
|
1352 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1353 |
msgid "Antigua and Barbuda"
|
1354 |
msgstr ""
|
1355 |
|
1356 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1357 |
msgid "Argentina"
|
1358 |
msgstr ""
|
1359 |
|
1360 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1361 |
msgid "Armenia"
|
1362 |
msgstr ""
|
1363 |
|
1364 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1365 |
msgid "Aruba"
|
1366 |
msgstr ""
|
1367 |
|
1368 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1369 |
msgid "Australia"
|
1370 |
msgstr ""
|
1371 |
|
1372 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1373 |
msgid "Austria"
|
1374 |
msgstr ""
|
1375 |
|
1376 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1377 |
msgid "Azerbaijan"
|
1378 |
msgstr ""
|
1379 |
|
1380 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1381 |
msgid "Bahamas"
|
1382 |
msgstr ""
|
1383 |
|
1384 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1385 |
msgid "Bahrain"
|
1386 |
msgstr ""
|
1387 |
|
1388 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1389 |
msgid "Bangladesh"
|
1390 |
msgstr ""
|
1391 |
|
1392 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1393 |
msgid "Barbados"
|
1394 |
msgstr ""
|
1395 |
|
1396 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1397 |
msgid "Belarus"
|
1398 |
msgstr ""
|
1399 |
|
1400 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1401 |
msgid "Belgium"
|
1402 |
msgstr ""
|
1403 |
|
1404 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1405 |
msgid "Belize"
|
1406 |
msgstr ""
|
1407 |
|
1408 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1409 |
msgid "Benin"
|
1410 |
msgstr ""
|
1411 |
|
1412 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1413 |
msgid "Bermuda"
|
1414 |
msgstr ""
|
1415 |
|
1416 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1417 |
msgid "Bhutan"
|
1418 |
msgstr ""
|
1419 |
|
1420 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1421 |
msgid "Bolivia"
|
1422 |
msgstr ""
|
1423 |
|
1424 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1425 |
msgid "Bosnia and Herzegovina"
|
1426 |
msgstr ""
|
1427 |
|
1428 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1429 |
msgid "Botswana"
|
1430 |
msgstr ""
|
1431 |
|
1432 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1433 |
msgid "Brazil"
|
1434 |
msgstr ""
|
1435 |
|
1436 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1437 |
msgid "Brunei"
|
1438 |
msgstr ""
|
1439 |
|
1440 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1441 |
msgid "Bulgaria"
|
1442 |
msgstr ""
|
1443 |
|
1444 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1445 |
msgid "Burkina Faso"
|
1446 |
msgstr ""
|
1447 |
|
1448 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1449 |
msgid "Burundi"
|
1450 |
msgstr ""
|
1451 |
|
1452 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1453 |
msgid "Cambodia"
|
1454 |
msgstr ""
|
1455 |
|
1456 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1457 |
msgid "Cameroon"
|
1458 |
msgstr ""
|
1459 |
|
1460 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1461 |
msgid "Canada"
|
1462 |
msgstr ""
|
1463 |
|
1464 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1465 |
msgid "Cape Verde"
|
1466 |
msgstr ""
|
1467 |
|
1468 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1469 |
msgid "Cayman Islands"
|
1470 |
msgstr ""
|
1471 |
|
1472 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1473 |
msgid "Central African Republic"
|
1474 |
msgstr ""
|
1475 |
|
1476 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1477 |
msgid "Chad"
|
1478 |
msgstr ""
|
1479 |
|
1480 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1481 |
msgid "Chile"
|
1482 |
msgstr ""
|
1483 |
|
1484 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1485 |
msgid "China"
|
1486 |
msgstr ""
|
1487 |
|
1488 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1489 |
msgid "Colombia"
|
1490 |
msgstr ""
|
1491 |
|
1492 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1493 |
msgid "Comoros"
|
1494 |
msgstr ""
|
1495 |
|
1496 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1497 |
msgid "Congo"
|
1498 |
msgstr ""
|
1499 |
|
1500 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1501 |
msgid "Costa Rica"
|
1502 |
msgstr ""
|
1503 |
|
1504 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1505 |
msgid "Côte d'Ivoire"
|
1506 |
msgstr ""
|
1507 |
|
1508 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1509 |
msgid "Croatia"
|
1510 |
msgstr ""
|
1511 |
|
1512 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1513 |
msgid "Cuba"
|
1514 |
msgstr ""
|
1515 |
|
1516 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1517 |
msgid "Cyprus"
|
1518 |
msgstr ""
|
1519 |
|
1520 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1521 |
msgid "Czech Republic"
|
1522 |
msgstr ""
|
1523 |
|
1524 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1525 |
msgid "Denmark"
|
1526 |
msgstr ""
|
1527 |
|
1528 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1529 |
msgid "Djibouti"
|
1530 |
msgstr ""
|
1531 |
|
1532 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1533 |
msgid "Dominica"
|
1534 |
msgstr ""
|
1535 |
|
1536 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1537 |
msgid "Dominican Republic"
|
1538 |
msgstr ""
|
1539 |
|
1540 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1541 |
msgid "East Timor"
|
1542 |
msgstr ""
|
1543 |
|
1544 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1545 |
msgid "Ecuador"
|
1546 |
msgstr ""
|
1547 |
|
1548 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1549 |
msgid "Egypt"
|
1550 |
msgstr ""
|
1551 |
|
1552 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1553 |
msgid "El Salvador"
|
1554 |
msgstr ""
|
1555 |
|
1556 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1557 |
msgid "Equatorial Guinea"
|
1558 |
msgstr ""
|
1559 |
|
1560 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1561 |
msgid "Eritrea"
|
1562 |
msgstr ""
|
1563 |
|
1564 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1565 |
msgid "Estonia"
|
1566 |
msgstr ""
|
1567 |
|
1568 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1569 |
msgid "Ethiopia"
|
1570 |
msgstr ""
|
1571 |
|
1572 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1573 |
msgid "Fiji"
|
1574 |
msgstr ""
|
1575 |
|
1576 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1577 |
msgid "Finland"
|
1578 |
msgstr ""
|
1579 |
|
1580 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1581 |
msgid "France"
|
1582 |
msgstr ""
|
1583 |
|
1584 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1585 |
msgid "French Guiana"
|
1586 |
msgstr ""
|
1587 |
|
1588 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1589 |
msgid "French Polynesia"
|
1590 |
msgstr ""
|
1591 |
|
1592 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1593 |
msgid "Gabon"
|
1594 |
msgstr ""
|
1595 |
|
1596 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1597 |
msgid "Gambia"
|
1598 |
msgstr ""
|
1599 |
|
1600 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1601 |
msgid "Georgia"
|
1602 |
msgstr ""
|
1603 |
|
1604 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1605 |
msgid "Germany"
|
1606 |
msgstr ""
|
1607 |
|
1608 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1609 |
msgid "Ghana"
|
1610 |
msgstr ""
|
1611 |
|
1612 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1613 |
msgid "Gibraltar"
|
1614 |
msgstr ""
|
1615 |
|
1616 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1617 |
msgid "Greece"
|
1618 |
msgstr ""
|
1619 |
|
1620 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1621 |
msgid "Greenland"
|
1622 |
msgstr ""
|
1623 |
|
1624 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1625 |
msgid "Grenada"
|
1626 |
msgstr ""
|
1627 |
|
1628 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1629 |
msgid "Guam"
|
1630 |
msgstr ""
|
1631 |
|
1632 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1633 |
msgid "Guatemala"
|
1634 |
msgstr ""
|
1635 |
|
1636 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1637 |
msgid "Guinea"
|
1638 |
msgstr ""
|
1639 |
|
1640 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1641 |
msgid "Guinea-Bissau"
|
1642 |
msgstr ""
|
1643 |
|
1644 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1645 |
msgid "Guyana"
|
1646 |
msgstr ""
|
1647 |
|
1648 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1649 |
msgid "Haiti"
|
1650 |
msgstr ""
|
1651 |
|
1652 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1653 |
msgid "Honduras"
|
1654 |
msgstr ""
|
1655 |
|
1656 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1657 |
msgid "Hong Kong"
|
1658 |
msgstr ""
|
1659 |
|
1660 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1661 |
msgid "Hungary"
|
1662 |
msgstr ""
|
1663 |
|
1664 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1665 |
msgid "Iceland"
|
1666 |
msgstr ""
|
1667 |
|
1668 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1669 |
msgid "India"
|
1670 |
msgstr ""
|
1671 |
|
1672 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1673 |
msgid "Indonesia"
|
1674 |
msgstr ""
|
1675 |
|
1676 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1677 |
msgid "Iran"
|
1678 |
msgstr ""
|
1679 |
|
1680 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1681 |
msgid "Iraq"
|
1682 |
msgstr ""
|
1683 |
|
1684 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1685 |
msgid "Ireland"
|
1686 |
msgstr ""
|
1687 |
|
1688 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1689 |
msgid "Israel"
|
1690 |
msgstr ""
|
1691 |
|
1692 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1693 |
msgid "Italy"
|
1694 |
msgstr ""
|
1695 |
|
1696 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1697 |
msgid "Jamaica"
|
1698 |
msgstr ""
|
1699 |
|
1700 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1701 |
msgid "Japan"
|
1702 |
msgstr ""
|
1703 |
|
1704 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1705 |
msgid "Jordan"
|
1706 |
msgstr ""
|
1707 |
|
1708 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1709 |
msgid "Kazakhstan"
|
1710 |
msgstr ""
|
1711 |
|
1712 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1713 |
msgid "Kenya"
|
1714 |
msgstr ""
|
1715 |
|
1716 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1717 |
msgid "Kiribati"
|
1718 |
msgstr ""
|
1719 |
|
1720 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1721 |
msgid "North Korea"
|
1722 |
msgstr ""
|
1723 |
|
1724 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1725 |
msgid "South Korea"
|
1726 |
msgstr ""
|
1727 |
|
1728 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1729 |
msgid "Kuwait"
|
1730 |
msgstr ""
|
1731 |
|
1732 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1733 |
msgid "Kyrgyzstan"
|
1734 |
msgstr ""
|
1735 |
|
1736 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1737 |
msgid "Laos"
|
1738 |
msgstr ""
|
1739 |
|
1740 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1741 |
msgid "Latvia"
|
1742 |
msgstr ""
|
1743 |
|
1744 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1745 |
msgid "Lebanon"
|
1746 |
msgstr ""
|
1747 |
|
1748 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1749 |
msgid "Lesotho"
|
1750 |
msgstr ""
|
1751 |
|
1752 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1753 |
msgid "Liberia"
|
1754 |
msgstr ""
|
1755 |
|
1756 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1757 |
msgid "Libya"
|
1758 |
msgstr ""
|
1759 |
|
1760 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1761 |
msgid "Liechtenstein"
|
1762 |
msgstr ""
|
1763 |
|
1764 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1765 |
msgid "Lithuania"
|
1766 |
msgstr ""
|
1767 |
|
1768 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1769 |
msgid "Luxembourg"
|
1770 |
msgstr ""
|
1771 |
|
1772 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1773 |
msgid "Macedonia"
|
1774 |
msgstr ""
|
1775 |
|
1776 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1777 |
msgid "Madagascar"
|
1778 |
msgstr ""
|
1779 |
|
1780 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1781 |
msgid "Malawi"
|
1782 |
msgstr ""
|
1783 |
|
1784 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1785 |
msgid "Malaysia"
|
1786 |
msgstr ""
|
1787 |
|
1788 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1789 |
msgid "Maldives"
|
1790 |
msgstr ""
|
1791 |
|
1792 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1793 |
msgid "Mali"
|
1794 |
msgstr ""
|
1795 |
|
1796 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1797 |
msgid "Malta"
|
1798 |
msgstr ""
|
1799 |
|
1800 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1801 |
msgid "Marshall Islands"
|
1802 |
msgstr ""
|
1803 |
|
1804 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1805 |
msgid "Mauritania"
|
1806 |
msgstr ""
|
1807 |
|
1808 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1809 |
msgid "Mauritius"
|
1810 |
msgstr ""
|
1811 |
|
1812 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1813 |
msgid "Mexico"
|
1814 |
msgstr ""
|
1815 |
|
1816 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1817 |
msgid "Micronesia"
|
1818 |
msgstr ""
|
1819 |
|
1820 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1821 |
msgid "Moldova"
|
1822 |
msgstr ""
|
1823 |
|
1824 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1825 |
msgid "Monaco"
|
1826 |
msgstr ""
|
1827 |
|
1828 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1829 |
msgid "Mongolia"
|
1830 |
msgstr ""
|
1831 |
|
1832 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1833 |
msgid "Montenegro"
|
1834 |
msgstr ""
|
1835 |
|
1836 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1837 |
msgid "Montserrat"
|
1838 |
msgstr ""
|
1839 |
|
1840 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1841 |
msgid "Morocco"
|
1842 |
msgstr ""
|
1843 |
|
1844 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1845 |
msgid "Mozambique"
|
1846 |
msgstr ""
|
1847 |
|
1848 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1849 |
msgid "Myanmar"
|
1850 |
msgstr ""
|
1851 |
|
1852 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1853 |
msgid "Namibia"
|
1854 |
msgstr ""
|
1855 |
|
1856 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1857 |
msgid "Nauru"
|
1858 |
msgstr ""
|
1859 |
|
1860 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1861 |
msgid "Nepal"
|
1862 |
msgstr ""
|
1863 |
|
1864 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1865 |
msgid "Netherlands"
|
1866 |
msgstr ""
|
1867 |
|
1868 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1869 |
msgid "New Zealand"
|
1870 |
msgstr ""
|
1871 |
|
1872 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1873 |
msgid "Nicaragua"
|
1874 |
msgstr ""
|
1875 |
|
1876 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1877 |
msgid "Niger"
|
1878 |
msgstr ""
|
1879 |
|
1880 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1881 |
msgid "Nigeria"
|
1882 |
msgstr ""
|
1883 |
|
1884 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1885 |
msgid "Norway"
|
1886 |
msgstr ""
|
1887 |
|
1888 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1889 |
msgid "Northern Mariana Islands"
|
1890 |
msgstr ""
|
1891 |
|
1892 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1893 |
msgid "Oman"
|
1894 |
msgstr ""
|
1895 |
|
1896 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1897 |
msgid "Pakistan"
|
1898 |
msgstr ""
|
1899 |
|
1900 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1901 |
msgid "Palau"
|
1902 |
msgstr ""
|
1903 |
|
1904 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1905 |
msgid "Palestine"
|
1906 |
msgstr ""
|
1907 |
|
1908 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1909 |
msgid "Panama"
|
1910 |
msgstr ""
|
1911 |
|
1912 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1913 |
msgid "Papua New Guinea"
|
1914 |
msgstr ""
|
1915 |
|
1916 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1917 |
msgid "Paraguay"
|
1918 |
msgstr ""
|
1919 |
|
1920 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1921 |
msgid "Peru"
|
1922 |
msgstr ""
|
1923 |
|
1924 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1925 |
msgid "Philippines"
|
1926 |
msgstr ""
|
1927 |
|
1928 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1929 |
msgid "Poland"
|
1930 |
msgstr ""
|
1931 |
|
1932 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1933 |
msgid "Portugal"
|
1934 |
msgstr ""
|
1935 |
|
1936 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1937 |
msgid "Puerto Rico"
|
1938 |
msgstr ""
|
1939 |
|
1940 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1941 |
msgid "Qatar"
|
1942 |
msgstr ""
|
1943 |
|
1944 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1945 |
msgid "Romania"
|
1946 |
msgstr ""
|
1947 |
|
1948 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1949 |
msgid "Russia"
|
1950 |
msgstr ""
|
1951 |
|
1952 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1953 |
msgid "Rwanda"
|
1954 |
msgstr ""
|
1955 |
|
1956 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1957 |
msgid "Saint Kitts and Nevis"
|
1958 |
msgstr ""
|
1959 |
|
1960 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1961 |
msgid "Saint Lucia"
|
1962 |
msgstr ""
|
1963 |
|
1964 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1965 |
msgid "Saint Vincent and the Grenadines"
|
1966 |
msgstr ""
|
1967 |
|
1968 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1969 |
msgid "Samoa"
|
1970 |
msgstr ""
|
1971 |
|
1972 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1973 |
msgid "San Marino"
|
1974 |
msgstr ""
|
1975 |
|
1976 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1977 |
msgid "Sao Tome and Principe"
|
1978 |
msgstr ""
|
1979 |
|
1980 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1981 |
msgid "Saudi Arabia"
|
1982 |
msgstr ""
|
1983 |
|
1984 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1985 |
msgid "Senegal"
|
1986 |
msgstr ""
|
1987 |
|
1988 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1989 |
msgid "Serbia and Montenegro"
|
1990 |
msgstr ""
|
1991 |
|
1992 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1993 |
msgid "Seychelles"
|
1994 |
msgstr ""
|
1995 |
|
1996 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
1997 |
msgid "Sierra Leone"
|
1998 |
msgstr ""
|
1999 |
|
2000 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
2001 |
msgid "Singapore"
|
2002 |
msgstr ""
|
2003 |
|
2004 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
2005 |
msgid "Slovakia"
|
2006 |
msgstr ""
|
2007 |
|
2008 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
2009 |
msgid "Slovenia"
|
2010 |
msgstr ""
|
2011 |
|
2012 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
2013 |
msgid "Solomon Islands"
|
2014 |
msgstr ""
|
2015 |
|
2016 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
2017 |
msgid "Somalia"
|
2018 |
msgstr ""
|
2019 |
|
2020 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
2021 |
msgid "South Africa"
|
2022 |
msgstr ""
|
2023 |
|
2024 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
2025 |
msgid "South Sudan"
|
2026 |
msgstr ""
|
2027 |
|
2028 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
2029 |
msgid "Spain"
|
2030 |
msgstr ""
|
2031 |
|
2032 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
2033 |
msgid "Sri Lanka"
|
2034 |
msgstr ""
|
2035 |
|
2036 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
2037 |
msgid "Sudan"
|
2038 |
msgstr ""
|
2039 |
|
2040 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
2041 |
msgid "Suriname"
|
2042 |
msgstr ""
|
2043 |
|
2044 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
2045 |
msgid "Swaziland"
|
2046 |
msgstr ""
|
2047 |
|
2048 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
2049 |
msgid "Sweden"
|
2050 |
msgstr ""
|
2051 |
|
2052 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
2053 |
msgid "Switzerland"
|
2054 |
msgstr ""
|
2055 |
|
2056 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
2057 |
msgid "Syria"
|
2058 |
msgstr ""
|
2059 |
|
2060 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
2061 |
msgid "Taiwan"
|
2062 |
msgstr ""
|
2063 |
|
2064 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
2065 |
msgid "Tajikistan"
|
2066 |
msgstr ""
|
2067 |
|
2068 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
2069 |
msgid "Tanzania"
|
2070 |
msgstr ""
|
2071 |
|
2072 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
2073 |
msgid "Thailand"
|
2074 |
msgstr ""
|
2075 |
|
2076 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
2077 |
msgid "Togo"
|
2078 |
msgstr ""
|
2079 |
|
2080 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
2081 |
msgid "Tonga"
|
2082 |
msgstr ""
|
2083 |
|
2084 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
2085 |
msgid "Trinidad and Tobago"
|
2086 |
msgstr ""
|
2087 |
|
2088 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
2089 |
msgid "Tunisia"
|
2090 |
msgstr ""
|
2091 |
|
2092 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
2093 |
msgid "Turkey"
|
2094 |
msgstr ""
|
2095 |
|
2096 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
2097 |
msgid "Turkmenistan"
|
2098 |
msgstr ""
|
2099 |
|
2100 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
2101 |
msgid "Tuvalu"
|
2102 |
msgstr ""
|
2103 |
|
2104 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
2105 |
msgid "Uganda"
|
2106 |
msgstr ""
|
2107 |
|
2108 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
2109 |
msgid "Ukraine"
|
2110 |
msgstr ""
|
2111 |
|
2112 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
2113 |
msgid "United Arab Emirates"
|
2114 |
msgstr ""
|
2115 |
|
2116 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
2117 |
msgid "United Kingdom"
|
2118 |
msgstr ""
|
2119 |
|
2120 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
2121 |
msgid "United States"
|
2122 |
msgstr ""
|
2123 |
|
2124 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
2125 |
msgid "Uruguay"
|
2126 |
msgstr ""
|
2127 |
|
2128 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
2129 |
msgid "Uzbekistan"
|
2130 |
msgstr ""
|
2131 |
|
2132 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
2133 |
msgid "Vanuatu"
|
2134 |
msgstr ""
|
2135 |
|
2136 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
2137 |
msgid "Vatican City"
|
2138 |
msgstr ""
|
2139 |
|
2140 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
2141 |
msgid "Venezuela"
|
2142 |
msgstr ""
|
2143 |
|
2144 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
2145 |
msgid "Vietnam"
|
2146 |
msgstr ""
|
2147 |
|
2148 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
2149 |
msgid "Virgin Islands, British"
|
2150 |
msgstr ""
|
2151 |
|
2152 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
2153 |
msgid "Virgin Islands, U.S."
|
2154 |
msgstr ""
|
2155 |
|
2156 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
2157 |
msgid "Yemen"
|
2158 |
msgstr ""
|
2159 |
|
2160 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
2161 |
msgid "Zambia"
|
2162 |
msgstr ""
|
2163 |
|
2164 |
+
#: classes/helpers/FrmFieldsHelper.php:1225
|
2165 |
msgid "Zimbabwe"
|
2166 |
msgstr ""
|
2167 |
|
2168 |
+
#: classes/helpers/FrmFieldsHelper.php:1229
|
2169 |
msgid "Countries"
|
2170 |
msgstr ""
|
2171 |
|
2172 |
+
#: classes/helpers/FrmFieldsHelper.php:1234
|
2173 |
msgid "U.S. State Abbreviations"
|
2174 |
msgstr ""
|
2175 |
|
2176 |
+
#: classes/helpers/FrmFieldsHelper.php:1238
|
2177 |
msgid "U.S. States"
|
2178 |
msgstr ""
|
2179 |
|
2180 |
+
#: classes/helpers/FrmFieldsHelper.php:1241
|
2181 |
msgid "Age"
|
2182 |
msgstr ""
|
2183 |
|
2184 |
+
#: classes/helpers/FrmFieldsHelper.php:1242
|
2185 |
msgid "Under 18"
|
2186 |
msgstr ""
|
2187 |
|
2188 |
+
#: classes/helpers/FrmFieldsHelper.php:1243
|
2189 |
msgid "18-24"
|
2190 |
msgstr ""
|
2191 |
|
2192 |
+
#: classes/helpers/FrmFieldsHelper.php:1244
|
2193 |
msgid "25-34"
|
2194 |
msgstr ""
|
2195 |
|
2196 |
+
#: classes/helpers/FrmFieldsHelper.php:1245
|
2197 |
msgid "35-44"
|
2198 |
msgstr ""
|
2199 |
|
2200 |
+
#: classes/helpers/FrmFieldsHelper.php:1246
|
2201 |
msgid "45-54"
|
2202 |
msgstr ""
|
2203 |
|
2204 |
+
#: classes/helpers/FrmFieldsHelper.php:1247
|
2205 |
msgid "55-64"
|
2206 |
msgstr ""
|
2207 |
|
2208 |
+
#: classes/helpers/FrmFieldsHelper.php:1248
|
2209 |
msgid "65 or Above"
|
2210 |
msgstr ""
|
2211 |
|
2212 |
+
#: classes/helpers/FrmFieldsHelper.php:1249
|
2213 |
msgid "Prefer Not to Answer"
|
2214 |
msgstr ""
|
2215 |
|
2216 |
+
#: classes/helpers/FrmFieldsHelper.php:1252
|
2217 |
msgid "Satisfaction"
|
2218 |
msgstr ""
|
2219 |
|
2220 |
+
#: classes/helpers/FrmFieldsHelper.php:1253
|
2221 |
msgid "Very Satisfied"
|
2222 |
msgstr ""
|
2223 |
|
2224 |
+
#: classes/helpers/FrmFieldsHelper.php:1254
|
2225 |
msgid "Satisfied"
|
2226 |
msgstr ""
|
2227 |
|
2228 |
+
#: classes/helpers/FrmFieldsHelper.php:1255
|
2229 |
+
#: classes/helpers/FrmFieldsHelper.php:1264
|
2230 |
+
#: classes/helpers/FrmFieldsHelper.php:1273
|
2231 |
msgid "Neutral"
|
2232 |
msgstr ""
|
2233 |
|
2234 |
+
#: classes/helpers/FrmFieldsHelper.php:1256
|
2235 |
msgid "Unsatisfied"
|
2236 |
msgstr ""
|
2237 |
|
2238 |
+
#: classes/helpers/FrmFieldsHelper.php:1257
|
2239 |
msgid "Very Unsatisfied"
|
2240 |
msgstr ""
|
2241 |
|
2242 |
+
#: classes/helpers/FrmFieldsHelper.php:1258
|
2243 |
+
#: classes/helpers/FrmFieldsHelper.php:1267
|
2244 |
+
#: classes/helpers/FrmFieldsHelper.php:1276
|
2245 |
msgid "N/A"
|
2246 |
msgstr ""
|
2247 |
|
2248 |
+
#: classes/helpers/FrmFieldsHelper.php:1261
|
2249 |
msgid "Importance"
|
2250 |
msgstr ""
|
2251 |
|
2252 |
+
#: classes/helpers/FrmFieldsHelper.php:1262
|
2253 |
msgid "Very Important"
|
2254 |
msgstr ""
|
2255 |
|
2256 |
+
#: classes/helpers/FrmFieldsHelper.php:1263
|
2257 |
msgid "Important"
|
2258 |
msgstr ""
|
2259 |
|
2260 |
+
#: classes/helpers/FrmFieldsHelper.php:1265
|
2261 |
msgid "Somewhat Important"
|
2262 |
msgstr ""
|
2263 |
|
2264 |
+
#: classes/helpers/FrmFieldsHelper.php:1266
|
2265 |
msgid "Not at all Important"
|
2266 |
msgstr ""
|
2267 |
|
2268 |
+
#: classes/helpers/FrmFieldsHelper.php:1270
|
2269 |
msgid "Agreement"
|
2270 |
msgstr ""
|
2271 |
|
2272 |
+
#: classes/helpers/FrmFieldsHelper.php:1271
|
2273 |
msgid "Strongly Agree"
|
2274 |
msgstr ""
|
2275 |
|
2276 |
+
#: classes/helpers/FrmFieldsHelper.php:1272
|
2277 |
msgid "Agree"
|
2278 |
msgstr ""
|
2279 |
|
2280 |
+
#: classes/helpers/FrmFieldsHelper.php:1274
|
2281 |
msgid "Disagree"
|
2282 |
msgstr ""
|
2283 |
|
2284 |
+
#: classes/helpers/FrmFieldsHelper.php:1275
|
2285 |
msgid "Strongly Disagree"
|
2286 |
msgstr ""
|
2287 |
|
2352 |
msgstr ""
|
2353 |
|
2354 |
#: classes/helpers/FrmFormsHelper.php:853
|
2355 |
+
#: classes/helpers/FrmStylesHelper.php:40
|
2356 |
msgid "Right"
|
2357 |
msgstr ""
|
2358 |
|
2469 |
msgid "Custom"
|
2470 |
msgstr ""
|
2471 |
|
2472 |
+
#: classes/helpers/FrmStylesHelper.php:16
|
2473 |
msgid "Edit Styles"
|
2474 |
msgstr ""
|
2475 |
|
2476 |
+
#: classes/helpers/FrmStylesHelper.php:17
|
2477 |
msgid "Manage Form Styles"
|
2478 |
msgstr ""
|
2479 |
|
2480 |
+
#: classes/helpers/FrmStylesHelper.php:18
|
2481 |
msgid "Custom CSS"
|
2482 |
msgstr ""
|
2483 |
|
2484 |
+
#: classes/helpers/FrmStylesHelper.php:28
|
2485 |
msgid "top"
|
2486 |
msgstr ""
|
2487 |
|
2488 |
+
#: classes/helpers/FrmStylesHelper.php:29
|
2489 |
#: classes/views/styles/_field-description.php:33
|
2490 |
#: classes/views/styles/_field-labels.php:31
|
2491 |
#: classes/views/styles/_general.php:11
|
2492 |
msgid "left"
|
2493 |
msgstr ""
|
2494 |
|
2495 |
+
#: classes/helpers/FrmStylesHelper.php:30
|
2496 |
#: classes/views/styles/_field-description.php:36
|
2497 |
#: classes/views/styles/_field-labels.php:34
|
2498 |
#: classes/views/styles/_general.php:14
|
2499 |
msgid "right"
|
2500 |
msgstr ""
|
2501 |
|
2502 |
+
#: classes/helpers/FrmStylesHelper.php:31
|
2503 |
msgid "none"
|
2504 |
msgstr ""
|
2505 |
|
2506 |
+
#: classes/helpers/FrmStylesHelper.php:32
|
2507 |
msgid "inside"
|
2508 |
msgstr ""
|
2509 |
|
2510 |
+
#: classes/helpers/FrmStylesHelper.php:38
|
2511 |
msgid "Top"
|
2512 |
msgstr ""
|
2513 |
|
2514 |
+
#: classes/helpers/FrmStylesHelper.php:39
|
2515 |
msgid "Left"
|
2516 |
msgstr ""
|
2517 |
|
2518 |
+
#: classes/helpers/FrmStylesHelper.php:41
|
2519 |
msgid "Inline (left without a set width)"
|
2520 |
msgstr ""
|
2521 |
|
2522 |
+
#: classes/helpers/FrmStylesHelper.php:42
|
2523 |
msgid "None"
|
2524 |
msgstr ""
|
2525 |
|
2526 |
+
#: classes/helpers/FrmStylesHelper.php:43
|
2527 |
msgid "Hidden (but leave the space)"
|
2528 |
msgstr ""
|
2529 |
|
2530 |
+
#: classes/helpers/FrmStylesHelper.php:44
|
2531 |
msgid "Placeholder inside the field"
|
2532 |
msgstr ""
|
2533 |
|
2811 |
msgid "Email Notification"
|
2812 |
msgstr ""
|
2813 |
|
2814 |
+
#: classes/models/FrmAddon.php:258
|
2815 |
#, php-format
|
2816 |
msgid ""
|
2817 |
"Your %1$s license key is missing. Please add it on the %2$slicenses page%3$s."
|
2818 |
msgstr ""
|
2819 |
|
2820 |
+
#: classes/models/FrmAddon.php:445
|
2821 |
msgid "Oops! You forgot to enter your license number."
|
2822 |
msgstr ""
|
2823 |
|
2824 |
+
#: classes/models/FrmAddon.php:521
|
2825 |
msgid "Your license has been activated. Enjoy!"
|
2826 |
msgstr ""
|
2827 |
|
2828 |
+
#: classes/models/FrmAddon.php:522 classes/models/FrmAddon.php:527
|
2829 |
msgid "That license key is invalid"
|
2830 |
msgstr ""
|
2831 |
|
2832 |
+
#: classes/models/FrmAddon.php:523
|
2833 |
msgid "That license is expired"
|
2834 |
msgstr ""
|
2835 |
|
2836 |
+
#: classes/models/FrmAddon.php:524
|
2837 |
msgid "That license has been refunded"
|
2838 |
msgstr ""
|
2839 |
|
2840 |
+
#: classes/models/FrmAddon.php:525
|
2841 |
msgid "That license has been used on too many sites"
|
2842 |
msgstr ""
|
2843 |
|
2844 |
+
#: classes/models/FrmAddon.php:526
|
2845 |
msgid "Oops! That is the wrong license key for this plugin."
|
2846 |
msgstr ""
|
2847 |
|
2848 |
+
#: classes/models/FrmAddon.php:549
|
2849 |
msgid "That license was removed successfully"
|
2850 |
msgstr ""
|
2851 |
|
2852 |
+
#: classes/models/FrmAddon.php:551
|
2853 |
msgid "There was an error deactivating your license."
|
2854 |
msgstr ""
|
2855 |
|
2856 |
+
#: classes/models/FrmAddon.php:584
|
2857 |
msgid "Your License Key was invalid"
|
2858 |
msgstr ""
|
2859 |
|
2860 |
+
#: classes/models/FrmAddon.php:588
|
2861 |
#, php-format
|
2862 |
msgid ""
|
2863 |
"You had an error communicating with the Formidable API. %1$sClick here%2$s "
|
2864 |
"for more information."
|
2865 |
msgstr ""
|
2866 |
|
2867 |
+
#: classes/models/FrmAddon.php:591
|
2868 |
msgid "You had an HTTP error connecting to the Formidable API"
|
2869 |
msgstr ""
|
2870 |
|
2871 |
+
#: classes/models/FrmAddon.php:602
|
2872 |
#, php-format
|
2873 |
msgid "There was a %1$s error: %2$s"
|
2874 |
msgstr ""
|
2877 |
msgid "Use the query in an array format so it can be properly prepared."
|
2878 |
msgstr ""
|
2879 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2880 |
#: classes/models/FrmEmail.php:262
|
2881 |
#, php-format
|
2882 |
msgid "%1$s Form submitted on %2$s"
|
2905 |
msgid "There was a problem with your submission. Please try again."
|
2906 |
msgstr ""
|
2907 |
|
2908 |
+
#: classes/models/FrmEntryValidate.php:222
|
2909 |
+
#: classes/models/FrmEntryValidate.php:231
|
2910 |
msgid "Your entry appears to be spam!"
|
2911 |
msgstr ""
|
2912 |
|
2913 |
+
#: classes/models/FrmEntryValidate.php:226
|
2914 |
msgid "Your entry appears to be blacklist spam!"
|
2915 |
msgstr ""
|
2916 |
|
3082 |
msgid "Default Form"
|
3083 |
msgstr ""
|
3084 |
|
3085 |
+
#: classes/models/FrmMigrate.php:487
|
3086 |
msgid "Sending"
|
3087 |
msgstr ""
|
3088 |
|
3205 |
msgid "Website"
|
3206 |
msgstr ""
|
3207 |
|
3208 |
+
#: classes/views/addons/list.php:3
|
3209 |
+
msgid "Formidable Add-Ons"
|
3210 |
msgstr ""
|
3211 |
|
3212 |
+
#: classes/views/addons/list.php:21 classes/views/addons/list.php:22
|
3213 |
msgid "View Docs"
|
3214 |
msgstr ""
|
3215 |
|
3216 |
+
#: classes/views/addons/list.php:30
|
3217 |
#, php-format
|
3218 |
msgid "Status: %s"
|
3219 |
msgstr ""
|
3220 |
|
3221 |
+
#: classes/views/addons/list.php:37 classes/views/addons/settings.php:28
|
3222 |
msgid "Activate"
|
3223 |
msgstr ""
|
3224 |
|
3225 |
+
#: classes/views/addons/list.php:45 classes/views/addons/list.php:46
|
3226 |
#: classes/views/addons/upgrade_to_pro.php:24
|
3227 |
msgid "Get Started"
|
3228 |
msgstr ""
|
3229 |
|
3230 |
+
#: classes/views/addons/list.php:49 classes/views/addons/list.php:50
|
3231 |
msgid "Upgrade Now"
|
3232 |
msgstr ""
|
3233 |
|
3234 |
+
#: classes/views/addons/settings.php:20
|
3235 |
msgid "Good to go!"
|
3236 |
msgstr ""
|
3237 |
|
3238 |
+
#: classes/views/addons/settings.php:22
|
3239 |
msgid "Deactivate"
|
3240 |
msgstr ""
|
3241 |
|
|
|
|
|
|
|
|
|
3242 |
#: classes/views/frm-entries/_sidebar-shared-pub.php:17
|
3243 |
msgid "Print"
|
3244 |
msgstr ""
|
4122 |
msgstr ""
|
4123 |
|
4124 |
#: classes/views/frm-settings/license_box.php:10
|
4125 |
+
#: classes/views/shared/upgrade_overlay.php:38
|
4126 |
msgid "Already purchased?"
|
4127 |
msgstr ""
|
4128 |
|
4199 |
msgid "Click a button below to insert sample logic into your view"
|
4200 |
msgstr ""
|
4201 |
|
4202 |
+
#: classes/views/shared/review.php:4
|
4203 |
+
#, php-format
|
4204 |
+
msgid "Congratulations%1$s! You have collected %2$d form submissions."
|
4205 |
+
msgstr ""
|
4206 |
+
|
4207 |
+
#: classes/views/shared/review.php:5
|
4208 |
+
msgid "Are you enjoying Formidable Forms?"
|
4209 |
+
msgstr ""
|
4210 |
+
|
4211 |
+
#: classes/views/shared/review.php:9
|
4212 |
+
msgid "Not Really"
|
4213 |
+
msgstr ""
|
4214 |
+
|
4215 |
+
#: classes/views/shared/review.php:12
|
4216 |
+
msgid "Yes!"
|
4217 |
+
msgstr ""
|
4218 |
+
|
4219 |
+
#: classes/views/shared/review.php:16
|
4220 |
+
msgid ""
|
4221 |
+
"Awesome! Could you do me a BIG favor and give Formidable Forms a review to "
|
4222 |
+
"help me grow my little business and boost our motivation?"
|
4223 |
+
msgstr ""
|
4224 |
+
|
4225 |
+
#: classes/views/shared/review.php:18
|
4226 |
+
msgid "Founder and Lead Developer of Formidable Forms"
|
4227 |
+
msgstr ""
|
4228 |
+
|
4229 |
+
#: classes/views/shared/review.php:21
|
4230 |
+
msgid "No thanks, maybe later"
|
4231 |
+
msgstr ""
|
4232 |
+
|
4233 |
+
#: classes/views/shared/review.php:24
|
4234 |
+
msgid "Ok, you deserve it"
|
4235 |
+
msgstr ""
|
4236 |
+
|
4237 |
+
#: classes/views/shared/review.php:27
|
4238 |
+
msgid "I already did"
|
4239 |
+
msgstr ""
|
4240 |
+
|
4241 |
+
#: classes/views/shared/review.php:31
|
4242 |
+
msgid ""
|
4243 |
+
"Sorry to hear you aren't enjoying building with Formidable. We would love a "
|
4244 |
+
"chance to improve. Could you take a minute and let us know what we can do "
|
4245 |
+
"better?"
|
4246 |
+
msgstr ""
|
4247 |
+
|
4248 |
#: classes/views/shared/upgrade_overlay.php:11
|
4249 |
#, php-format
|
4250 |
+
msgid "%s are not installed"
|
4251 |
msgstr ""
|
4252 |
|
4253 |
#: classes/views/shared/upgrade_overlay.php:20
|
4254 |
+
msgid "Please see the add-ons that are included with your plan."
|
|
|
|
|
|
|
4255 |
msgstr ""
|
4256 |
|
4257 |
#: classes/views/shared/upgrade_overlay.php:22
|
4261 |
"awesome features."
|
4262 |
msgstr ""
|
4263 |
|
4264 |
+
#: classes/views/shared/upgrade_overlay.php:29
|
4265 |
+
msgid "See My Add-Ons"
|
4266 |
+
msgstr ""
|
4267 |
+
|
4268 |
#: classes/views/styles/_buttons.php:4
|
4269 |
msgid "Disable submit button styling"
|
4270 |
msgstr ""
|
readme.txt
CHANGED
@@ -1,25 +1,25 @@
|
|
1 |
-
=== Contact Forms, Surveys & Quiz
|
2 |
Contributors: formidableforms, sswells, srwells, jamie.wahlin
|
3 |
-
Tags: contact form, form builder,
|
4 |
-
Requires at least: 4.
|
5 |
-
Tested up to:
|
6 |
Requires PHP: 5.3
|
7 |
-
Stable tag: 3.04.
|
8 |
|
9 |
-
The most advanced WordPress forms plugin. Go beyond contact forms with our drag & drop form builder
|
10 |
|
11 |
== Description ==
|
12 |
-
= The Most Powerful WordPress form builder on the market =
|
13 |
-
We built <a href="https://formidableforms.com/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Formidable Forms</a> to offer the "first-ever" solutions-focused WordPress form plugin on the market. You can use our drag & drop WordPress form builder to create contact forms, surveys, quiz forms, registration forms, payment forms, purchase forms, email marketing forms, and just about any other form you can imagine.
|
14 |
|
15 |
-
At Formidable Forms, creating the most extendable form builder is our #1 priority, so you save time when building even the most advanced forms. Unlike other WordPress form plugins that focus solely on building contact forms, we believe in allowing our users to push the limits and create complex forms quickly!
|
16 |
|
17 |
-
Before we take a deep-dive into the features of the powerful Formidable form builder plugin,
|
18 |
|
19 |
-
On top of that, we have optimized Formidable contact forms and advanced forms for speed and maximum server performance. Whether you use Formidable to build a contact form on your own site or an advanced form for your client, you can confidently say that it's one of the FASTEST WordPress form builders
|
20 |
|
21 |
> <strong>Formidable Forms Pro</strong><br />
|
22 |
-
> This form builder plugin is the lite version of the Formidable Forms Pro plugin that comes with all the contact form and advanced form features you will ever need. Our premium form features include
|
23 |
|
24 |
You can start with our pre-built contact form template or create totally custom forms from scratch all with an easy-to-use drag & drop form builder interface.
|
25 |
|
@@ -29,9 +29,9 @@ Let's take a look at all the powerful form builder features that you get with Fo
|
|
29 |
|
30 |
= Drag & Drop Contact Form Maker and Advanced Form Builder =
|
31 |
|
32 |
-
The Formidable drag & drop form builder allows you to quickly create unlimited contact forms, surveys, quizzes, registration forms, and just about any other type of form that you want.
|
33 |
|
34 |
-
Our form builder comes with all the powerful form fields that you need to create a solution-focused form, fast!
|
35 |
|
36 |
* Single line text (for names, phone numbers, addresses, and more)
|
37 |
* Email
|
@@ -46,49 +46,49 @@ Our form builder comes with all the powerful form fields that you need to create
|
|
46 |
* User ID
|
47 |
* HTML block
|
48 |
|
49 |
-
With our built-in form styler, you can instantly customize the look and feel of your contact forms. With just a few clicks, your contact form and advanced forms can be transformed to match your website design.
|
50 |
-
|
51 |
-
By default, Formidable applies a single styling template to all contact forms and advanced forms on your site. But if you want to have custom form style for each individual contact form and registration form, then you can upgrade to Formidable Forms Pro.
|
52 |
-
|
53 |
= Complete Entry Management for Contact Forms and Surveys =
|
54 |
|
55 |
Formidable Forms allows you to view all your contact form and survey entries right from your WordPress dashboard.
|
56 |
|
57 |
-
Once a user submits
|
58 |
|
59 |
-
Formidable Forms is **100% GDPR-friendly**. You can turn off IP tracking or stop saving form submissions entirely. Alternatively, you can add a GDPR checkbox field to your
|
60 |
|
61 |
Need to import your contact form leads to another service like MailChimp? No problem. **Export contact form leads to a CSV**, open it in Excel, and import anywhere.
|
62 |
|
63 |
-
You can also configure unlimited form email notifications and autoresponders.
|
|
|
|
|
|
|
|
|
|
|
|
|
64 |
|
65 |
-
|
66 |
|
67 |
= Build Smart Surveys with Beautiful Reports =
|
68 |
|
69 |
-
Aside from simple contact forms, Formidable comes with a built-in survey feature, so you can quickly create powerful surveys and see beautiful reports.
|
70 |
|
71 |
-
The best part is that you can do this all within Formidable without
|
72 |
|
73 |
= Quickly Create Advanced Registration Forms for Any Use Case =
|
74 |
|
75 |
-
Whether you need to create a youth sport team registration form, event registration form, or church retreat registration form, Formidable has got you covered.
|
76 |
|
77 |
-
|
78 |
-
|
79 |
-
Then, you can use our marketing integrations and APIs to send this form data anywhere you want.
|
80 |
|
81 |
= Accept Credit Cards and Easily Collect Payments =
|
82 |
|
83 |
-
By now, you probably already realize the theme that Formidable is more than just a contact form plugin. You can use Formidable to create payment forms and accept credit card payments right from your website.
|
84 |
|
85 |
-
We offer seamless integration with PayPal, Stripe, and Authorize.net, so you can create order forms and purchase forms with our drag & drop
|
86 |
|
87 |
-
You can even use Formidable to create WooCommerce forms with custom fields (more on that later).
|
88 |
|
89 |
= Grow Your Business with Marketing Integrations =
|
90 |
|
91 |
-
We know that marketing is the key to grow your business. That's why Formidable allows you to connect
|
92 |
|
93 |
We integrate with popular email marketing services like:
|
94 |
|
@@ -101,205 +101,212 @@ We integrate with popular email marketing services like:
|
|
101 |
* Salesforce
|
102 |
* HubSpot
|
103 |
|
104 |
-
On top of these native integrations, we also integrate with Zapier, so you can quickly route your contact form data to over 1,000+ more
|
105 |
|
106 |
= Create Data-Driven Web Applications with Formidable Views =
|
107 |
|
108 |
-
Formidable Views are by far the most powerful feature
|
109 |
|
110 |
Our customers use Formidable Views to create data-driven web applications like real estate listings, employment listings, event calendars, business or member directories, job boards, and other searchable databases.
|
111 |
|
112 |
-
As you can see, Formidable Forms is not
|
113 |
|
114 |
= Increase Your Sales with WooCommerce Product Forms =
|
115 |
|
116 |
-
Formidable is the only WordPress form builder that offers extensive integration with WooCommerce.
|
117 |
|
118 |
Our goal is to empower you to build powerful WooCommerce product forms, so you can increase your store sales.
|
119 |
|
120 |
-
You can use Formidable Forms to add a WooCommerce Product configurator
|
121 |
|
122 |
Need your customers to upload a file when they purchase a product? No problem. Simply drag & drop a file upload field into your WooCommerce form and you're done.
|
123 |
|
124 |
-
You can even show submitted form values in the WooCommerce emails as well as trigger SMS text messages or marketing integrations when an order is completed.
|
125 |
|
126 |
-
And of course, you can
|
127 |
|
128 |
= Build Powerful Quiz Forms & Calculators =
|
129 |
|
130 |
-
Along with a contact form, you can also use the Formidable form builder to create quiz forms and calculator forms.
|
131 |
|
132 |
-
Here are some example web calculators
|
133 |
|
134 |
* Advanced Mortgage Calculator
|
135 |
* Car Payment Calculator
|
136 |
* BMI Calculator
|
137 |
* User Age Calculator
|
138 |
* Online Quote Calculator
|
|
|
139 |
|
140 |
-
... and our powerful
|
141 |
|
142 |
-
If that wasn't enough, you can also use Formidable Form builder to create quizzes on your site and display results. This is great for membership sites, LMS, or just for viral quizzes to grow your email list.
|
143 |
|
144 |
-
Our goal is go beyond simple contact forms and allow users to create form-based solutions without any code :)
|
145 |
|
146 |
= Create WordPress User Registration Forms, Profile Forms, and More =
|
147 |
|
148 |
If you run a WordPress membership site, then you need more advanced forms along with your contact form.
|
149 |
|
150 |
-
Formidable Form builder allows you to customize your WordPress user registration forms, so you can collect additional data when the user profile is created.
|
151 |
|
152 |
-
With our front-end form editing
|
153 |
|
154 |
-
Our front-end form editing feature is unique to us, and you will not find any other WordPress contact form plugin offering such solution with the level of extendability that we do.
|
155 |
|
156 |
= Beautiful Graphs and Reports to Help You Analyze and Showcase Data =
|
157 |
|
158 |
-
We believe that data
|
159 |
|
160 |
-
You can even showcase
|
161 |
|
162 |
= All the Advanced Form Fields and Features You Need to Grow Your Business =
|
163 |
|
164 |
-
Formidable Forms goes far above and beyond contact forms to offer all the advanced form fields and features
|
165 |
|
166 |
This includes things like multi-page forms, save and continue forms, cascading form fields, powerful conditional logic, partial form submissions, invisible spam protection, front-end user post submission, calculators, user-tracking, and so much more.
|
167 |
|
168 |
-
We're on a mission to offer an all-in-one solution
|
169 |
|
170 |
-
= Extend and Customize Your Forms - Developer's Dream Come True =
|
171 |
|
172 |
-
Formidable is the form plugin of choice for smart developers, freelancers, and agencies because it helps them build complex form solutions quickly and defy the limits imposed by time and knowledge.
|
173 |
|
174 |
Our goal is to help you build complex websites with low overhead. We believe big projects don't always need big resources.
|
175 |
|
176 |
-
That's why we made Formidable Forms the most extendable WordPress form builder plugin
|
177 |
|
178 |
-
You can easily route your data from contact forms and advanced forms with our powerful API. Formidable Views allow you to display
|
179 |
|
180 |
-
On top of that, our hooks and filters allow you to
|
181 |
|
182 |
= Full Formidable Forms Feature List =
|
183 |
|
184 |
-
Since Formidable is not your average WordPress contact form plugin, this feature list is going to be very long. Grab a cup of coffee and read through, or just install the most powerful WordPress form plugin, your choice :)
|
185 |
-
|
186 |
-
* <a href="https://formidableforms.com/features/drag-drop-form-builder/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Online drag and drop form builder</a>. Build everything from contact forms to complex online forms the easy way with a simple WordPress drag and drop form builder. No code required.
|
187 |
-
* <a href="https://formidableforms.com/features/
|
188 |
-
* <a href="https://formidableforms.com/features/
|
189 |
-
* <a href="https://formidableforms.com/features/wordpress-
|
190 |
-
* <a href="https://formidableforms.com/features/
|
191 |
-
*
|
192 |
-
*
|
193 |
-
*
|
194 |
-
*
|
195 |
-
*
|
196 |
-
*
|
197 |
-
* <a href="https://formidableforms.com/features/email-
|
198 |
-
*
|
199 |
-
* <a href="https://formidableforms.com/features/
|
200 |
-
*
|
201 |
-
* <a href="https://formidableforms.com/features/
|
202 |
-
* <a href="https://formidableforms.com/features/wordpress-
|
203 |
-
* <a href="https://formidableforms.com/features/
|
204 |
-
* <a href="https://formidableforms.com/features/
|
205 |
-
* <a href="https://formidableforms.com/features/user-submitted-posts-wordpress-forms/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">User submitted front-end posts and pages</a>. Create and edit WordPress posts, pages, and even custom post types from your front-end online forms. Send user-generated content quickly from post creation to a page.
|
|
|
206 |
* <a href="https://formidableforms.com/features/front-end-editing-wordpress/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">WordPress front-end editing</a>. Allow users to edit their form entries and posts from the front-end of your site. Create an online journaling platform, member directory, classified ads, community recipes, and more.
|
207 |
-
* <a href="https://formidableforms.com/features/save-and-continue-partial-submissions/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">
|
208 |
-
* <a href="https://formidableforms.com/features/create-a-graph-wordpress-forms/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Graphs and charts for data visualization</a>. Display statistics from surveys, polls, and advanced forms
|
209 |
-
* Form permission settings. Limit
|
210 |
-
* Limit
|
211 |
-
* Form scheduling. Open and close event registration forms and signup forms on a specific date. Or close forms when the limit has been reached for
|
212 |
-
* Conditionally redirect after form
|
213 |
-
*
|
214 |
-
* <a href="https://formidableforms.com/features/importing-exporting-wordpress-forms/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Import and
|
215 |
-
* <a href="https://formidableforms.com/features/wordpress-form-templates/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Form templates for instant form building</a>. Get started quickly with the most advanced form creator that includes form templates, style templates, and Formidable
|
216 |
-
* Import our <a href="https://formidableforms.com/downloads/category/form-templates/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">pre-built form/view templates</a> as a
|
217 |
* <a href="https://formidableforms.com/features/wcag-accessible-forms/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">WCAG accessible forms with A11Y compliance</a>. Don't alienate your audience. Ensure your contact forms, surveys, quiz forms, lead capture forms, and other online forms are compliant and available to anyone.
|
218 |
-
* <a href="https://formidableforms.com/features/invisible-spam-protection/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Invisible SPAM protection</a>. Don't waste time sorting through SPAM from your contact form. Get instant and powerful anti-spam features
|
219 |
-
* <a href="https://formidableforms.com/features/fill-out-forms-automatically/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Fill out forms automatically</a> with
|
220 |
-
* <a href="https://formidableforms.com/features/white-label-form-builder-wordpress/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">White label form builder</a>. Replace the Formidable Forms branding with your own in the admin area. Plus, we never show "powered by" links in your free contact forms
|
221 |
-
* <a href="https://formidableforms.com/downloads/user-registration/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">WordPress user registration forms</a>. Register users, edit profiles, reset passwords, and add a login form. When using WordPress multisite forms, you can even allow
|
222 |
-
* <a href="https://formidableforms.com/downloads/signature/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Digital
|
223 |
-
* <a href="https://formidableforms.com/downloads/autoresponder/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Form action automation</a>. Schedule email notifications, SMS messages, and
|
224 |
-
* <a href="https://formidableforms.com/downloads/formidable-api/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Formidable Forms API</a>. Send form
|
225 |
-
* <a href="https://formidableforms.com/downloads/quiz-maker/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Quiz maker forms</a>.
|
226 |
-
* <a href="https://formidableforms.com/support/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">World class support</a>. Have questions or need guidance on how to set up your web application? We are happy to help. Our passion with Formidable Forms is to help you <strong>defy the limits</strong> so you can take on bigger projects, earn more clients, and grow your business.
|
227 |
-
|
228 |
-
= Form Integrations =
|
229 |
-
|
230 |
-
|
231 |
-
* <a href="https://formidableforms.com/downloads/
|
232 |
-
* <a href="https://formidableforms.com/downloads/
|
233 |
-
* <a href="https://formidableforms.com/downloads/
|
|
|
|
|
234 |
* <a href="https://formidableforms.com/downloads/constant-contact/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Constant Contact Forms</a>. Create leads automatically in Constant Contact with newsletter signup forms and contact forms.
|
235 |
-
* <a href="https://formidableforms.com/downloads/getresponse-wordpress-plugin/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">GetResponse Forms</a>. Collect leads in contact forms, add them to GetResponse,
|
236 |
-
* <a href="https://formidableforms.com/downloads/aweber/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">
|
237 |
* <a href="https://formidableforms.com/downloads/mailpoet-newsletters/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">MailPoet Newsletter forms</a>. Fill your email marketing lists from newsletter signup forms and contact forms. Then send WordPress newsletters from your own site using MailPoet.
|
238 |
-
* <a href="https://formidableforms.com/downloads/highrise/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Highrise Forms</a>. Add leads to your Highrise CRM account any time a contact form, registration form, or payment form is submitted.
|
239 |
-
* <a href="https://formidableforms.com/downloads/salesforce/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Salesforce Forms</a>. Create leads, contacts, and any other Salesforce objects directly from your contact
|
240 |
-
* <a href="https://formidableforms.com/downloads/activecampaign-wordpress-plugin/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">ActiveCampaign Forms</a>. Let contact
|
241 |
-
* <a href="https://formidableforms.com/downloads/hubspot-wordpress/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">HubSpot Forms</a>. Route contact form and lead form data to HubSpot CRM.
|
242 |
-
* <a href="https://formidableforms.com/downloads/twilio/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Twilio for SMS Forms</a>. Collect votes and poll responses via SMS text
|
243 |
* <a href="https://formidableforms.com/downloads/wp-multilingual/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">WPML Forms</a>. Translate contact forms, registration forms, and advanced forms into multiple languages using our integrated multilingual forms plugin.
|
244 |
-
* <a href="https://formidableforms.com/downloads/polylang/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Polylang Forms</a>. Get the form creator with Polylang bilingual or multilingual contact forms.
|
245 |
-
* <a href="https://formidableforms.com/downloads/zapier/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Zapier Forms</a>. Connect with hundreds of different applications through Zapier. Insert a new row in a Google docs spreadsheet, post on Twitter, or
|
246 |
-
* <a href="https://formidableforms.com/downloads/bootstrap/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Bootstrap Form Styles</a>. Instantly add Bootstrap form styling to
|
247 |
-
* <a href="https://formidableforms.com/downloads/bootstrap-modal/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Bootstrap Modal Form</a>. Open contact forms, login forms, views,
|
|
|
|
|
|
|
|
|
248 |
|
249 |
-
|
250 |
|
251 |
-
|
|
|
252 |
|
253 |
-
|
254 |
|
255 |
== Installation ==
|
256 |
-
1. Go to
|
257 |
2. Search for 'Formidable'
|
258 |
3. Click the 'Install Now' button
|
259 |
4. Activate the plugin through the 'Plugins' menu
|
260 |
5. Go to the Formidable Forms menu
|
261 |
-
6. Click the 'Add New' button to go to the form generator page and create a new email form
|
262 |
-
7. Insert your contact form, quiz, survey, registration form, or advanced form on a page, post, or widget using a shortcode [formidable id=x], Alternatively use `<?php echo FrmFormsController::show_form(2, $key = '', $title=true, $description=true); ?>` in
|
263 |
|
264 |
== Screenshots ==
|
265 |
-
1. Build professional WP forms without any code.
|
266 |
-
2. Form builder plugin page for creating contact
|
267 |
-
3. Field Options and CSS Layout Classes
|
268 |
4. Field Options for checkbox fields in the form maker
|
269 |
-
5. View, create, edit, and delete entries on the back end from contact
|
270 |
6. Add a WordPress contact form into your sidebar with a widget
|
271 |
|
272 |
== Frequently Asked Questions ==
|
273 |
= How do I get started with the best WordPress contact form plugin? =
|
274 |
-
|
275 |
The fastest way to build a contact form is to use the contact form template we built for you. After you activate Formidable Forms, insert [formidable id=contact-form] on the WordPress page of your choice. That's it!
|
276 |
|
277 |
-
Want to make a new contact form? Go to the Formidable -> Forms page and click "add new". Choose the Contact Us form template and click "Load Template".
|
278 |
|
279 |
-
Next,
|
280 |
|
281 |
-
|
282 |
|
283 |
= My contact forms are not sending emails. Why not? =
|
284 |
-
|
285 |
When you do not receive emails from your contact forms, try the following steps:
|
286 |
|
287 |
-
1. Double check
|
288 |
-
2.
|
289 |
-
3. Check your SPAM box
|
290 |
-
4. Try a different email address in your contact form settings.
|
291 |
-
5. Install WP Mail SMPT or another similar plugin and configure the SMTP settings.
|
292 |
-
6. If none of these steps fix the
|
293 |
-
7. <a href="https://formidableforms.com/wordpress-not-sending-emails-smtp/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Read more about WordPress emails not sending</a> in our blog.
|
294 |
|
295 |
-
=
|
296 |
|
297 |
-
|
|
|
298 |
|
299 |
-
<a href="https://formidableforms.com/formidable-faqs/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">See more contact form
|
300 |
|
301 |
-
= What
|
302 |
-
Formidable Forms drag & drop form builder combined with our
|
303 |
|
304 |
* Simple Contact Forms
|
305 |
* Advanced Contact Forms
|
@@ -327,8 +334,8 @@ Formidable Forms drag & drop form builder combined with our addons is the most p
|
|
327 |
* Product Purchase Forms
|
328 |
* Lead Capture Forms
|
329 |
* Newsletter Signup Forms
|
330 |
-
* MailChimp Forms
|
331 |
-
* AWeber Forms
|
332 |
* Constant Contact Forms
|
333 |
* GetResponse Signup Forms
|
334 |
* MailPoet Newsletter Signup Forms
|
@@ -356,24 +363,25 @@ Formidable Forms drag & drop form builder combined with our addons is the most p
|
|
356 |
* Poll Forms
|
357 |
* Quiz Forms
|
358 |
* Members Only Contact Form
|
|
|
|
|
|
|
|
|
|
|
|
|
359 |
|
360 |
-
= I'd like access to all form, view, and reporting features. How can I get them? =
|
361 |
-
|
362 |
|
363 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
364 |
= 3.04.02 =
|
365 |
* New: When HTML5 is used, auto add the http in a url field if it is omitted by the user
|
366 |
|
367 |
-
= 3.04.01 =
|
368 |
-
* New: When a form includes a user ID field, include helpers in the Advanced tab to get data from the user profile for use in emails and other form actions.
|
369 |
-
* Code: Refactor and clean up the code for the Advanced tab in the form settings sidebar
|
370 |
-
* Code: Add frm_advanced_helpers hook to move some Advanced shortcode examples to Pro
|
371 |
-
* Code: Add frm_field_code_tab hook to add extra shortcodes in the customization sidebar for a single field
|
372 |
-
* Update translations
|
373 |
-
|
374 |
-
= 3.04 =
|
375 |
-
* New: Add option to duplicate a form action
|
376 |
-
* New: Add option to turn form actions on or off
|
377 |
-
* New: Add frm_is_multiple_select hook
|
378 |
-
|
379 |
<a href="https://raw.githubusercontent.com/Strategy11/formidable-forms/master/changelog.txt">See changelog for all versions</a>
|
1 |
+
=== Contact Forms, Surveys & Quiz Forms Plugin by Formidable Forms Builder for WordPress ===
|
2 |
Contributors: formidableforms, sswells, srwells, jamie.wahlin
|
3 |
+
Tags: forms, contact form, form builder, survey, form maker, form, form creator
|
4 |
+
Requires at least: 4.5
|
5 |
+
Tested up to: 5.0
|
6 |
Requires PHP: 5.3
|
7 |
+
Stable tag: 3.04.03
|
8 |
|
9 |
+
The most advanced WordPress forms plugin. Go beyond contact forms with our drag & drop form builder for surveys, quiz forms, and more.
|
10 |
|
11 |
== Description ==
|
12 |
+
= The Most Powerful WordPress form builder plugin on the market =
|
13 |
+
We built <a href="https://formidableforms.com/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Formidable Forms</a> to offer the "first-ever" solutions-focused WordPress form plugin on the market. You can use our drag & drop WordPress form builder plugin to create contact forms, surveys, quiz forms, registration forms, payment forms, purchase forms, email marketing forms, and just about any other form you can imagine.
|
14 |
|
15 |
+
At Formidable Forms, creating the most extendable form builder plugin is our #1 priority, so you save time when building even the most advanced forms. Unlike other WordPress form maker plugins that focus solely on building contact forms, we believe in allowing our users to push the limits and create complex forms quickly!
|
16 |
|
17 |
+
Before we take a deep-dive into the features of the powerful Formidable form builder plugin, you should know that Formidable Forms is 100% mobile responsive so your contact forms and all other types of forms will always look great on all devices (desktop, laptop, tablets, and smartphones).
|
18 |
|
19 |
+
On top of that, we have optimized Formidable contact forms and advanced forms for speed and maximum server performance. Whether you use Formidable Forms to build a contact form on your own site or an advanced form for your client, you can confidently say that it's one of the FASTEST WordPress form builders on the market.
|
20 |
|
21 |
> <strong>Formidable Forms Pro</strong><br />
|
22 |
+
> This form builder plugin is the lite version of the Formidable Forms Pro plugin that comes with all the contact form and advanced form features you will ever need. Our premium form features include repeater fields, email subscription forms, multi-page contact forms, file upload forms, smart forms with conditional logic, payment integrations, form templates, form relationships, cascading dropdown fields, front-end form editing, powerful Formidable Views to display data in web applications, and far more than just contact forms. <a href="https://formidableforms.com/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend" title="Formidable Forms">Click here to purchase the most advanced premium WordPress form builder plugin now!</a>
|
23 |
|
24 |
You can start with our pre-built contact form template or create totally custom forms from scratch all with an easy-to-use drag & drop form builder interface.
|
25 |
|
29 |
|
30 |
= Drag & Drop Contact Form Maker and Advanced Form Builder =
|
31 |
|
32 |
+
The Formidable Forms drag & drop form builder allows you to quickly create unlimited contact forms, surveys, quizzes, registration forms, and just about any other type of form that you want.
|
33 |
|
34 |
+
Our form builder plugin comes with all the powerful form fields that you need to create a solution-focused form, fast!
|
35 |
|
36 |
* Single line text (for names, phone numbers, addresses, and more)
|
37 |
* Email
|
46 |
* User ID
|
47 |
* HTML block
|
48 |
|
|
|
|
|
|
|
|
|
49 |
= Complete Entry Management for Contact Forms and Surveys =
|
50 |
|
51 |
Formidable Forms allows you to view all your contact form and survey entries right from your WordPress dashboard.
|
52 |
|
53 |
+
Once a user submits a contact form, their response is automatically stored in your WordPress database.
|
54 |
|
55 |
+
Formidable Forms is **100% GDPR-friendly**. You can turn off IP tracking or stop saving contact form submissions entirely. Alternatively, you can add a GDPR checkbox field to your contact forms and payment forms to collect consent.
|
56 |
|
57 |
Need to import your contact form leads to another service like MailChimp? No problem. **Export contact form leads to a CSV**, open it in Excel, and import anywhere.
|
58 |
|
59 |
+
You can also configure unlimited form email notifications and autoresponders triggered by contact form submissions.
|
60 |
+
|
61 |
+
On top of that, you can easily customize the contact form success message the user sees after they submit the form, or redirect them to another page for your more advanced form needs.
|
62 |
+
|
63 |
+
= The Only Form Maker Plugin with an Advanced Form Styler =
|
64 |
+
|
65 |
+
With our built-in form styler, you can instantly customize the look and feel of your contact forms. With just a few clicks, your contact form, email form, and advanced forms can be transformed to match your website design.
|
66 |
|
67 |
+
By default, Formidable Forms applies a single styling template to all Formidable contact forms and advanced forms on your site. But if you want a custom form style for each individual contact form, sidebar form, and registration form, you can upgrade to Formidable Forms Pro.
|
68 |
|
69 |
= Build Smart Surveys with Beautiful Reports =
|
70 |
|
71 |
+
Aside from simple contact forms, Formidable Forms comes with a built-in survey feature, so you can quickly create powerful surveys and see beautiful reports.
|
72 |
|
73 |
+
The best part is that you can do this all within Formidable Forms without any third-party tools.
|
74 |
|
75 |
= Quickly Create Advanced Registration Forms for Any Use Case =
|
76 |
|
77 |
+
Whether you need to create a youth sport team registration form, event registration form, or church retreat registration form, Formidable Forms has got you covered. Unlike other contact form plugins, Formidable Forms comes with a repeater field that allows you to create the most powerful registration forms.
|
78 |
|
79 |
+
Then, our marketing integrations and APIs can send the contact form and registration form data anywhere you want.
|
|
|
|
|
80 |
|
81 |
= Accept Credit Cards and Easily Collect Payments =
|
82 |
|
83 |
+
By now, you probably already realize the theme that Formidable Forms is more than just a contact form plugin. You can use Formidable Forms to create payment forms and accept credit card payments right from your website.
|
84 |
|
85 |
+
We offer seamless integration with PayPal, Stripe, and Authorize.net, so you can create order forms and purchase forms with our drag & drop form builder.
|
86 |
|
87 |
+
You can even use Formidable Forms to create WooCommerce forms with custom fields (more on that later).
|
88 |
|
89 |
= Grow Your Business with Marketing Integrations =
|
90 |
|
91 |
+
We know that marketing is the key to grow your business. That's why Formidable Forms allows you to connect contact forms, payment forms, and advanced forms with a marketing platform of your choice.
|
92 |
|
93 |
We integrate with popular email marketing services like:
|
94 |
|
101 |
* Salesforce
|
102 |
* HubSpot
|
103 |
|
104 |
+
On top of these native integrations, we also integrate with Zapier, so you can quickly route your contact form data to over 1,000+ more services with just a few clicks.
|
105 |
|
106 |
= Create Data-Driven Web Applications with Formidable Views =
|
107 |
|
108 |
+
Formidable Views are by far the most powerful feature that makes Formidable far more than just a form builder plugin. Views allow you to flexibly display any submitted form data on the front-end of your website.
|
109 |
|
110 |
Our customers use Formidable Views to create data-driven web applications like real estate listings, employment listings, event calendars, business or member directories, job boards, and other searchable databases.
|
111 |
|
112 |
+
As you can see, Formidable Forms is not your average contact form plugin. It's a true all-in-one WordPress form solution.
|
113 |
|
114 |
= Increase Your Sales with WooCommerce Product Forms =
|
115 |
|
116 |
+
Formidable Forms is the only WordPress form builder plugin that offers extensive integration with WooCommerce.
|
117 |
|
118 |
Our goal is to empower you to build powerful WooCommerce product forms, so you can increase your store sales.
|
119 |
|
120 |
+
You can use Formidable Forms to add a WooCommerce Product configurator with custom calculation fields, and automatically send the data to the WooCommerce cart with variable pricing options.
|
121 |
|
122 |
Need your customers to upload a file when they purchase a product? No problem. Simply drag & drop a file upload field into your WooCommerce form and you're done.
|
123 |
|
124 |
+
You can even show submitted form values in the WooCommerce purchase receipt emails as well as trigger SMS text messages or marketing integrations when an order is completed.
|
125 |
|
126 |
+
And of course, you can use Formidable Forms to add a simple contact form on your WooCommerce store.
|
127 |
|
128 |
= Build Powerful Quiz Forms & Calculators =
|
129 |
|
130 |
+
Along with a contact form, you can also use the Formidable form builder plugin to create quiz forms and calculator forms.
|
131 |
|
132 |
+
Here are some example web calculators you can quickly add to your site:
|
133 |
|
134 |
* Advanced Mortgage Calculator
|
135 |
* Car Payment Calculator
|
136 |
* BMI Calculator
|
137 |
* User Age Calculator
|
138 |
* Online Quote Calculator
|
139 |
+
* Net Promoter Score (NPS) Survey Calculator
|
140 |
|
141 |
+
... and our powerful form calculations allow you to build just about any other type of calculator form.
|
142 |
|
143 |
+
If that wasn't enough, you can also use our Formidable Form builder to create quizzes on your site and display results. This is great for membership sites, LMS, or just for viral quizzes to grow your email list.
|
144 |
|
145 |
+
Our goal is to go beyond simple contact forms and allow users to create form-based solutions without any code :)
|
146 |
|
147 |
= Create WordPress User Registration Forms, Profile Forms, and More =
|
148 |
|
149 |
If you run a WordPress membership site, then you need more advanced forms along with your contact form.
|
150 |
|
151 |
+
The Formidable Form builder plugin allows you to customize your WordPress user registration forms, so you can collect additional data when the user profile is created.
|
152 |
|
153 |
+
With our front-end form editing, you can also build custom profile forms and allow users to keep their profile updated, or even progressively add to the profile from a set of forms, from the first contact form to the last payment form.
|
154 |
|
155 |
+
Our front-end form editing feature is unique to us, and you will not find any other WordPress contact form plugin offering such a solution with the level of extendability that we do.
|
156 |
|
157 |
= Beautiful Graphs and Reports to Help You Analyze and Showcase Data =
|
158 |
|
159 |
+
We believe that data alone does no good if you can't analyze it. That's why we make it easy for you to analyze your contact form, survey, quiz, calculator, and other form data with beautiful graphs and reports.
|
160 |
|
161 |
+
You can even showcase form data on the front-end of your website by embedding graphs in your WordPress posts or pages.
|
162 |
|
163 |
= All the Advanced Form Fields and Features You Need to Grow Your Business =
|
164 |
|
165 |
+
Formidable Forms goes far above and beyond contact forms to offer all the advanced form fields and features you need to grow your business.
|
166 |
|
167 |
This includes things like multi-page forms, save and continue forms, cascading form fields, powerful conditional logic, partial form submissions, invisible spam protection, front-end user post submission, calculators, user-tracking, and so much more.
|
168 |
|
169 |
+
We're on a mission to offer an all-in-one solution-focused WordPress form plugin, so you don't have to install 5 plugins alongside your contact form maker plugin to do everything you want.
|
170 |
|
171 |
+
= Extend and Customize Your Forms - Developer's Dream Come True =
|
172 |
|
173 |
+
Formidable Forms is the form plugin of choice for smart developers, freelancers, and agencies because it helps them build complex form solutions and basic contact forms quickly and defy the limits imposed by time and knowledge.
|
174 |
|
175 |
Our goal is to help you build complex websites with low overhead. We believe big projects don't always need big resources.
|
176 |
|
177 |
+
That's why we made Formidable Forms the most extendable WordPress form builder plugin on the market.
|
178 |
|
179 |
+
You can easily route your data from contact forms and advanced forms with our powerful API. Formidable Views allow you to display form data anywhere on the front-end, so you can quickly create data-driven web applications.
|
180 |
|
181 |
+
On top of that, our hooks and filters allow you to completely extend Formidable Forms to meet your needs. We even include hundreds of code examples in our docs to give you the confidence to get started.
|
182 |
|
183 |
= Full Formidable Forms Feature List =
|
184 |
|
185 |
+
Since Formidable Forms is not your average WordPress contact form plugin, this feature list is going to be very long. Grab a cup of coffee and read through, or just install the most powerful WordPress form maker plugin, your choice :)
|
186 |
+
|
187 |
+
* <a href="https://formidableforms.com/features/drag-drop-form-builder/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Online drag and drop form builder</a>. Build everything from contact forms and email forms to calculators, registration forms, and complex online forms. Make amazing forms the easy way with a simple WordPress drag and drop form builder. No code required.
|
188 |
+
* <a href="https://formidableforms.com/features/display-form-data-views/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Display form data with Views</a>. Other WordPress form builder plugins only let you collect data. Formidable Forms lets you format, filter, and display form submissions in custom Formidable Views on the front-end of your site. Views turn forms into solutions. Job boards, event calendars, business directories, ratings systems, and management solutions. If you can come up with it, most likely Formidable can handle it.
|
189 |
+
* <a href="https://formidableforms.com/features/dynamically-add-form-fields/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Repeating field groups (repeaters)</a>. Allow your users to add sets of fields to registration forms, application forms, email forms, calculator forms, and other advanced forms on the fly.
|
190 |
+
* <a href="https://formidableforms.com/features/wordpress-multiple-file-upload-form/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Drag and drop multiple file upload forms</a>. Easily upload documents, files, photos, and music, with any number of files in contact forms, job application forms (resumes), WordPress User Profile Forms (avatars), registration forms, get a quote forms, and other advanced forms.
|
191 |
+
* <a href="https://formidableforms.com/features/wordpress-multi-step-form/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Multi-step forms with progress bars</a>. Want to increase conversion rates and collect more leads with smart contact forms? Create beautiful paged forms with rootline and progress indicators. Add conditional logic to page breaks for smart branching forms.
|
192 |
+
* <a href="https://formidableforms.com/features/cascading-dropdown-lookup-field/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Cascading lookup fields</a>. Change values in other form fields or drill down through options to reveal a final value. Designed for country/state/city fields in contact forms and registration forms and year/make/model fields in auto forms, or to get a price from a separate product form.
|
193 |
+
* Datepicker fields with advanced <a href="https://formidableforms.com/downloads/datepicker-options/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">datepicker options</a> including blackout dates, dynamic minimum and maximum dates, and inline calendars. Our datepickers are great for basic online booking forms, event registration forms, and specialized contact forms.
|
194 |
+
* Create relationships with Dynamic fields. Populate form fields from other forms and link data between two forms without duplication. Form relationships are helpful in a huge number of cases including linking employment application forms to a job, quiz forms to a class, event registration forms to an event, sports registration forms to a team, and contact forms to a department.
|
195 |
+
* Add password fields with a password strength meter in WordPress user registration forms, profile forms, and change password forms.
|
196 |
+
* Collect reviews with star ratings in feedback forms, recipe ratings forms, product review forms, event rating forms, customer testimonial forms, and yes, even contact forms. Then display and share the ratings in Formidable Views.
|
197 |
+
* Add more field types with our form creator including Rich text fields, Time fields, Scale fields, Slider fields, Toggle fields, Tags fields, Address fields, and Section headings.
|
198 |
+
* <a href="https://formidableforms.com/features/confirm-email-address-password-wordpress-form/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Confirmation fields</a>. Double check email addresses or passwords and prevent typos from cannibalizing your contact form leads.
|
199 |
+
* <a href="https://formidableforms.com/features/conditional-logic-wordpress-forms/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Conditional logic for smart forms</a>. Show or hide fields in contact forms and advanced forms based on user selections or user roles. Make complex forms simple and increase form conversion rates.
|
200 |
+
* <a href="https://formidableforms.com/features/email-autoresponders-wordpress/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Send email notifications & autoresponders</a>. Automatically let clients know you received their contact form message. Then create customized email notifications for multiple recipients and get info from a contact form or email form to those who need it.
|
201 |
+
* Email routing: Conditionally send multiple autoresponder emails and notifications based on values in contact forms, email forms, payment forms, and registration forms.
|
202 |
+
* <a href="https://formidableforms.com/features/wordpress-calculated-fields-form/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Calculator forms</a>. Create basic and complex calculations, and even combine text from multiple fields for a mortgage calculator, auto loan calculator, or many other calculator forms. Even a contact form could benefit from calculations for easy quotes and price estimates.
|
203 |
+
* <a href="https://formidableforms.com/features/wordpress-visual-form-styler/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Visual form style creator</a>. Our form creator for contact forms, calculators, and other online forms not only allows you to build forms, but also create branded forms that match your site. Change colors, borders, padding and much more without any code.
|
204 |
+
* <a href="https://formidableforms.com/features/flexible-layouts-responsive-forms/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Flexible form layout design</a>. Build mobile responsive contact forms and advanced form layouts with multiple fields in a row by using our CSS layout classes.
|
205 |
+
* <a href="https://formidableforms.com/features/wordpress-mobile-friendly-responsive-forms/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Mobile-friendly, responsive forms</a>. All of our forms are sized automatically for every screen size. Ensure that everyone can see and submit your contact forms and other online forms from any device.
|
206 |
+
* <a href="https://formidableforms.com/features/user-submitted-posts-wordpress-forms/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">User submitted front-end posts and pages</a>. Create and edit WordPress posts, pages, and even custom post types from your front-end online forms. Send user-generated content quickly from a post creation form to a page.
|
207 |
+
* <a href="https://formidableforms.com/features/form-entry-management-wordpress/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Simple entry management</a>. Flexibly and powerfully display, edit, and delete form entries from anywhere on your site, and specify who has permission to do so. Your logged-in users can fully manage their personal journal entries, weight tracking, guest blog posts, RSVP status, and whatever else you need, far and above just contact forms.
|
208 |
* <a href="https://formidableforms.com/features/front-end-editing-wordpress/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">WordPress front-end editing</a>. Allow users to edit their form entries and posts from the front-end of your site. Create an online journaling platform, member directory, classified ads, community recipes, and more.
|
209 |
+
* Logged-in users can <a href="https://formidableforms.com/features/save-and-continue-partial-submissions/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">save and continue partial form submissions</a>. Whether it's a contact form or a long multi-paged form, users can save form progress and pick up right where they left off.
|
210 |
+
* <a href="https://formidableforms.com/features/create-a-graph-wordpress-forms/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Graphs and charts for data visualization</a>. Display statistics from surveys, polls, quiz forms, questionnaires, and advanced forms. Or graph the data in a variety of ways that automatically update as new form data is submitted (great for weight tracking over time).
|
211 |
+
* Form permission settings. Limit visibility of specialized contact forms and advanced forms based on user role.
|
212 |
+
* Form entry limits. Limit a contact form, registration form, survey, quiz, or directory submissions to only allow one entry per user, IP, or cookie.
|
213 |
+
* Form scheduling. Open and close event registration forms and signup forms on a specific date. Or close registration forms when the seat limit or team size has been reached. Want a contact form for questions about a planned event that auto closes when the event starts? No problem.
|
214 |
+
* Conditionally redirect to a custom page after a contact form, custom search form, quiz form, calculator form, payment form, support ticket form, or other online form is submitted. Help clients get the answers they are looking for, or show a tailored result based on their form selections.
|
215 |
+
* We believe that not only contact forms, but also advanced forms should be extendable to meet your needs. So we give you access to <a href="https://formidableforms.com/features/customize-form-html-wordpress/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">customize the form HTML</a> (like Contact Form 7), but still keep the ease and speed of a drag & drop form builder plugin. Our team labors for simplicity without sacrificing flexibility.
|
216 |
+
* <a href="https://formidableforms.com/features/importing-exporting-wordpress-forms/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Import and export forms, form submissions, styles, and views</a>. Quickly move forms, entries, views and styles to another site. Need to export leads from a contact form to another service? Check.
|
217 |
+
* <a href="https://formidableforms.com/features/wordpress-form-templates/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Form templates for instant form building</a>. Get started quickly with the most advanced form creator that includes form templates, style templates, and Formidable View templates. Our WordPress form generator makes it FAST to build contact forms, job application forms, and other online forms.
|
218 |
+
* Import our <a href="https://formidableforms.com/downloads/category/form-templates/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">pre-built form/view templates</a> as a shortcut to a final product. Our growing form template library includes contact forms, payment forms, calculators, a WooCommerce product creator, and more.
|
219 |
* <a href="https://formidableforms.com/features/wcag-accessible-forms/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">WCAG accessible forms with A11Y compliance</a>. Don't alienate your audience. Ensure your contact forms, surveys, quiz forms, lead capture forms, and other online forms are compliant and available to anyone.
|
220 |
+
* <a href="https://formidableforms.com/features/invisible-spam-protection/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Invisible SPAM protection</a>. Don't waste time sorting through SPAM from your contact form. Get instant and powerful anti-spam features from honeypot, invisible reCAPTCHA, Akismet, and the WordPress comment blacklist.
|
221 |
+
* <a href="https://formidableforms.com/features/fill-out-forms-automatically/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Fill out forms automatically</a> with values from the user profile or posts (i.e. custom fields). When a user is logged in, prefill known values like first name, last name, and email address in a contact form.
|
222 |
+
* <a href="https://formidableforms.com/features/white-label-form-builder-wordpress/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">White label form builder</a>. Replace the Formidable Forms branding with your own in the admin area. Plus, we never show "powered by" links in your free contact forms or online forms.
|
223 |
+
* <a href="https://formidableforms.com/downloads/user-registration/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">WordPress user registration forms</a>. Register WordPress users, edit profiles, reset passwords, and add a login form. When using WordPress multisite forms, you can even allow logged in and logged out users to create new subdomains.
|
224 |
+
* <a href="https://formidableforms.com/downloads/signature/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Digital signature forms</a>. Eliminate paper forms with a digital signature field in contact forms, application forms, registration forms, or advanced forms.
|
225 |
+
* <a href="https://formidableforms.com/downloads/autoresponder/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Form action automation</a>. Schedule form email notifications, SMS messages, and webhooks to trigger at a later time. You can automatically delete guest posts after 30 days, send weekly digest emails, trigger happy birthday text messages from a contact form or lead form and much more.
|
226 |
+
* <a href="https://formidableforms.com/downloads/formidable-api/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Formidable Forms API</a>. Send form entries to other REST APIs and add a set of form webhooks. This includes the option to send form entries from one Formidable site to another.
|
227 |
+
* <a href="https://formidableforms.com/downloads/quiz-maker/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Quiz maker forms</a>. Write your quiz form questions, submit an entry as the quiz key, and publish the quiz on a page. Then all the quiz form grading is automatically done for you.
|
228 |
+
* <a href="https://formidableforms.com/support/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">World class support</a>. Have questions or need guidance on how to use our contact form builder or set up your web application? We are happy to help. Our passion with Formidable Forms is to help you <strong>defy the limits</strong> so you can take on bigger projects, earn more clients, and grow your business.
|
229 |
+
|
230 |
+
= Payment Forms, Form APIs, and Marketing Integrations =
|
231 |
+
In addition to all the form builder features listed above, power up contact forms, registration forms, and calculator forms with these integrations.
|
232 |
+
|
233 |
+
* <a href="https://formidableforms.com/downloads/paypal-standard/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">PayPal Payment Forms</a>. Automate your business by collecting instant payments and recurring payments from clients. Collect information, calculate a total, and send clients to PayPal from your payment forms.
|
234 |
+
* <a href="https://formidableforms.com/downloads/stripe/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Stripe Payment Forms</a>. Keep users on your site while collecting payments from a credit card form. Select from one time and recurring charges in order forms, donation forms, and contact forms.
|
235 |
+
* <a href="https://formidableforms.com/downloads/authorize-net-aim/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Authorize.net AIM Payment Forms</a>. Process one-time payments in order forms, registration forms, and calculator forms with Authorize.net AIM.
|
236 |
+
* <a href="https://formidableforms.com/downloads/woocommerce/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">WooCommerce product configurator</a>. Add custom fields to a WooCommerce product form and collect extra data when a product is added to the cart. Use form calculations for variable pricing, upload a file with the purchase, and send custom emails when a purchase is completed.
|
237 |
+
* <a href="https://formidableforms.com/downloads/mailchimp/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">MailChimp Forms</a>. Add and update leads in a MailChimp email marketing list from lead forms, contact forms, order forms, and email forms.
|
238 |
* <a href="https://formidableforms.com/downloads/constant-contact/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Constant Contact Forms</a>. Create leads automatically in Constant Contact with newsletter signup forms and contact forms.
|
239 |
+
* <a href="https://formidableforms.com/downloads/getresponse-wordpress-plugin/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">GetResponse Forms</a>. Collect leads in contact forms, add them to GetResponse, and trigger GetResponse marketing automations.
|
240 |
+
* <a href="https://formidableforms.com/downloads/aweber/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">AWeber Forms</a>. Subscribe users to an AWeber mailing list when a newsletter signup form or contact form is submitted.
|
241 |
* <a href="https://formidableforms.com/downloads/mailpoet-newsletters/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">MailPoet Newsletter forms</a>. Fill your email marketing lists from newsletter signup forms and contact forms. Then send WordPress newsletters from your own site using MailPoet.
|
242 |
+
* <a href="https://formidableforms.com/downloads/highrise/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Highrise Forms</a>. Add leads to your Highrise CRM account any time a WordPress contact form, registration form, or payment form is submitted.
|
243 |
+
* <a href="https://formidableforms.com/downloads/salesforce/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Salesforce Forms</a>. Create leads, contacts, and any other Salesforce objects directly from your contact page and advanced forms.
|
244 |
+
* <a href="https://formidableforms.com/downloads/activecampaign-wordpress-plugin/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">ActiveCampaign Forms</a>. Let your contact form pull double duty as a payment form, post creation form, user registration form, and an ActiveCampaign integration.
|
245 |
+
* <a href="https://formidableforms.com/downloads/hubspot-wordpress/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">HubSpot Forms</a>. Route contact form and lead form data from your WordPress forms to HubSpot CRM.
|
246 |
+
* <a href="https://formidableforms.com/downloads/twilio/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Twilio for SMS Forms</a>. Collect votes and poll responses via SMS text or send SMS notifications when form entries are submitted. Get notified instantly when an important contact form or payment form is completed, and let your form leads know you received their message.
|
247 |
* <a href="https://formidableforms.com/downloads/wp-multilingual/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">WPML Forms</a>. Translate contact forms, registration forms, and advanced forms into multiple languages using our integrated multilingual forms plugin.
|
248 |
+
* <a href="https://formidableforms.com/downloads/polylang/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Polylang Forms</a>. Get the form creator with Polylang bilingual or multilingual contact forms. Use the form builder to make your form, then translate it without duplicate forms.
|
249 |
+
* <a href="https://formidableforms.com/downloads/zapier/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Zapier Forms</a>. Connect with hundreds of different applications through Zapier. Insert a new row in a Google docs spreadsheet, post on Twitter, or upload a Dropbox file from a contact form, calculator form, payment form, and more. With Zapier, you have the option to trigger thousands of actions from a lead form, quote form, quiz form, and other online forms.
|
250 |
+
* <a href="https://formidableforms.com/downloads/bootstrap/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Bootstrap Form Styles</a>. Instantly add Bootstrap form styling to contact forms, registration forms, surveys, and advanced forms.
|
251 |
+
* <a href="https://formidableforms.com/downloads/bootstrap-modal/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Bootstrap Modal Form</a>. Open contact forms, login forms, Formidable views, shortcodes, and other content in a Bootstrap modal popup.
|
252 |
+
|
253 |
+
After reading this feature list, you can probably imagine why Formidable Forms is the most advanced WordPress form plugin on the market, designed for far more than just contact forms.
|
254 |
+
|
255 |
+
Give Formidable Forms a try.
|
256 |
|
257 |
+
Want to unlock the full power? <a href="https://formidableforms.com/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Upgrade to our Pro forms</a> to get all the features for smart contact forms and full web applications.
|
258 |
|
259 |
+
= Form Plugin Credits =
|
260 |
+
This form builder plugin is created by Steve and Steph Wells and the amazing Formidable Forms Team.
|
261 |
|
262 |
+
Formidable Forms is part of the <a href="https://www.wpbeginner.com/">WPBeginner</a> accelerator with <a href="https://syedbalkhi.com/">Syed Balkhi</a> as an Advisor to our company.
|
263 |
|
264 |
== Installation ==
|
265 |
+
1. Go to the Plugins -> 'Add New' page in your WP admin area
|
266 |
2. Search for 'Formidable'
|
267 |
3. Click the 'Install Now' button
|
268 |
4. Activate the plugin through the 'Plugins' menu
|
269 |
5. Go to the Formidable Forms menu
|
270 |
+
6. Click the 'Add New' button to go to the form generator page and create a new contact form, email form, registration form, or advanced form
|
271 |
+
7. Insert your newly created contact form, quiz, survey, registration form, or advanced form on a Contact Us page, post, or widget using a shortcode [formidable id=x], Alternatively use `<?php echo FrmFormsController::show_form(2, $key = '', $title=true, $description=true); ?>` to add a contact form in a contact page template
|
272 |
|
273 |
== Screenshots ==
|
274 |
+
1. Build professional WP contact forms without any code.
|
275 |
+
2. Form builder plugin page for creating a contact form, survey, registration form, quote form, payment form, calculator form, quiz form, and many more.
|
276 |
+
3. Field Options and CSS Layout Classes on the form creator page
|
277 |
4. Field Options for checkbox fields in the form maker
|
278 |
+
5. View, create, edit, and delete entries on the back end from a contact form, employment application form, to do list, order form, and more.
|
279 |
6. Add a WordPress contact form into your sidebar with a widget
|
280 |
|
281 |
== Frequently Asked Questions ==
|
282 |
= How do I get started with the best WordPress contact form plugin? =
|
|
|
283 |
The fastest way to build a contact form is to use the contact form template we built for you. After you activate Formidable Forms, insert [formidable id=contact-form] on the WordPress page of your choice. That's it!
|
284 |
|
285 |
+
Want to make a new contact form? Go to the Formidable -> Forms page and click "add new". Choose the Contact Us form template on the form buider page and click "Load Template". Save your new contact form.
|
286 |
|
287 |
+
Next, edit or create a WordPress contact page for the contact form. Click the "Formidable" button to open the form shortcode builder. Choose your contact form and insert it into the WordPress page. Save the contact page for a beautiful WP contact form, ready to collect and store your leads.
|
288 |
|
289 |
+
Learn more about <a href="https://formidableforms.com/wordpress-contact-form-template-to-unique/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">using the contact form template</a>.
|
290 |
|
291 |
= My contact forms are not sending emails. Why not? =
|
|
|
292 |
When you do not receive emails from your contact forms, try the following steps:
|
293 |
|
294 |
+
1. Double check that your email address is present and correct in your Email form action on the form settings page of the form builder. The [admin_email] shortcode uses the email address from your WordPress Settings -> General page.
|
295 |
+
2. Are receiving other emails from your site (ie comment notifications, forgot password...)? If not, form emails will not work either.
|
296 |
+
3. Check your SPAM box.
|
297 |
+
4. Try a different email address in your contact form settings in the form builder.
|
298 |
+
5. Install WP Mail SMPT or another similar emailing plugin and configure the SMTP settings.
|
299 |
+
6. If none of these steps fix the contact form email problem and no other WP emails are going out, please contact your web host.
|
|
|
300 |
|
301 |
+
<a href="https://formidableforms.com/wordpress-not-sending-emails-smtp/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Read more about WordPress emails not sending from contact forms</a> in our blog.
|
302 |
|
303 |
+
= How do I edit the field names in the form maker? =
|
304 |
+
The contact form field labels and descriptions are changed with in-place edit in the form builder. Click on the label you would like to change and it will turn into a text field.
|
305 |
|
306 |
+
<a href="https://formidableforms.com/formidable-faqs/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">See more FAQs</a> for making an amazing contact form or advanced online form.
|
307 |
|
308 |
+
= What types of WordPress forms can I build with Formidable Forms? =
|
309 |
+
Formidable Forms drag & drop form builder combined with our add-ons is the most powerful contact form plugin and advanced form builder plugin on the market. Here are some types of WordPress forms you can create:
|
310 |
|
311 |
* Simple Contact Forms
|
312 |
* Advanced Contact Forms
|
334 |
* Product Purchase Forms
|
335 |
* Lead Capture Forms
|
336 |
* Newsletter Signup Forms
|
337 |
+
* MailChimp Signup Forms
|
338 |
+
* AWeber Contact Forms
|
339 |
* Constant Contact Forms
|
340 |
* GetResponse Signup Forms
|
341 |
* MailPoet Newsletter Signup Forms
|
363 |
* Poll Forms
|
364 |
* Quiz Forms
|
365 |
* Members Only Contact Form
|
366 |
+
* Advanced Mortgage Calculator
|
367 |
+
* Car Payment Calculator
|
368 |
+
* BMI Calculator
|
369 |
+
* User Age Calculator
|
370 |
+
* Online Quote Calculator
|
371 |
+
* Recipe Reviews Form
|
372 |
|
373 |
+
= I'd like access to all advanced form, view, and reporting features. How can I get them? =
|
374 |
+
To get access to more features, integrations, and support, <a href="https://formidableforms.com/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">upgrade to Formidable Forms Pro</a>. A Pro license gives you access to the full version of Formidable Forms for more advanced contact forms, Formidable Views, graphs and stats, priority support, and Formidable Forms Add-ons!
|
375 |
|
376 |
== Changelog ==
|
377 |
+
= 3.04.03 =
|
378 |
+
* New: Improved autoupdating and installation for form add-ons
|
379 |
+
* Tweak: Only show the form add-ons page to those who can activate plugins
|
380 |
+
* Fix: Radio button shadows had a box around them in some browsers
|
381 |
+
* Fix: Don't mark an entry as a duplicate when the second entry includes more fields than the first
|
382 |
+
* Code: Move deprecated code to its own folder
|
383 |
+
|
384 |
= 3.04.02 =
|
385 |
* New: When HTML5 is used, auto add the http in a url field if it is omitted by the user
|
386 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
387 |
<a href="https://raw.githubusercontent.com/Strategy11/formidable-forms/master/changelog.txt">See changelog for all versions</a>
|