PluginProbe ʕ •ᴥ•ʔ
Advanced Ads – Ad Manager & AdSense / 2.0.21
Advanced Ads – Ad Manager & AdSense v2.0.21
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 2 months ago admin 2 months ago ads 3 months ago compatibility 3 months ago crons 3 months ago frontend 2 months ago groups 3 months ago importers 2 months ago installation 1 year ago interfaces 4 months ago license 3 months ago placements 3 months ago rest 1 year ago traits 4 months ago utilities 3 months ago array_ad_conditions.php 1 year ago cap_map.php 3 years ago class-assets-registry.php 3 months ago class-autoloader.php 1 year ago class-constants.php 1 year ago class-content-injector.php 2 months ago class-entities.php 3 months ago class-modal.php 1 year ago class-modules.php 1 year ago class-options.php 1 year ago class-plugin.php 2 months ago class-post-data.php 10 months ago class-shortcodes.php 2 months ago class-upgrades.php 1 year ago class-widget.php 11 months ago default-hooks.php 4 months ago functions-ad.php 1 year ago functions-components.php 3 months 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 3 months ago index.php 2 years ago load_modules.php 2 years ago
functions.php
122 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
108 /**
109 * Returns an empty array if the value is null.
110 *
111 * @param mixed $value The value to check.
112 *
113 * @return array
114 */
115 if ( ! function_exists( '__return_array_if_null' ) ) {
116 // phpcs:disable
117 function __return_array_if_null( $value ): array {
118 return $value ?? [];
119 }
120 // phpcs:enable
121 }
122