PluginProbe ʕ •ᴥ•ʔ
Advanced Ads – Ad Manager & AdSense / 2.0.24
Advanced Ads – Ad Manager & AdSense v2.0.24
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 / compatibility / class-inline-js.php
advanced-ads / includes / compatibility Last commit date
class-aawp-ad.php 1 week ago class-aawp.php 1 year ago class-admin-compatibility.php 1 week ago class-capability-manager.php 1 year ago class-compatibility.php 1 week ago class-inline-js.php 1 year ago class-peepso-ad.php 1 week ago class-peepso.php 1 week ago
class-inline-js.php
116 lines
1 <?php
2 /**
3 * Compatibility Inline JS.
4 *
5 * @package AdvancedAds
6 * @author Advanced Ads <info@wpadvancedads.com>
7 * @since 1.48.2
8 */
9
10 namespace AdvancedAds\Compatibility;
11
12 use AdvancedAds\Framework\Interfaces\Integration_Interface;
13
14 defined( 'ABSPATH' ) || exit;
15
16 /**
17 * Compatibility Inline JS.
18 */
19 class Inline_JS implements Integration_Interface {
20
21 /**
22 * Array that holds strings that should not be optimized by other plugins.
23 *
24 * @var array
25 */
26 private $inline_js;
27
28 /**
29 * Hook into WordPress.
30 *
31 * @return void
32 */
33 public function hooks(): void {
34 $this->critical_inline_js();
35
36 add_filter( 'rocket_delay_js_exclusions', [ $this, 'rocket_exclude_inline_js' ] );
37 add_filter( 'rocket_excluded_inline_js_content', [ $this, 'rocket_exclude_inline_js' ] );
38 add_filter( $this->get_cmplz_hook(), [ $this, 'complianz_exclude_inline_js' ], 10, 2 );
39 }
40
41 /**
42 * Prevent the 'advanced_ads_ready' function declaration from being merged with other JS
43 * and outputted into the footer. This is needed because WP Rocket does not output all
44 * the code that depends on this function into the footer.
45 *
46 * @param array $exclusions Patterns to match in inline JS content.
47 *
48 * @return array
49 */
50 public function rocket_exclude_inline_js( $exclusions ): array {
51 return array_merge( $exclusions, $this->inline_js );
52 }
53
54 /**
55 * Prevent Complianz from suppressing our head inline script.
56 *
57 * @param string $classname The class Complianz adds to the script, `cmplz-script` for prevented scripts, `cmplz-native` for allowed.
58 * @param string $total_match The script string.
59 *
60 * @return string
61 */
62 public function complianz_exclude_inline_js( $classname, $total_match ) {
63 // Early bail!!
64 if ( 'cmplz-native' === $classname ) {
65 return $classname;
66 }
67
68 foreach ( $this->inline_js as $critical_inline_js ) {
69 if ( false !== strpos( $total_match, $critical_inline_js ) ) {
70 return 'cmplz-native';
71 }
72 }
73
74 return $classname;
75 }
76
77 /**
78 * Get an array of strings to exclude when plugins "optimize" JS.
79 *
80 * @return void
81 */
82 private function critical_inline_js(): void {
83 $frontend_prefix = wp_advads()->get_frontend_prefix();
84 $default = [
85 sprintf( 'id="%sready"', $frontend_prefix ),
86 ];
87
88 /**
89 * Filters an array of strings of (inline) JavaScript "identifiers" that should not be "optimized"/delayed etc.
90 *
91 * @param array $default Array of excluded patterns.
92 */
93 $exclusions = apply_filters( 'advanced-ads-compatibility-critical-inline-js', $default, $frontend_prefix );
94
95 if ( ! is_array( $exclusions ) ) {
96 $exclusions = $default;
97 }
98
99 $this->inline_js = $exclusions;
100 }
101
102 /**
103 * Get cmplz hook by version
104 *
105 * @return string
106 */
107 private function get_cmplz_hook(): string {
108 $complianz_version = get_option( 'cmplz-current-version', false );
109 if ( $complianz_version && version_compare( $complianz_version, '6.0.0', '>=' ) ) {
110 return 'cmplz_service_category';
111 }
112
113 return 'cmplz_script_class';
114 }
115 }
116