HEX
Server: Apache/2.4.6 (CentOS) mpm-itk/2.4.7-04 mod_fcgid/2.3.9 PHP/5.4.16
System: Linux dvm.vladweb.ru 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
User: region-gk.ru (1016)
PHP: 7.3.33
Disabled: NONE
Upload Files
File: /home/region-gk.ru/data/www/region-gk.ru/wp-content/plugins/premmerce/src/PremmercePlugin.php
<?php

namespace Premmerce\Premmerce;

use  Premmerce\Premmerce\Admin\Settings ;
use  Premmerce\Premmerce\Admin\Admin ;
use  Premmerce\Premmerce\Api\WizardApi ;
use  Premmerce\SDK\V2\FileManager\FileManager ;
use  Premmerce\SDK\V2\Plugin\PluginInterface ;
/**
 * Class PremiumPlugin
 *
 * @package Premmerce\Premium
 */
class PremmercePlugin implements  PluginInterface 
{
    const  SLUG = 'premmerce' ;
    const  VERSION_OPTION = 'premmerce_version' ;
    const  IS_PREMIUM = true ;
    /**
     * @var FileManager
     */
    private  $fileManager ;
    /**
     * @var string
     */
    private  $version = '1.3.14' ;
    /**
     * PluginManager constructor.
     *
     * @param $mainFile
     *
     */
    public function __construct( $mainFile )
    {
        $this->fileManager = new FileManager( $mainFile, 'premmerce' );
        $this->registerThemeDirectory();
        add_action( 'init', [ $this, 'loadTextDomain' ] );
    }
    
    /**
     * Run plugin part
     */
    public function run()
    {
        $container = new Container( $this->fileManager );
        if ( is_admin() ) {
            new Admin( $container );
        }
        ( new Settings() )->addActions();
        $container->getAddonsManager()->init();
    }
    
    public function registerThemeDirectory()
    {
        $theme = wp_get_theme( 'saleszone-premium' );
        if ( $theme->exists() ) {
            register_theme_directory( $theme->get_template_directory() . '/child-themes' );
        }
    }
    
    /**
     * Load plugin translations
     */
    public function loadTextDomain()
    {
        $name = $this->fileManager->getPluginName();
        load_plugin_textdomain( 'premmerce', false, $name . '/languages/' );
    }
    
    /**
     * Fired when the plugin is activated
     */
    public function activate()
    {
        update_option( self::VERSION_OPTION, $this->version, true );
        update_option( Settings::OPTIONS_KEY, [
            'transliterate_slugs' => 'on',
        ], true );
    }
    
    /**
     * Fired when the plugin is deactivated
     */
    public function deactivate()
    {
    }
    
    /**
     * Fired during plugin uninstall
     */
    public static function uninstall()
    {
        delete_option( self::VERSION_OPTION );
        delete_option( WizardApi::KEY_POSITIONS );
        delete_option( WizardApi::KEY_STATES );
        delete_option( WizardApi::KEY_SWITCHER_STATE );
    }

}