PluginProbe ʕ •ᴥ•ʔ
WP All Export – Drag & Drop Export to Any Custom CSV, XML & Excel / trunk
WP All Export – Drag & Drop Export to Any Custom CSV, XML & Excel vtrunk
trunk 0.9.0 0.9.1 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.2.0 1.2.1 1.2.10 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 1.3.0 1.3.1 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.4.0 1.4.1 1.4.10 1.4.11 1.4.12 1.4.13 1.4.14 1.4.15 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.5.0
wp-all-export / views / admin / manage / index.php
wp-all-export / views / admin / manage Last commit date
bulk.php 4 weeks ago delete.php 4 weeks ago index.php 4 weeks ago scheduling.php 4 weeks ago templates.php 4 weeks ago update.php 4 weeks ago
index.php
530 lines
1 <?php
2 if(!defined('ABSPATH')) {
3 die();
4 }
5 // phpcs:ignoreFile WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound -- variables in template files inherited from controller render() scope
6 $addons = new \Wpae\App\Service\Addons\AddonService();
7 function is_broken($item) {
8 return is_null($item['options']) || !$item['options'];
9 }
10 ?>
11
12 <div class="wpallexport-header" style="overflow:hidden; height: 70px; padding-top: 10px; margin-bottom: -15px;">
13 <div class="wpallexport-logo"></div>
14 <div class="wpallexport-title">
15 <h3><?php esc_html_e('Manage Exports', 'wp-all-export'); ?></h3>
16 </div>
17 </div>
18 <!-- TO DO: REMOVE THIS SNIPPET -->
19 <script type="text/javascript">
20 (function ($, ajaxurl, wp_all_export_security) {
21
22 $(document).ready(function () {
23 $('.test').on('click', function () {
24
25 var addon = 'wooco';
26 openUpgradeNotice(addon, $(this), '<?php echo esc_url( PMXE_ROOT_URL ); ?>/static/img/preloader.gif');
27 });
28 });
29 })(jQuery, ajaxurl, wp_all_export_security);
30 </script>
31 <!-- END TO DO -->
32 <h2></h2> <!-- Do not remove -->
33
34 <script type="text/javascript">
35 (function ($, ajaxurl, wp_all_export_security) {
36
37 $(document).ready(function () {
38 $('.open_cron_scheduling').on('click', function () {
39
40 var itemId = $(this).data('itemid');
41 openSchedulingDialog(itemId, $(this), '<?php echo esc_url( PMXE_ROOT_URL ); ?>/static/img/preloader.gif');
42 });
43 });
44 })(jQuery, ajaxurl, wp_all_export_security);
45
46 window.pmxeHasSchedulingSubscription = <?php echo PMXE_Plugin::hasActiveSchedulingLicense() ? 'true' : 'false'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- output is one of two hardcoded literals ?>;
47 </script>
48 <?php if ($this->errors->get_error_codes()): ?>
49 <?php $this->error() ?>
50 <?php endif ?>
51
52 <form method="get">
53 <input type="hidden" name="page" value="<?php echo esc_attr($this->input->get('page')) ?>"/>
54 <p class="search-box">
55 <label for="search-input" class="screen-reader-text"><?php esc_html_e('Search Exports', 'wp-all-export') ?>
56 :</label>
57 <input id="search-input" type="text" name="s" value="<?php echo esc_attr($s) ?>"/>
58 <input type="submit" class="button" value="<?php esc_html_e('Search Exports', 'wp-all-export') ?>">
59 </p>
60 </form>
61
62 <?php
63 // define the columns to display, the syntax is 'internal name' => 'display name'
64 $columns = array(
65 'id' => __('ID', 'wp-all-export'),
66 'name' => __('Name', 'wp-all-export'),
67 'actions' => '',
68 'data' => __('Query', 'wp-all-export'),
69 //'format' => __('Format', 'wp-all-export'),
70 'summary' => __('Summary', 'wp-all-export'),
71 //'registered_on' => __('Last Export', 'wp-all-export'),
72 'info' => __('Info & Options', 'wp-all-export'),
73 );
74
75 //if ( ! wp_all_export_is_compatible()) unset($columns['info']);
76
77 $columns = apply_filters('pmxe_manage_imports_columns', $columns);
78
79 ?>
80
81 <form method="post" id="import-list" action="<?php echo esc_url_raw(remove_query_arg('pmxe_nt')); ?>">
82
83 <input type="hidden" name="action" value="bulk"/>
84 <?php wp_nonce_field('bulk-exports', '_wpnonce_bulk-exports') ?>
85
86 <div class="tablenav">
87 <div class="alignleft actions">
88 <select name="bulk-action">
89 <option value="" selected="selected"><?php esc_html_e('Bulk Actions', 'wp-all-export') ?></option>
90 <option value="delete"><?php esc_html_e('Delete', 'wp-all-export') ?></option>
91 </select>
92 <input type="submit" value="<?php esc_attr_e('Apply', 'wp-all-export') ?>" name="doaction"
93 id="doaction" class="button-secondary action"/>
94 </div>
95
96 <?php if ($page_links): ?>
97 <div class="tablenav-pages">
98 <?php /* translators: 1: from, 2: to, 3: total, 4: page links */ ?>
99 <?php
100 $page_links_html = sprintf(
101 '<span class="displaying-num">' . esc_html__('Displaying %1$s–%2$s of %3$s', 'wp-all-export') . '</span>%4$s',
102 esc_html( number_format_i18n((intval($pagenum) - 1) * intval($perPage) + 1) ),
103 esc_html( number_format_i18n(min(intval($pagenum) * $perPage, intval($list->total()))) ),
104 esc_html( number_format_i18n(intval($list->total())) ),
105 $page_links
106 );
107 // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- $page_links is paginate_links() output (trusted markup); other interpolated values escaped above
108 echo $page_links_html;
109 ?>
110 </div>
111 <?php endif ?>
112 </div>
113 <div class="clear"></div>
114
115 <table class="widefat pmxe-admin-exports">
116 <thead>
117 <tr>
118 <th class="manage-column column-cb check-column" scope="col">
119 <input type="checkbox" />
120 </th>
121 <?php
122 $col_html = '';
123 foreach ($columns as $column_id => $column_display_name) {
124 $column_link = "<a href='";
125 $order2 = 'ASC';
126 if ($order_by == $column_id)
127 $order2 = ($order == 'DESC') ? 'ASC' : 'DESC';
128
129 $column_link .= esc_url(add_query_arg(array('order' => $order2, 'order_by' => $column_id), $this->baseUrl));
130 $column_link .= "'>" . esc_html($column_display_name) . "</a>";
131 $col_html .= '<th scope="col" class="column-' . esc_attr($column_id) . ' ' . ($order_by == $column_id ? esc_attr($order) : '') . '">' . $column_link . '</th>';
132 }
133 // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- all interpolated parts escaped during construction above
134 echo $col_html;
135 ?>
136 </tr>
137 </thead>
138 <tfoot>
139 <tr>
140 <th class="manage-column column-cb check-column" scope="col">
141 <input type="checkbox" />
142 </th>
143 <?php echo wp_kses_post($col_html); ?>
144 </tr>
145 </tfoot>
146 <tbody id="the-pmxi-admin-import-list" class="list:pmxe-admin-exports">
147 <?php if ($list->isEmpty()): ?>
148 <tr>
149 <td colspan="<?php echo count($columns) + 1 ?>"><?php esc_html_e('No previous exports found.', 'wp-all-export') ?></td>
150 </tr>
151 <?php else: ?>
152 <?php
153
154 $is_secure_import = PMXE_Plugin::getInstance()->getOption('secure');
155
156 $class = '';
157 ?>
158 <?php foreach ($list as $item):
159
160 if ( is_array($item['options']['cpt']) && isset($item['options']['cpt'][0]) ) {
161 $cpt = $item['options']['cpt'][0];
162 } else if ( !empty($item['options']['cpt']) ) {
163 $cpt = $item['options']['cpt'];
164 } else {
165 $cpt = '';
166 }
167
168
169 $is_rapid_addon_export = true;
170
171 if (strpos($cpt, 'custom_') !== 0) {
172 $is_rapid_addon_export = false;
173 }
174 ?>
175 <?php $class = ('alternate' == $class) ? '' : 'alternate'; ?>
176 <tr class="<?php echo esc_attr($class); ?>" valign="middle">
177 <th scope="row" class="check-column">
178 <input type="checkbox" id="item_<?php echo esc_attr($item['id']) ?>" name="items[]" value="<?php echo esc_attr($item['id']) ?>" />
179 </th>
180 <?php foreach ($columns as $column_id => $column_display_name): ?>
181 <?php
182 switch ($column_id):
183 case 'id':
184 ?>
185 <th valign="top" scope="row">
186 <?php echo esc_html($item['id']); ?>
187 </th>
188 <?php
189 break;
190 case 'name':
191 ?>
192 <td style="min-width: 325px;">
193 <strong><?php echo esc_html(wp_all_export_clear_xss($item['friendly_name'])); ?></strong> <br>
194 <div class="row-actions">
195 <span class="edit"><a class="edit" href="<?php echo esc_url(add_query_arg(array('id' => $item['id'], 'action' => 'template','_wpnonce_template' => wp_create_nonce('template')), $this->baseUrl)) ?>"><?php esc_html_e('Edit Template', 'wp-all-export') ?></a></span> |
196 <span class="edit"><a class="edit" href="<?php echo esc_url(add_query_arg(array('id' => $item['id'], 'action' => 'options','_wpnonce_options' => wp_create_nonce('options')), $this->baseUrl)) ?>"><?php esc_html_e('Settings', 'wp-all-export') ?></a></span> |
197
198 <?php if ( ! $is_secure_import and $item['attch_id']): ?>
199 <span class="update"><a class="update" href="<?php echo esc_url(add_query_arg(array('id' => $item['id'], 'action' => 'get_file', '_wpnonce' => wp_create_nonce( '_wpnonce-download_feed' )), $this->baseUrl)) ?>"><?php echo esc_html(strtoupper(wp_all_export_get_export_format($item['options']))); ?></a></span> |
200 <?php if (! empty($item['options']['bundlepath']) and PMXE_Export_Record::is_bundle_supported($item['options'])):?>
201 <span class="update"><a class="update" href="<?php echo esc_url(add_query_arg(array('id' => $item['id'], 'action' => 'bundle', '_wpnonce' => wp_create_nonce( '_wpnonce-download_bundle' )), $this->baseUrl)) ?>"><?php esc_html_e('Bundle', 'wp-all-export'); ?></a></span> |
202 <?php endif; ?>
203 <?php endif; ?>
204
205 <?php if ($is_secure_import and ! empty($item['options']['filepath'])): ?>
206 <span class="update"><a class="update" href="<?php echo esc_url(add_query_arg(array('id' => $item['id'], 'action' => 'get_file', '_wpnonce' => wp_create_nonce( '_wpnonce-download_feed' )), $this->baseUrl)) ?>"><?php echo esc_html(strtoupper(wp_all_export_get_export_format($item['options']))); ?></a></span> |
207 <?php if (! empty($item['options']['bundlepath']) and PMXE_Export_Record::is_bundle_supported($item['options'])):?>
208 <span class="update"><a class="update" href="<?php echo esc_url(add_query_arg(array('id' => $item['id'], 'action' => 'bundle', '_wpnonce' => wp_create_nonce( '_wpnonce-download_bundle' )), $this->baseUrl)) ?>"><?php esc_html_e('Bundle', 'wp-all-export'); ?></a></span> |
209 <?php endif; ?>
210 <?php endif; ?>
211
212 <?php if ( ! empty($item['options']['split_large_exports']) and ! empty($item['options']['split_files_list']) ): ?>
213 <?php /* translators: %s: export format extension */ ?>
214 <span class="update"><a class="update" href="<?php echo esc_url(add_query_arg(array('id' => $item['id'], 'action' => 'split_bundle', '_wpnonce' => wp_create_nonce( '_wpnonce-download_split_bundle' )), $this->baseUrl)) ?>"><?php printf(esc_html__('Split %ss', 'wp-all-export'), esc_html(strtoupper(wp_all_export_get_export_format($item['options'])))); ?></a></span> |
215 <?php endif; ?>
216
217 <span class="delete"><a class="delete" href="<?php echo esc_url(add_query_arg(array('id' => $item['id'], 'action' => 'delete'), $this->baseUrl)) ?>"><?php esc_html_e('Delete', 'wp-all-export') ?></a></span>
218 </div>
219 </td>
220 <?php
221 break;
222 case 'info':
223 ?>
224 <td style="min-width: 180px;">
225 <?php if (current_user_can(PMXE_Plugin::$capabilities)) { ?>
226 <a
227 <?php
228 if (!is_array($item['options']['cpt'])) {
229 $item['options']['cpt'] = array($item['options']['cpt']);
230 }
231 // Disable scheduling options for User exports if User Export Add-On isn't enabled
232 if (
233 ((in_array('users', $item['options']['cpt']) || in_array('shop_customer', $item['options']['cpt'])) && !$addons->isUserAddonActive()) ||
234 ($item['options']['export_type'] == 'advanced' && $item['options']['wp_query_selector'] == 'wp_user_query' && !$addons->isUserAddonActive())
235 ) {
236 ?>
237 href="<?php echo esc_url(add_query_arg(array('id' => $item['id'], 'action' => 'options','_wpnonce_options' => wp_create_nonce('options')), $this->baseUrl)) ?>"
238 <?php
239 // Disable scheduling options for WooCo exports if WooCo Export Add-On isn't enabled
240 } else if (
241 (( (
242 in_array('product', $item['options']['cpt']) &&
243 in_array('product_variation', $item['options']['cpt']) && !$addons->isWooCommerceProductAddonActive() ) ||
244 (in_array('shop_order', $item['options']['cpt']) && !$addons->isWooCommerceOrderAddonActive()) ||
245 in_array('shop_coupon', $item['options']['cpt']) ||
246 in_array('shop_review', $item['options']['cpt']) ) && !$addons->isWooCommerceAddonActive())
247 ||
248 ($item['options']['export_type'] == 'advanced' && !empty($item['options']['exportquery']) && in_array($item['options']['exportquery']->query['post_type'], array(array('product', 'product_variation'), 'shop_order', 'shop_coupon')) && !$addons->isWooCommerceAddonActive())
249 ) {
250 ?>
251 href="<?php echo esc_url(add_query_arg(array('id' => $item['id'], 'action' => 'options','_wpnonce_options' => wp_create_nonce('options')), $this->baseUrl)) ?>"
252 <?php
253 // Disable scheduling options for ACF exports if ACF Export Add-On isn't enabled
254 } else if (
255 (isset($item['options']['cpt']) && (!in_array('comments', $item['options']['cpt']) || !in_array('shop_review', $item['options']['cpt'])) && isset($item['options']['cc_type']) && in_array('acf', $item['options']['cc_type']) && !$addons->isAcfAddonActive()) ||
256 ($item['options']['export_type'] == 'advanced' && $item['options']['wp_query_selector'] != 'wp_comment_query' && in_array('acf', $item['options']['cc_type']) && !$addons->isAcfAddonActive())
257 ) {
258 ?>
259 href="<?php echo esc_url(add_query_arg(array('id' => $item['id'], 'action' => 'options','_wpnonce_options' => wp_create_nonce('options')), $this->baseUrl)) ?>"
260 <?php
261 } else {
262
263 ?>
264 href="javascript:void(0);" class="open_cron_scheduling"
265
266 <?php } ?>
267 data-itemid="<?php echo esc_attr($item['id']); ?>"><?php esc_html_e('Scheduling Options', 'wp-all-export'); ?></a>
268 <br>
269 <?php } ?>
270 <?php
271 $is_re_import_allowed = true;
272 if ( ! empty($item['options']['ids']) )
273 {
274 if (in_array('shop_order', $item['options']['cpt']) and class_exists('WooCommerce')) {
275 $required_fields = array('woo_order' => 'id');
276 }
277 else {
278 $required_fields = array('id' => 'id');
279 }
280 // re-import products
281 if ((in_array('product', $item['options']['cpt']) or $item['options']['export_type'] == 'advanced') and class_exists('WooCommerce') and (empty($item['options']['wp_query_selector']) or $item['options']['wp_query_selector'] == 'wp_query')) {
282 $required_fields['woo'] = '_sku';
283 $required_fields['cats'] = 'product_type';
284 $required_fields['parent'] = 'parent';
285 }
286 if ((in_array('users', $item['options']['cpt']) or $item['options']['export_type'] == 'advanced') and (!empty($item['options']['wp_query_selector']) and $item['options']['wp_query_selector'] == 'wp_user_query')) {
287 $required_fields['user_email'] = 'user_email';
288 $required_fields['user_login'] = 'user_login';
289 }
290 if ($item['options']['export_type'] == 'advanced' and (empty($item['options']['wp_query_selector']) or $item['options']['wp_query_selector'] == 'wp_query')){
291 $required_fields['post_type'] = 'post_type';
292 }
293 $defined_fields = array();
294 foreach ($item['options']['ids'] as $ID => $value)
295 {
296 foreach ($required_fields as $type => $field)
297 {
298 if (strtolower($item['options']['cc_type'][$ID]) == $type && strtolower($item['options']['cc_label'][$ID]) == strtolower($field)){
299 $defined_fields[] = $field;
300 }
301 }
302 }
303
304 foreach ($required_fields as $type => $field) {
305 if ( ! in_array($field, $defined_fields) ){
306 $is_re_import_allowed = false;
307 break;
308 }
309 }
310
311 }
312
313 ?>
314 <?php if ( $item['options']['export_to'] == 'csv' || ( empty($item['options']['xml_template_type']) || ! in_array($item['options']['xml_template_type'], array('custom', 'XmlGoogleMerchants'))) ): ?>
315 <?php if ( wp_all_export_is_compatible() and !empty($item['options']['import_id']) and $is_re_import_allowed): ?>
316 <a href="<?php echo esc_url(add_query_arg(array('page' => 'pmxi-admin-import', 'id' => $item['options']['import_id'], 'deligate' => 'wpallexport'), remove_query_arg('page', $this->baseUrl))); ?>"><?php esc_html_e("Import with WP All Import", "wp-all-export"); ?></a><br/>
317 <?php endif;?>
318 <?php
319 if ( !in_array($item['options']['wp_query_selector'], array('wp_comment_query')) and (empty($item['options']['cpt']) or ! in_array('comments', $item['options']['cpt']))) {
320 if ( ! empty($item['options']['tpl_data'])) {
321 //$template->getByName($item['options']['template_name']);
322 //if ( ! $template->isEmpty() ){
323 ?>
324 <a href="<?php echo esc_url(add_query_arg(array('id' => $item['id'], 'action' => 'templates'), $this->baseUrl)); ?>"><?php esc_html_e('Download Import Templates', 'wp-all-export'); ?></a>
325 <?php
326 //}
327 }
328 }
329 ?>
330 <?php endif; ?>
331 </td>
332 <?php
333 break;
334 case 'data':
335 ?>
336 <td>
337 <?php
338 if(is_broken($item)) {
339 ?>
340 <strong>Broken:</strong> please delete
341 <?php
342 }
343 ?>
344 <?php
345 if (!empty($item['options']['cpt'])) {
346
347 echo '<strong>' . esc_html__( 'Post Types: ', 'wp-all-export' ) . '</strong> <br/>';
348
349 if ($is_rapid_addon_export) {
350 $form = GFAPI::get_form($item['options']['sub_post_type_to_export']);
351 echo 'Gravity Form Entries:<br/>';
352 echo esc_html($form['title']);
353 } else {
354 echo esc_html(implode(', ', $item['options']['cpt']));
355 }
356 } else {
357 echo esc_html($item['options']['wp_query']);
358 } ?>
359 </td>
360 <?php
361 break;
362 case 'format':
363 ?>
364 <td>
365 <strong><?php echo ($item['options']['export_to'] == 'csv' && ! empty($item['options']['export_to_sheet'])) ? esc_html($item['options']['export_to_sheet']) : esc_html($item['options']['export_to']); ?></strong>
366 </td>
367 <?php
368 break;
369 case 'registered_on':
370 ?>
371 <td>
372 <?php if ('0000-00-00 00:00:00' == $item['registered_on']): ?>
373 <em>never</em>
374 <?php else: ?>
375 <?php echo esc_html(mysql2date(__('Y/m/d g:i a', 'wp-all-export'), $item['registered_on'])); ?>
376 <?php endif ?>
377 </td>
378 <?php
379 break;
380 case 'summary':
381 ?>
382 <td>
383 <?php
384 if ($item['triggered'] and ! $item['processing']){
385 esc_html_e('triggered with cron', 'wp-all-export');
386 if ($item['last_activity'] != '0000-00-00 00:00:00'){
387 $diff = ceil((time() - strtotime($item['last_activity']))/60);
388 ?>
389 <br>
390 <span <?php if ($diff >= 10) echo 'style="color:red;"';?>>
391 <?php
392 /* translators: %s: human-readable time difference */
393 printf(esc_html__('last activity %s ago', 'wp-all-export'), esc_html(human_time_diff(strtotime($item['last_activity']), time())));
394 ?>
395 </span>
396 <?php
397 }
398 }
399 elseif ($item['processing']){
400 esc_html_e('currently processing with cron', 'wp-all-export'); echo '<br/>';
401 printf('Records Processed %s', intval($item['exported']));
402 if ($item['last_activity'] != '0000-00-00 00:00:00'){
403 $diff = ceil((time() - strtotime($item['last_activity']))/60);
404 ?>
405 <br>
406 <span <?php if ($diff >= 10) echo 'style="color:red;"';?>>
407 <?php
408 /* translators: %s: human-readable time difference */
409 printf(esc_html__('last activity %s ago', 'wp-all-export'), esc_html(human_time_diff(strtotime($item['last_activity']), time())));
410 ?>
411 </span>
412 <?php
413 }
414 }
415 elseif($item['executing']){
416 esc_html_e('Export currently in progress', 'wp-all-export');
417 if ($item['last_activity'] != '0000-00-00 00:00:00'){
418 $diff = ceil((time() - strtotime($item['last_activity']))/60);
419 ?>
420 <br>
421 <span <?php if ($diff >= 10) echo 'style="color:red;"';?>>
422 <?php
423 /* translators: %s: human-readable time difference */
424 printf(esc_html__('last activity %s ago', 'wp-all-export'), esc_html(human_time_diff(strtotime($item['last_activity']), time())));
425 ?>
426 </span>
427 <?php
428 }
429 }
430 elseif($item['canceled'] and $item['canceled_on'] != '0000-00-00 00:00:00'){
431 /* translators: %s: cancellation timestamp */
432 printf(esc_html__('Export Attempt at %s', 'wp-all-export'), esc_html(get_date_from_gmt($item['canceled_on'], "m/d/Y g:i a"))); echo '<br/>';
433 esc_html_e('Export canceled', 'wp-all-export');
434 }
435 else {
436 /* translators: %s: last run timestamp */
437 printf(esc_html__('Last run: %s', 'wp-all-export'), ($item['registered_on'] == '0000-00-00 00:00:00') ? esc_html__('never', 'wp-all-export') : esc_html(get_date_from_gmt($item['registered_on'], "m/d/Y g:i a"))); echo '<br/>';
438 /* translators: %d: number of records exported */
439 printf(esc_html__('%d Records Exported', 'wp-all-export'), (int) $item['exported']); echo '<br/>';
440 $export_to = ($item['options']['export_to'] == 'csv' && ! empty($item['options']['export_to_sheet'])) ? $item['options']['export_to_sheet'] : $item['options']['export_to'];
441 /* translators: %s: export format */
442 printf(esc_html__('Format: %s', 'wp-all-export'), esc_html($export_to)); echo '<br/>';
443 }
444
445 if ($item['settings_update_on'] != '0000-00-00 00:00:00' and $item['last_activity'] != '0000-00-00 00:00:00' and strtotime($item['settings_update_on']) > strtotime($item['last_activity'])){
446 ?>
447 <strong><?php esc_html_e('settings edited since last run', 'wp-all-export'); ?></strong>
448 <?php
449 }
450
451 ?>
452 </td>
453 <?php
454 break;
455 case 'actions':
456 ?>
457 <td style="min-width: 130px;">
458 <?php
459 if(!is_broken($item)) {
460 ?>
461 <?php if (!$item['processing'] and !$item['executing']): ?>
462 <h2 style="float:left;"><a class="add-new-h2"
463 href="<?php echo esc_url(add_query_arg(array('id' => $item['id'], 'action' => 'update'), $this->baseUrl)); ?>"><?php esc_html_e('Run Export', 'wp-all-export'); ?></a>
464 </h2>
465 <?php elseif ($item['processing']) : ?>
466 <h2 style="float:left;"><a class="add-new-h2"
467 href="<?php echo esc_url(wp_nonce_url(add_query_arg(array('id' => $item['id'], 'action' => 'cancel'), $this->baseUrl), 'cancel-export', '_wpnonce_cancel-export')); ?>"><?php esc_html_e('Cancel Cron', 'wp-all-export'); ?></a>
468 </h2>
469 <?php elseif ($item['executing']) : ?>
470 <h2 style="float:left;"><a class="add-new-h2"
471 href="<?php echo esc_url(wp_nonce_url(add_query_arg(array('id' => $item['id'], 'action' => 'cancel'), $this->baseUrl), 'cancel-export', '_wpnonce_cancel-export')); ?>"><?php esc_html_e('Cancel', 'wp-all-export'); ?></a>
472 </h2>
473 <?php endif; ?>
474 <?php
475 }
476 ?>
477 </td>
478 <?php
479 break;
480 default:
481 ?>
482 <td>
483 <?php do_action('pmxe_manage_imports_column', $column_id, $item); ?>
484 </td>
485 <?php
486 break;
487 endswitch;
488 ?>
489 <?php endforeach; ?>
490 </tr>
491 <?php endforeach; ?>
492 <?php endif ?>
493 </tbody>
494 </table>
495
496 <div class="tablenav">
497 <?php if ($page_links): ?><div class="tablenav-pages"><?php
498 // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- $page_links_html constructed and escaped above
499 echo $page_links_html;
500 ?></div><?php endif ?>
501
502 <div class="alignleft actions">
503 <select name="bulk-action2">
504 <option value="" selected="selected"><?php esc_html_e('Bulk Actions', 'wp-all-export') ?></option>
505 <?php if ( empty($type) or 'trash' != $type): ?>
506 <option value="delete"><?php esc_html_e('Delete', 'wp-all-export') ?></option>
507 <?php else: ?>
508 <option value="restore"><?php esc_html_e('Restore', 'wp-all-export')?></option>
509 <option value="delete"><?php esc_html_e('Delete Permanently', 'wp-all-export')?></option>
510 <?php endif ?>
511 </select>
512 <input type="submit" value="<?php esc_attr_e('Apply', 'wp-all-export') ?>" name="doaction2" id="doaction2" class="button-secondary action" />
513 </div>
514 </div>
515 <div class="clear"></div>
516
517 <div class="wpallexport-negative-margin">
518 <?php // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- plugin-owned filter output; callback in filters/wpallexport_footer.php returns trusted static HTML
519 echo apply_filters('wpallexport_footer', ''); ?>
520 </div>
521
522
523 </form>
524 <div class="wpallexport-overlay"></div>
525 <div class="wpallexport-loader" style="border-radius: 5px; z-index: 999999; display:none; position: fixed;top: 200px; left: 50%; width: 100px;height: 100px;background-color: #fff; text-align: center;">
526 <img style="margin-top: 45%;" src="<?php echo esc_url( PMXE_ROOT_URL ); ?>/static/img/preloader.gif" />
527 </div>
528
529
530 <div class="wpallexport-super-overlay"></div>