PluginProbe ʕ •ᴥ•ʔ
Advanced Ads – Ad Manager & AdSense / 2.0.24
Advanced Ads – Ad Manager & AdSense v2.0.24
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 / types / type-plain.php
advanced-ads / includes / ads / types Last commit date
type-amp.php 1 year ago type-content.php 10 months ago type-dummy.php 1 year ago type-gam.php 1 year ago type-group.php 1 year ago type-image.php 1 year ago type-plain.php 1 year ago type-unknown.php 1 year ago
type-plain.php
236 lines
1 <?php
2 /**
3 * This class represents the "Plain" ad type.
4 *
5 * @package AdvancedAds
6 * @author Advanced Ads <info@wpadvancedads.com>
7 * @since 1.48.0
8 */
9
10 namespace AdvancedAds\Ads\Types;
11
12 use AdvancedAds\Ads\Ad_Plain;
13 use AdvancedAds\Interfaces\Ad_Type;
14 use AdvancedAds\Utilities\Conditional;
15
16 defined( 'ABSPATH' ) || exit;
17
18 /**
19 * Type Plain.
20 */
21 class Plain implements Ad_Type {
22
23 /**
24 * Get the unique identifier (ID) of the ad type.
25 *
26 * @return string The unique ID of the ad type.
27 */
28 public function get_id(): string {
29 return 'plain';
30 }
31
32 /**
33 * Get the class name of the object as a string.
34 *
35 * @return string
36 */
37 public function get_classname(): string {
38 return Ad_Plain::class;
39 }
40
41 /**
42 * Get the title or name of the ad type.
43 *
44 * @return string The title of the ad type.
45 */
46 public function get_title(): string {
47 return __( 'Plain Text and Code', 'advanced-ads' );
48 }
49
50 /**
51 * Get a description of the ad type.
52 *
53 * @return string The description of the ad type.
54 */
55 public function get_description(): string {
56 return __( 'Any ad network, Amazon, customized AdSense codes, shortcodes, and code like JavaScript, HTML or PHP.', 'advanced-ads' );
57 }
58
59 /**
60 * Check if this ad type requires premium.
61 *
62 * @return bool True if premium is required; otherwise, false.
63 */
64 public function is_premium(): bool {
65 return false;
66 }
67
68 /**
69 * Get the URL for upgrading to this ad type.
70 *
71 * @return string The upgrade URL for the ad type.
72 */
73 public function get_upgrade_url(): string {
74 return '';
75 }
76
77 /**
78 * Get the URL for upgrading to this ad type.
79 *
80 * @return string The upgrade URL for the ad type.
81 */
82 public function get_image(): string {
83 return ADVADS_BASE_URL . 'assets/img/ad-types/plain.svg';
84 }
85
86 /**
87 * Check if this ad type has size parameters.
88 *
89 * @return bool True if has size parameters; otherwise, false.
90 */
91 public function has_size(): bool {
92 return true;
93 }
94
95 /**
96 * Output for the ad parameters metabox
97 *
98 * @param Ad_Plain $ad Ad instance.
99 *
100 * @return void
101 */
102 public function render_parameters( $ad ): void {
103 $content = $ad->get_content() ?? '';
104 ?>
105 <p class="description">
106 <?php esc_html_e( 'Insert plain text or code into this field.', 'advanced-ads' ); ?>
107 </p>
108 <?php $this->error_unfiltered_html( $ad ); ?>
109 <textarea
110 id="advads-ad-content-plain"
111 cols="40"
112 rows="10"
113 name="advanced_ad[content]"
114 ><?php echo esc_textarea( $content ); ?></textarea>
115 <?php
116 include ADVADS_ABSPATH . 'views/admin/metaboxes/ads/ad-info-after-textarea.php';
117
118 $this->render_php_allow( $ad );
119 $this->render_shortcodes_allow( $ad );
120 ?>
121 <?php
122 }
123
124 /**
125 * Render php output field
126 *
127 * @param Ad_Plain $ad Ad instance.
128 *
129 * @return void
130 */
131 private function render_php_allow( $ad ) {
132 ?>
133 <label class="label" for="advads-parameters-php">
134 <?php esc_html_e( 'Allow PHP', 'advanced-ads' ); ?>
135 </label>
136 <div>
137 <input type="hidden" name="advanced_ad[allow_php]" value="off">
138 <input id="advads-parameters-php" type="checkbox" name="advanced_ad[allow_php]" value="on"<?php checked( $ad->is_php_allowed() ); ?><?php disabled( ! Conditional::is_php_allowed() ); ?> />
139 <span class="advads-help">
140 <span class="advads-tooltip">
141 <?php
142 echo wp_kses(
143 __( 'Execute PHP code (wrapped in <code>&lt;?php ?&gt;</code>)', 'advanced-ads' ),
144 [
145 'code' => [],
146 ]
147 );
148 ?>
149 </span>
150 </span>
151 <?php if ( ! Conditional::is_php_allowed() ) : ?>
152 <p class="advads-notice-inline advads-error">
153 <?php
154 printf(
155 /* translators: The name of the constant preventing PHP execution */
156 esc_html__( 'Executing PHP code has been disallowed by %s', 'advanced-ads' ),
157 sprintf( '<code>%s</code>', defined( 'DISALLOW_FILE_EDIT' ) && DISALLOW_FILE_EDIT ? 'DISALLOW_FILE_EDIT' : 'ADVANCED_ADS_DISALLOW_PHP' )
158 );
159 ?>
160 </p>
161 <?php else : ?>
162 <p class="advads-notice-inline advads-error" id="advads-allow-php-warning" style="display:none;">
163 <?php esc_html_e( 'Using PHP code can be dangerous. Please make sure you know what you are doing.', 'advanced-ads' ); ?>
164 </p>
165 <?php endif; ?>
166 <p class="advads-notice-inline advads-error" id="advads-parameters-php-warning" style="display:none;">
167 <?php esc_html_e( 'No PHP tag detected in your code.', 'advanced-ads' ); ?> <?php esc_html_e( 'Uncheck this checkbox for improved performance.', 'advanced-ads' ); ?>
168 </p>
169 </div>
170 <hr/>
171 <?php
172 }
173
174 /**
175 * Render allow shortcodes field.
176 *
177 * @param Ad_Plain $ad Ad instance.
178 *
179 * @return void
180 */
181 private function render_shortcodes_allow( $ad ): void {
182 $allow_shortcodes = absint( $ad->is_shortcode_allowed() );
183 ?>
184 <label class="label"
185 for="advads-parameters-shortcodes"><?php esc_html_e( 'Execute shortcodes', 'advanced-ads' ); ?></label>
186 <div>
187 <input type="hidden" name="advanced_ad[output][allow_shortcodes]" value="off"/>
188 <input id="advads-parameters-shortcodes" type="checkbox" name="advanced_ad[output][allow_shortcodes]" value="on" <?php checked( $allow_shortcodes ); ?>/>
189 <p class="advads-notice-inline advads-error" id="advads-parameters-shortcodes-warning"
190 style="display:none;"><?php esc_html_e( 'No shortcode detected in your code.', 'advanced-ads' ); ?> <?php esc_html_e( 'Uncheck this checkbox for improved performance.', 'advanced-ads' ); ?></p>
191 </div>
192 <hr/>
193 <?php
194 }
195
196 /**
197 * Check if we're on an ad edit screen, if yes and the user does not have `unfiltered_html` permissions,
198 * show an admin notice.
199 *
200 * @param Ad_Plain $ad Ad instance.
201 *
202 * @return void
203 */
204 private function error_unfiltered_html( $ad ): void {
205 $author_id = absint( get_post_field( 'post_author', $ad->get_id() ) );
206 $user = wp_get_current_user();
207 $current_user_id = $user->ID;
208
209 if ( Conditional::can_author_unfiltered_html( $author_id ) ) {
210 return;
211 }
212
213 ?>
214 <p class="advads-notice-inline advads-error">
215 <?php
216 if ( $author_id === $current_user_id ) {
217 esc_html_e( 'You do not have sufficient permissions to include all HTML tags.', 'advanced-ads' );
218 } else {
219 esc_html_e( 'The creator of the ad does not have sufficient permissions to include all HTML tags.', 'advanced-ads' );
220 if (
221 current_user_can( 'unfiltered_html' )
222 && Conditional::has_user_role_on_site()
223 && ! empty( $user->caps['administrator'] ) // A superadmin won't be listed in the author dropdown if he's registered as something other than admin on a blog of the network.
224 ) {
225 printf( '<button type="button" onclick="(()=>Advanced_Ads_Admin.reassign_ad(%d))();" class="button button-primary">%s</button>', esc_attr( $current_user_id ), esc_html__( 'Assign ad to me', 'advanced-ads' ) );
226 }
227 }
228 ?>
229 <a href="https://wpadvancedads.com/manual/ad-types/#Plain_Text_and_Code" class="advads-manual-link" target="_blank" rel="noopener">
230 <?php esc_html_e( 'Manual', 'advanced-ads' ); ?>
231 </a>
232 </p>
233 <?php
234 }
235 }
236