211J Countdown Timer for WooCommerce',
'WooCommerce'
);
printf( '
', wp_kses_post( $message ) );
}
// Main plugin class
class Countdown_Timer_For_WooCommerce {
private static $instance = null;
public static function instance() {
if ( is_null( self::$instance ) ) {
self::$instance = new self();
}
return self::$instance;
}
public function __construct() {
add_action( 'init', array( $this, 'init' ) );
}
public function init() {
// Load plugin classes
$this->load_classes();
// Initialize plugin functionality
$this->init_hooks();
}
private function load_classes() {
require_once COUNTDOWN_TIMER_FOR_WOOCOMMERCE_PLUGIN_PATH . 'includes/class-settings.php';
require_once COUNTDOWN_TIMER_FOR_WOOCOMMERCE_PLUGIN_PATH . 'includes/class-countdown-display.php';
require_once COUNTDOWN_TIMER_FOR_WOOCOMMERCE_PLUGIN_PATH . 'includes/class-admin.php';
}
private function init_hooks() {
// Initialize classes
Countdown_Timer_For_WooCommerce_Settings::instance();
Countdown_Timer_For_WooCommerce_Display::instance();
Countdown_Timer_For_WooCommerce_Admin::instance();
}
public static function activate() {
// Set default settings on activation
$default_settings = array(
'cutoff_time' => '14:00',
'message_template' => 'Order within {time} for same-day shipping!',
'enable_weekends' => false,
'urgency_threshold' => 60,
'very_urgent_threshold' => 30
);
if ( ! get_option( 'countdown_timer_for_woocommerce_settings' ) ) {
update_option( 'countdown_timer_for_woocommerce_settings', $default_settings );
}
}
public static function deactivate() {
// Clean up if needed
}
}
// Initialize plugin
function countdown_timer_for_woocommerce() {
return Countdown_Timer_For_WooCommerce::instance();
}
// Start the plugin
countdown_timer_for_woocommerce();
// Activation/Deactivation hooks
register_activation_hook( __FILE__, array( 'Countdown_Timer_For_WooCommerce', 'activate' ) );
register_deactivation_hook( __FILE__, array( 'Countdown_Timer_For_WooCommerce', 'deactivate' ) );