File: /var/www/shoetique/wp-content/plugins/woo-preview-emails/includes/Bootstrap.php
<?php
namespace Codemanas\WooPreviewEmails;
class Bootstrap {
public static ?Bootstrap $instance = null;
private static $active_plugins;
public static function get_instance(): ?Bootstrap {
return is_null( self::$instance ) ? ( self::$instance = new self() ) : self::$instance;
}
public function __construct() {
$this->load_dependencies();
add_action( 'plugins_loaded', [ $this, 'init_plugin' ] );
add_action( 'init', [ $this, 'load_text_domain' ] );
}
public static function init() {
self::$active_plugins = (array) get_option( 'active_plugins', array() );
if ( is_multisite() )
self::$active_plugins = array_merge( self::$active_plugins, get_site_option( 'active_sitewide_plugins', array() ) );
}
/**
* @return bool
*/
public static function woocommerce_active_check(): bool {
if ( ! self::$active_plugins ) self::init();
return in_array( 'woocommerce/woocommerce.php', self::$active_plugins ) || array_key_exists( 'woocommerce/woocommerce.php', self::$active_plugins );
}
public function load_text_domain() {
load_plugin_textdomain( 'woo-preview-emails', false, plugin_basename( WOO_PREVIEW_EMAILS_DIR ) . '/languages/' );
}
public function init_plugin() {
if( self::woocommerce_active_check() ){
Main::get_instance();
AjaxHandler::get_instance();
}
}
private function load_dependencies() {
require_once WOO_PREVIEW_EMAILS_DIR . '/vendor/autoload.php';
}
}
Bootstrap::get_instance();