/**
  * Add a Network
  *
  * <domain>
  * : Domain for network
  *
  * <path>
  * : Path for network
  *
  * [--site_name=<site_name>]
  * : Name of new network
  *
  * [--clone_network=<clone_network>]
  * : ID of network to clone
  *
  * [--options_to_clone=<options_to_clone>]
  * : Options to clone to new network
  *
  */
 public function create($args, $assoc_args)
 {
     list($domain, $path) = $args;
     $defaults = array('site_name' => false, 'clone_network' => false, 'options_to_clone' => false);
     $assoc_args = wp_parse_args($assoc_args, $defaults);
     $clone_network = $assoc_args['clone_network'];
     $options_to_clone = false;
     if (!empty($clone_network) && !network_exists($clone_network)) {
         WP_CLI::error(sprintf(__("Clone network %s doesn't exist.", 'wp-multi-network'), $clone_network));
         if (!empty($assoc_args['options_to_clone'])) {
             $options_to_clone = explode(",", $assoc_args['options_to_clone']);
         }
     }
     $network_id = add_network($domain, $path, $assoc_args['site_name'], $clone_network, $options_to_clone);
     if (is_wp_error($network_id)) {
         WP_CLI::error($network_id);
     }
     WP_CLI::success(sprintf(__('Created network %d.', 'wp-multi-network'), $network_id));
 }
 /**
  * Add a Network
  *
  * <domain>
  * : Domain for network
  *
  * <path>
  * : Path for network
  *
  * [--site_name=<site_name>]
  * : Name of new network
  *
  * [--clone_network=<clone_network>]
  * : ID of network to clone
  *
  * [--options_to_clone=<options_to_clone>]
  * : Options to clone to new network
  *
  */
 public function create($args, $assoc_args)
 {
     list($domain, $path) = $args;
     $assoc_args = wp_parse_args($assoc_args, array('site_name' => false, 'clone_network' => false, 'options_to_clone' => false));
     $clone_network = $assoc_args['clone_network'];
     $options_to_clone = false;
     if (!empty($clone_network) && !wp_get_network($clone_network)) {
         WP_CLI::error(sprintf(__("Clone network %s doesn't exist.", 'wp-multi-network'), $clone_network));
         if (!empty($assoc_args['options_to_clone'])) {
             $options_to_clone = explode(",", $assoc_args['options_to_clone']);
         }
     }
     // Add the network
     $network_id = add_network(array('domain' => $domain, 'path' => $path, 'site_name' => $assoc_args['site_name'], 'user_id' => get_current_user_id(), 'clone_network' => $clone_network, 'options_to_clone' => $options_to_clone));
     if (is_wp_error($network_id)) {
         WP_CLI::error($network_id);
     }
     WP_CLI::success(sprintf(__('Created network %d.', 'wp-multi-network'), $network_id));
 }
 /**
  * Handle the request to add a new network
  *
  * @since 1.7.0
  */
 private function add_network_handler()
 {
     // Options to copy
     if (isset($_POST['options_to_clone']) && is_array($_POST['options_to_clone'])) {
         $options_to_clone = array_keys($_POST['options_to_clone']);
     } else {
         $options_to_clone = array_keys(network_options_to_copy());
     }
     // Clone from
     $clone = isset($_POST['clone_network']) ? (int) $_POST['clone_network'] : get_current_site()->id;
     // Title
     $network_title = isset($_POST['title']) ? $_POST['title'] : '';
     // Domain
     $network_domain = isset($_POST['domain']) ? $_POST['domain'] : '';
     // Path
     $network_path = isset($_POST['path']) ? $_POST['path'] : '';
     // Path
     $site_name = !empty($_POST['new_site']) ? $_POST['new_site'] : $network_title;
     // Bail if missing fields
     if (empty($network_title) || empty($network_domain) || empty($network_path)) {
         $this->handler_redirect(array('page' => 'add-new-network', 'network_created' => '0'));
     }
     // Add the network
     $result = add_network(array('domain' => $network_domain, 'path' => $network_path, 'site_name' => $site_name, 'user_id' => get_current_user_id(), 'clone_network' => $clone, 'options_to_clone' => $options_to_clone));
     // Update title
     if (!empty($result) && !is_wp_error($result)) {
         switch_to_network($result);
         if (!empty($_POST['title'])) {
             update_site_option('site_name', $_POST['title']);
         }
         // Activate WPMN on this new network
         update_site_option('active_sitewide_plugins', array('wp-multi-network/wpmn-loader.php' => time()));
         restore_current_network();
         // Redirect args
         $r = array('network_created' => '1');
         // Failure
     } else {
         $r = array('network_created' => '0');
     }
     // Handle redirect
     $this->handler_redirect($r);
 }
 /**
  * Handle the request to add a new network
  *
  * @since 2.0.0
  */
 private function handle_add_network()
 {
     // Unslash posted data for sanitization
     $posted = wp_unslash($_POST);
     // Options to copy
     if (isset($posted['options_to_clone']) && is_array($posted['options_to_clone'])) {
         $options_to_clone = array_keys($posted['options_to_clone']);
     } else {
         $options_to_clone = array_keys(network_options_to_copy());
     }
     // Clone from
     $clone = isset($posted['clone_network']) ? (int) $posted['clone_network'] : get_current_site()->id;
     // Title
     $network_title = isset($posted['title']) ? strip_tags($posted['title']) : '';
     // Domain
     $network_domain = isset($posted['domain']) ? str_replace(' ', '', strtolower($posted['domain'])) : '';
     // Path
     $network_path = isset($posted['path']) ? str_replace(' ', '', strtolower($posted['path'])) : '';
     // Site name
     $site_name = !empty($posted['new_site']) ? strip_tags($posted['new_site']) : $network_title;
     // Bail if missing fields
     if (empty($network_title) || empty($network_domain) || empty($network_path)) {
         $this->handle_redirect(array('page' => 'add-new-network', 'network_created' => '0'));
     }
     // Add the network
     $result = add_network(array('domain' => $network_domain, 'path' => $network_path, 'site_name' => $site_name, 'user_id' => get_current_user_id(), 'clone_network' => $clone, 'options_to_clone' => $options_to_clone));
     // Update title
     if (!empty($result) && !is_wp_error($result)) {
         // Maybe update the site name
         if (!empty($posted['title'])) {
             update_network_option($result, 'site_name', $posted['title']);
         }
         // Activate WPMN on this new network
         update_network_option($result, 'active_sitewide_plugins', array('wp-multi-network/wpmn-loader.php' => time()));
         // Redirect args
         $r = array('network_created' => '1');
         // Failure
     } else {
         $r = array('network_created' => '0');
     }
     // Handle redirect
     $this->handle_redirect($r);
 }
 /**
  *
  */
 public function add_network_handler()
 {
     global $current_site;
     if (isset($_POST['add']) && isset($_POST['domain']) && isset($_POST['path'])) {
         /** grab custom options to clone if set */
         if (isset($_POST['options_to_clone']) && is_array($_POST['options_to_clone'])) {
             $options_to_clone = array_keys($_POST['options_to_clone']);
         } else {
             $options_to_clone = array_keys(network_options_to_copy());
         }
         $result = add_network($_POST['domain'], $_POST['path'], isset($_POST['newSite']) ? $_POST['newSite'] : esc_attr__('New Network Created', 'wp-multi-network'), isset($_POST['cloneNetwork']) ? $_POST['cloneNetwork'] : $current_site->id, $options_to_clone);
         if ($result && !is_wp_error($result)) {
             if (!empty($_POST['name'])) {
                 switch_to_network($result);
                 add_site_option('site_name', $_POST['name']);
                 add_site_option('active_sitewide_plugins', array('wp-multi-network/wpmn-loader.php' => time()));
                 restore_current_network();
             }
             $_GET['added'] = 'yes';
             $_GET['action'] = 'saved';
         } else {
             foreach ($result->errors as $i => $error) {
                 echo "<h2>Error: " . $error[0] . "</h2>";
             }
         }
     }
 }