Initial Commit

This commit is contained in:
David Stone
2024-11-30 18:24:12 -07:00
commit e8f7955c1c
5432 changed files with 1397750 additions and 0 deletions

107
inc/functions/url.php Normal file
View File

@ -0,0 +1,107 @@
<?php
/**
* URL Helper Functions
*
* @package WP_Ultimo\Functions
* @since 2.0.0
*/
// Exit if accessed directly
defined('ABSPATH') || exit;
/**
* Returns the current URL.
*
* @since 2.0.0
* @return string
*/
function wu_get_current_url() {
/*
* When doing ajax requests, we don't want the admin-ajax URL, but
* the initiator URL.
*/
if (wp_doing_ajax() && isset($_SERVER['HTTP_REFERER'])) {
return $_SERVER['HTTP_REFERER'];
} // end if;
return (is_ssl() ? 'https://' : 'http://') . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
} // end wu_get_current_url;
/**
* Replaces or removes the scheme from a URL.
*
* @since 2.0.0
*
* @param string $url The URL to process.
* @param string $new_scheme An empty string, https, or http.
* @return string
*/
function wu_replace_scheme($url, $new_scheme = '') {
return preg_replace('(^https?://)', $new_scheme, $url);
} // end wu_replace_scheme;
/**
* Wrapper to the network_admin_url function for WP Ultimo admin urls.
*
* @since 2.0.0
*
* @param string $path WP Ultimo page.
* @param array $query URL query parameters.
* @return string
*/
function wu_network_admin_url($path, $query = array()) {
$path = sprintf('admin.php?page=%s', $path);
$url = network_admin_url($path);
return add_query_arg($query, $url);
} // end wu_network_admin_url;
/**
* Get the light ajax implementation URL.
*
* @since 2.0.0
*
* @param null|string $when The wu-when parameter to be used, defaults to plugins_loaded.
* @param array $query_args List of additional query args to add to the final URL.
* @param int $site_id The site to use as a base.
* @param null|string $scheme URL scheme. Follows the same rules as the scheme param of get_home_url.
* @return string
*/
function wu_ajax_url($when = null, $query_args = array(), $site_id = false, $scheme = null) {
if (empty($site_id)) {
$site_id = get_current_blog_id();
} // end if;
$base_url = get_home_url($site_id, '', $scheme);
if (!is_array($query_args)) {
$query_args = array();
} // end if;
$query_args['wu-ajax'] = 1;
$query_args['r'] = wp_create_nonce('wu-ajax-nonce');
if ($when) {
$query_args['wu-when'] = base64_encode($when);
} // end if;
$url = add_query_arg($query_args, $base_url);
return apply_filters('wu_ajax_url', $url, $query_args, $when, $site_id);
} // end wu_ajax_url;