/** * Renders network options page. * * @since 4.0.0 * @callback add_management_page() * * @access public */ public function render_site_options_page() { $reseller = $this->_plugin->get_reseller(); $tabs = array('mapping' => __('Map domain', 'domainmap')); if ($reseller && $reseller->is_valid()) { $tabs['purchase'] = __('Purchase domain', 'domainmap'); } $activetab = strtolower(trim(filter_input(INPUT_GET, 'tab', FILTER_DEFAULT))); if (!in_array($activetab, array_keys($tabs))) { $activetab = key($tabs); } $page = null; $options = $this->_plugin->get_options(); if ($activetab == 'purchase') { $page = new Domainmap_Render_Site_Purchase($tabs, $activetab, $options); $page->reseller = $reseller; } else { // fetch unchanged domain name from database, because get_option function could return mapped domain name $basedomain = parse_url($this->_wpdb->get_var("SELECT option_value FROM {$this->_wpdb->options} WHERE option_name = 'siteurl'"), PHP_URL_HOST); // if server ip addresses are provided, use it to populate DNS records if (!empty($options['map_ipaddress'])) { foreach (explode(',', trim($options['map_ipaddress'])) as $ip) { if (filter_var($ip, FILTER_VALIDATE_IP)) { $ips[] = $ip; } } } // looks like server ip addresses are not set, then try to read it automatically if (empty($ips) && function_exists('dns_get_record')) { $dns = @dns_get_record($basedomain, DNS_A); if (is_array($dns)) { $ips = wp_list_pluck($dns, 'ip'); } } // prepare template $page = new Domainmap_Render_Site_Map($tabs, $activetab, $options); $page->origin = $this->_wpdb->get_row("SELECT * FROM {$this->_wpdb->blogs} WHERE blog_id = " . intval($this->_wpdb->blogid)); $page->domains = (array) $this->_wpdb->get_results(sprintf("SELECT domain, is_primary FROM %s WHERE blog_id = %d ORDER BY id ASC", DOMAINMAP_TABLE_MAP, $this->_wpdb->blogid)); $page->ips = $ips; } if ($page) { $page->render(); } }
/** * Checks domain health status. * * @since 4.0.0 * * @access public */ public function check_health_status() { self::_check_premissions(Domainmap_Plugin::ACTION_HEALTH_CHECK); $domain = strtolower(trim(filter_input(INPUT_GET, 'domain'))); if (!self::_validate_domain_name($domain)) { wp_send_json_error(); } $valid = $this->_validate_health_status($domain); set_site_transient("domainmapping-{$domain}-health", $valid, $valid ? WEEK_IN_SECONDS : 10 * MINUTE_IN_SECONDS); ob_start(); Domainmap_Render_Site_Map::render_health_column($domain); wp_send_json_success(array('html' => ob_get_clean())); }