Bladeren bron

#1 fix headers separator, rewrite plugin init, add logging.

Dalibor Votruba 1 jaar geleden
bovenliggende
commit
e5986ccea0

+ 8 - 1
studiou-wc-ord-print-statuses/includes/class-bulk-actions-manager.php

@@ -41,15 +41,22 @@ class Bulk_Actions_Manager {
         }
 
         $this->set_status_to_prepare_to_printing($post_ids, $redirect_to);
+        error_log('file exported');
         return $redirect_to;
     }
 
     private function set_status_to_prepare_to_printing($post_ids, $redirect_to) {
+        
         foreach ($post_ids as $post_id) {
+            error_log('Setting status Order #' . $post_id . ' to "to-print"');
             $order = wc_get_order($post_id);
             if ($order) {
                 $order->update_status('to-print');
                 update_post_meta($post_id, 'to-print-date', current_time('mysql'));
+                error_log('Order #' . $post_id . ' marked as "to-print"');
+            }
+            else{
+                error_log('Order #' . $post_id . ' not found');
             }
         }
         $redirect_to = add_query_arg('bulk_action', 'marked_prepare_to_printing', $redirect_to);
@@ -70,7 +77,7 @@ class Bulk_Actions_Manager {
 
     private function generate_csv($data) {
         $output = fopen('php://temp', 'w');
-        fputcsv($output, array_keys((array)$data[0])); // Headers
+        fputcsv($output, array_keys((array)$data[0]),';'); // Headers
 
         foreach ($data as $row) {
             fputcsv($output, (array)$row, ';');

+ 4 - 0
studiou-wc-ord-print-statuses/includes/class-custom-columns-manager.php

@@ -6,11 +6,15 @@ class Custom_Columns_Manager {
     public function __construct() {
         add_filter('manage_woocommerce_page_wc-orders_columns', array($this, 'add_custom_shop_order_column'));
         add_action('manage_woocommerce_page_wc-orders_custom_column', array($this, 'add_custom_shop_order_column_content'), 10, 2);
+        //add_filter('manage_shop_order_posts_custom_column', array($this, 'add_custom_shop_order_column'));
+        //add_action('manage_woocommerce_page_wc-orders_custom_column', array($this, 'add_custom_shop_order_column_content'), 10, 2);
+        //manage_shop_order_posts_custom_column
     }
 
     public function add_custom_shop_order_column($columns) {
         $new_columns = array();
 
+        error_log('Begin registering order columns...');
         foreach ($columns as $column_name => $column_info) {
             $new_columns[$column_name] = $column_info;
 

+ 1 - 60
studiou-wc-ord-print-statuses/includes/class-import-manager.php

@@ -25,14 +25,7 @@ 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">
@@ -44,58 +37,6 @@ 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_id = wc_get_order_id_by_order_number($row['order_no']);
-            if (!$order_id) {
-                $errors[] = sprintf(__('Order %s not found.', 'studiou-wc-ord-print-statuses'), $row['order_no']);
-                continue;
-            }
-
-            $order = wc_get_order($order_id);
-            $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'));

+ 12 - 3
studiou-wc-ord-print-statuses/studiou-wc-ord-print-statuses.php

@@ -32,8 +32,14 @@ class Studiou_WC_Ord_Print_Statuses {
     private $custom_columns_manager;
     private $import_manager;
 
+    public static function initPlugin() {
+        $class = __CLASS__;
+        new $class;
+    }
+
     public function __construct() {
-        add_action('plugins_loaded', array($this, 'init'));
+        // add_action('plugins_loaded', array($this, 'init'));
+        $this->init();
     }
 
     public function init() {
@@ -44,6 +50,7 @@ class Studiou_WC_Ord_Print_Statuses {
 
         $this->load_dependencies();
         $this->initialize_managers();
+        error_log("Plugin initialized");
     }
 
     private function load_dependencies() {
@@ -86,8 +93,10 @@ class Studiou_WC_Ord_Print_Statuses {
 // Load the plugin text domain - translations
 function studiou_wc_ord_print_statuses_load_textdomain() {
     load_plugin_textdomain('studiou-wc-ord-print-statuses', false, dirname(plugin_basename(__FILE__)) . '/languages');
+    error_log("Text domain (translations) loaded");
 }
 add_action('plugins_loaded', 'studiou_wc_ord_print_statuses_load_textdomain');
-
 // Initialize the plugin
-new Studiou_WC_Ord_Print_Statuses();
+add_action( 'plugins_loaded', array( 'Studiou_WC_Ord_Print_Statuses', 'initPlugin' ));
+
+