post_content, 'business_forum' ) ) { $classes[] = 'wbf-forum-page'; } return $classes; }); // ── Cron: Abgelaufene Sperren aufheben ──────────────────────────────────────── add_action( 'wbf_check_expired_bans', function() { WBF_DB::check_expired_bans(); } ); if ( ! wp_next_scheduled( 'wbf_check_expired_bans' ) ) { wp_schedule_event( time(), 'hourly', 'wbf_check_expired_bans' ); } register_deactivation_hook( __FILE__, function() { wp_clear_scheduled_hook( 'wbf_check_expired_bans' ); } ); // ── Forum-URL Hilfsfunktion ─────────────────────────────────────────────────── function wbf_get_forum_url() { // 1. Gespeicherte Seite aus dem Setup-Wizard $page_id = get_option('wbf_forum_page_id'); if ( $page_id ) { $url = get_permalink( $page_id ); if ( $url ) return $url; } // 2. Fallback: Seite mit [business_forum] Shortcode suchen $pages = get_posts([ 'post_type' => 'page', 'post_status' => 'publish', 'posts_per_page' => 1, 's' => 'business_forum', ]); if ( $pages ) return get_permalink( $pages[0]->ID ); // 3. Letzter Fallback: aktuelle Seite return home_url('/'); } // ── Assets ──────────────────────────────────────────────────────────────────── add_action( 'wp_enqueue_scripts', function() { wp_enqueue_style( 'wbf-style', WBF_URL . 'assets/css/forum-style.css', [], WBF_VERSION ); wp_enqueue_script( 'wbf-script', WBF_URL . 'assets/js/forum-script.js', ['jquery'], WBF_VERSION, true ); $wbf_user = WBF_Auth::get_current_user(); if ( $wbf_user ) { WBF_DB::touch_last_active( $wbf_user->id ); } wp_localize_script( 'wbf-script', 'WBF', [ 'ajax_url' => admin_url('admin-ajax.php'), 'nonce' => wp_create_nonce('wbf_nonce'), 'logged_in' => WBF_Auth::is_forum_logged_in() ? 'yes' : 'no', 'auto_logout_minutes' => (int)( wbf_get_settings()['auto_logout_minutes'] ?? 30 ), 'my_id' => $wbf_user ? (int)$wbf_user->id : 0, 'unread_dm' => $wbf_user ? WBF_DB::count_unread_messages($wbf_user->id) : 0, 'forum_url' => wbf_get_forum_url(), 'reactions' => WBF_DB::get_allowed_reactions(), ]); });