PluginProbe ʕ •ᴥ•ʔ
Advanced Ads – Ad Manager & AdSense / 1.53.2
Advanced Ads – Ad Manager & AdSense v1.53.2
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 / utilities / class-wordpress.php
advanced-ads / includes / utilities Last commit date
class-conditional.php 2 years ago class-data.php 2 years ago class-groups.php 2 years ago class-str.php 2 years ago class-wordpress.php 2 years ago index.php 2 years ago
class-wordpress.php
138 lines
1 <?php
2 /**
3 * The class provides utility functions related to WordPress.
4 *
5 * @package AdvancedAds
6 * @author Advanced Ads <info@wpadvancedads.com>
7 * @since 1.47.0
8 */
9
10 namespace AdvancedAds\Utilities;
11
12 use AdvancedAds\Framework\Utilities\Params;
13
14 defined( 'ABSPATH' ) || exit;
15
16 /**
17 * Utilities WordPress.
18 */
19 class WordPress {
20
21 /**
22 * Get the current action selected from the bulk actions dropdown.
23 *
24 * @return string|false The action name or False if no action was selected
25 */
26 public static function current_action() {
27 $action = Params::request( 'action' );
28 if ( '-1' !== $action ) {
29 return sanitize_key( $action );
30 }
31
32 $action = Params::request( 'action2' );
33 if ( '-1' !== $action ) {
34 return sanitize_key( $action );
35 }
36
37 return false;
38 }
39
40 /**
41 * Returns whether the current user has the specified capability.
42 *
43 * @param string $capability Capability name.
44 *
45 * @return bool
46 */
47 public static function user_can( $capability = 'manage_options' ): bool {
48 // Admins can do everything.
49 if ( current_user_can( 'manage_options' ) ) {
50 return true;
51 }
52
53 return current_user_can(
54 apply_filters( 'advanced-ads-capability', $capability )
55 );
56 }
57
58 /**
59 * Returns the capability needed to perform an action
60 *
61 * @param string $capability A capability to check, can be internal to Advanced Ads.
62 *
63 * @return string
64 */
65 public static function user_cap( $capability = 'manage_options' ) {
66 // Admins can do everything.
67 if ( current_user_can( 'manage_options' ) ) {
68 return 'manage_options';
69 }
70
71 return apply_filters( 'advanced-ads-capability', $capability );
72 }
73
74 /**
75 * Get site domain
76 *
77 * @param string $part Part of domain.
78 *
79 * @return string
80 */
81 public static function get_site_domain( $part = 'host' ): string {
82 $domain = wp_parse_url( home_url( '/' ), PHP_URL_HOST );
83
84 if ( 'name' === $part ) {
85 $domain = explode( '.', $domain );
86 $domain = count( $domain ) > 2 ? $domain[1] : $domain[0];
87 }
88
89 return $domain;
90 }
91
92 /**
93 * Returns true if the current request is a REST request.
94 *
95 * @return bool
96 */
97 public static function is_rest_request(): bool {
98 $request = Params::server( 'REQUEST_URI' );
99 if ( empty( $request ) ) {
100 return false;
101 }
102
103 return false !== strpos( $request, trailingslashit( rest_get_url_prefix() ) );
104 }
105
106 /**
107 * Returns true if a REST request has an Advanced Ads endpoint.
108 *
109 * @return bool
110 */
111 public static function is_gutenberg_writing_request(): bool {
112 global $wp;
113 $rest_route = $wp->query_vars['rest_route'] ?? '';
114
115 $is_writing = in_array( Params::server( 'REQUEST_METHOD' ), [ 'POST', 'PUT' ], true );
116 $is_gutenberg = strpos( $rest_route, '/wp/v2/posts' ) !== false || strpos( $rest_route, '/wp/v2/pages' ) !== false;
117
118 return $is_gutenberg && $is_writing;
119 }
120
121 /**
122 * Unserializes data only if it was serialized.
123 *
124 * @link https://patchstack.com/articles/unauthenticated-php-object-injection-in-flatsome-theme-3-17-5/
125 *
126 * @param string $data Data that might be unserialized.
127 *
128 * @return mixed Unserialized data can be any type.
129 */
130 public static function maybe_unserialize( $data ) {
131 if ( is_serialized( $data ) ) { // Don't attempt to unserialize data that wasn't serialized going in.
132 return @unserialize( trim( $data ), [ 'allowed_classes' => false ] ); // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged, WordPress.PHP.DiscouragedPHPFunctions.serialize_unserialize
133 }
134
135 return $data;
136 }
137 }
138