You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

57 lines
1.2 KiB
PHP

<?php
/**
* Helper functions to perform various plugins and addons related actions.
*
* @since 1.8.2.2
*/
use WPForms\Requirements\Requirements;
/**
* Check if addon met requirements.
*
* @since 1.8.2.2
*
* @param array $requirements Addon requirements.
*
* @return bool
*/
function wpforms_requirements( array $requirements ): bool {
// phpcs:ignore WPForms.Formatting.EmptyLineBeforeReturn.RemoveEmptyLineBeforeReturnStatement
return Requirements::get_instance()->validate( $requirements );
}
/**
* Check addon requirements and activate addon or plugin.
*
* @since 1.8.4
*
* @param string $plugin Path to the plugin file relative to the plugins' directory.
*
* @return null|WP_Error Null on success, WP_Error on invalid file.
*/
function wpforms_activate_plugin( string $plugin ) {
$activate = activate_plugin( $plugin );
if ( is_wp_error( $activate ) ) {
return $activate;
}
$requirements = Requirements::get_instance();
if ( ! $requirements->deactivate_not_valid_addon( $plugin ) ) {
return null;
}
// Addon was deactivated due to requirements issues.
return new WP_Error(
'wpforms_addon_incompatible',
implode(
"\n",
$requirements->get_notices()
)
);
}