studiou-wc-ord-print-statuses.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <?php
  2. /**
  3. * Plugin Name: QDR - Studiou WC Order Print Statuses
  4. * Plugin URI: https://www.quadarax.com/plugins/studiou-wc-ord-print-statuses
  5. * Description: Adds custom order statuses (to-print,in-print), bulk actions, and status change timestamps to WooCommerce for print orders to third party provider
  6. * Version: 1.0
  7. * Author: Dalibor Votruba
  8. * Author URI: https://www.quadarax.com
  9. * License: GPL2
  10. */
  11. defined('ABSPATH') or die('Direct access not allowed!');
  12. // Load the DB_Assets_Manager class
  13. require_once plugin_dir_path(__FILE__) . 'includes/class-db-assets-manager.php';
  14. // Register activation and deactivation hooks
  15. register_activation_hook(__FILE__, array('DB_Assets_Manager', 'on_activate'));
  16. register_deactivation_hook(__FILE__, array('DB_Assets_Manager', 'on_deactivate'));
  17. // Main plugin class
  18. class Studiou_WC_Ord_Print_Statuses {
  19. private $order_status_manager;
  20. private $order_fields_manager;
  21. private $order_search_manager;
  22. private $bulk_actions_manager;
  23. private $custom_columns_manager;
  24. private $import_manager;
  25. public function __construct() {
  26. add_action('plugins_loaded', array($this, 'init'));
  27. }
  28. public function init() {
  29. if (!class_exists('WooCommerce')) {
  30. add_action('admin_notices', array($this, 'woocommerce_missing_notice'));
  31. return;
  32. }
  33. $this->load_dependencies();
  34. $this->initialize_managers();
  35. }
  36. private function load_dependencies() {
  37. require_once plugin_dir_path(__FILE__) . 'includes/class-order-status-manager.php';
  38. require_once plugin_dir_path(__FILE__) . 'includes/class-order-fields-manager.php';
  39. require_once plugin_dir_path(__FILE__) . 'includes/class-order-search-manager.php';
  40. require_once plugin_dir_path(__FILE__) . 'includes/class-bulk-actions-manager.php';
  41. require_once plugin_dir_path(__FILE__) . 'includes/class-custom-columns-manager.php';
  42. require_once plugin_dir_path(__FILE__) . 'includes/class-import-manager.php';
  43. }
  44. private function initialize_managers() {
  45. $this->order_status_manager = new Order_Status_Manager();
  46. $this->order_fields_manager = new Order_Fields_Manager();
  47. $this->order_search_manager = new Order_Search_Manager();
  48. $this->bulk_actions_manager = new Bulk_Actions_Manager();
  49. $this->custom_columns_manager = new Custom_Columns_Manager();
  50. $this->import_manager = new Import_Manager();
  51. }
  52. public function woocommerce_missing_notice() {
  53. ?>
  54. <div class="error">
  55. <p><?php _e('Studiou WC Order Print Statuses requires WooCommerce to be installed and active.', 'studiou-wc-ord-print-statuses'); ?></p>
  56. </div>
  57. <?php
  58. }
  59. }
  60. // Initialize the plugin
  61. new Studiou_WC_Ord_Print_Statuses();