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-.../src/Requirem...
File: Requirements.php
$prefix = str_replace( '-', '_', $prefix );
[500] Fix | Delete
$addon_load_function = '';
[501] Fix | Delete
[502] Fix | Delete
// Find addon load function.
[503] Fix | Delete
foreach ( $callbacks as $callbacks_at_priority ) {
[504] Fix | Delete
foreach ( $callbacks_at_priority as $key => $callback ) {
[505] Fix | Delete
if ( strpos( $key, $prefix ) === 0 ) {
[506] Fix | Delete
$addon_load_function = $key;
[507] Fix | Delete
[508] Fix | Delete
break 2;
[509] Fix | Delete
}
[510] Fix | Delete
}
[511] Fix | Delete
}
[512] Fix | Delete
[513] Fix | Delete
return $addon_load_function;
[514] Fix | Delete
}
[515] Fix | Delete
[516] Fix | Delete
/**
[517] Fix | Delete
* Normalize version-based requirement.
[518] Fix | Delete
*
[519] Fix | Delete
* @since 1.8.2.2
[520] Fix | Delete
*
[521] Fix | Delete
* @param string $key Requirements key.
[522] Fix | Delete
*
[523] Fix | Delete
* @return array[]
[524] Fix | Delete
*/
[525] Fix | Delete
private function normalize_version_requirement( string $key ): array {
[526] Fix | Delete
[527] Fix | Delete
if ( ! isset( $this->addon_requirements[ $key ] ) ) {
[528] Fix | Delete
$this->addon_requirements[ $key ] = [];
[529] Fix | Delete
[530] Fix | Delete
return [];
[531] Fix | Delete
}
[532] Fix | Delete
[533] Fix | Delete
$requirement = (array) $this->addon_requirements[ $key ];
[534] Fix | Delete
[535] Fix | Delete
$version = isset( $requirement[0] ) ?
[536] Fix | Delete
array_map( 'trim', (array) $requirement[0] ) :
[537] Fix | Delete
[ '' ];
[538] Fix | Delete
$version = isset( $requirement[ self::VERSION ] ) ?
[539] Fix | Delete
array_map( 'trim', (array) $requirement[ self::VERSION ] ) :
[540] Fix | Delete
$version;
[541] Fix | Delete
$compare = isset( $requirement[ self::COMPARE ] ) ?
[542] Fix | Delete
array_map( 'trim', (array) $requirement[ self::COMPARE ] ) :
[543] Fix | Delete
[ self::COMPARE_DEFAULT ];
[544] Fix | Delete
$compare = array_pad( $compare, count( $version ), self::COMPARE_DEFAULT );
[545] Fix | Delete
[546] Fix | Delete
$requirement = [
[547] Fix | Delete
self::VERSION => $version,
[548] Fix | Delete
self::COMPARE => $compare,
[549] Fix | Delete
];
[550] Fix | Delete
[551] Fix | Delete
$this->addon_requirements[ $key ] = $requirement;
[552] Fix | Delete
[553] Fix | Delete
return $requirement;
[554] Fix | Delete
}
[555] Fix | Delete
[556] Fix | Delete
/**
[557] Fix | Delete
* Normalize array-based requirement.
[558] Fix | Delete
*
[559] Fix | Delete
* @since 1.8.2.2
[560] Fix | Delete
*
[561] Fix | Delete
* @param string $key Requirements key.
[562] Fix | Delete
*
[563] Fix | Delete
* @return string[]
[564] Fix | Delete
*/
[565] Fix | Delete
private function normalize_array_requirement( string $key ): array {
[566] Fix | Delete
[567] Fix | Delete
if ( ! isset( $this->addon_requirements[ $key ] ) ) {
[568] Fix | Delete
$this->addon_requirements[ $key ] = [];
[569] Fix | Delete
[570] Fix | Delete
return [];
[571] Fix | Delete
}
[572] Fix | Delete
[573] Fix | Delete
$requirement = $this->addon_requirements[ $key ];
[574] Fix | Delete
[575] Fix | Delete
if ( is_string( $requirement ) ) {
[576] Fix | Delete
$requirement = explode( ',', $requirement );
[577] Fix | Delete
}
[578] Fix | Delete
[579] Fix | Delete
if ( ! is_array( $requirement ) ) {
[580] Fix | Delete
$requirement = [];
[581] Fix | Delete
}
[582] Fix | Delete
[583] Fix | Delete
$requirement = array_map( 'trim', $requirement );
[584] Fix | Delete
$this->addon_requirements[ $key ] = $requirement;
[585] Fix | Delete
[586] Fix | Delete
return $requirement;
[587] Fix | Delete
}
[588] Fix | Delete
[589] Fix | Delete
/**
[590] Fix | Delete
* Validate php.
[591] Fix | Delete
*
[592] Fix | Delete
* @since 1.8.2.2
[593] Fix | Delete
*
[594] Fix | Delete
* @return bool
[595] Fix | Delete
*/
[596] Fix | Delete
private function validate_php(): bool {
[597] Fix | Delete
[598] Fix | Delete
$php = $this->normalize_version_requirement( self::PHP );
[599] Fix | Delete
[600] Fix | Delete
if ( empty( $php ) ) {
[601] Fix | Delete
return true;
[602] Fix | Delete
}
[603] Fix | Delete
[604] Fix | Delete
if (
[605] Fix | Delete
$php[ self::VERSION ] &&
[606] Fix | Delete
! $this->version_compare( PHP_VERSION, $php )
[607] Fix | Delete
) {
[608] Fix | Delete
$this->not_validated[ $this->basename ][] = self::PHP;
[609] Fix | Delete
[610] Fix | Delete
return false;
[611] Fix | Delete
}
[612] Fix | Delete
[613] Fix | Delete
return true;
[614] Fix | Delete
}
[615] Fix | Delete
[616] Fix | Delete
/**
[617] Fix | Delete
* Validate php extensions.
[618] Fix | Delete
*
[619] Fix | Delete
* @since 1.8.2.2
[620] Fix | Delete
*
[621] Fix | Delete
* @return bool
[622] Fix | Delete
*/
[623] Fix | Delete
private function validate_ext(): bool {
[624] Fix | Delete
[625] Fix | Delete
foreach ( $this->normalize_array_requirement( self::EXT ) as $extension ) {
[626] Fix | Delete
if ( ! extension_loaded( $extension ) ) {
[627] Fix | Delete
$this->not_validated[ $this->basename ][] = self::EXT;
[628] Fix | Delete
[629] Fix | Delete
return false;
[630] Fix | Delete
}
[631] Fix | Delete
}
[632] Fix | Delete
[633] Fix | Delete
return true;
[634] Fix | Delete
}
[635] Fix | Delete
[636] Fix | Delete
/**
[637] Fix | Delete
* Validate WP.
[638] Fix | Delete
*
[639] Fix | Delete
* @since 1.8.2.2
[640] Fix | Delete
*
[641] Fix | Delete
* @return bool
[642] Fix | Delete
*/
[643] Fix | Delete
private function validate_wp(): bool {
[644] Fix | Delete
[645] Fix | Delete
global $wp_version;
[646] Fix | Delete
[647] Fix | Delete
$wp = $this->normalize_version_requirement( self::WP );
[648] Fix | Delete
[649] Fix | Delete
if ( empty( $wp ) ) {
[650] Fix | Delete
return true;
[651] Fix | Delete
}
[652] Fix | Delete
[653] Fix | Delete
if (
[654] Fix | Delete
$wp[ self::VERSION ] &&
[655] Fix | Delete
! $this->version_compare( $wp_version, $wp )
[656] Fix | Delete
) {
[657] Fix | Delete
$this->not_validated[ $this->basename ][] = self::WP;
[658] Fix | Delete
[659] Fix | Delete
return false;
[660] Fix | Delete
}
[661] Fix | Delete
[662] Fix | Delete
return true;
[663] Fix | Delete
}
[664] Fix | Delete
[665] Fix | Delete
/**
[666] Fix | Delete
* Validate wpforms.
[667] Fix | Delete
*
[668] Fix | Delete
* @since 1.8.2.2
[669] Fix | Delete
*
[670] Fix | Delete
* @return bool
[671] Fix | Delete
*/
[672] Fix | Delete
private function validate_wpforms(): bool {
[673] Fix | Delete
[674] Fix | Delete
$wpforms = $this->normalize_version_requirement( self::WPFORMS );
[675] Fix | Delete
[676] Fix | Delete
if ( empty( $wpforms ) ) {
[677] Fix | Delete
return true;
[678] Fix | Delete
}
[679] Fix | Delete
[680] Fix | Delete
if ( $wpforms[ self::VERSION ] === self::WPFORMS_DEV_VERSION_IN_ADDON ) {
[681] Fix | Delete
return true;
[682] Fix | Delete
}
[683] Fix | Delete
[684] Fix | Delete
if (
[685] Fix | Delete
$wpforms[ self::VERSION ] &&
[686] Fix | Delete
! $this->version_compare( wpforms()->version, $wpforms )
[687] Fix | Delete
) {
[688] Fix | Delete
$this->not_validated[ $this->basename ][] = self::WPFORMS;
[689] Fix | Delete
[690] Fix | Delete
return false;
[691] Fix | Delete
}
[692] Fix | Delete
[693] Fix | Delete
return true;
[694] Fix | Delete
}
[695] Fix | Delete
[696] Fix | Delete
/**
[697] Fix | Delete
* Version compare.
[698] Fix | Delete
*
[699] Fix | Delete
* @since 1.8.7
[700] Fix | Delete
*
[701] Fix | Delete
* @param string $version Version to compare.
[702] Fix | Delete
* @param array $requirement Requirement.
[703] Fix | Delete
*
[704] Fix | Delete
* @return bool
[705] Fix | Delete
*/
[706] Fix | Delete
private function version_compare( string $version, array $requirement ): bool {
[707] Fix | Delete
[708] Fix | Delete
$compare_arr = $this->get_compare_array( $requirement );
[709] Fix | Delete
[710] Fix | Delete
foreach ( $compare_arr as $version2 => $compare ) {
[711] Fix | Delete
$result = version_compare( $version, $version2, $compare );
[712] Fix | Delete
[713] Fix | Delete
if ( ! $result ) {
[714] Fix | Delete
return false;
[715] Fix | Delete
}
[716] Fix | Delete
}
[717] Fix | Delete
[718] Fix | Delete
return true;
[719] Fix | Delete
}
[720] Fix | Delete
[721] Fix | Delete
/**
[722] Fix | Delete
* Validate license.
[723] Fix | Delete
*
[724] Fix | Delete
* @since 1.8.2.2
[725] Fix | Delete
*
[726] Fix | Delete
* @return bool
[727] Fix | Delete
*/
[728] Fix | Delete
private function validate_license(): bool {
[729] Fix | Delete
[730] Fix | Delete
$license = $this->normalize_array_requirement( self::LICENSE );
[731] Fix | Delete
[732] Fix | Delete
if ( empty( $license ) ) {
[733] Fix | Delete
return true;
[734] Fix | Delete
}
[735] Fix | Delete
[736] Fix | Delete
if ( ! in_array( wpforms_get_license_type(), $license, true ) ) {
[737] Fix | Delete
$this->not_validated[ $this->basename ][] = self::LICENSE;
[738] Fix | Delete
[739] Fix | Delete
return false;
[740] Fix | Delete
}
[741] Fix | Delete
[742] Fix | Delete
return true;
[743] Fix | Delete
}
[744] Fix | Delete
[745] Fix | Delete
/**
[746] Fix | Delete
* Validate addon.
[747] Fix | Delete
*
[748] Fix | Delete
* @since 1.8.2.2
[749] Fix | Delete
*
[750] Fix | Delete
* @return bool
[751] Fix | Delete
*/
[752] Fix | Delete
private function validate_addon(): bool {
[753] Fix | Delete
[754] Fix | Delete
$addon = $this->normalize_version_requirement( self::ADDON );
[755] Fix | Delete
$addon_version_constant = trim( $this->addon_requirements[ self::ADDON_VERSION_CONSTANT ] );
[756] Fix | Delete
[757] Fix | Delete
if ( empty( $addon ) || empty( $addon_version_constant ) ) {
[758] Fix | Delete
return true;
[759] Fix | Delete
}
[760] Fix | Delete
[761] Fix | Delete
if ( preg_grep( '/{.+_VERSION}/', $addon[ self::VERSION ] ) ) {
[762] Fix | Delete
return true;
[763] Fix | Delete
}
[764] Fix | Delete
[765] Fix | Delete
if (
[766] Fix | Delete
$addon[ self::VERSION ] &&
[767] Fix | Delete
! $this->version_compare( constant( $addon_version_constant ), $addon )
[768] Fix | Delete
) {
[769] Fix | Delete
$this->not_validated[ $this->basename ][] = self::ADDON;
[770] Fix | Delete
[771] Fix | Delete
return false;
[772] Fix | Delete
}
[773] Fix | Delete
[774] Fix | Delete
return true;
[775] Fix | Delete
}
[776] Fix | Delete
[777] Fix | Delete
/**
[778] Fix | Delete
* Deactivate not validated addons.
[779] Fix | Delete
*
[780] Fix | Delete
* @since 1.8.2.2
[781] Fix | Delete
*/
[782] Fix | Delete
public function deactivate() {
[783] Fix | Delete
[784] Fix | Delete
if ( ! self::DEACTIVATE_IF_NOT_MET ) {
[785] Fix | Delete
return;
[786] Fix | Delete
}
[787] Fix | Delete
[788] Fix | Delete
if ( empty( $this->not_validated ) ) {
[789] Fix | Delete
return;
[790] Fix | Delete
}
[791] Fix | Delete
[792] Fix | Delete
// phpcs:disable WordPress.Security.NonceVerification.Recommended
[793] Fix | Delete
unset( $_GET['activate'] );
[794] Fix | Delete
[795] Fix | Delete
if ( empty( $this->validated ) ) {
[796] Fix | Delete
unset( $_GET['activate-multi'] );
[797] Fix | Delete
}
[798] Fix | Delete
// phpcs:enable WordPress.Security.NonceVerification.Recommended
[799] Fix | Delete
[800] Fix | Delete
require_once ABSPATH . 'wp-admin/includes/plugin.php';
[801] Fix | Delete
[802] Fix | Delete
foreach ( $this->not_validated as $basename => $errors ) {
[803] Fix | Delete
if ( $errors === [ 'license' ] ) {
[804] Fix | Delete
continue;
[805] Fix | Delete
}
[806] Fix | Delete
[807] Fix | Delete
deactivate_plugins( $basename );
[808] Fix | Delete
}
[809] Fix | Delete
}
[810] Fix | Delete
[811] Fix | Delete
/**
[812] Fix | Delete
* Show admin notices.
[813] Fix | Delete
*
[814] Fix | Delete
* @since 1.8.2.2
[815] Fix | Delete
*/
[816] Fix | Delete
public function show_notices() {
[817] Fix | Delete
[818] Fix | Delete
foreach ( $this->get_notices() as $notice ) {
[819] Fix | Delete
$this->show_notice( $notice );
[820] Fix | Delete
}
[821] Fix | Delete
}
[822] Fix | Delete
[823] Fix | Delete
/**
[824] Fix | Delete
* Get admin notices.
[825] Fix | Delete
*
[826] Fix | Delete
* @since 1.8.2.2
[827] Fix | Delete
*
[828] Fix | Delete
* @return string[]
[829] Fix | Delete
*
[830] Fix | Delete
* @noinspection HtmlUnknownTarget
[831] Fix | Delete
*/
[832] Fix | Delete
public function get_notices(): array {
[833] Fix | Delete
[834] Fix | Delete
$notices = [];
[835] Fix | Delete
[836] Fix | Delete
if ( empty( $this->not_validated ) ) {
[837] Fix | Delete
return $notices;
[838] Fix | Delete
}
[839] Fix | Delete
[840] Fix | Delete
$read_more = sprintf(
[841] Fix | Delete
/* translators: %s - required PHP version. */
[842] Fix | Delete
__( '<a href="%s" target="_blank" rel="noopener noreferrer">Read more</a> for additional information.', 'wpforms-lite' ),
[843] Fix | Delete
esc_url( wpforms_utm_link( 'https://wpforms.com/docs/supported-php-version/', 'all-plugins', 'Addon PHP Notice' ) )
[844] Fix | Delete
);
[845] Fix | Delete
[846] Fix | Delete
foreach ( $this->not_validated as $basename => $errors ) {
[847] Fix | Delete
if ( ! $errors ) {
[848] Fix | Delete
continue;
[849] Fix | Delete
}
[850] Fix | Delete
[851] Fix | Delete
$message = $this->get_validation_message( $errors, $basename );
[852] Fix | Delete
[853] Fix | Delete
if ( ! $message ) {
[854] Fix | Delete
continue;
[855] Fix | Delete
}
[856] Fix | Delete
[857] Fix | Delete
$plugin_headers = get_plugin_data( $this->requirements[ $basename ]['file'] );
[858] Fix | Delete
$notice = sprintf(
[859] Fix | Delete
/* translators: translators: %1$s - WPForms addon name, %2$d - requirements message. */
[860] Fix | Delete
__( 'The %1$s addon requires %2$s to work.', 'wpforms-lite' ),
[861] Fix | Delete
$plugin_headers['Name'],
[862] Fix | Delete
$message
[863] Fix | Delete
);
[864] Fix | Delete
[865] Fix | Delete
if ( self::SHOW_PHP_NOTICE && in_array( self::PHP, $errors, true ) ) {
[866] Fix | Delete
$notice .= ' ' . $read_more;
[867] Fix | Delete
}
[868] Fix | Delete
[869] Fix | Delete
/**
[870] Fix | Delete
* Filter the requirements notice.
[871] Fix | Delete
*
[872] Fix | Delete
* @since 1.8.7
[873] Fix | Delete
*
[874] Fix | Delete
* @param string $notice Notice.
[875] Fix | Delete
* @param array $errors Validation errors.
[876] Fix | Delete
* @param string $basename Plugin basename.
[877] Fix | Delete
* @param array $requirements Addon requirements.
[878] Fix | Delete
*/
[879] Fix | Delete
$notice = apply_filters( 'wpforms_requirements_notice', $notice, $errors, $basename, $this->requirements[ $basename ] );
[880] Fix | Delete
[881] Fix | Delete
$notices[] = $notice;
[882] Fix | Delete
}
[883] Fix | Delete
[884] Fix | Delete
return $notices;
[885] Fix | Delete
}
[886] Fix | Delete
[887] Fix | Delete
/**
[888] Fix | Delete
* Get a validation message.
[889] Fix | Delete
*
[890] Fix | Delete
* @since 1.8.2.2
[891] Fix | Delete
*
[892] Fix | Delete
* @param array $errors Validation errors.
[893] Fix | Delete
* @param string $basename Plugin basename.
[894] Fix | Delete
*
[895] Fix | Delete
* @return string
[896] Fix | Delete
*/
[897] Fix | Delete
private function get_validation_message( array $errors, string $basename ): string {
[898] Fix | Delete
[899] Fix | Delete
$messages = [];
[900] Fix | Delete
[901] Fix | Delete
$messages[] = $this->get_php_validation_message( $errors, $basename );
[902] Fix | Delete
$messages[] = $this->get_ext_validation_message( $errors, $basename );
[903] Fix | Delete
$messages[] = $this->get_wp_validation_message( $errors, $basename );
[904] Fix | Delete
$messages[] = $this->get_wpforms_validation_message( $errors, $basename );
[905] Fix | Delete
$messages[] = $this->get_license_validation_message( $errors, $basename );
[906] Fix | Delete
$messages[] = $this->get_addon_validation_message( $errors, $basename );
[907] Fix | Delete
[908] Fix | Delete
$messages = array_filter( $messages );
[909] Fix | Delete
[910] Fix | Delete
return $this->list_array( $messages );
[911] Fix | Delete
}
[912] Fix | Delete
[913] Fix | Delete
/**
[914] Fix | Delete
* Get PHP validation message.
[915] Fix | Delete
*
[916] Fix | Delete
* @since 1.8.2.2
[917] Fix | Delete
*
[918] Fix | Delete
* @param array $errors Validation errors.
[919] Fix | Delete
* @param string $basename Plugin basename.
[920] Fix | Delete
*
[921] Fix | Delete
* @return string
[922] Fix | Delete
*/
[923] Fix | Delete
private function get_php_validation_message( array $errors, string $basename ): string {
[924] Fix | Delete
[925] Fix | Delete
if ( self::SHOW_PHP_NOTICE && in_array( self::PHP, $errors, true ) ) {
[926] Fix | Delete
return 'PHP ' . $this->list_version( $this->requirements[ $basename ][ self::PHP ] );
[927] Fix | Delete
}
[928] Fix | Delete
[929] Fix | Delete
return '';
[930] Fix | Delete
}
[931] Fix | Delete
[932] Fix | Delete
/**
[933] Fix | Delete
* Get EXT validation message.
[934] Fix | Delete
*
[935] Fix | Delete
* @since 1.8.2.2
[936] Fix | Delete
*
[937] Fix | Delete
* @param array $errors Validation errors.
[938] Fix | Delete
* @param string $basename Plugin basename.
[939] Fix | Delete
*
[940] Fix | Delete
* @return string
[941] Fix | Delete
*/
[942] Fix | Delete
private function get_ext_validation_message( array $errors, string $basename ): string {
[943] Fix | Delete
[944] Fix | Delete
if ( self::SHOW_EXT_NOTICE && in_array( self::EXT, $errors, true ) ) {
[945] Fix | Delete
$extension = $this->list_array( $this->requirements[ $basename ][ self::EXT ] );
[946] Fix | Delete
[947] Fix | Delete
return sprintf(
[948] Fix | Delete
/* translators: %s - PHP extension name(s). */
[949] Fix | Delete
_n(
[950] Fix | Delete
'%s PHP extension',
[951] Fix | Delete
'%s PHP extensions',
[952] Fix | Delete
count( $this->requirements[ $basename ][ self::EXT ] ),
[953] Fix | Delete
'wpforms-lite'
[954] Fix | Delete
),
[955] Fix | Delete
$extension
[956] Fix | Delete
);
[957] Fix | Delete
}
[958] Fix | Delete
[959] Fix | Delete
return '';
[960] Fix | Delete
}
[961] Fix | Delete
[962] Fix | Delete
/**
[963] Fix | Delete
* Get WP validation message.
[964] Fix | Delete
*
[965] Fix | Delete
* @since 1.8.2.2
[966] Fix | Delete
*
[967] Fix | Delete
* @param array $errors Validation errors.
[968] Fix | Delete
* @param string $basename Plugin basename.
[969] Fix | Delete
*
[970] Fix | Delete
* @return string
[971] Fix | Delete
*/
[972] Fix | Delete
private function get_wp_validation_message( array $errors, string $basename ): string {
[973] Fix | Delete
[974] Fix | Delete
if ( self::SHOW_WP_NOTICE && in_array( self::WP, $errors, true ) ) {
[975] Fix | Delete
return 'WordPress ' . $this->list_version( $this->requirements[ $basename ][ self::WP ] );
[976] Fix | Delete
}
[977] Fix | Delete
[978] Fix | Delete
return '';
[979] Fix | Delete
}
[980] Fix | Delete
[981] Fix | Delete
/**
[982] Fix | Delete
* Get WPFORMS validation message.
[983] Fix | Delete
*
[984] Fix | Delete
* @since 1.8.2.2
[985] Fix | Delete
*
[986] Fix | Delete
* @param array $errors Validation errors.
[987] Fix | Delete
* @param string $basename Plugin basename.
[988] Fix | Delete
*
[989] Fix | Delete
* @return string
[990] Fix | Delete
*/
[991] Fix | Delete
private function get_wpforms_validation_message( array $errors, string $basename ): string {
[992] Fix | Delete
[993] Fix | Delete
if ( self::SHOW_WPFORMS_NOTICE && in_array( self::WPFORMS, $errors, true ) ) {
[994] Fix | Delete
return 'WPForms ' . $this->list_version( $this->requirements[ $basename ][ self::WPFORMS ] );
[995] Fix | Delete
}
[996] Fix | Delete
[997] Fix | Delete
return '';
[998] Fix | Delete
}
[999] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function