=== TK bbPress Stats === Contributors: tkserver Donate link: http://www.tkserver.com/ Tags: widget, bbPress, statistics, forum, stats Requires at least: 5.0.0 Tested up to: 6.7 Requires PHP: 7.4 Stable tag: 2.0.0 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html Modern, secure bbPress statistics widget with PHP 8.5 support. Display forum stats with caching and security enhancements. == Description == TK bbPress Stats provides useful statistics about your bbPress forum with modern security and performance features. Fully compatible with PHP 8.5 while maintaining backward compatibility to PHP 7.4. **Key Features:** * Display forum statistics in widgets or via shortcode * Intelligent caching for optimal performance * Secure database queries with prepared statements * Full internationalization support * Modern PHP 8.5 code with type safety * Conditional asset loading for better performance **Available Statistics:** 1. Total Users 2. Total Topics 3. Total Replies 4. Total Posts (topics + replies) 5. Total Forums Each statistic can be individually enabled/disabled, and the widget title is fully customizable. **Security Features:** * SQL injection protection with prepared statements * XSS prevention with proper output escaping * Input sanitization on all user data * Capability checks for admin access * Path traversal protection **Performance Optimizations:** * Smart caching (1-hour default, auto-invalidates on changes) * Conditional script/style loading * Optimized database queries * Minimal resource footprint == Installation == = Automatic Installation = 1. Log in to your WordPress admin panel 2. Navigate to Plugins > Add New 3. Search for "TK bbPress Stats" 4. Click "Install Now" and then "Activate" = Manual Installation = 1. Download the plugin zip file 2. Upload the folder `tk-bbpress-stats` to the `/wp-content/plugins/` directory 3. Activate the plugin through the 'Plugins' menu in WordPress 4. Configure the widget in Appearance > Widgets or use the shortcode = Widget Usage = 1. Go to Appearance > Widgets 2. Drag "TK bbPress Stats" to your desired widget area 3. Configure which statistics to display 4. Save your settings = Shortcode Usage = Insert this shortcode in any post or page: `[widget widget_name="TK_bbPress_Stats"]` Then configure display options in Settings > TK bbPress Stats = Requirements = * WordPress 5.0 or higher * bbPress plugin installed and activated * PHP 7.4 or higher (PHP 8.0+ recommended) == Frequently Asked Questions == = What statistics can this widget display? = The widget can show: * Total Users * Total Topics * Total Replies * Total Posts (topics + replies combined) * Total Forums Each statistic can be individually enabled or disabled. = Does the widget count unpublished or trashed content? = No, only published topics, replies, and forums are counted. = Is this plugin compatible with PHP 8.5? = Yes! Version 2.0.0 is fully compatible with PHP 8.5 while maintaining backward compatibility with PHP 7.4+. = How does caching work? = Statistics are cached for 1 hour by default. The cache automatically clears when: * A new topic is created * A new reply is posted * A new forum is created * A user registers or is deleted = Is this plugin secure? = Yes, version 2.0.0 includes comprehensive security improvements: * SQL injection protection with prepared statements * XSS prevention with proper escaping * Input sanitization * Capability checks * Path traversal protection = Will upgrading from v1.x break my site? = No, version 2.0.0 is fully backward compatible. Your existing settings and widget configurations will be preserved. = Can I customize the cache duration? = Yes, add this to your wp-config.php: `define('TK_BBPRESS_STATS_CACHE_EXPIRATION', 3600); // seconds` = Does this work with multisite? = Yes, the plugin works with WordPress multisite installations. = How do I translate this plugin? = The plugin is fully internationalized. Use a translation plugin like Loco Translate or create .po/.mo files in the /lang directory. == Screenshots == 1. Widget settings - back end 2. Widget display - front end == Changelog == = 2.0.0 - 2026-01-26 = **Major Security & Modernization Release** * **SECURITY**: Fixed SQL injection vulnerability in database queries * **SECURITY**: Added input sanitization for all user inputs * **SECURITY**: Implemented capability checks for admin access * **SECURITY**: Added path validation for file includes * **SECURITY**: Proper output escaping throughout * **NEW**: PHP 8.5 compatibility with type declarations * **NEW**: Intelligent caching system (1-hour default) * **NEW**: Conditional asset loading for better performance * **NEW**: Full internationalization support * **NEW**: bbPress dependency check on activation * **IMPROVED**: Modern PHP syntax (short arrays, typed properties) * **IMPROVED**: Optimized database queries with prepared statements * **IMPROVED**: Better error handling and user feedback * **IMPROVED**: Code organization and documentation * **IMPROVED**: Widget configuration interface * **FIXED**: Deprecated widget constructor * **FIXED**: Undefined array key warnings * **FIXED**: Inconsistent option naming * Minimum PHP version: 7.4 (backward compatible) * Minimum WordPress version: 5.0 * Tested up to WordPress 6.7 = 1.0.3 - 2016-03-27 = * Added shortcode option for putting widget inside posts/pages = 1.0.2 - 2016-03-26 = * Small code cleanup * Added screenshots, icon and header image = 1.0.1 - 2016-03-25 = * Small code cleanup * Image updates = 1.0.0 - 2016-03-20 = * Initial release == Upgrade Notice == = 2.0.0 = Major security and modernization update. Fixes critical SQL injection vulnerability. Adds PHP 8.5 support. Highly recommended upgrade for all users. Fully backward compatible - no breaking changes. = 1.0.3 = Added shortcode functionality for displaying stats in posts and pages.