Completed
Pull Request — master (#142)
by Sudar
01:36
created

form.php ➔ bd_render_sidebar_iframe()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 5
nc 1
nop 0
dl 0
loc 7
rs 9.4285
c 0
b 0
f 0
1
<?php
2
/**
3
 * Utility functions for displaying form.
4
 *
5
 * @since      5.5
6
 *
7
 * @author     Sudar
8
 *
9
 * @package    BulkDelete\Ui
10
 */
11
defined( 'ABSPATH' ) || exit; // Exit if accessed directly
12
13
/**
14
 * Render filtering table header.
15
 *
16
 * @since 5.5
17
 */
18
function bd_render_filtering_table_header() {
19
?>
20
	<tr>
21
		<td colspan="2">
22
			<h4><?php _e( 'Choose your filtering options', 'bulk-delete' ); ?></h4>
23
		</td>
24
	</tr>
25
<?php
26
}
27
28
/**
29
 * Render "restrict by created date" dropdown.
30
 *
31
 * @since 5.5
32
 *
33
 * @param string $slug The slug to be used in field names.
34
 * @param string $item (optional) Item for which form is displayed. Default is 'posts'.
35
 */
36
function bd_render_restrict_settings( $slug, $item = 'posts' ) {
37
?>
38
	<tr>
39
		<td scope="row">
40
			<input name="smbd_<?php echo $slug; ?>_restrict" id="smbd_<?php echo $slug; ?>_restrict" value="true" type="checkbox">
41
		</td>
42
		<td>
43
			<?php printf( __( 'Only restrict to %s which are ', 'bulk-delete' ), $item );?>
44
			<select name="smbd_<?php echo $slug; ?>_op" id="smbd_<?php echo $slug; ?>_op" disabled>
45
				<option value="before"><?php _e( 'older than', 'bulk-delete' );?></option>
46
				<option value="after"><?php _e( 'posted within last', 'bulk-delete' );?></option>
47
			</select>
48
			<input type="number" name="smbd_<?php echo $slug; ?>_days" id="smbd_<?php echo $slug; ?>_days" class="screen-per-page" disabled value="0" min="0"><?php _e( 'days', 'bulk-delete' );?>
49
		</td>
50
	</tr>
51
<?php
52
}
53
54
/**
55
 * Render "force delete" setting fields.
56
 *
57
 * @since 5.5
58
 *
59
 * @param string $slug The slug to be used in field names.
60
 */
61
function bd_render_delete_settings( $slug ) {
62
?>
63
	<tr>
64
		<td scope="row" colspan="2">
65
			<input name="smbd_<?php echo $slug; ?>_force_delete" value="false" type="radio" checked> <?php _e( 'Move to Trash', 'bulk-delete' ); ?>
66
			<input name="smbd_<?php echo $slug; ?>_force_delete" value="true" type="radio"> <?php _e( 'Delete permanently', 'bulk-delete' ); ?>
67
		</td>
68
	</tr>
69
<?php
70
}
71
72
/**
73
 * Render the "private post" setting fields.
74
 *
75
 * @since 5.5
76
 *
77
 * @param string $slug The slug to be used in field names.
78
 */
79
function bd_render_private_post_settings( $slug ) {
80
?>
81
	<tr>
82
		<td scope="row" colspan="2">
83
			<input name="smbd_<?php echo $slug; ?>_private" value="false" type="radio" checked> <?php _e( 'Public posts', 'bulk-delete' ); ?>
84
			<input name="smbd_<?php echo $slug; ?>_private" value="true" type="radio"> <?php _e( 'Private Posts', 'bulk-delete' ); ?>
85
		</td>
86
	</tr>
87
<?php
88
}
89
90
/**
91
 * Render the "limit" setting fields.
92
 *
93
 * @since 5.5
94
 *
95
 * @param string $slug The slug to be used in field names.
96
 * @param string $item (Optional) Item type. Possible values are 'posts', 'pages', 'users'
97
 */
98
function bd_render_limit_settings( $slug, $item = 'posts' ) {
99
?>
100
	<tr>
101
		<td scope="row">
102
			<input name="smbd_<?php echo $slug; ?>_limit" id="smbd_<?php echo $slug; ?>_limit" value="true" type="checkbox">
103
		</td>
104
		<td>
105
			<?php _e( 'Only delete first ', 'bulk-delete' );?>
106
			<input type="number" name="smbd_<?php echo $slug; ?>_limit_to" id="smbd_<?php echo $slug; ?>_limit_to" class="screen-per-page" disabled value="0" min="0"> <?php echo $item;?>.
107
			<?php printf( __( 'Use this option if there are more than 1000 %s and the script timesout.', 'bulk-delete' ), $item ); ?>
108
		</td>
109
	</tr>
110
<?php
111
}
112
113
/**
114
 * Render cron setting fields.
115
 *
116
 * @since 5.5
117
 *
118
 * @param string $slug      The slug to be used in field names.
119
 * @param string $addon_url Url for the pro addon.
120
 */
121
function bd_render_cron_settings( $slug, $addon_url ) {
122
	$pro_class = 'bd-' . str_replace( '_', '-', $slug ) . '-pro';
123
?>
124
	<tr>
125
		<td scope="row" colspan="2">
126
			<input name="smbd_<?php echo $slug; ?>_cron" value="false" type="radio" checked="checked"> <?php _e( 'Delete now', 'bulk-delete' ); ?>
127
			<input name="smbd_<?php echo $slug; ?>_cron" value="true" type="radio" id="smbd_<?php echo $slug; ?>_cron" disabled > <?php _e( 'Schedule', 'bulk-delete' ); ?>
128
			<input name="smbd_<?php echo $slug; ?>_cron_start" id="smbd_<?php echo $slug; ?>_cron_start" value="now" type="text" disabled><?php _e( 'repeat ', 'bulk-delete' );?>
129
			<select name="smbd_<?php echo $slug; ?>_cron_freq" id="smbd_<?php echo $slug; ?>_cron_freq" disabled>
130
				<option value="-1"><?php _e( "Don't repeat", 'bulk-delete' ); ?></option>
131
<?php
132
	$schedules = wp_get_schedules();
133
	foreach ( $schedules as $key => $value ) {
134
?>
135
				<option value="<?php echo $key; ?>"><?php echo $value['display']; ?></option>
136
<?php } ?>
137
			</select>
138
			<span class="<?php echo sanitize_html_class( apply_filters( 'bd_pro_class', $pro_class, $slug ) ); ?>" style="color:red"><?php _e( 'Only available in Pro Addon', 'bulk-delete' ); ?> <a href="<?php echo $addon_url; ?>">Buy now</a></span>
139
		</td>
140
	</tr>
141
142
	<tr>
143
		<td scope="row" colspan="2">
144
			<?php _e( 'Enter time in <strong>Y-m-d H:i:s</strong> format or enter <strong>now</strong> to use current time', 'bulk-delete' );?>
145
		</td>
146
	</tr>
147
<?php
148
}
149
150
/**
151
 * Render the submit button.
152
 *
153
 * @since 5.5
154
 *
155
 * @param string $action The action attribute of the submit button.
156
 */
157
function bd_render_submit_button( $action ) {
158
?>
159
	<p class="submit">
160
		<button type="submit" name="bd_action" value="<?php echo esc_attr( $action ); ?>" class="button-primary"><?php _e( 'Bulk Delete ', 'bulk-delete' ); ?>&raquo;</button>
161
	</p>
162
<?php
163
}
164
165
/**
166
 * Render the post type dropdown.
167
 *
168
 * @since 5.5
169
 *
170
 * @param string $slug The slug to be used in field names.
171
 */
172
function bd_render_post_type_dropdown( $slug ) {
173
	$types = get_post_types( array( '_builtin' => false ), 'names' );
174
	array_unshift( $types, 'page' );
175
	array_unshift( $types, 'post' );
176
?>
177
	<tr>
178
		<td scope="row" >
179
			<select class="select2" name="smbd_<?php echo $slug; ?>_post_type">
180
				<?php foreach ( $types as $type ) { ?>
181
					<option value="<?php echo esc_attr( $type ); ?>"><?php echo esc_html( $type ); ?></option>
182
				<?php } ?>
183
			</select>
184
		</td>
185
	</tr>
186
<?php
187
}
188
189
/**
190
 * Render the post status filter.
191
 *
192
 * @since 5.6.0
193
 *
194
 * @param string $slug     The slug to be used in field names.
195
 * @param string $selected Default selected status.
196
 */
197
function bd_render_post_status_filter( $slug, $selected = 'publish' ) {
198
	$post_statuses = get_post_stati( array(), 'object' );
199
200
	/**
201
	 * List of post statuses that should be excluded from post status filter.
202
	 *
203
	 * @since 5.6.0
204
	 * @param array $post_statuses List of post statuses.
205
	 */
206
	$exclude_post_statuses = apply_filters( 'bd_exclude_post_statuses', array( 'inherit', 'trash', 'auto-draft' ) );
207
208
	foreach ( $exclude_post_statuses as $key ) {
209
		unset( $post_statuses[ $key ] );
210
	}
211
212
	/**
213
	 * List of post statuses that are displayed in the post status filter.
214
	 *
215
	 * @since 5.6.0
216
	 * @param array $post_statuses List of post statuses.
217
	 */
218
	$post_statuses = apply_filters( 'bd_post_statuses', $post_statuses );
219
220
	foreach ( $post_statuses as $key => $value ) {
221
		?>
222
		<tr>
223
			<td>
224
				<label>
225
					<input name="smbd_<?php echo esc_attr( $slug ); ?>_post_status" type="checkbox"
226
						   value="<?php echo esc_attr( $key ); ?>" <?php checked( $key, $selected ); ?>>
227
					<?php echo __( 'All', 'bulk-delete' ), ' ', esc_html( $value->label ), ' ', __( 'Posts', 'bulk-delete' ); ?>
228
				</label>
229
			</td>
230
		</tr>
231
		<?php
232
	}
233
}
234