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 / ads / class-ad-plain.php
advanced-ads / includes / ads Last commit date
types 3 weeks ago class-ad-content.php 2 months ago class-ad-dummy.php 1 year ago class-ad-factory.php 1 month ago class-ad-group-relation.php 3 weeks ago class-ad-group.php 6 months ago class-ad-image.php 3 weeks ago class-ad-plain.php 2 months ago class-ad-repository.php 3 weeks ago class-ad-types.php 1 month ago class-ads.php 1 month ago
class-ad-plain.php
82 lines
1 <?php
2 /**
3 * This class is responsible to model plain ads.
4 *
5 * @package AdvancedAds
6 * @author Advanced Ads <info@wpadvancedads.com>
7 * @since 1.48.0
8 */
9
10 namespace AdvancedAds\Ads;
11
12 use AdvancedAds\Abstracts\Ad;
13 use AdvancedAds\Interfaces\Ad_Interface;
14 use AdvancedAds\Utilities\Conditional;
15 use AdvancedAds\Utilities\WordPress;
16
17 defined( 'ABSPATH' ) || exit;
18
19 /**
20 * Plain ad.
21 */
22 class Ad_Plain extends Ad implements Ad_Interface {
23
24 /**
25 * Prepare output for frontend.
26 *
27 * @return string
28 */
29 public function prepare_frontend_output(): string {
30 $content = $this->get_content();
31
32 // Evaluate the code as PHP if setting was never saved or is allowed.
33 if ( $this->is_php_allowed() && Conditional::is_php_allowed() ) {
34 ob_start();
35 eval( '?>' . $content ); // phpcs:ignore Squiz.PHP.Eval.Discouraged -- this is specifically eval'd so allow eval here.
36 $content = ob_get_clean();
37 }
38
39 if ( ! is_string( $content ) ) {
40 return '';
41 }
42
43 /**
44 * Apply do_blocks if the content has block code
45 * works with WP 5.0.0 and later
46 */
47 if ( function_exists( 'has_blocks' ) && has_blocks( $content ) ) {
48 $content = do_blocks( $content );
49 }
50
51 if ( $this->is_shortcode_allowed() ) {
52 $content = $this->do_shortcode( $content );
53 }
54
55 // Add 'loading' attribute if applicable, available from WP 5.5.
56 if (
57 function_exists( 'wp_lazy_loading_enabled' )
58 && wp_lazy_loading_enabled( 'img', 'the_content' )
59 && preg_match_all( '/<img\s[^>]+>/', $content, $matches )
60 ) {
61 foreach ( $matches[0] as $image ) {
62 if ( strpos( $image, 'loading=' ) !== false ) {
63 continue;
64 }
65
66 // Optimize image HTML tag with loading attributes based on WordPress filter context.
67 $content = str_replace( $image, WordPress::img_tag_add_loading_attr( $image, 'the_content' ), $content );
68 }
69 }
70
71 return (
72 (
73 ( defined( 'DISALLOW_UNFILTERED_HTML' ) && DISALLOW_UNFILTERED_HTML ) ||
74 ! Conditional::can_author_unfiltered_html( (int) get_post_field( 'post_author', $this->get_id() ) )
75 )
76 && version_compare( $this->get_prop( 'last_save_version' ) ?? '0', '1.35.0', 'ge' )
77 )
78 ? wp_kses_post( $content )
79 : $content;
80 }
81 }
82