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> |