'4.40.0', 'filename' => __FILE__, 'path' => dirname(__FILE__), 'autoloader' => dirname(__FILE__) . '/vendor/autoload.php', 'initializer' => dirname(__FILE__) . '/mailpoet_initializer.php', ]; const MAILPOET_MINIMUM_REQUIRED_WP_VERSION = '6.3'; const MAILPOET_MINIMUM_REQUIRED_WOOCOMMERCE_VERSION = '7.9';// Older versions lead to fatal errors function mailpoet_deactivate_plugin() { deactivate_plugins(plugin_basename(__FILE__)); if (!empty($_GET['activate'])) { unset($_GET['activate']); } } // Check for minimum supported WP version if (version_compare(get_bloginfo('version'), MAILPOET_MINIMUM_REQUIRED_WP_VERSION, '<')) { add_action('admin_notices', 'mailpoet_wp_version_notice'); // deactivate the plugin add_action('admin_init', 'mailpoet_deactivate_plugin'); return; } // Check for minimum supported PHP version if (version_compare(phpversion(), '7.4.0', '<')) { add_action('admin_notices', 'mailpoet_php_version_notice'); // deactivate the plugin add_action('admin_init', 'mailpoet_deactivate_plugin'); return; } // Check for minimum supported WooCommerce version if (!function_exists('is_plugin_active')) { require_once ABSPATH . 'wp-admin/includes/plugin.php'; } if (is_plugin_active('woocommerce/woocommerce.php')) { $woocommerceVersion = get_plugin_data(WP_PLUGIN_DIR . '/woocommerce/woocommerce.php')['Version']; if (version_compare($woocommerceVersion, MAILPOET_MINIMUM_REQUIRED_WOOCOMMERCE_VERSION, '<')) { add_action('admin_notices', 'mailpoet_woocommerce_version_notice'); // deactivate the plugin add_action('admin_init', 'mailpoet_deactivate_plugin'); return; } } // Display WP version error notice function mailpoet_wp_version_notice() { $notice = str_replace( '[link]', '', sprintf( // translators: %s is the number of minimum WordPress version that MailPoet requires __('MailPoet plugin requires WordPress version %s or newer. Please read our [link]instructions[/link] on how to resolve this issue.', 'mailpoet'), MAILPOET_MINIMUM_REQUIRED_WP_VERSION ) ); $notice = str_replace('[/link]', '', $notice); printf( '

%1$s

', wp_kses( $notice, [ 'a' => [ 'href' => true, 'target' => true, ], ] ) ); } // Display WooCommerce version error notice function mailpoet_woocommerce_version_notice() { $notice = str_replace( '[link]', '', sprintf( // translators: %s is the number of minimum WooCommerce version that MailPoet requires __('MailPoet plugin requires WooCommerce version %s or newer. Please update your WooCommerce plugin version, or read our [link]instructions[/link] for additional options on how to resolve this issue.', 'mailpoet'), MAILPOET_MINIMUM_REQUIRED_WOOCOMMERCE_VERSION ) ); $notice = str_replace('[/link]', '', $notice); printf( '

%1$s

', wp_kses( $notice, [ 'a' => [ 'href' => true, 'target' => true, ], ] ) ); } // Display PHP version error notice function mailpoet_php_version_notice() { $noticeP1 = __('MailPoet requires PHP version 7.4 or newer (8.1 recommended). You are running version [version].', 'mailpoet'); $noticeP1 = str_replace('[version]', phpversion(), $noticeP1); $noticeP2 = __('Please read our [link]instructions[/link] on how to upgrade your site.', 'mailpoet'); $noticeP2 = str_replace( '[link]', '', $noticeP2 ); $noticeP2 = str_replace('[/link]', '', $noticeP2); $noticeP3 = __('If you can’t upgrade the PHP version, [link]install this version[/link] of MailPoet. Remember to not update MailPoet ever again!', 'mailpoet'); $noticeP3 = str_replace( '[link]', '', $noticeP3 ); $noticeP3 = str_replace('[/link]', '', $noticeP3); $allowedTags = [ 'a' => [ 'href' => true, 'target' => true, ], ]; printf( '

%s

%s

%s

', esc_html($noticeP1), wp_kses( $noticeP2, $allowedTags ), wp_kses( $noticeP3, $allowedTags ) ); } if (isset($_SERVER['SERVER_SOFTWARE']) && strpos(strtolower(sanitize_text_field(wp_unslash($_SERVER['SERVER_SOFTWARE']))), 'microsoft-iis') !== false) { add_action('admin_notices', 'mailpoet_microsoft_iis_notice'); // deactivate the plugin add_action('admin_init', 'mailpoet_deactivate_plugin'); return; } // Display IIS server error notice function mailpoet_microsoft_iis_notice() { $notice = __("MailPoet plugin cannot run under Microsoft's Internet Information Services (IIS) web server. We recommend that you use a web server powered by Apache or NGINX.", 'mailpoet'); printf('

%1$s

', esc_html($notice)); } // Check for presence of core dependencies if (!file_exists($mailpoetPlugin['autoloader']) || !file_exists($mailpoetPlugin['initializer'])) { add_action('admin_notices', 'mailpoet_core_dependency_notice'); // deactivate the plugin add_action('admin_init', 'mailpoet_deactivate_plugin'); return; } // Display missing core dependencies error notice function mailpoet_core_dependency_notice() { $notice = __('MailPoet cannot start because it is missing core files. Please reinstall the plugin.', 'mailpoet'); printf('

%1$s

', esc_html($notice)); } // Initialize plugin require_once($mailpoetPlugin['initializer']);