/** * Check if MultilingualPress was installed correctly. * * @param string $name * @param string $base_name * @param string $wp_version * * @return string */ public function pre_install_check($name, $base_name, $wp_version) { if (!$this->is_plugin_page()) { return self::WRONG_PAGE_FOR_CHECK; } $php_version = phpversion(); $check = new Mlp_Requirements_Check(new Mlp_Install_Requirements(), Mlp_Semantic_Version_Number_Factory::create($php_version), Mlp_Semantic_Version_Number_Factory::create($wp_version), $this->plugin_file); if ($check->is_compliant()) { return self::INSTALLATION_CONTEXT_OK; } $errors = $check->get_error_messages(); $deactivate = new Mlp_Plugin_Deactivation($errors, $name, $base_name); add_action('admin_notices', array($deactivate, 'deactivate'), 0); add_action('network_admin_notices', array($deactivate, 'deactivate'), 0); return self::PLUGIN_DEACTIVATED; }
/** * Check current state of the WordPress installation. * * @param string $pagenow * @param Inpsyde_Property_List_Interface $data * @param string $wp_version * @param wpdb $wpdb * * @return bool */ function mlp_pre_run_test($pagenow, Inpsyde_Property_List_Interface $data, $wp_version, wpdb $wpdb) { $self_check = new Mlp_Self_Check(__FILE__, $pagenow); $requirements_check = $self_check->pre_install_check($data->get('plugin_name'), $data->get('plugin_base_name'), $wp_version); if (Mlp_Self_Check::PLUGIN_DEACTIVATED === $requirements_check) { return FALSE; } $data->set('site_relations', new Mlp_Site_Relations($wpdb, 'mlp_site_relations')); if (Mlp_Self_Check::INSTALLATION_CONTEXT_OK === $requirements_check) { $deactivator = new Mlp_Network_Plugin_Deactivation(); $last_version_option = get_site_option('mlp_version'); $last_version = Mlp_Semantic_Version_Number_Factory::create($last_version_option); $current_version = Mlp_Semantic_Version_Number_Factory::create($data->get('version')); $upgrade_check = $self_check->is_current_version($current_version, $last_version); $updater = new Mlp_Update_Plugin_Data($data, $wpdb, $current_version, $last_version); if (Mlp_Self_Check::NEEDS_INSTALLATION === $upgrade_check) { $updater->install_plugin(); } if (Mlp_Self_Check::NEEDS_UPGRADE === $upgrade_check) { $updater->update($deactivator); } } return TRUE; }
/** * Return the currently required WordPress version. * * @return Mlp_Semantic_Version_Number */ public function get_min_wp_version() { return Mlp_Semantic_Version_Number_Factory::create('4.0.0'); }