| Server IP : 85.155.190.233 / Your IP : 216.73.216.103 Web Server : nginx/1.24.0 System : Linux antigravity-cli 6.8.0-31-generic #31-Ubuntu SMP PREEMPT_DYNAMIC Sat Apr 20 00:40:06 UTC 2024 x86_64 User : wp-moonbloom ( 1001) PHP Version : 8.3.6 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/moonbloom/wp-content/plugins/webp-converter-for-media/src/Plugin/ |
Upload File : |
<?php
namespace WebpConverter\Plugin;
use WebpConverter\HookableInterface;
use WebpConverter\Loader\LoaderAbstract;
use WebpConverter\Plugin\Activation\OutputDirectoryGenerator;
use WebpConverter\Plugin\Activation\PluginSettingsManager;
use WebpConverter\PluginInfo;
use WebpConverter\Service\OptionsAccessManager;
/**
* Runs actions after plugin activation.
*/
class ActivationHandler implements HookableInterface {
const LATEST_VERSION_OPTION = 'webpc_latest_version';
private PluginInfo $plugin_info;
public function __construct( PluginInfo $plugin_info ) {
$this->plugin_info = $plugin_info;
}
/**
* {@inheritdoc}
*/
public function init_hooks(): void {
register_activation_hook( $this->plugin_info->get_plugin_file(), [ $this, 'load_activation_actions' ] );
add_action( 'admin_init', [ $this, 'load_activation_actions_after_upgrade' ] );
}
/**
* Initializes actions when plugin is activated.
*
* @internal
*/
public function load_activation_actions(): void {
( new OutputDirectoryGenerator() )->create_directory_for_uploads_webp();
$default_settings = new PluginSettingsManager( $this->plugin_info );
$default_settings->add_default_notices_values();
$default_settings->add_default_stats_values();
do_action( LoaderAbstract::ACTION_NAME, true );
}
/**
* @internal
*/
public function load_activation_actions_after_upgrade(): void {
$saved_plugin_version = OptionsAccessManager::get_option( self::LATEST_VERSION_OPTION ) ?: '0.0.0';
if ( $this->plugin_info->get_plugin_version() === $saved_plugin_version ) {
return;
}
do_action( LoaderAbstract::ACTION_NAME, true );
OptionsAccessManager::update_option( self::LATEST_VERSION_OPTION, $this->plugin_info->get_plugin_version() );
}
}