|
|
@@ -25,7 +25,14 @@ class Import_Manager {
|
|
|
<div class="wrap">
|
|
|
<h1><?php echo esc_html(get_admin_page_title()); ?></h1>
|
|
|
|
|
|
-
|
|
|
+ <h2><?php _e('Import InPrint Protocol', 'studiou-wc-ord-print-statuses'); ?></h2>
|
|
|
+ <form method="post" action="<?php echo esc_url(admin_url('admin-post.php')); ?>" enctype="multipart/form-data">
|
|
|
+ <input type="hidden" name="action" value="import_inprint_protocol">
|
|
|
+ <?php wp_nonce_field('import_inprint_protocol', 'import_inprint_protocol_nonce'); ?>
|
|
|
+ <input type="file" name="inprint_csv" accept=".csv" required>
|
|
|
+ <?php submit_button(__('Import InPrint Protocol', 'studiou-wc-ord-print-statuses')); ?>
|
|
|
+ </form>
|
|
|
+
|
|
|
<h2><?php _e('Import Delivered Protocol', 'studiou-wc-ord-print-statuses'); ?></h2>
|
|
|
<form method="post" action="<?php echo esc_url(admin_url('admin-post.php')); ?>" enctype="multipart/form-data">
|
|
|
<input type="hidden" name="action" value="import_delivered_protocol">
|
|
|
@@ -37,6 +44,56 @@ class Import_Manager {
|
|
|
<?php
|
|
|
}
|
|
|
|
|
|
+ public function handle_import_inprint_protocol() {
|
|
|
+ if (!current_user_can('manage_woocommerce')) {
|
|
|
+ wp_die(__('You do not have sufficient permissions to access this page.', 'studiou-wc-ord-print-statuses'));
|
|
|
+ }
|
|
|
+
|
|
|
+ check_admin_referer('import_inprint_protocol', 'import_inprint_protocol_nonce');
|
|
|
+
|
|
|
+ if (!isset($_FILES['inprint_csv'])) {
|
|
|
+ wp_die(__('No file uploaded.', 'studiou-wc-ord-print-statuses'));
|
|
|
+ }
|
|
|
+
|
|
|
+ $file = $_FILES['inprint_csv'];
|
|
|
+ $csv_data = $this->parse_csv($file['tmp_name']);
|
|
|
+
|
|
|
+ if (!$csv_data) {
|
|
|
+ wp_die(__('Error parsing CSV file.', 'studiou-wc-ord-print-statuses'));
|
|
|
+ }
|
|
|
+
|
|
|
+ $updated_count = 0;
|
|
|
+ $errors = array();
|
|
|
+
|
|
|
+ foreach ($csv_data as $row) {
|
|
|
+ if (!isset($row['order_no']) || !isset($row['ExternalOrder']) || !isset($row['ExternalOrderDate'])) {
|
|
|
+ $errors[] = __('Invalid row format in CSV.', 'studiou-wc-ord-print-statuses');
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ $order = wc_get_order($row['order_no']);
|
|
|
+ if (!$order) {
|
|
|
+ $errors[] = sprintf(__('Order %s not found.', 'studiou-wc-ord-print-statuses'), $row['order_no']);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ $order->update_status('wc-in-print');
|
|
|
+ $order->update_meta_data('in_print_date', current_time('mysql'));
|
|
|
+ $order->update_meta_data('external_ref_ord_no', $row['ExternalOrder']);
|
|
|
+ $order->update_meta_data('external_ref_ord_date', $row['ExternalOrderDate']);
|
|
|
+ $order->save();
|
|
|
+
|
|
|
+ $updated_count++;
|
|
|
+ }
|
|
|
+
|
|
|
+ $message = sprintf(__('%d orders updated successfully.', 'studiou-wc-ord-print-statuses'), $updated_count);
|
|
|
+ if (!empty($errors)) {
|
|
|
+ $message .= ' ' . sprintf(__('%d errors occurred: %s', 'studiou-wc-ord-print-statuses'), count($errors), implode(', ', $errors));
|
|
|
+ }
|
|
|
+
|
|
|
+ wp_redirect(add_query_arg('message', urlencode($message), admin_url('admin.php?page=studiou-import-protocols')));
|
|
|
+ exit;
|
|
|
+ }
|
|
|
+
|
|
|
public function handle_import_delivered_protocol() {
|
|
|
if (!current_user_can('manage_woocommerce')) {
|
|
|
wp_die(__('You do not have sufficient permissions to access this page.', 'studiou-wc-ord-print-statuses'));
|
|
|
@@ -63,12 +120,13 @@ class Import_Manager {
|
|
|
$errors[] = __('Invalid row format in CSV.', 'studiou-wc-ord-print-statuses');
|
|
|
continue;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
$order = wc_get_order($row['order_no']);
|
|
|
if (!$order) {
|
|
|
$errors[] = sprintf(__('Order %s not found.', 'studiou-wc-ord-print-statuses'), $row['order_no']);
|
|
|
continue;
|
|
|
}
|
|
|
+
|
|
|
$order->update_status('wc-completed');
|
|
|
$order->update_meta_data('external_ref_ord_delivered', current_time('mysql'));
|
|
|
$order->save();
|