PluginProbe ʕ •ᴥ•ʔ
Advanced Ads – Ad Manager & AdSense / 1.25.0
Advanced Ads – Ad Manager & AdSense v1.25.0
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 / classes / inline-css.php
advanced-ads / classes Last commit date
EDD_SL_Plugin_Updater.php 5 years ago ad-ajax.php 5 years ago ad-debug.php 6 years ago ad-health-notices.php 5 years ago ad-model.php 5 years ago ad-select.php 9 years ago ad.php 5 years ago ad_ajax_callbacks.php 5 years ago ad_group.php 5 years ago ad_placements.php 5 years ago ad_type_abstract.php 5 years ago ad_type_content.php 5 years ago ad_type_dummy.php 5 years ago ad_type_group.php 5 years ago ad_type_image.php 5 years ago ad_type_plain.php 5 years ago checks.php 5 years ago compatibility.php 5 years ago display-conditions.php 5 years ago filesystem.php 8 years ago frontend-notices.php 6 years ago frontend_checks.php 5 years ago inline-css.php 5 years ago plugin.php 5 years ago upgrades.php 6 years ago utils.php 5 years ago visitor-conditions.php 6 years ago widget.php 6 years ago
inline-css.php
135 lines
1 <?php
2
3 /**
4 * Handles Advanced Ads Inline CSS settings.
5 */
6 class Advanced_Ads_Inline_Css {
7 /**
8 * Singleton instance of the plugin
9 *
10 * @var self
11 */
12 protected static $instance;
13
14 /**
15 * Module options
16 *
17 * @var array
18 */
19 protected $options;
20
21 /**
22 * Holds the state if inline css should be outputted or not.
23 *
24 * @var bool
25 */
26 protected $add_inline_css;
27
28 /**
29 * Initialize the module
30 */
31 private function __construct() {
32 $this->options();
33
34 /**
35 * Filters the state if inline css should be outputted or not.
36 * Ajax CB container could have added inline css already.
37 *
38 * Set to false if an addon output inline css before the main plugin.
39 *
40 * @param bool Contains the state.
41 */
42 $this->add_inline_css = apply_filters( 'advanced-ads-output-inline-css', true );
43 if ( ! $this->add_inline_css ) {
44 return;
45 }
46
47 // Add inline css to the tcf container.
48 if ( ! empty( $this->options['enabled'] ) && $this->options['enabled'] === 'on' && $this->options['consent-method'] === 'iab_tcf_20' ) {
49 add_filter( 'advanced-ads-output-final', array( $this, 'add_tcf_container' ), 20, 2 );
50 $this->add_inline_css = false;
51 }
52 }
53
54 /**
55 * Adds inline css.
56 *
57 * @param array $wrapper Add wrapper array.
58 * @param string $css Custom inline css.
59 *
60 * @return array
61 */
62 public function add_css( $wrapper, $css ) {
63 $this->add_inline_css = apply_filters( 'advanced-ads-output-inline-css', $this->add_inline_css );
64 if ( ! $this->add_inline_css ) {
65 return $wrapper;
66 }
67
68 $styles = $this->get_styles_by_string( $css );
69 $wrapper['style'] = empty( $wrapper['style'] ) ? $styles : array_merge( $wrapper['style'], $styles );
70 $this->add_inline_css = false;
71
72 return $wrapper;
73 }
74
75 /**
76 * Extend TCF output with a container containing inline css.
77 *
78 * @param string $output The output string.
79 * @param Advanced_Ads_Ad $ad The ad object.
80 *
81 * @return string
82 */
83 public function add_tcf_container( $output, Advanced_Ads_Ad $ad ) {
84 return sprintf(
85 '<div class="tcf-container" style="' . $ad->options()['inline-css'] . '">%s</div>',
86 $output
87 );
88 }
89
90 /**
91 * Reformats css styles string to array.
92 *
93 * @param string $string CSS-Style.
94 *
95 * @return array
96 */
97 private function get_styles_by_string( $string ) {
98 $chunks = array_chunk( preg_split( '/[:;]/', $string ), 2 );
99
100 return array_combine( array_filter( array_column( $chunks, 0 ) ), array_filter( array_column( $chunks, 1 ) ) );
101 }
102
103 /**
104 * Return TCF options.
105 *
106 * @return array
107 */
108 public function options() {
109 if ( isset( $this->options ) ) {
110 return $this->options;
111 }
112
113 $this->options = get_option( Advanced_Ads_Privacy::OPTION_KEY, array() );
114 if ( isset( $this->options['enabled'] ) && empty( $this->options['consent-method'] ) ) {
115 $this->options['enabled'] = false;
116 }
117
118 return $this->options;
119 }
120
121 /**
122 * Return an instance of Advanced_Ads_Inline_Css
123 *
124 * @return self
125 */
126 public static function get_instance() {
127 // If the single instance hasn't been set, set it now.
128 if ( self::$instance === null ) {
129 self::$instance = new self();
130 }
131
132 return self::$instance;
133 }
134 }
135