| Server IP : 37.27.51.148 / Your IP : 37.27.51.148 Web Server : nginx/1.14.1 System : Linux libra 4.18.0-553.51.1.el8_10.x86_64 #1 SMP Wed Apr 30 20:24:04 UTC 2025 x86_64 User : root ( 0) PHP Version : 8.3.31 Disable Function : exec,passthru,shell_exec,system,proc_open,popen,parse_ini_file,show_source MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/html/wp-content/plugins/wordpress-seo/src/plans/infrastructure/add-ons/ |
Upload File : |
<?php
// phpcs:disable Yoast.NamingConventions.NamespaceName.TooLong -- Needed in the folder structure.
namespace Yoast\WP\SEO\Plans\Infrastructure\Add_Ons;
use InvalidArgumentException;
use WPSEO_Addon_Manager;
use Yoast\WP\SEO\Plans\Domain\Add_Ons\Add_On_Interface;
/**
* Represents a managed add-on.
* Uses the WPSEO_Addon_Manager to check if the add-on is installed and activated, and if it has a valid license.
*/
abstract class Managed_Add_On implements Add_On_Interface {
/**
* The slug of the add-on.
*
* @var string
*/
protected const SLUG = '';
/**
* Holds the WPSEO_Addon_Manager.
*
* @var WPSEO_Addon_Manager
*/
private $addon_manager;
/**
* Constructs the instance.
*
* @param WPSEO_Addon_Manager $addon_manager The WPSEO_Addon_Manager.
*
* @throws InvalidArgumentException If the slug is not set.
*/
public function __construct( WPSEO_Addon_Manager $addon_manager ) {
if ( static::SLUG === '' ) {
throw new InvalidArgumentException( 'The add-on slug must be set.' );
}
$this->addon_manager = $addon_manager;
}
/**
* Returns whether the add-on is installed and activated.
*
* @return bool
*/
public function is_active(): bool {
return $this->addon_manager->is_installed( static::SLUG );
}
/**
* Returns whether the add-on has an valid license.
*
* @return bool
*/
public function has_license(): bool {
return $this->addon_manager->has_valid_subscription( static::SLUG );
}
}