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

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  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. * Text Domain: studiou-wc-ord-print-statuses
  11. * Domain Path: /languages
  12. */
  13. defined('ABSPATH') or die('Direct access not allowed!');
  14. // Load the DB_Assets_Manager class
  15. require_once plugin_dir_path(__FILE__) . 'includes/class-db-assets-manager.php';
  16. // Register activation and deactivation hooks
  17. register_activation_hook(__FILE__, array('DB_Assets_Manager', 'on_activate'));
  18. register_deactivation_hook(__FILE__, array('DB_Assets_Manager', 'on_deactivate'));
  19. // Main plugin class
  20. class Studiou_WC_Ord_Print_Statuses {
  21. private $order_status_manager;
  22. private $order_fields_manager;
  23. private $order_search_manager;
  24. private $bulk_actions_manager;
  25. private $custom_columns_manager;
  26. private $import_manager;
  27. public function __construct() {
  28. add_action('plugins_loaded', array($this, 'init'));
  29. }
  30. public function init() {
  31. if (!class_exists('WooCommerce')) {
  32. add_action('admin_notices', array($this, 'woocommerce_missing_notice'));
  33. return;
  34. }
  35. $this->load_dependencies();
  36. $this->initialize_managers();
  37. }
  38. private function load_dependencies() {
  39. require_once plugin_dir_path(__FILE__) . 'includes/class-order-status-manager.php';
  40. require_once plugin_dir_path(__FILE__) . 'includes/class-order-fields-manager.php';
  41. require_once plugin_dir_path(__FILE__) . 'includes/class-order-search-manager.php';
  42. require_once plugin_dir_path(__FILE__) . 'includes/class-bulk-actions-manager.php';
  43. require_once plugin_dir_path(__FILE__) . 'includes/class-custom-columns-manager.php';
  44. require_once plugin_dir_path(__FILE__) . 'includes/class-import-manager.php';
  45. }
  46. private function initialize_managers() {
  47. $this->order_status_manager = new Order_Status_Manager();
  48. $this->order_fields_manager = new Order_Fields_Manager();
  49. $this->order_search_manager = new Order_Search_Manager();
  50. $this->bulk_actions_manager = new Bulk_Actions_Manager();
  51. $this->custom_columns_manager = new Custom_Columns_Manager();
  52. $this->import_manager = new Import_Manager();
  53. }
  54. public function woocommerce_missing_notice() {
  55. ?>
  56. <div class="error">
  57. <p><?php _e('Studiou WC Order Print Statuses requires WooCommerce to be installed and active.', 'studiou-wc-ord-print-statuses'); ?></p>
  58. </div>
  59. <?php
  60. }
  61. }
  62. // Load the plugin text domain - translations
  63. function studiou_wc_ord_print_statuses_load_textdomain() {
  64. load_plugin_textdomain('studiou-wc-ord-print-statuses', false, dirname(plugin_basename(__FILE__)) . '/languages');
  65. }
  66. // register the load_plugin_textdomain function
  67. add_action('plugins_loaded', 'studiou_wc_ord_print_statuses_load_textdomain');
  68. // Initialize the plugin
  69. new Studiou_WC_Ord_Print_Statuses();