isInstalled()) { $a2Plugin->install(); } else { // Perform any version-upgrade activities prior to activation (e.g. database changes) $a2Plugin->upgrade(); } // Add callbacks to hooks $a2Plugin->addActionsAndFilters(); // Register the Plugin Activation Hook register_activation_hook(__FILE__, [&$a2Plugin, 'activate']); // Register the Plugin Deactivation Hook register_deactivation_hook(__FILE__, [&$a2Plugin, 'deactivate']); } public function A2_Optimized_noticePhpVersionWrong() { echo '
' . __('Error: plugin "A2 Optimized" requires a newer version of PHP to be running.', 'a2-optimized') . '
' . __('Minimal version of PHP required: ', 'a2-optimized') . '' . A2OPT_MIN_PHP . '' . '
' . __('Your site is running PHP version: ', 'a2-optimized') . '' . phpversion() . '' . '
' . __(' To learn how to change the version of php running on your site') . ' ' . __('read this Knowledge Base Article') . '.' . '
'; } // add plugin upgrade notification public static function showUpgradeNotification($currentPluginMetadata) { // Notice Transient $upgrade_notices = get_transient('a2_opt_ug_notes'); if (!$upgrade_notices) { $response = wp_remote_get( 'https://wp-plugins.a2hosting.com/wp-json/wp/v2/update_notice?notice_plugin=2' ); if ( is_array( $response ) ) { $upgrade_notices = []; $body = json_decode($response['body']); // use the content foreach ($body as $item) { $upgrade_notices[$item->title->rendered] = 'Version ' . $item->title->rendered . ': ' . strip_tags($item->content->rendered); } set_transient('a2_opt_ug_notes', $upgrade_notices, 3600 * 12); } else { return; } } foreach ($upgrade_notices as $ver => $notice) { if (version_compare($currentPluginMetadata['Version'], $ver) < 0) { echo '

Important Upgrade Notice:
'; echo esc_html($notice), '

'; break; } } } // Remove WooCommerce AJAX calls from homepage if user has selected public static function dequeue_woocommerce_cart_fragments() { if (is_front_page() && get_option('a2_wc_cart_fragments')) { wp_dequeue_script('wc-cart-fragments'); } } } if (get_option('a2_cache_enabled') == 1) { if(is_plugin_active('litespeed-cache/litespeed-cache.php')){ A2_Optimized_Cache_Disk::clean(); update_option('a2_cache_enabled', 0); } else { add_action( 'plugins_loaded', [ 'A2_Optimized_Cache', 'init' ] ); } } register_deactivation_hook( __FILE__, [ 'A2_Optimized_Cache', 'on_deactivation' ] ); register_uninstall_hook( __FILE__, [ 'A2_Optimized_Cache', 'on_uninstall' ] ); $a2opt_class = new A2_Optimized(); add_action('in_plugin_update_message-a2-optimized-wp/a2-optimized.php', [ 'A2_Optimized','showUpgradeNotification'], 10, 2); add_action( 'wp_enqueue_scripts', ['A2_Optimized', 'dequeue_woocommerce_cart_fragments'], 11, 2); // load WP-CLI command if ( defined( 'WP_CLI' ) && WP_CLI && class_exists( 'WP_CLI' ) ) { require_once A2OPT_DIR . '/A2_Optimized_CLI.php'; }