- Replace non-existent FrmFormActionsController::create_action() with proper API
- Use get_form_actions('wppost')->prepare_new() pattern
- Affects job submission, edit, and deactivation forms
- Move register_activation_hook() to main plugin file top level
- WordPress requires activation hooks at bootstrap, not in plugins_loaded
- Fixes missing page creation on plugin activation
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
88 lines
2.1 KiB
PHP
88 lines
2.1 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() {
|
|
// Initialize post types
|
|
add_action( 'init', array( 'DDHH_JM_Post_Types', 'register' ) );
|
|
|
|
// Upgrade roles with any new capabilities
|
|
add_action( 'init', array( 'DDHH_JM_Roles', 'upgrade_roles' ) );
|
|
|
|
// 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 template display
|
|
add_action( 'init', array( 'DDHH_JM_Template', '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' ) );
|
|
|
|
// Initialize pages
|
|
add_action( 'init', array( 'DDHH_JM_Pages', 'setup_hooks' ) );
|
|
}
|
|
}
|