PluginProbe ʕ •ᴥ•ʔ
Advanced Ads – Ad Manager & AdSense / trunk
Advanced Ads – Ad Manager & AdSense vtrunk
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 days ago admin 2 days ago ads 2 days ago compatibility 2 days ago crons 2 days ago frontend 2 days ago groups 2 days ago importers 2 days ago installation 1 year ago interfaces 4 months ago license 3 months ago placements 2 days ago rest 1 year ago traits 2 days ago utilities 2 days ago cap_map.php 3 years ago class-assets-registry.php 3 weeks ago class-autoloader.php 2 days ago class-cache-invalidator.php 2 days ago class-constants.php 1 year ago class-content-injector.php 3 weeks 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 days ago class-post-data.php 10 months ago class-shortcodes.php 2 days ago class-upgrades.php 1 year ago class-widget.php 11 months ago default-hooks.php 4 months ago functions-ad.php 2 days ago functions-components.php 3 months ago functions-conditional.php 1 year ago functions-core.php 1 year ago functions-group.php 2 days ago functions-placement.php 2 days ago functions.php 2 days ago index.php 2 years ago load_modules.php 2 years ago
functions.php
108 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 * 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 * @param mixed $value The value to check.
98 *
99 * @return array
100 */
101 if ( ! function_exists( '__return_array_if_null' ) ) {
102 // phpcs:disable
103 function __return_array_if_null( $value ): array {
104 return $value ?? [];
105 }
106 // phpcs:enable
107 }
108