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 / admin / class-metabox-ad-settings.php
advanced-ads / includes / admin Last commit date
ads 1 week ago groups 1 week ago metaboxes 1 year ago pages 2 days ago placements 2 days ago class-action-links.php 1 week ago class-addon-box.php 2 days ago class-addon-updater.php 2 days ago class-admin-menu.php 2 days ago class-admin-notices.php 1 year ago class-ajax.php 2 days ago class-app.php 2 days ago class-assets.php 2 days ago class-authors.php 1 year ago class-edd-updater.php 2 days ago class-license-admin-post.php 2 days ago class-list-filters.php 1 week ago class-marketing.php 1 year ago class-metabox-ad-settings.php 1 year ago class-metabox-ad.php 1 year ago class-misc.php 1 week ago class-page-quick-edit.php 2 days ago class-plugin-auto-update.php 2 days ago class-plugin-installer.php 2 days ago class-post-list.php 1 year ago class-post-types.php 1 week ago class-screen-options.php 3 months ago class-settings.php 2 days ago class-shortcode-creator.php 1 year ago class-system-info.php 1 year ago class-tinymce.php 2 years ago class-translation-promo.php 1 year ago class-upgrades.php 1 year ago class-version-control.php 3 months ago class-welcome.php 1 year ago class-wordpress-dashboard.php 1 year ago index.php 2 years ago
class-metabox-ad-settings.php
134 lines
1 <?php
2 /**
3 * Ad settings metabox.
4 *
5 * @package AdvancedAds
6 * @author Advanced Ads <info@wpadvancedads.com>
7 * @since 1.48.2
8 */
9
10 namespace AdvancedAds\Admin;
11
12 use Advanced_Ads;
13 use AdvancedAds\Constants;
14 use AdvancedAds\Utilities\Validation;
15 use AdvancedAds\Utilities\Conditional;
16 use AdvancedAds\Framework\Utilities\Params;
17 use AdvancedAds\Framework\Interfaces\Integration_Interface;
18
19 defined( 'ABSPATH' ) || exit;
20
21 /**
22 * Ad settings metabox.
23 */
24 class Metabox_Ad_Settings implements Integration_Interface {
25
26 /**
27 * Ad setting post meta key
28 *
29 * @var string
30 */
31 const SETTING_METAKEY = '_advads_ad_settings';
32
33
34 /**
35 * Hook into WordPress.
36 *
37 * @return void
38 */
39 public function hooks(): void {
40 add_action( 'add_meta_boxes', [ $this, 'add_meta_box' ] );
41 add_action( 'save_post', [ $this, 'save_settings' ], 10, 2 );
42 }
43
44 /**
45 * Add a meta box to post type edit screens with ad settings
46 *
47 * @param string $post_type current post type.
48 *
49 * @return void
50 */
51 public function add_meta_box( $post_type = '' ): void {
52 // Early bail!!
53 if ( ! Conditional::user_can( 'advanced_ads_edit_ads' ) || ! is_post_type_viewable( $post_type ) ) {
54 return;
55 }
56
57 $options = Advanced_Ads::get_instance()->options();
58 $disabled_post_types = $options['pro']['general']['disable-by-post-types'] ?? [];
59 $render_what = in_array( $post_type, $disabled_post_types, true ) ? 'display_disable_notice' : 'display_settings';
60
61 add_meta_box(
62 'advads-ad-settings',
63 __( 'Ad Settings', 'advanced-ads' ),
64 [ $this, $render_what ],
65 $post_type,
66 'side',
67 'low'
68 );
69 }
70
71 /**
72 * Render meta box for ad settings notice when ads disabled for post type
73 *
74 * @param WP_Post $post The post object.
75 *
76 * @return void
77 */
78 public function display_disable_notice( $post ): void {
79 $labels = get_post_type_object( $post->post_type )->labels;
80 include ADVADS_ABSPATH . 'views/notices/ad-disable-post-type.php';
81 }
82
83 /**
84 * Render meta box for ad settings on a per post basis
85 *
86 * @param WP_Post $post The post object.
87 *
88 * @return void
89 */
90 public function display_settings( $post ): void {
91 $values = get_post_meta( $post->ID, self::SETTING_METAKEY, true );
92
93 include ADVADS_ABSPATH . 'views/admin/metaboxes/ads/post-ad-settings.php';
94 }
95
96 /**
97 * Save the ad settings when the post is saved.
98 *
99 * @param int $post_id Post ID.
100 * @param object $post Post object.
101 *
102 * @return void
103 */
104 public function save_settings( $post_id, $post ): void {
105 $post_id = absint( $post_id );
106
107 // Check the nonce.
108 $nonce = Params::post( 'advads_post_meta_box_nonce' );
109 if ( ! $nonce || ! wp_verify_nonce( $nonce, 'advads_post_meta_box' ) ) {
110 return;
111 }
112
113 // Don’t display for non admins.
114 if (
115 ! Conditional::user_can( 'advanced_ads_edit_ads' ) ||
116 ! Validation::check_save_post( $post_id, $post )
117 ) {
118 return;
119 }
120
121 // Check user has permission to edit.
122 $perm = 'page' === get_post_type( $post_id ) ? 'edit_page' : 'edit_post';
123 if ( ! current_user_can( $perm, $post_id ) ) {
124 return;
125 }
126
127 $data['disable_ads'] = absint( $_POST['advanced_ads']['disable_ads'] ?? 0 );
128
129 $data = apply_filters( 'advanced_ads_save_post_meta_box', $data );
130
131 update_post_meta( $post_id, self::SETTING_METAKEY, $data );
132 }
133 }
134