function network_html() { // vars $plugin_version = acf_get_setting('version'); // loop through sites and find updates $sites = acf_get_sites(); if ($sites) { foreach ($sites as $i => $site) { // switch blog switch_to_blog($site['blog_id']); // extra info $site['name'] = get_bloginfo('name'); $site['url'] = home_url(); // get site updates $site['updates'] = acf_get_db_updates(); // get site version $site['acf_version'] = get_option('acf_version'); // no value equals new instal if (!$site['acf_version']) { $site['acf_version'] = $plugin_version; } // update $sites[$i] = $site; // restore restore_current_blog(); } } // view $view = array('sites' => $sites, 'plugin_version' => $plugin_version); // load view acf_get_view('install-network', $view); }
function ajax_db_update() { // options $options = wp_parse_args($_POST, array('nonce' => '', 'blog_id' => '')); // validate if (!wp_verify_nonce($options['nonce'], 'acf_db_update')) { wp_send_json_error(array('message' => __('Error validating request', 'acf'))); } // switch blog if ($options['blog_id']) { switch_to_blog($options['blog_id']); } // vars $updates = acf_get_db_updates(); $message = ''; // bail early if no updates if (empty($updates)) { wp_send_json_error(array('message' => __('No updates available.', 'acf'))); } // install updates foreach ($updates as $version => $callback) { $message .= $this->run_update($callback); } // updates complete acf_update_db_version(); // return wp_send_json_success(array('message' => $message)); }