1 | <?php |
||
13 | class Bulk_Delete_Pages { |
||
14 | /** |
||
15 | * Render delete pages by page status box. |
||
16 | * |
||
17 | * @access public |
||
18 | * @static |
||
19 | * |
||
20 | * @since 5.0 |
||
21 | */ |
||
22 | public static function render_delete_pages_by_status_box() { |
||
23 | if ( BD_Util::is_pages_box_hidden( Bulk_Delete::BOX_PAGE_STATUS ) ) { |
||
24 | printf( __( 'This section just got enabled. Kindly <a href = "%1$s">refresh</a> the page to fully enable it.', 'bulk-delete' ), 'admin.php?page=' . Bulk_Delete::PAGES_PAGE_SLUG ); |
||
25 | |||
26 | return; |
||
27 | } |
||
28 | |||
29 | $pages_count = wp_count_posts( 'page' ); |
||
30 | $pages = $pages_count->publish; |
||
31 | $page_drafts = $pages_count->draft; |
||
32 | $page_future = $pages_count->future; |
||
33 | $page_pending = $pages_count->pending; |
||
34 | $page_private = $pages_count->private; |
||
35 | ?> |
||
36 | <!-- Pages start--> |
||
37 | <h4><?php _e( 'Select the status from which you want to delete pages', 'bulk-delete' ); ?></h4> |
||
38 | |||
39 | <fieldset class="options"> |
||
40 | <table class="optiontable"> |
||
41 | <tr> |
||
42 | <td> |
||
43 | <input name="smbd_published_pages" value="published_pages" type="checkbox"> |
||
44 | <label for="smbd_published_pages"><?php _e( 'All Published Pages', 'bulk-delete' ); ?> (<?php echo $pages . ' '; _e( 'Pages', 'bulk-delete' ); ?>)</label> |
||
45 | </td> |
||
46 | </tr> |
||
47 | |||
48 | <tr> |
||
49 | <td> |
||
50 | <input name="smbd_draft_pages" value="draft_pages" type="checkbox"> |
||
51 | <label for="smbd_draft_pages"><?php _e( 'All Draft Pages', 'bulk-delete' ); ?> (<?php echo $page_drafts . ' '; _e( 'Pages', 'bulk-delete' ); ?>)</label> |
||
52 | </td> |
||
53 | </tr> |
||
54 | |||
55 | <tr> |
||
56 | <td> |
||
57 | <input name="smbd_future_pages" value="scheduled_pages" type="checkbox"> |
||
58 | <label for="smbd_future_pages"><?php _e( 'All Scheduled Pages', 'bulk-delete' ); ?> (<?php echo $page_future . ' '; _e( 'Pages', 'bulk-delete' ); ?>)</label> |
||
59 | </td> |
||
60 | </tr> |
||
61 | |||
62 | <tr> |
||
63 | <td> |
||
64 | <input name="smbd_pending_pages" value="pending_pages" type="checkbox"> |
||
65 | <label for="smbd_pending_pages"><?php _e( 'All Pending Pages', 'bulk-delete' ); ?> (<?php echo $page_pending . ' '; _e( 'Pages', 'bulk-delete' ); ?>)</label> |
||
66 | </td> |
||
67 | </tr> |
||
68 | |||
69 | <tr> |
||
70 | <td> |
||
71 | <input name="smbd_private_pages" value="private_pages" type="checkbox"> |
||
72 | <label for="smbd_private_pages"><?php _e( 'All Private Pages', 'bulk-delete' ); ?> (<?php echo $page_private . ' '; _e( 'Pages', 'bulk-delete' ); ?>)</label> |
||
73 | </td> |
||
74 | </tr> |
||
75 | </table> |
||
76 | |||
77 | <table class="optiontable"> |
||
78 | <?php |
||
79 | bd_render_filtering_table_header(); |
||
80 | bd_render_restrict_settings( 'pages', 'pages' ); |
||
81 | bd_render_delete_settings( 'pages' ); |
||
82 | bd_render_limit_settings( 'pages' ); |
||
83 | bd_render_cron_settings( 'pages','http://bulkwp.com/addons/scheduler-for-deleting-pages-by-status/?utm_source=wpadmin&utm_campaign=BulkDelete&utm_medium=buynow&utm_content=bd-sp' ); |
||
84 | ?> |
||
85 | </table> |
||
86 | </fieldset> |
||
87 | <?php |
||
88 | bd_render_submit_button( 'delete_pages_by_status' ); |
||
89 | } |
||
90 | |||
91 | /** |
||
92 | * Request handler for deleting pages by status. |
||
93 | * |
||
94 | * @since 5.0 |
||
95 | */ |
||
96 | public static function do_delete_pages_by_status() { |
||
97 | $delete_options = array(); |
||
98 | $delete_options['restrict'] = bd_array_get_bool( $_POST, 'smbd_pages_restrict', false ); |
||
99 | $delete_options['limit_to'] = absint( bd_array_get( $_POST, 'smbd_pages_limit_to', 0 ) ); |
||
100 | $delete_options['force_delete'] = bd_array_get_bool( $_POST, 'smbd_pages_force_delete', false ); |
||
101 | |||
102 | $delete_options['date_op'] = bd_array_get( $_POST, 'smbd_pages_op' ); |
||
103 | $delete_options['days'] = absint( bd_array_get( $_POST, 'smbd_pages_days' ) ); |
||
104 | |||
105 | $delete_options['publish'] = bd_array_get( $_POST, 'smbd_published_pages' ); |
||
106 | $delete_options['drafts'] = bd_array_get( $_POST, 'smbd_draft_pages' ); |
||
107 | $delete_options['pending'] = bd_array_get( $_POST, 'smbd_pending_pages' ); |
||
108 | $delete_options['future'] = bd_array_get( $_POST, 'smbd_future_pages' ); |
||
109 | $delete_options['private'] = bd_array_get( $_POST, 'smbd_private_pages' ); |
||
110 | |||
111 | if ( 'true' == bd_array_get( $_POST, 'smbd_pages_cron', 'false' ) ) { |
||
112 | $freq = $_POST['smbd_pages_cron_freq']; |
||
113 | $time = strtotime( $_POST['smbd_pages_cron_start'] ) - ( get_option( 'gmt_offset' ) * 60 * 60 ); |
||
114 | |||
115 | if ( $freq == -1 ) { |
||
116 | wp_schedule_single_event( $time, Bulk_Delete::CRON_HOOK_PAGES_STATUS, array( $delete_options ) ); |
||
117 | } else { |
||
118 | wp_schedule_event( $time, $freq , Bulk_Delete::CRON_HOOK_PAGES_STATUS, array( $delete_options ) ); |
||
119 | } |
||
120 | $msg = __( 'The selected pages are scheduled for deletion.', 'bulk-delete' ) . ' ' . |
||
121 | sprintf( __( 'See the full list of <a href = "%s">scheduled tasks</a>' , 'bulk-delete' ), get_bloginfo( 'wpurl' ) . '/wp-admin/admin.php?page=' . Bulk_Delete::CRON_PAGE_SLUG ); |
||
122 | } else { |
||
123 | $deleted_count = self::delete_pages_by_status( $delete_options ); |
||
124 | $msg = sprintf( _n( 'Deleted %d page', 'Deleted %d pages' , $deleted_count, 'bulk-delete' ), $deleted_count ); |
||
125 | } |
||
126 | |||
127 | add_settings_error( |
||
128 | Bulk_Delete::PAGES_PAGE_SLUG, |
||
129 | 'deleted-cron', |
||
130 | $msg, |
||
131 | 'updated' |
||
132 | ); |
||
133 | } |
||
134 | |||
135 | /** |
||
136 | * Bulk Delete pages. |
||
137 | * |
||
138 | * @since 5.0 |
||
139 | * |
||
140 | * @param array $delete_options |
||
141 | * |
||
142 | * @return int |
||
143 | */ |
||
144 | public static function delete_pages_by_status( $delete_options ) { |
||
193 | } |
||
194 | |||
195 | /** |
||
196 | * Filter JS Array and add validation hooks. |
||
197 | * |
||
198 | * @since 5.4 |
||
199 | * @static |
||
200 | * |
||
201 | * @param array $js_array JavaScript Array |
||
202 | * |
||
203 | * @return array Modified JavaScript Array |
||
204 | */ |
||
205 | public static function filter_js_array( $js_array ) { |
||
209 | } |
||
210 | } |
||
211 | |||
215 |