=== Advanced Reading Progress & View Counter === Contributors: teckut Tags: progress bar, reading, post views, view counter, shortcode Requires at least: 6.7 Tested up to: 6.9 Requires PHP: 7.4 WC tested up to: 10.5.3 WC requires at least: 6.5 Stable tag: 1.0.0 Donate link: https://teckut.com/ License: GPL-2.0-or-later License URI: https://www.gnu.org/licenses/gpl-2.0.html Add a reading progress indicator and an anti-refresh post view counter with flexible placement and shortcode support. == Description == Advanced Reading Progress & View Counter adds a customizable reading progress indicator and an intelligent post view counter to your WordPress website. Improve reader engagement with visual reading progress tracking and monitor content popularity with built-in anti-refresh view counting. = Key Features = * Reading progress indicator with bar and radial display modes. * Custom colors, thickness, and position controls. * Select which post types display the indicator. * Post view counter with anti-refresh protection. * Configurable prefix, suffix, colors, and placement. * Shortcode support for manual placement. * Lightweight and performance-friendly. * No external services required. = Shortcodes = * `[arpvc_view_counter]` * `[arpvc_read_count]` (alias) * `[arpvc_view_counter post_id="123"]` * `[arpvc_view_counter prefix="Views:" suffix="total"]` * `[arpvc_view_counter show_zero="0"]` = Notes = * If badge position is set to `Shortcode only`, the badge is rendered only where shortcode is used. * Anti-refresh lock logic still applies to counting unless lock window is set to `0`. == Installation == 1. Upload the plugin folder to `/wp-content/plugins/advanced-reading-progress-view-counter/`. 2. Activate the plugin from the **Plugins** screen in WordPress. 3. Open **Reading Progress & Views** in wp-admin. 4. Configure progress indicator settings in **Progress Settings** tab. 5. Configure counter settings in **View Counter** tab. == Development & Source Code == This plugin uses a modern build process (npm + gulp) to generate optimized production assets. The full human-readable, uncompiled development source code is publicly available at: https://github.com/Teckut-Git/advanced-reading-progress-view-counter The plugin distributed via WordPress.org contains compiled production assets located in: * build/js/ * build/css/ Developers can review, study, modify, and rebuild the original source code using the instructions below. = Rebuild Instructions = To regenerate compiled assets from source: 1. Clone the repository: git clone https://github.com/Teckut-Git/advanced-reading-progress-view-counter 2. Navigate into the project directory: cd advanced-reading-progress-view-counter 3. Install dependencies: npm install 4. Build production files: npx gulp build This ensures transparency and compliance with WordPress.org plugin guidelines. == Screenshots == 1. View counter displayed on a single post. 2. Reading progress bar displayed at the top of a post. 3. Radial reading progress indicator example. 4. Reading Progress settings page in WordPress admin. 5. View Counter settings page in WordPress admin. == Frequently Asked Questions == = How does "Lock window (hours)" work? = It is a cooldown per visitor per post. * Example: if set to `24`, the same visitor adds at most one view to that post every 24 hours. * Repeated refreshes inside the window do not increase the count. = Can I disable the lock window? = Yes. Set `Lock window (hours)` to `0` to disable lock-based deduplication. = How do I place the view counter manually? = Set badge position to `Shortcode only`, then place `[arpvc_view_counter]` where needed. = Does this plugin count bot traffic? = The plugin includes basic request filtering to skip obvious bot-like user agents and non-standard request contexts. = Can I show the counter on a specific post from another page? = Yes, use: `[arpvc_view_counter post_id="123"]` == Changelog == = 1.0.0 = * Initial release. * Progress indicator settings panel. * Post view counter with lock window and shortcode support. == Upgrade Notice == = 1.0.0 = Initial public release.