PHP 8.2.31
Preview: privacy.php Size: 2.52 KB
/home/nshryvcy/radiantskinclinics.org/wp-content/plugins/wpforms-lite/includes/functions/privacy.php

<?php
/**
 * Helper functions related to privacy, geolocation and user data.
 *
 * @since 1.8.0
 */

/**
 * Get the user IP address.
 *
 * @since 1.2.5
 * @since 1.7.3 Improve the IP detection quality by taking care of proxies (e.g. when the site is behind Cloudflare).
 *
 * Code based on the:
 *   - WordPress method \WP_Community_Events::get_unsafe_client_ip
 *   - Cloudflare documentation https://support.cloudflare.com/hc/en-us/articles/206776727
 *
 * @return string
 */
function wpforms_get_ip(): string {

	$ip = '127.0.0.1';

	$address_headers = [
		'HTTP_TRUE_CLIENT_IP',
		'HTTP_CF_CONNECTING_IP',
		'HTTP_X_REAL_IP',
		'HTTP_CLIENT_IP',
		'HTTP_X_FORWARDED_FOR',
		'HTTP_X_FORWARDED',
		'HTTP_X_CLUSTER_CLIENT_IP',
		'HTTP_FORWARDED_FOR',
		'HTTP_FORWARDED',
		'REMOTE_ADDR',
	];

	foreach ( $address_headers as $header ) {
		if ( empty( $_SERVER[ $header ] ) ) {
			continue;
		}

		/*
		 * HTTP_X_FORWARDED_FOR can contain a chain of comma-separated addresses, with or without spaces.
		 * The first address is the original client. It can't be trusted for authenticity,
		 * but we don't need to for this purpose.
		 */

		// phpcs:ignore WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
		$address_chain = explode( ',', wp_unslash( $_SERVER[ $header ] ) );
		$ip            = filter_var( trim( $address_chain[0] ), FILTER_VALIDATE_IP );

		break;
	}

	/**
	 * Filter detected IP address.
	 *
	 * @since 1.2.5
	 *
	 * @param string $ip IP address.
	 */
	return (string) filter_var( apply_filters( 'wpforms_get_ip', $ip ), FILTER_VALIDATE_IP );
}

/**
 * Determine if collecting user's IP is allowed by GDPR setting (globally or per form).
 * Majority of our users have GDPR disabled.
 * So we remove this data from the request only when it's not needed:
 * 1) when GDPR is enabled AND globally disabled user details storage;
 * 2) when GDPR is enabled AND IP address processing is disabled on per form basis.
 *
 * @since 1.6.6
 *
 * @param array $form_data Form settings.
 *
 * @return bool
 */
function wpforms_is_collecting_ip_allowed( $form_data = [] ) {

	if (
		wpforms_setting( 'gdpr', false ) &&
		(
			wpforms_setting( 'gdpr-disable-details', false ) ||
			( ! empty( $form_data ) && ! empty( $form_data['settings']['disable_ip'] ) )
		)
	) {
		return false;
	}

	return true;
}

/**
 * Determine if collecting cookies is allowed by GDPR setting.
 *
 * @since 1.7.5
 *
 * @return bool
 */
function wpforms_is_collecting_cookies_allowed() {

	return ! ( wpforms_setting( 'gdpr', false ) && wpforms_setting( 'gdpr-disable-uuid', false ) );
}

Directory Contents

Dirs: 0 × Files: 18

Name Size Perms Modified Actions
10.84 KB lrw-r--r-- 2026-05-28 15:16:52
Edit Download
1.38 KB lrw-r--r-- 2025-06-17 13:49:02
Edit Download
15.89 KB lrw-r--r-- 2026-03-19 16:20:18
Edit Download
3.97 KB lrw-r--r-- 2023-11-28 16:59:36
Edit Download
19.13 KB lrw-r--r-- 2025-11-06 19:10:44
Edit Download
2.82 KB lrw-r--r-- 2025-06-05 16:54:44
Edit Download
5.25 KB lrw-r--r-- 2025-08-11 13:38:06
Edit Download
2.89 KB lrw-r--r-- 2025-06-17 13:49:02
Edit Download
18.00 KB lrw-r--r-- 2026-06-03 16:18:22
Edit Download
8.79 KB lrw-r--r-- 2026-06-03 16:18:22
Edit Download
19.20 KB lrw-r--r-- 2026-03-19 16:20:18
Edit Download
14.56 KB lrw-r--r-- 2026-05-28 15:16:52
Edit Download
6.88 KB lrw-r--r-- 2024-06-13 16:24:36
Edit Download
21.76 KB lrw-r--r-- 2025-07-31 14:13:36
Edit Download
2.38 KB lrw-r--r-- 2025-06-05 16:54:44
Edit Download
2.52 KB lrw-r--r-- 2025-02-27 17:40:00
Edit Download
1.99 KB lrw-r--r-- 2025-06-05 16:54:44
Edit Download
10.43 KB lrw-r--r-- 2026-01-29 20:00:56
Edit Download

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