PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 13.9.2
Jetpack – WP Security, Backup, Speed, & Growth v13.9.2
12.0.3 12.1.3 12.2.3 12.3.2 12.4.2 12.5.2 12.6.4 12.7.3 12.8.3 12.9.5 13.0.2 13.1.5 13.2.4 13.3.3 13.4.5 13.5.2 13.6.2 13.7.2 13.8.3 13.9.2 14.0.1 14.1.1 14.2.2 14.3.1 14.4.2 14.5.1 14.6.1 14.7.1 14.8.1 14.9.2 15.0.3 15.1.2 15.2.1 15.3.2 15.4.1 15.5.1 15.6.1 15.7.2 15.8.1 15.9.2 16.0.2 16.1.3 16.2-a.5 16.2-a.3 16.1.2 16.2-a.1 16.1.1 16.1 16.1-beta 16.1-beta.2 16.1-beta.3 16.1-a.5 16.1-a.3 16.0.1 16.1-a.1 16.0 16.0-beta 16.0-a.7 16.0-a.5 15.9.1 16.0-a.3 16.0-a.1 15.9 15.9-beta 15.9-a.7 15.9-a.5 15.9-a.3 15.9-a.1 15.8 15.8-beta 15.8-a.7 15.8-a.5 5.2.5 5.3.4 5.4.4 5.5.5 5.6.5 5.7.5 5.8.4 5.9.4 6.0.4 6.1 6.1.1 6.1.2 6.1.3 6.1.4 6.1.5 6.2 6.2.1 6.2.2 6.2.3 6.2.4 6.2.5 6.3 6.3.1 6.3.2 6.3.3 6.3.4 6.3.5 6.3.6 6.3.7 6.4 6.4.1 6.4.2 6.4.3 6.4.4 6.4.5 6.4.6 6.5 6.5.1 6.5.2 6.5.3 6.5.4 6.6 6.6.1 6.6.2 6.6.3 6.6.4 6.6.5 6.7 6.7.1 6.7.2 6.7.3 6.7.4 6.8 6.8.1 6.8.2 6.8.3 6.8.4 6.8.5 6.9 6.9.1 6.9.2 6.9.3 6.9.4 7.0 7.0.1 7.0.2 7.0.3 7.0.4 7.0.5 7.1 7.1.1 7.1.2 7.1.3 7.1.4 7.1.5 7.2 7.2.1 7.2.1.1 7.2.2 7.2.3 7.2.4 7.2.5 7.3 7.3.0.1 7.3.1 7.3.1.1 7.3.2 7.3.3 7.3.4 7.3.5 7.4 7.4.1 7.4.2 7.4.3 7.4.4 7.4.5 7.5 7.5.0.1 7.5.1 7.5.2 7.5.3 7.5.4 7.5.5 7.5.6 7.5.7 7.6 7.6.1 7.6.2 7.6.3 7.6.4 7.7 7.7.1 7.7.2 7.7.3 7.7.4 7.7.5 7.7.6 7.8 7.8.1 7.8.2 7.8.3 7.8.4 7.9 7.9.1 7.9.2 7.9.3 7.9.4 8.0 8.0.1 8.0.2 8.0.3 8.1 8.1.1 8.1.2 8.1.3 8.1.4 8.2 8.2.0.1 8.2.1 8.2.2 8.2.3 8.2.4 8.2.5 8.2.6 8.3 8.3.1 8.3.2 8.3.3 8.4 8.4.1 8.4.2 8.4.3 8.4.4 8.4.5 8.5 8.5.1 8.5.2 8.5.3 8.6 8.6.1 8.6.2 8.6.3 8.6.4 8.7 8.7.0.1 8.7.1 8.7.2 8.7.3 8.7.4 8.8 8.8.1 8.8.2 8.8.3 8.8.4 8.8.5 8.9 8.9.1 8.9.2 8.9.3 8.9.4 9.0 9.0.1 9.0.2 9.0.3 9.0.4 9.0.5 9.1 9.1.1 9.1.2 9.1.3 9.2 9.2.1 9.2.2 9.2.3 9.2.4 9.3 9.3.1 9.3.2 9.3.3 9.3.4 9.3.5 9.4 9.4.1 9.4.2 9.4.3 9.4.4 9.5 9.5.1 9.5.2 9.5.3 9.5.4 9.5.5 9.6 9.6.1 9.6.2 9.6.3 9.6.4 9.7 9.7.1 9.7.2 15.7-beta.2 9.7.3 15.7.1 9.8 15.8-a.1 9.8.1 15.8-a.3 9.8.2 2.0.9 9.8.3 2.1.7 9.9 2.2.10 9.9.1 2.3.10 9.9.2 2.4.7 9.9.3 2.5.5 2.6.6 2.7.5 2.8.5 2.9.6 3.0.6 3.1.5 3.2.5 3.3.6 3.4.6 3.5.6 3.6.4 3.7.5 3.8.5 3.9.10 4.0.7 4.1.4 4.2.5 4.3.5 4.4.5 4.5.3 4.6.3 4.7.4 4.8.5 4.9.3 5.0.3 5.1.4 trunk 10.0 10.0.1 10.0.2 10.1 10.1.1 10.1.2 10.2 10.2.1 10.2.2 10.2.3 10.3 10.3.1 10.3.2 10.4 10.4.1 10.4.2 10.5 10.5.1 10.5.2 10.5.3 10.6 10.6.1 10.6.2 10.7 10.7.1 10.7.2 10.8 10.8.1 10.8.2 10.9 10.9.1 10.9.2 10.9.3 11.0 11.0.1 11.0.2 11.1 11.1.1 11.1.2 11.1.3 11.1.4 11.2 11.2.1 11.2.2 11.3 11.3.1 11.3.2 11.3.3 11.3.4 11.4 11.4.1 11.4.2 11.5 11.5.1 11.5.2 11.5.3 11.6 11.6.1 11.6.2 11.7 11.7.1 11.7.2 11.7.3 11.8 11.8.3 11.8.4 11.8.5 11.8.6 11.9 11.9.1 11.9.2 11.9.3 12.0 12.0.1 12.0.2 12.1 12.1.1 12.1.2 12.2 12.2.1 12.2.2 12.3 12.3.1 12.4 12.4.1 12.5 12.5.1 12.6 12.6.1 12.6.2 12.6.3 12.7 12.7.1 12.7.2 12.8 12.8.1 12.8.2 12.9 12.9.1 12.9.2 12.9.3 12.9.4 13.0 13.0.1 13.1 13.1.1 13.1.2 13.1.3 13.1.4 13.2 13.2.1 13.2.2 13.2.3 13.3 13.3.1 13.3.2 13.4 13.4.1 13.4.2 13.4.3 13.4.4 13.5 13.5.1 13.6 13.6.1 13.7 13.7.1 13.8 13.8.1 13.8.2 13.9 13.9.1 14.0 14.1 14.2 14.2.1 14.3 14.4 14.4.1 14.5 14.6 14.7 14.8 14.9 14.9.1 15.0 15.0.1 15.0.2 15.1 15.1.1 15.2 15.3 15.3.1 15.4 15.5 15.6 15.7 15.7-a.1 15.7-a.3 15.7-a.5 15.7-a.7 15.7-beta
jetpack / extensions / blocks / wordads / wordads.php
jetpack / extensions / blocks / wordads Last commit date
wordads.php 2 years ago
wordads.php
139 lines
1 <?php //phpcs:ignore WordPress.Files.FileName.InvalidClassFileName
2 /**
3 * Ads Block.
4 *
5 * @since 7.1.0
6 *
7 * @package automattic/jetpack
8 */
9
10 namespace Automattic\Jetpack\Extensions;
11
12 use Automattic\Jetpack\Blocks;
13 use Automattic\Jetpack\Current_Plan as Jetpack_Plan;
14 use Jetpack;
15 use Jetpack_Gutenberg;
16
17 /**
18 * Jetpack's Ads Block class.
19 *
20 * @since 7.1.0
21 */
22 class WordAds {
23 /**
24 * Check if site is on WP.com Simple.
25 *
26 * @return bool
27 */
28 private static function is_wpcom() {
29 return defined( 'IS_WPCOM' ) && IS_WPCOM;
30 }
31
32 /**
33 * Check if the WordAds module is active.
34 *
35 * @return bool
36 */
37 private static function is_jetpack_module_active() {
38 return method_exists( 'Jetpack', 'is_module_active' ) && Jetpack::is_module_active( 'wordads' );
39 }
40
41 /**
42 * Check if the site is approved for ads for WP.com Simple sites.
43 *
44 * @return bool
45 */
46 private static function is_available() {
47 if ( self::is_wpcom() ) {
48 return has_any_blog_stickers( array( 'wordads', 'wordads-approved', 'wordads-approved-misfits' ), get_current_blog_id() );
49 }
50
51 return Jetpack_Plan::supports( 'wordads' );
52 }
53
54 /**
55 * Register the WordAds block.
56 */
57 public static function register() {
58 if ( self::is_available() ) {
59 Blocks::jetpack_register_block(
60 __DIR__,
61 array(
62 'render_callback' => array( __CLASS__, 'gutenblock_render' ),
63 )
64 );
65 }
66 }
67
68 /**
69 * Set if the WordAds block is available.
70 */
71 public static function set_availability() {
72 $block_name = Blocks::get_block_name( __DIR__ );
73
74 if ( ! self::is_available() ) {
75 Jetpack_Gutenberg::set_extension_unavailable( $block_name, 'WordAds unavailable' );
76 return;
77 }
78 // Make the block available. Just in case it wasn't registered before.
79 Jetpack_Gutenberg::set_extension_available( $block_name );
80 }
81
82 /**
83 * Renders the WordAds block.
84 *
85 * @param array $attr Block attributes.
86 *
87 * @return string Block HTML.
88 */
89 public static function gutenblock_render( $attr ) {
90 global $wordads;
91
92 /** If the WordAds module is not active, don't render the block. */
93 if ( ! self::is_jetpack_module_active() ) {
94 return '';
95 }
96
97 /** This filter is already documented in modules/wordads/class-wordads.php `insert_ad()` */
98 if (
99 empty( $wordads )
100 || empty( $wordads->params )
101 || is_feed()
102 || apply_filters( 'wordads_inpost_disable', false )
103 ) {
104 return '';
105 }
106
107 if ( ! empty( $attr['hideMobile'] ) && $wordads->params->is_mobile() ) {
108 return '';
109 }
110
111 if ( ! self::is_wpcom() && $wordads->option( 'wordads_house' ) ) {
112 return $wordads->get_ad( 'inline', 'house' );
113 }
114
115 // section_id is mostly deprecated at this point, but it helps us (devs) keep track of which ads end up where
116 // 6 is to keep track of gutenblock ads.
117 $section_id = $wordads->params->blog_id . '6';
118 $align = 'center';
119 if ( isset( $attr['align'] ) && in_array( $attr['align'], array( 'left', 'center', 'right' ), true ) ) {
120 $align = $attr['align'];
121 }
122 $align = 'align' . $align;
123
124 $ad_tag_ids = $wordads->get_ad_tags();
125 $format = 'mrec';
126 if ( isset( $attr['format'] ) && isset( $ad_tag_ids[ $attr['format'] ] ) ) {
127 $format = $attr['format'];
128 }
129
130 $height = $ad_tag_ids[ $format ]['height'];
131 $width = $ad_tag_ids[ $format ]['width'];
132 $snippet = $wordads->get_ad_snippet( $section_id, $height, $width, 'gutenberg', $wordads->get_solo_unit_css() );
133 return $wordads->get_ad_div( 'inline', $snippet, array( $align ) );
134 }
135 }
136
137 add_action( 'init', array( 'Automattic\\Jetpack\\Extensions\\WordAds', 'register' ) );
138 add_action( 'jetpack_register_gutenberg_extensions', array( 'Automattic\\Jetpack\\Extensions\\WordAds', 'set_availability' ) );
139