PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 13.4.5
Jetpack – WP Security, Backup, Speed, & Growth v13.4.5
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 / modules / wordads / php / class-wordads-sidebar-widget.php
jetpack / modules / wordads / php Last commit date
networks 5 years ago class-wordads-admin.php 2 years ago class-wordads-api.php 4 years ago class-wordads-california-privacy.php 3 years ago class-wordads-ccpa-do-not-sell-link-widget.php 3 years ago class-wordads-consent-management-provider.php 2 years ago class-wordads-cron.php 5 years ago class-wordads-params.php 2 years ago class-wordads-sidebar-widget.php 2 years ago
class-wordads-sidebar-widget.php
168 lines
1 <?php
2 /**
3 * Widget for adding ads to a sidebar.
4 *
5 * @package automattic/jetpack
6 */
7
8 /**
9 * Widget for inserting an ad into your sidebar
10 *
11 * @since 4.5.0
12 */
13 class WordAds_Sidebar_Widget extends WP_Widget {
14
15 /**
16 * Allowed tags.
17 *
18 * @var string[]
19 */
20 private static $allowed_tags = array( 'mrec', 'wideskyscraper', 'leaderboard' );
21
22 /**
23 * Number of widgets.
24 *
25 * @var int
26 */
27 private static $num_widgets = 0;
28
29 /**
30 * WordAds_Sidebar_Widget constructor.
31 */
32 public function __construct() {
33 parent::__construct(
34 'wordads_sidebar_widget',
35 /** This filter is documented in modules/widgets/facebook-likebox.php */
36 apply_filters( 'jetpack_widget_name', 'Ads' ),
37 array(
38 'description' => __( 'Insert an ad unit wherever you can place a widget.', 'jetpack' ),
39 'customize_selective_refresh' => true,
40 )
41 );
42
43 add_filter( 'widget_types_to_hide_from_legacy_widget_block', array( $this, 'hide_widget_in_block_editor' ) );
44 }
45
46 /**
47 * Remove the Ad widget from the Legacy Widget block
48 *
49 * @param array $widget_types List of widgets that are currently removed from the Legacy Widget block.
50 *
51 * @return array $widget_types New list of widgets that will be removed.
52 */
53 public function hide_widget_in_block_editor( $widget_types ) {
54 $widget_types[] = 'wordads_sidebar_widget';
55 return $widget_types;
56 }
57
58 /**
59 * The Widget outputter.
60 *
61 * @param array $args Widget args.
62 * @param array $instance The Widget instance.
63 *
64 * @return bool|void
65 */
66 public function widget( $args, $instance ) {
67 global $wordads;
68 if ( $wordads->should_bail() ) {
69 return false;
70 }
71
72 if ( ! isset( $instance['unit'] ) ) {
73 $instance['unit'] = 'mrec';
74 }
75
76 ++self::$num_widgets;
77 $about = __( 'Advertisements', 'jetpack' );
78 $width = WordAds::$ad_tag_ids[ $instance['unit'] ]['width'];
79 $height = WordAds::$ad_tag_ids[ $instance['unit'] ]['height'];
80 $unit_id = 1 === self::$num_widgets ? 3 : self::$num_widgets + 3; // 2nd belowpost is '4'
81 $section_id = 0 === $wordads->params->blog_id ?
82 WORDADS_API_TEST_ID :
83 $wordads->params->blog_id . $unit_id;
84
85 $snippet = '';
86 if ( $wordads->option( 'wordads_house', true ) ) {
87 $unit = 'mrec';
88 if ( 'leaderboard' === $instance['unit'] && ! $this->params->mobile_device ) {
89 $unit = 'leaderboard';
90 } elseif ( 'wideskyscraper' === $instance['unit'] ) {
91 $unit = 'widesky';
92 }
93
94 $snippet = $wordads->get_house_ad( $unit );
95 } else {
96 // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
97 echo $wordads->get_ad_snippet( $section_id, $height, $width, 'widget' );
98 return;
99 }
100
101 ?>
102 <div class="wpcnt">
103 <div class="wpa">
104 <span class="wpa-about"><?php echo esc_html( $about ); ?></span>
105 <div class="u <?php echo esc_attr( $instance['unit'] ); ?>">
106 <?php echo $snippet; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
107 </div>
108 </div>
109 </div>
110 <?php
111 }
112
113 /**
114 * The widget settings form.
115 *
116 * @param array $instance Widget instance.
117 *
118 * @return string|void
119 */
120 public function form( $instance ) {
121 // ad unit type.
122 if ( isset( $instance['unit'] ) ) {
123 $unit = $instance['unit'];
124 } else {
125 $unit = 'mrec';
126 }
127 ?>
128 <p>
129 <label for="<?php echo esc_attr( $this->get_field_id( 'unit' ) ); ?>"><?php esc_html_e( 'Tag Dimensions:', 'jetpack' ); ?></label>
130 <select class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'unit' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'unit' ) ); ?>">
131 <?php
132 foreach ( WordAds::$ad_tag_ids as $ad_unit => $properties ) {
133 if ( ! in_array( $ad_unit, self::$allowed_tags, true ) ) {
134 continue;
135 }
136
137 $splits = explode( '_', $properties['tag'] );
138 $unit_pretty = "{$splits[0]} {$splits[1]}";
139 $selected = selected( $ad_unit, $unit, false );
140 echo "<option value='", esc_attr( $ad_unit ), "' ", esc_attr( $selected ), '>', esc_html( $unit_pretty ), '</option>';
141 }
142 ?>
143 </select>
144 </p>
145 <?php
146 }
147
148 /**
149 * The Widget updater.
150 *
151 * @param array $new_instance The revised instance.
152 * @param array $old_instance Original instance.
153 *
154 * @return array
155 */
156 public function update( $new_instance, $old_instance ) {
157 $instance = $old_instance;
158
159 if ( in_array( $new_instance['unit'], self::$allowed_tags, true ) ) {
160 $instance['unit'] = $new_instance['unit'];
161 } else {
162 $instance['unit'] = 'mrec';
163 }
164
165 return $instance;
166 }
167 }
168