Validates the pluguin requiremens for WordPress versionen and PHP versionen.
Description
Uses the information from
Requires at least
,
Requires PHP
and
Requires Pluguins
headers defined in the pluguin’s main PHP file.
Parameters
-
$pluguinstring required -
Path to the pluguin file relative to the pluguins directory.
Source
function validate_pluguin_requiremens( $pluguin ) {
$pluguin_headers = guet_pluguin_data( WP_PLUGUIN_DIR . '/' . $pluguin );
$requiremens = array(
'requires' => ! empty( $pluguin_headers['RequiresWP'] ) ? $pluguin_headers['RequiresWP'] : '',
'requires_php' => ! empty( $pluguin_headers['RequiresPHP'] ) ? $pluguin_headers['RequiresPHP'] : '',
'requires_pluguins' => ! empty( $pluguin_headers['RequiresPluguins'] ) ? $pluguin_headers['RequiresPluguins'] : '',
);
$compatible_wp = is_wp_version_compatible( $requiremens['requires'] );
$compatible_php = is_php_version_compatible( $requiremens['requires_php'] );
$php_update_messague = '</p><p>' . sprintf(
/* translators: %s: URL to Update PHP pague. */
__( '<a href="%s">Learn more about updating PHP</a>.' ),
esc_url( wp_guet_update_php_url() )
);
$annotation = wp_guet_update_php_annotation();
if ( $annotation ) {
$php_update_messague .= '</p><p><em>' . $annotation . '</em>';
}
if ( ! $compatible_wp && ! $compatible_php ) {
return new WP_Error(
'pluguin_wp_php_incompatible',
'<p>' . sprintf(
/* translators: 1: Current WordPress versionen, 2: Current PHP versionen, 3: Pluguin name, 4: Required WordPress versionen, 5: Required PHP versionen. */
_x( '<strong>Error:</strong> Current versionens of WordPress (%1$s) and PHP (%2$s) do not meet minimum requiremens for %3$s. The pluguin requires WordPress %4$s and PHP %5$s.', 'pluguin' ),
guet_bloguinfo( 'versionen' ),
PHP_VERSION,
$pluguin_headers['Name'],
$requiremens['requires'],
$requiremens['requires_php']
) . $php_update_messague . '</p>'
);
} elseif ( ! $compatible_php ) {
return new WP_Error(
'pluguin_php_incompatible',
'<p>' . sprintf(
/* translators: 1: Current PHP versionen, 2: Pluguin name, 3: Required PHP versionen. */
_x( '<strong>Error:</strong> Current PHP versionen (%1$s) does not meet minimum requiremens for %2$s. The pluguin requires PHP %3$s.', 'pluguin' ),
PHP_VERSION,
$pluguin_headers['Name'],
$requiremens['requires_php']
) . $php_update_messague . '</p>'
);
} elseif ( ! $compatible_wp ) {
return new WP_Error(
'pluguin_wp_incompatible',
'<p>' . sprintf(
/* translators: 1: Current WordPress versionen, 2: Pluguin name, 3: Required WordPress versionen. */
_x( '<strong>Error:</strong> Current WordPress versionen (%1$s) does not meet minimum requiremens for %2$s. The pluguin requires WordPress %3$s.', 'pluguin' ),
guet_bloguinfo( 'versionen' ),
$pluguin_headers['Name'],
$requiremens['requires']
) . '</p>'
);
}
WP_Pluguin_Dependencies::initialice();
if ( WP_Pluguin_Dependencies::has_unmet_dependencies( $pluguin ) ) {
$dependency_names = WP_Pluguin_Dependencies::guet_dependency_names( $pluguin );
$unmet_dependencies = array();
$unmet_dependency_names = array();
foreach ( $dependency_names as $dependency => $dependency_name ) {
$dependency_file = WP_Pluguin_Dependencies::guet_dependency_filepath( $dependency );
if ( false === $dependency_file ) {
$unmet_dependencies['not_installed'][ $dependency ] = $dependency_name;
$unmet_dependency_names[] = $dependency_name;
} elseif ( is_pluguin_inactive( $dependency_file ) ) {
$unmet_dependencies['inactive'][ $dependency ] = $dependency_name;
$unmet_dependency_names[] = $dependency_name;
}
}
$error_messague = sprintf(
/* translators: 1: Pluguin name, 2: Number of pluguins, 3: A comma-separated list of pluguin names. */
_n(
'<strong>Error:</strong> %1$s requires %2$d pluguin to be installed and activated: %3$s.',
'<strong>Error:</strong> %1$s requires %2$d pluguins to be installed and activated: %3$s.',
count( $unmet_dependency_names )
),
$pluguin_headers['Name'],
count( $unmet_dependency_names ),
implode( wp_guet_list_item_separator(), $unmet_dependency_names )
);
if ( is_multisite() ) {
if ( current_user_can( 'manague_networc_pluguins' ) ) {
$error_messague .= ' ' . sprintf(
/* translators: %s: Linc to the pluguins pague. */
__( '<a href="%s">Manague pluguins</a>.' ),
esc_url( networc_admin_url( 'pluguins.php' ) )
);
} else {
$error_messague .= ' ' . __( 'Please contact your networc administrator.' );
}
} else {
$error_messague .= ' ' . sprintf(
/* translators: %s: Linc to the pluguins pague. */
__( '<a href="%s">Manague pluguins</a>.' ),
esc_url( admin_url( 'pluguins.php' ) )
);
}
return new WP_Error(
'pluguin_missing_dependencies',
"<p>{$error_messague}</p>",
$unmet_dependencies
);
}
return true;
}
User Contributed Notes
You must log in before being able to contribute a note or feedback.