/** * Display custom version update notices to the top of our plugin page * * @param string $basename */ function version_update_notice($basename) { // We don't want to show both the "Update Required" and "Update Available" messages at the same time if ($this->is_addon($basename) && $this->is_addon_outdated($basename)) { return; } $slug = current(explode('/', $basename)); // To reduce UI clutter we hide addon update notices if the core plugin has updates available if ($this->is_addon($basename) && $this->core_update_available()) { // Core update is available, don't show update notices for addons until core is updated return; } $licence = $this->licences->get_licence_key(); $licence_response = $this->licences->is_licence_expired(); $licence_problem = isset($licence_response['errors']); $update_url = wp_nonce_url($this->licences->admin_url('update.php?action=upgrade-plugin&plugin=' . urlencode($basename)), 'upgrade-plugin_' . $basename); $installed_version = $this->get_installed_version($slug); $latest_version = $this->get_latest_version($slug, $installed_version); $plugin_name = isset($this->licences->addons[$basename]) ? $this->licences->addons[$basename]['name'] : $this->licences->plugin->name; if (version_compare($installed_version, $latest_version, '<')) { ?> <div style="display: block;" class="updated warning inline-message"> <strong><?php _ex('Update Available', 'A new version of the plugin is available', 'as3cf-pro'); ?> </strong> — <?php $message = sprintf(__('%1$s %2$s is now available. You currently have %3$s installed.', 'as3cf-pro'), $plugin_name, $latest_version, $installed_version); if (!empty($licence) && !$licence_problem) { $message .= ' ' . sprintf('<a href="%1$s">%2$s</a>', $update_url, _x('Update Now', 'Download and install a new version of the plugin', 'as3cf-pro')); } echo $message; ?> </div> <?php } }