PluginProbe ʕ •ᴥ•ʔ
Advanced Ads – Ad Manager & AdSense / 2.0.25
Advanced Ads – Ad Manager & AdSense v2.0.25
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 10 months ago class-ad-content.php 1 week ago class-ad-dummy.php 1 year ago class-ad-factory.php 1 day ago class-ad-group-relation.php 1 year ago class-ad-group.php 5 months ago class-ad-image.php 1 year ago class-ad-plain.php 1 week ago class-ad-repository.php 1 day ago class-ad-types.php 1 day ago class-ads.php 1 day 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