diff --git a/classes/views/addons/addon.php b/classes/views/addons/addon.php index c705959370..25151414e2 100644 --- a/classes/views/addons/addon.php +++ b/classes/views/addons/addon.php @@ -3,6 +3,10 @@ * Add-Ons addon view. * * @package Formidable + * + * @var array $addon Single add-on data (slug, title, display_name, excerpt, status, docs, docs_label, is_new, etc.). + * @var string $license_type Current license type or empty string. + * @var string $pricing Upgrade URL used for CTAs. */ if ( ! defined( 'ABSPATH' ) ) { diff --git a/classes/views/addons/categories.php b/classes/views/addons/categories.php index ab609d6be9..1825a3f48b 100644 --- a/classes/views/addons/categories.php +++ b/classes/views/addons/categories.php @@ -3,6 +3,8 @@ * Add-Ons categories. * * @package Formidable + * + * @var array $categories Categories keyed by slug. */ if ( ! defined( 'ABSPATH' ) ) { diff --git a/classes/views/addons/index.php b/classes/views/addons/index.php index 4f8c4443b3..737d937cbb 100644 --- a/classes/views/addons/index.php +++ b/classes/views/addons/index.php @@ -3,6 +3,16 @@ * Add-Ons Page. * * @package Formidable + * + * @var string $view_path Absolute path to the views/addons/ directory, with trailing slash. + * @var array $installed_addons Installed add-on plugins keyed by slug. + * @var array $addons Available add-ons keyed by slug. + * @var array $errors API errors, if any. + * @var string $license_type Current license type or empty string. + * @var string $request_addon_url URL for requesting a new add-on. + * @var array $pro Pro add-on entry prepended to $addons. + * @var string $pricing Upgrade URL used for CTAs. + * @var array $categories Add-on categories keyed by slug, each with 'name' and 'count'. */ if ( ! defined( 'ABSPATH' ) ) { diff --git a/classes/views/addons/list.php b/classes/views/addons/list.php index 1380063630..2f76211979 100644 --- a/classes/views/addons/list.php +++ b/classes/views/addons/list.php @@ -1,4 +1,16 @@ $addons Available add-ons keyed by slug. + * @var string $view_path Absolute path to the views/addons/ directory, with trailing slash. + * @var string $request_addon_url URL for requesting a new add-on. + * @var string $license_type Current license type or empty string. + * @var string $pricing Upgrade URL used for CTAs. + */ + if ( ! defined( 'ABSPATH' ) ) { die( 'You are not allowed to call this page directly.' ); } diff --git a/classes/views/addons/settings.php b/classes/views/addons/settings.php index d1f37c70b0..d0ca2501b6 100644 --- a/classes/views/addons/settings.php +++ b/classes/views/addons/settings.php @@ -1,4 +1,12 @@ $plugins Installed add-on plugin objects keyed by slug. Each has: is_parent_licence, needs_license, license, option_name, plugin_name. + */ + if ( ! defined( 'ABSPATH' ) ) { die( 'You are not allowed to call this page directly.' ); } diff --git a/classes/views/applications/header.php b/classes/views/applications/header.php index fb0eca3959..39b1342a41 100644 --- a/classes/views/applications/header.php +++ b/classes/views/applications/header.php @@ -1,4 +1,13 @@ $prepop Preset options groups keyed by label; each may contain a 'class' key. + */ + if ( ! defined( 'ABSPATH' ) ) { die( 'You are not allowed to call this page directly.' ); } diff --git a/classes/views/frm-fields/back-end/default-value-field.php b/classes/views/frm-fields/back-end/default-value-field.php index fdd30b6f6d..83a94a66f2 100644 --- a/classes/views/frm-fields/back-end/default-value-field.php +++ b/classes/views/frm-fields/back-end/default-value-field.php @@ -1,4 +1,15 @@ - get_bulk_edit_string() ); ?> + + get_bulk_edit_string() ); + ?> +
    - show_single_option( $args ); ?> + show_single_option( $args ); + ?>
- get_add_option_string() ); ?> + + get_add_option_string() ); + ?> + diff --git a/classes/views/frm-fields/back-end/field-total.php b/classes/views/frm-fields/back-end/field-total.php index 30e119d188..5f89c89260 100644 --- a/classes/views/frm-fields/back-end/field-total.php +++ b/classes/views/frm-fields/back-end/field-total.php @@ -1,4 +1,14 @@ $data_types Product type options keyed by type slug. + */ + if ( ! defined( 'ABSPATH' ) ) { die( 'You are not allowed to call this page directly.' ); } diff --git a/classes/views/frm-fields/back-end/product-single-option.php b/classes/views/frm-fields/back-end/product-single-option.php index 3c07ac7dc7..5f7a8f51ca 100644 --- a/classes/views/frm-fields/back-end/product-single-option.php +++ b/classes/views/frm-fields/back-end/product-single-option.php @@ -1,4 +1,21 @@

@@ -464,7 +489,7 @@ } FrmHtmlHelper::echo_dropdown_option( - is_array( $ftype ) ? $ftype['name'] : $ftyp, + is_array( $ftype ) ? $ftype['name'] : $ftype, $fkey === $field['type'], $type_option_params ); diff --git a/classes/views/frm-fields/back-end/smart-values.php b/classes/views/frm-fields/back-end/smart-values.php index 2843d9d1fa..38720349ce 100644 --- a/classes/views/frm-fields/back-end/smart-values.php +++ b/classes/views/frm-fields/back-end/smart-values.php @@ -1,4 +1,12 @@ true, diff --git a/classes/views/frm-fields/back-end/value-format.php b/classes/views/frm-fields/back-end/value-format.php index 884221c02b..c4d7a3f0fd 100644 --- a/classes/views/frm-fields/back-end/value-format.php +++ b/classes/views/frm-fields/back-end/value-format.php @@ -1,4 +1,13 @@ { const moved = event.clientY; - const h = postBodyContent.offsetHeight; + const contentHeight = postBodyContent.offsetHeight; const relativePos = event.clientY - postBodyContent.offsetTop; - const y = relativePos - ( h / 2 ); + const offsetFromCenter = relativePos - ( contentHeight / 2 ); - if ( relativePos > ( h - 50 ) && moved > 5 ) { + if ( relativePos > ( contentHeight - 50 ) && moved > 5 ) { // Scrolling down. - return v + ( y * 0.1 ); + return v + ( offsetFromCenter * 0.1 ); } if ( relativePos < 70 && moved < 130 ) { // Scrolling up. - return v - Math.abs( y * 0.1 ); + return v - Math.abs( offsetFromCenter * 0.1 ); } return v; @@ -1974,7 +1974,7 @@ window.frmAdminBuildJS = function() { } const isSubmitBtn = draggable.classList.contains( 'edit_field_type_submit' ); - const containSubmitBtn = ! draggable.classList.contains( 'form_field' ) && !! draggable.querySelector( '.edit_field_type_submit' ); + const containSubmitBtn = ! draggable.classList.contains( 'form_field' ) && Boolean( draggable.querySelector( '.edit_field_type_submit' ) ); if ( 'frm-show-fields' === droppable.id ) { const draggableIndex = determineIndexBasedOffOfMousePositionInList( jQuery( droppable ), event.clientY ); @@ -2058,7 +2058,7 @@ window.frmAdminBuildJS = function() { * @return {boolean} True if the element is the last row. */ function isLastRow( element ) { - return element && element.matches( '#frm-show-fields > li:last-child' ); + return element?.matches( '#frm-show-fields > li:last-child' ); } // Don't allow a new page break or hidden field in a field group. @@ -2142,13 +2142,9 @@ window.frmAdminBuildJS = function() { return false; } + // Do not allow a section inside of a section. const draggableIncludesSection = draggable.classList.contains( 'edit_field_type_divider' ) || draggable.querySelector( '.edit_field_type_divider' ); - if ( draggableIncludesSection ) { - // Do not allow a section inside of a section. - return false; - } - - return true; + return ! draggableIncludesSection; } function allowMoveFieldToGroup( draggable, group ) { @@ -2163,15 +2159,11 @@ window.frmAdminBuildJS = function() { return false; } + // Do not allow a section or an embed field inside of a section. const draggableIncludesASection = draggable.classList.contains( 'edit_field_type_divider' ) || draggable.querySelector( '.edit_field_type_divider' ); const draggableIsEmbedField = draggable.classList.contains( 'edit_field_type_form' ); const groupIsInASection = null !== group.closest( '.start_divider' ); - if ( groupIsInASection && ( draggableIncludesASection || draggableIsEmbedField ) ) { - // Do not allow a section or an embed field inside of a section. - return false; - } - - return true; + return ! ( groupIsInASection && ( draggableIncludesASection || draggableIsEmbedField ) ); } function groupIncludesBreakOrHiddenOrUserId( group ) { @@ -2242,6 +2234,9 @@ window.frmAdminBuildJS = function() { html = JSON.parse( html ); for ( key in html ) { + if ( ! Object.hasOwn( html, key ) ) { + continue; + } jQuery( `#frm_field_id_${ key }` ).replaceWith( html[ key ] ); const newReplacedField = document.getElementById( `frm_field_id_${ key }` ); @@ -3238,17 +3233,17 @@ window.frmAdminBuildJS = function() { continue; } - const a = document.createElement( 'a' ); - a.setAttribute( 'href', '#' ); - a.setAttribute( 'data-code', fields[ i ].fieldId ); - a.classList.add( 'frm_insert_code' ); - a.append( span( fields[ i ].fieldName ) ); - a.append( span( { className: 'frm-text-sm frm-text-grey-500', text: `[${ fields[ i ].fieldId }]` } ) ); + const anchor = document.createElement( 'a' ); + anchor.setAttribute( 'href', '#' ); + anchor.setAttribute( 'data-code', fields[ i ].fieldId ); + anchor.classList.add( 'frm_insert_code' ); + anchor.append( span( fields[ i ].fieldName ) ); + anchor.append( span( { className: 'frm-text-sm frm-text-grey-500', text: `[${ fields[ i ].fieldId }]` } ) ); const li = document.createElement( 'li' ); li.classList.add( `frm-field-list-${ fieldId }` ); li.classList.add( `frm-field-list-${ fields[ i ].fieldType }` ); - li.append( a ); + li.append( anchor ); list.append( li ); } } @@ -7482,8 +7477,8 @@ window.frmAdminBuildJS = function() { const actionType = targetSettings.querySelector( '.frm_action_name' )?.value; const sourceTitle = targetSettings.querySelector( '.widget-title h4 span:not(.frm-border-icon)' )?.textContent.trim() ?? ''; const uniqueTitle = getUniqueActionTitle( sourceTitle.replace( / \(\d+\)$/, '' ), getExistingActionTitles( actionType ) ); - $action[0].querySelector( '.widget-title h4 span:not(.frm-border-icon)' ).textContent = uniqueTitle; - $action[0].querySelector( `input[name$="[${ currentID }][post_title]"]` ).value = uniqueTitle; + $action[ 0 ].querySelector( '.widget-title h4 span:not(.frm-border-icon)' ).textContent = uniqueTitle; + $action[ 0 ].querySelector( `input[name$="[${ currentID }][post_title]"]` ).value = uniqueTitle; $action.find( '.frm_action_id, .frm-btn-group' ).remove(); $action.find( `input[name$="[${ currentID }][ID]"]` ).val( '' ); @@ -7589,7 +7584,7 @@ window.frmAdminBuildJS = function() { function getExistingActionTitles( actionType ) { return Array.from( document.querySelectorAll( `.frm_single_${ actionType }_settings .widget-title h4 span:not(.frm-border-icon)` ), - ( el ) => el.textContent.trim() + el => el.textContent.trim() ); } @@ -7598,15 +7593,17 @@ window.frmAdminBuildJS = function() { * * @since x.x * - * @param {string} baseTitle The base title without any numeric suffix. - * @param {string[]} existingTitles Titles currently in use. - * @return {string} + * @param {string} baseTitle The base title without any numeric suffix. + * @param {string[]} existingTitles Titles currently in use. + * @return {string} The first title not present in existingTitles. */ function getUniqueActionTitle( baseTitle, existingTitles ) { const taken = new Set( existingTitles ); let title = baseTitle; - for ( let n = 2; taken.has( title ); n++ ) { + let n = 2; + while ( taken.has( title ) ) { title = `${ baseTitle } (${ n })`; + n++; } return title; } @@ -8087,15 +8084,15 @@ window.frmAdminBuildJS = function() { /*jshint validthis:true */ const postField = jQuery( 'select.frm_single_post_field' ); postField.css( 'border-color', '' ); - const $t = this; - const v = jQuery( $t ).val(); - if ( v === '' || v === 'checkbox' ) { + const currentField = this; + const selectedValue = jQuery( currentField ).val(); + if ( selectedValue === '' || selectedValue === 'checkbox' ) { return false; } postField.each( function() { - if ( jQuery( this ).val() === v && this.name !== $t.name ) { + if ( jQuery( this ).val() === selectedValue && this.name !== currentField.name ) { this.style.borderColor = 'red'; - jQuery( $t ).val( '' ); + jQuery( currentField ).val( '' ); infoModal( frmAdminJs.field_already_used ); return false; } @@ -8104,11 +8101,11 @@ window.frmAdminBuildJS = function() { function togglePostContent() { /*jshint validthis:true */ - const v = jQuery( this ).val(); - if ( '' === v ) { + const selectedValue = jQuery( this ).val(); + if ( '' === selectedValue ) { jQuery( '.frm_post_content_opt, select.frm_dyncontent_opt' ).hide().val( '' ); jQuery( '.frm_dyncontent_opt' ).hide(); - } else if ( 'post_content' === v ) { + } else if ( 'post_content' === selectedValue ) { jQuery( '.frm_post_content_opt' ).show(); jQuery( '.frm_dyncontent_opt' ).hide(); jQuery( 'select.frm_dyncontent_opt' ).val( '' ); @@ -8120,15 +8117,15 @@ window.frmAdminBuildJS = function() { function fillDyncontent() { /*jshint validthis:true */ - const v = jQuery( this ).val(); + const selectedValue = jQuery( this ).val(); const $dyn = jQuery( document.getElementById( 'frm_dyncontent' ) ); - if ( '' === v || 'new' === v ) { + if ( '' === selectedValue || 'new' === selectedValue ) { $dyn.val( '' ); jQuery( '.frm_dyncontent_opt' ).show(); } else { jQuery.ajax( { type: 'POST', url: ajaxurl, - data: { action: 'frm_display_get_content', id: v, nonce: frmGlobal.nonce }, + data: { action: 'frm_display_get_content', id: selectedValue, nonce: frmGlobal.nonce }, success( val ) { $dyn.val( val ); jQuery( '.frm_dyncontent_opt' ).show(); @@ -8439,24 +8436,24 @@ window.frmAdminBuildJS = function() { } if ( variable === '[default-html]' || variable === '[default-plain]' ) { - let p = 0; + let plainText = 0; if ( variable === '[default-plain]' ) { - p = 1; + plainText = 1; } jQuery.ajax( { type: 'POST', url: ajaxurl, data: { action: 'frm_get_default_html', form_id: jQuery( 'input[name="id"]' ).val(), - plain_text: p, + plain_text: plainText, nonce: frmGlobal.nonce }, elementId, success( msg ) { if ( rich ) { - const p = document.createElement( 'p' ); - p.innerText = msg; - send_to_editor( p.innerHTML ); + const paragraph = document.createElement( 'p' ); + paragraph.innerText = msg; + send_to_editor( paragraph.innerHTML ); } else { insertContent( contentBox, msg ); } @@ -8497,18 +8494,18 @@ window.frmAdminBuildJS = function() { document.selection.createRange().text = variable; } else { const obj = contentBox[ 0 ]; - const e = obj.selectionEnd; + const selectionEnd = obj.selectionEnd; - variable = maybeFormatInsertedContent( contentBox, variable, obj.selectionStart, e ); + variable = maybeFormatInsertedContent( contentBox, variable, obj.selectionStart, selectionEnd ); obj.value = obj.value.substr( 0, obj.selectionStart ) + variable + obj.value.substr( obj.selectionEnd, obj.value.length ); - const s = e + variable.length; + const cursorPos = selectionEnd + variable.length; maybeRemoveLayoutClasses( obj, variable ); obj.focus(); - obj.setSelectionRange( s, s ); + obj.setSelectionRange( cursorPos, cursorPos ); } triggerChange( contentBox ); } @@ -9260,21 +9257,21 @@ window.frmAdminBuildJS = function() { /*jshint validthis:true */ e.preventDefault(); - let s = false; + let status = false; const $exportForms = jQuery( 'input[name="frm_export_forms[]"]' ); if ( ! jQuery( 'input[name="frm_export_forms[]"]:checked' ).val() ) { $exportForms.closest( '.frm-table-box' ).addClass( 'frm_blank_field' ); - s = 'stop'; + status = 'stop'; } const $exportType = jQuery( 'input[name="type[]"]' ); if ( ! jQuery( 'input[name="type[]"]:checked' ).val() && $exportType.attr( 'type' ) === 'checkbox' ) { $exportType.closest( 'p' ).addClass( 'frm_blank_field' ); - s = 'stop'; + status = 'stop'; } - if ( s === 'stop' ) { + if ( status === 'stop' ) { return false; } @@ -9284,24 +9281,24 @@ window.frmAdminBuildJS = function() { function removeExportError() { /*jshint validthis:true */ - const t = jQuery( this ).closest( '.frm_blank_field' ); - if ( t === undefined ) { + const $blankField = jQuery( this ).closest( '.frm_blank_field' ); + if ( $blankField === undefined ) { return; } const $thisName = this.name; if ( $thisName === 'type[]' && jQuery( 'input[name="type[]"]:checked' ).val() ) { - t.removeClass( 'frm_blank_field' ); + $blankField.removeClass( 'frm_blank_field' ); } else if ( $thisName === 'frm_export_forms[]' && jQuery( this ).val() ) { - t.removeClass( 'frm_blank_field' ); + $blankField.removeClass( 'frm_blank_field' ); } } function checkCSVExtension() { /*jshint validthis:true */ - const f = jQuery( this ).val(); + const fileName = jQuery( this ).val(); const re = /\.csv$/i; - if ( f.match( re ) !== null ) { + if ( fileName.match( re ) !== null ) { jQuery( '.show_csv' ).fadeIn(); } else { jQuery( '.show_csv' ).fadeOut(); @@ -9337,12 +9334,12 @@ window.frmAdminBuildJS = function() { /*jshint validthis:true */ const $dropdown = jQuery( this ); const $selected = $dropdown.find( ':selected' ); - const s = $selected.data( 'support' ); + const support = $selected.data( 'support' ); - const multiple = s.indexOf( '|' ); + const multiple = support.indexOf( '|' ); jQuery( 'input[name="type[]"]' ).each( function() { this.checked = false; - if ( s.includes( this.value ) ) { + if ( support.includes( this.value ) ) { this.disabled = false; if ( multiple === -1 ) { this.checked = true; @@ -9360,9 +9357,9 @@ window.frmAdminBuildJS = function() { jQuery( '.xml_opts' ).show(); } - const c = $selected.data( 'count' ); + const count = $selected.data( 'count' ); const exportField = jQuery( 'input[name="frm_export_forms[]"]' ); - if ( c === 'single' ) { + if ( count === 'single' ) { exportField.prop( 'multiple', false ); exportField.prop( 'checked', false ); } else { @@ -9773,9 +9770,9 @@ window.frmAdminBuildJS = function() { function removeWPUnload() { window.onbeforeunload = null; - const w = jQuery( window ); - w.off( 'beforeunload.widgets' ); - w.off( 'beforeunload.edit-post' ); + const $window = jQuery( window ); + $window.off( 'beforeunload.widgets' ); + $window.off( 'beforeunload.edit-post' ); } function addMultiselectLabelListener() { @@ -10449,9 +10446,9 @@ window.frmAdminBuildJS = function() { // Bootstrap dropdown button jQuery( '.wp-admin' ).on( 'click', function( e ) { - const t = jQuery( e.target ); + const $target = jQuery( e.target ); const $openDrop = jQuery( '.dropdown.open' ); - if ( $openDrop.length && ! t.hasClass( 'dropdown' ) && ! t.closest( '.dropdown' ).length ) { + if ( $openDrop.length && ! $target.hasClass( 'dropdown' ) && ! $target.closest( '.dropdown' ).length ) { $openDrop.removeClass( 'open' ); } } ); diff --git a/phpcs-sniffs/Formidable/Sniffs/Commenting/CommentSpacingSniff.php b/phpcs-sniffs/Formidable/Sniffs/Commenting/CommentSpacingSniff.php index cad5605e2f..50990c0628 100644 --- a/phpcs-sniffs/Formidable/Sniffs/Commenting/CommentSpacingSniff.php +++ b/phpcs-sniffs/Formidable/Sniffs/Commenting/CommentSpacingSniff.php @@ -84,7 +84,7 @@ public function process( File $phpcsFile, $stackPtr ) { && ! $isSingleWord && ! $startsWithSpecialWord && ! $isContinuationComment - && ! preg_match( '/^(end\b|phpcs:|eslint|TODO|FIXME|translators:|e\.g\.|i\.e\.|etc\.|iDeal)/i', $trimmedText ); + && ! preg_match( '/^(end\b|phpcs:|skipcq:|eslint|TODO|FIXME|translators:|e\.g\.|i\.e\.|etc\.|iDeal)/i', $trimmedText ); if ( ! $hasSpaceAfterSlash ) { $fix = $phpcsFile->addFixableError( @@ -97,7 +97,7 @@ public function process( File $phpcsFile, $stackPtr ) { $newText = $trimmedText; // Also capitalize if needed (but not for code-like comments, single words, underscore/hyphen words, abbreviations, or continuation comments). - if ( preg_match( '/^[a-z]/', $firstChar ) && ! $looksLikeCode && ! $isSingleWord && ! $startsWithSpecialWord && ! $isContinuationComment && ! preg_match( '/^(end\b|phpcs:|eslint|translators:|e\.g\.|i\.e\.|etc\.|iDeal)/i', $trimmedText ) ) { + if ( preg_match( '/^[a-z]/', $firstChar ) && ! $looksLikeCode && ! $isSingleWord && ! $startsWithSpecialWord && ! $isContinuationComment && ! preg_match( '/^(end\b|phpcs:|skipcq:|eslint|translators:|e\.g\.|i\.e\.|etc\.|iDeal)/i', $trimmedText ) ) { $newText = ucfirst( $trimmedText ); } diff --git a/phpstan.neon b/phpstan.neon index 40b55a9dd6..cd7f5e1bd1 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -1,387 +1,388 @@ -parameters: - level: max - reportUnmatchedIgnoredErrors: false - bootstrapFiles: - - vendor/php-stubs/wordpress-stubs/wordpress-stubs.php - - stubs.php - excludePaths: - - */node_modules/* - - */tests/* - - */bin/* - - */images/* - - */languages/* - - */js/* - - */vendor/* - - */fonts/* - - */rector.php - - */phpcs-sniffs/* - ignoreErrors: - - '#Access to an undefined property#' - - '#Cannot access (offset|property)+#' - - '#Cannot (call method|cast|assign offset)+#' - - '#Function (apply_filters)+ invoked with#' - - '#code above always terminates.#' - - '#does not (accept|exist on)+#' - - '#expects (array|string|int|callable|object|stdClass|float|bool)+#' - - '#is always (false|true)+.#' - - '#no value type specified.#' - - '#only iterables are supported#' - - '#will always evaluate to#' - - - message: '#in isset\(\) does not exist.#' - paths: - - classes/controllers/FrmEntriesController.php - - classes/controllers/FrmStylesController.php - - stripe/controllers/FrmTransLiteActionsController.php - - stripe/helpers/FrmTransLiteAppHelper.php - - stripe/models/FrmTransLiteAction.php - - '#get_gateway_for_action\(\) never returns array so it can be removed from the return type#' - - - message: '#has an unused parameter#' - paths: - - classes/models/FrmFieldOption.php - - classes/models/FrmSolution.php - - stubs.php - - - message: '#has invalid type#' - path: stubs.php - - - message: '#Possibly invalid array key type#' - paths: - - classes/helpers/FrmFormsListHelper.php - - - message: '#get_mailer\(\) expects#' - path: classes/controllers/FrmSMTPController.php - - - message: '#has invalid return type#' - path: classes/controllers/FrmSMTPController.php - - - message: '#has an unused use#' - path: classes/views/styles/manage.php - - - message: '#Cannot access an offset on mixed.#' - paths: - - classes/helpers/FrmFormMigratorsHelper.php - - classes/models/FrmEntryMeta.php - - - message: '#callback of function spl_autoload_register expects#' - path: formidable.php - - - message: '#Call to an undefined method FrmFieldType::get\_file\_id#' - path: classes/helpers/FrmXMLHelper.php - - - message: '#Cannot use array destructuring on#' - path: classes/helpers/FrmStylesHelper.php - - - message: '#Call to an undefined method FrmFieldType::get_export_headings#' - path: classes/helpers/FrmCSVExportHelper.php - - - message: '#Call to an undefined method object::(get\_pagenum|prepare\_items|get_pagination\_arg)#' - paths: - - classes/controllers/FrmEntriesController.php - - classes/controllers/FrmFormsController.php - - - message: '#Call to an undefined method object::prepare_items#' - path: classes/helpers/FrmDashboardHelper.php - - - message: '#Access to protected property FrmFieldType::\$field#' - path: classes/controllers/FrmFieldsController.php - - - message: '#might not be defined.#' - paths: - - classes/views/* - - stripe/views/* - - css/* - - classes/controllers/FrmApplicationsController.php - - classes/controllers/FrmFieldsController.php - - classes/controllers/FrmStylesController.php - - - message: '#Call to protected method+#' - paths: - - classes/views/frm-fields/back-end/combo-field/sub-field-options.php - - classes/views/frm-fields/back-end/phone/phone-type.php - - classes/views/frm-fields/front-end/combo-field/combo-field.php - - - message: '#Call to function compact\(\) contains possibly undefined variable#' - paths: - - classes/views/* - - stripe/views/action-settings/payments-options.php - - - message: '#FrmFormAction::prepare_action\(\) expects WP_Post, mixed given#' - path: classes/models/FrmFormAction.php - - - message: '#has no return type specified#' - paths: - - classes/controllers/FrmEmailStylesController.php - - classes/controllers/FrmFieldsController.php - - classes/helpers/FrmXMLHelper.php - - square/helpers/FrmSquareLiteConnectHelper.php - - classes/helpers/FrmListHelper.php - - classes/helpers/FrmAppHelper.php - - classes/controllers/FrmFormActionsController.php - - classes/controllers/FrmAddonsController.php - - classes/controllers/FrmAppController.php - - classes/controllers/FrmFormsController.php - - classes/controllers/FrmStylesController.php - - classes/models/FrmSalesApi.php - - square/controllers/FrmSquareLiteAppController.php - - stripe/helpers/FrmStrpLiteConnectHelper.php - - classes/models/FrmInstallerSkin.php - - classes/controllers/FrmSettingsController.php - - stripe/helpers/FrmStrpLiteLinkRedirectHelper.php - - classes/models/FrmMigrate.php - - stubs.php - - - message: '#with no type specified#' - paths: - - stubs.php - - - message: '#in isset\(\) is not nullable#' - path: stripe/helpers/FrmTransLiteAppHelper.php - - - message: '#of echo cannot be converted to string.#' - paths: - - classes/controllers/FrmFormsController.php - - classes/controllers/FrmStylesController.php - - classes/helpers/FrmAppHelper.php - - classes/helpers/FrmListHelper.php - - classes/views/frm-entries/show.php - - classes/views/frm-forms/add_field.php - - - message: '#is unused.#' - paths: - - classes/controllers/FrmSimpleBlocksController.php - - - message: '#on left side of \?\?#' - path: stripe/controllers/FrmTransLiteActionsController.php - - - message: '#fwrite expects resource, resource\|null given#' - path: classes/helpers/FrmCSVExportHelper.php - - - message: '#should return#' - paths: - - stubs.php - - classes/controllers/FrmAddonsController.php - - classes/controllers/FrmAntiSpamController.php - - classes/controllers/FrmAppController.php - - classes/controllers/FrmDashboardController.php - - classes/controllers/FrmEmailStylesController.php - - classes/controllers/FrmEntriesController.php - - classes/controllers/FrmFieldsController.php - - classes/controllers/FrmFormActionsController.php - - classes/controllers/FrmFormTemplatesController.php - - classes/controllers/FrmFormsController.php - - classes/controllers/FrmStylesController.php - - classes/helpers/FrmAppHelper.php - - classes/helpers/FrmCSVExportHelper.php - - classes/helpers/FrmEntriesHelper.php - - classes/helpers/FrmEntriesListHelper.php - - classes/helpers/FrmFieldsHelper.php - - classes/helpers/FrmFormsHelper.php - - classes/helpers/FrmListHelper.php - - classes/helpers/FrmStylesHelper.php - - classes/helpers/FrmXMLHelper.php - - classes/models/FrmDb.php - - classes/models/FrmEntry.php - - classes/models/FrmEntryMeta.php - - classes/models/FrmField.php - - classes/models/FrmForm.php - - classes/models/FrmFormAction.php - - classes/models/FrmSettings.php - - classes/models/FrmStyle.php - - classes/models/fields/FrmFieldType.php - - stripe/controllers/FrmStrpLiteActionsController.php - - stripe/controllers/FrmTransLiteActionsController.php - - stripe/helpers/FrmStrpLiteConnectHelper.php - - stripe/helpers/FrmTransLiteAppHelper.php - - stripe/models/FrmStrpLiteAuth.php - - stripe/models/FrmTransLiteAction.php - - classes/controllers/FrmOnboardingWizardController.php - - classes/controllers/FrmTestModeController.php - - classes/controllers/FrmUsageController.php - - classes/controllers/FrmWelcomeTourController.php - - classes/controllers/FrmXMLController.php - - classes/factories/FrmCaptchaFactory.php - - classes/factories/FrmEntryFactory.php - - classes/factories/FrmFieldFactory.php - - classes/helpers/FrmEmailHelper.php - - classes/helpers/FrmEmailSummaryHelper.php - - classes/helpers/FrmOnSubmitHelper.php - - classes/helpers/FrmStylesCardHelper.php - - classes/helpers/FrmStylesPreviewHelper.php - - classes/helpers/FrmSubmitHelper.php - - classes/models/FrmAddon.php - - classes/models/FrmAntiSpam.php - - classes/models/FrmCreateFile.php - - classes/models/FrmEmailSummary.php - - classes/models/FrmEntryFormatter.php - - classes/models/FrmEntryValidate.php - - classes/models/FrmEntryValues.php - - classes/models/FrmFieldValue.php - - classes/models/FrmFormApi.php - - classes/models/FrmFormMigrator.php - - classes/models/FrmFormState.php - - classes/models/FrmFormTemplateApi.php - - classes/models/FrmHoneypot.php - - classes/models/FrmInbox.php - - classes/models/FrmOnSubmitAction.php - - classes/models/FrmPluginSearch.php - - classes/models/FrmSpamCheckDenylist.php - - classes/models/FrmSpamCheckWPDisallowedWords.php - - classes/models/FrmUsage.php - - classes/models/fields/FrmFieldCaptcha.php - - classes/models/fields/FrmFieldCombo.php - - classes/models/fields/FrmFieldCreditCard.php - - classes/models/fields/FrmFieldHTML.php - - classes/models/fields/FrmFieldName.php - - classes/models/fields/FrmFieldNumber.php - - classes/models/fields/FrmFieldSubmit.php - - classes/models/fields/FrmFieldUserID.php - - classes/views/frm-form-actions/email_action.php - - classes/views/styles/components/FrmSliderStyleComponent.php - - square/controllers/FrmSquareLiteActionsController.php - - square/helpers/FrmSquareLiteConnectHelper.php - - square/models/FrmSquareLiteSettings.php - - stripe/controllers/FrmStrpLiteEventsController.php - - stripe/controllers/FrmTransLitePaymentsController.php - - stripe/helpers/FrmStrpLiteAppHelper.php - - stripe/helpers/FrmStrpLiteConnectApiAdapter.php - - stripe/helpers/FrmTransLiteListHelper.php - - stripe/models/FrmStrpLiteSettings.php - - message: '#results in an error.#' - - message: '#Possibly invalid array key type mixed#' - - message: '#of encapsed string cannot be cast to string#' - - - message: '#but returns mixed#' - paths: - - classes/controllers/FrmSMTPController.php - - classes/controllers/FrmSimpleBlocksController.php - - classes/helpers/FrmCurrencyHelper.php - - classes/helpers/FrmShortcodeHelper.php - - classes/helpers/FrmTipsHelper.php - - classes/models/FrmApplicationTemplate.php - - classes/models/FrmFieldCaptchaSettings.php - - classes/models/FrmFieldTypeOptionData.php - - classes/models/FrmMigrate.php - - classes/models/FrmSalesApi.php - - classes/models/FrmTableHTMLGenerator.php - - classes/models/FrmYoutubeFeedApi.php - - square/controllers/FrmSquareLiteAppController.php - - stripe/controllers/FrmStrpLiteLinkController.php - - stripe/controllers/FrmTransLiteCRUDController.php - - stripe/helpers/FrmStrpLiteLinkRedirectHelper.php - - stripe/helpers/FrmStrpLiteSubscriptionHelper.php - - stripe/helpers/FrmStrpLiteUrlParamHelper.php - - stripe/models/FrmStrpLitePaymentTypeHandler.php - - stripe/models/FrmTransLiteDb.php - - stripe/models/FrmTransLiteSubscription.php - - - message: '#mixed given#' - paths: - - classes/controllers/FrmFormActionsController.php - - classes/controllers/FrmFormsController.php - - classes/helpers/FrmXMLHelper.php - - classes/models/FrmCreateFile.php - - classes/views/frm-settings/general.php - - classes/views/styles/_styles-list.php - - css/_single_theme.css.php - - css/custom_theme.css.php - - square/controllers/FrmSquareLiteActionsController.php - - square/controllers/FrmSquareLiteAppController.php - - stripe/controllers/FrmStrpLiteLinkController.php - - stripe/controllers/FrmTransLiteActionsController.php - - stripe/helpers/FrmStrpLiteSubscriptionHelper.php - - stripe/models/FrmStrpLiteAuth.php - - - message: '#cannot be converted to string.#' - paths: - - classes/views/styles/_style-preview-container.php - - classes/views/styles/components/templates/text-toggle.php - - - message: '#Cannot access an offset on mixed#' - paths: - - classes/controllers/FrmFormActionsController.php - - classes/controllers/FrmFormTemplatesController.php - - classes/controllers/FrmStylesController.php - - classes/helpers/FrmAppHelper.php - - classes/helpers/FrmCSVExportHelper.php - - classes/helpers/FrmXMLHelper.php - - classes/models/FrmEntry.php - - classes/models/FrmEntryValidate.php - - classes/models/FrmForm.php - - classes/models/FrmFormMigrator.php - - classes/models/FrmHoneypot.php - - classes/models/fields/FrmFieldType.php - - classes/views/xml/posts_xml.php - - stripe/controllers/FrmTransLiteActionsController.php - - message: '#might not exist on#' - - message: '#is not a file or it does not exist#' - - message: '#Cannot use \+\+ on mixed#' - - message: '#Cannot use -- on mixed#' - - message: '#Cannot use array destructuring on mixed#' - - - message: '#always exists and is not nullable#' - paths: - - classes/helpers/FrmFormsHelper.php - - classes/helpers/FrmXMLHelper.php - - classes/models/FrmEntryValidate.php - - message: '#Possibly invalid array key#' - - - message: '#should return array<(string|array)> but returns array#' - paths: - - classes/controllers/FrmApplicationsController.php - - stripe/models/FrmStrpLitePaymentTypeHandler.php - - - message: '#should return string but returns float#' - path: classes/models/FrmEmailStats.php - - message: '#on a separate line has no effect#' - - message: '#Cannot clone non-object variable#' - - - message: '#so it can be removed from the by-ref type#' - paths: - - classes/controllers/FrmFormsController.php - - classes/controllers/FrmXMLController.php - - classes/models/FrmDb.php - - - message: '#function array_map expects#' - paths: - - classes/helpers/FrmAppHelper.php - - classes/helpers/FrmHtmlHelper.php - - classes/models/FrmEntry.php - - classes/models/fields/FrmFieldType.php - - message: '#expects resource#' - - message: '#might not be defined#' - - - message: '#array given#' - path: classes/helpers/FrmFieldsHelper.php - - message: '#Cannot use \+\+ on int\|false#' - - message: '#Only booleans are allowed in an (elseif|if) condition#' - - message: '#Only booleans are allowed in a negated boolean#' - - message: '#Only booleans are allowed in a ternary operator condition#' - - message: '#Loose comparison via "(!=|==)" is not allowed#' - - message: '#Variable property access on#' - - message: '#does not call parent constructor#' - - message: '#Only booleans are allowed in (&&|\|\|)#' - - message: '#Variable method call on#' - - message: '#requires parameter \#[\d]* to be set#' - - message: '#array_filter\(\) requires parameter \#2 to be passed to avoid loose comparison semantics.#' - - message: '#Static call to __construct\(\) is only allowed on a parent class in the constructor#' - - message: '#Variable static method call on#' - - '#Construct empty\(\) is not allowed. Use more strict comparison#' - - - message: '#Foreach overwrites \$ip with its value variable.#' - path: classes/helpers/FrmAppHelper.php - - - message: '#Only numeric types are allowed#' - paths: - - classes/helpers/FrmCSVExportHelper.php - - classes/models/FrmStyle.php - - - message: "#Casting to int something that's already int#" - paths: - - classes/helpers/FrmXMLHelper.php - - '#Method FrmShortcodeHelper::get_shortcode_tag\(\) should return string but returns array\|string#' - - - message: '#always exists and is not falsy.#' - paths: - - classes/models/FrmAddon.php +parameters: + level: max + reportUnmatchedIgnoredErrors: false + bootstrapFiles: + - vendor/php-stubs/wordpress-stubs/wordpress-stubs.php + - stubs.php + excludePaths: + - */node_modules/* + - */tests/* + - */bin/* + - */images/* + - */languages/* + - */js/* + - */vendor/* + - */fonts/* + - */rector.php + - */phpcs-sniffs/* + ignoreErrors: + - '#Access to an undefined property#' + - '#Cannot access (offset|property)+#' + - '#Cannot (call method|cast|assign offset)+#' + - '#Function (apply_filters)+ invoked with#' + - '#code above always terminates.#' + - '#does not (accept|exist on)+#' + - '#expects (array|string|int|callable|object|stdClass|float|bool)+#' + - '#is always (false|true)+.#' + - '#no value type specified.#' + - '#only iterables are supported#' + - '#will always evaluate to#' + - + message: '#in isset\(\) does not exist.#' + paths: + - classes/controllers/FrmEntriesController.php + - classes/controllers/FrmStylesController.php + - stripe/controllers/FrmTransLiteActionsController.php + - stripe/helpers/FrmTransLiteAppHelper.php + - stripe/models/FrmTransLiteAction.php + - '#get_gateway_for_action\(\) never returns array so it can be removed from the return type#' + - + message: '#has an unused parameter#' + paths: + - classes/models/FrmFieldOption.php + - classes/models/FrmSolution.php + - stubs.php + - + message: '#has invalid type#' + path: stubs.php + - + message: '#Possibly invalid array key type#' + paths: + - classes/helpers/FrmFormsListHelper.php + - + message: '#get_mailer\(\) expects#' + path: classes/controllers/FrmSMTPController.php + - + message: '#has invalid return type#' + path: classes/controllers/FrmSMTPController.php + - + message: '#has an unused use#' + path: classes/views/styles/manage.php + - + message: '#Cannot access an offset on mixed.#' + paths: + - classes/helpers/FrmFormMigratorsHelper.php + - classes/models/FrmEntryMeta.php + - + message: '#callback of function spl_autoload_register expects#' + path: formidable.php + - + message: '#Call to an undefined method FrmFieldType::get\_file\_id#' + path: classes/helpers/FrmXMLHelper.php + - + message: '#Cannot use array destructuring on#' + path: classes/helpers/FrmStylesHelper.php + - + message: '#Call to an undefined method FrmFieldType::get_export_headings#' + path: classes/helpers/FrmCSVExportHelper.php + - + message: '#Call to an undefined method object::(get\_pagenum|prepare\_items|get_pagination\_arg)#' + paths: + - classes/controllers/FrmEntriesController.php + - classes/controllers/FrmFormsController.php + - + message: '#Call to an undefined method object::prepare_items#' + path: classes/helpers/FrmDashboardHelper.php + - + message: '#Access to protected property FrmFieldType::\$field#' + path: classes/controllers/FrmFieldsController.php + - + message: '#might not be defined.#' + paths: + - classes/views/* + - stripe/views/* + - css/* + - classes/controllers/FrmApplicationsController.php + - classes/controllers/FrmFieldsController.php + - classes/controllers/FrmStylesController.php + - + message: '#Call to protected method+#' + paths: + - classes/views/frm-fields/back-end/combo-field/sub-field-options.php + - classes/views/frm-fields/back-end/field-options.php + - classes/views/frm-fields/back-end/phone/phone-type.php + - classes/views/frm-fields/front-end/combo-field/combo-field.php + - + message: '#Call to function compact\(\) contains possibly undefined variable#' + paths: + - classes/views/* + - stripe/views/action-settings/payments-options.php + - + message: '#FrmFormAction::prepare_action\(\) expects WP_Post, mixed given#' + path: classes/models/FrmFormAction.php + - + message: '#has no return type specified#' + paths: + - classes/controllers/FrmEmailStylesController.php + - classes/controllers/FrmFieldsController.php + - classes/helpers/FrmXMLHelper.php + - square/helpers/FrmSquareLiteConnectHelper.php + - classes/helpers/FrmListHelper.php + - classes/helpers/FrmAppHelper.php + - classes/controllers/FrmFormActionsController.php + - classes/controllers/FrmAddonsController.php + - classes/controllers/FrmAppController.php + - classes/controllers/FrmFormsController.php + - classes/controllers/FrmStylesController.php + - classes/models/FrmSalesApi.php + - square/controllers/FrmSquareLiteAppController.php + - stripe/helpers/FrmStrpLiteConnectHelper.php + - classes/models/FrmInstallerSkin.php + - classes/controllers/FrmSettingsController.php + - stripe/helpers/FrmStrpLiteLinkRedirectHelper.php + - classes/models/FrmMigrate.php + - stubs.php + - + message: '#with no type specified#' + paths: + - stubs.php + - + message: '#in isset\(\) is not nullable#' + path: stripe/helpers/FrmTransLiteAppHelper.php + - + message: '#of echo cannot be converted to string.#' + paths: + - classes/controllers/FrmFormsController.php + - classes/controllers/FrmStylesController.php + - classes/helpers/FrmAppHelper.php + - classes/helpers/FrmListHelper.php + - classes/views/frm-entries/show.php + - classes/views/frm-forms/add_field.php + - + message: '#is unused.#' + paths: + - classes/controllers/FrmSimpleBlocksController.php + - + message: '#on left side of \?\?#' + path: stripe/controllers/FrmTransLiteActionsController.php + - + message: '#fwrite expects resource, resource\|null given#' + path: classes/helpers/FrmCSVExportHelper.php + - + message: '#should return#' + paths: + - stubs.php + - classes/controllers/FrmAddonsController.php + - classes/controllers/FrmAntiSpamController.php + - classes/controllers/FrmAppController.php + - classes/controllers/FrmDashboardController.php + - classes/controllers/FrmEmailStylesController.php + - classes/controllers/FrmEntriesController.php + - classes/controllers/FrmFieldsController.php + - classes/controllers/FrmFormActionsController.php + - classes/controllers/FrmFormTemplatesController.php + - classes/controllers/FrmFormsController.php + - classes/controllers/FrmStylesController.php + - classes/helpers/FrmAppHelper.php + - classes/helpers/FrmCSVExportHelper.php + - classes/helpers/FrmEntriesHelper.php + - classes/helpers/FrmEntriesListHelper.php + - classes/helpers/FrmFieldsHelper.php + - classes/helpers/FrmFormsHelper.php + - classes/helpers/FrmListHelper.php + - classes/helpers/FrmStylesHelper.php + - classes/helpers/FrmXMLHelper.php + - classes/models/FrmDb.php + - classes/models/FrmEntry.php + - classes/models/FrmEntryMeta.php + - classes/models/FrmField.php + - classes/models/FrmForm.php + - classes/models/FrmFormAction.php + - classes/models/FrmSettings.php + - classes/models/FrmStyle.php + - classes/models/fields/FrmFieldType.php + - stripe/controllers/FrmStrpLiteActionsController.php + - stripe/controllers/FrmTransLiteActionsController.php + - stripe/helpers/FrmStrpLiteConnectHelper.php + - stripe/helpers/FrmTransLiteAppHelper.php + - stripe/models/FrmStrpLiteAuth.php + - stripe/models/FrmTransLiteAction.php + - classes/controllers/FrmOnboardingWizardController.php + - classes/controllers/FrmTestModeController.php + - classes/controllers/FrmUsageController.php + - classes/controllers/FrmWelcomeTourController.php + - classes/controllers/FrmXMLController.php + - classes/factories/FrmCaptchaFactory.php + - classes/factories/FrmEntryFactory.php + - classes/factories/FrmFieldFactory.php + - classes/helpers/FrmEmailHelper.php + - classes/helpers/FrmEmailSummaryHelper.php + - classes/helpers/FrmOnSubmitHelper.php + - classes/helpers/FrmStylesCardHelper.php + - classes/helpers/FrmStylesPreviewHelper.php + - classes/helpers/FrmSubmitHelper.php + - classes/models/FrmAddon.php + - classes/models/FrmAntiSpam.php + - classes/models/FrmCreateFile.php + - classes/models/FrmEmailSummary.php + - classes/models/FrmEntryFormatter.php + - classes/models/FrmEntryValidate.php + - classes/models/FrmEntryValues.php + - classes/models/FrmFieldValue.php + - classes/models/FrmFormApi.php + - classes/models/FrmFormMigrator.php + - classes/models/FrmFormState.php + - classes/models/FrmFormTemplateApi.php + - classes/models/FrmHoneypot.php + - classes/models/FrmInbox.php + - classes/models/FrmOnSubmitAction.php + - classes/models/FrmPluginSearch.php + - classes/models/FrmSpamCheckDenylist.php + - classes/models/FrmSpamCheckWPDisallowedWords.php + - classes/models/FrmUsage.php + - classes/models/fields/FrmFieldCaptcha.php + - classes/models/fields/FrmFieldCombo.php + - classes/models/fields/FrmFieldCreditCard.php + - classes/models/fields/FrmFieldHTML.php + - classes/models/fields/FrmFieldName.php + - classes/models/fields/FrmFieldNumber.php + - classes/models/fields/FrmFieldSubmit.php + - classes/models/fields/FrmFieldUserID.php + - classes/views/frm-form-actions/email_action.php + - classes/views/styles/components/FrmSliderStyleComponent.php + - square/controllers/FrmSquareLiteActionsController.php + - square/helpers/FrmSquareLiteConnectHelper.php + - square/models/FrmSquareLiteSettings.php + - stripe/controllers/FrmStrpLiteEventsController.php + - stripe/controllers/FrmTransLitePaymentsController.php + - stripe/helpers/FrmStrpLiteAppHelper.php + - stripe/helpers/FrmStrpLiteConnectApiAdapter.php + - stripe/helpers/FrmTransLiteListHelper.php + - stripe/models/FrmStrpLiteSettings.php + - message: '#results in an error.#' + - message: '#Possibly invalid array key type mixed#' + - message: '#of encapsed string cannot be cast to string#' + - + message: '#but returns mixed#' + paths: + - classes/controllers/FrmSMTPController.php + - classes/controllers/FrmSimpleBlocksController.php + - classes/helpers/FrmCurrencyHelper.php + - classes/helpers/FrmShortcodeHelper.php + - classes/helpers/FrmTipsHelper.php + - classes/models/FrmApplicationTemplate.php + - classes/models/FrmFieldCaptchaSettings.php + - classes/models/FrmFieldTypeOptionData.php + - classes/models/FrmMigrate.php + - classes/models/FrmSalesApi.php + - classes/models/FrmTableHTMLGenerator.php + - classes/models/FrmYoutubeFeedApi.php + - square/controllers/FrmSquareLiteAppController.php + - stripe/controllers/FrmStrpLiteLinkController.php + - stripe/controllers/FrmTransLiteCRUDController.php + - stripe/helpers/FrmStrpLiteLinkRedirectHelper.php + - stripe/helpers/FrmStrpLiteSubscriptionHelper.php + - stripe/helpers/FrmStrpLiteUrlParamHelper.php + - stripe/models/FrmStrpLitePaymentTypeHandler.php + - stripe/models/FrmTransLiteDb.php + - stripe/models/FrmTransLiteSubscription.php + - + message: '#mixed given#' + paths: + - classes/controllers/FrmFormActionsController.php + - classes/controllers/FrmFormsController.php + - classes/helpers/FrmXMLHelper.php + - classes/models/FrmCreateFile.php + - classes/views/frm-settings/general.php + - classes/views/styles/_styles-list.php + - css/_single_theme.css.php + - css/custom_theme.css.php + - square/controllers/FrmSquareLiteActionsController.php + - square/controllers/FrmSquareLiteAppController.php + - stripe/controllers/FrmStrpLiteLinkController.php + - stripe/controllers/FrmTransLiteActionsController.php + - stripe/helpers/FrmStrpLiteSubscriptionHelper.php + - stripe/models/FrmStrpLiteAuth.php + - + message: '#cannot be converted to string.#' + paths: + - classes/views/styles/_style-preview-container.php + - classes/views/styles/components/templates/text-toggle.php + - + message: '#Cannot access an offset on mixed#' + paths: + - classes/controllers/FrmFormActionsController.php + - classes/controllers/FrmFormTemplatesController.php + - classes/controllers/FrmStylesController.php + - classes/helpers/FrmAppHelper.php + - classes/helpers/FrmCSVExportHelper.php + - classes/helpers/FrmXMLHelper.php + - classes/models/FrmEntry.php + - classes/models/FrmEntryValidate.php + - classes/models/FrmForm.php + - classes/models/FrmFormMigrator.php + - classes/models/FrmHoneypot.php + - classes/models/fields/FrmFieldType.php + - classes/views/xml/posts_xml.php + - stripe/controllers/FrmTransLiteActionsController.php + - message: '#might not exist on#' + - message: '#is not a file or it does not exist#' + - message: '#Cannot use \+\+ on mixed#' + - message: '#Cannot use -- on mixed#' + - message: '#Cannot use array destructuring on mixed#' + - + message: '#always exists and is not nullable#' + paths: + - classes/helpers/FrmFormsHelper.php + - classes/helpers/FrmXMLHelper.php + - classes/models/FrmEntryValidate.php + - message: '#Possibly invalid array key#' + - + message: '#should return array<(string|array)> but returns array#' + paths: + - classes/controllers/FrmApplicationsController.php + - stripe/models/FrmStrpLitePaymentTypeHandler.php + - + message: '#should return string but returns float#' + path: classes/models/FrmEmailStats.php + - message: '#on a separate line has no effect#' + - message: '#Cannot clone non-object variable#' + - + message: '#so it can be removed from the by-ref type#' + paths: + - classes/controllers/FrmFormsController.php + - classes/controllers/FrmXMLController.php + - classes/models/FrmDb.php + - + message: '#function array_map expects#' + paths: + - classes/helpers/FrmAppHelper.php + - classes/helpers/FrmHtmlHelper.php + - classes/models/FrmEntry.php + - classes/models/fields/FrmFieldType.php + - message: '#expects resource#' + - message: '#might not be defined#' + - + message: '#array given#' + path: classes/helpers/FrmFieldsHelper.php + - message: '#Cannot use \+\+ on int\|false#' + - message: '#Only booleans are allowed in an (elseif|if) condition#' + - message: '#Only booleans are allowed in a negated boolean#' + - message: '#Only booleans are allowed in a ternary operator condition#' + - message: '#Loose comparison via "(!=|==)" is not allowed#' + - message: '#Variable property access on#' + - message: '#does not call parent constructor#' + - message: '#Only booleans are allowed in (&&|\|\|)#' + - message: '#Variable method call on#' + - message: '#requires parameter \#[\d]* to be set#' + - message: '#array_filter\(\) requires parameter \#2 to be passed to avoid loose comparison semantics.#' + - message: '#Static call to __construct\(\) is only allowed on a parent class in the constructor#' + - message: '#Variable static method call on#' + - '#Construct empty\(\) is not allowed. Use more strict comparison#' + - + message: '#Foreach overwrites \$ip with its value variable.#' + path: classes/helpers/FrmAppHelper.php + - + message: '#Only numeric types are allowed#' + paths: + - classes/helpers/FrmCSVExportHelper.php + - classes/models/FrmStyle.php + - + message: "#Casting to int something that's already int#" + paths: + - classes/helpers/FrmXMLHelper.php + - '#Method FrmShortcodeHelper::get_shortcode_tag\(\) should return string but returns array\|string#' + - + message: '#always exists and is not falsy.#' + paths: + - classes/models/FrmAddon.php diff --git a/tests/cypress/e2e/Add-Ons/validateAddOnsPage.cy.js b/tests/cypress/e2e/Add-Ons/validateAddOnsPage.cy.js index 8d24b8f4f1..1548c95dbf 100644 --- a/tests/cypress/e2e/Add-Ons/validateAddOnsPage.cy.js +++ b/tests/cypress/e2e/Add-Ons/validateAddOnsPage.cy.js @@ -160,7 +160,7 @@ describe( 'Add-Ons page', () => { } ); cy.origin( 'https://formidableforms.com', () => { - cy.get( 'h1' ).should( 'have.text', 'What is the difference between the Lite (free) and Pro version?' ); + cy.get( 'h1' ).should( 'contain.text', 'What is the difference between the Lite' ); } ); cy.visit( '/wp-admin/admin.php?page=formidable-addons' );