class-main.php 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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_plugin_textdomain(
  36. STUDIOU_WC_CUSTOM_REPORTS_TEXT_DOMAIN,
  37. false,
  38. dirname(plugin_basename(STUDIOU_WC_CUSTOM_REPORTS_PLUGIN_FILE)) . '/languages'
  39. );
  40. }
  41. public function deactivate() {
  42. // Cleanup if needed
  43. }
  44. public static function get_text_domain() {
  45. return STUDIOU_WC_CUSTOM_REPORTS_TEXT_DOMAIN;
  46. }
  47. public static function get_version() {
  48. return STUDIOU_WC_CUSTOM_REPORTS_VERSION;
  49. }
  50. public static function get_plugin_dir() {
  51. return STUDIOU_WC_CUSTOM_REPORTS_PLUGIN_DIR;
  52. }
  53. public static function get_plugin_url() {
  54. return STUDIOU_WC_CUSTOM_REPORTS_PLUGIN_URL;
  55. }
  56. }