class-main.php 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. /**
  3. * Main Plugin Class
  4. *
  5. * @package StudiouWCCustomReports
  6. */
  7. if (!defined('ABSPATH')) {
  8. exit;
  9. }
  10. class StudiouWC_Main {
  11. private $db_manager;
  12. private $settings_manager;
  13. private $admin_view;
  14. private $export_handler;
  15. public function __construct() {
  16. $this->init_classes();
  17. $this->init_hooks();
  18. }
  19. private function init_classes() {
  20. $this->db_manager = new StudiouWC_DB_Manager();
  21. $this->settings_manager = new StudiouWC_Settings_Manager();
  22. $this->admin_view = new StudiouWC_Admin_View($this->db_manager, $this->settings_manager);
  23. $this->export_handler = new StudiouWC_Export_Handler($this->db_manager, $this->settings_manager);
  24. }
  25. private function init_hooks() {
  26. add_action('init', array($this, 'init'));
  27. add_action('admin_menu', array($this->admin_view, 'add_admin_menu'));
  28. add_action('admin_enqueue_scripts', array($this->admin_view, 'enqueue_admin_scripts'));
  29. add_action('wp_ajax_studiou_export_csv', array($this->export_handler, 'export_csv'));
  30. add_action('wp_ajax_studiou_save_settings', array($this->settings_manager, 'save_settings'));
  31. register_activation_hook(STUDIOU_WC_CUSTOM_REPORTS_PLUGIN_FILE, array($this->settings_manager, 'activate'));
  32. register_deactivation_hook(STUDIOU_WC_CUSTOM_REPORTS_PLUGIN_FILE, array($this, 'deactivate'));
  33. }
  34. public function init() {
  35. // Load text domain - this is now handled in the main plugin file
  36. // but keeping this for backward compatibility
  37. if (!did_action('plugins_loaded')) {
  38. load_plugin_textdomain(
  39. STUDIOU_WC_CUSTOM_REPORTS_TEXT_DOMAIN,
  40. false,
  41. dirname(plugin_basename(STUDIOU_WC_CUSTOM_REPORTS_PLUGIN_FILE)) . '/languages'
  42. );
  43. }
  44. }
  45. public function deactivate() {
  46. // Cleanup if needed
  47. // Note: We don't delete settings on deactivation, only on uninstall
  48. }
  49. public static function get_text_domain() {
  50. return STUDIOU_WC_CUSTOM_REPORTS_TEXT_DOMAIN;
  51. }
  52. public static function get_version() {
  53. return STUDIOU_WC_CUSTOM_REPORTS_VERSION;
  54. }
  55. public static function get_plugin_dir() {
  56. return STUDIOU_WC_CUSTOM_REPORTS_PLUGIN_DIR;
  57. }
  58. public static function get_plugin_url() {
  59. return STUDIOU_WC_CUSTOM_REPORTS_PLUGIN_URL;
  60. }
  61. }