includes(); $this->hooks(); } private function includes(): void { require_once SG7G_DIR . 'includes/class-sg7g-settings.php'; require_once SG7G_DIR . 'includes/class-sg7g-post-type.php'; require_once SG7G_DIR . 'includes/class-sg7g-meta-boxes.php'; require_once SG7G_DIR . 'includes/class-sg7g-default-cover.php'; require_once SG7G_DIR . 'includes/class-sg7g-featured.php'; require_once SG7G_DIR . 'includes/class-sg7g-sharing.php'; require_once SG7G_DIR . 'includes/class-sg7g-related.php'; require_once SG7G_DIR . 'includes/class-sg7g-admin.php'; require_once SG7G_DIR . 'includes/class-sg7g-renderer.php'; require_once SG7G_DIR . 'includes/class-sg7g-archive-ui.php'; require_once SG7G_DIR . 'includes/class-sg7g-search.php'; require_once SG7G_DIR . 'includes/class-sg7g-query.php'; require_once SG7G_DIR . 'includes/class-sg7g-template-loader.php'; require_once SG7G_DIR . 'includes/class-sg7g-assets.php'; require_once SG7G_DIR . 'includes/class-sg7g-statistics.php'; require_once SG7G_DIR . 'includes/class-sg7g-views.php'; require_once SG7G_DIR . 'includes/class-sg7g-likes.php'; require_once SG7G_DIR . 'includes/class-sg7g-seo.php'; require_once SG7G_DIR . 'includes/class-sg7g-upgrade.php'; require_once SG7G_DIR . 'includes/class-sg7g-transfer.php'; } private function hooks(): void { add_action( 'init', array( __CLASS__, 'load_textdomain' ), 1 ); add_action( 'init', array( 'SG7G_Post_Type', 'register' ) ); SG7G_Settings::init(); SG7G_Meta_Boxes::init(); SG7G_Default_Cover::init(); SG7G_Featured::init(); SG7G_Sharing::init(); SG7G_Admin::init(); SG7G_Search::init(); SG7G_Query::init(); SG7G_Template_Loader::init(); SG7G_Assets::init(); SG7G_Statistics::init(); SG7G_Views::init(); SG7G_Likes::init(); SG7G_SEO::init(); SG7G_Upgrade::init(); SG7G_Transfer::init(); if ( is_multisite() ) { add_action( 'wp_initialize_site', array( __CLASS__, 'activate_new_site' ), 100, 2 ); } } public static function load_textdomain(): void { load_plugin_textdomain( '7sgaleri', false, dirname( plugin_basename( SG7G_FILE ) ) . '/languages' ); } public static function activate( bool $network_wide = false ): void { if ( is_multisite() && $network_wide ) { $site_ids = get_sites( array( 'fields' => 'ids', 'number' => 0 ) ); foreach ( $site_ids as $site_id ) { switch_to_blog( (int) $site_id ); self::activate_site(); restore_current_blog(); } return; } self::activate_site(); } public static function deactivate( bool $network_wide = false ): void { if ( is_multisite() && $network_wide ) { $site_ids = get_sites( array( 'fields' => 'ids', 'number' => 0 ) ); foreach ( $site_ids as $site_id ) { switch_to_blog( (int) $site_id ); self::deactivate_site(); restore_current_blog(); } return; } self::deactivate_site(); } public static function activate_new_site( WP_Site $new_site, array $args = array() ): void { unset( $args ); require_once ABSPATH . 'wp-admin/includes/plugin.php'; if ( ! is_plugin_active_for_network( plugin_basename( SG7G_FILE ) ) ) { return; } switch_to_blog( (int) $new_site->blog_id ); self::activate_site(); restore_current_blog(); } private static function deactivate_site(): void { if ( post_type_exists( 'sg7g_media' ) ) { unregister_post_type( 'sg7g_media' ); } if ( taxonomy_exists( 'sg7g_category' ) ) { unregister_taxonomy( 'sg7g_category' ); } if ( taxonomy_exists( 'sg7g_tag' ) ) { unregister_taxonomy( 'sg7g_tag' ); } flush_rewrite_rules( false ); } private static function activate_site(): void { require_once SG7G_DIR . 'includes/class-sg7g-settings.php'; require_once SG7G_DIR . 'includes/class-sg7g-post-type.php'; require_once SG7G_DIR . 'includes/class-sg7g-statistics.php'; require_once SG7G_DIR . 'includes/class-sg7g-likes.php'; SG7G_Settings::install_defaults(); SG7G_Post_Type::register(); SG7G_Statistics::install(); SG7G_Likes::install(); update_option( 'sg7g_plugin_version', SG7G_VERSION, false ); flush_rewrite_rules( false ); } }