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-page-quick-edit.php
advanced-ads / includes / admin Last commit date
ads 1 week ago groups 1 week ago metaboxes 1 year ago pages 1 day ago placements 1 day ago class-action-links.php 1 week ago class-addon-box.php 1 day ago class-addon-updater.php 1 day ago class-admin-menu.php 1 day ago class-admin-notices.php 1 year ago class-ajax.php 1 day ago class-app.php 1 day ago class-assets.php 1 day ago class-authors.php 1 year ago class-edd-updater.php 1 day ago class-license-admin-post.php 1 day 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 1 day ago class-plugin-auto-update.php 1 day ago class-plugin-installer.php 1 day 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 1 day 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-page-quick-edit.php
161 lines
1 <?php
2 /**
3 * Admin Page Quick Edit.
4 *
5 * @package AdvancedAds
6 * @author Advanced Ads <info@wpadvancedads.com>
7 * @since 1.50.0
8 */
9
10 namespace AdvancedAds\Admin;
11
12 use AdvancedAds\Framework\Interfaces\Integration_Interface;
13 use AdvancedAds\Framework\Utilities\Formatting;
14 use AdvancedAds\Framework\Utilities\Params;
15
16 defined( 'ABSPATH' ) || exit;
17
18 /**
19 * Admin Page Quick Edit.
20 */
21 class Page_Quick_Edit implements Integration_Interface {
22
23 /**
24 * Hook into WordPress.
25 *
26 * @return void
27 */
28 public function hooks(): void {
29 add_action( 'quick_edit_custom_box', [ $this, 'add_quick_edit_fields' ], 10, 2 );
30 add_action( 'bulk_edit_custom_box', [ $this, 'add_bulk_edit_fields' ], 10, 2 );
31 add_action( 'save_post', [ $this, 'save_quick_edit_fields' ] );
32 add_action( 'save_post', [ $this, 'save_bulk_edit_fields' ] );
33 }
34
35 /**
36 * Save bulk changes
37 *
38 * @return void
39 */
40 public function save_bulk_edit_fields() {
41 // Not bulk edit, not post/page or not enough permissions.
42 if (
43 ! wp_verify_nonce( sanitize_key( Params::request( '_wpnonce', '', FILTER_SANITIZE_FULL_SPECIAL_CHARS ) ), 'bulk-posts' )
44 || ! in_array( sanitize_key( Params::request( 'post_type' ) ), [ 'post', 'page' ], true )
45 || ! current_user_can( 'edit_posts' )
46 ) {
47 return;
48 }
49 $disable_ads = Params::request( 'advads_disable_ads', '', FILTER_SANITIZE_FULL_SPECIAL_CHARS );
50 $disable_the_content = Params::request( 'advads_disable_the_content', '', FILTER_SANITIZE_FULL_SPECIAL_CHARS );
51
52 if ( empty( $disable_ads ) && empty( $disable_the_content ) ) {
53 return;
54 }
55
56 $ids = Params::request( 'post', [], FILTER_DEFAULT, FILTER_REQUIRE_ARRAY );
57
58 $this->update_bulk_ad_settings_for_posts( $ids, $disable_ads, $disable_the_content );
59 }
60
61 /**
62 * Update ad settings meta for bulk-edited posts.
63 *
64 * @param array<int|string> $ids Post IDs from the bulk edit form.
65 * @param string $disable_ads Disable ads field value.
66 * @param string $disable_the_content Disable the content field value.
67 *
68 * @return void
69 */
70 private function update_bulk_ad_settings_for_posts( array $ids, string $disable_ads, string $disable_the_content ): void {
71 foreach ( $ids as $id ) {
72 $post_id = (int) $id;
73 if ( $post_id <= 0 || ! current_user_can( 'edit_post', $post_id ) ) {
74 continue;
75 }
76
77 $post = get_post( $post_id );
78 if ( ! $post || ! in_array( $post->post_type, [ 'post', 'page' ], true ) ) {
79 continue;
80 }
81
82 $meta = get_post_meta( $post_id, '_advads_ad_settings', true );
83 if ( ! is_array( $meta ) ) {
84 $meta = [];
85 }
86 if ( ! empty( $disable_ads ) ) {
87 $meta['disable_ads'] = Formatting::string_to_bool( $disable_ads ) ? 1 : 0;
88 }
89 if ( ! empty( $disable_the_content ) ) {
90 $meta['disable_the_content'] = Formatting::string_to_bool( $disable_the_content ) ? 1 : 0;
91 }
92 update_post_meta( $post_id, '_advads_ad_settings', $meta );
93 }
94 }
95
96 /**
97 * Print bulk edit fields
98 *
99 * @param string $column_name the column name.
100 * @param string $post_type current post type.
101 *
102 * @return void
103 */
104 public function add_bulk_edit_fields( $column_name, $post_type ) {
105 if ( ! in_array( $post_type, [ 'post', 'page' ], true ) ) {
106 return;
107 }
108 require ADVADS_ABSPATH . 'views/admin/page-bulk-edit.php';
109 }
110
111 /**
112 * Save quick edit changes
113 *
114 * @param int $post_id the post id.
115 *
116 * @return void
117 */
118 public function save_quick_edit_fields( $post_id ) {
119 // Not inline edit, or no permission.
120 if (
121 ! wp_verify_nonce( sanitize_key( Params::post( '_inline_edit' ) ), 'inlineeditnonce' ) ||
122 ! current_user_can( 'edit_post', $post_id )
123 ) {
124 return;
125 }
126
127 if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
128 return;
129 }
130
131 if ( wp_is_post_revision( $post_id ) ) {
132 return;
133 }
134
135 $meta = [ 'disable_ads' => Params::post( 'advads-disable-ads', 0, FILTER_VALIDATE_INT ) ];
136 if ( defined( 'AAP_VERSION' ) ) {
137 $meta['disable_the_content'] = Params::post( 'advads-disable-the-content', 0 );
138 }
139
140 update_post_meta( $post_id, '_advads_ad_settings', $meta );
141 }
142
143 /**
144 * Print quick edit fields.
145 *
146 * @param string $column the column name.
147 * @param string $post_type current post type.
148 *
149 * @return void
150 */
151 public function add_quick_edit_fields( $column, $post_type ) {
152 if ( ! in_array( $post_type, [ 'post', 'page' ], true ) ) {
153 return;
154 }
155
156 if ( 'ad-status' === $column ) {
157 require ADVADS_ABSPATH . 'views/admin/page-quick-edit.php';
158 }
159 }
160 }
161