Version Description
- Messages tab usability improvements, limited choice bugfixes in Radio, Checkbox and Dropdown fields.
Download this release
Release Info
Developer | happyforms |
Plugin | Form builder to get in touch with visitors, grow your email list and collect payments — Happyforms |
Version | 1.20.0 |
Comparing to | |
See all releases |
Code changes from version 1.19.1 to 1.20.0
- bundles/js/frontend.js +1 -1
- core/assets/css/customize.css +7 -33
- core/classes/class-form-email.php +56 -2
- core/classes/parts/class-part-checkbox.php +2 -2
- core/classes/parts/class-part-radio.php +2 -2
- core/classes/parts/class-part-select.php +2 -2
- core/helpers/helper-form-templates.php +16 -0
- core/helpers/helper-misc.php +0 -10
- core/templates/parts/frontend-checkbox.php +1 -1
- core/templates/parts/frontend-radio.php +1 -1
- core/templates/parts/frontend-select.php +6 -1
- happyforms.php +2 -2
- inc/assets/js/customize.js +1 -0
- inc/assets/js/frontend.js +4 -0
- inc/classes/class-happyforms.php +279 -0
- inc/classes/class-message-controller.php +11 -0
- inc/templates/customize-controls/text_dummy_reset.php +9 -0
- inc/templates/email-owner.php +37 -1
- inc/templates/email-user.php +37 -1
- integrations/assets/css/admin.css +29 -13
- integrations/classes/class-integrations-page-controller.php +1 -0
- integrations/templates/widget-constant-contact-dummy.php +10 -0
- integrations/templates/widget-emailoctopus-dummy.php +21 -0
- integrations/templates/widget-sendgrid-dummy.php +1 -1
- integrations/templates/widget-sendinblue-dummy.php +1 -1
- integrations/templates/widget-stripe-dummy.php +3 -3
- languages/happyforms.pot +287 -54
- readme.txt +13 -3
bundles/js/frontend.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
!function(n){"use strict";function d(n,t){var r=(65535&n)+(65535&t);return(n>>16)+(t>>16)+(r>>16)<<16|65535&r}function f(n,t,r,e,o,u){return d((u=d(d(t,n),d(e,u)))<<o|u>>>32-o,r)}function l(n,t,r,e,o,u,c){return f(t&r|~t&e,n,t,o,u,c)}function g(n,t,r,e,o,u,c){return f(t&e|r&~e,n,t,o,u,c)}function v(n,t,r,e,o,u,c){return f(t^r^e,n,t,o,u,c)}function m(n,t,r,e,o,u,c){return f(r^(t|~e),n,t,o,u,c)}function c(n,t){var r,e,o,u;n[t>>5]|=128<<t%32,n[14+(t+64>>>9<<4)]=t;for(var c=1732584193,f=-271733879,i=-1732584194,a=271733878,h=0;h<n.length;h+=16)c=l(r=c,e=f,o=i,u=a,n[h],7,-680876936),a=l(a,c,f,i,n[h+1],12,-389564586),i=l(i,a,c,f,n[h+2],17,606105819),f=l(f,i,a,c,n[h+3],22,-1044525330),c=l(c,f,i,a,n[h+4],7,-176418897),a=l(a,c,f,i,n[h+5],12,1200080426),i=l(i,a,c,f,n[h+6],17,-1473231341),f=l(f,i,a,c,n[h+7],22,-45705983),c=l(c,f,i,a,n[h+8],7,1770035416),a=l(a,c,f,i,n[h+9],12,-1958414417),i=l(i,a,c,f,n[h+10],17,-42063),f=l(f,i,a,c,n[h+11],22,-1990404162),c=l(c,f,i,a,n[h+12],7,1804603682),a=l(a,c,f,i,n[h+13],12,-40341101),i=l(i,a,c,f,n[h+14],17,-1502002290),c=g(c,f=l(f,i,a,c,n[h+15],22,1236535329),i,a,n[h+1],5,-165796510),a=g(a,c,f,i,n[h+6],9,-1069501632),i=g(i,a,c,f,n[h+11],14,643717713),f=g(f,i,a,c,n[h],20,-373897302),c=g(c,f,i,a,n[h+5],5,-701558691),a=g(a,c,f,i,n[h+10],9,38016083),i=g(i,a,c,f,n[h+15],14,-660478335),f=g(f,i,a,c,n[h+4],20,-405537848),c=g(c,f,i,a,n[h+9],5,568446438),a=g(a,c,f,i,n[h+14],9,-1019803690),i=g(i,a,c,f,n[h+3],14,-187363961),f=g(f,i,a,c,n[h+8],20,1163531501),c=g(c,f,i,a,n[h+13],5,-1444681467),a=g(a,c,f,i,n[h+2],9,-51403784),i=g(i,a,c,f,n[h+7],14,1735328473),c=v(c,f=g(f,i,a,c,n[h+12],20,-1926607734),i,a,n[h+5],4,-378558),a=v(a,c,f,i,n[h+8],11,-2022574463),i=v(i,a,c,f,n[h+11],16,1839030562),f=v(f,i,a,c,n[h+14],23,-35309556),c=v(c,f,i,a,n[h+1],4,-1530992060),a=v(a,c,f,i,n[h+4],11,1272893353),i=v(i,a,c,f,n[h+7],16,-155497632),f=v(f,i,a,c,n[h+10],23,-1094730640),c=v(c,f,i,a,n[h+13],4,681279174),a=v(a,c,f,i,n[h],11,-358537222),i=v(i,a,c,f,n[h+3],16,-722521979),f=v(f,i,a,c,n[h+6],23,76029189),c=v(c,f,i,a,n[h+9],4,-640364487),a=v(a,c,f,i,n[h+12],11,-421815835),i=v(i,a,c,f,n[h+15],16,530742520),c=m(c,f=v(f,i,a,c,n[h+2],23,-995338651),i,a,n[h],6,-198630844),a=m(a,c,f,i,n[h+7],10,1126891415),i=m(i,a,c,f,n[h+14],15,-1416354905),f=m(f,i,a,c,n[h+5],21,-57434055),c=m(c,f,i,a,n[h+12],6,1700485571),a=m(a,c,f,i,n[h+3],10,-1894986606),i=m(i,a,c,f,n[h+10],15,-1051523),f=m(f,i,a,c,n[h+1],21,-2054922799),c=m(c,f,i,a,n[h+8],6,1873313359),a=m(a,c,f,i,n[h+15],10,-30611744),i=m(i,a,c,f,n[h+6],15,-1560198380),f=m(f,i,a,c,n[h+13],21,1309151649),c=m(c,f,i,a,n[h+4],6,-145523070),a=m(a,c,f,i,n[h+11],10,-1120210379),i=m(i,a,c,f,n[h+2],15,718787259),f=m(f,i,a,c,n[h+9],21,-343485551),c=d(c,r),f=d(f,e),i=d(i,o),a=d(a,u);return[c,f,i,a]}function i(n){for(var t="",r=32*n.length,e=0;e<r;e+=8)t+=String.fromCharCode(n[e>>5]>>>e%32&255);return t}function a(n){var t=[];for(t[(n.length>>2)-1]=void 0,e=0;e<t.length;e+=1)t[e]=0;for(var r=8*n.length,e=0;e<r;e+=8)t[e>>5]|=(255&n.charCodeAt(e/8))<<e%32;return t}function e(n){for(var t,r="0123456789abcdef",e="",o=0;o<n.length;o+=1)t=n.charCodeAt(o),e+=r.charAt(t>>>4&15)+r.charAt(15&t);return e}function r(n){return unescape(encodeURIComponent(n))}function o(n){return i(c(a(n=r(n)),8*n.length))}function u(n,t){return function(n,t){var r,e=a(n),o=[],u=[];for(o[15]=u[15]=void 0,16<e.length&&(e=c(e,8*n.length)),r=0;r<16;r+=1)o[r]=909522486^e[r],u[r]=1549556828^e[r];return t=c(o.concat(a(t)),512+8*t.length),i(c(u.concat(t),640))}(r(n),r(t))}function t(n,t,r){return t?r?u(t,n):e(u(t,n)):r?o(n):e(o(n))}"function"==typeof define&&define.amd?define(function(){return t}):"object"==typeof module&&module.exports?module.exports=t:n.md5=t}(this),function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.Cleave=t():e.Cleave=t()}(this,function(){return e=[function(e,t,r){!function(t){"use strict";function i(e,t){var r=this,n=!1;if("string"==typeof e?(r.element=document.querySelector(e),n=1<document.querySelectorAll(e).length):void 0!==e.length&&0<e.length?(r.element=e[0],n=1<e.length):r.element=e,!r.element)throw new Error("[cleave.js] Please check the element");if(n)try{console.warn("[cleave.js] Multiple input fields matched, cleave.js will only take the first one.")}catch(a){}t.initValue=r.element.value,r.properties=i.DefaultProperties.assign({},t),r.init()}i.prototype={init:function(){var e=this,t=e.properties;return t.numeral||t.phone||t.creditCard||t.time||t.date||0!==t.blocksLength||t.prefix?(t.maxLength=i.Util.getMaxLength(t.blocks),e.isAndroid=i.Util.isAndroid(),e.lastInputValue="",e.isBackward="",e.onChangeListener=e.onChange.bind(e),e.onKeyDownListener=e.onKeyDown.bind(e),e.onFocusListener=e.onFocus.bind(e),e.onCutListener=e.onCut.bind(e),e.onCopyListener=e.onCopy.bind(e),e.initSwapHiddenInput(),e.element.addEventListener("input",e.onChangeListener),e.element.addEventListener("keydown",e.onKeyDownListener),e.element.addEventListener("focus",e.onFocusListener),e.element.addEventListener("cut",e.onCutListener),e.element.addEventListener("copy",e.onCopyListener),e.initPhoneFormatter(),e.initDateFormatter(),e.initTimeFormatter(),e.initNumeralFormatter(),void((t.initValue||t.prefix&&!t.noImmediatePrefix)&&e.onInput(t.initValue))):void e.onInput(t.initValue)},initSwapHiddenInput:function(){var r,e=this;e.properties.swapHiddenInput&&(r=e.element.cloneNode(!0),e.element.parentNode.insertBefore(r,e.element),e.elementSwapHidden=e.element,e.elementSwapHidden.type="hidden",e.element=r,e.element.id="")},initNumeralFormatter:function(){var t=this.properties;t.numeral&&(t.numeralFormatter=new i.NumeralFormatter(t.numeralDecimalMark,t.numeralIntegerScale,t.numeralDecimalScale,t.numeralThousandsGroupStyle,t.numeralPositiveOnly,t.stripLeadingZeroes,t.prefix,t.signBeforePrefix,t.tailPrefix,t.delimiter))},initTimeFormatter:function(){var t=this.properties;t.time&&(t.timeFormatter=new i.TimeFormatter(t.timePattern,t.timeFormat),t.blocks=t.timeFormatter.getBlocks(),t.blocksLength=t.blocks.length,t.maxLength=i.Util.getMaxLength(t.blocks))},initDateFormatter:function(){var t=this.properties;t.date&&(t.dateFormatter=new i.DateFormatter(t.datePattern,t.dateMin,t.dateMax),t.blocks=t.dateFormatter.getBlocks(),t.blocksLength=t.blocks.length,t.maxLength=i.Util.getMaxLength(t.blocks))},initPhoneFormatter:function(){var t=this.properties;if(t.phone)try{t.phoneFormatter=new i.PhoneFormatter(new t.root.Cleave.AsYouTypeFormatter(t.phoneRegionCode),t.delimiter)}catch(r){throw new Error("[cleave.js] Please include phone-type-formatter.{country}.js lib")}},onKeyDown:function(e){var t=this,e=e.which||e.keyCode;t.lastInputValue=t.element.value,t.isBackward=8===e},onChange:function(e){var t=this,r=t.properties,n=i.Util,e=(t.isBackward=t.isBackward||"deleteContentBackward"===e.inputType,n.getPostDelimiter(t.lastInputValue,r.delimiter,r.delimiters));t.isBackward&&e?r.postDelimiterBackspace=e:r.postDelimiterBackspace=!1,this.onInput(this.element.value)},onFocus:function(){var e=this,t=e.properties;e.lastInputValue=e.element.value,t.prefix&&t.noImmediatePrefix&&!e.element.value&&this.onInput(t.prefix),i.Util.fixPrefixCursor(e.element,t.prefix,t.delimiter,t.delimiters)},onCut:function(e){i.Util.checkFullSelection(this.element.value)&&(this.copyClipboardData(e),this.onInput(""))},onCopy:function(e){i.Util.checkFullSelection(this.element.value)&&this.copyClipboardData(e)},copyClipboardData:function(e){var r=this.properties,n=i.Util,a=this.element.value,n=r.copyDelimiter?a:n.stripDelimiters(a,r.delimiter,r.delimiters);try{(e.clipboardData?e:window).clipboardData.setData("Text",n),e.preventDefault()}catch(l){}},onInput:function(e){var t=this,r=t.properties,n=i.Util,a=n.getPostDelimiter(e,r.delimiter,r.delimiters);r.numeral||!r.postDelimiterBackspace||a||(e=n.headStr(e,e.length-r.postDelimiterBackspace.length)),r.phone?!r.prefix||r.noImmediatePrefix&&!e.length?r.result=r.phoneFormatter.format(e):r.result=r.prefix+r.phoneFormatter.format(e).slice(r.prefix.length):r.numeral?r.prefix&&r.noImmediatePrefix&&0===e.length?r.result="":r.result=r.numeralFormatter.format(e):(r.date&&(e=r.dateFormatter.getValidatedDate(e)),r.time&&(e=r.timeFormatter.getValidatedTime(e)),e=n.stripDelimiters(e,r.delimiter,r.delimiters),e=n.getPrefixStrippedValue(e,r.prefix,r.prefixLength,r.result,r.delimiter,r.delimiters,r.noImmediatePrefix,r.tailPrefix,r.signBeforePrefix),e=r.numericOnly?n.strip(e,/[^\d]/g):e,e=r.uppercase?e.toUpperCase():e,e=r.lowercase?e.toLowerCase():e,r.prefix&&(r.tailPrefix?e+=r.prefix:e=r.prefix+e,0===r.blocksLength)?r.result=e:(r.creditCard&&t.updateCreditCardPropsByValue(e),e=n.headStr(e,r.maxLength),r.result=n.getFormattedValue(e,r.blocks,r.blocksLength,r.delimiter,r.delimiters,r.delimiterLazyShow))),t.updateValueState()},updateCreditCardPropsByValue:function(e){var n=this.properties,a=i.Util;a.headStr(n.result,4)!==a.headStr(e,4)&&(e=i.CreditCardDetector.getInfo(e,n.creditCardStrictMode),n.blocks=e.blocks,n.blocksLength=n.blocks.length,n.maxLength=a.getMaxLength(n.blocks),n.creditCardType!==e.type&&(n.creditCardType=e.type,n.onCreditCardTypeChanged.call(this,n.creditCardType)))},updateValueState:function(){var n,a,o,e=this,t=i.Util,r=e.properties;e.element&&(n=e.element.selectionEnd,a=e.element.value,o=r.result,n=t.getNextCursorPosition(n,a,o,r.delimiter,r.delimiters),e.isAndroid?window.setTimeout(function(){e.element.value=o,t.setSelection(e.element,n,r.document,!1),e.callOnValueChanged()},1):(e.element.value=o,r.swapHiddenInput&&(e.elementSwapHidden.value=e.getRawValue()),t.setSelection(e.element,n,r.document,!1),e.callOnValueChanged()))},callOnValueChanged:function(){var e=this,t=e.properties;t.onValueChanged.call(e,{target:{name:e.element.name,value:t.result,rawValue:e.getRawValue()}})},setPhoneRegionCode:function(e){var t=this;t.properties.phoneRegionCode=e,t.initPhoneFormatter(),t.onChange()},setRawValue:function(e){var t=this,r=t.properties;e=null!=e?e.toString():"",r.numeral&&(e=e.replace(".",r.numeralDecimalMark)),r.postDelimiterBackspace=!1,t.element.value=e,t.onInput(e)},getRawValue:function(){var t=this.properties,r=i.Util,n=this.element.value;return t.rawValueTrimPrefix&&(n=r.getPrefixStrippedValue(n,t.prefix,t.prefixLength,t.result,t.delimiter,t.delimiters,t.noImmediatePrefix,t.tailPrefix,t.signBeforePrefix)),t.numeral?t.numeralFormatter.getRawValue(n):r.stripDelimiters(n,t.delimiter,t.delimiters)},getISOFormatDate:function(){var t=this.properties;return t.date?t.dateFormatter.getISOFormatDate():""},getISOFormatTime:function(){var t=this.properties;return t.time?t.timeFormatter.getISOFormatTime():""},getFormattedValue:function(){return this.element.value},destroy:function(){var e=this;e.element.removeEventListener("input",e.onChangeListener),e.element.removeEventListener("keydown",e.onKeyDownListener),e.element.removeEventListener("focus",e.onFocusListener),e.element.removeEventListener("cut",e.onCutListener),e.element.removeEventListener("copy",e.onCopyListener)},toString:function(){return"[Cleave Object]"}},i.NumeralFormatter=r(1),i.DateFormatter=r(2),i.TimeFormatter=r(3),i.PhoneFormatter=r(4),i.CreditCardDetector=r(5),i.Util=r(6),i.DefaultProperties=r(7),("object"==typeof t&&t?t:window).Cleave=i,e.exports=i}.call(t,function(){return this}())},function(e,t){"use strict";function r(e,t,i,n,a,o,l,s,c,u){var d=this;d.numeralDecimalMark=e||".",d.numeralIntegerScale=0<t?t:0,d.numeralDecimalScale=0<=i?i:2,d.numeralThousandsGroupStyle=n||r.groupStyle.thousand,d.numeralPositiveOnly=!!a,d.stripLeadingZeroes=!1!==o,d.prefix=l||""===l?l:"",d.signBeforePrefix=!!s,d.tailPrefix=!!c,d.delimiter=u||""===u?u:",",d.delimiterRE=u?new RegExp("\\"+u,"g"):""}r.groupStyle={thousand:"thousand",lakh:"lakh",wan:"wan",none:"none"},r.prototype={getRawValue:function(e){return e.replace(this.delimiterRE,"").replace(this.numeralDecimalMark,".")},format:function(e){var i,n,a,o=this,l="";switch(e=e.replace(/[A-Za-z]/g,"").replace(o.numeralDecimalMark,"M").replace(/[^\dM-]/g,"").replace(/^\-/,"N").replace(/\-/g,"").replace("N",o.numeralPositiveOnly?"":"-").replace("M",o.numeralDecimalMark),i="-"===(e=o.stripLeadingZeroes?e.replace(/^(-)?0+(?=\d)/,"$1"):e).slice(0,1)?"-":"",n=void 0!==o.prefix?o.signBeforePrefix?i+o.prefix:o.prefix+i:i,0<=(a=e).indexOf(o.numeralDecimalMark)&&(a=(e=e.split(o.numeralDecimalMark))[0],l=o.numeralDecimalMark+e[1].slice(0,o.numeralDecimalScale)),"-"==i&&(a=a.slice(1)),0<o.numeralIntegerScale&&(a=a.slice(0,o.numeralIntegerScale)),o.numeralThousandsGroupStyle){case r.groupStyle.lakh:a=a.replace(/(\d)(?=(\d\d)+\d$)/g,"$1"+o.delimiter);break;case r.groupStyle.wan:a=a.replace(/(\d)(?=(\d{4})+$)/g,"$1"+o.delimiter);break;case r.groupStyle.thousand:a=a.replace(/(\d)(?=(\d{3})+$)/g,"$1"+o.delimiter)}return o.tailPrefix?i+a.toString()+(0<o.numeralDecimalScale?l.toString():"")+o.prefix:n+a.toString()+(0<o.numeralDecimalScale?l.toString():"")}},e.exports=r},function(e,t){"use strict";function r(e,t,r){var i=this;i.date=[],i.blocks=[],i.datePattern=e,i.dateMin=t.split("-").reverse().map(function(e){return parseInt(e,10)}),2===i.dateMin.length&&i.dateMin.unshift(0),i.dateMax=r.split("-").reverse().map(function(e){return parseInt(e,10)}),2===i.dateMax.length&&i.dateMax.unshift(0),i.initBlocks()}r.prototype={initBlocks:function(){var e=this;e.datePattern.forEach(function(t){"Y"===t?e.blocks.push(4):e.blocks.push(2)})},getISOFormatDate:function(){var e=this,t=e.date;return t[2]?t[2]+"-"+e.addLeadingZero(t[1])+"-"+e.addLeadingZero(t[0]):""},getBlocks:function(){return this.blocks},getValidatedDate:function(e){var t=this,r="";return e=e.replace(/[^\d]/g,""),t.blocks.forEach(function(i,n){if(0<e.length){var a=e.slice(0,i),o=a.slice(0,1),i=e.slice(i);switch(t.datePattern[n]){case"d":"00"===a?a="01":3<parseInt(o,10)?a="0"+o:31<parseInt(a,10)&&(a="31");break;case"m":"00"===a?a="01":1<parseInt(o,10)?a="0"+o:12<parseInt(a,10)&&(a="12")}r+=a,e=i}}),this.getFixedDateString(r)},getFixedDateString:function(e){var t,r,i,n=this,a=n.datePattern,o=[],l=0,s=0,c=0,u=0,d=0,m=0,p=!1;return 4===e.length&&"y"!==a[0].toLowerCase()&&"y"!==a[1].toLowerCase()&&(d=2-(u="d"===a[0]?0:2),t=parseInt(e.slice(u,u+2),10),r=parseInt(e.slice(d,d+2),10),o=this.getFixedDate(t,r,0)),8===e.length&&(a.forEach(function(e,t){switch(e){case"d":l=t;break;case"m":s=t;break;default:c=t}}),m=2*c,u=l<=c?2*l:2*l+2,d=s<=c?2*s:2*s+2,t=parseInt(e.slice(u,u+2),10),r=parseInt(e.slice(d,d+2),10),i=parseInt(e.slice(m,m+4),10),p=4===e.slice(m,m+4).length,o=this.getFixedDate(t,r,i)),4!==e.length||"y"!==a[0]&&"y"!==a[1]||(m=2-(d="m"===a[0]?0:2),r=parseInt(e.slice(d,d+2),10),i=parseInt(e.slice(m,m+2),10),p=2===e.slice(m,m+2).length,o=[0,r,i]),6!==e.length||"Y"!==a[0]&&"Y"!==a[1]||(m=2-.5*(d="m"===a[0]?0:4),r=parseInt(e.slice(d,d+2),10),i=parseInt(e.slice(m,m+4),10),p=4===e.slice(m,m+4).length,o=[0,r,i]),o=n.getRangeFixedDate(o),0===(n.date=o).length?e:a.reduce(function(e,t){switch(t){case"d":return e+(0===o[0]?"":n.addLeadingZero(o[0]));case"m":return e+(0===o[1]?"":n.addLeadingZero(o[1]));case"y":return e+(p?n.addLeadingZeroForYear(o[2],!1):"");case"Y":return e+(p?n.addLeadingZeroForYear(o[2],!0):"")}},"")},getRangeFixedDate:function(e){var t=this,r=t.datePattern,i=t.dateMin||[],t=t.dateMax||[];return!e.length||i.length<3&&t.length<3||r.find(function(e){return"y"===e.toLowerCase()})&&0===e[2]?e:t.length&&(t[2]<e[2]||t[2]===e[2]&&(t[1]<e[1]||t[1]===e[1]&&t[0]<e[0]))?t:i.length&&(i[2]>e[2]||i[2]===e[2]&&(i[1]>e[1]||i[1]===e[1]&&i[0]>e[0]))?i:e},getFixedDate:function(e,t,r){return e=Math.min(e,31),t=Math.min(t,12),r=parseInt(r||0,10),[e=t<7&&t%2==0||8<t&&t%2==1?Math.min(e,2===t?this.isLeapYear(r)?29:28:30):e,t,r]},isLeapYear:function(e){return e%4==0&&e%100!=0||e%400==0},addLeadingZero:function(e){return(e<10?"0":"")+e},addLeadingZeroForYear:function(e,t){return t?(e<10?"000":e<100?"00":e<1e3?"0":"")+e:(e<10?"0":"")+e}},e.exports=r},function(e,t){"use strict";function r(e,t){var r=this;r.time=[],r.blocks=[],r.timePattern=e,r.timeFormat=t,r.initBlocks()}r.prototype={initBlocks:function(){var e=this;e.timePattern.forEach(function(){e.blocks.push(2)})},getISOFormatTime:function(){var e=this,t=e.time;return t[2]?e.addLeadingZero(t[0])+":"+e.addLeadingZero(t[1])+":"+e.addLeadingZero(t[2]):""},getBlocks:function(){return this.blocks},getTimeFormatOptions:function(){return"12"===String(this.timeFormat)?{maxHourFirstDigit:1,maxHours:12,maxMinutesFirstDigit:5,maxMinutes:60}:{maxHourFirstDigit:2,maxHours:23,maxMinutesFirstDigit:5,maxMinutes:60}},getValidatedTime:function(e){var t=this,r="",i=(e=e.replace(/[^\d]/g,""),t.getTimeFormatOptions());return t.blocks.forEach(function(n,a){if(0<e.length){var o=e.slice(0,n),l=o.slice(0,1),n=e.slice(n);switch(t.timePattern[a]){case"h":parseInt(l,10)>i.maxHourFirstDigit?o="0"+l:parseInt(o,10)>i.maxHours&&(o=i.maxHours+"");break;case"m":case"s":parseInt(l,10)>i.maxMinutesFirstDigit?o="0"+l:parseInt(o,10)>i.maxMinutes&&(o=i.maxMinutes+"")}r+=o,e=n}}),this.getFixedTimeString(r)},getFixedTimeString:function(e){var r,i,u,n=this,a=n.timePattern,o=[],l=0,s=0,c=0,d=0,m=0;return 6===e.length&&(a.forEach(function(e,t){switch(e){case"s":l=2*t;break;case"m":s=2*t;break;case"h":c=2*t}}),m=c,d=s,u=l,u=parseInt(e.slice(u,u+2),10),r=parseInt(e.slice(d,d+2),10),i=parseInt(e.slice(m,m+2),10),o=this.getFixedTime(i,r,u)),4===e.length&&n.timePattern.indexOf("s")<0&&(a.forEach(function(e,t){switch(e){case"m":s=2*t;break;case"h":c=2*t}}),m=c,d=s,u=0,r=parseInt(e.slice(d,d+2),10),i=parseInt(e.slice(m,m+2),10),o=this.getFixedTime(i,r,u)),0===(n.time=o).length?e:a.reduce(function(e,t){switch(t){case"s":return e+n.addLeadingZero(o[2]);case"m":return e+n.addLeadingZero(o[1]);case"h":return e+n.addLeadingZero(o[0])}},"")},getFixedTime:function(e,t,r){return r=Math.min(parseInt(r||0,10),60),t=Math.min(t,60),[e=Math.min(e,60),t,r]},addLeadingZero:function(e){return(e<10?"0":"")+e}},e.exports=r},function(e,t){"use strict";function r(e,t){var r=this;r.delimiter=t||""===t?t:" ",r.delimiterRE=t?new RegExp("\\"+t,"g"):"",r.formatter=e}r.prototype={setFormatter:function(e){this.formatter=e},format:function(e){var t=this;t.formatter.clear();for(var r,i="",n=!1,a=0,o=(e=(e=(e=e.replace(/[^\d+]/g,"")).replace(/^\+/,"B").replace(/\+/g,"").replace("B","+")).replace(t.delimiterRE,"")).length;a<o;a++)r=t.formatter.inputDigit(e.charAt(a)),/[\s()-]/g.test(r)?(i=r,n=!0):n||(i=r);return(i=i.replace(/[()]/g,"")).replace(/[\s-]/g,t.delimiter)}},e.exports=r},function(e,t){"use strict";var r={blocks:{uatp:[4,5,6],amex:[4,6,5],diners:[4,6,4],discover:[4,4,4,4],mastercard:[4,4,4,4],dankort:[4,4,4,4],instapayment:[4,4,4,4],jcb15:[4,6,5],jcb:[4,4,4,4],maestro:[4,4,4,4],visa:[4,4,4,4],mir:[4,4,4,4],unionPay:[4,4,4,4],general:[4,4,4,4]},re:{uatp:/^(?!1800)1\d{0,14}/,amex:/^3[47]\d{0,13}/,discover:/^(?:6011|65\d{0,2}|64[4-9]\d?)\d{0,12}/,diners:/^3(?:0([0-5]|9)|[689]\d?)\d{0,11}/,mastercard:/^(5[1-5]\d{0,2}|22[2-9]\d{0,1}|2[3-7]\d{0,2})\d{0,12}/,dankort:/^(5019|4175|4571)\d{0,12}/,instapayment:/^63[7-9]\d{0,13}/,jcb15:/^(?:2131|1800)\d{0,11}/,jcb:/^(?:35\d{0,2})\d{0,12}/,maestro:/^(?:5[0678]\d{0,2}|6304|67\d{0,2})\d{0,12}/,mir:/^220[0-4]\d{0,12}/,visa:/^4\d{0,15}/,unionPay:/^(62|81)\d{0,14}/},getStrictBlocks:function(e){var t=e.reduce(function(e,t){return e+t},0);return e.concat(19-t)},getInfo:function(e,t){var a,o,i=r.blocks,n=r.re;for(a in t=!!t,n)if(n[a].test(e))return o=i[a],{type:a,blocks:t?this.getStrictBlocks(o):o};return{type:"unknown",blocks:t?this.getStrictBlocks(i.general):i.general}}};e.exports=r},function(e,t){"use strict";e.exports={noop:function(){},strip:function(e,t){return e.replace(t,"")},getPostDelimiter:function(e,t,r){if(0===r.length)return e.slice(-t.length)===t?t:"";var i="";return r.forEach(function(t){e.slice(-t.length)===t&&(i=t)}),i},getDelimiterREByDelimiter:function(e){return new RegExp(e.replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1"),"g")},getNextCursorPosition:function(e,t,r,i,n){return t.length===e?r.length:e+this.getPositionOffset(e,t,r,i,n)},getPositionOffset:function(e,t,r,i,n){t=this.stripDelimiters(t.slice(0,e),i,n),r=this.stripDelimiters(r.slice(0,e),i,n),e=t.length-r.length;return 0!=e?e/Math.abs(e):0},stripDelimiters:function(e,t,r){var i=this;return 0===r.length?(t=t?i.getDelimiterREByDelimiter(t):"",e.replace(t,"")):(r.forEach(function(t){t.split("").forEach(function(t){e=e.replace(i.getDelimiterREByDelimiter(t),"")})}),e)},headStr:function(e,t){return e.slice(0,t)},getMaxLength:function(e){return e.reduce(function(e,t){return e+t},0)},getPrefixStrippedValue:function(e,t,r,i,n,a,o,l,s){if(0===r)return e;if(e===t&&""!==e)return"";if(s&&"-"==e.slice(0,1))return c="-"==i.slice(0,1)?i.slice(1):i,"-"+this.getPrefixStrippedValue(e.slice(1),t,r,c,n,a,o,l,s);if(i.slice(0,r)!==t&&!l)return o&&!i&&e?e:"";if(i.slice(-r)!==t&&l)return o&&!i&&e?e:"";var c=this.stripDelimiters(i,n,a);return e.slice(0,r)===t||l?e.slice(-r)!==t&&l?c.slice(0,-r-1):l?e.slice(0,-r):e.slice(r):c.slice(r)},getFirstDiffIndex:function(e,t){for(var r=0;e.charAt(r)===t.charAt(r);)if(""===e.charAt(r++))return-1;return r},getFormattedValue:function(e,t,r,i,n,a){var o="",l=0<n.length,s="";return 0===r?e:(t.forEach(function(t,c){var u,d;0<e.length&&(u=e.slice(0,t),d=e.slice(t),s=l?n[a?c-1:c]||s:i,a?(0<c&&(o+=s),o+=u):(o+=u,u.length===t&&c<r-1&&(o+=s)),e=d)}),o)},fixPrefixCursor:function(e,t,r,i){var n,o;e&&(n=e.value,r=r||i[0]||" ",!e.setSelectionRange||!t||t.length+r.length<=n.length||(o=2*n.length,setTimeout(function(){e.setSelectionRange(o,o)},1)))},checkFullSelection:function(e){try{return(window.getSelection()||document.getSelection()||{}).toString().length===e.length}catch(r){}return!1},setSelection:function(e,t,r){if(e===this.getActiveElement(r)&&!(e&&e.value.length<=t))if(e.createTextRange){r=e.createTextRange();r.move("character",t),r.select()}else try{e.setSelectionRange(t,t)}catch(n){console.warn("The input element type does not support selection")}},getActiveElement:function(e){e=e.activeElement;return e&&e.shadowRoot?this.getActiveElement(e.shadowRoot):e},isAndroid:function(){return navigator&&/android/i.test(navigator.userAgent)},isAndroidBackspaceKeydown:function(e,t){return!!(this.isAndroid()&&e&&t)&&t===e.slice(0,-1)}}},function(e,t){!function(t){"use strict";e.exports={assign:function(e,r){return(e=e||{}).creditCard=!!(r=r||{}).creditCard,e.creditCardStrictMode=!!r.creditCardStrictMode,e.creditCardType="",e.onCreditCardTypeChanged=r.onCreditCardTypeChanged||function(){},e.phone=!!r.phone,e.phoneRegionCode=r.phoneRegionCode||"AU",e.phoneFormatter={},e.time=!!r.time,e.timePattern=r.timePattern||["h","m","s"],e.timeFormat=r.timeFormat||"24",e.timeFormatter={},e.date=!!r.date,e.datePattern=r.datePattern||["d","m","Y"],e.dateMin=r.dateMin||"",e.dateMax=r.dateMax||"",e.dateFormatter={},e.numeral=!!r.numeral,e.numeralIntegerScale=0<r.numeralIntegerScale?r.numeralIntegerScale:0,e.numeralDecimalScale=0<=r.numeralDecimalScale?r.numeralDecimalScale:2,e.numeralDecimalMark=r.numeralDecimalMark||".",e.numeralThousandsGroupStyle=r.numeralThousandsGroupStyle||"thousand",e.numeralPositiveOnly=!!r.numeralPositiveOnly,e.stripLeadingZeroes=!1!==r.stripLeadingZeroes,e.signBeforePrefix=!!r.signBeforePrefix,e.tailPrefix=!!r.tailPrefix,e.swapHiddenInput=!!r.swapHiddenInput,e.numericOnly=e.creditCard||e.date||!!r.numericOnly,e.uppercase=!!r.uppercase,e.lowercase=!!r.lowercase,e.prefix=!e.creditCard&&!e.date&&r.prefix||"",e.noImmediatePrefix=!!r.noImmediatePrefix,e.prefixLength=e.prefix.length,e.rawValueTrimPrefix=!!r.rawValueTrimPrefix,e.copyDelimiter=!!r.copyDelimiter,e.initValue=void 0!==r.initValue&&null!==r.initValue?r.initValue.toString():"",e.delimiter=r.delimiter||""===r.delimiter?r.delimiter:r.date?"/":r.time?":":r.numeral?",":(r.phone," "),e.delimiterLength=e.delimiter.length,e.delimiterLazyShow=!!r.delimiterLazyShow,e.delimiters=r.delimiters||[],e.blocks=r.blocks||[],e.blocksLength=e.blocks.length,e.root="object"==typeof t&&t?t:window,e.document=r.document||e.root.document,e.maxLength=0,e.backspace=!1,e.result="",e.onValueChanged=r.onValueChanged||function(){},e}}}.call(t,function(){return this}())}],r={},t.m=e,t.c=r,t.p="",t(0);function t(i){if(r[i])return r[i].exports;var n=r[i]={exports:{},id:i,loaded:!1};return e[i].call(n.exports,n,n.exports,t),n.loaded=!0,n.exports}var e,r}),function($){HappyForms.parts=HappyForms.parts||{},HappyForms.parts.multi_line_text={init:function(options){this.$form=options.form,this.type=this.$el.data("happyforms-type"),this.$input=$("textarea",this.$el),this.$counter=$(".happyforms-part__char-counter span.counter",this.$el),this.$input.on("blur",this.onBlur.bind(this)),this.$input.on("keyup",this.triggerChange.bind(this)),this.$input.on("change",this.triggerChange.bind(this)),this.$el.on("keyup",this.refreshCounter.bind(this)),this.refreshCounter(),$(".happyforms-part__char-counter").show()},getValueLength:function(){var mode=this.$input.attr("data-length-mode"),value=this.$input.val(),length=value.length;return length="word"===mode?(mode=value.match(/\w+/g))?mode.length:0:length},refreshCounter:function(){var length;parseInt(this.$input.attr("data-length"),10)<1||(length=this.getValueLength(),this.$counter.text(length))},onFocus:function(){this.$el.addClass("focus")},onBlur:function(){this.$el.removeClass("focus")},isFilled:function(){return""!==this.$input.val()},serialize:function(){return HappyForms.parts.base.serialize.apply(this,arguments)}}}(jQuery),function($){HappyForms.parts=HappyForms.parts||{},HappyForms.parts.email={init:function(){this.type=this.$el.data("happyforms-type"),this.$input=$("input",this.$el),this.$visualInput=$("input[type=email]",this.$el),this.$input.on("keyup",this.triggerChange.bind(this)),this.$input.on("change",this.triggerChange.bind(this)),this.$input.on("focus",this.onInputFocus.bind(this)),this.$visualInput.on("blur",this.onBlur.bind(this))}}}(jQuery),function($){HappyForms.parts=HappyForms.parts||{},HappyForms.parts.radio={init:function(){this.type=this.$el.data("happyforms-type"),this.$input=$("input",this.$el),this.$visualInput=$("input[type=email]",this.$el),this.$input.on("keyup",this.triggerChange.bind(this)),this.$input.on("change",this.triggerChange.bind(this)),this.$input.on("change",this.onRadioChange.bind(this)),this.$input.on("focus",this.onFocus.bind(this))},onRadioChange:function(e){var $otherRadio=$(".happyforms-part-option--other input[type=radio]",this.$el),$otherInput=$otherRadio.parent().nextAll("input"),$generalInput=$("input[type=text]",this.$el);$generalInput.prop("required",!1),$otherRadio.length&&$otherRadio.is(":checked")?($(e.target)[0]===$otherRadio[0]&&$otherInput.addClass("hf-show").trigger("focus"),""===this.$el.data("happyforms-required")&&$otherInput.prop("required",!0)):$generalInput.removeClass("hf-show")},onFocus:function(e){e=$(e.target);"text"===e.attr("type")&&e.prevAll("input[type=radio]").prop("checked",!0)},serialize:function(){var self=this;return this.$input.map(function(i,input){var input=$(input),$customInput=0;if("text"!==input.attr("type")){"text"===$(self.$input[i+1]).attr("type")&&($customInput=$(self.$input[i+1]));i={name:input.attr("name"),value:input.val()};if($customInput.length&&($customInput=$customInput.val(),i.value=[input.val(),$customInput],i.value=JSON.stringify(i.value)),input.is(":checked"))return i}}).toArray()}}}(jQuery),function($){HappyForms.parts=HappyForms.parts||{},HappyForms.parts.checkbox={init:function(){this.type=this.$el.data("happyforms-type"),this.$input=$("input",this.$el),this.$input.on("change",this.triggerChange.bind(this)),this.$input.on("change",this.onCheckboxChange.bind(this)),this.$input.on("focus",this.onFocus.bind(this))},onCheckboxChange:function(e){var $otherCheckbox=$(".happyforms-part-option--other input[type=checkbox]",this.$el),$otherInput=$otherCheckbox.parent().nextAll("input"),$generalInput=$("input[type=text]",this.$el);$generalInput.prop("required",!1),$otherCheckbox.length&&$otherCheckbox.is(":checked")?($(e.target)[0]===$otherCheckbox[0]&&$otherInput.addClass("hf-show").trigger("focus"),""===this.$el.data("happyforms-required")&&$otherInput.prop("required",!0)):$generalInput.removeClass("hf-show")},serialize:function(){var self=this;return this.$input.map(function(i,input){var input=$(input),$customInput=0;if("text"!==input.attr("type")){"text"===$(self.$input[i+1]).attr("type")&&($customInput=$(self.$input[i+1]));i={name:input.attr("name"),value:input.val()};if($customInput.length&&($customInput=$customInput.val(),i.value=[input.val(),$customInput],i.value=JSON.stringify(i.value)),input.is(":checked"))return i}}).toArray()},onFocus:function(e){e=$(e.target);"text"===e.attr("type")&&e.prevAll("input[type=checkbox]").prop("checked",!0)}}}(jQuery),function($){HappyForms.parts=HappyForms.parts||{},HappyForms.parts.select={init:function(options){this.type=this.$el.data("happyforms-type"),this.$input=$("[data-serialize]",this.$el),this.$input.on("change",this.triggerChange.bind(this)),this.$input.on("blur",this.onBlur.bind(this))},onBlur:function(){var $otherinput=$(".happyforms-part-option--other input[type=text]",this.$el);"999"===this.$input.val()?($otherinput.addClass("hf-show"),$otherinput.focus()):$otherinput.removeClass("hf-show")},serialize:function(){var self=this;return this.$input.map(function(i,select){var select=$(select,self.$el),$customInput=0,value=(999==select.val()&&($customInput=$(" .happyforms-part-option--other input[type=text]",self.$el)),select.val()),value=(null==value&&(value=""),{name:select.attr("name"),value:value});return $customInput.length&&($customInput=$customInput.val(),value.value=[select.val(),$customInput],value.value=JSON.stringify(value.value)),value}).toArray()}}}(jQuery),function($){HappyForms.parts=HappyForms.parts||{},HappyForms.parts.number={init:function(){this.type=this.$el.data("happyforms-type"),this.allowedKeys=["0","1","2","3","4","5","6","7","8","9","Meta","Delete","ArrowLeft","ArrowRight"];var self,decimalMark,delimiterMark,masked=this.$el.attr("data-mask");this.$input=$("input",this.$el),this.cleaveInstances=[],this.$input.on("keyup",this.onKeyUp.bind(this)),this.$input.on("change",this.triggerChange.bind(this)),this.$input.on("focus",this.onInputFocus.bind(this)),this.$input.on("blur",this.onBlur.bind(this)),this.numeralDecimalMark=this.$el.attr("data-decimal-mark")||"",this.delimiter=this.$el.attr("data-thousands-delimiter")||"",masked&&(decimalMark=(self=this).numeralDecimalMark,delimiterMark=this.delimiter,this.$input.each(function(){var $input=$(this),$input=new Cleave($input,{numeral:!0,numeralDecimalMark:decimalMark,delimiter:delimiterMark});self.cleaveInstances.push($input)})),this.onBlur()},onKeyUp:function(e){var value=$(e.target).val(),regex=new RegExp("[^0-9"+this.numeralDecimalMark+this.delimiter+"-]","g"),value=value.replace(regex,"");$(e.target).val(value),this.triggerChange()},reinit:function(){$.each(this.cleaveInstances,function(i,instance){var input=instance.element,rawValue=instance.getRawValue();instance.destroy(),input.value=rawValue}),this.init()}}}(jQuery),HappyForms.Antispam={getHash:function(data){var hash=[];return data.forEach(function(entry){hash.push(entry.value)}),hash=hash.join("").replace(/[^\w\d]/gm,""),hash=md5(hash)},getPlatformInfo:function(){var key,value,info={user_agent:navigator.userAgent,app_version:navigator.appVersion,language:navigator.language||navigator.userLanguage||navigator.browserLanguage||navigator.systemLanguage,languages_length:navigator.languages.length,webdriver:navigator.webdriver?1:0,concurrency:navigator.hardwareConcurrency,outer_width:window.outerWidth,outer_height:window.outerHeight,connectionRtt:navigator.connection?navigator.connection.rtt:-1},platformInfo={};for([key,value]of Object.entries(info))platformInfo[`platform_info[${key}]`]=value;return platformInfo}},function($){HappyForms.parts=HappyForms.parts||{},HappyForms.parts.base={init:function(){this.type=this.$el.data("happyforms-type"),this.$input=$("input, textarea, select",this.$el),this.$input.on("keyup change",this.triggerChange.bind(this)),this.$input.on("blur",this.onBlur.bind(this)),this.$input.on("focus",this.onInputFocus.bind(this)),this.onBlur()},getType:function(){return this.type},onInputFocus:function(){this.$el.addClass("focus")},onBlur:function(){this.$el.is(".happyforms-part--label-as_placeholder")&&(this.isFilled()?this.$el.addClass("happyforms-part--filled"):this.$el.removeClass("happyforms-part--filled")),this.$el.removeClass("focus")},triggerChange:function(data){this.$el.trigger("happyforms-change",data)},isRequired:function(){return this.$el.is(":visible")&&this.$el.is("[data-happyforms-required]")},isFilled:function(){return 0<this.$input.filter(function(){var $input=$(this);return $input.is("[type=checkbox]")||$input.is("[type=radio]")?$input.is(":checked"):""!==$input.val()}).length},confirmationMatches:function(){var matches=!1,$input=this.$input,$input=($input=this.$visualInput?this.$visualInput:$input).map(function(){return $(this).val()}).toArray();return matches=2===$input.length?$input[0]===$input[1]:matches},requiresConfirmation:function(){return this.$el.is("[data-happyforms-require-confirmation]")},serialize:function(){return this.$input.map(function(i,input){var input=$(input),keyValue={name:input.attr("name"),value:input.val()};if(!input.is("[type=checkbox]")&&!input.is("[type=radio]")||input.is(":checked"))return keyValue}).toArray()},isValid:function(){var valid=!0;this.$el.data("happyforms-type");return this.$input?(this.isRequired()&&(valid=valid&&this.isFilled()),this.isRequired()&&this.requiresConfirmation()?valid&&this.confirmationMatches():valid):valid},destroy:function(){this.$el.data("HappyFormPart",!1)}},HappyForms.wrapPart=function($part,$form){var type=$part.data("happyforms-type"),partMethods=HappyForms.parts.base;HappyForms.parts[type]&&(partMethods=$.extend({},HappyForms.parts.base,HappyForms.parts[type])),$part.happyFormPart(partMethods,{form:$form})},HappyForms.Form=function(el){this.el=el,this.$el=$(this.el),this.$form=$("form",this.$el),this.$parts=$("[data-happyforms-type]",this.$form),this.$submits=$('[type="submit"], a.submit',this.$form),this.$submit=$('[type="submit"]',this.$form),this.$submitLinks=$("a.submit",this.$form),this.$step=$('[name="happyforms_step"]',this.$form),this.init()},HappyForms.Form.prototype={init:function(){var $form=this.$form;$("[data-happyforms-type]",this.$form).each(function(){var $part=$(this);$part.data("happyforms-type");HappyForms.wrapPart($part,$form)}),this.$el.trigger("happyforms-change"),this.$el.trigger("happyforms-init"),this.$form.off("submit"),this.$submit.off("click"),this.$submitLinks.off("click"),this.$form.on("submit",this.submit.bind(this)),this.$submit.on("click",this.buttonSubmit.bind(this)),this.$submitLinks.on("click",this.linkSubmit.bind(this)),this.$el.on("happyforms-scrolltop",this.onScrollTop.bind(this))},detach:function(){this.$el.off("happyforms-change"),this.$el.off("happyforms-scrolltop"),$("[data-happyforms-type]",this.$form).remove()},serialize:function(submitEl){for(var action=$("[name=action]",this.$form).val(),form_id=$("[name=happyforms_form_id]",this.$form).val(),formData=($("[name=_wp_http_referer]",this.$form).val(),[{name:"action",value:action},{name:"happyforms_form_id",value:form_id},{name:"happyforms_step",value:this.$step.val()},{name:"happyforms_random_seed",value:$("[name=happyforms_random_seed]",this.$form).val()}]),honeypotNames=["single_line_text","multi_line_text","number"],h=0;h<honeypotNames.length;h++){var inputName=form_id+"-"+honeypotNames[h],$input=$("[name="+inputName+"]");if($input.length){formData.push({name:inputName,value:$input.val()});break}}var key,value,action=$("[data-happyforms-type]",this.$form).map(function(i,part){return $(part).happyFormPart("serialize")}).toArray().filter(function(entry){return null!==entry.name&&void 0!==entry.name}),action=formData.concat(action),params=new URLSearchParams,action=(action.forEach(function(entry){params.append(entry.name,entry.value)}),HappyForms.Antispam.getHash(action)),action=(params.append("hash",action),HappyForms.Antispam.getPlatformInfo());for([key,value]of Object.entries(action))params.append(key,value);return params=params.toString()},buttonSubmit:function(e){e.target.hasAttribute("data-step")&&this.$step.val(e.target.getAttribute("data-step"))},linkSubmit:function(e){e.preventDefault(),e.stopImmediatePropagation(),e.target.hasAttribute("data-step")&&this.$step.val(e.target.getAttribute("data-step")),this.$form.trigger("submit")},submit:function(e){e.preventDefault(),this.$form.addClass("happyforms-form--submitting"),this.$submits.attr("disabled","disabled"),$.ajax({type:"post",data:this.serialize(e.target)}).done(this.onSubmitComplete.bind(this))},onSubmitComplete:function(response){if(this.$form.trigger("happyforms.submitted",response),!response.data)return!1;var elTopOffset,$notices;response.data.html&&(response=$(response.data.html),$("[data-happyforms-type]",this.$form).each(function(){$(this).trigger("happyforms.detach")}),this.detach(),this.$el.replaceWith(response),this.$el=response,this.$el.happyForm(),(response=$("form",this.$el)).attr("data-happyforms-scroll-disabled")||(this.$el.get(0).getBoundingClientRect().top<0&&(elTopOffset=this.$el.offset().top,$notices=$(".happyforms-message-notices",this.$el),response.is(".happyforms-form--notices-below")&&$notices.length&&(elTopOffset=$notices.offset().top),($notices=response.attr("data-happyforms-scroll-offset"))&&(elTopOffset+=$notices=parseInt($notices,10)),this.$el.trigger("happyforms-scrolltop",elTopOffset)),!$(".happyforms-message-notice.error",response).length&&this.$el.hasClass("happyforms-form--hide-on-submit")&&$(".happyforms-part",response).hide()))},onScrollTop:function(e,offset){e.isDefaultPrevented()||$("html, body").animate({scrollTop:offset+"px"},500)}},HappyForms.Part=function(el){this.el=el,this.$el=$(this.el)},$.fn.happyFormPart=function(method){if("object"==typeof method){var part=new HappyForms.Part(this);$.extend(part,method),$(this).data("HappyFormPart",part),part.init.apply(part,Array.prototype.slice.call(arguments,1))}else{part=$(this).data("HappyFormPart");if(part&&part[method])return part[method].apply(part,Array.prototype.slice.call(arguments,1))}},$.fn.happyForm=function(method){this.each(function(){if(method){var instance=$.data(this,"HappyForm");if(instance&&instance[method])return instance[method].apply(instance,Array.prototype.slice.call(arguments,1))}else $.data(this,"HappyForm",new HappyForms.Form(this,arguments))})},$(function(){$(".happyforms-form").happyForm()})}(jQuery);
|
1 |
+
!function(n){"use strict";function d(n,t){var r=(65535&n)+(65535&t);return(n>>16)+(t>>16)+(r>>16)<<16|65535&r}function f(n,t,r,e,o,u){return d((u=d(d(t,n),d(e,u)))<<o|u>>>32-o,r)}function l(n,t,r,e,o,u,c){return f(t&r|~t&e,n,t,o,u,c)}function g(n,t,r,e,o,u,c){return f(t&e|r&~e,n,t,o,u,c)}function v(n,t,r,e,o,u,c){return f(t^r^e,n,t,o,u,c)}function m(n,t,r,e,o,u,c){return f(r^(t|~e),n,t,o,u,c)}function c(n,t){var r,e,o,u;n[t>>5]|=128<<t%32,n[14+(t+64>>>9<<4)]=t;for(var c=1732584193,f=-271733879,i=-1732584194,a=271733878,h=0;h<n.length;h+=16)c=l(r=c,e=f,o=i,u=a,n[h],7,-680876936),a=l(a,c,f,i,n[h+1],12,-389564586),i=l(i,a,c,f,n[h+2],17,606105819),f=l(f,i,a,c,n[h+3],22,-1044525330),c=l(c,f,i,a,n[h+4],7,-176418897),a=l(a,c,f,i,n[h+5],12,1200080426),i=l(i,a,c,f,n[h+6],17,-1473231341),f=l(f,i,a,c,n[h+7],22,-45705983),c=l(c,f,i,a,n[h+8],7,1770035416),a=l(a,c,f,i,n[h+9],12,-1958414417),i=l(i,a,c,f,n[h+10],17,-42063),f=l(f,i,a,c,n[h+11],22,-1990404162),c=l(c,f,i,a,n[h+12],7,1804603682),a=l(a,c,f,i,n[h+13],12,-40341101),i=l(i,a,c,f,n[h+14],17,-1502002290),c=g(c,f=l(f,i,a,c,n[h+15],22,1236535329),i,a,n[h+1],5,-165796510),a=g(a,c,f,i,n[h+6],9,-1069501632),i=g(i,a,c,f,n[h+11],14,643717713),f=g(f,i,a,c,n[h],20,-373897302),c=g(c,f,i,a,n[h+5],5,-701558691),a=g(a,c,f,i,n[h+10],9,38016083),i=g(i,a,c,f,n[h+15],14,-660478335),f=g(f,i,a,c,n[h+4],20,-405537848),c=g(c,f,i,a,n[h+9],5,568446438),a=g(a,c,f,i,n[h+14],9,-1019803690),i=g(i,a,c,f,n[h+3],14,-187363961),f=g(f,i,a,c,n[h+8],20,1163531501),c=g(c,f,i,a,n[h+13],5,-1444681467),a=g(a,c,f,i,n[h+2],9,-51403784),i=g(i,a,c,f,n[h+7],14,1735328473),c=v(c,f=g(f,i,a,c,n[h+12],20,-1926607734),i,a,n[h+5],4,-378558),a=v(a,c,f,i,n[h+8],11,-2022574463),i=v(i,a,c,f,n[h+11],16,1839030562),f=v(f,i,a,c,n[h+14],23,-35309556),c=v(c,f,i,a,n[h+1],4,-1530992060),a=v(a,c,f,i,n[h+4],11,1272893353),i=v(i,a,c,f,n[h+7],16,-155497632),f=v(f,i,a,c,n[h+10],23,-1094730640),c=v(c,f,i,a,n[h+13],4,681279174),a=v(a,c,f,i,n[h],11,-358537222),i=v(i,a,c,f,n[h+3],16,-722521979),f=v(f,i,a,c,n[h+6],23,76029189),c=v(c,f,i,a,n[h+9],4,-640364487),a=v(a,c,f,i,n[h+12],11,-421815835),i=v(i,a,c,f,n[h+15],16,530742520),c=m(c,f=v(f,i,a,c,n[h+2],23,-995338651),i,a,n[h],6,-198630844),a=m(a,c,f,i,n[h+7],10,1126891415),i=m(i,a,c,f,n[h+14],15,-1416354905),f=m(f,i,a,c,n[h+5],21,-57434055),c=m(c,f,i,a,n[h+12],6,1700485571),a=m(a,c,f,i,n[h+3],10,-1894986606),i=m(i,a,c,f,n[h+10],15,-1051523),f=m(f,i,a,c,n[h+1],21,-2054922799),c=m(c,f,i,a,n[h+8],6,1873313359),a=m(a,c,f,i,n[h+15],10,-30611744),i=m(i,a,c,f,n[h+6],15,-1560198380),f=m(f,i,a,c,n[h+13],21,1309151649),c=m(c,f,i,a,n[h+4],6,-145523070),a=m(a,c,f,i,n[h+11],10,-1120210379),i=m(i,a,c,f,n[h+2],15,718787259),f=m(f,i,a,c,n[h+9],21,-343485551),c=d(c,r),f=d(f,e),i=d(i,o),a=d(a,u);return[c,f,i,a]}function i(n){for(var t="",r=32*n.length,e=0;e<r;e+=8)t+=String.fromCharCode(n[e>>5]>>>e%32&255);return t}function a(n){var t=[];for(t[(n.length>>2)-1]=void 0,e=0;e<t.length;e+=1)t[e]=0;for(var r=8*n.length,e=0;e<r;e+=8)t[e>>5]|=(255&n.charCodeAt(e/8))<<e%32;return t}function e(n){for(var t,r="0123456789abcdef",e="",o=0;o<n.length;o+=1)t=n.charCodeAt(o),e+=r.charAt(t>>>4&15)+r.charAt(15&t);return e}function r(n){return unescape(encodeURIComponent(n))}function o(n){return i(c(a(n=r(n)),8*n.length))}function u(n,t){return function(n,t){var r,e=a(n),o=[],u=[];for(o[15]=u[15]=void 0,16<e.length&&(e=c(e,8*n.length)),r=0;r<16;r+=1)o[r]=909522486^e[r],u[r]=1549556828^e[r];return t=c(o.concat(a(t)),512+8*t.length),i(c(u.concat(t),640))}(r(n),r(t))}function t(n,t,r){return t?r?u(t,n):e(u(t,n)):r?o(n):e(o(n))}"function"==typeof define&&define.amd?define(function(){return t}):"object"==typeof module&&module.exports?module.exports=t:n.md5=t}(this),function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.Cleave=t():e.Cleave=t()}(this,function(){return e=[function(e,t,r){!function(t){"use strict";function i(e,t){var r=this,n=!1;if("string"==typeof e?(r.element=document.querySelector(e),n=1<document.querySelectorAll(e).length):void 0!==e.length&&0<e.length?(r.element=e[0],n=1<e.length):r.element=e,!r.element)throw new Error("[cleave.js] Please check the element");if(n)try{console.warn("[cleave.js] Multiple input fields matched, cleave.js will only take the first one.")}catch(a){}t.initValue=r.element.value,r.properties=i.DefaultProperties.assign({},t),r.init()}i.prototype={init:function(){var e=this,t=e.properties;return t.numeral||t.phone||t.creditCard||t.time||t.date||0!==t.blocksLength||t.prefix?(t.maxLength=i.Util.getMaxLength(t.blocks),e.isAndroid=i.Util.isAndroid(),e.lastInputValue="",e.isBackward="",e.onChangeListener=e.onChange.bind(e),e.onKeyDownListener=e.onKeyDown.bind(e),e.onFocusListener=e.onFocus.bind(e),e.onCutListener=e.onCut.bind(e),e.onCopyListener=e.onCopy.bind(e),e.initSwapHiddenInput(),e.element.addEventListener("input",e.onChangeListener),e.element.addEventListener("keydown",e.onKeyDownListener),e.element.addEventListener("focus",e.onFocusListener),e.element.addEventListener("cut",e.onCutListener),e.element.addEventListener("copy",e.onCopyListener),e.initPhoneFormatter(),e.initDateFormatter(),e.initTimeFormatter(),e.initNumeralFormatter(),void((t.initValue||t.prefix&&!t.noImmediatePrefix)&&e.onInput(t.initValue))):void e.onInput(t.initValue)},initSwapHiddenInput:function(){var r,e=this;e.properties.swapHiddenInput&&(r=e.element.cloneNode(!0),e.element.parentNode.insertBefore(r,e.element),e.elementSwapHidden=e.element,e.elementSwapHidden.type="hidden",e.element=r,e.element.id="")},initNumeralFormatter:function(){var t=this.properties;t.numeral&&(t.numeralFormatter=new i.NumeralFormatter(t.numeralDecimalMark,t.numeralIntegerScale,t.numeralDecimalScale,t.numeralThousandsGroupStyle,t.numeralPositiveOnly,t.stripLeadingZeroes,t.prefix,t.signBeforePrefix,t.tailPrefix,t.delimiter))},initTimeFormatter:function(){var t=this.properties;t.time&&(t.timeFormatter=new i.TimeFormatter(t.timePattern,t.timeFormat),t.blocks=t.timeFormatter.getBlocks(),t.blocksLength=t.blocks.length,t.maxLength=i.Util.getMaxLength(t.blocks))},initDateFormatter:function(){var t=this.properties;t.date&&(t.dateFormatter=new i.DateFormatter(t.datePattern,t.dateMin,t.dateMax),t.blocks=t.dateFormatter.getBlocks(),t.blocksLength=t.blocks.length,t.maxLength=i.Util.getMaxLength(t.blocks))},initPhoneFormatter:function(){var t=this.properties;if(t.phone)try{t.phoneFormatter=new i.PhoneFormatter(new t.root.Cleave.AsYouTypeFormatter(t.phoneRegionCode),t.delimiter)}catch(r){throw new Error("[cleave.js] Please include phone-type-formatter.{country}.js lib")}},onKeyDown:function(e){var t=this,e=e.which||e.keyCode;t.lastInputValue=t.element.value,t.isBackward=8===e},onChange:function(e){var t=this,r=t.properties,n=i.Util,e=(t.isBackward=t.isBackward||"deleteContentBackward"===e.inputType,n.getPostDelimiter(t.lastInputValue,r.delimiter,r.delimiters));t.isBackward&&e?r.postDelimiterBackspace=e:r.postDelimiterBackspace=!1,this.onInput(this.element.value)},onFocus:function(){var e=this,t=e.properties;e.lastInputValue=e.element.value,t.prefix&&t.noImmediatePrefix&&!e.element.value&&this.onInput(t.prefix),i.Util.fixPrefixCursor(e.element,t.prefix,t.delimiter,t.delimiters)},onCut:function(e){i.Util.checkFullSelection(this.element.value)&&(this.copyClipboardData(e),this.onInput(""))},onCopy:function(e){i.Util.checkFullSelection(this.element.value)&&this.copyClipboardData(e)},copyClipboardData:function(e){var r=this.properties,n=i.Util,a=this.element.value,n=r.copyDelimiter?a:n.stripDelimiters(a,r.delimiter,r.delimiters);try{(e.clipboardData?e:window).clipboardData.setData("Text",n),e.preventDefault()}catch(l){}},onInput:function(e){var t=this,r=t.properties,n=i.Util,a=n.getPostDelimiter(e,r.delimiter,r.delimiters);r.numeral||!r.postDelimiterBackspace||a||(e=n.headStr(e,e.length-r.postDelimiterBackspace.length)),r.phone?!r.prefix||r.noImmediatePrefix&&!e.length?r.result=r.phoneFormatter.format(e):r.result=r.prefix+r.phoneFormatter.format(e).slice(r.prefix.length):r.numeral?r.prefix&&r.noImmediatePrefix&&0===e.length?r.result="":r.result=r.numeralFormatter.format(e):(r.date&&(e=r.dateFormatter.getValidatedDate(e)),r.time&&(e=r.timeFormatter.getValidatedTime(e)),e=n.stripDelimiters(e,r.delimiter,r.delimiters),e=n.getPrefixStrippedValue(e,r.prefix,r.prefixLength,r.result,r.delimiter,r.delimiters,r.noImmediatePrefix,r.tailPrefix,r.signBeforePrefix),e=r.numericOnly?n.strip(e,/[^\d]/g):e,e=r.uppercase?e.toUpperCase():e,e=r.lowercase?e.toLowerCase():e,r.prefix&&(r.tailPrefix?e+=r.prefix:e=r.prefix+e,0===r.blocksLength)?r.result=e:(r.creditCard&&t.updateCreditCardPropsByValue(e),e=n.headStr(e,r.maxLength),r.result=n.getFormattedValue(e,r.blocks,r.blocksLength,r.delimiter,r.delimiters,r.delimiterLazyShow))),t.updateValueState()},updateCreditCardPropsByValue:function(e){var n=this.properties,a=i.Util;a.headStr(n.result,4)!==a.headStr(e,4)&&(e=i.CreditCardDetector.getInfo(e,n.creditCardStrictMode),n.blocks=e.blocks,n.blocksLength=n.blocks.length,n.maxLength=a.getMaxLength(n.blocks),n.creditCardType!==e.type&&(n.creditCardType=e.type,n.onCreditCardTypeChanged.call(this,n.creditCardType)))},updateValueState:function(){var n,a,o,e=this,t=i.Util,r=e.properties;e.element&&(n=e.element.selectionEnd,a=e.element.value,o=r.result,n=t.getNextCursorPosition(n,a,o,r.delimiter,r.delimiters),e.isAndroid?window.setTimeout(function(){e.element.value=o,t.setSelection(e.element,n,r.document,!1),e.callOnValueChanged()},1):(e.element.value=o,r.swapHiddenInput&&(e.elementSwapHidden.value=e.getRawValue()),t.setSelection(e.element,n,r.document,!1),e.callOnValueChanged()))},callOnValueChanged:function(){var e=this,t=e.properties;t.onValueChanged.call(e,{target:{name:e.element.name,value:t.result,rawValue:e.getRawValue()}})},setPhoneRegionCode:function(e){var t=this;t.properties.phoneRegionCode=e,t.initPhoneFormatter(),t.onChange()},setRawValue:function(e){var t=this,r=t.properties;e=null!=e?e.toString():"",r.numeral&&(e=e.replace(".",r.numeralDecimalMark)),r.postDelimiterBackspace=!1,t.element.value=e,t.onInput(e)},getRawValue:function(){var t=this.properties,r=i.Util,n=this.element.value;return t.rawValueTrimPrefix&&(n=r.getPrefixStrippedValue(n,t.prefix,t.prefixLength,t.result,t.delimiter,t.delimiters,t.noImmediatePrefix,t.tailPrefix,t.signBeforePrefix)),t.numeral?t.numeralFormatter.getRawValue(n):r.stripDelimiters(n,t.delimiter,t.delimiters)},getISOFormatDate:function(){var t=this.properties;return t.date?t.dateFormatter.getISOFormatDate():""},getISOFormatTime:function(){var t=this.properties;return t.time?t.timeFormatter.getISOFormatTime():""},getFormattedValue:function(){return this.element.value},destroy:function(){var e=this;e.element.removeEventListener("input",e.onChangeListener),e.element.removeEventListener("keydown",e.onKeyDownListener),e.element.removeEventListener("focus",e.onFocusListener),e.element.removeEventListener("cut",e.onCutListener),e.element.removeEventListener("copy",e.onCopyListener)},toString:function(){return"[Cleave Object]"}},i.NumeralFormatter=r(1),i.DateFormatter=r(2),i.TimeFormatter=r(3),i.PhoneFormatter=r(4),i.CreditCardDetector=r(5),i.Util=r(6),i.DefaultProperties=r(7),("object"==typeof t&&t?t:window).Cleave=i,e.exports=i}.call(t,function(){return this}())},function(e,t){"use strict";function r(e,t,i,n,a,o,l,s,c,u){var d=this;d.numeralDecimalMark=e||".",d.numeralIntegerScale=0<t?t:0,d.numeralDecimalScale=0<=i?i:2,d.numeralThousandsGroupStyle=n||r.groupStyle.thousand,d.numeralPositiveOnly=!!a,d.stripLeadingZeroes=!1!==o,d.prefix=l||""===l?l:"",d.signBeforePrefix=!!s,d.tailPrefix=!!c,d.delimiter=u||""===u?u:",",d.delimiterRE=u?new RegExp("\\"+u,"g"):""}r.groupStyle={thousand:"thousand",lakh:"lakh",wan:"wan",none:"none"},r.prototype={getRawValue:function(e){return e.replace(this.delimiterRE,"").replace(this.numeralDecimalMark,".")},format:function(e){var i,n,a,o=this,l="";switch(e=e.replace(/[A-Za-z]/g,"").replace(o.numeralDecimalMark,"M").replace(/[^\dM-]/g,"").replace(/^\-/,"N").replace(/\-/g,"").replace("N",o.numeralPositiveOnly?"":"-").replace("M",o.numeralDecimalMark),i="-"===(e=o.stripLeadingZeroes?e.replace(/^(-)?0+(?=\d)/,"$1"):e).slice(0,1)?"-":"",n=void 0!==o.prefix?o.signBeforePrefix?i+o.prefix:o.prefix+i:i,0<=(a=e).indexOf(o.numeralDecimalMark)&&(a=(e=e.split(o.numeralDecimalMark))[0],l=o.numeralDecimalMark+e[1].slice(0,o.numeralDecimalScale)),"-"==i&&(a=a.slice(1)),0<o.numeralIntegerScale&&(a=a.slice(0,o.numeralIntegerScale)),o.numeralThousandsGroupStyle){case r.groupStyle.lakh:a=a.replace(/(\d)(?=(\d\d)+\d$)/g,"$1"+o.delimiter);break;case r.groupStyle.wan:a=a.replace(/(\d)(?=(\d{4})+$)/g,"$1"+o.delimiter);break;case r.groupStyle.thousand:a=a.replace(/(\d)(?=(\d{3})+$)/g,"$1"+o.delimiter)}return o.tailPrefix?i+a.toString()+(0<o.numeralDecimalScale?l.toString():"")+o.prefix:n+a.toString()+(0<o.numeralDecimalScale?l.toString():"")}},e.exports=r},function(e,t){"use strict";function r(e,t,r){var i=this;i.date=[],i.blocks=[],i.datePattern=e,i.dateMin=t.split("-").reverse().map(function(e){return parseInt(e,10)}),2===i.dateMin.length&&i.dateMin.unshift(0),i.dateMax=r.split("-").reverse().map(function(e){return parseInt(e,10)}),2===i.dateMax.length&&i.dateMax.unshift(0),i.initBlocks()}r.prototype={initBlocks:function(){var e=this;e.datePattern.forEach(function(t){"Y"===t?e.blocks.push(4):e.blocks.push(2)})},getISOFormatDate:function(){var e=this,t=e.date;return t[2]?t[2]+"-"+e.addLeadingZero(t[1])+"-"+e.addLeadingZero(t[0]):""},getBlocks:function(){return this.blocks},getValidatedDate:function(e){var t=this,r="";return e=e.replace(/[^\d]/g,""),t.blocks.forEach(function(i,n){if(0<e.length){var a=e.slice(0,i),o=a.slice(0,1),i=e.slice(i);switch(t.datePattern[n]){case"d":"00"===a?a="01":3<parseInt(o,10)?a="0"+o:31<parseInt(a,10)&&(a="31");break;case"m":"00"===a?a="01":1<parseInt(o,10)?a="0"+o:12<parseInt(a,10)&&(a="12")}r+=a,e=i}}),this.getFixedDateString(r)},getFixedDateString:function(e){var t,r,i,n=this,a=n.datePattern,o=[],l=0,s=0,c=0,u=0,d=0,m=0,p=!1;return 4===e.length&&"y"!==a[0].toLowerCase()&&"y"!==a[1].toLowerCase()&&(d=2-(u="d"===a[0]?0:2),t=parseInt(e.slice(u,u+2),10),r=parseInt(e.slice(d,d+2),10),o=this.getFixedDate(t,r,0)),8===e.length&&(a.forEach(function(e,t){switch(e){case"d":l=t;break;case"m":s=t;break;default:c=t}}),m=2*c,u=l<=c?2*l:2*l+2,d=s<=c?2*s:2*s+2,t=parseInt(e.slice(u,u+2),10),r=parseInt(e.slice(d,d+2),10),i=parseInt(e.slice(m,m+4),10),p=4===e.slice(m,m+4).length,o=this.getFixedDate(t,r,i)),4!==e.length||"y"!==a[0]&&"y"!==a[1]||(m=2-(d="m"===a[0]?0:2),r=parseInt(e.slice(d,d+2),10),i=parseInt(e.slice(m,m+2),10),p=2===e.slice(m,m+2).length,o=[0,r,i]),6!==e.length||"Y"!==a[0]&&"Y"!==a[1]||(m=2-.5*(d="m"===a[0]?0:4),r=parseInt(e.slice(d,d+2),10),i=parseInt(e.slice(m,m+4),10),p=4===e.slice(m,m+4).length,o=[0,r,i]),o=n.getRangeFixedDate(o),0===(n.date=o).length?e:a.reduce(function(e,t){switch(t){case"d":return e+(0===o[0]?"":n.addLeadingZero(o[0]));case"m":return e+(0===o[1]?"":n.addLeadingZero(o[1]));case"y":return e+(p?n.addLeadingZeroForYear(o[2],!1):"");case"Y":return e+(p?n.addLeadingZeroForYear(o[2],!0):"")}},"")},getRangeFixedDate:function(e){var t=this,r=t.datePattern,i=t.dateMin||[],t=t.dateMax||[];return!e.length||i.length<3&&t.length<3||r.find(function(e){return"y"===e.toLowerCase()})&&0===e[2]?e:t.length&&(t[2]<e[2]||t[2]===e[2]&&(t[1]<e[1]||t[1]===e[1]&&t[0]<e[0]))?t:i.length&&(i[2]>e[2]||i[2]===e[2]&&(i[1]>e[1]||i[1]===e[1]&&i[0]>e[0]))?i:e},getFixedDate:function(e,t,r){return e=Math.min(e,31),t=Math.min(t,12),r=parseInt(r||0,10),[e=t<7&&t%2==0||8<t&&t%2==1?Math.min(e,2===t?this.isLeapYear(r)?29:28:30):e,t,r]},isLeapYear:function(e){return e%4==0&&e%100!=0||e%400==0},addLeadingZero:function(e){return(e<10?"0":"")+e},addLeadingZeroForYear:function(e,t){return t?(e<10?"000":e<100?"00":e<1e3?"0":"")+e:(e<10?"0":"")+e}},e.exports=r},function(e,t){"use strict";function r(e,t){var r=this;r.time=[],r.blocks=[],r.timePattern=e,r.timeFormat=t,r.initBlocks()}r.prototype={initBlocks:function(){var e=this;e.timePattern.forEach(function(){e.blocks.push(2)})},getISOFormatTime:function(){var e=this,t=e.time;return t[2]?e.addLeadingZero(t[0])+":"+e.addLeadingZero(t[1])+":"+e.addLeadingZero(t[2]):""},getBlocks:function(){return this.blocks},getTimeFormatOptions:function(){return"12"===String(this.timeFormat)?{maxHourFirstDigit:1,maxHours:12,maxMinutesFirstDigit:5,maxMinutes:60}:{maxHourFirstDigit:2,maxHours:23,maxMinutesFirstDigit:5,maxMinutes:60}},getValidatedTime:function(e){var t=this,r="",i=(e=e.replace(/[^\d]/g,""),t.getTimeFormatOptions());return t.blocks.forEach(function(n,a){if(0<e.length){var o=e.slice(0,n),l=o.slice(0,1),n=e.slice(n);switch(t.timePattern[a]){case"h":parseInt(l,10)>i.maxHourFirstDigit?o="0"+l:parseInt(o,10)>i.maxHours&&(o=i.maxHours+"");break;case"m":case"s":parseInt(l,10)>i.maxMinutesFirstDigit?o="0"+l:parseInt(o,10)>i.maxMinutes&&(o=i.maxMinutes+"")}r+=o,e=n}}),this.getFixedTimeString(r)},getFixedTimeString:function(e){var r,i,u,n=this,a=n.timePattern,o=[],l=0,s=0,c=0,d=0,m=0;return 6===e.length&&(a.forEach(function(e,t){switch(e){case"s":l=2*t;break;case"m":s=2*t;break;case"h":c=2*t}}),m=c,d=s,u=l,u=parseInt(e.slice(u,u+2),10),r=parseInt(e.slice(d,d+2),10),i=parseInt(e.slice(m,m+2),10),o=this.getFixedTime(i,r,u)),4===e.length&&n.timePattern.indexOf("s")<0&&(a.forEach(function(e,t){switch(e){case"m":s=2*t;break;case"h":c=2*t}}),m=c,d=s,u=0,r=parseInt(e.slice(d,d+2),10),i=parseInt(e.slice(m,m+2),10),o=this.getFixedTime(i,r,u)),0===(n.time=o).length?e:a.reduce(function(e,t){switch(t){case"s":return e+n.addLeadingZero(o[2]);case"m":return e+n.addLeadingZero(o[1]);case"h":return e+n.addLeadingZero(o[0])}},"")},getFixedTime:function(e,t,r){return r=Math.min(parseInt(r||0,10),60),t=Math.min(t,60),[e=Math.min(e,60),t,r]},addLeadingZero:function(e){return(e<10?"0":"")+e}},e.exports=r},function(e,t){"use strict";function r(e,t){var r=this;r.delimiter=t||""===t?t:" ",r.delimiterRE=t?new RegExp("\\"+t,"g"):"",r.formatter=e}r.prototype={setFormatter:function(e){this.formatter=e},format:function(e){var t=this;t.formatter.clear();for(var r,i="",n=!1,a=0,o=(e=(e=(e=e.replace(/[^\d+]/g,"")).replace(/^\+/,"B").replace(/\+/g,"").replace("B","+")).replace(t.delimiterRE,"")).length;a<o;a++)r=t.formatter.inputDigit(e.charAt(a)),/[\s()-]/g.test(r)?(i=r,n=!0):n||(i=r);return(i=i.replace(/[()]/g,"")).replace(/[\s-]/g,t.delimiter)}},e.exports=r},function(e,t){"use strict";var r={blocks:{uatp:[4,5,6],amex:[4,6,5],diners:[4,6,4],discover:[4,4,4,4],mastercard:[4,4,4,4],dankort:[4,4,4,4],instapayment:[4,4,4,4],jcb15:[4,6,5],jcb:[4,4,4,4],maestro:[4,4,4,4],visa:[4,4,4,4],mir:[4,4,4,4],unionPay:[4,4,4,4],general:[4,4,4,4]},re:{uatp:/^(?!1800)1\d{0,14}/,amex:/^3[47]\d{0,13}/,discover:/^(?:6011|65\d{0,2}|64[4-9]\d?)\d{0,12}/,diners:/^3(?:0([0-5]|9)|[689]\d?)\d{0,11}/,mastercard:/^(5[1-5]\d{0,2}|22[2-9]\d{0,1}|2[3-7]\d{0,2})\d{0,12}/,dankort:/^(5019|4175|4571)\d{0,12}/,instapayment:/^63[7-9]\d{0,13}/,jcb15:/^(?:2131|1800)\d{0,11}/,jcb:/^(?:35\d{0,2})\d{0,12}/,maestro:/^(?:5[0678]\d{0,2}|6304|67\d{0,2})\d{0,12}/,mir:/^220[0-4]\d{0,12}/,visa:/^4\d{0,15}/,unionPay:/^(62|81)\d{0,14}/},getStrictBlocks:function(e){var t=e.reduce(function(e,t){return e+t},0);return e.concat(19-t)},getInfo:function(e,t){var a,o,i=r.blocks,n=r.re;for(a in t=!!t,n)if(n[a].test(e))return o=i[a],{type:a,blocks:t?this.getStrictBlocks(o):o};return{type:"unknown",blocks:t?this.getStrictBlocks(i.general):i.general}}};e.exports=r},function(e,t){"use strict";e.exports={noop:function(){},strip:function(e,t){return e.replace(t,"")},getPostDelimiter:function(e,t,r){if(0===r.length)return e.slice(-t.length)===t?t:"";var i="";return r.forEach(function(t){e.slice(-t.length)===t&&(i=t)}),i},getDelimiterREByDelimiter:function(e){return new RegExp(e.replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1"),"g")},getNextCursorPosition:function(e,t,r,i,n){return t.length===e?r.length:e+this.getPositionOffset(e,t,r,i,n)},getPositionOffset:function(e,t,r,i,n){t=this.stripDelimiters(t.slice(0,e),i,n),r=this.stripDelimiters(r.slice(0,e),i,n),e=t.length-r.length;return 0!=e?e/Math.abs(e):0},stripDelimiters:function(e,t,r){var i=this;return 0===r.length?(t=t?i.getDelimiterREByDelimiter(t):"",e.replace(t,"")):(r.forEach(function(t){t.split("").forEach(function(t){e=e.replace(i.getDelimiterREByDelimiter(t),"")})}),e)},headStr:function(e,t){return e.slice(0,t)},getMaxLength:function(e){return e.reduce(function(e,t){return e+t},0)},getPrefixStrippedValue:function(e,t,r,i,n,a,o,l,s){if(0===r)return e;if(e===t&&""!==e)return"";if(s&&"-"==e.slice(0,1))return c="-"==i.slice(0,1)?i.slice(1):i,"-"+this.getPrefixStrippedValue(e.slice(1),t,r,c,n,a,o,l,s);if(i.slice(0,r)!==t&&!l)return o&&!i&&e?e:"";if(i.slice(-r)!==t&&l)return o&&!i&&e?e:"";var c=this.stripDelimiters(i,n,a);return e.slice(0,r)===t||l?e.slice(-r)!==t&&l?c.slice(0,-r-1):l?e.slice(0,-r):e.slice(r):c.slice(r)},getFirstDiffIndex:function(e,t){for(var r=0;e.charAt(r)===t.charAt(r);)if(""===e.charAt(r++))return-1;return r},getFormattedValue:function(e,t,r,i,n,a){var o="",l=0<n.length,s="";return 0===r?e:(t.forEach(function(t,c){var u,d;0<e.length&&(u=e.slice(0,t),d=e.slice(t),s=l?n[a?c-1:c]||s:i,a?(0<c&&(o+=s),o+=u):(o+=u,u.length===t&&c<r-1&&(o+=s)),e=d)}),o)},fixPrefixCursor:function(e,t,r,i){var n,o;e&&(n=e.value,r=r||i[0]||" ",!e.setSelectionRange||!t||t.length+r.length<=n.length||(o=2*n.length,setTimeout(function(){e.setSelectionRange(o,o)},1)))},checkFullSelection:function(e){try{return(window.getSelection()||document.getSelection()||{}).toString().length===e.length}catch(r){}return!1},setSelection:function(e,t,r){if(e===this.getActiveElement(r)&&!(e&&e.value.length<=t))if(e.createTextRange){r=e.createTextRange();r.move("character",t),r.select()}else try{e.setSelectionRange(t,t)}catch(n){console.warn("The input element type does not support selection")}},getActiveElement:function(e){e=e.activeElement;return e&&e.shadowRoot?this.getActiveElement(e.shadowRoot):e},isAndroid:function(){return navigator&&/android/i.test(navigator.userAgent)},isAndroidBackspaceKeydown:function(e,t){return!!(this.isAndroid()&&e&&t)&&t===e.slice(0,-1)}}},function(e,t){!function(t){"use strict";e.exports={assign:function(e,r){return(e=e||{}).creditCard=!!(r=r||{}).creditCard,e.creditCardStrictMode=!!r.creditCardStrictMode,e.creditCardType="",e.onCreditCardTypeChanged=r.onCreditCardTypeChanged||function(){},e.phone=!!r.phone,e.phoneRegionCode=r.phoneRegionCode||"AU",e.phoneFormatter={},e.time=!!r.time,e.timePattern=r.timePattern||["h","m","s"],e.timeFormat=r.timeFormat||"24",e.timeFormatter={},e.date=!!r.date,e.datePattern=r.datePattern||["d","m","Y"],e.dateMin=r.dateMin||"",e.dateMax=r.dateMax||"",e.dateFormatter={},e.numeral=!!r.numeral,e.numeralIntegerScale=0<r.numeralIntegerScale?r.numeralIntegerScale:0,e.numeralDecimalScale=0<=r.numeralDecimalScale?r.numeralDecimalScale:2,e.numeralDecimalMark=r.numeralDecimalMark||".",e.numeralThousandsGroupStyle=r.numeralThousandsGroupStyle||"thousand",e.numeralPositiveOnly=!!r.numeralPositiveOnly,e.stripLeadingZeroes=!1!==r.stripLeadingZeroes,e.signBeforePrefix=!!r.signBeforePrefix,e.tailPrefix=!!r.tailPrefix,e.swapHiddenInput=!!r.swapHiddenInput,e.numericOnly=e.creditCard||e.date||!!r.numericOnly,e.uppercase=!!r.uppercase,e.lowercase=!!r.lowercase,e.prefix=!e.creditCard&&!e.date&&r.prefix||"",e.noImmediatePrefix=!!r.noImmediatePrefix,e.prefixLength=e.prefix.length,e.rawValueTrimPrefix=!!r.rawValueTrimPrefix,e.copyDelimiter=!!r.copyDelimiter,e.initValue=void 0!==r.initValue&&null!==r.initValue?r.initValue.toString():"",e.delimiter=r.delimiter||""===r.delimiter?r.delimiter:r.date?"/":r.time?":":r.numeral?",":(r.phone," "),e.delimiterLength=e.delimiter.length,e.delimiterLazyShow=!!r.delimiterLazyShow,e.delimiters=r.delimiters||[],e.blocks=r.blocks||[],e.blocksLength=e.blocks.length,e.root="object"==typeof t&&t?t:window,e.document=r.document||e.root.document,e.maxLength=0,e.backspace=!1,e.result="",e.onValueChanged=r.onValueChanged||function(){},e}}}.call(t,function(){return this}())}],r={},t.m=e,t.c=r,t.p="",t(0);function t(i){if(r[i])return r[i].exports;var n=r[i]={exports:{},id:i,loaded:!1};return e[i].call(n.exports,n,n.exports,t),n.loaded=!0,n.exports}var e,r}),function($){HappyForms.parts=HappyForms.parts||{},HappyForms.parts.multi_line_text={init:function(options){this.$form=options.form,this.type=this.$el.data("happyforms-type"),this.$input=$("textarea",this.$el),this.$counter=$(".happyforms-part__char-counter span.counter",this.$el),this.$input.on("blur",this.onBlur.bind(this)),this.$input.on("keyup",this.triggerChange.bind(this)),this.$input.on("change",this.triggerChange.bind(this)),this.$el.on("keyup",this.refreshCounter.bind(this)),this.refreshCounter(),$(".happyforms-part__char-counter").show()},getValueLength:function(){var mode=this.$input.attr("data-length-mode"),value=this.$input.val(),length=value.length;return length="word"===mode?(mode=value.match(/\w+/g))?mode.length:0:length},refreshCounter:function(){var length;parseInt(this.$input.attr("data-length"),10)<1||(length=this.getValueLength(),this.$counter.text(length))},onFocus:function(){this.$el.addClass("focus")},onBlur:function(){this.$el.removeClass("focus")},isFilled:function(){return""!==this.$input.val()},serialize:function(){return HappyForms.parts.base.serialize.apply(this,arguments)}}}(jQuery),function($){HappyForms.parts=HappyForms.parts||{},HappyForms.parts.email={init:function(){this.type=this.$el.data("happyforms-type"),this.$input=$("input",this.$el),this.$visualInput=$("input[type=email]",this.$el),this.$input.on("keyup",this.triggerChange.bind(this)),this.$input.on("change",this.triggerChange.bind(this)),this.$input.on("focus",this.onInputFocus.bind(this)),this.$visualInput.on("blur",this.onBlur.bind(this))}}}(jQuery),function($){HappyForms.parts=HappyForms.parts||{},HappyForms.parts.radio={init:function(){this.type=this.$el.data("happyforms-type"),this.$input=$("input",this.$el),this.$visualInput=$("input[type=email]",this.$el),this.$input.on("keyup",this.triggerChange.bind(this)),this.$input.on("change",this.triggerChange.bind(this)),this.$input.on("change",this.onRadioChange.bind(this)),this.$input.on("focus",this.onFocus.bind(this))},onRadioChange:function(e){var $otherRadio=$(".happyforms-part-option--other input[type=radio]",this.$el),$otherInput=$otherRadio.parent().nextAll("input"),$generalInput=$("input[type=text]",this.$el);$generalInput.prop("required",!1),$otherRadio.length&&$otherRadio.is(":checked")?($(e.target)[0]===$otherRadio[0]&&$otherInput.addClass("hf-show").trigger("focus"),""===this.$el.data("happyforms-required")&&$otherInput.prop("required",!0)):$generalInput.removeClass("hf-show")},onFocus:function(e){e=$(e.target);"text"===e.attr("type")&&e.prevAll("input[type=radio]").prop("checked",!0)},serialize:function(){var self=this;return this.$input.map(function(i,input){var input=$(input),$customInput=0;if("text"!==input.attr("type")){"text"===$(self.$input[i+1]).attr("type")&&($customInput=$(self.$input[i+1]));i={name:input.attr("name"),value:input.val()};if($customInput.length&&($customInput=$customInput.val(),i.value=[input.val(),$customInput],i.value=JSON.stringify(i.value)),input.is(":checked"))return i}}).toArray()}}}(jQuery),function($){HappyForms.parts=HappyForms.parts||{},HappyForms.parts.checkbox={init:function(){this.type=this.$el.data("happyforms-type"),this.$input=$("input",this.$el),this.$input.on("change",this.triggerChange.bind(this)),this.$input.on("change",this.onCheckboxChange.bind(this)),this.$input.on("focus",this.onFocus.bind(this))},onCheckboxChange:function(e){var $otherCheckbox=$(".happyforms-part-option--other input[type=checkbox]",this.$el),$otherInput=$otherCheckbox.parent().nextAll("input"),$generalInput=$("input[type=text]",this.$el);$generalInput.prop("required",!1),$otherCheckbox.length&&$otherCheckbox.is(":checked")?($(e.target)[0]===$otherCheckbox[0]&&$otherInput.addClass("hf-show").trigger("focus"),""===this.$el.data("happyforms-required")&&$otherInput.prop("required",!0)):$generalInput.removeClass("hf-show")},serialize:function(){var self=this;return this.$input.map(function(i,input){var input=$(input),$customInput=0;if("text"!==input.attr("type")){"text"===$(self.$input[i+1]).attr("type")&&($customInput=$(self.$input[i+1]));i={name:input.attr("name"),value:input.val()};if($customInput.length&&($customInput=$customInput.val(),i.value=[input.val(),$customInput],i.value=JSON.stringify(i.value)),input.is(":checked"))return i}}).toArray()},onFocus:function(e){e=$(e.target);"text"===e.attr("type")&&e.prevAll("input[type=checkbox]").prop("checked",!0)}}}(jQuery),function($){HappyForms.parts=HappyForms.parts||{},HappyForms.parts.select={init:function(options){this.type=this.$el.data("happyforms-type"),this.$input=$("[data-serialize]",this.$el),this.$input.on("change",this.triggerChange.bind(this)),this.$input.on("blur",this.onBlur.bind(this))},onBlur:function(){var $otherinput=$(".happyforms-part-option--other input[type=text]",this.$el);"999"===this.$input.val()?($otherinput.addClass("hf-show"),$otherinput.focus()):$otherinput.removeClass("hf-show")},serialize:function(){var self=this;return this.$input.map(function(i,select){var select=$(select,self.$el),$customInput=0,value=(999==select.val()&&($customInput=$(" .happyforms-part-option--other input[type=text]",self.$el)),select.val()),value=(null==value&&(value=""),{name:select.attr("name"),value:value});return $customInput.length&&($customInput=$customInput.val(),value.value=[select.val(),$customInput],value.value=JSON.stringify(value.value)),value}).toArray()}}}(jQuery),function($){HappyForms.parts=HappyForms.parts||{},HappyForms.parts.number={init:function(){this.type=this.$el.data("happyforms-type"),this.allowedKeys=["0","1","2","3","4","5","6","7","8","9","Meta","Delete","ArrowLeft","ArrowRight"];var self,decimalMark,delimiterMark,masked=this.$el.attr("data-mask");this.$input=$("input",this.$el),this.cleaveInstances=[],this.$input.on("keyup",this.onKeyUp.bind(this)),this.$input.on("change",this.triggerChange.bind(this)),this.$input.on("focus",this.onInputFocus.bind(this)),this.$input.on("blur",this.onBlur.bind(this)),this.numeralDecimalMark=this.$el.attr("data-decimal-mark")||"",this.delimiter=this.$el.attr("data-thousands-delimiter")||"",masked&&(decimalMark=(self=this).numeralDecimalMark,delimiterMark=this.delimiter,this.$input.each(function(){var $input=$(this),$input=new Cleave($input,{numeral:!0,numeralDecimalMark:decimalMark,delimiter:delimiterMark});self.cleaveInstances.push($input)})),this.onBlur()},onKeyUp:function(e){var value=$(e.target).val(),regex=new RegExp("[^0-9"+this.numeralDecimalMark+this.delimiter+"-]","g"),value=value.replace(regex,"");$(e.target).val(value),this.triggerChange()},reinit:function(){$.each(this.cleaveInstances,function(i,instance){var input=instance.element,rawValue=instance.getRawValue();instance.destroy(),input.value=rawValue}),this.init()}}}(jQuery),HappyForms.Antispam={getHash:function(data){var hash=[];return data.forEach(function(entry){hash.push(entry.value)}),hash=hash.join("").replace(/[^\w\d]/gm,""),hash=md5(hash)},getPlatformInfo:function(){var key,value,info={user_agent:navigator.userAgent,app_version:navigator.appVersion,language:navigator.language||navigator.userLanguage||navigator.browserLanguage||navigator.systemLanguage,languages_length:navigator.languages.length,webdriver:navigator.webdriver?1:0,concurrency:navigator.hardwareConcurrency,outer_width:window.outerWidth,outer_height:window.outerHeight,connectionRtt:navigator.connection?navigator.connection.rtt:-1},platformInfo={};for([key,value]of Object.entries(info))platformInfo[`platform_info[${key}]`]=value;return platformInfo}},function($){HappyForms.parts=HappyForms.parts||{},HappyForms.parts.base={init:function(){this.type=this.$el.data("happyforms-type"),this.$input=$("input, textarea, select",this.$el),this.$input.on("keyup change",this.triggerChange.bind(this)),this.$input.on("blur",this.onBlur.bind(this)),this.$input.on("focus",this.onInputFocus.bind(this)),this.onBlur()},getType:function(){return this.type},onInputFocus:function(){this.$el.addClass("focus")},onBlur:function(){this.$el.is(".happyforms-part--label-as_placeholder")&&(this.isFilled()?this.$el.addClass("happyforms-part--filled"):this.$el.removeClass("happyforms-part--filled")),this.$el.removeClass("focus")},triggerChange:function(data){this.$el.trigger("happyforms-change",data)},isRequired:function(){return this.$el.is(":visible")&&this.$el.is("[data-happyforms-required]")},isFilled:function(){return 0<this.$input.filter(function(){var $input=$(this);return $input.is("[type=checkbox]")||$input.is("[type=radio]")?$input.is(":checked"):""!==$input.val()}).length},confirmationMatches:function(){var matches=!1,$input=this.$input,$input=($input=this.$visualInput?this.$visualInput:$input).map(function(){return $(this).val()}).toArray();return matches=2===$input.length?$input[0]===$input[1]:matches},requiresConfirmation:function(){return this.$el.is("[data-happyforms-require-confirmation]")},serialize:function(){return this.$input.map(function(i,input){var input=$(input),keyValue={name:input.attr("name"),value:input.val()};if(!input.is("[type=checkbox]")&&!input.is("[type=radio]")||input.is(":checked"))return keyValue}).toArray()},isValid:function(){var valid=!0;this.$el.data("happyforms-type");return this.$input?(this.isRequired()&&(valid=valid&&this.isFilled()),this.isRequired()&&this.requiresConfirmation()?valid&&this.confirmationMatches():valid):valid},destroy:function(){this.$el.data("HappyFormPart",!1)}},HappyForms.wrapPart=function($part,$form){var type=$part.data("happyforms-type"),partMethods=HappyForms.parts.base;HappyForms.parts[type]&&(partMethods=$.extend({},HappyForms.parts.base,HappyForms.parts[type])),$part.happyFormPart(partMethods,{form:$form})},HappyForms.Form=function(el){this.el=el,this.$el=$(this.el),this.$form=$("form",this.$el),this.$parts=$("[data-happyforms-type]",this.$form),this.$submits=$('[type="submit"], a.submit',this.$form),this.$submit=$('[type="submit"]',this.$form),this.$submitLinks=$("a.submit",this.$form),this.$step=$('[name="happyforms_step"]',this.$form),this.init()},HappyForms.Form.prototype={init:function(){var $form=this.$form;$("[data-happyforms-type]",this.$form).each(function(){var $part=$(this);$part.data("happyforms-type");HappyForms.wrapPart($part,$form)}),$('[name="client_referer"]',this.$form).val(window.location.href),this.$el.trigger("happyforms-change"),this.$el.trigger("happyforms-init"),this.$form.off("submit"),this.$submit.off("click"),this.$submitLinks.off("click"),this.$form.on("submit",this.submit.bind(this)),this.$submit.on("click",this.buttonSubmit.bind(this)),this.$submitLinks.on("click",this.linkSubmit.bind(this)),this.$el.on("happyforms-scrolltop",this.onScrollTop.bind(this))},detach:function(){this.$el.off("happyforms-change"),this.$el.off("happyforms-scrolltop"),$("[data-happyforms-type]",this.$form).remove()},serialize:function(submitEl){for(var action=$("[name=action]",this.$form).val(),clientReferer=$('[name="client_referer"]',this.$form).val(),form_id=$("[name=happyforms_form_id]",this.$form).val(),formData=($("[name=_wp_http_referer]",this.$form).val(),[{name:"action",value:action},{name:"happyforms_client_referer",value:clientReferer},{name:"happyforms_form_id",value:form_id},{name:"happyforms_step",value:this.$step.val()},{name:"happyforms_random_seed",value:$("[name=happyforms_random_seed]",this.$form).val()}]),honeypotNames=["single_line_text","multi_line_text","number"],h=0;h<honeypotNames.length;h++){var inputName=form_id+"-"+honeypotNames[h],$input=$("[name="+inputName+"]");if($input.length){formData.push({name:inputName,value:$input.val()});break}}var key,value,action=$("[data-happyforms-type]",this.$form).map(function(i,part){return $(part).happyFormPart("serialize")}).toArray().filter(function(entry){return null!==entry.name&&void 0!==entry.name}),clientReferer=formData.concat(action),params=new URLSearchParams,action=(clientReferer.forEach(function(entry){params.append(entry.name,entry.value)}),HappyForms.Antispam.getHash(clientReferer)),clientReferer=(params.append("hash",action),HappyForms.Antispam.getPlatformInfo());for([key,value]of Object.entries(clientReferer))params.append(key,value);return params=params.toString()},buttonSubmit:function(e){e.target.hasAttribute("data-step")&&this.$step.val(e.target.getAttribute("data-step"))},linkSubmit:function(e){e.preventDefault(),e.stopImmediatePropagation(),e.target.hasAttribute("data-step")&&this.$step.val(e.target.getAttribute("data-step")),this.$form.trigger("submit")},submit:function(e){e.preventDefault(),this.$form.addClass("happyforms-form--submitting"),this.$submits.attr("disabled","disabled"),$.ajax({type:"post",data:this.serialize(e.target)}).done(this.onSubmitComplete.bind(this))},onSubmitComplete:function(response){if(this.$form.trigger("happyforms.submitted",response),!response.data)return!1;var elTopOffset,$notices;response.data.html&&(response=$(response.data.html),$("[data-happyforms-type]",this.$form).each(function(){$(this).trigger("happyforms.detach")}),this.detach(),this.$el.replaceWith(response),this.$el=response,this.$el.happyForm(),(response=$("form",this.$el)).attr("data-happyforms-scroll-disabled")||(this.$el.get(0).getBoundingClientRect().top<0&&(elTopOffset=this.$el.offset().top,$notices=$(".happyforms-message-notices",this.$el),response.is(".happyforms-form--notices-below")&&$notices.length&&(elTopOffset=$notices.offset().top),($notices=response.attr("data-happyforms-scroll-offset"))&&(elTopOffset+=$notices=parseInt($notices,10)),this.$el.trigger("happyforms-scrolltop",elTopOffset)),!$(".happyforms-message-notice.error",response).length&&this.$el.hasClass("happyforms-form--hide-on-submit")&&$(".happyforms-part",response).hide()))},onScrollTop:function(e,offset){e.isDefaultPrevented()||$("html, body").animate({scrollTop:offset+"px"},500)}},HappyForms.Part=function(el){this.el=el,this.$el=$(this.el)},$.fn.happyFormPart=function(method){if("object"==typeof method){var part=new HappyForms.Part(this);$.extend(part,method),$(this).data("HappyFormPart",part),part.init.apply(part,Array.prototype.slice.call(arguments,1))}else{part=$(this).data("HappyFormPart");if(part&&part[method])return part[method].apply(part,Array.prototype.slice.call(arguments,1))}},$.fn.happyForm=function(method){this.each(function(){if(method){var instance=$.data(this,"HappyForm");if(instance&&instance[method])return instance[method].apply(instance,Array.prototype.slice.call(arguments,1))}else $.data(this,"HappyForm",new HappyForms.Form(this,arguments))})},$(function(){$(".happyforms-form").happyForm()})}(jQuery);
|
core/assets/css/customize.css
CHANGED
@@ -584,7 +584,8 @@ a.happyforms-form-part-remove:hover {
|
|
584 |
}
|
585 |
|
586 |
.happyforms-setup-view .customize-control .customize-inside-control-row,
|
587 |
-
.happyforms-email-view .customize-control .customize-inside-control-row
|
|
|
588 |
margin-left: 0;
|
589 |
padding: 0;
|
590 |
}
|
@@ -622,44 +623,12 @@ a.happyforms-form-part-remove:hover {
|
|
622 |
* Form message
|
623 |
*
|
624 |
*/
|
625 |
-
.happyforms-messages-view .customize-control,
|
626 |
-
.happyforms-messages-view #messages-view-errors,
|
627 |
-
.happyforms-messages-view #messages-view-hints {
|
628 |
-
display: none;
|
629 |
-
}
|
630 |
-
|
631 |
-
#customize-control-error_message,
|
632 |
-
.has-required-selection-fields #messages-view-errors,
|
633 |
-
.has-min-limit-choices #messages-view-errors,
|
634 |
-
.has-field #messages-view-errors,
|
635 |
-
.has-optional-field #messages-view-hints,
|
636 |
-
.has-required-field #messages-view-hints,
|
637 |
-
.has-select #messages-view-hints,
|
638 |
-
.has-min-chars-label #messages-view-hints,
|
639 |
-
.has-max-chars-label #messages-view-hints,
|
640 |
-
.has-min-words-label #messages-view-hints,
|
641 |
-
.has-max-words-label #messages-view-hints {
|
642 |
-
display: block;
|
643 |
-
}
|
644 |
|
645 |
#customize-control-submit_button_label,
|
646 |
.has-field #customize-control-field_invalid,
|
647 |
.has-required-text-fields #customize-control-field_empty,
|
648 |
.has-required-selection-fields #customize-control-no_selection,
|
649 |
-
.has-optional-field #customize-control-optional_part_label,
|
650 |
-
.has-required-field #customize-control-required_field_label,
|
651 |
-
.has-min-limit-choices #customize-control-select_more_choices,
|
652 |
-
.has-max-limit-choices #customize-control-select_less_choices,
|
653 |
#customize-control-confirmation_message,
|
654 |
-
.has-min-words-label #customize-control-words_label_min,
|
655 |
-
.has-max-words-label #customize-control-words_label_max,
|
656 |
-
.has-min-chars-label #customize-control-characters_label_min,
|
657 |
-
.has-max-chars-label #customize-control-characters_label_max,
|
658 |
-
.show-msg-short-label #customize-control-message_too_short,
|
659 |
-
.has-max-chars-label #customize-control-message_too_long,
|
660 |
-
.has-max-words-label #customize-control-message_too_long,
|
661 |
-
.has-number #customize-control-number_min_invalid,
|
662 |
-
.has-number #customize-control-number_max_invalid,
|
663 |
.has-show-submissions-left #customize-control-submissions_left_label {
|
664 |
display: block;
|
665 |
}
|
@@ -1900,3 +1869,8 @@ ul.happyforms-parts-list li[data-part-type="poll"] {
|
|
1900 |
margin: 0;
|
1901 |
padding: 10px 10px 11px 14px;
|
1902 |
}
|
|
|
|
|
|
|
|
|
|
584 |
}
|
585 |
|
586 |
.happyforms-setup-view .customize-control .customize-inside-control-row,
|
587 |
+
.happyforms-email-view .customize-control .customize-inside-control-row,
|
588 |
+
.happyforms-messages-view .customize-control .customize-inside-control-row {
|
589 |
margin-left: 0;
|
590 |
padding: 0;
|
591 |
}
|
623 |
* Form message
|
624 |
*
|
625 |
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
626 |
|
627 |
#customize-control-submit_button_label,
|
628 |
.has-field #customize-control-field_invalid,
|
629 |
.has-required-text-fields #customize-control-field_empty,
|
630 |
.has-required-selection-fields #customize-control-no_selection,
|
|
|
|
|
|
|
|
|
631 |
#customize-control-confirmation_message,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
632 |
.has-show-submissions-left #customize-control-submissions_left_label {
|
633 |
display: block;
|
634 |
}
|
1869 |
margin: 0;
|
1870 |
padding: 10px 10px 11px 14px;
|
1871 |
}
|
1872 |
+
|
1873 |
+
/* deprecated message fields */
|
1874 |
+
#customize-control-no_results_label {
|
1875 |
+
display: none;
|
1876 |
+
}
|
core/classes/class-form-email.php
CHANGED
@@ -48,6 +48,18 @@ class HappyForms_Form_Email {
|
|
48 |
'default' => __( 'New submission to your form', 'happyforms' ),
|
49 |
'sanitize' => 'sanitize_text_field',
|
50 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
51 |
'alert_email_reply_to' => array(
|
52 |
'default' => '',
|
53 |
'sanitize' => 'sanitize_text_field',
|
@@ -80,6 +92,18 @@ class HappyForms_Form_Email {
|
|
80 |
'default' => 0,
|
81 |
'sanitize' => 'happyforms_sanitize_checkbox'
|
82 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
83 |
);
|
84 |
|
85 |
return $fields;
|
@@ -87,12 +111,12 @@ class HappyForms_Form_Email {
|
|
87 |
|
88 |
public function get_controls() {
|
89 |
$controls = array(
|
90 |
-
|
91 |
'type' => 'checkbox',
|
92 |
'label' => __( 'Email me a copy of each submission', 'happyforms' ),
|
93 |
'field' => 'receive_email_alerts',
|
94 |
),
|
95 |
-
|
96 |
'type' => 'group_start',
|
97 |
'trigger' => 'receive_email_alerts'
|
98 |
),
|
@@ -127,6 +151,21 @@ class HappyForms_Form_Email {
|
|
127 |
'label' => __( 'Email subject', 'happyforms' ),
|
128 |
'field' => 'alert_email_subject',
|
129 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
130 |
540 => array(
|
131 |
'type' => 'group_end'
|
132 |
),
|
@@ -169,6 +208,21 @@ class HappyForms_Form_Email {
|
|
169 |
'label' => __( "Include submitted values", 'happyforms' ),
|
170 |
'field' => 'confirmation_email_include_values'
|
171 |
),
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
172 |
870 => array(
|
173 |
'type' => 'group_end'
|
174 |
)
|
48 |
'default' => __( 'New submission to your form', 'happyforms' ),
|
49 |
'sanitize' => 'sanitize_text_field',
|
50 |
),
|
51 |
+
'include_submitters_ip' => array(
|
52 |
+
'default' => 0,
|
53 |
+
'sanitize' => 'happyforms_sanitize_checkbox'
|
54 |
+
),
|
55 |
+
'include_referral_link' => array(
|
56 |
+
'default' => 0,
|
57 |
+
'sanitize' => 'happyforms_sanitize_checkbox'
|
58 |
+
),
|
59 |
+
'include_submission_date_time' => array(
|
60 |
+
'default' => 0,
|
61 |
+
'sanitize' => 'happyforms_sanitize_checkbox'
|
62 |
+
),
|
63 |
'alert_email_reply_to' => array(
|
64 |
'default' => '',
|
65 |
'sanitize' => 'sanitize_text_field',
|
92 |
'default' => 0,
|
93 |
'sanitize' => 'happyforms_sanitize_checkbox'
|
94 |
),
|
95 |
+
'confirmation_email_include_submitters_ip' => array(
|
96 |
+
'default' => 0,
|
97 |
+
'sanitize' => 'happyforms_sanitize_checkbox'
|
98 |
+
),
|
99 |
+
'confirmation_email_include_referral_link' => array(
|
100 |
+
'default' => 0,
|
101 |
+
'sanitize' => 'happyforms_sanitize_checkbox'
|
102 |
+
),
|
103 |
+
'confirmation_email_include_submission_date_time' => array(
|
104 |
+
'default' => 0,
|
105 |
+
'sanitize' => 'happyforms_sanitize_checkbox'
|
106 |
+
),
|
107 |
);
|
108 |
|
109 |
return $fields;
|
111 |
|
112 |
public function get_controls() {
|
113 |
$controls = array(
|
114 |
+
340 => array(
|
115 |
'type' => 'checkbox',
|
116 |
'label' => __( 'Email me a copy of each submission', 'happyforms' ),
|
117 |
'field' => 'receive_email_alerts',
|
118 |
),
|
119 |
+
341 => array(
|
120 |
'type' => 'group_start',
|
121 |
'trigger' => 'receive_email_alerts'
|
122 |
),
|
151 |
'label' => __( 'Email subject', 'happyforms' ),
|
152 |
'field' => 'alert_email_subject',
|
153 |
),
|
154 |
+
451 => array(
|
155 |
+
'type' => 'checkbox',
|
156 |
+
'label' => __( 'Include submitter\'s IP address', 'happyforms' ),
|
157 |
+
'field' => 'include_submitters_ip',
|
158 |
+
),
|
159 |
+
452 => array(
|
160 |
+
'type' => 'checkbox',
|
161 |
+
'label' => __( 'Include referral link', 'happyforms' ),
|
162 |
+
'field' => 'include_referral_link',
|
163 |
+
),
|
164 |
+
453 => array(
|
165 |
+
'type' => 'checkbox',
|
166 |
+
'label' => __( 'Include submission date and time', 'happyforms' ),
|
167 |
+
'field' => 'include_submission_date_time',
|
168 |
+
),
|
169 |
540 => array(
|
170 |
'type' => 'group_end'
|
171 |
),
|
208 |
'label' => __( "Include submitted values", 'happyforms' ),
|
209 |
'field' => 'confirmation_email_include_values'
|
210 |
),
|
211 |
+
861 => array(
|
212 |
+
'type' => 'checkbox',
|
213 |
+
'label' => __( "Include submitter's IP address", 'happyforms' ),
|
214 |
+
'field' => 'confirmation_email_include_submitters_ip'
|
215 |
+
),
|
216 |
+
862 => array(
|
217 |
+
'type' => 'checkbox',
|
218 |
+
'label' => __( "Include referral link", 'happyforms' ),
|
219 |
+
'field' => 'confirmation_email_include_referral_link'
|
220 |
+
),
|
221 |
+
863 => array(
|
222 |
+
'type' => 'checkbox',
|
223 |
+
'label' => __( "Include submission date and time", 'happyforms' ),
|
224 |
+
'field' => 'confirmation_email_include_submission_date_time'
|
225 |
+
),
|
226 |
870 => array(
|
227 |
'type' => 'group_end'
|
228 |
)
|
core/classes/parts/class-part-checkbox.php
CHANGED
@@ -391,14 +391,14 @@ class HappyForms_Part_Checkbox extends HappyForms_Form_Part {
|
|
391 |
foreach( $part['options'] as $o => $option ) {
|
392 |
$option = wp_parse_args( $option, happyforms_upgrade_get_option_limiter()->get_option_fields() );
|
393 |
|
394 |
-
if ( '' == $option['limit_submissions_amount'] || $o !== intval( $value )
|
395 |
continue;
|
396 |
}
|
397 |
|
398 |
$limit = intval( $option['limit_submissions_amount'] );
|
399 |
$count = happyforms_upgrade_get_option_limiter()->count_by_option( $form['ID'], $part['id'], $option['id'] );
|
400 |
|
401 |
-
if ( $count
|
402 |
return new WP_Error( 'error', happyforms_get_validation_message( 'field_invalid' ) );
|
403 |
}
|
404 |
}
|
391 |
foreach( $part['options'] as $o => $option ) {
|
392 |
$option = wp_parse_args( $option, happyforms_upgrade_get_option_limiter()->get_option_fields() );
|
393 |
|
394 |
+
if ( '' == $option['limit_submissions_amount'] || $o !== intval( $value ) ) {
|
395 |
continue;
|
396 |
}
|
397 |
|
398 |
$limit = intval( $option['limit_submissions_amount'] );
|
399 |
$count = happyforms_upgrade_get_option_limiter()->count_by_option( $form['ID'], $part['id'], $option['id'] );
|
400 |
|
401 |
+
if ( $count >= $limit ) {
|
402 |
return new WP_Error( 'error', happyforms_get_validation_message( 'field_invalid' ) );
|
403 |
}
|
404 |
}
|
core/classes/parts/class-part-radio.php
CHANGED
@@ -250,14 +250,14 @@ class HappyForms_Part_Radio extends HappyForms_Form_Part {
|
|
250 |
foreach( $part['options'] as $o => $option ) {
|
251 |
$option = wp_parse_args( $option, happyforms_upgrade_get_option_limiter()->get_option_fields() );
|
252 |
|
253 |
-
if ( '' == $option['limit_submissions_amount'] || $o !== intval( $value )
|
254 |
continue;
|
255 |
}
|
256 |
|
257 |
$limit = intval( $option['limit_submissions_amount'] );
|
258 |
$count = happyforms_upgrade_get_option_limiter()->count_by_option( $form['ID'], $part['id'], $option['id'] );
|
259 |
|
260 |
-
if ( $count
|
261 |
return new WP_Error( 'error', happyforms_get_validation_message( 'field_invalid' ) );
|
262 |
}
|
263 |
}
|
250 |
foreach( $part['options'] as $o => $option ) {
|
251 |
$option = wp_parse_args( $option, happyforms_upgrade_get_option_limiter()->get_option_fields() );
|
252 |
|
253 |
+
if ( '' == $option['limit_submissions_amount'] || $o !== intval( $value ) ) {
|
254 |
continue;
|
255 |
}
|
256 |
|
257 |
$limit = intval( $option['limit_submissions_amount'] );
|
258 |
$count = happyforms_upgrade_get_option_limiter()->count_by_option( $form['ID'], $part['id'], $option['id'] );
|
259 |
|
260 |
+
if ( $count >= $limit ) {
|
261 |
return new WP_Error( 'error', happyforms_get_validation_message( 'field_invalid' ) );
|
262 |
}
|
263 |
}
|
core/classes/parts/class-part-select.php
CHANGED
@@ -263,14 +263,14 @@ class HappyForms_Part_Select extends HappyForms_Form_Part {
|
|
263 |
foreach( $part['options'] as $o => $option ) {
|
264 |
$option = wp_parse_args( $option, happyforms_upgrade_get_option_limiter()->get_option_fields() );
|
265 |
|
266 |
-
if ( '' == $option['limit_submissions_amount'] || $o !== intval( $value )
|
267 |
continue;
|
268 |
}
|
269 |
|
270 |
$limit = intval( $option['limit_submissions_amount'] );
|
271 |
$count = happyforms_upgrade_get_option_limiter()->count_by_option( $form['ID'], $part['id'], $option['id'] );
|
272 |
|
273 |
-
if ( $count
|
274 |
return new WP_Error( 'error', happyforms_get_validation_message( 'field_invalid' ) );
|
275 |
}
|
276 |
}
|
263 |
foreach( $part['options'] as $o => $option ) {
|
264 |
$option = wp_parse_args( $option, happyforms_upgrade_get_option_limiter()->get_option_fields() );
|
265 |
|
266 |
+
if ( '' == $option['limit_submissions_amount'] || $o !== intval( $value ) ) {
|
267 |
continue;
|
268 |
}
|
269 |
|
270 |
$limit = intval( $option['limit_submissions_amount'] );
|
271 |
$count = happyforms_upgrade_get_option_limiter()->count_by_option( $form['ID'], $part['id'], $option['id'] );
|
272 |
|
273 |
+
if ( $count >= $limit ) {
|
274 |
return new WP_Error( 'error', happyforms_get_validation_message( 'field_invalid' ) );
|
275 |
}
|
276 |
}
|
core/helpers/helper-form-templates.php
CHANGED
@@ -1395,3 +1395,19 @@ function happyforms_parts_autocorrect_attribute( $part ) {
|
|
1395 |
}
|
1396 |
|
1397 |
endif;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1395 |
}
|
1396 |
|
1397 |
endif;
|
1398 |
+
|
1399 |
+
if ( ! function_exists( 'happyforms_get_client_ip' ) ) :
|
1400 |
+
|
1401 |
+
function happyforms_get_client_ip() {
|
1402 |
+
$keys = array( 'HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'REMOTE_ADDR' );
|
1403 |
+
|
1404 |
+
foreach( $keys as $key ) {
|
1405 |
+
if ( isset( $_SERVER[$key] ) && ! empty( $_SERVER[$key] ) ) {
|
1406 |
+
return $_SERVER[$key];
|
1407 |
+
}
|
1408 |
+
}
|
1409 |
+
|
1410 |
+
return '';
|
1411 |
+
}
|
1412 |
+
|
1413 |
+
endif;
|
core/helpers/helper-misc.php
CHANGED
@@ -1161,16 +1161,6 @@ function happyforms_shuffle_array( $array, $seed = '' ) {
|
|
1161 |
|
1162 |
endif;
|
1163 |
|
1164 |
-
if ( ! function_exists( 'happyforms_capture_client_ip' ) ) :
|
1165 |
-
|
1166 |
-
function happyforms_capture_client_ip() {
|
1167 |
-
$capture_user_ip = apply_filters( 'happyforms_capture_client_ip', '__return_true' );
|
1168 |
-
|
1169 |
-
return $capture_user_ip;
|
1170 |
-
}
|
1171 |
-
|
1172 |
-
endif;
|
1173 |
-
|
1174 |
if ( ! function_exists( 'happyforms_the_external_link_icon' ) ) :
|
1175 |
|
1176 |
function happyforms_the_external_link_icon( $echo = true ) {
|
1161 |
|
1162 |
endif;
|
1163 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1164 |
if ( ! function_exists( 'happyforms_the_external_link_icon' ) ) :
|
1165 |
|
1166 |
function happyforms_the_external_link_icon( $echo = true ) {
|
core/templates/parts/frontend-checkbox.php
CHANGED
@@ -33,8 +33,8 @@
|
|
33 |
|
34 |
if ( '' != $option['limit_submissions_amount'] && 0 == $option['submissions_left'] ) {
|
35 |
$option_classes .= ' disabled-option';
|
|
|
36 |
}
|
37 |
-
|
38 |
?>
|
39 |
<div class="<?php echo $option_classes; ?>" id="<?php echo esc_attr( $option['id'] ); ?>">
|
40 |
<label class="option-label">
|
33 |
|
34 |
if ( '' != $option['limit_submissions_amount'] && 0 == $option['submissions_left'] ) {
|
35 |
$option_classes .= ' disabled-option';
|
36 |
+
$checked = '';
|
37 |
}
|
|
|
38 |
?>
|
39 |
<div class="<?php echo $option_classes; ?>" id="<?php echo esc_attr( $option['id'] ); ?>">
|
40 |
<label class="option-label">
|
core/templates/parts/frontend-radio.php
CHANGED
@@ -27,13 +27,13 @@
|
|
27 |
}
|
28 |
$checked = ( $o === $value ) ? 'checked="checked"' : '';
|
29 |
|
30 |
-
|
31 |
if ( is_string( $value ) ) {
|
32 |
$checked = checked( $value, $o, false );
|
33 |
}
|
34 |
|
35 |
if ( '' != $option['limit_submissions_amount'] && 0 == $option['submissions_left'] ) {
|
36 |
$option_classes .= ' disabled-option';
|
|
|
37 |
}
|
38 |
|
39 |
?>
|
27 |
}
|
28 |
$checked = ( $o === $value ) ? 'checked="checked"' : '';
|
29 |
|
|
|
30 |
if ( is_string( $value ) ) {
|
31 |
$checked = checked( $value, $o, false );
|
32 |
}
|
33 |
|
34 |
if ( '' != $option['limit_submissions_amount'] && 0 == $option['submissions_left'] ) {
|
35 |
$option_classes .= ' disabled-option';
|
36 |
+
$checked = '';
|
37 |
}
|
38 |
|
39 |
?>
|
core/templates/parts/frontend-select.php
CHANGED
@@ -48,7 +48,12 @@
|
|
48 |
$option_value = isset( $option['value'] ) ? $option['value'] : $index;
|
49 |
$submissions_left_label = isset( $option['submissions_left_label'] ) ? ' ' . $option['submissions_left_label'] : '';
|
50 |
$selected = ( $value !== '' && $value == $option_value ) ? ' selected' : '';
|
51 |
-
$disabled =
|
|
|
|
|
|
|
|
|
|
|
52 |
?>
|
53 |
<option value="<?php echo $option_value; ?>" <?php echo $selected; ?> <?php echo $disabled; ?> id="<?php echo esc_attr( $option['id'] ); ?>"><?php echo esc_attr( $option['label'] ); ?><?php echo $submissions_left_label; ?></option>
|
54 |
<?php endforeach; ?>
|
48 |
$option_value = isset( $option['value'] ) ? $option['value'] : $index;
|
49 |
$submissions_left_label = isset( $option['submissions_left_label'] ) ? ' ' . $option['submissions_left_label'] : '';
|
50 |
$selected = ( $value !== '' && $value == $option_value ) ? ' selected' : '';
|
51 |
+
$disabled = false;
|
52 |
+
|
53 |
+
if ( '' != $option['limit_submissions_amount'] && $option['submissions_left'] == 0 ) {
|
54 |
+
$disabled = ' disabled';
|
55 |
+
$selected = '';
|
56 |
+
}
|
57 |
?>
|
58 |
<option value="<?php echo $option_value; ?>" <?php echo $selected; ?> <?php echo $disabled; ?> id="<?php echo esc_attr( $option['id'] ); ?>"><?php echo esc_attr( $option['label'] ); ?><?php echo $submissions_left_label; ?></option>
|
59 |
<?php endforeach; ?>
|
happyforms.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
* Plugin URI: https://happyforms.io
|
6 |
* Description: Form builder to get in touch with visitors, grow your email list and collect payments.
|
7 |
* Author: Happyforms
|
8 |
-
* Version: 1.
|
9 |
* Author URI: https://happyforms.io
|
10 |
* Upgrade URI: https://happyforms.io/upgrade
|
11 |
*/
|
@@ -22,7 +22,7 @@ if ( defined( 'HAPPYFORMS_UPGRADE_VERSION' ) ) {
|
|
22 |
/**
|
23 |
* The current version of the plugin.
|
24 |
*/
|
25 |
-
define( 'HAPPYFORMS_VERSION', '1.
|
26 |
|
27 |
if ( ! function_exists( 'happyforms_get_version' ) ):
|
28 |
|
5 |
* Plugin URI: https://happyforms.io
|
6 |
* Description: Form builder to get in touch with visitors, grow your email list and collect payments.
|
7 |
* Author: Happyforms
|
8 |
+
* Version: 1.20.0
|
9 |
* Author URI: https://happyforms.io
|
10 |
* Upgrade URI: https://happyforms.io/upgrade
|
11 |
*/
|
22 |
/**
|
23 |
* The current version of the plugin.
|
24 |
*/
|
25 |
+
define( 'HAPPYFORMS_VERSION', '1.20.0' );
|
26 |
|
27 |
if ( ! function_exists( 'happyforms_get_version' ) ):
|
28 |
|
inc/assets/js/customize.js
CHANGED
@@ -1720,6 +1720,7 @@
|
|
1720 |
'change [data-attribute="no_results_label"]': 'onNoResultsLabelChange',
|
1721 |
'click [data-reset]': 'resetDefaultMessage',
|
1722 |
'keyup input[data-attribute]': 'onMessageValueChange',
|
|
|
1723 |
} ),
|
1724 |
|
1725 |
editors: {
|
1720 |
'change [data-attribute="no_results_label"]': 'onNoResultsLabelChange',
|
1721 |
'click [data-reset]': 'resetDefaultMessage',
|
1722 |
'keyup input[data-attribute]': 'onMessageValueChange',
|
1723 |
+
'click .customize-control-text_dummy_reset': 'openUpgradeModal',
|
1724 |
} ),
|
1725 |
|
1726 |
editors: {
|
inc/assets/js/frontend.js
CHANGED
@@ -171,6 +171,8 @@
|
|
171 |
HappyForms.wrapPart( $part, $form );
|
172 |
} );
|
173 |
|
|
|
|
|
174 |
this.$el.trigger( 'happyforms-change' );
|
175 |
this.$el.trigger( 'happyforms-init' );
|
176 |
|
@@ -194,6 +196,7 @@
|
|
194 |
|
195 |
serialize: function( submitEl ) {
|
196 |
var action = $( '[name=action]', this.$form ).val();
|
|
|
197 |
var form_id = $( '[name=happyforms_form_id]', this.$form ).val();
|
198 |
var referer = $( '[name=_wp_http_referer]', this.$form ).val();
|
199 |
var step = this.$step.val();
|
@@ -201,6 +204,7 @@
|
|
201 |
|
202 |
var formData = [
|
203 |
{ name: 'action', value: action },
|
|
|
204 |
{ name: 'happyforms_form_id', value: form_id },
|
205 |
{ name: 'happyforms_step', value: step },
|
206 |
{ name: 'happyforms_random_seed', value: randomSeed },
|
171 |
HappyForms.wrapPart( $part, $form );
|
172 |
} );
|
173 |
|
174 |
+
$( '[name="client_referer"]', this.$form ).val( window.location.href );
|
175 |
+
|
176 |
this.$el.trigger( 'happyforms-change' );
|
177 |
this.$el.trigger( 'happyforms-init' );
|
178 |
|
196 |
|
197 |
serialize: function( submitEl ) {
|
198 |
var action = $( '[name=action]', this.$form ).val();
|
199 |
+
var clientReferer = $( '[name="client_referer"]', this.$form ).val();
|
200 |
var form_id = $( '[name=happyforms_form_id]', this.$form ).val();
|
201 |
var referer = $( '[name=_wp_http_referer]', this.$form ).val();
|
202 |
var step = this.$step.val();
|
204 |
|
205 |
var formData = [
|
206 |
{ name: 'action', value: action },
|
207 |
+
{ name: 'happyforms_client_referer', value: clientReferer },
|
208 |
{ name: 'happyforms_form_id', value: form_id },
|
209 |
{ name: 'happyforms_step', value: step },
|
210 |
{ name: 'happyforms_random_seed', value: randomSeed },
|
inc/classes/class-happyforms.php
CHANGED
@@ -15,9 +15,11 @@ class HappyForms extends HappyForms_Core {
|
|
15 |
add_action( 'happyforms_do_setup_control', array( $this, 'do_control' ), 10, 3 );
|
16 |
add_action( 'happyforms_do_email_control', array( $this, 'do_control' ), 10, 3 );
|
17 |
add_action( 'happyforms_do_style_control', array( $this, 'do_control' ), 10, 3 );
|
|
|
18 |
add_filter( 'happyforms_setup_controls', array( $this, 'add_dummy_setup_controls' ) );
|
19 |
add_filter( 'happyforms_email_controls', array( $this, 'add_dummy_email_controls' ) );
|
20 |
add_filter( 'happyforms_style_controls', array( $this, 'add_dummy_style_controls' ) );
|
|
|
21 |
add_action( 'parse_request', array( $this, 'parse_archive_request' ) );
|
22 |
add_action( 'admin_init', [ $this, 'register_modals' ] );
|
23 |
add_action( 'load-plugins.php', array( $this, 'redirect_to_forms_page' ) );
|
@@ -193,6 +195,279 @@ class HappyForms extends HappyForms_Core {
|
|
193 |
return $controls;
|
194 |
}
|
195 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
196 |
public function do_control( $control, $field, $index ) {
|
197 |
$type = $control['type'];
|
198 |
|
@@ -215,6 +490,10 @@ class HappyForms extends HappyForms_Core {
|
|
215 |
if ( 'text_dummy' === $type ) {
|
216 |
require( happyforms_get_include_folder() . '/templates/customize-controls/text_dummy.php' );
|
217 |
}
|
|
|
|
|
|
|
|
|
218 |
}
|
219 |
|
220 |
public function admin_enqueue_scripts() {
|
15 |
add_action( 'happyforms_do_setup_control', array( $this, 'do_control' ), 10, 3 );
|
16 |
add_action( 'happyforms_do_email_control', array( $this, 'do_control' ), 10, 3 );
|
17 |
add_action( 'happyforms_do_style_control', array( $this, 'do_control' ), 10, 3 );
|
18 |
+
add_action( 'happyforms_do_messages_control', array( $this, 'do_control' ), 10, 3 );
|
19 |
add_filter( 'happyforms_setup_controls', array( $this, 'add_dummy_setup_controls' ) );
|
20 |
add_filter( 'happyforms_email_controls', array( $this, 'add_dummy_email_controls' ) );
|
21 |
add_filter( 'happyforms_style_controls', array( $this, 'add_dummy_style_controls' ) );
|
22 |
+
add_filter( 'happyforms_messages_controls', array( $this, 'add_dummy_messages_controls' ) );
|
23 |
add_action( 'parse_request', array( $this, 'parse_archive_request' ) );
|
24 |
add_action( 'admin_init', [ $this, 'register_modals' ] );
|
25 |
add_action( 'load-plugins.php', array( $this, 'redirect_to_forms_page' ) );
|
195 |
return $controls;
|
196 |
}
|
197 |
|
198 |
+
public function add_dummy_messages_controls( $controls ) {
|
199 |
+
$controls[42] = array(
|
200 |
+
'type' => 'text_dummy_reset',
|
201 |
+
'dummy_id' => 'form_redirect_submission',
|
202 |
+
'label' => __( 'Form redirected after submission', 'happyforms' ),
|
203 |
+
);
|
204 |
+
|
205 |
+
$controls[43] = array(
|
206 |
+
'type' => 'text_dummy_reset',
|
207 |
+
'dummy_id' => 'form_reached_reply_limit',
|
208 |
+
'label' => __( 'Form has reached its reply limit', 'happyforms' ),
|
209 |
+
);
|
210 |
+
|
211 |
+
$controls[44] = array(
|
212 |
+
'type' => 'text_dummy_reset',
|
213 |
+
'dummy_id' => 'submitter_returned_draft',
|
214 |
+
'label' => __( 'Submitter has returned to a draft', 'happyforms' ),
|
215 |
+
);
|
216 |
+
|
217 |
+
$controls[45] = array(
|
218 |
+
'type' => 'text_dummy_reset',
|
219 |
+
'dummy_id' => 'submitter_review_page',
|
220 |
+
'label' => __( 'Submitter is viewing review page', 'happyforms' ),
|
221 |
+
);
|
222 |
+
|
223 |
+
$controls[46] = array(
|
224 |
+
'type' => 'text_dummy_reset',
|
225 |
+
'dummy_id' => 'payment_completed',
|
226 |
+
'label' => __( 'Payment completed', 'happyforms' ),
|
227 |
+
);
|
228 |
+
|
229 |
+
$controls[47] = array(
|
230 |
+
'type' => 'text_dummy_reset',
|
231 |
+
'dummy_id' => 'payment_failed',
|
232 |
+
'label' => __( 'Payment failed', 'happyforms' ),
|
233 |
+
);
|
234 |
+
|
235 |
+
$controls[48] = array(
|
236 |
+
'type' => 'text_dummy_reset',
|
237 |
+
'dummy_id' => 'payment_cancelled',
|
238 |
+
'label' => __( 'Payment cancelled', 'happyforms' ),
|
239 |
+
);
|
240 |
+
|
241 |
+
$controls[2020] = array(
|
242 |
+
'type' => 'text_dummy_reset',
|
243 |
+
'dummy_id' => 'previous_page',
|
244 |
+
'label' => __( 'Previous page', 'happyforms' ),
|
245 |
+
);
|
246 |
+
|
247 |
+
$controls[2030] = array(
|
248 |
+
'type' => 'text_dummy_reset',
|
249 |
+
'dummy_id' => 'redirect_page',
|
250 |
+
'label' => __( 'Redirect to page', 'happyforms' ),
|
251 |
+
);
|
252 |
+
|
253 |
+
$controls[2031] = array(
|
254 |
+
'type' => 'text_dummy_reset',
|
255 |
+
'dummy_id' => 'print_submission',
|
256 |
+
'label' => __( 'Print user submission', 'happyforms' ),
|
257 |
+
);
|
258 |
+
|
259 |
+
$controls[2041] = array(
|
260 |
+
'type' => 'text_dummy_reset',
|
261 |
+
'dummy_id' => 'edit_reply',
|
262 |
+
'label' => __( 'Edit reply', 'happyforms' ),
|
263 |
+
);
|
264 |
+
|
265 |
+
$controls[2061] = array(
|
266 |
+
'type' => 'text_dummy_reset',
|
267 |
+
'dummy_id' => 'clear_saved_reply',
|
268 |
+
'label' => __( 'Clear saved draft reply', 'happyforms' ),
|
269 |
+
);
|
270 |
+
|
271 |
+
$controls[2081] = array(
|
272 |
+
'type' => 'text_dummy_reset',
|
273 |
+
'dummy_id' => 'save_draft_reply',
|
274 |
+
'label' => __( 'Save draft reply', 'happyforms' ),
|
275 |
+
);
|
276 |
+
|
277 |
+
$controls[2141] = array(
|
278 |
+
'type' => 'text_dummy_reset',
|
279 |
+
'dummy_id' => 'upload_files',
|
280 |
+
'label' => __( 'Upload files', 'happyforms' ),
|
281 |
+
);
|
282 |
+
|
283 |
+
$controls[2161] = array(
|
284 |
+
'type' => 'text_dummy_reset',
|
285 |
+
'dummy_id' => 'remove_uploaded_file',
|
286 |
+
'label' => __( 'Remove uploaded file', 'happyforms' ),
|
287 |
+
);
|
288 |
+
|
289 |
+
$controls[2201] = array(
|
290 |
+
'type' => 'text_dummy_reset',
|
291 |
+
'dummy_id' => 'review_reply',
|
292 |
+
'label' => __( 'Review reply', 'happyforms' ),
|
293 |
+
);
|
294 |
+
|
295 |
+
$controls[2260] = array(
|
296 |
+
'type' => 'text_dummy_reset',
|
297 |
+
'dummy_id' => 'start_drawing_signature',
|
298 |
+
'label' => __( 'Start drawing signature', 'happyforms' ),
|
299 |
+
);
|
300 |
+
|
301 |
+
$controls[2261] = array(
|
302 |
+
'type' => 'text_dummy_reset',
|
303 |
+
'dummy_id' => 'start_over_signature',
|
304 |
+
'label' => __( 'Start over drawing signature', 'happyforms' ),
|
305 |
+
);
|
306 |
+
|
307 |
+
$controls[2263] = array(
|
308 |
+
'type' => 'text_dummy_reset',
|
309 |
+
'dummy_id' => 'clear_drawn_signature',
|
310 |
+
'label' => __( 'Clear drawn signature', 'happyforms' ),
|
311 |
+
);
|
312 |
+
|
313 |
+
$controls[2264] = array(
|
314 |
+
'type' => 'text_dummy_reset',
|
315 |
+
'dummy_id' => 'done_drawing_signature',
|
316 |
+
'label' => __( 'Done drawing signature', 'happyforms' ),
|
317 |
+
);
|
318 |
+
|
319 |
+
$controls[4052] = array(
|
320 |
+
'type' => 'text_dummy_reset',
|
321 |
+
'dummy_id' => 'field_answer_limit',
|
322 |
+
'label' => __( 'Field answer reached its limit', 'happyforms' ),
|
323 |
+
);
|
324 |
+
|
325 |
+
$controls[4053] = array(
|
326 |
+
'type' => 'text_dummy_reset',
|
327 |
+
'dummy_id' => 'coupon_invalid',
|
328 |
+
'label' => __( 'Coupon code invalid', 'happyforms' ),
|
329 |
+
);
|
330 |
+
|
331 |
+
$controls[4061] = array(
|
332 |
+
'type' => 'text_dummy_reset',
|
333 |
+
'dummy_id' => 'required_file_not_uploaded',
|
334 |
+
'label' => __( 'Required file isn\'t uploaded', 'happyforms' ),
|
335 |
+
);
|
336 |
+
|
337 |
+
$controls[4106] = array(
|
338 |
+
'type' => 'text_dummy_reset',
|
339 |
+
'dummy_id' => 'required_not_scrolled',
|
340 |
+
'label' => __( 'Required terms haven\'t been scrolled', 'happyforms' ),
|
341 |
+
);
|
342 |
+
|
343 |
+
$controls[4121] = array(
|
344 |
+
'type' => 'text_dummy_reset',
|
345 |
+
'dummy_id' => 'field_disallowed_word',
|
346 |
+
'label' => __( 'Field contains disallowed word', 'happyforms' ),
|
347 |
+
);
|
348 |
+
|
349 |
+
$controls[4122] = array(
|
350 |
+
'type' => 'text_dummy_reset',
|
351 |
+
'dummy_id' => 'disallowed_ip',
|
352 |
+
'label' => __( 'Disallowed IP address or browser', 'happyforms' ),
|
353 |
+
);
|
354 |
+
|
355 |
+
$controls[4123] = array(
|
356 |
+
'type' => 'text_dummy_reset',
|
357 |
+
'dummy_id' => 'file_too_big',
|
358 |
+
'label' => __( 'This file\'s size is too big', 'happyforms' ),
|
359 |
+
);
|
360 |
+
|
361 |
+
$controls[4124] = array(
|
362 |
+
'type' => 'text_dummy_reset',
|
363 |
+
'dummy_id' => 'file_not_allowed',
|
364 |
+
'label' => __( 'This file\'s type not allowed', 'happyforms' ),
|
365 |
+
);
|
366 |
+
|
367 |
+
$controls[4125] = array(
|
368 |
+
'type' => 'text_dummy_reset',
|
369 |
+
'dummy_id' => 'file_name_exists',
|
370 |
+
'label' => __( 'A file with this name has already been uploaded', 'happyforms' ),
|
371 |
+
);
|
372 |
+
|
373 |
+
$controls[4126] = array(
|
374 |
+
'type' => 'text_dummy_reset',
|
375 |
+
'dummy_id' => 'uploaded_few_files',
|
376 |
+
'label' => __( 'User uploaded too few files', 'happyforms' ),
|
377 |
+
);
|
378 |
+
$controls[4341] = array(
|
379 |
+
'type' => 'text_dummy_reset',
|
380 |
+
'dummy_id' => 'price_too_low',
|
381 |
+
'label' => __( 'Price is too low', 'happyforms' ),
|
382 |
+
);
|
383 |
+
|
384 |
+
$controls[6121] = array(
|
385 |
+
'type' => 'text_dummy_reset',
|
386 |
+
'dummy_id' => 'total_files_uploaded',
|
387 |
+
'label' => __( 'Total files uploaded', 'happyforms' ),
|
388 |
+
);
|
389 |
+
|
390 |
+
$controls[6136] = array(
|
391 |
+
'type' => 'text_dummy_reset',
|
392 |
+
'dummy_id' => 'payment_method',
|
393 |
+
'label' => __( 'Payment method', 'happyforms' ),
|
394 |
+
);
|
395 |
+
|
396 |
+
$controls[6137] = array(
|
397 |
+
'type' => 'text_dummy_reset',
|
398 |
+
'dummy_id' => 'pay_what_you_want',
|
399 |
+
'label' => __( 'Pay what you want', 'happyforms' ),
|
400 |
+
);
|
401 |
+
|
402 |
+
$controls[6141] = array(
|
403 |
+
'type' => 'text_dummy_reset',
|
404 |
+
'dummy_id' => 'submitter_redirected_paypal',
|
405 |
+
'label' => __( 'Submitter will be redirected to PayPal', 'happyforms' ),
|
406 |
+
);
|
407 |
+
|
408 |
+
$controls[6171] = array(
|
409 |
+
'type' => 'text_dummy_reset',
|
410 |
+
'dummy_id' => 'stripe_processing_payment',
|
411 |
+
'label' => __( 'Stripe is processing payment', 'happyforms' ),
|
412 |
+
);
|
413 |
+
|
414 |
+
$controls[6172] = array(
|
415 |
+
'type' => 'text_dummy_reset',
|
416 |
+
'dummy_id' => 'stripe_payment',
|
417 |
+
'label' => __( 'Stripe payment', 'happyforms' ),
|
418 |
+
);
|
419 |
+
|
420 |
+
$controls[6173] = array(
|
421 |
+
'type' => 'text_dummy_reset',
|
422 |
+
'dummy_id' => 'card_number',
|
423 |
+
'label' => __( 'Card number', 'happyforms' ),
|
424 |
+
);
|
425 |
+
|
426 |
+
$controls[6174] = array(
|
427 |
+
'type' => 'text_dummy_reset',
|
428 |
+
'dummy_id' => 'card_expiration',
|
429 |
+
'label' => __( 'Card expiration', 'happyforms' ),
|
430 |
+
);
|
431 |
+
|
432 |
+
$controls[6175] = array(
|
433 |
+
'type' => 'text_dummy_reset',
|
434 |
+
'dummy_id' => 'card_expiration_hint',
|
435 |
+
'label' => __( 'Card expiration hint', 'happyforms' ),
|
436 |
+
);
|
437 |
+
|
438 |
+
$controls[6176] = array(
|
439 |
+
'type' => 'text_dummy_reset',
|
440 |
+
'dummy_id' => 'card_security_code',
|
441 |
+
'label' => __( 'Card security code', 'happyforms' ),
|
442 |
+
);
|
443 |
+
|
444 |
+
$controls[6177] = array(
|
445 |
+
'type' => 'text_dummy_reset',
|
446 |
+
'dummy_id' => 'card_security_code_hint',
|
447 |
+
'label' => __( 'Card security code hint', 'happyforms' ),
|
448 |
+
);
|
449 |
+
|
450 |
+
$controls[6178] = array(
|
451 |
+
'type' => 'text_dummy_reset',
|
452 |
+
'dummy_id' => 'coupon_field_label',
|
453 |
+
'label' => __( 'Coupon field label', 'happyforms' ),
|
454 |
+
);
|
455 |
+
|
456 |
+
$controls[6179] = array(
|
457 |
+
'type' => 'text_dummy_reset',
|
458 |
+
'dummy_id' => 'apply_coupon_label',
|
459 |
+
'label' => __( 'Apply coupon button label', 'happyforms' ),
|
460 |
+
);
|
461 |
+
|
462 |
+
$controls[6241] = array(
|
463 |
+
'type' => 'text_dummy_reset',
|
464 |
+
'dummy_id' => 'current_page',
|
465 |
+
'label' => __( 'Current page', 'happyforms' ),
|
466 |
+
);
|
467 |
+
|
468 |
+
return $controls;
|
469 |
+
}
|
470 |
+
|
471 |
public function do_control( $control, $field, $index ) {
|
472 |
$type = $control['type'];
|
473 |
|
490 |
if ( 'text_dummy' === $type ) {
|
491 |
require( happyforms_get_include_folder() . '/templates/customize-controls/text_dummy.php' );
|
492 |
}
|
493 |
+
|
494 |
+
if ( 'text_dummy_reset' === $type ) {
|
495 |
+
require( happyforms_get_include_folder() . '/templates/customize-controls/text_dummy_reset.php' );
|
496 |
+
}
|
497 |
}
|
498 |
|
499 |
public function admin_enqueue_scripts() {
|
inc/classes/class-message-controller.php
CHANGED
@@ -434,6 +434,12 @@ class HappyForms_Message_Controller {
|
|
434 |
$email_message->set_reply_to( $reply_to );
|
435 |
}
|
436 |
|
|
|
|
|
|
|
|
|
|
|
|
|
437 |
ob_start();
|
438 |
$response = $message;
|
439 |
require_once( happyforms_owner_email_template_path() );
|
@@ -479,6 +485,11 @@ class HappyForms_Message_Controller {
|
|
479 |
$part_id = $email_part['id'];
|
480 |
$to = happyforms_get_message_part_value( $message[$part_id], $email_part );
|
481 |
$email_message->set_to( $to );
|
|
|
|
|
|
|
|
|
|
|
482 |
|
483 |
ob_start();
|
484 |
$response = $message;
|
434 |
$email_message->set_reply_to( $reply_to );
|
435 |
}
|
436 |
|
437 |
+
$ip_address = happyforms_get_client_ip();
|
438 |
+
$client_referer = (
|
439 |
+
isset( $_REQUEST['happyforms_client_referer'] ) ?
|
440 |
+
$_REQUEST['happyforms_client_referer'] : ''
|
441 |
+
);
|
442 |
+
|
443 |
ob_start();
|
444 |
$response = $message;
|
445 |
require_once( happyforms_owner_email_template_path() );
|
485 |
$part_id = $email_part['id'];
|
486 |
$to = happyforms_get_message_part_value( $message[$part_id], $email_part );
|
487 |
$email_message->set_to( $to );
|
488 |
+
$ip_address = happyforms_get_client_ip();
|
489 |
+
$client_referer = (
|
490 |
+
isset( $_REQUEST['happyforms_client_referer'] ) ?
|
491 |
+
$_REQUEST['happyforms_client_referer'] : ''
|
492 |
+
);
|
493 |
|
494 |
ob_start();
|
495 |
$response = $message;
|
inc/templates/customize-controls/text_dummy_reset.php
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<div class="customize-control customize-control-number customize-control-text_dummy_reset input_dummy" id="customize-control-<?php echo $control['dummy_id']; ?>">
|
2 |
+
<label for="max_entries" class="customize-control-title">
|
3 |
+
<?php echo $control['label']; ?> <span class="members-only"><?php _e( 'Members Only', 'happyforms') ?></span>
|
4 |
+
</label>
|
5 |
+
<div class="customize-control-reset-wrap" data-pointer-target>
|
6 |
+
<input id="error_message" type="text" placeholder="<?php echo ( isset( $control['placeholder'] ) ) ? $control['placeholder'] : ''; ?>"/>
|
7 |
+
<button type="button" class="reset-default button button-secondary" data-default="" disabled>Reset</button>
|
8 |
+
</div>
|
9 |
+
</div>
|
inc/templates/email-owner.php
CHANGED
@@ -19,4 +19,40 @@
|
|
19 |
|
20 |
<?php endforeach; ?>
|
21 |
|
22 |
-
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
|
20 |
<?php endforeach; ?>
|
21 |
|
22 |
+
<?php
|
23 |
+
|
24 |
+
/**
|
25 |
+
*
|
26 |
+
* User data
|
27 |
+
*
|
28 |
+
*/
|
29 |
+
|
30 |
+
if ( happyforms_get_form_property( $form, 'include_submitters_ip' ) ) : ?>
|
31 |
+
|
32 |
+
<b><?php _e( 'IPv4/IPv6', 'happyforms' ); ?></b><br>
|
33 |
+
<?php echo $ip_address; ?>
|
34 |
+
<br><br>
|
35 |
+
|
36 |
+
<?php endif; ?>
|
37 |
+
|
38 |
+
<?php if ( happyforms_get_form_property( $form, 'include_referral_link' ) ): ?>
|
39 |
+
<b><?php _e( 'Referral', 'happyforms' ); ?></b><br><a href="<?php echo $client_referer; ?>"><?php echo $client_referer; ?></a>
|
40 |
+
<br><br>
|
41 |
+
<?php endif; ?>
|
42 |
+
|
43 |
+
<?php if ( happyforms_get_form_property( $form, 'include_submission_date_time' ) ) : ?>
|
44 |
+
|
45 |
+
<?php
|
46 |
+
$submitted = sprintf(
|
47 |
+
__( '%1$s UTC%2$s', 'happyforms' ),
|
48 |
+
date_i18n( __( 'M j, Y g:i a' ) ),
|
49 |
+
date_i18n( __( 'P' ) )
|
50 |
+
);
|
51 |
+
?>
|
52 |
+
|
53 |
+
<b><?php _e( 'Date and time', 'happyforms' ); ?></b><br><?php echo $submitted; ?><br>
|
54 |
+
<br><br>
|
55 |
+
|
56 |
+
<?php endif; ?>
|
57 |
+
|
58 |
+
<?php do_action( 'happyforms_email_owner_after' ); ?>
|
inc/templates/email-user.php
CHANGED
@@ -27,4 +27,40 @@
|
|
27 |
|
28 |
<?php endif; ?>
|
29 |
|
30 |
-
<?php
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
27 |
|
28 |
<?php endif; ?>
|
29 |
|
30 |
+
<?php
|
31 |
+
|
32 |
+
/**
|
33 |
+
*
|
34 |
+
* User data
|
35 |
+
*
|
36 |
+
*/
|
37 |
+
|
38 |
+
if ( happyforms_get_form_property( $form, 'confirmation_email_include_submitters_ip' ) ) : ?>
|
39 |
+
|
40 |
+
<b><?php _e( 'IPv4/IPv6', 'happyforms' ); ?></b><br>
|
41 |
+
<?php echo $ip_address; ?>
|
42 |
+
<br><br>
|
43 |
+
|
44 |
+
<?php endif; ?>
|
45 |
+
|
46 |
+
<?php if ( happyforms_get_form_property( $form, 'confirmation_email_include_referral_link' ) ): ?>
|
47 |
+
<b><?php _e( 'Referral', 'happyforms' ); ?></b><br><a href="<?php echo $client_referer; ?>"><?php echo $client_referer; ?></a>
|
48 |
+
<br><br>
|
49 |
+
<?php endif; ?>
|
50 |
+
|
51 |
+
<?php if ( happyforms_get_form_property( $form, 'confirmation_email_include_submission_date_time' ) ) : ?>
|
52 |
+
|
53 |
+
<?php
|
54 |
+
$submitted = sprintf(
|
55 |
+
__( '%1$s UTC%2$s', 'happyforms' ),
|
56 |
+
date_i18n( __( 'M j, Y g:i a' ) ),
|
57 |
+
date_i18n( __( 'P' ) )
|
58 |
+
);
|
59 |
+
?>
|
60 |
+
|
61 |
+
<b><?php _e( 'Date and time', 'happyforms' ); ?></b><br><?php echo $submitted; ?><br>
|
62 |
+
<br><br>
|
63 |
+
<?php endif; ?>
|
64 |
+
|
65 |
+
|
66 |
+
<?php do_action( 'happyforms_email_user_after' ); ?>
|
integrations/assets/css/admin.css
CHANGED
@@ -111,37 +111,53 @@
|
|
111 |
display: block;
|
112 |
}
|
113 |
|
114 |
-
.happyforms-
|
115 |
margin: 0 0 1em;
|
116 |
}
|
117 |
|
118 |
-
.happyforms-
|
119 |
display: flex;
|
120 |
flex-wrap: wrap;
|
121 |
}
|
122 |
|
123 |
-
.happyforms-
|
124 |
flex: 1 0 auto;
|
125 |
-
|
|
|
126 |
}
|
127 |
|
128 |
-
@media only screen and (
|
129 |
-
.happyforms-
|
130 |
-
|
|
|
131 |
}
|
132 |
}
|
133 |
|
134 |
-
@media only screen and (min-width: 800px)
|
135 |
-
.happyforms-
|
136 |
width: 100%;
|
137 |
-
margin: 0 0 8px;
|
138 |
}
|
139 |
}
|
140 |
|
141 |
-
@media only screen and (
|
142 |
-
.happyforms-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
143 |
width: 100%;
|
144 |
-
margin: 0 0 8px;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
145 |
}
|
146 |
}
|
147 |
|
111 |
display: block;
|
112 |
}
|
113 |
|
114 |
+
.happyforms-clipboard-field {
|
115 |
margin: 0 0 1em;
|
116 |
}
|
117 |
|
118 |
+
.happyforms-clipboard-field-input-wrapper {
|
119 |
display: flex;
|
120 |
flex-wrap: wrap;
|
121 |
}
|
122 |
|
123 |
+
.happyforms-clipboard-field-input-wrapper input[type="text"] {
|
124 |
flex: 1 0 auto;
|
125 |
+
width: 100%;
|
126 |
+
margin: 0 0 8px 0;
|
127 |
}
|
128 |
|
129 |
+
@media only screen and (min-width: 782px) {
|
130 |
+
.happyforms-clipboard-field-input-wrapper input[type="text"] {
|
131 |
+
width: auto;
|
132 |
+
margin: 0 8px 0 0;
|
133 |
}
|
134 |
}
|
135 |
|
136 |
+
@media only screen and (min-width: 800px) {
|
137 |
+
.happyforms-clipboard-field-input-wrapper input[type="text"] {
|
138 |
width: 100%;
|
139 |
+
margin: 0 0 8px 0;
|
140 |
}
|
141 |
}
|
142 |
|
143 |
+
@media only screen and (min-width: 1100px) {
|
144 |
+
.happyforms-clipboard-field-input-wrapper input[type="text"] {
|
145 |
+
width: auto;
|
146 |
+
margin: 0 8px 0 0;
|
147 |
+
}
|
148 |
+
}
|
149 |
+
|
150 |
+
@media only screen and (min-width: 1800px) {
|
151 |
+
.happyforms-clipboard-field-input-wrapper input[type="text"] {
|
152 |
width: 100%;
|
153 |
+
margin: 0 0 8px 0;
|
154 |
+
}
|
155 |
+
}
|
156 |
+
|
157 |
+
@media only screen and (min-width: 1920px) {
|
158 |
+
.happyforms-clipboard-field-input-wrapper input[type="text"] {
|
159 |
+
width: auto;
|
160 |
+
margin: 0 8px 0 0;
|
161 |
}
|
162 |
}
|
163 |
|
integrations/classes/class-integrations-page-controller.php
CHANGED
@@ -35,6 +35,7 @@ class HappyForms_Integrations_Page_Controller {
|
|
35 |
[ 'id' => 'sendfox', 'label' => __( 'SendFox', 'happyforms' ), 'context' => 'normal' ],
|
36 |
[ 'id' => 'sendgrid', 'label' => __( 'SendGrid', 'happyforms' ), 'context' => 'normal' ],
|
37 |
[ 'id' => 'sendinblue', 'label' => __( 'Sendinblue', 'happyforms' ), 'context' => 'normal' ],
|
|
|
38 |
[ 'id' => 'recaptcha', 'label' => __( 'reCAPTCHA', 'happyforms' ), 'context' => 'side' ],
|
39 |
[ 'id' => 'stripe', 'label' => __( 'Stripe', 'happyforms' ), 'context' => 'side' ],
|
40 |
[ 'id' => 'paypal', 'label' => __( 'PayPal', 'happyforms' ), 'context' => 'side' ],
|
35 |
[ 'id' => 'sendfox', 'label' => __( 'SendFox', 'happyforms' ), 'context' => 'normal' ],
|
36 |
[ 'id' => 'sendgrid', 'label' => __( 'SendGrid', 'happyforms' ), 'context' => 'normal' ],
|
37 |
[ 'id' => 'sendinblue', 'label' => __( 'Sendinblue', 'happyforms' ), 'context' => 'normal' ],
|
38 |
+
[ 'id' => 'emailoctopus', 'label' => __( 'EmailOctopus', 'happyforms' ), 'context' => 'normal' ],
|
39 |
[ 'id' => 'recaptcha', 'label' => __( 'reCAPTCHA', 'happyforms' ), 'context' => 'side' ],
|
40 |
[ 'id' => 'stripe', 'label' => __( 'Stripe', 'happyforms' ), 'context' => 'side' ],
|
41 |
[ 'id' => 'paypal', 'label' => __( 'PayPal', 'happyforms' ), 'context' => 'side' ],
|
integrations/templates/widget-constant-contact-dummy.php
CHANGED
@@ -2,6 +2,16 @@
|
|
2 |
<div class="widget-content">
|
3 |
<div id="happyforms-service-active-campaign" class="happyforms-service-integration">
|
4 |
<div class="widget-content">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
<label for=""><?php _e( 'API URL', 'happyforms' ); ?></label>
|
6 |
<div class="hf-pwd">
|
7 |
<input type="password" class="widefat happyforms-credentials-input connected" id="" name="" value="" />
|
2 |
<div class="widget-content">
|
3 |
<div id="happyforms-service-active-campaign" class="happyforms-service-integration">
|
4 |
<div class="widget-content">
|
5 |
+
<div class="happyforms-clipboard-field">
|
6 |
+
<label for="constant-contact-redirect-uri"><?php _e( 'Redirect URI', 'happyforms' ); ?></label>
|
7 |
+
<div class="happyforms-clipboard-field-input-wrapper">
|
8 |
+
<input type="text" name="constant-contact-redirect-uri" readonly value="" />
|
9 |
+
<div class="happyforms-clipboard">
|
10 |
+
<button type="button" class="button happyforms-clipboard__button" data-value=""><?php _e( 'Copy to clipboard', 'happyforms' ); ?></button>
|
11 |
+
<span aria-hidden="true" class="hidden"><?php _e( 'Copied!', 'happyforms' ); ?></span>
|
12 |
+
</div>
|
13 |
+
</div>
|
14 |
+
</div>
|
15 |
<label for=""><?php _e( 'API URL', 'happyforms' ); ?></label>
|
16 |
<div class="hf-pwd">
|
17 |
<input type="password" class="widefat happyforms-credentials-input connected" id="" name="" value="" />
|
integrations/templates/widget-emailoctopus-dummy.php
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<form class="happyforms-service hf-ajax-submit">
|
2 |
+
<div class="widget-content">
|
3 |
+
<div id="happyforms-service-google-places" class="happyforms-service-integration">
|
4 |
+
<div class="widget-content">
|
5 |
+
<label for=""><?php _e( 'API key', 'happyforms' ); ?></label>
|
6 |
+
<div class="hf-pwd">
|
7 |
+
<input type="password" class="widefat happyforms-credentials-input connected" id="" name="" value="" />
|
8 |
+
<button type="button" class="button button-secondary hf-hide-pw hide-if-no-js" data-toggle="0" aria-label="<?php _e( 'Show credentials', 'happyforms' ); ?>" data-label-show="<?php _e( 'Show credentials', 'happyforms' ); ?>" data-label-hide="<?php _e( 'Hide credentials', 'happyforms' ); ?>">
|
9 |
+
<span class="dashicons dashicons-visibility" aria-hidden="true"></span>
|
10 |
+
</button>
|
11 |
+
</div>
|
12 |
+
</div>
|
13 |
+
</div>
|
14 |
+
<div class="widget-control-actions">
|
15 |
+
<div class="alignleft">
|
16 |
+
<input type="button" class="connected button button-primary widget-control-save right" value="<?php _e( 'Save Changes', 'happyforms' ); ?>">
|
17 |
+
</div>
|
18 |
+
<br class="clear" />
|
19 |
+
</div>
|
20 |
+
</div>
|
21 |
+
</form>
|
integrations/templates/widget-sendgrid-dummy.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
<div class="widget-content">
|
3 |
<div id="happyforms-service-google-places" class="happyforms-service-integration">
|
4 |
<div class="widget-content">
|
5 |
-
<label for=""><?php _e( '
|
6 |
<div class="hf-pwd">
|
7 |
<input type="password" class="widefat happyforms-credentials-input connected" id="" name="" value="" />
|
8 |
<button type="button" class="button button-secondary hf-hide-pw hide-if-no-js" data-toggle="0" aria-label="<?php _e( 'Show credentials', 'happyforms' ); ?>" data-label-show="<?php _e( 'Show credentials', 'happyforms' ); ?>" data-label-hide="<?php _e( 'Hide credentials', 'happyforms' ); ?>">
|
2 |
<div class="widget-content">
|
3 |
<div id="happyforms-service-google-places" class="happyforms-service-integration">
|
4 |
<div class="widget-content">
|
5 |
+
<label for=""><?php _e( 'API key', 'happyforms' ); ?></label>
|
6 |
<div class="hf-pwd">
|
7 |
<input type="password" class="widefat happyforms-credentials-input connected" id="" name="" value="" />
|
8 |
<button type="button" class="button button-secondary hf-hide-pw hide-if-no-js" data-toggle="0" aria-label="<?php _e( 'Show credentials', 'happyforms' ); ?>" data-label-show="<?php _e( 'Show credentials', 'happyforms' ); ?>" data-label-hide="<?php _e( 'Hide credentials', 'happyforms' ); ?>">
|
integrations/templates/widget-sendinblue-dummy.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
<div class="widget-content">
|
3 |
<div id="happyforms-service-google-places" class="happyforms-service-integration">
|
4 |
<div class="widget-content">
|
5 |
-
<label for=""><?php _e( '
|
6 |
<div class="hf-pwd">
|
7 |
<input type="password" class="widefat happyforms-credentials-input connected" id="" name="" value="" />
|
8 |
<button type="button" class="button button-secondary hf-hide-pw hide-if-no-js" data-toggle="0" aria-label="<?php _e( 'Show credentials', 'happyforms' ); ?>" data-label-show="<?php _e( 'Show credentials', 'happyforms' ); ?>" data-label-hide="<?php _e( 'Hide credentials', 'happyforms' ); ?>">
|
2 |
<div class="widget-content">
|
3 |
<div id="happyforms-service-google-places" class="happyforms-service-integration">
|
4 |
<div class="widget-content">
|
5 |
+
<label for=""><?php _e( 'API v3 key', 'happyforms' ); ?></label>
|
6 |
<div class="hf-pwd">
|
7 |
<input type="password" class="widefat happyforms-credentials-input connected" id="" name="" value="" />
|
8 |
<button type="button" class="button button-secondary hf-hide-pw hide-if-no-js" data-toggle="0" aria-label="<?php _e( 'Show credentials', 'happyforms' ); ?>" data-label-show="<?php _e( 'Show credentials', 'happyforms' ); ?>" data-label-hide="<?php _e( 'Hide credentials', 'happyforms' ); ?>">
|
integrations/templates/widget-stripe-dummy.php
CHANGED
@@ -30,10 +30,10 @@
|
|
30 |
<span class="dashicons dashicons-visibility" aria-hidden="true"></span>
|
31 |
</button>
|
32 |
</div>
|
33 |
-
<div class="happyforms-
|
34 |
<label for="credentials[stripe][webhook_endpoint_url]"><?php _e( 'Webhook endpoint URL', 'happyforms' ); ?></label>
|
35 |
-
<div class="happyforms-
|
36 |
-
<input type="text" readonly value=""
|
37 |
<div class="happyforms-clipboard">
|
38 |
<button type="button" class="button happyforms-clipboard__button" data-value=""><?php _e( 'Copy to clipboard', 'happyforms' ); ?></button>
|
39 |
<span aria-hidden="true" class="hidden"><?php _e( 'Copied!', 'happyforms' ); ?></span>
|
30 |
<span class="dashicons dashicons-visibility" aria-hidden="true"></span>
|
31 |
</button>
|
32 |
</div>
|
33 |
+
<div class="happyforms-clipboard-field">
|
34 |
<label for="credentials[stripe][webhook_endpoint_url]"><?php _e( 'Webhook endpoint URL', 'happyforms' ); ?></label>
|
35 |
+
<div class="happyforms-clipboard-field-input-wrapper">
|
36 |
+
<input type="text" readonly value="" />
|
37 |
<div class="happyforms-clipboard">
|
38 |
<button type="button" class="button happyforms-clipboard__button" data-value=""><?php _e( 'Copy to clipboard', 'happyforms' ); ?></button>
|
39 |
<span aria-hidden="true" class="hidden"><?php _e( 'Copied!', 'happyforms' ); ?></span>
|
languages/happyforms.pot
CHANGED
@@ -2,14 +2,14 @@
|
|
2 |
# This file is distributed under the same license as the Happyforms (free) plugin.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: Happyforms (free) 1.
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/happyforms/\n"
|
7 |
"Last-Translator: The Theme Foundry\n"
|
8 |
"Language-Team: The Theme Foundry\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: 2022-
|
13 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
14 |
"X-Generator: WP-CLI 2.4.0\n"
|
15 |
"X-Domain: happyforms\n"
|
@@ -62,11 +62,13 @@ msgid "Date"
|
|
62 |
msgstr ""
|
63 |
|
64 |
#: core/classes/class-form-admin.php:335
|
|
|
65 |
#: integrations/templates/widget-stripe-dummy.php:38
|
66 |
msgid "Copy to clipboard"
|
67 |
msgstr ""
|
68 |
|
69 |
#: core/classes/class-form-admin.php:335
|
|
|
70 |
#: integrations/templates/widget-stripe-dummy.php:39
|
71 |
msgid "Copied!"
|
72 |
msgstr ""
|
@@ -154,56 +156,71 @@ msgstr ""
|
|
154 |
msgid "New submission to your form"
|
155 |
msgstr ""
|
156 |
|
157 |
-
#: core/classes/class-form-email.php:
|
158 |
msgid "We received your message"
|
159 |
msgstr ""
|
160 |
|
161 |
-
#: core/classes/class-form-email.php:
|
162 |
msgid "Your message has been successfully sent. We appreciate you contacting us and we’ll be in touch soon."
|
163 |
msgstr ""
|
164 |
|
165 |
-
#: core/classes/class-form-email.php:
|
166 |
msgid "Email me a copy of each submission"
|
167 |
msgstr ""
|
168 |
|
169 |
-
#: core/classes/class-form-email.php:
|
170 |
-
#: inc/classes/class-happyforms.php:
|
171 |
msgid "To email address"
|
172 |
msgstr ""
|
173 |
|
174 |
-
#: core/classes/class-form-email.php:
|
175 |
msgid "To Bcc email address"
|
176 |
msgstr ""
|
177 |
|
178 |
-
#: core/classes/class-form-email.php:
|
179 |
-
#: core/classes/class-form-email.php:
|
180 |
msgid "From email address"
|
181 |
msgstr ""
|
182 |
|
183 |
-
#: core/classes/class-form-email.php:
|
184 |
-
#: core/classes/class-form-email.php:
|
185 |
msgid "Reply email address"
|
186 |
msgstr ""
|
187 |
|
188 |
-
#: core/classes/class-form-email.php:
|
189 |
-
#: core/classes/class-form-email.php:
|
190 |
msgid "Email display name"
|
191 |
msgstr ""
|
192 |
|
193 |
-
#: core/classes/class-form-email.php:
|
194 |
-
#: core/classes/class-form-email.php:
|
195 |
msgid "Email subject"
|
196 |
msgstr ""
|
197 |
|
198 |
-
#: core/classes/class-form-email.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
199 |
msgid "Email submitter a copy of their reply"
|
200 |
msgstr ""
|
201 |
|
202 |
-
#: core/classes/class-form-email.php:
|
203 |
msgid "Email content"
|
204 |
msgstr ""
|
205 |
|
206 |
-
#: core/classes/class-form-email.php:
|
207 |
msgid "Include submitted values"
|
208 |
msgstr ""
|
209 |
|
@@ -780,7 +797,7 @@ msgstr ""
|
|
780 |
|
781 |
#: core/classes/class-happyforms-core.php:210
|
782 |
#: core/classes/class-happyforms-core.php:211
|
783 |
-
#: inc/classes/class-message-controller.php:
|
784 |
msgid "Submissions"
|
785 |
msgstr ""
|
786 |
|
@@ -2554,6 +2571,7 @@ msgstr ""
|
|
2554 |
#: inc/templates/customize-controls/number_dummy.php:4
|
2555 |
#: inc/templates/customize-controls/panel_dummy.php:3
|
2556 |
#: inc/templates/customize-controls/text_dummy.php:4
|
|
|
2557 |
#: inc/templates/customize-form-part-choice-footer.php:4
|
2558 |
#: inc/templates/customize-form-part-footer.php:5
|
2559 |
msgid "Members Only"
|
@@ -2902,68 +2920,248 @@ msgstr ""
|
|
2902 |
msgid "Max times the same answer can be submitted"
|
2903 |
msgstr ""
|
2904 |
|
2905 |
-
#: inc/classes/class-happyforms.php:
|
2906 |
msgid "Upgrade"
|
2907 |
msgstr ""
|
2908 |
|
2909 |
-
#: inc/classes/class-happyforms.php:
|
2910 |
msgid "Redirect to this page address (URL) after submission"
|
2911 |
msgstr ""
|
2912 |
|
2913 |
-
#: inc/classes/class-happyforms.php:
|
2914 |
msgid "Search or type URL"
|
2915 |
msgstr ""
|
2916 |
|
2917 |
-
#: inc/classes/class-happyforms.php:
|
2918 |
msgid "Shuffle order of fields"
|
2919 |
msgstr ""
|
2920 |
|
2921 |
-
#: inc/classes/class-happyforms.php:
|
2922 |
msgid "Use reCAPTCHA"
|
2923 |
msgstr ""
|
2924 |
|
2925 |
-
#: inc/classes/class-happyforms.php:
|
2926 |
msgid "Let submitters save a draft for set number of days"
|
2927 |
msgstr ""
|
2928 |
|
2929 |
-
#: inc/classes/class-happyforms.php:
|
2930 |
msgid "Require submitters to review a submission"
|
2931 |
msgstr ""
|
2932 |
|
2933 |
-
#: inc/classes/class-happyforms.php:
|
2934 |
msgid "Max number of submissions"
|
2935 |
msgstr ""
|
2936 |
|
2937 |
-
#: inc/classes/class-happyforms.php:
|
2938 |
msgid "Erase submitter's personal data after set number of days"
|
2939 |
msgstr ""
|
2940 |
|
2941 |
-
#: inc/classes/class-happyforms.php:
|
2942 |
msgid "Show an error message if field contains words in Disallowed Comment Keys"
|
2943 |
msgstr ""
|
2944 |
|
2945 |
-
#: inc/classes/class-happyforms.php:
|
2946 |
msgid "Send abandonment email"
|
2947 |
msgstr ""
|
2948 |
|
2949 |
-
#: inc/classes/class-happyforms.php:
|
2950 |
msgid "Checkboxes & Radios"
|
2951 |
msgstr ""
|
2952 |
|
2953 |
-
#: inc/classes/class-happyforms.php:
|
2954 |
msgid "Rating"
|
2955 |
msgstr ""
|
2956 |
|
2957 |
-
#: inc/classes/class-happyforms.php:
|
2958 |
msgid "Separators"
|
2959 |
msgstr ""
|
2960 |
|
2961 |
-
#: inc/classes/class-happyforms.php:
|
2962 |
msgid "Multi Step"
|
2963 |
msgstr ""
|
2964 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2965 |
#: inc/classes/class-message-admin.php:59
|
2966 |
-
#: inc/classes/class-message-controller.php:
|
2967 |
msgid "Submission"
|
2968 |
msgstr ""
|
2969 |
|
@@ -2991,12 +3189,12 @@ msgstr ""
|
|
2991 |
msgid "Spam"
|
2992 |
msgstr ""
|
2993 |
|
2994 |
-
#: inc/classes/class-message-controller.php:
|
2995 |
-
#: inc/classes/class-message-controller.php:
|
2996 |
msgid "All Submissions"
|
2997 |
msgstr ""
|
2998 |
|
2999 |
-
#: inc/classes/class-message-controller.php:
|
3000 |
msgid "No submissions found."
|
3001 |
msgstr ""
|
3002 |
|
@@ -3132,6 +3330,26 @@ msgstr ""
|
|
3132 |
msgid "For collecting formatted site or page addresses (URL)."
|
3133 |
msgstr ""
|
3134 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3135 |
#: integrations/classes/class-integrations-page-controller.php:29
|
3136 |
msgid "ActiveCampaign"
|
3137 |
msgstr ""
|
@@ -3169,30 +3387,34 @@ msgid "Sendinblue"
|
|
3169 |
msgstr ""
|
3170 |
|
3171 |
#: integrations/classes/class-integrations-page-controller.php:38
|
3172 |
-
msgid "
|
3173 |
msgstr ""
|
3174 |
|
3175 |
#: integrations/classes/class-integrations-page-controller.php:39
|
3176 |
-
msgid "
|
3177 |
msgstr ""
|
3178 |
|
3179 |
#: integrations/classes/class-integrations-page-controller.php:40
|
3180 |
-
msgid "
|
3181 |
msgstr ""
|
3182 |
|
3183 |
#: integrations/classes/class-integrations-page-controller.php:41
|
3184 |
-
msgid "
|
3185 |
msgstr ""
|
3186 |
|
3187 |
#: integrations/classes/class-integrations-page-controller.php:42
|
3188 |
-
msgid "
|
3189 |
msgstr ""
|
3190 |
|
3191 |
#: integrations/classes/class-integrations-page-controller.php:43
|
3192 |
-
msgid "
|
3193 |
msgstr ""
|
3194 |
|
3195 |
#: integrations/classes/class-integrations-page-controller.php:44
|
|
|
|
|
|
|
|
|
3196 |
msgid "Google Analytics"
|
3197 |
msgstr ""
|
3198 |
|
@@ -3251,16 +3473,17 @@ msgid "No coupons found."
|
|
3251 |
msgstr ""
|
3252 |
|
3253 |
#: integrations/templates/widget-active-campaign-dummy.php:5
|
3254 |
-
#: integrations/templates/widget-constant-contact-dummy.php:
|
3255 |
msgid "API URL"
|
3256 |
msgstr ""
|
3257 |
|
3258 |
#: integrations/templates/widget-active-campaign-dummy.php:8
|
3259 |
#: integrations/templates/widget-active-campaign-dummy.php:15
|
3260 |
#: integrations/templates/widget-aweber-dummy.php:12
|
3261 |
-
#: integrations/templates/widget-constant-contact-dummy.php:
|
3262 |
-
#: integrations/templates/widget-constant-contact-dummy.php:
|
3263 |
#: integrations/templates/widget-convertkit-dummy.php:8
|
|
|
3264 |
#: integrations/templates/widget-google-analytics-dummy.php:8
|
3265 |
#: integrations/templates/widget-google-geocoding-dummy.php:8
|
3266 |
#: integrations/templates/widget-google-places-dummy.php:8
|
@@ -3285,9 +3508,10 @@ msgstr ""
|
|
3285 |
#: integrations/templates/widget-active-campaign-dummy.php:8
|
3286 |
#: integrations/templates/widget-active-campaign-dummy.php:15
|
3287 |
#: integrations/templates/widget-aweber-dummy.php:12
|
3288 |
-
#: integrations/templates/widget-constant-contact-dummy.php:
|
3289 |
-
#: integrations/templates/widget-constant-contact-dummy.php:
|
3290 |
#: integrations/templates/widget-convertkit-dummy.php:8
|
|
|
3291 |
#: integrations/templates/widget-google-analytics-dummy.php:8
|
3292 |
#: integrations/templates/widget-google-geocoding-dummy.php:8
|
3293 |
#: integrations/templates/widget-google-places-dummy.php:8
|
@@ -3310,22 +3534,25 @@ msgid "Hide credentials"
|
|
3310 |
msgstr ""
|
3311 |
|
3312 |
#: integrations/templates/widget-active-campaign-dummy.php:12
|
3313 |
-
#: integrations/templates/widget-constant-contact-dummy.php:
|
3314 |
#: integrations/templates/widget-convertkit-dummy.php:5
|
|
|
3315 |
#: integrations/templates/widget-google-geocoding-dummy.php:5
|
3316 |
#: integrations/templates/widget-google-places-dummy.php:5
|
3317 |
#: integrations/templates/widget-integrately-dummy.php:5
|
3318 |
#: integrations/templates/widget-integromat-dummy.php:5
|
3319 |
#: integrations/templates/widget-mailchimp-dummy.php:5
|
3320 |
#: integrations/templates/widget-mailerlite-dummy.php:5
|
|
|
3321 |
#: integrations/templates/widget-zapier-dummy.php:5
|
3322 |
msgid "API key"
|
3323 |
msgstr ""
|
3324 |
|
3325 |
#: integrations/templates/widget-active-campaign-dummy.php:23
|
3326 |
#: integrations/templates/widget-aweber-dummy.php:21
|
3327 |
-
#: integrations/templates/widget-constant-contact-dummy.php:
|
3328 |
#: integrations/templates/widget-convertkit-dummy.php:16
|
|
|
3329 |
#: integrations/templates/widget-google-analytics-dummy.php:16
|
3330 |
#: integrations/templates/widget-google-geocoding-dummy.php:16
|
3331 |
#: integrations/templates/widget-google-places-dummy.php:16
|
@@ -3351,6 +3578,10 @@ msgstr ""
|
|
3351 |
msgid "Verification code"
|
3352 |
msgstr ""
|
3353 |
|
|
|
|
|
|
|
|
|
3354 |
#: integrations/templates/widget-google-analytics-dummy.php:5
|
3355 |
msgid "Tracking ID"
|
3356 |
msgstr ""
|
@@ -3396,11 +3627,13 @@ msgid "Secret key"
|
|
3396 |
msgstr ""
|
3397 |
|
3398 |
#: integrations/templates/widget-sendfox-dummy.php:5
|
3399 |
-
#: integrations/templates/widget-sendgrid-dummy.php:5
|
3400 |
-
#: integrations/templates/widget-sendinblue-dummy.php:5
|
3401 |
msgid "Personal access token"
|
3402 |
msgstr ""
|
3403 |
|
|
|
|
|
|
|
|
|
3404 |
#: integrations/templates/widget-stripe-dummy.php:12
|
3405 |
msgid "Test"
|
3406 |
msgstr ""
|
2 |
# This file is distributed under the same license as the Happyforms (free) plugin.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: Happyforms (free) 1.20.0\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/happyforms/\n"
|
7 |
"Last-Translator: The Theme Foundry\n"
|
8 |
"Language-Team: The Theme Foundry\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: 2022-11-03T08:23:29+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: happyforms\n"
|
62 |
msgstr ""
|
63 |
|
64 |
#: core/classes/class-form-admin.php:335
|
65 |
+
#: integrations/templates/widget-constant-contact-dummy.php:10
|
66 |
#: integrations/templates/widget-stripe-dummy.php:38
|
67 |
msgid "Copy to clipboard"
|
68 |
msgstr ""
|
69 |
|
70 |
#: core/classes/class-form-admin.php:335
|
71 |
+
#: integrations/templates/widget-constant-contact-dummy.php:11
|
72 |
#: integrations/templates/widget-stripe-dummy.php:39
|
73 |
msgid "Copied!"
|
74 |
msgstr ""
|
156 |
msgid "New submission to your form"
|
157 |
msgstr ""
|
158 |
|
159 |
+
#: core/classes/class-form-email.php:84
|
160 |
msgid "We received your message"
|
161 |
msgstr ""
|
162 |
|
163 |
+
#: core/classes/class-form-email.php:88
|
164 |
msgid "Your message has been successfully sent. We appreciate you contacting us and we’ll be in touch soon."
|
165 |
msgstr ""
|
166 |
|
167 |
+
#: core/classes/class-form-email.php:116
|
168 |
msgid "Email me a copy of each submission"
|
169 |
msgstr ""
|
170 |
|
171 |
+
#: core/classes/class-form-email.php:126
|
172 |
+
#: inc/classes/class-happyforms.php:158
|
173 |
msgid "To email address"
|
174 |
msgstr ""
|
175 |
|
176 |
+
#: core/classes/class-form-email.php:131
|
177 |
msgid "To Bcc email address"
|
178 |
msgstr ""
|
179 |
|
180 |
+
#: core/classes/class-form-email.php:136
|
181 |
+
#: core/classes/class-form-email.php:183
|
182 |
msgid "From email address"
|
183 |
msgstr ""
|
184 |
|
185 |
+
#: core/classes/class-form-email.php:141
|
186 |
+
#: core/classes/class-form-email.php:188
|
187 |
msgid "Reply email address"
|
188 |
msgstr ""
|
189 |
|
190 |
+
#: core/classes/class-form-email.php:146
|
191 |
+
#: core/classes/class-form-email.php:193
|
192 |
msgid "Email display name"
|
193 |
msgstr ""
|
194 |
|
195 |
+
#: core/classes/class-form-email.php:151
|
196 |
+
#: core/classes/class-form-email.php:198
|
197 |
msgid "Email subject"
|
198 |
msgstr ""
|
199 |
|
200 |
+
#: core/classes/class-form-email.php:156
|
201 |
+
#: core/classes/class-form-email.php:213
|
202 |
+
msgid "Include submitter's IP address"
|
203 |
+
msgstr ""
|
204 |
+
|
205 |
+
#: core/classes/class-form-email.php:161
|
206 |
+
#: core/classes/class-form-email.php:218
|
207 |
+
msgid "Include referral link"
|
208 |
+
msgstr ""
|
209 |
+
|
210 |
+
#: core/classes/class-form-email.php:166
|
211 |
+
#: core/classes/class-form-email.php:223
|
212 |
+
msgid "Include submission date and time"
|
213 |
+
msgstr ""
|
214 |
+
|
215 |
+
#: core/classes/class-form-email.php:174
|
216 |
msgid "Email submitter a copy of their reply"
|
217 |
msgstr ""
|
218 |
|
219 |
+
#: core/classes/class-form-email.php:203
|
220 |
msgid "Email content"
|
221 |
msgstr ""
|
222 |
|
223 |
+
#: core/classes/class-form-email.php:208
|
224 |
msgid "Include submitted values"
|
225 |
msgstr ""
|
226 |
|
797 |
|
798 |
#: core/classes/class-happyforms-core.php:210
|
799 |
#: core/classes/class-happyforms-core.php:211
|
800 |
+
#: inc/classes/class-message-controller.php:572
|
801 |
msgid "Submissions"
|
802 |
msgstr ""
|
803 |
|
2571 |
#: inc/templates/customize-controls/number_dummy.php:4
|
2572 |
#: inc/templates/customize-controls/panel_dummy.php:3
|
2573 |
#: inc/templates/customize-controls/text_dummy.php:4
|
2574 |
+
#: inc/templates/customize-controls/text_dummy_reset.php:3
|
2575 |
#: inc/templates/customize-form-part-choice-footer.php:4
|
2576 |
#: inc/templates/customize-form-part-footer.php:5
|
2577 |
msgid "Members Only"
|
2920 |
msgid "Max times the same answer can be submitted"
|
2921 |
msgstr ""
|
2922 |
|
2923 |
+
#: inc/classes/class-happyforms.php:97
|
2924 |
msgid "Upgrade"
|
2925 |
msgstr ""
|
2926 |
|
2927 |
+
#: inc/classes/class-happyforms.php:105
|
2928 |
msgid "Redirect to this page address (URL) after submission"
|
2929 |
msgstr ""
|
2930 |
|
2931 |
+
#: inc/classes/class-happyforms.php:106
|
2932 |
msgid "Search or type URL"
|
2933 |
msgstr ""
|
2934 |
|
2935 |
+
#: inc/classes/class-happyforms.php:112
|
2936 |
msgid "Shuffle order of fields"
|
2937 |
msgstr ""
|
2938 |
|
2939 |
+
#: inc/classes/class-happyforms.php:118
|
2940 |
msgid "Use reCAPTCHA"
|
2941 |
msgstr ""
|
2942 |
|
2943 |
+
#: inc/classes/class-happyforms.php:124
|
2944 |
msgid "Let submitters save a draft for set number of days"
|
2945 |
msgstr ""
|
2946 |
|
2947 |
+
#: inc/classes/class-happyforms.php:130
|
2948 |
msgid "Require submitters to review a submission"
|
2949 |
msgstr ""
|
2950 |
|
2951 |
+
#: inc/classes/class-happyforms.php:136
|
2952 |
msgid "Max number of submissions"
|
2953 |
msgstr ""
|
2954 |
|
2955 |
+
#: inc/classes/class-happyforms.php:142
|
2956 |
msgid "Erase submitter's personal data after set number of days"
|
2957 |
msgstr ""
|
2958 |
|
2959 |
+
#: inc/classes/class-happyforms.php:148
|
2960 |
msgid "Show an error message if field contains words in Disallowed Comment Keys"
|
2961 |
msgstr ""
|
2962 |
|
2963 |
+
#: inc/classes/class-happyforms.php:164
|
2964 |
msgid "Send abandonment email"
|
2965 |
msgstr ""
|
2966 |
|
2967 |
+
#: inc/classes/class-happyforms.php:174
|
2968 |
msgid "Checkboxes & Radios"
|
2969 |
msgstr ""
|
2970 |
|
2971 |
+
#: inc/classes/class-happyforms.php:180
|
2972 |
msgid "Rating"
|
2973 |
msgstr ""
|
2974 |
|
2975 |
+
#: inc/classes/class-happyforms.php:186
|
2976 |
msgid "Separators"
|
2977 |
msgstr ""
|
2978 |
|
2979 |
+
#: inc/classes/class-happyforms.php:192
|
2980 |
msgid "Multi Step"
|
2981 |
msgstr ""
|
2982 |
|
2983 |
+
#: inc/classes/class-happyforms.php:202
|
2984 |
+
msgid "Form redirected after submission"
|
2985 |
+
msgstr ""
|
2986 |
+
|
2987 |
+
#: inc/classes/class-happyforms.php:208
|
2988 |
+
msgid "Form has reached its reply limit"
|
2989 |
+
msgstr ""
|
2990 |
+
|
2991 |
+
#: inc/classes/class-happyforms.php:214
|
2992 |
+
msgid "Submitter has returned to a draft"
|
2993 |
+
msgstr ""
|
2994 |
+
|
2995 |
+
#: inc/classes/class-happyforms.php:220
|
2996 |
+
msgid "Submitter is viewing review page"
|
2997 |
+
msgstr ""
|
2998 |
+
|
2999 |
+
#: inc/classes/class-happyforms.php:226
|
3000 |
+
msgid "Payment completed"
|
3001 |
+
msgstr ""
|
3002 |
+
|
3003 |
+
#: inc/classes/class-happyforms.php:232
|
3004 |
+
msgid "Payment failed"
|
3005 |
+
msgstr ""
|
3006 |
+
|
3007 |
+
#: inc/classes/class-happyforms.php:238
|
3008 |
+
msgid "Payment cancelled"
|
3009 |
+
msgstr ""
|
3010 |
+
|
3011 |
+
#: inc/classes/class-happyforms.php:244
|
3012 |
+
msgid "Previous page"
|
3013 |
+
msgstr ""
|
3014 |
+
|
3015 |
+
#: inc/classes/class-happyforms.php:250
|
3016 |
+
msgid "Redirect to page"
|
3017 |
+
msgstr ""
|
3018 |
+
|
3019 |
+
#: inc/classes/class-happyforms.php:256
|
3020 |
+
msgid "Print user submission"
|
3021 |
+
msgstr ""
|
3022 |
+
|
3023 |
+
#: inc/classes/class-happyforms.php:262
|
3024 |
+
msgid "Edit reply"
|
3025 |
+
msgstr ""
|
3026 |
+
|
3027 |
+
#: inc/classes/class-happyforms.php:268
|
3028 |
+
msgid "Clear saved draft reply"
|
3029 |
+
msgstr ""
|
3030 |
+
|
3031 |
+
#: inc/classes/class-happyforms.php:274
|
3032 |
+
msgid "Save draft reply"
|
3033 |
+
msgstr ""
|
3034 |
+
|
3035 |
+
#: inc/classes/class-happyforms.php:280
|
3036 |
+
msgid "Upload files"
|
3037 |
+
msgstr ""
|
3038 |
+
|
3039 |
+
#: inc/classes/class-happyforms.php:286
|
3040 |
+
msgid "Remove uploaded file"
|
3041 |
+
msgstr ""
|
3042 |
+
|
3043 |
+
#: inc/classes/class-happyforms.php:292
|
3044 |
+
msgid "Review reply"
|
3045 |
+
msgstr ""
|
3046 |
+
|
3047 |
+
#: inc/classes/class-happyforms.php:298
|
3048 |
+
msgid "Start drawing signature"
|
3049 |
+
msgstr ""
|
3050 |
+
|
3051 |
+
#: inc/classes/class-happyforms.php:304
|
3052 |
+
msgid "Start over drawing signature"
|
3053 |
+
msgstr ""
|
3054 |
+
|
3055 |
+
#: inc/classes/class-happyforms.php:310
|
3056 |
+
msgid "Clear drawn signature"
|
3057 |
+
msgstr ""
|
3058 |
+
|
3059 |
+
#: inc/classes/class-happyforms.php:316
|
3060 |
+
msgid "Done drawing signature"
|
3061 |
+
msgstr ""
|
3062 |
+
|
3063 |
+
#: inc/classes/class-happyforms.php:322
|
3064 |
+
msgid "Field answer reached its limit"
|
3065 |
+
msgstr ""
|
3066 |
+
|
3067 |
+
#: inc/classes/class-happyforms.php:328
|
3068 |
+
msgid "Coupon code invalid"
|
3069 |
+
msgstr ""
|
3070 |
+
|
3071 |
+
#: inc/classes/class-happyforms.php:334
|
3072 |
+
msgid "Required file isn't uploaded"
|
3073 |
+
msgstr ""
|
3074 |
+
|
3075 |
+
#: inc/classes/class-happyforms.php:340
|
3076 |
+
msgid "Required terms haven't been scrolled"
|
3077 |
+
msgstr ""
|
3078 |
+
|
3079 |
+
#: inc/classes/class-happyforms.php:346
|
3080 |
+
msgid "Field contains disallowed word"
|
3081 |
+
msgstr ""
|
3082 |
+
|
3083 |
+
#: inc/classes/class-happyforms.php:352
|
3084 |
+
msgid "Disallowed IP address or browser"
|
3085 |
+
msgstr ""
|
3086 |
+
|
3087 |
+
#: inc/classes/class-happyforms.php:358
|
3088 |
+
msgid "This file's size is too big"
|
3089 |
+
msgstr ""
|
3090 |
+
|
3091 |
+
#: inc/classes/class-happyforms.php:364
|
3092 |
+
msgid "This file's type not allowed"
|
3093 |
+
msgstr ""
|
3094 |
+
|
3095 |
+
#: inc/classes/class-happyforms.php:370
|
3096 |
+
msgid "A file with this name has already been uploaded"
|
3097 |
+
msgstr ""
|
3098 |
+
|
3099 |
+
#: inc/classes/class-happyforms.php:376
|
3100 |
+
msgid "User uploaded too few files"
|
3101 |
+
msgstr ""
|
3102 |
+
|
3103 |
+
#: inc/classes/class-happyforms.php:381
|
3104 |
+
msgid "Price is too low"
|
3105 |
+
msgstr ""
|
3106 |
+
|
3107 |
+
#: inc/classes/class-happyforms.php:387
|
3108 |
+
msgid "Total files uploaded"
|
3109 |
+
msgstr ""
|
3110 |
+
|
3111 |
+
#: inc/classes/class-happyforms.php:393
|
3112 |
+
msgid "Payment method"
|
3113 |
+
msgstr ""
|
3114 |
+
|
3115 |
+
#: inc/classes/class-happyforms.php:399
|
3116 |
+
msgid "Pay what you want"
|
3117 |
+
msgstr ""
|
3118 |
+
|
3119 |
+
#: inc/classes/class-happyforms.php:405
|
3120 |
+
msgid "Submitter will be redirected to PayPal"
|
3121 |
+
msgstr ""
|
3122 |
+
|
3123 |
+
#: inc/classes/class-happyforms.php:411
|
3124 |
+
msgid "Stripe is processing payment"
|
3125 |
+
msgstr ""
|
3126 |
+
|
3127 |
+
#: inc/classes/class-happyforms.php:417
|
3128 |
+
msgid "Stripe payment"
|
3129 |
+
msgstr ""
|
3130 |
+
|
3131 |
+
#: inc/classes/class-happyforms.php:423
|
3132 |
+
msgid "Card number"
|
3133 |
+
msgstr ""
|
3134 |
+
|
3135 |
+
#: inc/classes/class-happyforms.php:429
|
3136 |
+
msgid "Card expiration"
|
3137 |
+
msgstr ""
|
3138 |
+
|
3139 |
+
#: inc/classes/class-happyforms.php:435
|
3140 |
+
msgid "Card expiration hint"
|
3141 |
+
msgstr ""
|
3142 |
+
|
3143 |
+
#: inc/classes/class-happyforms.php:441
|
3144 |
+
msgid "Card security code"
|
3145 |
+
msgstr ""
|
3146 |
+
|
3147 |
+
#: inc/classes/class-happyforms.php:447
|
3148 |
+
msgid "Card security code hint"
|
3149 |
+
msgstr ""
|
3150 |
+
|
3151 |
+
#: inc/classes/class-happyforms.php:453
|
3152 |
+
msgid "Coupon field label"
|
3153 |
+
msgstr ""
|
3154 |
+
|
3155 |
+
#: inc/classes/class-happyforms.php:459
|
3156 |
+
msgid "Apply coupon button label"
|
3157 |
+
msgstr ""
|
3158 |
+
|
3159 |
+
#: inc/classes/class-happyforms.php:465
|
3160 |
+
msgid "Current page"
|
3161 |
+
msgstr ""
|
3162 |
+
|
3163 |
#: inc/classes/class-message-admin.php:59
|
3164 |
+
#: inc/classes/class-message-controller.php:573
|
3165 |
msgid "Submission"
|
3166 |
msgstr ""
|
3167 |
|
3189 |
msgid "Spam"
|
3190 |
msgstr ""
|
3191 |
|
3192 |
+
#: inc/classes/class-message-controller.php:574
|
3193 |
+
#: inc/classes/class-message-controller.php:575
|
3194 |
msgid "All Submissions"
|
3195 |
msgstr ""
|
3196 |
|
3197 |
+
#: inc/classes/class-message-controller.php:576
|
3198 |
msgid "No submissions found."
|
3199 |
msgstr ""
|
3200 |
|
3330 |
msgid "For collecting formatted site or page addresses (URL)."
|
3331 |
msgstr ""
|
3332 |
|
3333 |
+
#: inc/templates/email-owner.php:32
|
3334 |
+
#: inc/templates/email-user.php:40
|
3335 |
+
msgid "IPv4/IPv6"
|
3336 |
+
msgstr ""
|
3337 |
+
|
3338 |
+
#: inc/templates/email-owner.php:39
|
3339 |
+
#: inc/templates/email-user.php:47
|
3340 |
+
msgid "Referral"
|
3341 |
+
msgstr ""
|
3342 |
+
|
3343 |
+
#: inc/templates/email-owner.php:47
|
3344 |
+
#: inc/templates/email-user.php:55
|
3345 |
+
msgid "%1$s UTC%2$s"
|
3346 |
+
msgstr ""
|
3347 |
+
|
3348 |
+
#: inc/templates/email-owner.php:53
|
3349 |
+
#: inc/templates/email-user.php:61
|
3350 |
+
msgid "Date and time"
|
3351 |
+
msgstr ""
|
3352 |
+
|
3353 |
#: integrations/classes/class-integrations-page-controller.php:29
|
3354 |
msgid "ActiveCampaign"
|
3355 |
msgstr ""
|
3387 |
msgstr ""
|
3388 |
|
3389 |
#: integrations/classes/class-integrations-page-controller.php:38
|
3390 |
+
msgid "EmailOctopus"
|
3391 |
msgstr ""
|
3392 |
|
3393 |
#: integrations/classes/class-integrations-page-controller.php:39
|
3394 |
+
msgid "reCAPTCHA"
|
3395 |
msgstr ""
|
3396 |
|
3397 |
#: integrations/classes/class-integrations-page-controller.php:40
|
3398 |
+
msgid "Stripe"
|
3399 |
msgstr ""
|
3400 |
|
3401 |
#: integrations/classes/class-integrations-page-controller.php:41
|
3402 |
+
msgid "PayPal"
|
3403 |
msgstr ""
|
3404 |
|
3405 |
#: integrations/classes/class-integrations-page-controller.php:42
|
3406 |
+
msgid "Zapier"
|
3407 |
msgstr ""
|
3408 |
|
3409 |
#: integrations/classes/class-integrations-page-controller.php:43
|
3410 |
+
msgid "Integromat"
|
3411 |
msgstr ""
|
3412 |
|
3413 |
#: integrations/classes/class-integrations-page-controller.php:44
|
3414 |
+
msgid "Integrately"
|
3415 |
+
msgstr ""
|
3416 |
+
|
3417 |
+
#: integrations/classes/class-integrations-page-controller.php:45
|
3418 |
msgid "Google Analytics"
|
3419 |
msgstr ""
|
3420 |
|
3473 |
msgstr ""
|
3474 |
|
3475 |
#: integrations/templates/widget-active-campaign-dummy.php:5
|
3476 |
+
#: integrations/templates/widget-constant-contact-dummy.php:15
|
3477 |
msgid "API URL"
|
3478 |
msgstr ""
|
3479 |
|
3480 |
#: integrations/templates/widget-active-campaign-dummy.php:8
|
3481 |
#: integrations/templates/widget-active-campaign-dummy.php:15
|
3482 |
#: integrations/templates/widget-aweber-dummy.php:12
|
3483 |
+
#: integrations/templates/widget-constant-contact-dummy.php:18
|
3484 |
+
#: integrations/templates/widget-constant-contact-dummy.php:25
|
3485 |
#: integrations/templates/widget-convertkit-dummy.php:8
|
3486 |
+
#: integrations/templates/widget-emailoctopus-dummy.php:8
|
3487 |
#: integrations/templates/widget-google-analytics-dummy.php:8
|
3488 |
#: integrations/templates/widget-google-geocoding-dummy.php:8
|
3489 |
#: integrations/templates/widget-google-places-dummy.php:8
|
3508 |
#: integrations/templates/widget-active-campaign-dummy.php:8
|
3509 |
#: integrations/templates/widget-active-campaign-dummy.php:15
|
3510 |
#: integrations/templates/widget-aweber-dummy.php:12
|
3511 |
+
#: integrations/templates/widget-constant-contact-dummy.php:18
|
3512 |
+
#: integrations/templates/widget-constant-contact-dummy.php:25
|
3513 |
#: integrations/templates/widget-convertkit-dummy.php:8
|
3514 |
+
#: integrations/templates/widget-emailoctopus-dummy.php:8
|
3515 |
#: integrations/templates/widget-google-analytics-dummy.php:8
|
3516 |
#: integrations/templates/widget-google-geocoding-dummy.php:8
|
3517 |
#: integrations/templates/widget-google-places-dummy.php:8
|
3534 |
msgstr ""
|
3535 |
|
3536 |
#: integrations/templates/widget-active-campaign-dummy.php:12
|
3537 |
+
#: integrations/templates/widget-constant-contact-dummy.php:22
|
3538 |
#: integrations/templates/widget-convertkit-dummy.php:5
|
3539 |
+
#: integrations/templates/widget-emailoctopus-dummy.php:5
|
3540 |
#: integrations/templates/widget-google-geocoding-dummy.php:5
|
3541 |
#: integrations/templates/widget-google-places-dummy.php:5
|
3542 |
#: integrations/templates/widget-integrately-dummy.php:5
|
3543 |
#: integrations/templates/widget-integromat-dummy.php:5
|
3544 |
#: integrations/templates/widget-mailchimp-dummy.php:5
|
3545 |
#: integrations/templates/widget-mailerlite-dummy.php:5
|
3546 |
+
#: integrations/templates/widget-sendgrid-dummy.php:5
|
3547 |
#: integrations/templates/widget-zapier-dummy.php:5
|
3548 |
msgid "API key"
|
3549 |
msgstr ""
|
3550 |
|
3551 |
#: integrations/templates/widget-active-campaign-dummy.php:23
|
3552 |
#: integrations/templates/widget-aweber-dummy.php:21
|
3553 |
+
#: integrations/templates/widget-constant-contact-dummy.php:33
|
3554 |
#: integrations/templates/widget-convertkit-dummy.php:16
|
3555 |
+
#: integrations/templates/widget-emailoctopus-dummy.php:16
|
3556 |
#: integrations/templates/widget-google-analytics-dummy.php:16
|
3557 |
#: integrations/templates/widget-google-geocoding-dummy.php:16
|
3558 |
#: integrations/templates/widget-google-places-dummy.php:16
|
3578 |
msgid "Verification code"
|
3579 |
msgstr ""
|
3580 |
|
3581 |
+
#: integrations/templates/widget-constant-contact-dummy.php:6
|
3582 |
+
msgid "Redirect URI"
|
3583 |
+
msgstr ""
|
3584 |
+
|
3585 |
#: integrations/templates/widget-google-analytics-dummy.php:5
|
3586 |
msgid "Tracking ID"
|
3587 |
msgstr ""
|
3627 |
msgstr ""
|
3628 |
|
3629 |
#: integrations/templates/widget-sendfox-dummy.php:5
|
|
|
|
|
3630 |
msgid "Personal access token"
|
3631 |
msgstr ""
|
3632 |
|
3633 |
+
#: integrations/templates/widget-sendinblue-dummy.php:5
|
3634 |
+
msgid "API v3 key"
|
3635 |
+
msgstr ""
|
3636 |
+
|
3637 |
#: integrations/templates/widget-stripe-dummy.php:12
|
3638 |
msgid "Test"
|
3639 |
msgstr ""
|
readme.txt
CHANGED
@@ -3,9 +3,9 @@
|
|
3 |
Contributors: happyforms
|
4 |
Tags: contact form, contact form plugin, forms, form builder, custom form, intake form, registration form, survey form, quiz form, payment form, newsletter form, giveaway form, fundraising form, donation form, nomination form, order form, questionnaire form, onboarding form, contract form, estimate form, research form, qualitative form, quantitative form, membership form, mobile form, feedback form, release form, inquiry form, request form, evaluation form, RSVP form, reservation form, sales lead form, popup form, quote form, event form, booking form, application form, agreement form, safety form, compliance form, assessment form, sponsorship form, report form, file upload form, satisfaction form
|
5 |
Requires at least: 5.0
|
6 |
-
Tested up to: 6.
|
7 |
Requires PHP: 7.0
|
8 |
-
Stable tag: 1.
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
@@ -160,6 +160,13 @@ And so you know, we don't outsource support. You can expect plain-talkin' help f
|
|
160 |
|
161 |
== Changelog ==
|
162 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
163 |
= October 14, 2022 =
|
164 |
|
165 |
Version 1.19.1 changelog:
|
@@ -1460,8 +1467,11 @@ Version 1.0.0 changelog:
|
|
1460 |
|
1461 |
== Upgrade Notice ==
|
1462 |
|
|
|
|
|
|
|
1463 |
= 1.19.1 =
|
1464 |
-
Plugin directory page improvements, miscellaneous improvements and fixes.
|
1465 |
|
1466 |
= 1.19.0 =
|
1467 |
* Better display of unlabeled fields, email improvements, miscellaneous bugfixes.
|
3 |
Contributors: happyforms
|
4 |
Tags: contact form, contact form plugin, forms, form builder, custom form, intake form, registration form, survey form, quiz form, payment form, newsletter form, giveaway form, fundraising form, donation form, nomination form, order form, questionnaire form, onboarding form, contract form, estimate form, research form, qualitative form, quantitative form, membership form, mobile form, feedback form, release form, inquiry form, request form, evaluation form, RSVP form, reservation form, sales lead form, popup form, quote form, event form, booking form, application form, agreement form, safety form, compliance form, assessment form, sponsorship form, report form, file upload form, satisfaction form
|
5 |
Requires at least: 5.0
|
6 |
+
Tested up to: 6.1
|
7 |
Requires PHP: 7.0
|
8 |
+
Stable tag: 1.20.0
|
9 |
License: GPLv2 or later
|
10 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
11 |
|
160 |
|
161 |
== Changelog ==
|
162 |
|
163 |
+
= November 3, 2022 =
|
164 |
+
|
165 |
+
Version 1.20.0 changelog:
|
166 |
+
|
167 |
+
* Changed: Controls in Messages tab are now all visible all the time for better usability and easier form configuration.
|
168 |
+
* Fixed: Concurrent submissions of limited choices in Radio, Checkbox and Dropdown fields were leading to wrong results.
|
169 |
+
|
170 |
= October 14, 2022 =
|
171 |
|
172 |
Version 1.19.1 changelog:
|
1467 |
|
1468 |
== Upgrade Notice ==
|
1469 |
|
1470 |
+
= 1.20.0 =
|
1471 |
+
* Messages tab usability improvements, limited choice bugfixes in Radio, Checkbox and Dropdown fields.
|
1472 |
+
|
1473 |
= 1.19.1 =
|
1474 |
+
* Plugin directory page improvements, miscellaneous improvements and fixes.
|
1475 |
|
1476 |
= 1.19.0 =
|
1477 |
* Better display of unlabeled fields, email improvements, miscellaneous bugfixes.
|