Files
Digital-Dabei-Hamburg-Job-M…/includes/class-ddhh-job-manager.php
Viktor Miller cae10e113c feat(06-02): create scheduler helper class for email batch actions
- Created DDHH_JM_Scheduler class with static setup_hooks() method
- Added schedule_mentor_notification_batch() method with 50-user batching
- Uses as_enqueue_async_action() with unique flag and email-notifications group
- Initialized in main plugin file and job manager class
- Ready for Phase 06-03 to register async action callbacks
2026-01-14 21:04:26 +09:00

83 lines
2.0 KiB
PHP

<?php
/**
* Main plugin class
*
* @package DDHH_Job_Manager
*/
// Exit if accessed directly.
defined( 'ABSPATH' ) || exit;
/**
* Main plugin class - Singleton
*/
class DDHH_JM_Job_Manager {
/**
* Single instance of the class
*
* @var DDHH_JM_Job_Manager
*/
private static $instance = null;
/**
* Get singleton instance
*
* @return DDHH_JM_Job_Manager
*/
public static function get_instance() {
if ( null === self::$instance ) {
self::$instance = new self();
}
return self::$instance;
}
/**
* Constructor - Private to enforce singleton
*/
private function __construct() {
$this->init_hooks();
}
/**
* Initialize hooks
*/
private function init_hooks() {
// Register activation and deactivation hooks
register_activation_hook( DDHH_JM_PLUGIN_FILE, array( 'DDHH_JM_Activator', 'activate' ) );
register_deactivation_hook( DDHH_JM_PLUGIN_FILE, array( 'DDHH_JM_Deactivator', 'deactivate' ) );
// Initialize post types
add_action( 'init', array( 'DDHH_JM_Post_Types', 'register' ) );
// Initialize ACF fields
add_action( 'acf/init', array( 'DDHH_JM_ACF_Fields', 'register_fields' ) );
// Initialize Formidable Forms integration
add_action( 'init', array( 'DDHH_JM_Formidable', 'setup_registration_hooks' ) );
// Initialize dashboard
add_action( 'init', array( 'DDHH_JM_Dashboard', 'init' ) );
// Initialize access control
add_action( 'init', array( 'DDHH_JM_Access_Control', 'setup_hooks' ) );
// Initialize notifications
add_action( 'init', array( 'DDHH_JM_Notifications', 'setup_hooks' ) );
// Initialize archive query helper
add_action( 'init', array( 'DDHH_JM_Archive', 'setup_hooks' ) );
// Initialize admin UI enhancements (admin-only)
if ( is_admin() ) {
add_action( 'init', array( 'DDHH_JM_Admin_UI', 'setup_hooks' ) );
}
// Initialize user preferences
add_action( 'init', array( 'DDHH_JM_User_Preferences', 'setup_hooks' ) );
// Initialize scheduler for async email processing
add_action( 'init', array( 'DDHH_JM_Scheduler', 'setup_hooks' ) );
}
}