PluginProbe ʕ •ᴥ•ʔ
Advanced Ads – Ad Manager & AdSense / 2.0.26
Advanced Ads – Ad Manager & AdSense v2.0.26
2.0.26 2.0.25 2.0.24 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 3 weeks ago admin 3 weeks ago ads 3 weeks ago compatibility 3 weeks ago crons 3 weeks ago frontend 3 weeks ago groups 3 weeks ago importers 3 weeks ago installation 3 weeks ago interfaces 3 weeks ago license 3 weeks ago placements 3 weeks ago rest 3 weeks ago traits 3 weeks ago utilities 3 weeks ago class-assets-registry.php 1 month ago class-autoloader.php 1 month ago class-cache-invalidator.php 3 weeks ago class-constants.php 3 weeks ago class-content-injector.php 3 weeks ago class-entities.php 5 months ago class-modal.php 3 weeks ago class-modules.php 3 weeks ago class-options.php 3 weeks ago class-plugin.php 3 weeks ago class-post-data.php 1 year ago class-shortcodes.php 3 weeks ago class-upgrades.php 3 weeks ago class-widget.php 3 weeks ago default-hooks.php 6 months ago functions-ad.php 3 weeks ago functions-components.php 3 weeks ago functions-conditional.php 1 year ago functions-core.php 1 year ago functions-group.php 3 weeks ago functions-placement.php 3 weeks ago functions.php 3 weeks ago index.php 2 years ago load_modules.php 3 weeks ago
functions.php
111 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<string, mixed> $args Additional arguments for the entity.
18 *
19 * @return array<string, mixed> 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<string, mixed> $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 * Get user IP address.
50 *
51 * @return bool|string IP address or false if not found
52 */
53 function get_user_ip_address() {
54 // phpcs:disable WordPress.Security.ValidatedSanitizedInput.MissingUnslash, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized -- NO NEED TO SANITIZE HEADERS
55
56 // Define the list of IP headers in the order of priority.
57 $ip_headers = [
58 'HTTP_CF_CONNECTING_IP', // Cloudflare.
59 'HTTP_CLIENT_IP', // General.
60 'HTTP_X_REAL_IP', // General.
61 'HTTP_X_FORWARDED_FOR', // General.
62 'HTTP_X_FORWARDED', // General.
63 'HTTP_X_CLUSTER_CLIENT_IP', // General.
64 'HTTP_FORWARDED_FOR', // General.
65 'HTTP_FORWARDED', // General.
66 'REMOTE_ADDR', // Default server value.
67 ];
68
69 // Get the server's IP address.
70 $server_ip = Params::server( 'SERVER_ADDR', '' );
71
72 foreach ( $ip_headers as $header ) {
73 // Check if the header exists and is not empty.
74 $data = Params::server( $header, '' );
75 if ( ! empty( $data ) ) {
76 // Split the header value by comma to handle multiple IP addresses.
77 $ip_list = explode( ',', $data );
78
79 foreach ( $ip_list as $ip ) {
80 // Trim whitespace and remove any 'for=' prefix from the IP address.
81 $ip = trim( str_replace( 'for=', '', $ip ) );
82
83 // Validate the IP address and ensure it's not the server's IP.
84 if ( filter_var( $ip, FILTER_VALIDATE_IP ) && $ip !== $server_ip ) {
85 return $ip;
86 }
87 }
88 }
89 }
90 // phpcs:enable
91 return false;
92 }
93
94 /**
95 * Returns an empty array if the value is null.
96 */
97 if ( ! function_exists( '__return_array_if_null' ) ) {
98 // phpcs:disable
99 /**
100 * Returns an empty array if the value is null.
101 *
102 * @param mixed $value The value to check.
103 *
104 * @return array<string, mixed>
105 */
106 function __return_array_if_null( $value ): array {
107 return $value ?? [];
108 }
109 // phpcs:enable
110 }
111