Formidable Forms – Form Builder for WordPress - Version 5.0.11

Version Description

  • Fix: Required credit cards were causing an issue with JavaScript validation.
  • Fix: Empty required appointment fields were not properly validating with JavaScript.
Download this release

Release Info

Developer formidableforms
Plugin Icon 128x128 Formidable Forms – Form Builder for WordPress
Version 5.0.11
Comparing to
See all releases

Code changes from version 5.0.10 to 5.0.11

classes/controllers/FrmAddonsController.php CHANGED
@@ -5,6 +5,11 @@ if ( ! defined( 'ABSPATH' ) ) {
5
 
6
  class FrmAddonsController {
7
 
 
 
 
 
 
8
  public static function menu() {
9
  if ( ! current_user_can( 'activate_plugins' ) ) {
10
  return;
@@ -843,7 +848,7 @@ class FrmAddonsController {
843
  FrmAppHelper::permission_check( 'install_plugins' );
844
  check_ajax_referer( 'frm_ajax', 'nonce' );
845
 
846
- $url = FrmAppHelper::get_post_param( 'plugin', '', 'sanitize_text_field' );
847
  if ( FrmAppHelper::pro_is_installed() || empty( $url ) ) {
848
  wp_die();
849
  }
@@ -864,6 +869,18 @@ class FrmAddonsController {
864
  wp_die();
865
  }
866
 
 
 
 
 
 
 
 
 
 
 
 
 
867
  /**
868
  * @since 4.08
869
  */
@@ -929,9 +946,9 @@ class FrmAddonsController {
929
  * @since 3.04.02
930
  */
931
  protected static function install_addon() {
932
- require_once( ABSPATH . 'wp-admin/includes/class-wp-upgrader.php' );
933
 
934
- $download_url = FrmAppHelper::get_param( 'plugin', '', 'post', 'esc_url_raw' );
935
 
936
  // Create the plugin upgrader with our custom skin.
937
  $installer = new Plugin_Upgrader( new FrmInstallerSkin() );
@@ -941,7 +958,7 @@ class FrmAddonsController {
941
  wp_cache_flush();
942
 
943
  $plugin = $installer->plugin_info();
944
- if ( empty( $plugin ) ) {
945
  return array(
946
  'message' => 'Plugin was not installed. ' . $installer->result,
947
  'success' => false,
@@ -1023,7 +1040,7 @@ class FrmAddonsController {
1023
  protected static function install_addon_permissions() {
1024
  check_ajax_referer( 'frm_ajax', 'nonce' );
1025
 
1026
- if ( ! current_user_can( 'activate_plugins' ) || ! isset( $_POST['plugin'] ) ) {
1027
  echo json_encode( true );
1028
  wp_die();
1029
  }
@@ -1081,9 +1098,7 @@ class FrmAddonsController {
1081
  * @since 4.08
1082
  */
1083
  public static function install_addon_api() {
1084
- // Sanitize when it's used to prevent double sanitizing.
1085
- // phpcs:ignore WordPress.Security.ValidatedSanitizedInput
1086
- $_POST['plugin'] = isset( $_REQUEST['file_url'] ) ? $_REQUEST['file_url'] : ''; // Set for later use
1087
 
1088
  $error = esc_html__( 'Could not install an upgrade. Please download from formidableforms.com and install manually.', 'formidable' );
1089
 
@@ -1104,7 +1119,7 @@ class FrmAddonsController {
1104
  if ( empty( self::get_pro_license() ) && function_exists( 'load_formidable_pro' ) ) {
1105
  load_formidable_pro();
1106
  $license = stripslashes( FrmAppHelper::get_param( 'key', '', 'request', 'sanitize_text_field' ) );
1107
- if ( empty( $license ) ) {
1108
  return array(
1109
  'success' => false,
1110
  'error' => 'That site does not have a valid license key.',
5
 
6
  class FrmAddonsController {
7
 
8
+ /**
9
+ * @var string $plugin
10
+ */
11
+ protected static $plugin;
12
+
13
  public static function menu() {
14
  if ( ! current_user_can( 'activate_plugins' ) ) {
15
  return;
848
  FrmAppHelper::permission_check( 'install_plugins' );
849
  check_ajax_referer( 'frm_ajax', 'nonce' );
850
 
851
+ $url = self::get_current_plugin();
852
  if ( FrmAppHelper::pro_is_installed() || empty( $url ) ) {
853
  wp_die();
854
  }
869
  wp_die();
870
  }
871
 
872
+ /**
873
+ * @since 5.0.10
874
+ *
875
+ * @return string
876
+ */
877
+ protected static function get_current_plugin() {
878
+ if ( ! isset( self::$plugin ) ) {
879
+ self::$plugin = FrmAppHelper::get_param( 'plugin', '', 'post', 'esc_url_raw' );
880
+ }
881
+ return self::$plugin;
882
+ }
883
+
884
  /**
885
  * @since 4.08
886
  */
946
  * @since 3.04.02
947
  */
948
  protected static function install_addon() {
949
+ require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
950
 
951
+ $download_url = self::get_current_plugin();
952
 
953
  // Create the plugin upgrader with our custom skin.
954
  $installer = new Plugin_Upgrader( new FrmInstallerSkin() );
958
  wp_cache_flush();
959
 
960
  $plugin = $installer->plugin_info();
961
+ if ( ! $plugin ) {
962
  return array(
963
  'message' => 'Plugin was not installed. ' . $installer->result,
964
  'success' => false,
1040
  protected static function install_addon_permissions() {
1041
  check_ajax_referer( 'frm_ajax', 'nonce' );
1042
 
1043
+ if ( ! current_user_can( 'activate_plugins' ) || ! self::get_current_plugin() ) {
1044
  echo json_encode( true );
1045
  wp_die();
1046
  }
1098
  * @since 4.08
1099
  */
1100
  public static function install_addon_api() {
1101
+ self::$plugin = FrmAppHelper::get_param( 'file_url', '', 'request', 'esc_url_raw' );
 
 
1102
 
1103
  $error = esc_html__( 'Could not install an upgrade. Please download from formidableforms.com and install manually.', 'formidable' );
1104
 
1119
  if ( empty( self::get_pro_license() ) && function_exists( 'load_formidable_pro' ) ) {
1120
  load_formidable_pro();
1121
  $license = stripslashes( FrmAppHelper::get_param( 'key', '', 'request', 'sanitize_text_field' ) );
1122
+ if ( ! $license ) {
1123
  return array(
1124
  'success' => false,
1125
  'error' => 'That site does not have a valid license key.',
classes/helpers/FrmAppHelper.php CHANGED
@@ -11,7 +11,7 @@ class FrmAppHelper {
11
  /**
12
  * @since 2.0
13
  */
14
- public static $plug_version = '5.0.10';
15
 
16
  /**
17
  * @since 1.07.02
11
  /**
12
  * @since 2.0
13
  */
14
+ public static $plug_version = '5.0.11';
15
 
16
  /**
17
  * @since 1.07.02
classes/models/FrmFormApi.php CHANGED
@@ -64,7 +64,7 @@ class FrmFormApi {
64
  }
65
 
66
  $addons = $this->get_cached();
67
- if ( ! empty( $addons ) ) {
68
  return $addons;
69
  }
70
 
@@ -82,22 +82,23 @@ class FrmFormApi {
82
  )
83
  );
84
  if ( is_array( $response ) && ! is_wp_error( $response ) ) {
85
- $addons = $response['body'];
86
- if ( ! empty( $addons ) ) {
87
- $addons = json_decode( $addons, true );
88
-
89
- foreach ( $addons as $k => $addon ) {
90
- if ( ! isset( $addon['categories'] ) ) {
91
- continue;
92
- }
93
- $cats = array_intersect( $this->skip_categories(), $addon['categories'] );
94
- if ( ! empty( $cats ) ) {
95
- unset( $addons[ $k ] );
96
- }
97
- }
98
 
99
- $this->set_cached( $addons );
 
 
 
 
 
 
 
100
  }
 
 
101
  }
102
 
103
  if ( empty( $addons ) ) {
64
  }
65
 
66
  $addons = $this->get_cached();
67
+ if ( is_array( $addons ) ) {
68
  return $addons;
69
  }
70
 
82
  )
83
  );
84
  if ( is_array( $response ) && ! is_wp_error( $response ) ) {
85
+ $addons = $response['body'] ? json_decode( $response['body'], true ) : array();
86
+
87
+ if ( ! is_array( $addons ) ) {
88
+ $addons = array();
89
+ }
 
 
 
 
 
 
 
 
90
 
91
+ foreach ( $addons as $k => $addon ) {
92
+ if ( ! isset( $addon['categories'] ) ) {
93
+ continue;
94
+ }
95
+ $cats = array_intersect( $this->skip_categories(), $addon['categories'] );
96
+ if ( ! empty( $cats ) ) {
97
+ unset( $addons[ $k ] );
98
+ }
99
  }
100
+
101
+ $this->set_cached( $addons );
102
  }
103
 
104
  if ( empty( $addons ) ) {
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: 5.0.10
6
  Plugin URI: https://formidableforms.com/
7
  Author URI: https://formidableforms.com/
8
  Author: Strategy11
2
  /*
3
  Plugin Name: Formidable Forms
4
  Description: Quickly and easily create drag-and-drop forms
5
+ Version: 5.0.11
6
  Plugin URI: https://formidableforms.com/
7
  Author URI: https://formidableforms.com/
8
  Author: Strategy11
js/formidable.js CHANGED
@@ -262,7 +262,7 @@ function frmFrontFormJS() {
262
  fieldID = '',
263
  fileID = field.getAttribute( 'data-frmfile' );
264
 
265
- if ( field.type === 'hidden' && fileID === null ) {
266
  return errors;
267
  }
268
 
@@ -313,7 +313,7 @@ function frmFrontFormJS() {
313
  if ( hasClass( field, 'frm_time_select' ) ) {
314
  // set id for time field
315
  fieldID = fieldID.replace( '-H', '' ).replace( '-m', '' );
316
- } else if ( '[typed]' === field.getAttribute( 'name' ).substr( -7 ) ) {
317
  if ( val === '' ) {
318
  val = jQuery( field ).closest( '.frm_form_field' ).find( '[name="' + field.getAttribute( 'name' ).replace( '[typed]', '[output]' ) + '"]' ).val();
319
  }
@@ -338,6 +338,11 @@ function frmFrontFormJS() {
338
  return errors;
339
  }
340
 
 
 
 
 
 
341
  function getFileVals( fileID ) {
342
  var val = '',
343
  fileFields = jQuery( 'input[name="file' + fileID + '"], input[name="file' + fileID + '[]"], input[name^="item_meta[' + fileID + ']"]' );
262
  fieldID = '',
263
  fileID = field.getAttribute( 'data-frmfile' );
264
 
265
+ if ( field.type === 'hidden' && fileID === null && ! hasClass( field, 'ssa_appointment_form_field_appointment_id' ) ) {
266
  return errors;
267
  }
268
 
313
  if ( hasClass( field, 'frm_time_select' ) ) {
314
  // set id for time field
315
  fieldID = fieldID.replace( '-H', '' ).replace( '-m', '' );
316
+ } else if ( isSignatureField( field ) ) {
317
  if ( val === '' ) {
318
  val = jQuery( field ).closest( '.frm_form_field' ).find( '[name="' + field.getAttribute( 'name' ).replace( '[typed]', '[output]' ) + '"]' ).val();
319
  }
338
  return errors;
339
  }
340
 
341
+ function isSignatureField( field ) {
342
+ var name = field.getAttribute( 'name' );
343
+ return 'string' === typeof name && '[typed]' === name.substr( -7 );
344
+ }
345
+
346
  function getFileVals( fileID ) {
347
  var val = '',
348
  fileFields = jQuery( 'input[name="file' + fileID + '"], input[name="file' + fileID + '[]"], input[name^="item_meta[' + fileID + ']"]' );
js/formidable.min.js CHANGED
@@ -7,36 +7,37 @@ if(requiredFields.length)for(r=0,rl=requiredFields.length;r<rl;r++){if(hasClass(
7
  "password")errors=checkPasswordField(field,errors);else if(field.type==="url")errors=checkUrlField(field,errors);else if(field.pattern!==null)errors=checkPatternField(field,errors)}errors=validateRecaptcha(object,errors);return errors}function hasClass(element,targetClass){var className=" "+element.className+" ";return-1!==className.indexOf(" "+targetClass+" ")}function maybeValidateChange(field){if(field.type==="url")maybeAddHttpToUrl(field);if(jQuery(field).closest("form").hasClass("frm_js_validate"))validateField(field)}
8
  function maybeAddHttpToUrl(field){var url=field.value;var matches=url.match(/^(https?|ftps?|mailto|news|feed|telnet):/);if(field.value!==""&&matches===null)field.value="http://"+url}function validateField(field){var key,errors=[],$fieldCont=jQuery(field).closest(".frm_form_field");if($fieldCont.hasClass("frm_required_field")&&!jQuery(field).hasClass("frm_optional"))errors=checkRequiredField(field,errors);if(errors.length<1)if(field.type==="email")errors=checkEmailField(field,errors);else if(field.type===
9
  "password")errors=checkPasswordField(field,errors);else if(field.type==="number")errors=checkNumberField(field,errors);else if(field.type==="url")errors=checkUrlField(field,errors);else if(field.pattern!==null)errors=checkPatternField(field,errors);removeFieldError($fieldCont);if(Object.keys(errors).length>0)for(key in errors)addFieldError($fieldCont,key,errors)}function checkRequiredField(field,errors){var checkGroup,tempVal,i,placeholder,val="",fieldID="",fileID=field.getAttribute("data-frmfile");
10
- if(field.type==="hidden"&&fileID===null)return errors;if(field.type==="checkbox"||field.type==="radio"){checkGroup=jQuery('input[name="'+field.name+'"]').closest(".frm_required_field").find("input:checked");jQuery(checkGroup).each(function(){val=this.value})}else if(field.type==="file"||fileID){if(typeof fileID==="undefined"){fileID=getFieldId(field,true);fileID=fileID.replace("file","")}if(typeof errors[fileID]==="undefined")val=getFileVals(fileID);fieldID=fileID}else{if(hasClass(field,"frm_pos_none"))return errors;
11
- val=jQuery(field).val();if(val===null)val="";else if(typeof val!=="string"){tempVal=val;val="";for(i=0;i<tempVal.length;i++)if(tempVal[i]!=="")val=tempVal[i]}if(hasClass(field,"frm_other_input")){fieldID=getFieldId(field,false);if(val==="")field=document.getElementById(field.id.replace("-otext",""))}else fieldID=getFieldId(field,true);if(hasClass(field,"frm_time_select"))fieldID=fieldID.replace("-H","").replace("-m","");else if("[typed]"===field.getAttribute("name").substr(-7)){if(val==="")val=jQuery(field).closest(".frm_form_field").find('[name="'+
12
- field.getAttribute("name").replace("[typed]","[output]")+'"]').val();fieldID=fieldID.replace("-typed","")}placeholder=field.getAttribute("data-frmplaceholder");if(placeholder!==null&&val===placeholder)val=""}if(val===""){if(fieldID==="")fieldID=getFieldId(field,true);if(!(fieldID in errors))errors[fieldID]=getFieldValidationMessage(field,"data-reqmsg")}return errors}function getFileVals(fileID){var val="",fileFields=jQuery('input[name="file'+fileID+'"], input[name="file'+fileID+'[]"], input[name^="item_meta['+
13
- fileID+']"]');fileFields.each(function(){if(val==="")val=this.value});return val}function checkUrlField(field,errors){var fieldID,url=field.value;if(url!==""&&!/^http(s)?:\/\/(?:localhost|(?:[\da-z\.-]+\.[\da-z\.-]+))/i.test(url)){fieldID=getFieldId(field,true);if(!(fieldID in errors))errors[fieldID]=getFieldValidationMessage(field,"data-invmsg")}return errors}function checkEmailField(field,errors){var fieldID=getFieldId(field,true),pattern=/^(([^<>()\[\]\\.,;:\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;
14
- if(""!==field.value&&pattern.test(field.value)===false)errors[fieldID]=getFieldValidationMessage(field,"data-invmsg");confirmField(field,errors);return errors}function checkPasswordField(field,errors){confirmField(field,errors);return errors}function confirmField(field,errors){var value,confirmValue,firstField,fieldID=getFieldId(field,true),strippedId=field.id.replace("conf_",""),strippedFieldID=fieldID.replace("conf_",""),confirmField=document.getElementById(strippedId.replace("field_","field_conf_"));
15
- if(confirmField===null||typeof errors["conf_"+strippedFieldID]!=="undefined")return;if(fieldID!==strippedFieldID){firstField=document.getElementById(strippedId);value=firstField.value;confirmValue=confirmField.value;if(""!==value&&""!==confirmValue&&value!==confirmValue)errors["conf_"+strippedFieldID]=getFieldValidationMessage(confirmField,"data-confmsg")}else validateField(confirmField)}function checkNumberField(field,errors){var fieldID,number=field.value;if(number!==""&&isNaN(number/1)!==false){fieldID=
16
- getFieldId(field,true);if(!(fieldID in errors))errors[fieldID]=getFieldValidationMessage(field,"data-invmsg")}return errors}function checkPatternField(field,errors){var fieldID,text=field.value,format=getFieldValidationMessage(field,"pattern");if(format!==""&&text!==""){fieldID=getFieldId(field,true);if(!(fieldID in errors)){format=new RegExp("^"+format+"$","i");if(format.test(text)===false)errors[fieldID]=getFieldValidationMessage(field,"data-invmsg")}}return errors}function hasInvisibleRecaptcha(object){var recaptcha,
17
- recaptchaID,alreadyChecked;if(isGoingToPrevPage(object))return false;recaptcha=jQuery(object).find('.frm-g-recaptcha[data-size="invisible"], .g-recaptcha[data-size="invisible"]');if(recaptcha.length){recaptchaID=recaptcha.data("rid");alreadyChecked=grecaptcha.getResponse(recaptchaID);if(alreadyChecked.length===0)return recaptcha;else return false}else return false}function executeInvisibleRecaptcha(invisibleRecaptcha){var recaptchaID=invisibleRecaptcha.data("rid");grecaptcha.reset(recaptchaID);grecaptcha.execute(recaptchaID)}
18
- function validateRecaptcha(form,errors){var recaptchaID,response,fieldContainer,fieldID,$recaptcha=jQuery(form).find(".frm-g-recaptcha");if($recaptcha.length){recaptchaID=$recaptcha.data("rid");try{response=grecaptcha.getResponse(recaptchaID)}catch(e){if(jQuery(form).find('input[name="recaptcha_checked"]').length)return errors;else response=""}if(response.length===0){fieldContainer=$recaptcha.closest(".frm_form_field");fieldID=fieldContainer.attr("id").replace("frm_field_","").replace("_container",
19
- "");errors[fieldID]=""}}return errors}function getFieldValidationMessage(field,messageType){var msg,errorHtml;msg=field.getAttribute(messageType);if(null===msg)msg="";if(""!==msg&&shouldWrapErrorHtmlAroundMessageType(messageType)){errorHtml=field.getAttribute("data-error-html");if(null!==errorHtml){errorHtml=errorHtml.replace(/\+/g,"%20");msg=decodeURIComponent(errorHtml).replace("[error]",msg);msg=msg.replace("[key]",getFieldId(field,false))}}return msg}function shouldWrapErrorHtmlAroundMessageType(type){return"pattern"!==
20
- type}function shouldJSValidate(object){var validate=jQuery(object).hasClass("frm_js_validate");if(validate&&typeof frmProForm!=="undefined"&&(frmProForm.savingDraft(object)||frmProForm.goingToPreviousPage(object)))validate=false;return validate}function getFormErrors(object,action){var fieldset;if(typeof action==="undefined")jQuery(object).find('input[name="frm_action"]').val();fieldset=jQuery(object).find(".frm_form_field");fieldset.addClass("frm_doing_ajax");jQuery.ajax({type:"POST",url:frm_js.ajax_url,
21
- data:jQuery(object).serialize()+"&action=frm_entries_"+action+"&nonce="+frm_js.nonce,success:function(response){var formID,replaceContent,pageOrder,formReturned,contSubmit,delay,$fieldCont,key,inCollapsedSection,frmTrigger,defaultResponse={"content":"","errors":{},"pass":false};if(response===null)response=defaultResponse;response=response.replace(/^\s+|\s+$/g,"");if(response.indexOf("{")===0)response=JSON.parse(response);else response=defaultResponse;if(typeof response.redirect!=="undefined"){jQuery(document).trigger("frmBeforeFormRedirect",
22
- [object,response]);window.location=response.redirect}else if(response.content!==""){removeSubmitLoading(jQuery(object));if(frm_js.offset!=-1)frmFrontForm.scrollMsg(jQuery(object),false);formID=jQuery(object).find('input[name="form_id"]').val();response.content=response.content.replace(/ frm_pro_form /g," frm_pro_form frm_no_hide ");replaceContent=jQuery(object).closest(".frm_forms");removeAddedScripts(replaceContent,formID);delay=maybeSlideOut(replaceContent,response.content);setTimeout(function(){var container,
23
- input,previousInput;replaceContent.replaceWith(response.content);addUrlParam(response);if(typeof frmThemeOverride_frmAfterSubmit==="function"){pageOrder=jQuery('input[name="frm_page_order_'+formID+'"]').val();formReturned=jQuery(response.content).find('input[name="form_id"]').val();frmThemeOverride_frmAfterSubmit(formReturned,pageOrder,response.content,object)}if(typeof response.recaptcha!=="undefined"){container=jQuery("#frm_form_"+formID+"_container").find(".frm_fields_container");input='<input type="hidden" name="recaptcha_checked" value="'+
24
- response.recaptcha+'">';previousInput=container.find('input[name="recaptcha_checked"]');if(previousInput.length)previousInput.replaceWith(input);else container.append(input)}afterFormSubmitted(object,response)},delay)}else if(Object.keys(response.errors).length){removeSubmitLoading(jQuery(object),"enable");contSubmit=true;removeAllErrors();$fieldCont=null;for(key in response.errors){$fieldCont=jQuery(object).find("#frm_field_"+key+"_container");if($fieldCont.length){if(!$fieldCont.is(":visible")){inCollapsedSection=
25
- $fieldCont.closest(".frm_toggle_container");if(inCollapsedSection.length){frmTrigger=inCollapsedSection.prev();if(!frmTrigger.hasClass("frm_trigger"))frmTrigger=frmTrigger.prev(".frm_trigger");frmTrigger.trigger("click")}}if($fieldCont.is(":visible")){addFieldError($fieldCont,key,response.errors);contSubmit=false}}}jQuery(object).find(".frm-g-recaptcha, .g-recaptcha").each(function(){var $recaptcha=jQuery(this),recaptchaID=$recaptcha.data("rid");if(typeof grecaptcha!=="undefined"&&grecaptcha)if(recaptchaID)grecaptcha.reset(recaptchaID);
26
- else grecaptcha.reset()});jQuery(document).trigger("frmFormErrors",[object,response]);fieldset.removeClass("frm_doing_ajax");scrollToFirstField(object);if(contSubmit)object.submit();else{jQuery(object).prepend(response.error_message);checkForErrorsAndMaybeSetFocus()}}else{showFileLoading(object);object.submit()}},error:function(){jQuery(object).find('input[type="submit"], input[type="button"]').prop("disabled",false);object.submit()}})}function afterFormSubmitted(object,response){var formCompleted=
27
- jQuery(response.content).find(".frm_message");if(formCompleted.length)jQuery(document).trigger("frmFormComplete",[object,response]);else jQuery(document).trigger("frmPageChanged",[object,response])}function removeAddedScripts(formContainer,formID){var endReplace=jQuery(".frm_end_ajax_"+formID);if(endReplace.length){formContainer.nextUntil(".frm_end_ajax_"+formID).remove();endReplace.remove()}}function maybeSlideOut(oldContent,newContent){var c,newClass="frm_slideout";if(newContent.indexOf(" frm_slide")!==
28
- -1){c=oldContent.children();if(newContent.indexOf(" frm_going_back")!==-1)newClass+=" frm_going_back";c.removeClass("frm_going_back");c.addClass(newClass);return 300}return 0}function addUrlParam(response){var url;if(history.pushState&&typeof response.page!=="undefined"){url=addQueryVar("frm_page",response.page);window.history.pushState({"html":response.html},"","?"+url)}}function addQueryVar(key,value){var kvp,i,x;key=encodeURI(key);value=encodeURI(value);kvp=document.location.search.substr(1).split("&");
29
- i=kvp.length;while(i--){x=kvp[i].split("=");if(x[0]==key){x[1]=value;kvp[i]=x.join("=");break}}if(i<0)kvp[kvp.length]=[key,value].join("=");return kvp.join("&")}function addFieldError($fieldCont,key,jsErrors){var input,id,describedBy;if($fieldCont.length&&$fieldCont.is(":visible")){$fieldCont.addClass("frm_blank_field");input=$fieldCont.find("input, select, textarea");id="frm_error_field_"+key;describedBy=input.attr("aria-describedby");if(typeof frmThemeOverride_frmPlaceError==="function")frmThemeOverride_frmPlaceError(key,
30
- jsErrors);else{if(-1!==jsErrors[key].indexOf("<div"))$fieldCont.append(jsErrors[key]);else $fieldCont.append('<div class="frm_error" id="'+id+'">'+jsErrors[key]+"</div>");if(typeof describedBy==="undefined")describedBy=id;else if(describedBy.indexOf(id)===-1)describedBy=describedBy+" "+id;input.attr("aria-describedby",describedBy)}input.attr("aria-invalid",true);jQuery(document).trigger("frmAddFieldError",[$fieldCont,key,jsErrors])}}function removeFieldError($fieldCont){var errorMessage=$fieldCont.find(".frm_error"),
31
- errorId=errorMessage.attr("id"),input=$fieldCont.find("input, select, textarea"),describedBy=input.attr("aria-describedby");$fieldCont.removeClass("frm_blank_field has-error");errorMessage.remove();input.attr("aria-invalid",false);if(typeof describedBy!=="undefined"){describedBy=describedBy.replace(errorId,"");input.attr("aria-describedby",describedBy)}}function removeAllErrors(){jQuery(".form-field").removeClass("frm_blank_field has-error");jQuery(".form-field .frm_error").replaceWith("");jQuery(".frm_error_style").remove()}
32
- function scrollToFirstField(object){var field=jQuery(object).find(".frm_blank_field").first();if(field.length)frmFrontForm.scrollMsg(field,object,true)}function showSubmitLoading($object){showLoadingIndicator($object);disableSubmitButton($object);disableSaveDraft($object)}function showLoadingIndicator($object){if(!$object.hasClass("frm_loading_form")&&!$object.hasClass("frm_loading_prev")){addLoadingClass($object);$object.trigger("frmStartFormLoading")}}function addLoadingClass($object){var loadingClass=
33
- isGoingToPrevPage($object)?"frm_loading_prev":"frm_loading_form";$object.addClass(loadingClass)}function isGoingToPrevPage($object){return typeof frmProForm!=="undefined"&&frmProForm.goingToPreviousPage($object)}function removeSubmitLoading($object,enable,processesRunning){var loadingForm;if(processesRunning>0)return;loadingForm=jQuery(".frm_loading_form");loadingForm.removeClass("frm_loading_form");loadingForm.removeClass("frm_loading_prev");loadingForm.trigger("frmEndFormLoading");if(enable==="enable"){enableSubmitButton(loadingForm);
34
- enableSaveDraft(loadingForm)}}function showFileLoading(object){var fileval,loading=document.getElementById("frm_loading");if(loading!==null){fileval=jQuery(object).find("input[type=file]").val();if(typeof fileval!=="undefined"&&fileval!=="")setTimeout(function(){jQuery(loading).fadeIn("slow")},2E3)}}function clearDefault(){toggleDefault(jQuery(this),"clear")}function replaceDefault(){toggleDefault(jQuery(this),"replace")}function toggleDefault($thisField,e){var thisVal,v=$thisField.data("frmval").replace(/(\n|\r\n)/g,
35
- "\r");if(v===""||typeof v==="undefined")return false;thisVal=$thisField.val().replace(/(\n|\r\n)/g,"\r");if("replace"===e){if(thisVal==="")$thisField.addClass("frm_default").val(v)}else if(thisVal==v)$thisField.removeClass("frm_default").val("")}function resendEmail(){var $link=jQuery(this),entryId=this.getAttribute("data-eid"),formId=this.getAttribute("data-fid"),label=$link.find(".frm_link_label");if(label.length<1)label=$link;label.append('<span class="frm-wait"></span>');jQuery.ajax({type:"POST",
36
- url:frm_js.ajax_url,data:{action:"frm_entries_send_email",entry_id:entryId,form_id:formId,nonce:frm_js.nonce},success:function(msg){var admin=document.getElementById("wpbody");if(admin===null)label.html(msg);else{label.html("");$link.after(msg)}}});return false}function confirmClick(){var message=jQuery(this).data("frmconfirm");return confirm(message)}function toggleDiv(){var div=jQuery(this).data("frmtoggle");if(jQuery(div).is(":visible"))jQuery(div).slideUp("fast");else jQuery(div).slideDown("fast");
37
- return false}function addIndexOfFallbackForIE8(){var len,from;if(!Array.prototype.indexOf)Array.prototype.indexOf=function(elt){len=this.length>>>0;from=Number(arguments[1])||0;from=from<0?Math.ceil(from):Math.floor(from);if(from<0)from+=len;for(;from<len;from++)if(from in this&&this[from]===elt)return from;return-1}}function addTrimFallbackForIE8(){if(typeof String.prototype.trim!=="function")String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")}}function addFilterFallbackForIE8(){var t,
38
- len,res,thisp,i,val;if(!Array.prototype.filter)Array.prototype.filter=function(fun){if(this===void 0||this===null)throw new TypeError;t=Object(this);len=t.length>>>0;if(typeof fun!=="function")throw new TypeError;res=[];thisp=arguments[1];for(i=0;i<len;i++)if(i in t){val=t[i];if(fun.call(thisp,val,i,t))res.push(val)}return res}}function addKeysFallbackForIE8(){var keys,i;if(!Object.keys)Object.keys=function(obj){keys=[];for(i in obj)if(obj.hasOwnProperty(i))keys.push(i);return keys}}function onHoneypotFieldChange(){var css=
39
- jQuery(this).css("box-shadow");if(css.match(/inset/))this.parentNode.removeChild(this)}function changeFocusWhenClickComboFieldLabel(){var label;var comboInputsContainer=document.querySelectorAll(".frm_combo_inputs_container");comboInputsContainer.forEach(function(inputsContainer){if(!inputsContainer.closest(".frm_form_field"))return;label=inputsContainer.closest(".frm_form_field").querySelector(".frm_primary_label");if(!label)return;label.addEventListener("click",function(e){inputsContainer.querySelector(".frm_form_field:first-child input, .frm_form_field:first-child select, .frm_form_field:first-child textarea").focus()})})}
 
40
  function checkForErrorsAndMaybeSetFocus(){var errors,element,timeoutCallback;errors=document.querySelectorAll(".frm_form_field .frm_error");if(!errors.length)return;element=errors[0];do{element=element.previousSibling;if(-1!==["input","select","textarea"].indexOf(element.nodeName.toLowerCase())){element.focus();break}if("undefined"!==typeof element.classList){if(element.classList.contains("html-active"))timeoutCallback=function(){var textarea=element.querySelector("textarea");if(null!==textarea)textarea.focus()};
41
  else if(element.classList.contains("tmce-active"))timeoutCallback=function(){tinyMCE.activeEditor.focus()};if("function"===typeof timeoutCallback){setTimeout(timeoutCallback,0);break}}}while(element.previousSibling)}return{init:function(){jQuery(document).off("submit.formidable",".frm-show-form");jQuery(document).on("submit.formidable",".frm-show-form",frmFrontForm.submitForm);jQuery(".frm-show-form input[onblur], .frm-show-form textarea[onblur]").each(function(){if(jQuery(this).val()==="")jQuery(this).trigger("blur")});
42
  jQuery(document).on("focus",".frm_toggle_default",clearDefault);jQuery(document).on("blur",".frm_toggle_default",replaceDefault);jQuery(".frm_toggle_default").trigger("blur");jQuery(document.getElementById("frm_resend_email")).on("click",resendEmail);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);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",
7
  "password")errors=checkPasswordField(field,errors);else if(field.type==="url")errors=checkUrlField(field,errors);else if(field.pattern!==null)errors=checkPatternField(field,errors)}errors=validateRecaptcha(object,errors);return errors}function hasClass(element,targetClass){var className=" "+element.className+" ";return-1!==className.indexOf(" "+targetClass+" ")}function maybeValidateChange(field){if(field.type==="url")maybeAddHttpToUrl(field);if(jQuery(field).closest("form").hasClass("frm_js_validate"))validateField(field)}
8
  function maybeAddHttpToUrl(field){var url=field.value;var matches=url.match(/^(https?|ftps?|mailto|news|feed|telnet):/);if(field.value!==""&&matches===null)field.value="http://"+url}function validateField(field){var key,errors=[],$fieldCont=jQuery(field).closest(".frm_form_field");if($fieldCont.hasClass("frm_required_field")&&!jQuery(field).hasClass("frm_optional"))errors=checkRequiredField(field,errors);if(errors.length<1)if(field.type==="email")errors=checkEmailField(field,errors);else if(field.type===
9
  "password")errors=checkPasswordField(field,errors);else if(field.type==="number")errors=checkNumberField(field,errors);else if(field.type==="url")errors=checkUrlField(field,errors);else if(field.pattern!==null)errors=checkPatternField(field,errors);removeFieldError($fieldCont);if(Object.keys(errors).length>0)for(key in errors)addFieldError($fieldCont,key,errors)}function checkRequiredField(field,errors){var checkGroup,tempVal,i,placeholder,val="",fieldID="",fileID=field.getAttribute("data-frmfile");
10
+ if(field.type==="hidden"&&fileID===null&&!hasClass(field,"ssa_appointment_form_field_appointment_id"))return errors;if(field.type==="checkbox"||field.type==="radio"){checkGroup=jQuery('input[name="'+field.name+'"]').closest(".frm_required_field").find("input:checked");jQuery(checkGroup).each(function(){val=this.value})}else if(field.type==="file"||fileID){if(typeof fileID==="undefined"){fileID=getFieldId(field,true);fileID=fileID.replace("file","")}if(typeof errors[fileID]==="undefined")val=getFileVals(fileID);
11
+ fieldID=fileID}else{if(hasClass(field,"frm_pos_none"))return errors;val=jQuery(field).val();if(val===null)val="";else if(typeof val!=="string"){tempVal=val;val="";for(i=0;i<tempVal.length;i++)if(tempVal[i]!=="")val=tempVal[i]}if(hasClass(field,"frm_other_input")){fieldID=getFieldId(field,false);if(val==="")field=document.getElementById(field.id.replace("-otext",""))}else fieldID=getFieldId(field,true);if(hasClass(field,"frm_time_select"))fieldID=fieldID.replace("-H","").replace("-m","");else if(isSignatureField(field)){if(val===
12
+ "")val=jQuery(field).closest(".frm_form_field").find('[name="'+field.getAttribute("name").replace("[typed]","[output]")+'"]').val();fieldID=fieldID.replace("-typed","")}placeholder=field.getAttribute("data-frmplaceholder");if(placeholder!==null&&val===placeholder)val=""}if(val===""){if(fieldID==="")fieldID=getFieldId(field,true);if(!(fieldID in errors))errors[fieldID]=getFieldValidationMessage(field,"data-reqmsg")}return errors}function isSignatureField(field){var name=field.getAttribute("name");
13
+ return"string"===typeof name&&"[typed]"===name.substr(-7)}function getFileVals(fileID){var val="",fileFields=jQuery('input[name="file'+fileID+'"], input[name="file'+fileID+'[]"], input[name^="item_meta['+fileID+']"]');fileFields.each(function(){if(val==="")val=this.value});return val}function checkUrlField(field,errors){var fieldID,url=field.value;if(url!==""&&!/^http(s)?:\/\/(?:localhost|(?:[\da-z\.-]+\.[\da-z\.-]+))/i.test(url)){fieldID=getFieldId(field,true);if(!(fieldID in errors))errors[fieldID]=
14
+ getFieldValidationMessage(field,"data-invmsg")}return errors}function checkEmailField(field,errors){var fieldID=getFieldId(field,true),pattern=/^(([^<>()\[\]\\.,;:\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;if(""!==field.value&&pattern.test(field.value)===false)errors[fieldID]=getFieldValidationMessage(field,"data-invmsg");confirmField(field,errors);return errors}function checkPasswordField(field,errors){confirmField(field,
15
+ errors);return errors}function confirmField(field,errors){var value,confirmValue,firstField,fieldID=getFieldId(field,true),strippedId=field.id.replace("conf_",""),strippedFieldID=fieldID.replace("conf_",""),confirmField=document.getElementById(strippedId.replace("field_","field_conf_"));if(confirmField===null||typeof errors["conf_"+strippedFieldID]!=="undefined")return;if(fieldID!==strippedFieldID){firstField=document.getElementById(strippedId);value=firstField.value;confirmValue=confirmField.value;
16
+ if(""!==value&&""!==confirmValue&&value!==confirmValue)errors["conf_"+strippedFieldID]=getFieldValidationMessage(confirmField,"data-confmsg")}else validateField(confirmField)}function checkNumberField(field,errors){var fieldID,number=field.value;if(number!==""&&isNaN(number/1)!==false){fieldID=getFieldId(field,true);if(!(fieldID in errors))errors[fieldID]=getFieldValidationMessage(field,"data-invmsg")}return errors}function checkPatternField(field,errors){var fieldID,text=field.value,format=getFieldValidationMessage(field,
17
+ "pattern");if(format!==""&&text!==""){fieldID=getFieldId(field,true);if(!(fieldID in errors)){format=new RegExp("^"+format+"$","i");if(format.test(text)===false)errors[fieldID]=getFieldValidationMessage(field,"data-invmsg")}}return errors}function hasInvisibleRecaptcha(object){var recaptcha,recaptchaID,alreadyChecked;if(isGoingToPrevPage(object))return false;recaptcha=jQuery(object).find('.frm-g-recaptcha[data-size="invisible"], .g-recaptcha[data-size="invisible"]');if(recaptcha.length){recaptchaID=
18
+ recaptcha.data("rid");alreadyChecked=grecaptcha.getResponse(recaptchaID);if(alreadyChecked.length===0)return recaptcha;else return false}else return false}function executeInvisibleRecaptcha(invisibleRecaptcha){var recaptchaID=invisibleRecaptcha.data("rid");grecaptcha.reset(recaptchaID);grecaptcha.execute(recaptchaID)}function validateRecaptcha(form,errors){var recaptchaID,response,fieldContainer,fieldID,$recaptcha=jQuery(form).find(".frm-g-recaptcha");if($recaptcha.length){recaptchaID=$recaptcha.data("rid");
19
+ try{response=grecaptcha.getResponse(recaptchaID)}catch(e){if(jQuery(form).find('input[name="recaptcha_checked"]').length)return errors;else response=""}if(response.length===0){fieldContainer=$recaptcha.closest(".frm_form_field");fieldID=fieldContainer.attr("id").replace("frm_field_","").replace("_container","");errors[fieldID]=""}}return errors}function getFieldValidationMessage(field,messageType){var msg,errorHtml;msg=field.getAttribute(messageType);if(null===msg)msg="";if(""!==msg&&shouldWrapErrorHtmlAroundMessageType(messageType)){errorHtml=
20
+ field.getAttribute("data-error-html");if(null!==errorHtml){errorHtml=errorHtml.replace(/\+/g,"%20");msg=decodeURIComponent(errorHtml).replace("[error]",msg);msg=msg.replace("[key]",getFieldId(field,false))}}return msg}function shouldWrapErrorHtmlAroundMessageType(type){return"pattern"!==type}function shouldJSValidate(object){var validate=jQuery(object).hasClass("frm_js_validate");if(validate&&typeof frmProForm!=="undefined"&&(frmProForm.savingDraft(object)||frmProForm.goingToPreviousPage(object)))validate=
21
+ false;return validate}function getFormErrors(object,action){var fieldset;if(typeof action==="undefined")jQuery(object).find('input[name="frm_action"]').val();fieldset=jQuery(object).find(".frm_form_field");fieldset.addClass("frm_doing_ajax");jQuery.ajax({type:"POST",url:frm_js.ajax_url,data:jQuery(object).serialize()+"&action=frm_entries_"+action+"&nonce="+frm_js.nonce,success:function(response){var formID,replaceContent,pageOrder,formReturned,contSubmit,delay,$fieldCont,key,inCollapsedSection,frmTrigger,
22
+ defaultResponse={"content":"","errors":{},"pass":false};if(response===null)response=defaultResponse;response=response.replace(/^\s+|\s+$/g,"");if(response.indexOf("{")===0)response=JSON.parse(response);else response=defaultResponse;if(typeof response.redirect!=="undefined"){jQuery(document).trigger("frmBeforeFormRedirect",[object,response]);window.location=response.redirect}else if(response.content!==""){removeSubmitLoading(jQuery(object));if(frm_js.offset!=-1)frmFrontForm.scrollMsg(jQuery(object),
23
+ false);formID=jQuery(object).find('input[name="form_id"]').val();response.content=response.content.replace(/ frm_pro_form /g," frm_pro_form frm_no_hide ");replaceContent=jQuery(object).closest(".frm_forms");removeAddedScripts(replaceContent,formID);delay=maybeSlideOut(replaceContent,response.content);setTimeout(function(){var container,input,previousInput;replaceContent.replaceWith(response.content);addUrlParam(response);if(typeof frmThemeOverride_frmAfterSubmit==="function"){pageOrder=jQuery('input[name="frm_page_order_'+
24
+ formID+'"]').val();formReturned=jQuery(response.content).find('input[name="form_id"]').val();frmThemeOverride_frmAfterSubmit(formReturned,pageOrder,response.content,object)}if(typeof response.recaptcha!=="undefined"){container=jQuery("#frm_form_"+formID+"_container").find(".frm_fields_container");input='<input type="hidden" name="recaptcha_checked" value="'+response.recaptcha+'">';previousInput=container.find('input[name="recaptcha_checked"]');if(previousInput.length)previousInput.replaceWith(input);
25
+ else container.append(input)}afterFormSubmitted(object,response)},delay)}else if(Object.keys(response.errors).length){removeSubmitLoading(jQuery(object),"enable");contSubmit=true;removeAllErrors();$fieldCont=null;for(key in response.errors){$fieldCont=jQuery(object).find("#frm_field_"+key+"_container");if($fieldCont.length){if(!$fieldCont.is(":visible")){inCollapsedSection=$fieldCont.closest(".frm_toggle_container");if(inCollapsedSection.length){frmTrigger=inCollapsedSection.prev();if(!frmTrigger.hasClass("frm_trigger"))frmTrigger=
26
+ frmTrigger.prev(".frm_trigger");frmTrigger.trigger("click")}}if($fieldCont.is(":visible")){addFieldError($fieldCont,key,response.errors);contSubmit=false}}}jQuery(object).find(".frm-g-recaptcha, .g-recaptcha").each(function(){var $recaptcha=jQuery(this),recaptchaID=$recaptcha.data("rid");if(typeof grecaptcha!=="undefined"&&grecaptcha)if(recaptchaID)grecaptcha.reset(recaptchaID);else grecaptcha.reset()});jQuery(document).trigger("frmFormErrors",[object,response]);fieldset.removeClass("frm_doing_ajax");
27
+ scrollToFirstField(object);if(contSubmit)object.submit();else{jQuery(object).prepend(response.error_message);checkForErrorsAndMaybeSetFocus()}}else{showFileLoading(object);object.submit()}},error:function(){jQuery(object).find('input[type="submit"], input[type="button"]').prop("disabled",false);object.submit()}})}function afterFormSubmitted(object,response){var formCompleted=jQuery(response.content).find(".frm_message");if(formCompleted.length)jQuery(document).trigger("frmFormComplete",[object,response]);
28
+ else jQuery(document).trigger("frmPageChanged",[object,response])}function removeAddedScripts(formContainer,formID){var endReplace=jQuery(".frm_end_ajax_"+formID);if(endReplace.length){formContainer.nextUntil(".frm_end_ajax_"+formID).remove();endReplace.remove()}}function maybeSlideOut(oldContent,newContent){var c,newClass="frm_slideout";if(newContent.indexOf(" frm_slide")!==-1){c=oldContent.children();if(newContent.indexOf(" frm_going_back")!==-1)newClass+=" frm_going_back";c.removeClass("frm_going_back");
29
+ c.addClass(newClass);return 300}return 0}function addUrlParam(response){var url;if(history.pushState&&typeof response.page!=="undefined"){url=addQueryVar("frm_page",response.page);window.history.pushState({"html":response.html},"","?"+url)}}function addQueryVar(key,value){var kvp,i,x;key=encodeURI(key);value=encodeURI(value);kvp=document.location.search.substr(1).split("&");i=kvp.length;while(i--){x=kvp[i].split("=");if(x[0]==key){x[1]=value;kvp[i]=x.join("=");break}}if(i<0)kvp[kvp.length]=[key,value].join("=");
30
+ return kvp.join("&")}function addFieldError($fieldCont,key,jsErrors){var input,id,describedBy;if($fieldCont.length&&$fieldCont.is(":visible")){$fieldCont.addClass("frm_blank_field");input=$fieldCont.find("input, select, textarea");id="frm_error_field_"+key;describedBy=input.attr("aria-describedby");if(typeof frmThemeOverride_frmPlaceError==="function")frmThemeOverride_frmPlaceError(key,jsErrors);else{if(-1!==jsErrors[key].indexOf("<div"))$fieldCont.append(jsErrors[key]);else $fieldCont.append('<div class="frm_error" id="'+
31
+ id+'">'+jsErrors[key]+"</div>");if(typeof describedBy==="undefined")describedBy=id;else if(describedBy.indexOf(id)===-1)describedBy=describedBy+" "+id;input.attr("aria-describedby",describedBy)}input.attr("aria-invalid",true);jQuery(document).trigger("frmAddFieldError",[$fieldCont,key,jsErrors])}}function removeFieldError($fieldCont){var errorMessage=$fieldCont.find(".frm_error"),errorId=errorMessage.attr("id"),input=$fieldCont.find("input, select, textarea"),describedBy=input.attr("aria-describedby");
32
+ $fieldCont.removeClass("frm_blank_field has-error");errorMessage.remove();input.attr("aria-invalid",false);if(typeof describedBy!=="undefined"){describedBy=describedBy.replace(errorId,"");input.attr("aria-describedby",describedBy)}}function removeAllErrors(){jQuery(".form-field").removeClass("frm_blank_field has-error");jQuery(".form-field .frm_error").replaceWith("");jQuery(".frm_error_style").remove()}function scrollToFirstField(object){var field=jQuery(object).find(".frm_blank_field").first();
33
+ if(field.length)frmFrontForm.scrollMsg(field,object,true)}function showSubmitLoading($object){showLoadingIndicator($object);disableSubmitButton($object);disableSaveDraft($object)}function showLoadingIndicator($object){if(!$object.hasClass("frm_loading_form")&&!$object.hasClass("frm_loading_prev")){addLoadingClass($object);$object.trigger("frmStartFormLoading")}}function addLoadingClass($object){var loadingClass=isGoingToPrevPage($object)?"frm_loading_prev":"frm_loading_form";$object.addClass(loadingClass)}
34
+ function isGoingToPrevPage($object){return typeof frmProForm!=="undefined"&&frmProForm.goingToPreviousPage($object)}function removeSubmitLoading($object,enable,processesRunning){var loadingForm;if(processesRunning>0)return;loadingForm=jQuery(".frm_loading_form");loadingForm.removeClass("frm_loading_form");loadingForm.removeClass("frm_loading_prev");loadingForm.trigger("frmEndFormLoading");if(enable==="enable"){enableSubmitButton(loadingForm);enableSaveDraft(loadingForm)}}function showFileLoading(object){var fileval,
35
+ loading=document.getElementById("frm_loading");if(loading!==null){fileval=jQuery(object).find("input[type=file]").val();if(typeof fileval!=="undefined"&&fileval!=="")setTimeout(function(){jQuery(loading).fadeIn("slow")},2E3)}}function clearDefault(){toggleDefault(jQuery(this),"clear")}function replaceDefault(){toggleDefault(jQuery(this),"replace")}function toggleDefault($thisField,e){var thisVal,v=$thisField.data("frmval").replace(/(\n|\r\n)/g,"\r");if(v===""||typeof v==="undefined")return false;
36
+ thisVal=$thisField.val().replace(/(\n|\r\n)/g,"\r");if("replace"===e){if(thisVal==="")$thisField.addClass("frm_default").val(v)}else if(thisVal==v)$thisField.removeClass("frm_default").val("")}function resendEmail(){var $link=jQuery(this),entryId=this.getAttribute("data-eid"),formId=this.getAttribute("data-fid"),label=$link.find(".frm_link_label");if(label.length<1)label=$link;label.append('<span class="frm-wait"></span>');jQuery.ajax({type:"POST",url:frm_js.ajax_url,data:{action:"frm_entries_send_email",
37
+ entry_id:entryId,form_id:formId,nonce:frm_js.nonce},success:function(msg){var admin=document.getElementById("wpbody");if(admin===null)label.html(msg);else{label.html("");$link.after(msg)}}});return false}function confirmClick(){var message=jQuery(this).data("frmconfirm");return confirm(message)}function toggleDiv(){var div=jQuery(this).data("frmtoggle");if(jQuery(div).is(":visible"))jQuery(div).slideUp("fast");else jQuery(div).slideDown("fast");return false}function addIndexOfFallbackForIE8(){var len,
38
+ from;if(!Array.prototype.indexOf)Array.prototype.indexOf=function(elt){len=this.length>>>0;from=Number(arguments[1])||0;from=from<0?Math.ceil(from):Math.floor(from);if(from<0)from+=len;for(;from<len;from++)if(from in this&&this[from]===elt)return from;return-1}}function addTrimFallbackForIE8(){if(typeof String.prototype.trim!=="function")String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")}}function addFilterFallbackForIE8(){var t,len,res,thisp,i,val;if(!Array.prototype.filter)Array.prototype.filter=
39
+ function(fun){if(this===void 0||this===null)throw new TypeError;t=Object(this);len=t.length>>>0;if(typeof fun!=="function")throw new TypeError;res=[];thisp=arguments[1];for(i=0;i<len;i++)if(i in t){val=t[i];if(fun.call(thisp,val,i,t))res.push(val)}return res}}function addKeysFallbackForIE8(){var keys,i;if(!Object.keys)Object.keys=function(obj){keys=[];for(i in obj)if(obj.hasOwnProperty(i))keys.push(i);return keys}}function onHoneypotFieldChange(){var css=jQuery(this).css("box-shadow");if(css.match(/inset/))this.parentNode.removeChild(this)}
40
+ function changeFocusWhenClickComboFieldLabel(){var label;var comboInputsContainer=document.querySelectorAll(".frm_combo_inputs_container");comboInputsContainer.forEach(function(inputsContainer){if(!inputsContainer.closest(".frm_form_field"))return;label=inputsContainer.closest(".frm_form_field").querySelector(".frm_primary_label");if(!label)return;label.addEventListener("click",function(e){inputsContainer.querySelector(".frm_form_field:first-child input, .frm_form_field:first-child select, .frm_form_field:first-child textarea").focus()})})}
41
  function checkForErrorsAndMaybeSetFocus(){var errors,element,timeoutCallback;errors=document.querySelectorAll(".frm_form_field .frm_error");if(!errors.length)return;element=errors[0];do{element=element.previousSibling;if(-1!==["input","select","textarea"].indexOf(element.nodeName.toLowerCase())){element.focus();break}if("undefined"!==typeof element.classList){if(element.classList.contains("html-active"))timeoutCallback=function(){var textarea=element.querySelector("textarea");if(null!==textarea)textarea.focus()};
42
  else if(element.classList.contains("tmce-active"))timeoutCallback=function(){tinyMCE.activeEditor.focus()};if("function"===typeof timeoutCallback){setTimeout(timeoutCallback,0);break}}}while(element.previousSibling)}return{init:function(){jQuery(document).off("submit.formidable",".frm-show-form");jQuery(document).on("submit.formidable",".frm-show-form",frmFrontForm.submitForm);jQuery(".frm-show-form input[onblur], .frm-show-form textarea[onblur]").each(function(){if(jQuery(this).val()==="")jQuery(this).trigger("blur")});
43
  jQuery(document).on("focus",".frm_toggle_default",clearDefault);jQuery(document).on("blur",".frm_toggle_default",replaceDefault);jQuery(".frm_toggle_default").trigger("blur");jQuery(document.getElementById("frm_resend_email")).on("click",resendEmail);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);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",
languages/formidable.pot CHANGED
@@ -2,14 +2,14 @@
2
  # This file is distributed under the same license as the Formidable Forms plugin.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: Formidable Forms 5.0.10\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/formidable\n"
7
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
8
  "Language-Team: LANGUAGE <LL@li.org>\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
- "POT-Creation-Date: 2021-10-26T13:32:48+00:00\n"
13
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
  "X-Generator: WP-CLI 2.4.0\n"
15
  "X-Domain: formidable\n"
@@ -130,54 +130,54 @@ msgstr ""
130
  msgid "Strategy11"
131
  msgstr ""
132
 
133
- #: classes/controllers/FrmAddonsController.php:13
134
- #: classes/controllers/FrmAddonsController.php:16
135
  msgid "Add-Ons"
136
  msgstr ""
137
 
138
- #: classes/controllers/FrmAddonsController.php:21
139
- #: classes/controllers/FrmAddonsController.php:22
140
  #: classes/helpers/FrmFormsHelper.php:1315
141
  #: classes/views/frm-fields/back-end/smart-values.php:16
142
  #: classes/views/shared/admin-header.php:33
143
  msgid "Upgrade"
144
  msgstr ""
145
 
146
- #: classes/controllers/FrmAddonsController.php:68
147
  msgid "There are no plugins on your site that require a license"
148
  msgstr ""
149
 
150
- #: classes/controllers/FrmAddonsController.php:615
151
  msgid "Installed"
152
  msgstr ""
153
 
154
- #: classes/controllers/FrmAddonsController.php:620
155
  #: classes/helpers/FrmAppHelper.php:2583
156
  msgid "Active"
157
  msgstr ""
158
 
159
- #: classes/controllers/FrmAddonsController.php:625
160
  msgid "Not Installed"
161
  msgstr ""
162
 
163
- #: classes/controllers/FrmAddonsController.php:912
164
  msgid "Sorry, your site requires FTP authentication. Please download plugins from FormidableForms.com and install them manually."
165
  msgstr ""
166
 
167
- #: classes/controllers/FrmAddonsController.php:977
168
  msgid "Your plugin has been activated. Would you like to save and reload the page now?"
169
  msgstr ""
170
 
171
- #: classes/controllers/FrmAddonsController.php:981
172
  msgid "Your plugin has been activated. Please reload the page to see more options."
173
  msgstr ""
174
 
175
- #: classes/controllers/FrmAddonsController.php:1088
176
  msgid "Could not install an upgrade. Please download from formidableforms.com and install manually."
177
  msgstr ""
178
 
179
- #: classes/controllers/FrmAddonsController.php:1173
180
- #: classes/controllers/FrmAddonsController.php:1174
181
  #: classes/controllers/FrmWelcomeController.php:141
182
  #: classes/views/frm-forms/new-form-overlay.php:112
183
  #: classes/views/shared/reports-info.php:24
2
  # This file is distributed under the same license as the Formidable Forms plugin.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Formidable Forms 5.0.11\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/formidable\n"
7
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
8
  "Language-Team: LANGUAGE <LL@li.org>\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
+ "POT-Creation-Date: 2021-10-28T16:38:23+00:00\n"
13
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
  "X-Generator: WP-CLI 2.4.0\n"
15
  "X-Domain: formidable\n"
130
  msgid "Strategy11"
131
  msgstr ""
132
 
133
+ #: classes/controllers/FrmAddonsController.php:18
134
+ #: classes/controllers/FrmAddonsController.php:21
135
  msgid "Add-Ons"
136
  msgstr ""
137
 
138
+ #: classes/controllers/FrmAddonsController.php:26
139
+ #: classes/controllers/FrmAddonsController.php:27
140
  #: classes/helpers/FrmFormsHelper.php:1315
141
  #: classes/views/frm-fields/back-end/smart-values.php:16
142
  #: classes/views/shared/admin-header.php:33
143
  msgid "Upgrade"
144
  msgstr ""
145
 
146
+ #: classes/controllers/FrmAddonsController.php:73
147
  msgid "There are no plugins on your site that require a license"
148
  msgstr ""
149
 
150
+ #: classes/controllers/FrmAddonsController.php:620
151
  msgid "Installed"
152
  msgstr ""
153
 
154
+ #: classes/controllers/FrmAddonsController.php:625
155
  #: classes/helpers/FrmAppHelper.php:2583
156
  msgid "Active"
157
  msgstr ""
158
 
159
+ #: classes/controllers/FrmAddonsController.php:630
160
  msgid "Not Installed"
161
  msgstr ""
162
 
163
+ #: classes/controllers/FrmAddonsController.php:929
164
  msgid "Sorry, your site requires FTP authentication. Please download plugins from FormidableForms.com and install them manually."
165
  msgstr ""
166
 
167
+ #: classes/controllers/FrmAddonsController.php:994
168
  msgid "Your plugin has been activated. Would you like to save and reload the page now?"
169
  msgstr ""
170
 
171
+ #: classes/controllers/FrmAddonsController.php:998
172
  msgid "Your plugin has been activated. Please reload the page to see more options."
173
  msgstr ""
174
 
175
+ #: classes/controllers/FrmAddonsController.php:1103
176
  msgid "Could not install an upgrade. Please download from formidableforms.com and install manually."
177
  msgstr ""
178
 
179
+ #: classes/controllers/FrmAddonsController.php:1188
180
+ #: classes/controllers/FrmAddonsController.php:1189
181
  #: classes/controllers/FrmWelcomeController.php:141
182
  #: classes/views/frm-forms/new-form-overlay.php:112
183
  #: classes/views/shared/reports-info.php:24
readme.txt CHANGED
@@ -1,11 +1,11 @@
1
  === Formidable Form Builder - Contact Form, Survey & Quiz Forms Plugin for WordPress ===
2
  Plugin Name: Formidable Forms - Contact Form, Survey & Quiz Forms Plugin for WordPress
3
  Contributors: formidableforms, sswells, srwells
4
- Tags: forms, contact form, form builder, survey, form maker, form creator, paypal form, paypal, stripe, stripe form, aweber, aweber form, getresponse, getresponse form, calculator, price calculator, quote form, contact button, form manager, Akismet, payment form, survey form, donation form, email subscription, contact form widget, user registration form, wordpress registration, wordpress login form, constant contact, mailpoet, active campaign, salesforce, hubspot, campaign monitor, quiz builder, quiz, feedback form, mailchimp form
5
  Requires at least: 5.0
6
  Tested up to: 5.8.1
7
  Requires PHP: 5.6
8
- Stable tag: 5.0.10
9
 
10
  The most advanced WordPress forms plugin. Go beyond contact forms with our drag & drop form builder for surveys, quizzes, and more.
11
 
@@ -16,18 +16,18 @@ We built <a href="https://formidableforms.com/?utm_source=wprepo&utm_medium=link
16
 
17
  At Formidable, creating the most extendable online form builder plugin is our #1 priority. Unlike other WordPress form maker plugins, we believe in pushing the limits. We want to give you the tools to save time and create complex custom forms quickly!
18
 
19
- Before we explore the features of the powerful Formidable form builder plugin, you should know that Formidable is 100% mobile responsive. Your WordPress forms will always look great on all devices (desktop, laptop, tablets, and smartphones).
20
 
21
- Plus, we have optimized Formidable for speed and maximum server performance. We can confidently say that Formidable is one of the FASTEST WordPress form builders on the market.
22
 
23
  > <strong>Formidable Forms Pro</strong><br />
24
  > This form builder plugin is the free version of Formidable that comes with all the features you will ever need. Build an advanced email subscription form, multi-page form, file upload form, quiz, or a smart form with conditional logic. Stack on repeater fields, payment integrations, form templates, relationships, cascading dropdown fields. Don't forget the calculated fields, front-end form editing, and powerful WordPress Views to display data in web applications.
25
  > With Formidable, you get far more than just a contact form.
26
- > <a href="https://formidableforms.com/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend" title="Formidable">Click here to purchase the most advanced premium WordPress form builder plugin now!</a>
27
 
28
  You can start with our pre-built templates or create totally custom forms from scratch. All with an easy-to-use drag & drop form maker interface.
29
 
30
- https://www.youtube.com/watch?v=-eGuL_OWHw4&rel=0
31
 
32
  Let’s take a look at all the powerful features for making an amazing lead form, survey form, poll, subscription form, request a quote form, donation form, user registration form, or payment form.
33
 
@@ -41,7 +41,7 @@ Our form maker comes with all the powerful fields that you need to create a solu
41
 
42
  Formidable allows you to view all your quiz and survey entries right from your WordPress dashboard. When a user submits a web form, it's stored in your WordPress database so you won’t lose any leads.
43
 
44
- Formidable is a **100% GDPR-friendly** form generator. You can turn off IP tracking or stop saving submissions entirely. Or add a GDPR checkbox field to your lead forms and payment forms to collect consent.
45
 
46
  Need to import your leads to an external service like MailChimp? No problem. **Export leads to a CSV**, open it in Excel, or import anywhere.
47
 
@@ -49,7 +49,7 @@ You can also configure unlimited email notifications and autoresponders triggere
49
 
50
  On top of that, you can easily customize the success message after a contact form is submitted, or redirect visitors to another page.
51
 
52
- == The Only Form Maker Plugin with an Advanced Form Styler ==
53
 
54
  With our built-in styler, you can instantly customize the look and feel of your contact form. With just a few clicks, your email form can be transformed to match your website design.
55
 
@@ -81,7 +81,7 @@ You can even use the plugin to create a WooCommerce form with custom fields.
81
 
82
  == Make Data-Driven Web Applications with a Formidable View ==
83
 
84
- Formidable Views are by far the most powerful feature that makes Formidable far more than just a contact form builder plugin. Views allow you to flexibly display any submitted form data on the front-end of your website.
85
 
86
  Our customers use Formidable Views to create data-driven web applications. We see real estate listings, employment listings, event calendars, business or member directories, job boards, and other searchable databases.
87
 
@@ -126,7 +126,7 @@ With our front-end editing, you can build a custom profile form for users to kee
126
 
127
  You will not find any other WordPress form plugin offering a front-end editing solution with the same level of extendability.
128
 
129
- == All the Advanced Form Fields and Features You Need to Grow Your Business ==
130
 
131
  Formidable goes far above and beyond with features like multi-page forms, save and continue, cascading form fields, powerful conditional logic. Then add partial submissions, invisible spam protection, front-end user post submission, calculated fields, user-tracking, quizzes, and so much more. Additionally, our Payment fields will help you create an order form, donation form, booking form, or other payment form.
132
 
@@ -146,50 +146,50 @@ On top of that, our hooks and filters allow you to extend Formidable to meet you
146
 
147
  Since Formidable is not your average WordPress form plugin, this feature list is going to be very long. Read through it, or just install the most powerful WordPress form maker. Your choice :)
148
 
149
- * <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 an email form to a price calculator or complex online form. Make awesome quiz forms, and online forms the easy way with a simple WordPress drag and drop form maker. You don't have to be a code ninja.
150
- * <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 lets you format, filter, and display form submissions in Formidable Views to create solutions. Think job boards, event calendars, business directories, ratings systems, management solutions, and pretty much anything else you can come up with.
151
  * <a href="https://formidableforms.com/features/dynamically-add-form-fields/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Repeating field groups (repeaters)</a>. This is great for a registration form, application, or email form.
152
  * <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. This is great for a job application form (resumes), WordPress User Profile Form (avatars), or get a quote form.
153
  * <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? Create beautiful paged forms with rootline and progress indicators. Add conditional pages for a smart branching form.
154
- * <a href="https://formidableforms.com/features/cascading-dropdown-lookup-field/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Cascading lookup fields</a>. Autofill values in other form fields or drill down through options to reveal a final value. Designed for year/make/model fields in auto forms and country/state/city fields. Lookup fields can even get a price from another product form.
155
- * Datepicker fields with advanced <a href="https://formidableforms.com/features/datepicker-options-for-dates/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">datepicker options</a> including blackout dates, dynamic minimum and maximum dates, and inline calendars. Datepickers are great for email forms, basic online booking, and event registration.
156
- * Dynamic field relationships. Populate fields and link data between two forms. This helpful in to link employment applications to a job, quizzes to a class, an event registration to an event, or a sports registration to a team.
157
  * Add password fields with a password strength meter in a WordPress user registration form, profile form, or change password form.
158
  * Collect reviews with star ratings for feedback, recipe ratings, product review, event rating, and customer testimonial forms. Then share your ratings with Formidable Views.
159
- * <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 causing lost leads.
160
- * <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 based on user selections or user roles. Make complex forms simple and increase conversion rates.
161
  * <a href="https://formidableforms.com/features/email-autoresponders-wordpress/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Send email notifications & autoresponders</a>. Let clients know you received their message. Then create customized email notifications for multiple recipients and get info from an email form to those who need it.
162
  * Email routing. Conditionally send multiple autoresponder emails and notifications based on values in email forms, user registration forms, and payment forms.
163
  * Pricing fields for easy eCommerce forms with automatic price calculations. Drop in a product field, quantity, and total and you're good to go.
164
  * <a href="https://formidableforms.com/wordpress-calculator-plugin/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Calculator forms</a>. Create complex calculations and combine text from multiple fields. This is great for a mortgage calculator, auto loan calculator, and more. Price calculations give site visitors easy quotes and price estimates. We recommend range sliders too, for calculator forms your clients will love.
165
  * <a href="https://formidableforms.com/features/wordpress-visual-form-styler/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Visual style creator</a>. Our form creator allows you to custom brand calculator forms, email forms, quiz forms, and other WP forms to match your site. Change colors, borders, font sizes, and more without any code.
166
- * <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 forms and advanced layouts with multiple fields in a row with our CSS layout classes.
167
- * <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 WP forms are sized for any screen size. Ensure that everyone can use your surveys, calculator forms, and Stripe forms on any device.
168
  * <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 custom post types from front-end online forms. Send user-generated content quickly from a post creation form to a page.
169
- * <a href="https://formidableforms.com/features/form-entry-management-wordpress/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Simple entry management</a>. Flexibly display, edit, and delete form entries. Let logged-in users can manage their personal journal entries, weight tracking, guest blog posts, RSVP status, and more.
170
- * <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.
171
- * 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 basic email form or a long multi-paged registration form, users can save form progress and pick up where they left off.
172
  * <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 a survey, poll, and questionnaire. Or graph data in a variety of ways. Whatever you choose, it will update as new data is submitted (great for weight tracking over time).
173
- * Permissions. Limit visibility of specialized forms based on user role.
174
  * Entry limits. Limit surveys, registration forms, bookings, quizzes, or directory submissions to only allow one entry per user, IP, or cookie.
175
- * <a href="https://formidableforms.com/features/wordpress-schedule-forms-limit-responses/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Form scheduling</a>. Open and close event registration and signup forms on a specific date. Or close registration forms when the seat limit has been reached.
176
  * Conditionally redirect after a custom search form, payment form, feedback form, support ticket form, quiz, or other online form is submitted. Help clients find the answers they need and show a tailored result based on their selections or calculated fields.
177
- * We believe that forms should 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 you keep the ease and speed of a drag & drop form builder plugin. Our team labors for simplicity without sacrificing flexibility.
178
- * <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 to another service? Done.
179
- * <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 and style templates. Our WordPress form generator makes it FAST to build job application forms, calculator forms, and other types of online forms.
180
  * Import our <a href="https://formidableforms.com/form-templates/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">pre-built form templates</a> as a shortcut to a final product. Our growing form template library includes payment forms, a WooCommerce product creator, and more.
181
- * <a href="https://formidableforms.com/features/wcag-accessible-forms/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">WCAG accessible forms with A11Y and ADA compliance</a>. Ensure your survey, lead capture form, quizzes, and other online forms are compliant and available to everyone. Allow those using screenreaders to successfully use your WordPress site.
182
  * <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. Get instant and powerful anti-spam features from honeypot, invisible Google reCAPTCHA, Akismet, and the WordPress comment blacklist.
183
  * <a href="https://formidableforms.com/features/fill-out-forms-automatically/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Fill fields automatically</a> with values from the user profile or posts (i.e. custom fields). When a user is logged in, fill known values like name and email address.
184
- * <a href="https://formidableforms.com/features/white-label-form-builder-wordpress/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">White label</a>. Replace the Formidable branding with your own in the admin area. Plus, we never show "powered by" links in your free online form.
185
  * <a href="https://formidableforms.com/features/wordpress-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. You can even allow users to create new subdomains with WordPress multisite forms.
186
  * <a href="https://formidableforms.com/features/digital-form-signatures/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Digital signature forms</a>. Eliminate paper forms with a digital signature field in contracts, application forms and more.
187
  * <a href="https://formidableforms.com/features/form-action-automation-scheduling/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Form action automation</a>. Schedule email notifications, SMS messages, and webhooks to trigger later. You can automatically delete guest posts after 30 days, send weekly digests, or trigger happy birthday text messages from a lead form.
188
- * <a href="https://formidableforms.com/features/wordpress-form-api/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Formidable Forms API</a>. Send submissions to other REST APIs and add a set of form webhooks. This includes the option to send submissions from one Formidable site to another.
189
  * <a href="https://formidableforms.com/features/quiz-maker-forms/?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 grading is automatically done for you with our quiz plugin.
190
  * <a href="https://formidableforms.com/knowledgebase/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">World class support</a>. Have questions on how to use our form maker or set up your web application? We are happy to help. Our passion is to help you <strong>defy the limits</strong> to take on bigger projects, earn more clients, and grow your business.
191
 
192
- == Payment Forms, Form APIs, and Marketing Integrations ==
193
  In addition to all the features listed above, power up your email forms, surveys, and quizzes with these integrations.
194
 
195
  * <a href="https://formidableforms.com/features/paypal-wordpress-payments/?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 and calculate a total in a PayPal form or donation form.
@@ -197,20 +197,20 @@ In addition to all the features listed above, power up your email forms, surveys
197
  * <a href="https://formidableforms.com/features/authorize-net-payments/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Authorize.net AIM Payment Forms</a>. Process one-time payments in order forms and price calculators with Authorize.net AIM. For recurring payments or easier security compliance, we recommend Stripe.
198
  * <a href="https://formidableforms.com/features/customizable-woocommerce-forms/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">WooCommerce product configurator</a>. Add custom fields to a WooCommerce product order form and collect extra data when a product is added to the cart. Use calculations in your WooCommerce form for variable pricing and upload files with orders.
199
  * <a href="https://formidableforms.com/features/mailchimp-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">MailChimp Forms</a>. Add and update leads in a MailChimp email marketing list from a lead form, online order, or email form.
200
- * <a href="https://formidableforms.com/features/entries-to-constant-contact/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Constant Contact Forms</a>. Create leads automatically in Constant Contact with a newsletter signup form.
201
  * <a href="https://formidableforms.com/features/form-entries-to-getresponse/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">GetResponse Forms</a>. Collect leads and add them to GetResponse, and trigger GetResponse marketing automations.
202
- * <a href="https://formidableforms.com/features/aweber-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">AWeber Forms</a>. Subscribe users to an AWeber mailing list when a newsletter signup form is submitted.
203
- * <a href="https://formidableforms.com/features/mailpoet-newsletters-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">MailPoet Newsletter forms</a>. Fill your email marketing lists from newsletter signup forms. Then send WordPress newsletters from your own site using MailPoet.
204
- * <a href="https://formidableforms.com/features/highrise-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Highrise Forms</a>. Add leads to your Highrise CRM account any time a WordPress form is submitted.
205
- * <a href="https://formidableforms.com/features/form-entries-to-salesforce/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Salesforce Forms</a>. Create leads and any other Salesforce objects automatically.
206
- * <a href="https://formidableforms.com/features/entries-to-activecampaign/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">ActiveCampaign Forms</a>. Let your form pull double duty with the ActiveCampaign integration. Save leads from a donation form, post creation form, user registration form, or email form.
207
  * <a href="https://formidableforms.com/features/form-entries-to-hubspot/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">HubSpot Forms</a>. Route lead data to HubSpot CRM.
208
- * <a href="https://formidableforms.com/features/twilio-sms-form-notifications/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Twilio for SMS Forms</a>. Collect feedback, votes and poll responses via SMS text or send SMS notifications when entries are submitted. Get notified instantly when a payment form is completed, or let your leads know you received their message.
209
- * <a href="https://formidableforms.com/features/wpml-translated-forms/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">WPML Multilingual Forms</a>. Translate your WordPress forms into multiple languages using our integrated multilingual forms.
210
- * <a href="https://formidableforms.com/features/polylang-multilingual-forms/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Polylang Multilingual Forms</a>. Get the form creator with Polylang bilingual or multilingual contact forms.
211
- * <a href="https://formidableforms.com/features/form-entry-routing-with-zapier/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Zapier Forms</a>. Connect with thousands of applications through Zapier from a lead form, quote form, and other web forms. Insert a new row in a Google docs spreadsheet, post on Twitter, or upload a Dropbox file from a feedback form.
212
  * <a href="https://formidableforms.com/features/bootstrap-form-styling/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Bootstrap Form Styles</a>. Instantly add Bootstrap form styling to a survey form and registration form.
213
- * <a href="https://formidableforms.com/features/bootstrap-modal-forms/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Bootstrap Modal Form</a>. Open login forms, Formidable views, shortcodes, and other content in a Bootstrap modal popup.
214
 
215
  After reading this feature list, you can probably imagine why Formidable is the most advanced WordPress form plugin on the market.
216
 
@@ -246,9 +246,7 @@ The fastest way to build a form is to use the template we built for you. After y
246
 
247
  Go to the Formidable page and click "add new". Choose the Contact Us form template or another free template and click "Create".
248
 
249
- Next, edit or create a WordPress contact page. Click the "Formidable" button to open the shortcode generator. Choose your new Stripe form, quiz, or web form and insert it into the WordPress page. Save the page for a beautiful WP contact form, ready to collect and store your leads.
250
-
251
- 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>.
252
 
253
  = Why isn't WordPress sending emails? =
254
  When you do not receive emails, try the following steps:
@@ -327,7 +325,7 @@ The Formidable drag & drop form builder combined with our add-ons is the most po
327
  * Cosmos Style Quiz
328
  * Create Your Own Adventure Quiz
329
 
330
- To see more, visit our <a href="https://formidableforms.com/form-templates/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin">Form Template Gallery</a> which has almost 100 pre-made templates.
331
 
332
  = How can I get access to all advanced features? =
333
  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 Pro</a>. A Pro license gives you access to the full version of Formidable for more advanced options, Formidable Views, graphs and stats, priority support, and Formidable Add-ons!
@@ -340,7 +338,7 @@ Our Stripe integration helps you quickly accept credit card payments online. Our
340
 
341
  = Which field types does Formidable offer? =
342
 
343
- Our online form maker comes with all the powerful form fields that you need to create a solution-focused form, fast!
344
 
345
  * Single line text - Great for name, phone number, address, and more.
346
  * Email
@@ -392,7 +390,7 @@ Additionally, our Payment fields will help you create an order form, donation fo
392
 
393
  Yes, it's easy to import and export. This is incredibly useful for developers and agencies who are building websites for clients. You can also create custom form templates to use on client websites.
394
 
395
- You can also import from other WordPress contact form plugins such as <a href="https://wordpress.org/plugins/formidable-gravity-forms-importer/">Gravity Forms</a> and Pirate Forms. Although we don't have an importer available, this is also a great Caldera alternative since it's no longer supported.
396
 
397
  = Can I integrate with my CRM or email marketing service? =
398
 
@@ -440,6 +438,10 @@ Using our Zapier integration, you can easily connect Formidable with over 1000+
440
  See all <a href="https://zapier.com/apps/formidable/integrations">Formidable Zapier Integrations</a>.
441
 
442
  == Changelog ==
 
 
 
 
443
  = 5.0.10 =
444
  - Security: Improved how data is sanitized when previewing in the style manager.
445
  - Fix: Prevent a warning when trying to get inbox messages from the API when no messages are being returned.
@@ -450,49 +452,14 @@ See all <a href="https://zapier.com/apps/formidable/integrations">Formidable Zap
450
  = 5.0.09 =
451
  - The option to check entries for spam using JavaScript is now on by default for all new forms. We recommend turning this on for older forms that may be receiving spam entries, especially forms that include file uploads. After turning this feature on, make sure to also clear any caching plugins to avoid issues with cached pages with missing tokens.
452
  - New: Pre-determined option data will no longer be sent to Akismet to help reduce the number of false positive results.
453
- - Fix: Significantly reduced the amount of memory required to load form settings for websites with fewer than 50 pages with a lot of data.
454
  - Fix: Author email, url, or name are no longer included in comment info when sending data to Akismet so that duplicate information is not sent.
455
  - Fix: Field groups could not be moved because of a missing class on the drag handle.
456
 
457
  = 5.0.08 =
458
  - Deprecated: Calls to FrmFormsController::preview will no longer try to load WordPress if it is not already initialized. This could cause issues for users that still use old preview links (see https://formidableforms.com/knowledgebase/php-examples/#kb-use-the-old-preview-links for an example).
459
- - Security: Unsafe HTML will now be stripped from global message defaults, whitelabel settings, and when importing forms and fields with XML if the user saving HTML does not have the unfiltered_html permission or if the DISALLOW_UNFILTERED_HTML constant is set.
460
  - Updated Bootstrap used in back end to version 3.4.1.
461
  - A few images that were being loaded from S3 and CDN urls are now included in the plugin instead.
462
 
463
- = 5.0.07 =
464
- - Security: Unsafe HTML will now be stripped from field labels, descriptions, and custom HTML, as well as form titles, descriptions, custom submit text, custom submit HTML, before HTML, after HTML, and success message if the user saving HTML does not have the unfiltered_html permission or if the DISALLOW_UNFILTERED_HTML constant is set.
465
- - New: Added new frm_akismet_values filter to help improve Akismet integration.
466
- - Fix: The Akismet API was getting called if Akismet was set up even if the form had Akismet turned off.
467
- - Fix: Updated the styling when a field option is being dragged and dropped.
468
-
469
- = 5.0.06 =
470
- - New: Added new frm_export_csv_headings filter to make it easier to add and remove exported CSV headings.
471
- - New: When clicking an inactive action that requires pro, the required pro license will be properly shown in the popup.
472
- - New: Added new frm_fields_to_validate, frm_submit_button_html, and frm_fields_for_csv_export filters.
473
- - Fix: Improved the accessibility of field group dropdowns and field group row layout pop ups.
474
- - Fix: The caret icon on the dropdown was not positioned properly for the Formidable Gutenberg block.
475
- - Fix: When clicking the Formidable media button in Elementor, the pop up was appearing as empty with no content.
476
- - Fix: Required radio, checkbox, and name fields were not including the aria-required="true" attribute or the aria-invalid attribute when JavaScript validation was enabled.
477
- - Fix: Required name fields were not showing error messages when JavaScript validation was enabled.
478
-
479
- = 5.0.05 =
480
- * Deprecated the option to disable CSS Grids in form layouts.
481
- * Fix: JavaScript validation was failing to validate for many fields with custom patterns because extra conflicting HTML was sometimes being added to the check.
482
- * Fix: Field dropdowns are now more accessible and it should be easier to delete and duplicate fields with a screen reader.
483
- * Fix: Updated form padding on admin page so forms with custom padding don't appear small in the back end.
484
-
485
- = 5.0.04 =
486
- * New: Custom HTML for errors is now also applied when validating with JavaScript.
487
- * New: Added a button to quickly save and reload after activating a new plugin from the settings page.
488
- * New: Added several new filters required to support the new new Formidable surveys add on.
489
-
490
- = 5.0.03 =
491
- * New: Added an Elementor widget.
492
- * New: When duplicating fields, most unsaved changes will now duplicate as well.
493
- * New: Next button label and slider field label previews will now update as soon as the setting is changed in the form builder.
494
- * New: Slider field previews will now update when the min and max values are updated in the form builder.
495
- * Fix: The search dropdown was getting cut off on pages with no search results.
496
- * Fix: When legacy views or visual views are active, both versions were appearing active on the add ons page.
497
-
498
  <a href="https://raw.githubusercontent.com/Strategy11/formidable-forms/master/changelog.txt">See changelog for all versions</a>
1
  === Formidable Form Builder - Contact Form, Survey & Quiz Forms Plugin for WordPress ===
2
  Plugin Name: Formidable Forms - Contact Form, Survey & Quiz Forms Plugin for WordPress
3
  Contributors: formidableforms, sswells, srwells
4
+ Tags: forms, contact form, form builder, survey, free, form maker, form creator, paypal form, paypal, stripe, stripe form, aweber, aweber form, getresponse, getresponse form, calculator, price calculator, quote form, contact button, form manager, Akismet, payment form, survey form, donation form, email subscription, contact form widget, user registration form, wordpress registration, wordpress login form, constant contact, mailpoet, active campaign, salesforce, hubspot, campaign monitor, quiz builder, quiz, feedback form, mailchimp form
5
  Requires at least: 5.0
6
  Tested up to: 5.8.1
7
  Requires PHP: 5.6
8
+ Stable tag: 5.0.11
9
 
10
  The most advanced WordPress forms plugin. Go beyond contact forms with our drag & drop form builder for surveys, quizzes, and more.
11
 
16
 
17
  At Formidable, creating the most extendable online form builder plugin is our #1 priority. Unlike other WordPress form maker plugins, we believe in pushing the limits. We want to give you the tools to save time and create complex custom forms quickly!
18
 
19
+ Before we explore the features of the powerful Formidable contact form builder plugin, you should know that Formidable is 100% mobile responsive. Your WordPress forms will always look great on all devices (desktop, laptop, tablets, and smartphones).
20
 
21
+ Plus, we have optimized Formidable for speed and maximum server performance. We can confidently say that this is one of the FASTEST WordPress form builders on the market.
22
 
23
  > <strong>Formidable Forms Pro</strong><br />
24
  > This form builder plugin is the free version of Formidable that comes with all the features you will ever need. Build an advanced email subscription form, multi-page form, file upload form, quiz, or a smart form with conditional logic. Stack on repeater fields, payment integrations, form templates, relationships, cascading dropdown fields. Don't forget the calculated fields, front-end form editing, and powerful WordPress Views to display data in web applications.
25
  > With Formidable, you get far more than just a contact form.
26
+ > <a href="https://formidableforms.com/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion" rel="friend">Click here to purchase the most advanced premium WordPress form builder plugin now!</a>
27
 
28
  You can start with our pre-built templates or create totally custom forms from scratch. All with an easy-to-use drag & drop form maker interface.
29
 
30
+ https://youtu.be/7X2BqhRsXcg
31
 
32
  Let’s take a look at all the powerful features for making an amazing lead form, survey form, poll, subscription form, request a quote form, donation form, user registration form, or payment form.
33
 
41
 
42
  Formidable allows you to view all your quiz and survey entries right from your WordPress dashboard. When a user submits a web form, it's stored in your WordPress database so you won’t lose any leads.
43
 
44
+ It's a **100% GDPR-friendly** form generator. You can turn off IP tracking or stop saving submissions entirely. Or add a GDPR checkbox field to your lead forms and payment forms to collect consent.
45
 
46
  Need to import your leads to an external service like MailChimp? No problem. **Export leads to a CSV**, open it in Excel, or import anywhere.
47
 
49
 
50
  On top of that, you can easily customize the success message after a contact form is submitted, or redirect visitors to another page.
51
 
52
+ == The Only Form Maker Plugin with an Advanced Styler ==
53
 
54
  With our built-in styler, you can instantly customize the look and feel of your contact form. With just a few clicks, your email form can be transformed to match your website design.
55
 
81
 
82
  == Make Data-Driven Web Applications with a Formidable View ==
83
 
84
+ Formidable Views are by far the most powerful feature that makes Formidable far more than just a contact form builder plugin. Views allow you to flexibly display any submitted data on the front-end of your website.
85
 
86
  Our customers use Formidable Views to create data-driven web applications. We see real estate listings, employment listings, event calendars, business or member directories, job boards, and other searchable databases.
87
 
126
 
127
  You will not find any other WordPress form plugin offering a front-end editing solution with the same level of extendability.
128
 
129
+ == All the Advanced Fields and Features You Need to Grow Your Business ==
130
 
131
  Formidable goes far above and beyond with features like multi-page forms, save and continue, cascading form fields, powerful conditional logic. Then add partial submissions, invisible spam protection, front-end user post submission, calculated fields, user-tracking, quizzes, and so much more. Additionally, our Payment fields will help you create an order form, donation form, booking form, or other payment form.
132
 
146
 
147
  Since Formidable is not your average WordPress form plugin, this feature list is going to be very long. Read through it, or just install the most powerful WordPress form maker. Your choice :)
148
 
149
+ * <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 an email form to a price calculator or complex online form. Make awesome quiz forms and online forms the easy way with a simple WordPress drag and drop form maker. You don't have to be a code ninja to get fields in a row.
150
+ * <a href="https://formidableforms.com/features/display-form-data-views/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Display data with Views</a>. Other WordPress form builder plugins only let you collect data. Formidable lets you format, filter, and display submissions in Formidable Views to create solutions. Think job boards, event calendars, business directories, ratings systems, management solutions, and pretty much anything else you can come up with.
151
  * <a href="https://formidableforms.com/features/dynamically-add-form-fields/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Repeating field groups (repeaters)</a>. This is great for a registration form, application, or email form.
152
  * <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. This is great for a job application form (resumes), WordPress User Profile Form (avatars), or get a quote form.
153
  * <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? Create beautiful paged forms with rootline and progress indicators. Add conditional pages for a smart branching form.
154
+ * <a href="https://formidableforms.com/features/cascading-dropdown-lookup-field/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Cascading lookup fields</a>. Autofill values in other fields or drill down through options to reveal a final value. Designed for year/make/model chained fields in auto forms and country/state/city fields. Lookup fields can even get a price from another product form.
155
+ * Datepicker fields with advanced datepicker options including blackout dates, dynamic minimum and maximum dates, and inline calendars. Datepickers are great for email forms, basic online booking, and event registration.
156
+ * Dynamic field relationships. Populate fields and link data between multiple fields. This helpful in to link employment applications to a job, quizzes to a class, an event registration to an event, or a sports registration to a team.
157
  * Add password fields with a password strength meter in a WordPress user registration form, profile form, or change password form.
158
  * Collect reviews with star ratings for feedback, recipe ratings, product review, event rating, and customer testimonial forms. Then share your ratings with Formidable Views.
159
+ * Confirmation fields. Double check email addresses or passwords and prevent typos from causing lost leads.
160
+ * <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 based on user selections or user roles, simplify, and increase conversion rates.
161
  * <a href="https://formidableforms.com/features/email-autoresponders-wordpress/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Send email notifications & autoresponders</a>. Let clients know you received their message. Then create customized email notifications for multiple recipients and get info from an email form to those who need it.
162
  * Email routing. Conditionally send multiple autoresponder emails and notifications based on values in email forms, user registration forms, and payment forms.
163
  * Pricing fields for easy eCommerce forms with automatic price calculations. Drop in a product field, quantity, and total and you're good to go.
164
  * <a href="https://formidableforms.com/wordpress-calculator-plugin/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Calculator forms</a>. Create complex calculations and combine text from multiple fields. This is great for a mortgage calculator, auto loan calculator, and more. Price calculations give site visitors easy quotes and price estimates. We recommend range sliders too, for calculator forms your clients will love.
165
  * <a href="https://formidableforms.com/features/wordpress-visual-form-styler/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Visual style creator</a>. Our form creator allows you to custom brand calculator forms, email forms, quiz forms, and other WP forms to match your site. Change colors, borders, font sizes, and more without any code.
166
+ * Flexible layout design. Build mobile responsive forms and advanced layouts with multiple fields in a row with our CSS layout classes.
167
+ * Mobile-friendly, responsive forms. All of our WP forms are sized for any screen size. Ensure that everyone can use your surveys, calculator forms, and Stripe forms on any device.
168
  * <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 custom post types from front-end online forms. Send user-generated content quickly from a post creation form to a page.
169
+ * <a href="https://formidableforms.com/features/form-entry-management-wordpress/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Simple entry management</a>. Flexibly display, edit, and delete entries. Let logged-in users can manage their personal journal entries, weight tracking, guest blog posts, RSVP status, and more.
170
+ * WordPress front-end editing. Allow users to edit their entries and posts from the front-end of your site. Create an online journaling platform, member directory, classified ads, community recipes, and more.
171
+ * 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 submissions</a>. Whether it's a basic email form or a long multi-paged registration form, users can save progress and pick up where they left off.
172
  * <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 a survey, poll, and questionnaire. Or graph data in a variety of ways. Whatever you choose, it will update as new data is submitted (great for weight tracking over time).
173
+ * Permissions. Lock visibility and access based on user role.
174
  * Entry limits. Limit surveys, registration forms, bookings, quizzes, or directory submissions to only allow one entry per user, IP, or cookie.
175
+ * Form scheduling. Open and close event registration and signup forms on a specific date. Or close registration forms when the seat limit has been reached.
176
  * Conditionally redirect after a custom search form, payment form, feedback form, support ticket form, quiz, or other online form is submitted. Help clients find the answers they need and show a tailored result based on their selections or calculated fields.
177
+ * 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 HTML</a> (like Contact Form 7). But you keep the ease and speed of a drag & drop form builder plugin. Our team labors for simplicity without sacrificing flexibility.
178
+ * <a href="https://formidableforms.com/features/importing-exporting-wordpress-forms/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Import and export submissions, styles, and views</a>. Quickly move your work and entries to another site. Need to export leads to another service? Done.
179
+ * Form templates for instant form building. Get started quickly with the most advanced form creator that includes form templates and style templates. Our WordPress form generator makes it FAST to build job application forms, calculator forms, and other types of online forms.
180
  * Import our <a href="https://formidableforms.com/form-templates/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">pre-built form templates</a> as a shortcut to a final product. Our growing form template library includes payment forms, a WooCommerce product creator, and more.
181
+ * WCAG accessible forms with A11Y and ADA compliance. Ensure your survey, lead capture form, quizzes, and other online forms are compliant and available to everyone. Allow those using screenreaders to successfully use your WordPress site.
182
  * <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. Get instant and powerful anti-spam features from honeypot, invisible Google reCAPTCHA, Akismet, and the WordPress comment blacklist.
183
  * <a href="https://formidableforms.com/features/fill-out-forms-automatically/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Fill fields automatically</a> with values from the user profile or posts (i.e. custom fields). When a user is logged in, fill known values like name and email address.
184
+ * <a href="https://formidableforms.com/features/white-label-form-builder-wordpress/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">White label</a>. Replace our branding with your own in the admin area. Plus, we never show "powered by" links in your free online form.
185
  * <a href="https://formidableforms.com/features/wordpress-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. You can even allow users to create new subdomains with WordPress multisite forms.
186
  * <a href="https://formidableforms.com/features/digital-form-signatures/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Digital signature forms</a>. Eliminate paper forms with a digital signature field in contracts, application forms and more.
187
  * <a href="https://formidableforms.com/features/form-action-automation-scheduling/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Form action automation</a>. Schedule email notifications, SMS messages, and webhooks to trigger later. You can automatically delete guest posts after 30 days, send weekly digests, or trigger happy birthday text messages from a lead form.
188
+ * <a href="https://formidableforms.com/features/wordpress-form-api/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Forms API</a>. Send submissions to other REST APIs and add a set of webhooks. This includes the option to send submissions from one site to another.
189
  * <a href="https://formidableforms.com/features/quiz-maker-forms/?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 grading is automatically done for you with our quiz plugin.
190
  * <a href="https://formidableforms.com/knowledgebase/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">World class support</a>. Have questions on how to use our form maker or set up your web application? We are happy to help. Our passion is to help you <strong>defy the limits</strong> to take on bigger projects, earn more clients, and grow your business.
191
 
192
+ == Payment Forms, APIs, and Marketing Integrations ==
193
  In addition to all the features listed above, power up your email forms, surveys, and quizzes with these integrations.
194
 
195
  * <a href="https://formidableforms.com/features/paypal-wordpress-payments/?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 and calculate a total in a PayPal form or donation form.
197
  * <a href="https://formidableforms.com/features/authorize-net-payments/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Authorize.net AIM Payment Forms</a>. Process one-time payments in order forms and price calculators with Authorize.net AIM. For recurring payments or easier security compliance, we recommend Stripe.
198
  * <a href="https://formidableforms.com/features/customizable-woocommerce-forms/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">WooCommerce product configurator</a>. Add custom fields to a WooCommerce product order form and collect extra data when a product is added to the cart. Use calculations in your WooCommerce form for variable pricing and upload files with orders.
199
  * <a href="https://formidableforms.com/features/mailchimp-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">MailChimp Forms</a>. Add and update leads in a MailChimp email marketing list from a lead form, online order, or email form.
200
+ * Constant Contact. Create leads automatically in Constant Contact with a newsletter signup form.
201
  * <a href="https://formidableforms.com/features/form-entries-to-getresponse/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">GetResponse Forms</a>. Collect leads and add them to GetResponse, and trigger GetResponse marketing automations.
202
+ * AWeber Forms. Subscribe users to an AWeber mailing list when a newsletter signup form is submitted.
203
+ * <a href="https://formidableforms.com/features/mailpoet-newsletters-addon/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">MailPoet Newsletters</a>. Fill your email marketing lists from newsletter signup forms. Then send WordPress newsletters from your own site using MailPoet.
204
+ * Highrise. Add leads to your Highrise CRM account any time a WordPress form is submitted.
205
+ * Salesforce Forms. Create leads and any other Salesforce objects automatically.
206
+ * ActiveCampaign. Pull double duty with the ActiveCampaign integration. Save leads from a donation form, post creation form, user registration form, or email form.
207
  * <a href="https://formidableforms.com/features/form-entries-to-hubspot/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">HubSpot Forms</a>. Route lead data to HubSpot CRM.
208
+ * Twilio for SMS Forms. Collect feedback, votes and poll responses via SMS text or send SMS notifications when entries are submitted. Get notified instantly when a payment form is completed, or let your leads know you received their message.
209
+ * WPML Multilingual Forms. Translate your WordPress forms into multiple languages using our integrated multilingual forms.
210
+ * Polylang. Get the form creator with Polylang bilingual or multilingual contact forms.
211
+ * <a href="https://formidableforms.com/features/form-entry-routing-with-zapier/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Zapier</a>. Connect with thousands of applications through Zapier from a lead form, quote form, and other web forms. Insert a new row in a Google docs spreadsheet, post on Twitter, or upload a Dropbox file from a feedback form.
212
  * <a href="https://formidableforms.com/features/bootstrap-form-styling/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Bootstrap Form Styles</a>. Instantly add Bootstrap form styling to a survey form and registration form.
213
+ * <a href="https://formidableforms.com/features/bootstrap-modal-forms/?utm_source=wprepo&utm_medium=link&utm_campaign=liteversion">Bootstrap Modal Form</a>. Open login forms, Views, shortcodes, and other content in a Bootstrap modal popup.
214
 
215
  After reading this feature list, you can probably imagine why Formidable is the most advanced WordPress form plugin on the market.
216
 
246
 
247
  Go to the Formidable page and click "add new". Choose the Contact Us form template or another free template and click "Create".
248
 
249
+ Next, edit or create a WordPress contact page. Click the "Formidable" button to open the shortcode generator. Choose your new Stripe form, quiz, or web form and insert it into the WordPress page. Save the page for a beautiful WP contact form, ready to collect and store your leads. The contact form template will get you up and running fast.
 
 
250
 
251
  = Why isn't WordPress sending emails? =
252
  When you do not receive emails, try the following steps:
325
  * Cosmos Style Quiz
326
  * Create Your Own Adventure Quiz
327
 
328
+ To see more, visit our <a href="https://formidableforms.com/form-templates/?utm_source=wprepo&utm_medium=link&utm_campaign=liteplugin">Form Template Gallery</a> which has over 150 pre-made templates.
329
 
330
  = How can I get access to all advanced features? =
331
  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 Pro</a>. A Pro license gives you access to the full version of Formidable for more advanced options, Formidable Views, graphs and stats, priority support, and Formidable Add-ons!
338
 
339
  = Which field types does Formidable offer? =
340
 
341
+ Our online form maker comes with all the powerful fields that you need to create a solution-focused form, fast!
342
 
343
  * Single line text - Great for name, phone number, address, and more.
344
  * Email
390
 
391
  Yes, it's easy to import and export. This is incredibly useful for developers and agencies who are building websites for clients. You can also create custom form templates to use on client websites.
392
 
393
+ You can also import from other WordPress contact form plugins such as <a href="https://wordpress.org/plugins/formidable-gravity-forms-importer/">Gravity Forms</a> and Pirate Forms. Although we don't have an importer available, this is also a great Caldera Forms alternative since it's no longer supported.
394
 
395
  = Can I integrate with my CRM or email marketing service? =
396
 
438
  See all <a href="https://zapier.com/apps/formidable/integrations">Formidable Zapier Integrations</a>.
439
 
440
  == Changelog ==
441
+ = 5.0.11 =
442
+ - Fix: Required credit cards were causing an issue with JavaScript validation.
443
+ - Fix: Empty required appointment fields were not properly validating with JavaScript.
444
+
445
  = 5.0.10 =
446
  - Security: Improved how data is sanitized when previewing in the style manager.
447
  - Fix: Prevent a warning when trying to get inbox messages from the API when no messages are being returned.
452
  = 5.0.09 =
453
  - The option to check entries for spam using JavaScript is now on by default for all new forms. We recommend turning this on for older forms that may be receiving spam entries, especially forms that include file uploads. After turning this feature on, make sure to also clear any caching plugins to avoid issues with cached pages with missing tokens.
454
  - New: Pre-determined option data will no longer be sent to Akismet to help reduce the number of false positive results.
455
+ - Fix: Significantly reduced the amount of memory required to load settings for websites with fewer than 50 pages with a lot of data.
456
  - Fix: Author email, url, or name are no longer included in comment info when sending data to Akismet so that duplicate information is not sent.
457
  - Fix: Field groups could not be moved because of a missing class on the drag handle.
458
 
459
  = 5.0.08 =
460
  - Deprecated: Calls to FrmFormsController::preview will no longer try to load WordPress if it is not already initialized. This could cause issues for users that still use old preview links (see https://formidableforms.com/knowledgebase/php-examples/#kb-use-the-old-preview-links for an example).
461
+ - Security: Unsafe HTML will now be stripped from global message defaults, whitelabel settings, and when importing with XML if the user saving HTML does not have the unfiltered_html permission or if the DISALLOW_UNFILTERED_HTML constant is set.
462
  - Updated Bootstrap used in back end to version 3.4.1.
463
  - A few images that were being loaded from S3 and CDN urls are now included in the plugin instead.
464
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
465
  <a href="https://raw.githubusercontent.com/Strategy11/formidable-forms/master/changelog.txt">See changelog for all versions</a>