<?php // phpcs:ignore SlevomatCodingStandard.TypeHints.DeclareStrictTypes.DeclareStrictTypesMissing namespace MailPoet\Util; if (!defined('ABSPATH')) exit; use MailPoet\WP\Functions as WPFunctions; class Url { /** @var WPFunctions */ private $wp; public function __construct( WPFunctions $wp ) { $this->wp = $wp; } public function getCurrentUrl() { $homeUrl = parse_url($this->wp->homeUrl()); $queryArgs = $this->wp->addQueryArg(null, null); // Remove $this->wp->homeUrl() path from add_query_arg if ( is_array($homeUrl) && isset($homeUrl['path']) ) { $queryArgs = str_replace($homeUrl['path'], '', $queryArgs); } return $this->wp->homeUrl($queryArgs); } public function redirectTo($url = null) { $this->wp->wpSafeRedirect($url); exit(); } public function redirectBack($params = []) { // check mailpoet_redirect parameter $referer = (isset($_POST['mailpoet_redirect']) ? sanitize_text_field(wp_unslash($_POST['mailpoet_redirect'])) : $this->wp->wpGetReferer() ); // fallback: home_url if (!$referer) { $referer = $this->wp->homeUrl(); } // append extra params to url if (!empty($params)) { $referer = $this->wp->addQueryArg($params, $referer); } $this->redirectTo($referer); exit(); } public function redirectWithReferer($url = null) { $currentUrl = $this->getCurrentUrl(); $url = $this->wp->addQueryArg( [ 'mailpoet_redirect' => urlencode($currentUrl), ], $url ); if ($url !== $currentUrl) { $this->redirectTo($url); } exit(); } public function isUsingHttps(string $url): bool { return $this->wp->wpParseUrl($url, PHP_URL_SCHEME) === 'https'; } }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
DataInconsistency | Folder | 0700 |
|
|
License | Folder | 0700 |
|
|
Notices | Folder | 0700 |
|
|
pQuery | Folder | 0700 |
|
|
APIPermissionHelper.php | File | 1.26 KB | 0644 |
|
CdnAssetUrl.php | File | 576 B | 0644 |
|
ConflictResolver.php | File | 7.85 KB | 0644 |
|
Cookies.php | File | 1.1 KB | 0644 |
|
DBCollationChecker.php | File | 1.76 KB | 0644 |
|
DOM.php | File | 1.42 KB | 0644 |
|
DateConverter.php | File | 3.34 KB | 0644 |
|
FreeDomains.php | File | 3.14 KB | 0644 |
|
Headers.php | File | 734 B | 0644 |
|
Helpers.php | File | 4.16 KB | 0644 |
|
Installation.php | File | 836 B | 0644 |
|
LegacyDatabase.php | File | 3.78 KB | 0644 |
|
Request.php | File | 325 B | 0644 |
|
SecondLevelDomainNames.php | File | 356 B | 0644 |
|
Security.php | File | 2.81 KB | 0644 |
|
Url.php | File | 1.74 KB | 0644 |
|
index.php | File | 6 B | 0644 |
|