Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/wp-conte.../plugins/wpforms-.../assets/js/frontend
File: wpforms.js
app.dateTimeErrorPlacement( element, error );
[500] Fix | Delete
} else if ( app.isFieldInColumn( element ) ) {
[501] Fix | Delete
element.parent().append( error );
[502] Fix | Delete
} else if ( app.isFieldHasHint( element ) ) {
[503] Fix | Delete
element.parent().append( error );
[504] Fix | Delete
} else if ( app.isLeadFormsSelect( element ) ) {
[505] Fix | Delete
element.parent().parent().append( error );
[506] Fix | Delete
} else if ( element.hasClass( 'wp-editor-area' ) ) {
[507] Fix | Delete
element.parent().parent().parent().append( error );
[508] Fix | Delete
} else {
[509] Fix | Delete
error.insertAfter( element );
[510] Fix | Delete
}
[511] Fix | Delete
[512] Fix | Delete
if ( app.isModernMarkupEnabled() ) {
[513] Fix | Delete
error.attr( {
[514] Fix | Delete
role: 'alert',
[515] Fix | Delete
'aria-label': wpforms_settings.errorMessagePrefix,
[516] Fix | Delete
for: '',
[517] Fix | Delete
} );
[518] Fix | Delete
}
[519] Fix | Delete
},
[520] Fix | Delete
highlight( element, errorClass, validClass ) { // eslint-disable-line complexity
[521] Fix | Delete
const $element = $( element ),
[522] Fix | Delete
$field = $element.closest( '.wpforms-field' ),
[523] Fix | Delete
inputName = $element.attr( 'name' );
[524] Fix | Delete
[525] Fix | Delete
if ( 'radio' === $element.attr( 'type' ) || 'checkbox' === $element.attr( 'type' ) ) {
[526] Fix | Delete
$field.find( 'input[name="' + inputName + '"]' ).addClass( errorClass ).removeClass( validClass );
[527] Fix | Delete
} else {
[528] Fix | Delete
$element.addClass( errorClass ).removeClass( validClass );
[529] Fix | Delete
}
[530] Fix | Delete
[531] Fix | Delete
// Remove password strength container for empty required password field.
[532] Fix | Delete
if (
[533] Fix | Delete
$element.attr( 'type' ) === 'password' &&
[534] Fix | Delete
$element.val().trim() === '' &&
[535] Fix | Delete
window.WPFormsPasswordField &&
[536] Fix | Delete
$element.data( 'rule-password-strength' ) &&
[537] Fix | Delete
$element.hasClass( 'wpforms-field-required' )
[538] Fix | Delete
) {
[539] Fix | Delete
WPFormsPasswordField.passwordStrength( '', element );
[540] Fix | Delete
}
[541] Fix | Delete
[542] Fix | Delete
$field.addClass( 'wpforms-has-error' );
[543] Fix | Delete
},
[544] Fix | Delete
unhighlight( element, errorClass, validClass ) {
[545] Fix | Delete
const $element = $( element ),
[546] Fix | Delete
$field = $element.closest( '.wpforms-field' ),
[547] Fix | Delete
inputName = $element.attr( 'name' );
[548] Fix | Delete
[549] Fix | Delete
if ( 'radio' === $element.attr( 'type' ) || 'checkbox' === $element.attr( 'type' ) ) {
[550] Fix | Delete
$field.find( 'input[name="' + inputName + '"]' ).addClass( validClass ).removeClass( errorClass );
[551] Fix | Delete
} else {
[552] Fix | Delete
$element.addClass( validClass ).removeClass( errorClass );
[553] Fix | Delete
}
[554] Fix | Delete
[555] Fix | Delete
// Remove the error class from the field container if there are no subfield errors.
[556] Fix | Delete
if ( ! $field.find( ':input.wpforms-error,[data-dz-errormessage]:not(:empty)' ).length ) {
[557] Fix | Delete
$field.removeClass( 'wpforms-has-error' );
[558] Fix | Delete
}
[559] Fix | Delete
[560] Fix | Delete
// Remove an error message to be sure the next time the `errorPlacement` method will be executed.
[561] Fix | Delete
if ( app.isModernMarkupEnabled() ) {
[562] Fix | Delete
$element.parent().find( 'em.wpforms-error' ).remove();
[563] Fix | Delete
}
[564] Fix | Delete
},
[565] Fix | Delete
submitHandler( form ) {
[566] Fix | Delete
/**
[567] Fix | Delete
* Captcha error handler.
[568] Fix | Delete
*
[569] Fix | Delete
* @since 1.8.4
[570] Fix | Delete
*
[571] Fix | Delete
* @param {jQuery} $form current form element.
[572] Fix | Delete
* @param {jQuery} $container current form container.
[573] Fix | Delete
*/
[574] Fix | Delete
const captchaErrorDisplay = function( $form, $container ) {
[575] Fix | Delete
let errorTag = 'label',
[576] Fix | Delete
errorRole = '';
[577] Fix | Delete
[578] Fix | Delete
if ( app.isModernMarkupEnabled() ) {
[579] Fix | Delete
errorTag = 'em';
[580] Fix | Delete
errorRole = 'role="alert"';
[581] Fix | Delete
}
[582] Fix | Delete
[583] Fix | Delete
const error = `<${ errorTag } id="wpforms-field_recaptcha-error" class="wpforms-error" ${ errorRole }> ${ wpforms_settings.val_recaptcha_fail_msg }</${ errorTag }>`;
[584] Fix | Delete
[585] Fix | Delete
$form.find( '.wpforms-recaptcha-container' ).append( error );
[586] Fix | Delete
app.restoreSubmitButton( $form, $container );
[587] Fix | Delete
};
[588] Fix | Delete
[589] Fix | Delete
/**
[590] Fix | Delete
* Submit handler routine.
[591] Fix | Delete
*
[592] Fix | Delete
* @since 1.7.2
[593] Fix | Delete
*
[594] Fix | Delete
* @return {boolean|void} False if form won't submit.
[595] Fix | Delete
*/
[596] Fix | Delete
const submitHandlerRoutine = function() { // eslint-disable-line complexity
[597] Fix | Delete
const $form = $( form ),
[598] Fix | Delete
$container = $form.closest( '.wpforms-container' ),
[599] Fix | Delete
$submit = $form.find( '.wpforms-submit' ),
[600] Fix | Delete
isCaptchaInvalid = $submit.data( 'captchaInvalid' ),
[601] Fix | Delete
altText = $submit.data( 'alt-text' ),
[602] Fix | Delete
recaptchaID = $submit.get( 0 ).recaptchaID;
[603] Fix | Delete
[604] Fix | Delete
if ( $form.data( 'token' ) && 0 === $( '.wpforms-token', $form ).length ) {
[605] Fix | Delete
$( '<input type="hidden" class="wpforms-token" name="wpforms[token]" />' )
[606] Fix | Delete
.val( $form.data( 'token' ) )
[607] Fix | Delete
.appendTo( $form );
[608] Fix | Delete
}
[609] Fix | Delete
[610] Fix | Delete
$form.find( '#wpforms-field_recaptcha-error' ).remove();
[611] Fix | Delete
$submit.prop( 'disabled', true );
[612] Fix | Delete
[613] Fix | Delete
WPFormsUtils.triggerEvent( $form, 'wpformsFormSubmitButtonDisable', [ $form, $submit ] );
[614] Fix | Delete
[615] Fix | Delete
// Display processing text.
[616] Fix | Delete
if ( altText ) {
[617] Fix | Delete
$submit.text( altText );
[618] Fix | Delete
}
[619] Fix | Delete
[620] Fix | Delete
if ( isCaptchaInvalid ) {
[621] Fix | Delete
return captchaErrorDisplay( $form, $container );
[622] Fix | Delete
}
[623] Fix | Delete
[624] Fix | Delete
if ( ! app.empty( recaptchaID ) || recaptchaID === 0 ) {
[625] Fix | Delete
// The Form contains invisible reCAPTCHA.
[626] Fix | Delete
grecaptcha.execute( recaptchaID ).then( null, function() {
[627] Fix | Delete
if ( grecaptcha.getResponse() ) {
[628] Fix | Delete
return;
[629] Fix | Delete
}
[630] Fix | Delete
[631] Fix | Delete
captchaErrorDisplay( $form, $container );
[632] Fix | Delete
} );
[633] Fix | Delete
return false;
[634] Fix | Delete
}
[635] Fix | Delete
[636] Fix | Delete
// Remove name attributes if needed.
[637] Fix | Delete
$( '.wpforms-input-temp-name' ).removeAttr( 'name' );
[638] Fix | Delete
[639] Fix | Delete
app.formSubmit( $form );
[640] Fix | Delete
};
[641] Fix | Delete
[642] Fix | Delete
// In the case of active Google reCAPTCHA v3, first, we should call `grecaptcha.execute`.
[643] Fix | Delete
// This is needed to get a proper grecaptcha token before submitting the form.
[644] Fix | Delete
if ( typeof wpformsRecaptchaV3Execute === 'function' ) {
[645] Fix | Delete
return wpformsRecaptchaV3Execute( submitHandlerRoutine );
[646] Fix | Delete
}
[647] Fix | Delete
[648] Fix | Delete
return submitHandlerRoutine();
[649] Fix | Delete
},
[650] Fix | Delete
invalidHandler( event, validator ) {
[651] Fix | Delete
if ( typeof validator.errorList[ 0 ] !== 'undefined' ) {
[652] Fix | Delete
app.scrollToError( $( validator.errorList[ 0 ].element ) );
[653] Fix | Delete
}
[654] Fix | Delete
},
[655] Fix | Delete
onkeyup: WPFormsUtils.debounce( // eslint-disable-next-line complexity
[656] Fix | Delete
function( element, event ) {
[657] Fix | Delete
// This code is copied from JQuery Validate 'onkeyup' method with only one change: 'wpforms-novalidate-onkeyup' class check.
[658] Fix | Delete
const excludedKeys = [ 16, 17, 18, 20, 35, 36, 37, 38, 39, 40, 45, 144, 225 ];
[659] Fix | Delete
[660] Fix | Delete
if ( $( element ).hasClass( 'wpforms-novalidate-onkeyup' ) ) {
[661] Fix | Delete
return; // Disable onkeyup validation for some elements (e.g. remote calls).
[662] Fix | Delete
}
[663] Fix | Delete
[664] Fix | Delete
// eslint-disable-next-line no-mixed-operators
[665] Fix | Delete
if ( event.which === 9 && this.elementValue( element ) === '' || $.inArray( event.keyCode, excludedKeys ) !== -1 ) {
[666] Fix | Delete
} else if ( element.name in this.submitted || element.name in this.invalid ) {
[667] Fix | Delete
this.element( element );
[668] Fix | Delete
}
[669] Fix | Delete
},
[670] Fix | Delete
1000
[671] Fix | Delete
),
[672] Fix | Delete
onfocusout: function( element ) { // eslint-disable-line complexity, object-shorthand
[673] Fix | Delete
// This code is copied from JQuery Validate 'onfocusout' method with only one change: 'wpforms-novalidate-onkeyup' class check.
[674] Fix | Delete
let validate = false;
[675] Fix | Delete
[676] Fix | Delete
if ( $( element ).hasClass( 'wpforms-novalidate-onkeyup' ) && ! element.value ) {
[677] Fix | Delete
validate = true; // Empty value error handling for elements with onkeyup validation disabled.
[678] Fix | Delete
}
[679] Fix | Delete
[680] Fix | Delete
if ( ! this.checkable( element ) && ( element.name in this.submitted || ! this.optional( element ) ) ) {
[681] Fix | Delete
validate = true;
[682] Fix | Delete
}
[683] Fix | Delete
[684] Fix | Delete
// If the error comes from server validation, we don't need to validate it again,
[685] Fix | Delete
// because it will clean the error message too early.
[686] Fix | Delete
if ( $( element ).data( 'server-error' ) ) {
[687] Fix | Delete
validate = false;
[688] Fix | Delete
}
[689] Fix | Delete
[690] Fix | Delete
if ( validate ) {
[691] Fix | Delete
this.element( element );
[692] Fix | Delete
}
[693] Fix | Delete
},
[694] Fix | Delete
onclick( element ) {
[695] Fix | Delete
let validate = false;
[696] Fix | Delete
const type = ( element || {} ).type;
[697] Fix | Delete
let $el = $( element );
[698] Fix | Delete
[699] Fix | Delete
if ( [ 'checkbox', 'radio' ].indexOf( type ) > -1 ) {
[700] Fix | Delete
if ( $el.hasClass( 'wpforms-likert-scale-option' ) ) {
[701] Fix | Delete
$el = $el.closest( 'tr' );
[702] Fix | Delete
} else {
[703] Fix | Delete
$el = $el.closest( '.wpforms-field' );
[704] Fix | Delete
}
[705] Fix | Delete
$el.find( 'label.wpforms-error, em.wpforms-error' ).remove();
[706] Fix | Delete
validate = true;
[707] Fix | Delete
}
[708] Fix | Delete
[709] Fix | Delete
if ( validate ) {
[710] Fix | Delete
this.element( element );
[711] Fix | Delete
}
[712] Fix | Delete
},
[713] Fix | Delete
};
[714] Fix | Delete
}
[715] Fix | Delete
form.validate( properties );
[716] Fix | Delete
} );
[717] Fix | Delete
}
[718] Fix | Delete
},
[719] Fix | Delete
[720] Fix | Delete
/**
[721] Fix | Delete
* Request to check if email is restricted.
[722] Fix | Delete
*
[723] Fix | Delete
* @since 1.8.5
[724] Fix | Delete
*
[725] Fix | Delete
* @param {Element} element Email input field.
[726] Fix | Delete
* @param {string} value Field value.
[727] Fix | Delete
*/
[728] Fix | Delete
restrictedEmailRequest( element, value ) {
[729] Fix | Delete
const $el = $( element );
[730] Fix | Delete
const $form = $el.closest( 'form' );
[731] Fix | Delete
const validator = $form.data( 'validator' );
[732] Fix | Delete
const formId = $form.data( 'formid' );
[733] Fix | Delete
const $field = $el.closest( '.wpforms-field' );
[734] Fix | Delete
const fieldId = $field.data( 'field-id' );
[735] Fix | Delete
[736] Fix | Delete
app.cache[ formId ] = app.cache[ formId ] || {};
[737] Fix | Delete
[738] Fix | Delete
validator.startRequest( element );
[739] Fix | Delete
[740] Fix | Delete
$.post( {
[741] Fix | Delete
url: wpforms_settings.ajaxurl,
[742] Fix | Delete
type: 'post',
[743] Fix | Delete
data: {
[744] Fix | Delete
action: 'wpforms_restricted_email',
[745] Fix | Delete
form_id: formId, // eslint-disable-line camelcase
[746] Fix | Delete
field_id: fieldId, // eslint-disable-line camelcase
[747] Fix | Delete
email: value,
[748] Fix | Delete
},
[749] Fix | Delete
dataType: 'json',
[750] Fix | Delete
success( response ) {
[751] Fix | Delete
const errors = {};
[752] Fix | Delete
[753] Fix | Delete
const isValid = response.success && response.data;
[754] Fix | Delete
[755] Fix | Delete
if ( ! isValid ) {
[756] Fix | Delete
errors[ element.name ] = wpforms_settings.val_email_restricted;
[757] Fix | Delete
validator.showErrors( errors );
[758] Fix | Delete
}
[759] Fix | Delete
[760] Fix | Delete
app.cache[ formId ].restrictedEmailValidation = app.cache[ formId ].restrictedEmailValidation || [];
[761] Fix | Delete
[762] Fix | Delete
if ( ! Object.prototype.hasOwnProperty.call( app.cache[ formId ].restrictedEmailValidation, value ) ) {
[763] Fix | Delete
app.cache[ formId ].restrictedEmailValidation[ value ] = isValid;
[764] Fix | Delete
}
[765] Fix | Delete
[766] Fix | Delete
validator.stopRequest( element, isValid );
[767] Fix | Delete
},
[768] Fix | Delete
} );
[769] Fix | Delete
},
[770] Fix | Delete
[771] Fix | Delete
/**
[772] Fix | Delete
* Is field inside column.
[773] Fix | Delete
*
[774] Fix | Delete
* @since 1.6.3
[775] Fix | Delete
*
[776] Fix | Delete
* @param {jQuery} element current form element.
[777] Fix | Delete
*
[778] Fix | Delete
* @return {boolean} true/false.
[779] Fix | Delete
*/
[780] Fix | Delete
isFieldInColumn( element ) {
[781] Fix | Delete
return element.parent().hasClass( 'wpforms-one-half' ) ||
[782] Fix | Delete
element.parent().hasClass( 'wpforms-two-fifths' ) ||
[783] Fix | Delete
element.parent().hasClass( 'wpforms-one-fifth' );
[784] Fix | Delete
},
[785] Fix | Delete
[786] Fix | Delete
/**
[787] Fix | Delete
* Is field has hint (sublabel, description, limit text hint, etc.).
[788] Fix | Delete
*
[789] Fix | Delete
* @since 1.8.1
[790] Fix | Delete
*
[791] Fix | Delete
* @param {jQuery} element current form element.
[792] Fix | Delete
*
[793] Fix | Delete
* @return {boolean} true/false.
[794] Fix | Delete
*/
[795] Fix | Delete
isFieldHasHint( element ) {
[796] Fix | Delete
return element
[797] Fix | Delete
.nextAll( '.wpforms-field-sublabel, .wpforms-field-description, .wpforms-field-limit-text, .wpforms-pass-strength-result' )
[798] Fix | Delete
.length > 0;
[799] Fix | Delete
},
[800] Fix | Delete
[801] Fix | Delete
/**
[802] Fix | Delete
* Is datetime field.
[803] Fix | Delete
*
[804] Fix | Delete
* @since 1.6.3
[805] Fix | Delete
*
[806] Fix | Delete
* @param {jQuery} element current form element.
[807] Fix | Delete
*
[808] Fix | Delete
* @return {boolean} true/false.
[809] Fix | Delete
*/
[810] Fix | Delete
isDateTimeField( element ) {
[811] Fix | Delete
return element.hasClass( 'wpforms-timepicker' ) ||
[812] Fix | Delete
element.hasClass( 'wpforms-datepicker' ) ||
[813] Fix | Delete
( element.is( 'select' ) && element.attr( 'class' ).match( /date-month|date-day|date-year/ ) );
[814] Fix | Delete
},
[815] Fix | Delete
[816] Fix | Delete
/**
[817] Fix | Delete
* Is a field wrapped in some container.
[818] Fix | Delete
*
[819] Fix | Delete
* @since 1.6.3
[820] Fix | Delete
*
[821] Fix | Delete
* @param {jQuery} element current form element.
[822] Fix | Delete
*
[823] Fix | Delete
* @return {boolean} true/false.
[824] Fix | Delete
*/
[825] Fix | Delete
isWrappedField( element ) { // eslint-disable-line complexity
[826] Fix | Delete
return 'checkbox' === element.attr( 'type' ) ||
[827] Fix | Delete
'radio' === element.attr( 'type' ) ||
[828] Fix | Delete
'range' === element.attr( 'type' ) ||
[829] Fix | Delete
'select' === element.is( 'select' ) ||
[830] Fix | Delete
1 === element.data( 'is-wrapped-field' ) ||
[831] Fix | Delete
element.parent().hasClass( 'iti' ) ||
[832] Fix | Delete
element.hasClass( 'wpforms-validation-group-member' ) ||
[833] Fix | Delete
element.hasClass( 'choicesjs-select' ) ||
[834] Fix | Delete
element.hasClass( 'wpforms-net-promoter-score-option' ) ||
[835] Fix | Delete
element.hasClass( 'wpforms-field-payment-coupon-input' );
[836] Fix | Delete
},
[837] Fix | Delete
[838] Fix | Delete
/**
[839] Fix | Delete
* Is likert scale field.
[840] Fix | Delete
*
[841] Fix | Delete
* @since 1.6.3
[842] Fix | Delete
*
[843] Fix | Delete
* @param {jQuery} element current form element.
[844] Fix | Delete
*
[845] Fix | Delete
* @return {boolean} true/false.
[846] Fix | Delete
*/
[847] Fix | Delete
isLikertScaleField( element ) {
[848] Fix | Delete
return element.hasClass( 'wpforms-likert-scale-option' );
[849] Fix | Delete
},
[850] Fix | Delete
[851] Fix | Delete
/**
[852] Fix | Delete
* Is Lead Forms select field.
[853] Fix | Delete
*
[854] Fix | Delete
* @since 1.8.1
[855] Fix | Delete
*
[856] Fix | Delete
* @param {jQuery} element current form element.
[857] Fix | Delete
*
[858] Fix | Delete
* @return {boolean} true/false.
[859] Fix | Delete
*/
[860] Fix | Delete
isLeadFormsSelect( element ) {
[861] Fix | Delete
return element.parent().hasClass( 'wpforms-lead-forms-select' );
[862] Fix | Delete
},
[863] Fix | Delete
[864] Fix | Delete
/**
[865] Fix | Delete
* Is Coupon field.
[866] Fix | Delete
*
[867] Fix | Delete
* @since 1.8.2
[868] Fix | Delete
* @deprecated 1.8.4 Deprecated.
[869] Fix | Delete
*
[870] Fix | Delete
* @param {jQuery} element current form element.
[871] Fix | Delete
*
[872] Fix | Delete
* @return {boolean} true/false.
[873] Fix | Delete
*/
[874] Fix | Delete
isCoupon( element ) {
[875] Fix | Delete
// eslint-disable-next-line no-console
[876] Fix | Delete
console.warn( 'WARNING! Function "wpforms.isCoupon( element )" has been deprecated' );
[877] Fix | Delete
[878] Fix | Delete
return element.closest( '.wpforms-field' ).hasClass( 'wpforms-field-payment-coupon' );
[879] Fix | Delete
},
[880] Fix | Delete
[881] Fix | Delete
/**
[882] Fix | Delete
* Print error message into date time fields.
[883] Fix | Delete
*
[884] Fix | Delete
* @since 1.6.3
[885] Fix | Delete
*
[886] Fix | Delete
* @param {jQuery} element current form element.
[887] Fix | Delete
* @param {string} error Error message.
[888] Fix | Delete
*/
[889] Fix | Delete
dateTimeErrorPlacement( element, error ) {
[890] Fix | Delete
const $wrapper = element.closest( '.wpforms-field-row-block, .wpforms-field-date-time' );
[891] Fix | Delete
if ( $wrapper.length ) {
[892] Fix | Delete
if ( ! $wrapper.find( 'label.wpforms-error, em.wpforms-error' ).length ) {
[893] Fix | Delete
$wrapper.append( error );
[894] Fix | Delete
}
[895] Fix | Delete
} else {
[896] Fix | Delete
element.closest( '.wpforms-field' ).append( error );
[897] Fix | Delete
}
[898] Fix | Delete
},
[899] Fix | Delete
[900] Fix | Delete
/**
[901] Fix | Delete
* Load jQuery Date Picker.
[902] Fix | Delete
*
[903] Fix | Delete
* @since 1.2.3
[904] Fix | Delete
* @since 1.8.9 Added the `$context` parameter.
[905] Fix | Delete
*
[906] Fix | Delete
* @param {jQuery} $context Container to search for datepicker elements.
[907] Fix | Delete
*/
[908] Fix | Delete
loadDatePicker( $context ) { // eslint-disable-line max-lines-per-function
[909] Fix | Delete
// Only load if jQuery datepicker library exists.
[910] Fix | Delete
if ( typeof $.fn.flatpickr === 'undefined' ) {
[911] Fix | Delete
return;
[912] Fix | Delete
}
[913] Fix | Delete
[914] Fix | Delete
$context = $context?.length ? $context : $( document );
[915] Fix | Delete
[916] Fix | Delete
$context.find( '.wpforms-datepicker-wrap' ).each( function() { // eslint-disable-line complexity, max-lines-per-function
[917] Fix | Delete
const element = $( this ),
[918] Fix | Delete
$input = element.find( 'input' ),
[919] Fix | Delete
form = element.closest( '.wpforms-form' ),
[920] Fix | Delete
formID = form.data( 'formid' ),
[921] Fix | Delete
fieldID = element.closest( '.wpforms-field' ).data( 'field-id' );
[922] Fix | Delete
[923] Fix | Delete
let properties;
[924] Fix | Delete
[925] Fix | Delete
if ( typeof window[ 'wpforms_' + formID + '_' + fieldID ] !== 'undefined' && window[ 'wpforms_' + formID + '_' + fieldID ].hasOwnProperty( 'datepicker' ) ) {
[926] Fix | Delete
properties = window[ 'wpforms_' + formID + '_' + fieldID ].datepicker;
[927] Fix | Delete
} else if ( typeof window[ 'wpforms_' + formID ] !== 'undefined' && window[ 'wpforms_' + formID ].hasOwnProperty( 'datepicker' ) ) {
[928] Fix | Delete
properties = window[ 'wpforms_' + formID ].datepicker;
[929] Fix | Delete
} else if ( typeof wpforms_datepicker !== 'undefined' ) {
[930] Fix | Delete
properties = wpforms_datepicker;
[931] Fix | Delete
} else {
[932] Fix | Delete
properties = {
[933] Fix | Delete
disableMobile: true,
[934] Fix | Delete
};
[935] Fix | Delete
}
[936] Fix | Delete
[937] Fix | Delete
// Redefine locale only if user doesn't do that manually, and we have the locale.
[938] Fix | Delete
if (
[939] Fix | Delete
! properties.hasOwnProperty( 'locale' ) &&
[940] Fix | Delete
typeof wpforms_settings !== 'undefined' &&
[941] Fix | Delete
wpforms_settings.hasOwnProperty( 'locale' )
[942] Fix | Delete
) {
[943] Fix | Delete
properties.locale = wpforms_settings.locale;
[944] Fix | Delete
}
[945] Fix | Delete
[946] Fix | Delete
properties.wrap = true;
[947] Fix | Delete
properties.dateFormat = $input.data( 'date-format' );
[948] Fix | Delete
[949] Fix | Delete
if ( $input.data( 'disable-past-dates' ) === 1 ) {
[950] Fix | Delete
properties.minDate = 'today';
[951] Fix | Delete
[952] Fix | Delete
if ( $input.data( 'disable-todays-date' ) === 1 ) {
[953] Fix | Delete
const date = new Date();
[954] Fix | Delete
properties.minDate = date.setDate( date.getDate() + 1 );
[955] Fix | Delete
}
[956] Fix | Delete
}
[957] Fix | Delete
[958] Fix | Delete
let limitDays = $input.data( 'limit-days' );
[959] Fix | Delete
const weekDays = [ 'sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat' ];
[960] Fix | Delete
[961] Fix | Delete
if ( limitDays && limitDays !== '' ) {
[962] Fix | Delete
limitDays = limitDays.split( ',' );
[963] Fix | Delete
[964] Fix | Delete
properties.disable = [ function( date ) {
[965] Fix | Delete
let limitDay = null;
[966] Fix | Delete
[967] Fix | Delete
for ( const i in limitDays ) {
[968] Fix | Delete
limitDay = weekDays.indexOf( limitDays[ i ] );
[969] Fix | Delete
[970] Fix | Delete
if ( limitDay === date.getDay() ) {
[971] Fix | Delete
return false;
[972] Fix | Delete
}
[973] Fix | Delete
}
[974] Fix | Delete
[975] Fix | Delete
return true;
[976] Fix | Delete
} ];
[977] Fix | Delete
}
[978] Fix | Delete
[979] Fix | Delete
// Toggle clear date icon.
[980] Fix | Delete
properties.onChange = function( selectedDates, dateStr, instance ) { // eslint-disable-line no-unused-vars
[981] Fix | Delete
element.find( '.wpforms-datepicker-clear' )
[982] Fix | Delete
.css( 'display', dateStr === '' ? 'none' : 'block' );
[983] Fix | Delete
};
[984] Fix | Delete
[985] Fix | Delete
element.flatpickr( properties );
[986] Fix | Delete
} );
[987] Fix | Delete
},
[988] Fix | Delete
[989] Fix | Delete
/**
[990] Fix | Delete
* Load jQuery Time Picker.
[991] Fix | Delete
*
[992] Fix | Delete
* @since 1.2.3
[993] Fix | Delete
* @since 1.8.9 Added the `$context` parameter.
[994] Fix | Delete
*
[995] Fix | Delete
* @param {jQuery} $context Container to search for datepicker elements.
[996] Fix | Delete
*/
[997] Fix | Delete
loadTimePicker( $context ) {
[998] Fix | Delete
// Only load if jQuery timepicker library exists.
[999] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function