PluginProbe ʕ •ᴥ•ʔ
Advanced Ads – Ad Manager & AdSense / 2.0.7
Advanced Ads – Ad Manager & AdSense v2.0.7
2.0.23 2.0.22 2.0.21 1.38.0 1.39.0 1.39.1 1.39.2 1.39.3 1.39.4 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.9 1.40.0 1.40.1 1.40.2 1.41.0 1.42.0 1.42.1 1.42.2 1.43.0 1.44.0 1.44.1 1.45.0 1.45.1 1.46.0 1.47.0 1.47.1 1.47.2 1.47.3 1.47.4 1.47.5 1.48.0 1.48.1 1.49.0 1.5.0 1.5.0.1 1.5.1 1.5.2 1.5.2.1 1.5.4 1.5.4.1 1.5.5 1.50.0 1.51.0 1.51.1 1.51.2 1.51.3 1.52.0 1.52.1 1.52.2 1.52.3 1.52.4 1.53.0 1.53.1 1.53.2 1.54.0 1.54.1 1.55.0 1.56.0 1.56.1 1.56.2 1.56.3 1.56.4 1.6 1.6.1 1.6.10 1.6.10.1 1.6.10.2 1.6.11 1.6.11.1 1.6.12 1.6.13 1.6.14 1.6.15 1.6.16 1.6.17 1.6.17.1 1.6.17.2 1.6.2 1.6.2.1 1.6.3 1.6.4 1.6.4.1 1.6.5 1.6.6 1.6.6.1 1.6.7 1.6.7.1 1.6.8 1.6.8.1 1.6.8.2 1.6.8.3 1.6.9 1.6.9.1 1.6.9.2 1.6.9.3 1.6.9.4 1.7 1.7.0.1 1.7.0.2 1.7.0.3 1.7.1 1.7.1.1 1.7.1.2 1.7.1.3 1.7.1.4 1.7.1.5 1.7.10 trunk 1.7.11 1.0.1 1.7.12 1.0.2 1.7.13 1.0.3 1.7.14 1.1.0 1.7.15 1.1.1 1.7.16 1.1.2 1.7.17 1.1.3 1.7.18 1.10 1.7.19 1.10.1 1.7.2 1.10.10 1.7.2.1 1.10.11 1.7.20 1.10.12 1.7.21 1.10.2 1.7.22 1.10.3 1.7.23 1.10.4 1.7.24 1.10.5 1.7.25 1.10.6 1.7.3 1.10.7 1.7.4 1.10.8 1.7.4.1 1.10.9 1.7.4.2 1.11 1.7.4.3 1.11.1 1.7.4.4 1.11.2 1.7.4.5 1.12 1.7.5 1.13 1.7.5.1 1.13.1 1.7.6 1.13.2 1.7.7 1.13.3 1.7.8 1.13.4 1.7.9 1.13.5 1.7.9.1 1.13.6 1.7.9.2 1.13.7 1.7.9.3 1.13.8 1.8 1.14 1.8.1 1.14.1 1.8.10 1.14.10 1.8.11 1.14.11 1.8.12 1.14.2 1.8.13 1.14.3 1.8.14 1.14.4 1.8.15 1.14.5 1.8.16 1.14.6 1.8.17 1.14.7 1.8.18 1.14.8 1.8.19 1.14.9 1.8.2 1.15 1.8.20 1.16 1.8.21 1.16.1 1.8.22 1.17 1.8.23 1.17.1 1.8.24 1.17.10 1.8.25 1.17.10-rc.1 1.8.26 1.17.11 1.8.27 1.17.12 1.8.28 1.17.12-rc.1 1.8.29 1.17.2 1.8.3 1.17.3 1.8.30 1.17.4 1.8.4 1.17.5 1.8.5 1.17.6 1.8.6 1.17.7 1.8.7 1.17.8 1.8.8 1.17.9 1.8.9 1.17.9-beta.1 1.9 1.18.0 2.0.0 1.19.0 2.0.1 1.19.1 2.0.10 1.2 2.0.11 1.2.1 2.0.12 1.2.2 2.0.13 1.2.3 2.0.14 1.2.4 2.0.15 1.2.5 2.0.16 1.2.6 2.0.17 1.2.7 2.0.18 1.20.0 2.0.19 1.20.0-rc.1 2.0.2 1.20.0-rc.2 2.0.20 1.20.1 2.0.3 1.20.2 2.0.4 1.20.3 2.0.5 1.21.0 2.0.6 1.21.1 2.0.7 1.22.0 2.0.8 1.22.1 2.0.9 1.22.2 1.23.0 1.23.1 1.23.2 1.24.0 1.24.1 1.24.2 1.25.0 1.25.1 1.26.0 1.27.0 1.28.0 1.29.0 1.29.1 1.3 1.3.1 1.3.10 1.3.11 1.3.12 1.3.13 1.3.14 1.3.15 1.3.16 1.3.17 1.3.18 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.30.0 1.30.1 1.30.2 1.30.2-rc.1 1.30.3 1.30.4 1.30.4-rc.1 1.30.5 1.31.0 1.31.1 1.32.0 1.32.0-rc.1 1.33.0 1.33.1 1.33.2 1.34.0 1.35.0 1.35.1 1.36.0 1.36.1 1.36.2 1.36.3 1.37.0 1.37.1 1.37.2
advanced-ads / includes / functions.php
advanced-ads / includes Last commit date
abstracts 1 year ago admin 1 year ago ads 1 year ago compatibility 1 year ago crons 1 year ago frontend 1 year ago groups 1 year ago importers 1 year ago installation 1 year ago interfaces 1 year ago placements 1 year ago rest 1 year ago traits 1 year ago utilities 1 year ago array_ad_conditions.php 1 year ago cap_map.php 3 years ago class-assets-registry.php 1 year ago class-autoloader.php 1 year ago class-constants.php 1 year ago class-entities.php 1 year ago class-modal.php 1 year ago class-modules.php 1 year ago class-options.php 1 year ago class-plugin.php 1 year ago class-post-data.php 1 year ago class-shortcodes.php 1 year ago class-upgrades.php 1 year ago class-widget.php 1 year ago default-hooks.php 1 year ago functions-ad.php 1 year ago functions-conditional.php 1 year ago functions-core.php 1 year ago functions-group.php 1 year ago functions-placement.php 1 year ago functions.php 1 year ago index.php 2 years ago load_modules.php 2 years ago
functions.php
107 lines
1 <?php
2 /**
3 * Functions that are directly available in WordPress themes (and plugins)
4 *
5 * @package AdvancedAds
6 * @author Advanced Ads <info@wpadvancedads.com>
7 * @since 1.48.0
8 */
9
10 use AdvancedAds\Framework\Utilities\Params;
11
12 /**
13 * Returns the default arguments for an entity.
14 *
15 * @param string $method The method to get the entity.
16 * @param int|string $id The ID of the entity.
17 * @param array $args Additional arguments for the entity.
18 *
19 * @return array The default arguments for the entity.
20 */
21 function wp_advads_default_entity_arguments( $method, $id, $args ): array {
22 $args = (array) $args;
23
24 $args['previous_id'] = $args['id'] ?? null;
25 $args['previous_method'] = $args['method'] ?? null;
26
27 if ( $id || ! isset( $args['id'] ) ) {
28 $args['id'] = $id;
29 }
30
31 $args['method'] = $method;
32
33 return apply_filters( 'advanced-ads-ad-select-args', $args, $method, $id );
34 }
35
36 /**
37 * Sets additional arguments for an entity.
38 *
39 * @param object $entity The entity object.
40 * @param array $args The additional arguments to set for the entity.
41 *
42 * @return void
43 */
44 function wp_advads_set_additional_args( $entity, $args ): void {
45 $entity->set_prop_temp( 'ad_args', $args );
46 }
47
48 /**
49 * Load ad conditions.
50 *
51 * @return array
52 */
53 function wp_advads_get_ad_conditions(): array {
54 static $ad_conditions;
55 if ( null === $ad_conditions ) {
56 $ad_conditions = include ADVADS_ABSPATH . 'includes/array_ad_conditions.php';
57 }
58
59 return $ad_conditions;
60 }
61
62 /**
63 * Get user IP address.
64 *
65 * @return bool|string IP address or false if not found
66 */
67 function get_user_ip_address() {
68 // phpcs:disable WordPress.Security.ValidatedSanitizedInput.MissingUnslash, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- NO NEED TO SANITIZE HEADERS
69
70 // Define the list of IP headers in the order of priority.
71 $ip_headers = [
72 'HTTP_CF_CONNECTING_IP', // Cloudflare.
73 'HTTP_CLIENT_IP', // General.
74 'HTTP_X_REAL_IP', // General.
75 'HTTP_X_FORWARDED_FOR', // General.
76 'HTTP_X_FORWARDED', // General.
77 'HTTP_X_CLUSTER_CLIENT_IP', // General.
78 'HTTP_FORWARDED_FOR', // General.
79 'HTTP_FORWARDED', // General.
80 'REMOTE_ADDR', // Default server value.
81 ];
82
83 // Get the server's IP address.
84 $server_ip = Params::server( 'SERVER_ADDR', '' );
85
86 foreach ( $ip_headers as $header ) {
87 // Check if the header exists and is not empty.
88 $data = Params::server( $header, '' );
89 if ( ! empty( $data ) ) {
90 // Split the header value by comma to handle multiple IP addresses.
91 $ip_list = explode( ',', $data );
92
93 foreach ( $ip_list as $ip ) {
94 // Trim whitespace and remove any 'for=' prefix from the IP address.
95 $ip = trim( str_replace( 'for=', '', $ip ) );
96
97 // Validate the IP address and ensure it's not the server's IP.
98 if ( filter_var( $ip, FILTER_VALIDATE_IP ) && $ip !== $server_ip ) {
99 return $ip;
100 }
101 }
102 }
103 }
104 // phpcs:enable
105 return false;
106 }
107