PHP 8.2.31
Preview: class-wc-https.php Size: 4.33 KB
/home/nshryvcy/radiantskinclinics.org/wp-content/plugins/woocommerce/includes/class-wc-https.php

<?php

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly
}

/**
 * WC_HTTPS class.
 *
 * @class    WC_HTTPS
 * @version  2.2.0
 * @package  WooCommerce\Classes
 * @category Class
 * @author   WooThemes
 */
class WC_HTTPS {

	/**
	 * Hook in our HTTPS functions if we're on the frontend. This will ensure any links output to a page (when viewing via HTTPS) are also served over HTTPS.
	 */
	public static function init() {
		if ( 'yes' === get_option( 'woocommerce_force_ssl_checkout' ) && ! is_admin() ) {
			// HTTPS urls with SSL on
			$filters = array(
				'post_thumbnail_html',
				'wp_get_attachment_image_attributes',
				'wp_get_attachment_url',
				'option_stylesheet_url',
				'option_template_url',
				'script_loader_src',
				'style_loader_src',
				'template_directory_uri',
				'stylesheet_directory_uri',
				'site_url',
			);

			foreach ( $filters as $filter ) {
				add_filter( $filter, array( __CLASS__, 'force_https_url' ), 999 );
			}

			add_filter( 'page_link', array( __CLASS__, 'force_https_page_link' ), 10, 2 );
			add_action( 'template_redirect', array( __CLASS__, 'force_https_template_redirect' ) );

			if ( 'yes' == get_option( 'woocommerce_unforce_ssl_checkout' ) ) {
				add_action( 'template_redirect', array( __CLASS__, 'unforce_https_template_redirect' ) );
			}
		}
		add_action( 'http_api_curl', array( __CLASS__, 'http_api_curl' ), 10, 3 );
	}

	/**
	 * Force https for urls.
	 *
	 * @param mixed $content
	 * @return string
	 */
	public static function force_https_url( $content ) {
		if ( is_ssl() ) {
			if ( is_array( $content ) ) {
				$content = array_map( 'WC_HTTPS::force_https_url', $content );
			} else {
				$content = str_replace( 'http:', 'https:', (string) $content );
			}
		}
		return $content;
	}

	/**
	 * Force a post link to be SSL if needed.
	 *
	 * @param string $link
	 * @param int $page_id
	 *
	 * @return string
	 */
	public static function force_https_page_link( $link, $page_id ) {
		if ( in_array( $page_id, array( get_option( 'woocommerce_checkout_page_id' ), get_option( 'woocommerce_myaccount_page_id' ) ) ) ) {
			$link = str_replace( 'http:', 'https:', $link );
		} elseif ( 'yes' === get_option( 'woocommerce_unforce_ssl_checkout' ) && ! wc_site_is_https() ) {
			$link = str_replace( 'https:', 'http:', $link );
		}
		return $link;
	}

	/**
	 * Template redirect - if we end up on a page ensure it has the correct http/https url.
	 */
	public static function force_https_template_redirect() {
		if ( ! is_ssl() && ( is_checkout() || is_account_page() || apply_filters( 'woocommerce_force_ssl_checkout', false ) ) ) {

			if ( 0 === strpos( $_SERVER['REQUEST_URI'], 'http' ) ) {
				wp_safe_redirect( preg_replace( '|^http://|', 'https://', $_SERVER['REQUEST_URI'] ) );
				exit;
			} else {
				wp_safe_redirect( 'https://' . ( ! empty( $_SERVER['HTTP_X_FORWARDED_HOST'] ) ? $_SERVER['HTTP_X_FORWARDED_HOST'] : $_SERVER['HTTP_HOST'] ) . $_SERVER['REQUEST_URI'] );
				exit;
			}
		}
	}

	/**
	 * Template redirect - if we end up on a page ensure it has the correct http/https url.
	 */
	public static function unforce_https_template_redirect() {
		if ( function_exists( 'is_customize_preview' ) && is_customize_preview() ) {
			return;
		}

		if ( ! wc_site_is_https() && is_ssl() && $_SERVER['REQUEST_URI'] && ! is_checkout() && ! wp_doing_ajax() && ! is_account_page() && apply_filters( 'woocommerce_unforce_ssl_checkout', true ) ) {

			if ( 0 === strpos( $_SERVER['REQUEST_URI'], 'http' ) ) {
				wp_safe_redirect( preg_replace( '|^https://|', 'http://', $_SERVER['REQUEST_URI'] ) );
				exit;
			} else {
				wp_safe_redirect( 'http://' . ( ! empty( $_SERVER['HTTP_X_FORWARDED_HOST'] ) ? $_SERVER['HTTP_X_FORWARDED_HOST'] : $_SERVER['HTTP_HOST'] ) . $_SERVER['REQUEST_URI'] );
				exit;
			}
		}
	}

	/**
	 * Force posts to PayPal to use TLS v1.2. See:
	 *        https://core.trac.wordpress.org/ticket/36320
	 *        https://core.trac.wordpress.org/ticket/34924#comment:13
	 *        https://www.paypal-knowledge.com/infocenter/index?page=content&widgetview=true&id=FAQ1914&viewlocale=en_US
	 *
	 * @param string $handle
	 * @param mixed $r
	 * @param string $url
	 */
	public static function http_api_curl( $handle, $r, $url ) {
		if ( strstr( $url, 'https://' ) && ( strstr( $url, '.paypal.com/nvp' ) || strstr( $url, '.paypal.com/cgi-bin/webscr' ) ) ) {
			curl_setopt( $handle, CURLOPT_SSLVERSION, 6 );
		}
	}
}

WC_HTTPS::init();

Directory Contents

Dirs: 28 × Files: 115

Name Size Perms Modified Actions
abstracts DIR
- drwxr-xr-x 2026-05-29 02:43:21
Edit Download
admin DIR
- drwxr-xr-x 2026-05-29 02:43:21
Edit Download
blocks DIR
- drwxr-xr-x 2026-05-29 02:43:21
Edit Download
cli DIR
- drwxr-xr-x 2026-05-29 02:43:21
Edit Download
- drwxr-xr-x 2026-05-29 02:43:21
Edit Download
- drwxr-xr-x 2026-05-29 02:43:21
Edit Download
emails DIR
- drwxr-xr-x 2026-05-29 02:43:21
Edit Download
export DIR
- drwxr-xr-x 2026-05-29 02:43:21
Edit Download
gateways DIR
- drwxr-xr-x 2026-05-29 02:43:21
Edit Download
import DIR
- drwxr-xr-x 2026-05-29 02:43:21
Edit Download
- drwxr-xr-x 2026-05-29 02:43:21
Edit Download
- drwxr-xr-x 2026-05-29 02:43:21
Edit Download
legacy DIR
- drwxr-xr-x 2026-05-29 02:43:21
Edit Download
libraries DIR
- drwxr-xr-x 2026-05-29 02:43:21
Edit Download
- drwxr-xr-x 2026-05-29 02:43:21
Edit Download
- drwxr-xr-x 2026-05-29 02:43:21
Edit Download
- drwxr-xr-x 2026-05-29 02:43:21
Edit Download
queue DIR
- drwxr-xr-x 2026-05-29 02:43:21
Edit Download
- drwxr-xr-x 2026-05-29 02:43:21
Edit Download
rest-api DIR
- drwxr-xr-x 2026-05-29 02:43:21
Edit Download
shipping DIR
- drwxr-xr-x 2026-05-29 02:43:21
Edit Download
- drwxr-xr-x 2026-05-29 02:43:21
Edit Download
- drwxr-xr-x 2026-05-29 02:43:21
Edit Download
tracks DIR
- drwxr-xr-x 2026-05-29 02:43:21
Edit Download
traits DIR
- drwxr-xr-x 2026-05-29 02:43:21
Edit Download
walkers DIR
- drwxr-xr-x 2026-05-29 02:43:21
Edit Download
- drwxr-xr-x 2026-05-29 02:43:21
Edit Download
widgets DIR
- drwxr-xr-x 2026-05-29 02:43:21
Edit Download
131.47 KB lrw-r--r-- 2026-05-05 14:26:50
Edit Download
12.69 KB lrw-r--r-- 2024-07-30 19:31:16
Edit Download
5.27 KB lrw-r--r-- 2025-10-06 17:56:06
Edit Download
4.68 KB lrw-r--r-- 2026-05-05 14:26:50
Edit Download
3.45 KB lrw-r--r-- 2020-08-20 23:18:50
Edit Download
1.78 KB lrw-r--r-- 2024-09-23 20:44:04
Edit Download
6.89 KB lrw-r--r-- 2025-01-21 18:53:44
Edit Download
34.80 KB lrw-r--r-- 2026-01-19 14:46:18
Edit Download
10.41 KB lrw-r--r-- 2026-02-23 17:58:34
Edit Download
12.79 KB lrw-r--r-- 2026-05-05 14:26:50
Edit Download
3.37 KB lrw-r--r-- 2023-09-26 21:42:36
Edit Download
25.37 KB lrw-r--r-- 2026-03-30 17:12:24
Edit Download
28.48 KB lrw-r--r-- 2025-07-29 12:34:58
Edit Download
75.57 KB lrw-r--r-- 2026-03-30 17:12:24
Edit Download
50.35 KB lrw-r--r-- 2026-05-05 14:26:50
Edit Download
3.34 KB lrw-r--r-- 2025-09-01 23:44:48
Edit Download
23.08 KB lrw-r--r-- 2026-02-23 17:58:34
Edit Download
51.69 KB lrw-r--r-- 2026-05-05 14:26:50
Edit Download
44.64 KB lrw-r--r-- 2026-05-05 14:26:50
Edit Download
3.37 KB lrw-r--r-- 2020-08-20 23:18:50
Edit Download
10.34 KB lrw-r--r-- 2024-07-30 19:31:16
Edit Download
33.28 KB lrw-r--r-- 2026-05-05 14:26:50
Edit Download
1.29 KB lrw-r--r-- 2018-05-23 19:30:10
Edit Download
6.59 KB lrw-r--r-- 2022-10-19 00:34:38
Edit Download
2.26 KB lrw-r--r-- 2022-04-20 06:50:54
Edit Download
6.59 KB lrw-r--r-- 2024-02-27 18:59:46
Edit Download
7.34 KB lrw-r--r-- 2026-03-30 17:12:24
Edit Download
36.64 KB lrw-r--r-- 2025-07-29 12:34:58
Edit Download
28.37 KB lrw-r--r-- 2024-12-18 22:19:16
Edit Download
39.64 KB lrw-r--r-- 2026-05-25 14:01:26
Edit Download
4.24 KB lrw-r--r-- 2025-01-21 18:53:44
Edit Download
48.17 KB lrw-r--r-- 2026-03-09 16:07:22
Edit Download
34.44 KB lrw-r--r-- 2026-05-05 14:26:50
Edit Download
30.43 KB lrw-r--r-- 2025-10-06 17:56:06
Edit Download
1.99 KB lrw-r--r-- 2020-01-16 06:10:02
Edit Download
11.46 KB lrw-r--r-- 2026-05-05 14:26:50
Edit Download
4.33 KB lrw-r--r-- 2023-06-20 23:45:50
Edit Download
116.71 KB lrw-r--r-- 2026-05-25 14:01:26
Edit Download
1.28 KB lrw-r--r-- 2020-08-20 23:18:50
Edit Download
3.90 KB lrw-r--r-- 2024-01-30 23:24:56
Edit Download
9.41 KB lrw-r--r-- 2026-02-23 17:58:34
Edit Download
2.21 KB lrw-r--r-- 2022-04-20 06:50:54
Edit Download
8.98 KB lrw-r--r-- 2026-05-05 14:26:50
Edit Download
4.08 KB lrw-r--r-- 2021-12-22 00:24:58
Edit Download
9.99 KB lrw-r--r-- 2026-01-19 14:46:18
Edit Download
5.80 KB lrw-r--r-- 2021-12-22 00:24:58
Edit Download
17.61 KB lrw-r--r-- 2026-05-05 14:26:50
Edit Download
9.58 KB lrw-r--r-- 2026-01-19 14:46:18
Edit Download
6.49 KB lrw-r--r-- 2021-12-22 00:24:58
Edit Download
21.39 KB lrw-r--r-- 2026-01-19 14:46:18
Edit Download
2.55 KB lrw-r--r-- 2026-02-23 17:58:34
Edit Download
5.99 KB lrw-r--r-- 2025-05-12 21:07:28
Edit Download
78.38 KB lrw-r--r-- 2026-05-11 17:17:08
Edit Download
14.37 KB lrw-r--r-- 2026-05-05 14:26:50
Edit Download
6.24 KB lrw-r--r-- 2022-11-23 05:58:58
Edit Download
39.09 KB lrw-r--r-- 2026-05-05 14:26:50
Edit Download
33.16 KB lrw-r--r-- 2026-05-05 14:26:50
Edit Download
1.79 KB lrw-r--r-- 2025-03-03 22:28:12
Edit Download
13.61 KB lrw-r--r-- 2025-09-01 23:44:48
Edit Download
14.69 KB lrw-r--r-- 2021-07-28 04:11:34
Edit Download
17.22 KB lrw-r--r-- 2025-06-23 19:46:28
Edit Download
7.87 KB lrw-r--r-- 2026-02-23 17:58:34
Edit Download
13.18 KB lrw-r--r-- 2026-02-23 17:58:34
Edit Download
4.98 KB lrw-r--r-- 2025-03-03 22:28:12
Edit Download
4.59 KB lrw-r--r-- 2026-03-30 17:12:24
Edit Download
6.81 KB lrw-r--r-- 2026-03-30 17:12:24
Edit Download
2.27 KB lrw-r--r-- 2026-02-23 17:58:34
Edit Download
2.70 KB lrw-r--r-- 2025-07-29 12:34:58
Edit Download
23.76 KB lrw-r--r-- 2026-03-30 17:12:24
Edit Download
20.18 KB lrw-r--r-- 2025-05-12 21:07:28
Edit Download
37.01 KB lrw-r--r-- 2026-05-05 14:26:50
Edit Download
4.00 KB lrw-r--r-- 2021-12-01 04:23:30
Edit Download
7.74 KB lrw-r--r-- 2023-01-25 03:19:12
Edit Download
15.44 KB lrw-r--r-- 2024-06-25 21:17:40
Edit Download
5.05 KB lrw-r--r-- 2021-06-22 15:24:06
Edit Download
21.55 KB lrw-r--r-- 2024-06-25 21:17:40
Edit Download
276 B lrw-r--r-- 2020-09-23 01:16:50
Edit Download
24.57 KB lrw-r--r-- 2026-03-30 17:12:24
Edit Download
9.34 KB lrw-r--r-- 2025-06-23 19:46:28
Edit Download
13.08 KB lrw-r--r-- 2020-09-23 01:16:50
Edit Download
5.00 KB lrw-r--r-- 2025-11-24 23:10:10
Edit Download
13.03 KB lrw-r--r-- 2026-05-05 14:26:50
Edit Download
18.82 KB lrw-r--r-- 2025-01-21 18:53:44
Edit Download
24.78 KB lrw-r--r-- 2026-05-05 14:26:50
Edit Download
39.87 KB lrw-r--r-- 2026-05-05 14:26:50
Edit Download
20.42 KB lrw-r--r-- 2025-11-12 18:35:04
Edit Download
51.50 KB lrw-r--r-- 2025-10-06 17:56:06
Edit Download
5.79 KB lrw-r--r-- 2024-05-28 14:28:20
Edit Download
30.17 KB lrw-r--r-- 2026-05-05 14:26:50
Edit Download
63.37 KB lrw-r--r-- 2026-05-27 21:54:04
Edit Download
14.15 KB lrw-r--r-- 2025-11-24 23:10:10
Edit Download
21.91 KB lrw-r--r-- 2026-05-05 14:26:50
Edit Download
4.17 KB lrw-r--r-- 2024-09-23 20:44:04
Edit Download
20.81 KB lrw-r--r-- 2026-01-19 14:46:18
Edit Download
15.53 KB lrw-r--r-- 2025-07-29 12:34:58
Edit Download
79.00 KB lrw-r--r-- 2026-05-05 14:26:50
Edit Download
5.56 KB lrw-r--r-- 2026-01-19 14:46:18
Edit Download
39.78 KB lrw-r--r-- 2026-02-23 17:58:34
Edit Download
49.90 KB lrw-r--r-- 2025-11-24 23:10:10
Edit Download
2.43 KB lrw-r--r-- 2026-05-05 14:26:50
Edit Download
8.49 KB lrw-r--r-- 2026-01-19 14:46:18
Edit Download
43.99 KB lrw-r--r-- 2026-05-11 17:17:08
Edit Download
5.03 KB lrw-r--r-- 2023-01-25 03:19:12
Edit Download
5.97 KB lrw-r--r-- 2026-02-23 17:58:34
Edit Download
9.99 KB lrw-r--r-- 2026-05-11 17:17:08
Edit Download
69.18 KB lrw-r--r-- 2026-05-05 14:26:50
Edit Download
13.93 KB lrw-r--r-- 2025-11-24 23:10:10
Edit Download
17.43 KB lrw-r--r-- 2025-11-24 23:10:10
Edit Download
142.51 KB lrw-r--r-- 2026-05-05 14:26:50
Edit Download
12.84 KB lrw-r--r-- 2025-09-01 23:44:48
Edit Download
24.63 KB lrw-r--r-- 2026-05-05 14:26:50
Edit Download
107.05 KB lrw-r--r-- 2026-05-25 14:01:26
Edit Download
36.73 KB lrw-r--r-- 2026-05-05 14:26:50
Edit Download
5.91 KB lrw-r--r-- 2026-05-05 14:26:50
Edit Download
2.01 KB lrw-r--r-- 2020-08-20 23:18:50
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).