init(); $frontend_support_form = new DPSUPPORT_Frontend_Support_Form( new DPSUPPORT_Ticket_Repository(), new DPSUPPORT_Message_Repository(), new DPSUPPORT_Attachment_Repository(), new DPSUPPORT_Activity_Repository() ); $frontend_support_form->init(); add_action( 'init', array( 'DPSUPPORT_Installer', 'maybe_flush_rewrite_rules' ), 99 ); if ( is_admin() ) { $admin = new DPSUPPORT_Admin( new DPSUPPORT_Ticket_Repository(), new DPSUPPORT_Message_Repository(), new DPSUPPORT_Attachment_Repository(), new DPSUPPORT_Activity_Repository() ); $admin->init(); add_action( 'admin_init', array( $this, 'add_privacy_policy_content' ) ); } add_action( 'rest_api_init', array( $this, 'register_rest_routes' ) ); do_action( 'dpsupport_initialized' ); } public function register_rest_routes() { register_rest_route( '24laser-support-tickets/v1', '/health', array( 'methods' => WP_REST_Server::READABLE, 'callback' => static function () { return rest_ensure_response( array( 'ok' => true, 'version' => DPSUPPORT_VERSION ) ); }, 'permission_callback' => static function () { return current_user_can( 'dpsupport_view_support' ); }, ) ); } public function add_privacy_policy_content() { if ( ! function_exists( 'wp_add_privacy_policy_content' ) ) { return; } $content = '

' . esc_html__( '24laser Support Tickets speichert Support-Tickets mit Namen, E-Mail-Adresse, Nachrichten, Ticket-Metadaten und optionalen Anhängen in der lokalen WordPress-Datenbank bzw. Mediathek. Für Gastzugänge werden kurzlebige lokale Rate-Limit-Transients anhand von E-Mail/IP-Schlüsseln verwendet. Das Plugin sendet keine Telemetrie und kontaktiert keinen Lizenz- oder Trackingserver. E-Mail-Benachrichtigungen werden über die WordPress-Funktion wp_mail() versendet.', '24laser-support-tickets' ) . '

'; wp_add_privacy_policy_content( '24laser Support Tickets', wp_kses_post( $content ) ); } }