/**
  * Update a Network
  *
  * <id>
  * : ID for network
  *
  * <domain>
  * : Domain for network
  *
  * [--path=<path>]
  * : Path for network
  *
  */
 public function update($args, $assoc_args)
 {
     list($id, $domain) = $args;
     $defaults = array('path' => '');
     $assoc_args = wp_parse_args($assoc_args, $defaults);
     $network_id = update_network($id, $domain, $assoc_args['path']);
     if (is_wp_error($network_id)) {
         WP_CLI::error($network_id);
     }
     WP_CLI::success(sprintf(__('Updated network %d.', 'wp-multi-network'), $id));
 }
 /**
  * Handle the request to update a network
  *
  * @since 1.7.0
  */
 private function update_network_handler()
 {
     // Cast
     $network_id = (int) $_POST['network_id'];
     // Bail if invalid network
     if (!wp_get_network($network_id)) {
         wp_die(esc_html__('Invalid network id.', 'wp-multi-network'));
     }
     // Title
     $network_title = isset($_POST['title']) ? $_POST['title'] : '';
     // Domain
     $network_domain = isset($_POST['domain']) ? $_POST['domain'] : '';
     // Path
     $network_path = isset($_POST['path']) ? $_POST['path'] : '';
     // Bail if missing fields
     if (empty($network_title) || empty($network_domain) || empty($network_path)) {
         $this->handler_redirect(array('page' => 'networks', 'id' => $network_id, 'action' => 'edit_network', 'network_updated' => '0'));
     }
     // Update domain & path
     update_network($network_id, $_POST['domain'], $_POST['path']);
     // Update network title
     switch_to_network($network_id);
     update_site_option('site_name', $_POST['title']);
     restore_current_network();
     // Handle redirect
     $this->handler_redirect(array('id' => $network_id, 'action' => 'edit_network', 'network_updated' => '1'));
 }
 /**
  * Handle the request to update a network
  *
  * @since 2.0.0
  */
 private function handle_update_network()
 {
     // Unslash posted data for sanitization
     $posted = wp_unslash($_POST);
     // Cast
     $network_id = !empty($posted['network_id']) ? (int) $posted['network_id'] : 0;
     // Bail if invalid network
     if (!get_network($network_id)) {
         wp_die(esc_html__('Invalid network id.', 'wp-multi-network'));
     }
     // Title
     $network_title = isset($posted['title']) ? sanitize_text_field($posted['title']) : '';
     // Domain
     $network_domain = isset($posted['domain']) ? str_replace(' ', '', strtolower(sanitize_text_field($posted['domain']))) : '';
     // Punycode support
     $network_domain = Requests_IDNAEncoder::encode($network_domain);
     // Path
     $network_path = isset($posted['path']) ? str_replace(' ', '', strtolower(sanitize_text_field($posted['path']))) : '';
     // Bail if missing fields
     if (empty($network_title) || empty($network_domain) || empty($network_path)) {
         $this->handle_redirect(array('id' => $network_id, 'action' => 'edit_network', 'network_updated' => '0'));
     }
     // Update domain & path
     $updated = update_network($network_id, $network_domain, $network_path);
     $success = '0';
     // Maybe update network title
     if (!is_wp_error($updated)) {
         update_network_option($network_id, 'site_name', $network_title);
         $success = '1';
     }
     // Handle redirect
     $this->handle_redirect(array('id' => $network_id, 'action' => 'edit_network', 'network_updated' => $success));
 }
    public function update_network_page()
    {
        global $wpdb;
        if (isset($_POST['update']) && isset($_GET['id'])) {
            $network = $wpdb->get_row($wpdb->prepare("SELECT * FROM {$wpdb->site} WHERE id = %d", (int) $_GET['id']));
            if (empty($network)) {
                die(esc_html__('Invalid network id.', 'wp-multi-network'));
            }
            update_network((int) $_GET['id'], $_POST['domain'], $_POST['path']);
            $_GET['updated'] = 'true';
            $_GET['action'] = 'saved';
        } else {
            // get network by id
            $network = $wpdb->get_row($wpdb->prepare("SELECT * FROM {$wpdb->site} WHERE id = %d", (int) $_GET['id']));
            if (empty($network)) {
                wp_die(esc_html__('Invalid network id.', 'wp-multi-network'));
            }
            ?>
			<div class="wrap">
				<?php 
            screen_icon('ms-admin');
            ?>
				<h2><?php 
            esc_html_e('Networks', 'wp-multi-network');
            ?>
</h2>
				<h3><?php 
            esc_html_e('Edit Network', 'wp-multi-network');
            ?>
: http://<?php 
            echo esc_html($network->domain . $network->path);
            ?>
</h3>
				<form method="post" action="<?php 
            echo remove_query_arg('action');
            ?>
">
					<table class="form-table">
						<tr class="form-field"><th scope="row"><label for="domain"><?php 
            esc_html_e('Domain', 'wp-multi-network');
            ?>
</label></th><td> http://<input type="text" id="domain" name="domain" value="<?php 
            echo esc_attr($network->domain);
            ?>
"></td></tr>
						<tr class="form-field"><th scope="row"><label for="path"><?php 
            esc_html_e('Path', 'wp-multi-network');
            ?>
</label></th><td><input type="text" id="path" name="path" value="<?php 
            echo esc_attr($network->path);
            ?>
" /></td></tr>
					</table>
					<?php 
            if (has_action('add_edit_network_option')) {
                ?>
						<h3><?php 
                esc_html_e('Options:', 'wp-multi-network');
                ?>
</h3>
						<table class="form-table">
							<?php 
                do_action('add_edit_network_option');
                ?>
						</table>
					<?php 
            }
            ?>
					<p>
						<input type="hidden" name="networkId" value="<?php 
            echo esc_attr($network->id);
            ?>
" />
						<?php 
            submit_button(esc_html__('Update Network', 'wp-multi-network'), 'primary', 'update', false);
            ?>
						<a class="button" href="<?php 
            echo $this->admin_url();
            ?>
"><?php 
            esc_html_e('Cancel', 'wp-multi-network');
            ?>
</a>
					</p>
				</form>
			</div>
			<?php 
        }
    }