158 lines
3.2 KiB
PHP
158 lines
3.2 KiB
PHP
<?php
|
|
/**
|
|
* Domain Functions
|
|
*
|
|
* @package WP_Ultimo\Functions
|
|
* @since 2.0.0
|
|
*/
|
|
|
|
// Exit if accessed directly
|
|
defined('ABSPATH') || exit;
|
|
|
|
use \WP_Ultimo\Models\Domain;
|
|
|
|
/**
|
|
* Returns a domain.
|
|
*
|
|
* @since 2.0.0
|
|
*
|
|
* @param int $domain_id The id of the domain. This is not the user ID.
|
|
* @return \WP_Ultimo\Models\Domain|false
|
|
*/
|
|
function wu_get_domain($domain_id) {
|
|
|
|
return \WP_Ultimo\Models\Domain::get_by_id($domain_id);
|
|
|
|
} // end wu_get_domain;
|
|
|
|
/**
|
|
* Queries domains.
|
|
*
|
|
* @since 2.0.0
|
|
*
|
|
* @param array $query Query arguments.
|
|
* @return \WP_Ultimo\Models\Domain[]
|
|
*/
|
|
function wu_get_domains($query = array()) {
|
|
|
|
return \WP_Ultimo\Models\Domain::query($query);
|
|
|
|
} // end wu_get_domains;
|
|
/**
|
|
* Returns a domain based on domain.
|
|
*
|
|
* @since 2.0.0
|
|
*
|
|
* @param string $domain The domain url.
|
|
* @return \WP_Ultimo\Models\Domain|false
|
|
*/
|
|
function wu_get_domain_by_domain($domain) {
|
|
|
|
return \WP_Ultimo\Models\Domain::get_by('domain', $domain);
|
|
|
|
} // end wu_get_domain_by_domain;
|
|
/**
|
|
* Creates a new domain.
|
|
*
|
|
* Check the wp_parse_args below to see what parameters are necessary.
|
|
*
|
|
* @since 2.0.0
|
|
*
|
|
* @param array $domain_data Domain attributes.
|
|
* @return \WP_Error|\WP_Ultimo\Models\Domain
|
|
*/
|
|
function wu_create_domain($domain_data) {
|
|
|
|
$domain_data = wp_parse_args($domain_data, array(
|
|
'blog_id' => false,
|
|
'domain' => false,
|
|
'active' => true,
|
|
'primary_domain' => false,
|
|
'secure' => false,
|
|
'stage' => 'checking-dns',
|
|
'date_created' => wu_get_current_time('mysql', true),
|
|
'date_modified' => wu_get_current_time('mysql', true),
|
|
));
|
|
|
|
$domain = new Domain($domain_data);
|
|
|
|
$saved = $domain->save();
|
|
|
|
if (is_wp_error($saved)) {
|
|
|
|
return $saved;
|
|
|
|
} // end if;
|
|
|
|
/*
|
|
* Add the processing.
|
|
*/
|
|
wu_enqueue_async_action('wu_async_process_domain_stage', array('domain_id' => $domain->get_id()), 'domain');
|
|
|
|
return $domain;
|
|
|
|
} // end wu_create_domain;
|
|
|
|
/**
|
|
* Restores the original URL for a mapped URL.
|
|
*
|
|
* @since 2.0.0
|
|
*
|
|
* @param string $url URL with mapped domain.
|
|
* @param int $blog_id The blog ID.
|
|
* @return string
|
|
*/
|
|
function wu_restore_original_url($url, $blog_id) {
|
|
|
|
$site = wu_get_site($blog_id);
|
|
|
|
if ($site) {
|
|
|
|
$original_site_url = $site->get_site_url();
|
|
|
|
$mapped_domain_url = $site->get_active_site_url();
|
|
|
|
$original_domain = trim(preg_replace('#^https?://#', '', $original_site_url), '/');
|
|
|
|
$mapped_domain = wp_parse_url($mapped_domain_url, PHP_URL_HOST);
|
|
|
|
if ($original_domain !== $mapped_domain) {
|
|
|
|
$url = str_replace($mapped_domain, $original_domain, $url);
|
|
|
|
} // end if;
|
|
|
|
} // end if;
|
|
|
|
return $url;
|
|
|
|
} // end wu_restore_original_url;
|
|
|
|
/**
|
|
* Adds the sso tags to a given URL.
|
|
*
|
|
* @since 2.0.11
|
|
*
|
|
* @param string $url The base url to sso-fy.
|
|
* @return string
|
|
*/
|
|
function wu_with_sso($url) {
|
|
|
|
return \WP_Ultimo\SSO\SSO::with_sso($url);
|
|
|
|
} // end wu_with_sso;
|
|
|
|
/**
|
|
* Compares the current domain to the main network domain.
|
|
*
|
|
* @since 2.0.11
|
|
* @return bool
|
|
*/
|
|
function wu_is_same_domain() {
|
|
|
|
global $current_blog, $current_site;
|
|
|
|
return wp_parse_url(wu_get_current_url(), PHP_URL_HOST) === $current_blog->domain && $current_blog->domain === $current_site->domain;
|
|
|
|
} // end wu_is_same_domain;
|