init_hooks(); } /** * Gets the instance of the class */ public static function init() { if ( null === self::$instance ) { self::$instance = new self(); } return self::$instance; } /** * Hook methods to WordPress action and filter * @return void */ private function init_hooks() { // Load plugin.php for frontend usage if ( ! function_exists( 'is_plugin_active' ) || ! function_exists( 'get_plugins' ) ) { include_once( ABSPATH . 'wp-admin/includes/plugin.php' ); } // Loop plugin list and load active plugin compatibility file foreach ( array_keys( get_plugins() ) as $plugin ) { // Load plugin compat file if plugin is active if ( is_plugin_active( $plugin ) ) { $plugin_compat_name = dirname( $plugin ); $plugin_compat_url = apply_filters( "et_builder_plugin_compat_path_{$plugin_compat_name}", ET_BUILDER_DIR . "plugin-compat/{$plugin_compat_name}.php", $plugin_compat_name ); // Load plugin compat file (if compat file found) if ( file_exists( $plugin_compat_url ) ) { require_once $plugin_compat_url; } } } } } ET_Builder_Plugin_Compat_Loader::init();