PluginProbe ʕ •ᴥ•ʔ
Post Views Counter / trunk
Post Views Counter vtrunk
1.7.13 1.7.12 1.7.11 trunk 1.0.0 1.0.1 1.0.10 1.0.11 1.0.12 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.2.0 1.2.1 1.2.10 1.2.11 1.2.12 1.2.13 1.2.14 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 1.3 1.3.1 1.3.10 1.3.11 1.3.12 1.3.13 1.3.2 1.3.2.1 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.4 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.7.0 1.7.1 1.7.10 1.7.2 1.7.3 1.7.4 1.7.5 1.7.6 1.7.7 1.7.8 1.7.9
post-views-counter / readme.txt
post-views-counter Last commit date
assets 7 months ago blocks 1 month ago css 3 weeks ago includes 3 weeks ago js 3 weeks ago languages 1 month ago index.php 6 years ago post-views-counter.php 3 weeks ago readme.txt 3 weeks ago
readme.txt
486 lines
1 === Post Views Counter ===
2 Contributors: dfactory
3 Tags: counter, postviews, statistics, analytics, pageviews
4 Requires at least: 6.3.0
5 Requires PHP: 7.0
6 Tested up to: 7.0
7 Stable tag: 1.7.13
8 License: MIT License
9 License URI: http://opensource.org/licenses/MIT
10
11 Post Views Counter allows you to collect and display how many times a post, page, or other content has been viewed in a simple, fast and reliable way.
12
13 == Description ==
14
15 Post Views Counter allows you to collect and display how many times a post, page, or other content has been viewed in a simple, fast and reliable way.
16
17 [Post Views Counter](https://postviewscounter.com/) gives you clear, accurate post view stats — right inside WordPress. No external tools. No bloat. Just the numbers you need to see what’s working.
18
19 = Key Benefits =
20
21 Clarity, speed, and control:
22
23 - **Clear, Focused Metrics** — You get a clear picture of how your posts are performing.
24 - **Made for WordPress** — Runs entirely in your site. No GA, no third-party pipes; accurate counts in your Dashboard.
25 - **Privacy-first** — Data lives on your server, with controls that respect visitors’ rights and privacy regulations.
26 - **Works at scale** — Minimal overhead, no external scripts, Multisite-ready.
27 - **Display anywhere** — Automatically show counts, or place them exactly where you want via blocks or shortcode.
28
29 = Features =
30
31 Practical features that matter:
32
33 - Count & display views for **any post type** you select.
34 - Three counting modes: **PHP, JavaScript, REST API**
35 - Dashboard post views **stats widget**
36 - Sortable Post Views **admin column**
37 - Exclude bots, logged-in users, specific roles, or IPs
38 - Manually adjust a post’s views when needed.
39 - Query and **order content by views** (developer-friendly)
40 - Custom REST API endpoints
41 - Option to set count interval
42 - One-click data import from **WP-PostViews**, **Statify** and **Page Views Count**
43 - Post views **display position**, automatic or manual via shortcode
44 - **Multisite** compatibile
45 - **WPML/Polylang** compatible; translation-ready (.pot)
46
47 = Post Views Counter Pro =
48
49 More capability without extra complexity:
50
51 - **Fast AJAX counting** for more accurate data.
52 - **Caching optimization** that guarantees performance even under heavy traffic.
53 - **Reports**: Views by Date, Post, Author to spot winners, trends, and top contributors.
54 - Customizable **Views Period** (e.g., last 7/30 days) to control the views count timeframe.
55 - **Export to CSV/XML** to download and share data.
56 - **Integrations** for ordering by views in popular builders (e.g., **Elementor Pro, Divi, GenerateBlocks**).
57
58 [Learn more about Pro →](https://postviewscounter.com/pricing/)
59
60 == Installation ==
61
62 1. Install Post Views Counter either via the WordPress.org plugin directory, or by uploading the files to your server
63 2. Activate the plugin through the 'Plugins' menu in WordPress
64 3. Go to the Post Views Counter settings and set your options.
65
66 == Frequently Asked Questions ==
67
68 For many frequently asked questions check the [Post Views Counter Docs](https://postviewscounter.com/documentation/).
69
70 = Why use Post Views Counter vs Google Analytics? =
71
72 Post Views Counter gives you clean, per-post view counts inside WordPress — fast, cache-friendly, and privacy-first, with data that stays on your server. Google Analytics might be an overkill when you just need accurate post/page views for editorial decisions.
73
74 = Can I use Post Views Counter alongside Google Analytics? =
75
76 Of course — many sites use both. Post Views Counter handles on-site, per-post view counts inside WordPress (no third-party scripts), while Google Analytics covers marketing funnels and acquisition.
77
78 = Is Post Views Counter GDPR compliant? =
79
80 Post Views Counter runs entirely inside WordPress with no third-party scripts and keeps data on your server — aligning with GDPR-style expectations.
81
82 = How do I get support? =
83
84 If you’re using the free version, please post your question in the WordPress.org support forum.
85
86 If you’ve purchased Post Views Counter Pro, your license includes one year of updates and premium support. You can contact us directly through our dedicated support channel available after logging into your account at [Post Views Counter](https://postviewscounter.com/), and our team will get back to you.
87
88 == Screenshots ==
89
90 1. screenshot-1.png
91 2. screenshot-2.png
92
93 == Changelog ==
94
95 = 1.7.13 =
96 * Fix: Save post views correctly from WooCommerce product Quick Edit.
97
98 = 1.7.12 =
99 * Fix: Prevent widget fatal errors when pvc_most_viewed_posts loads before the widgets API is ready.
100 * Fix: Refresh dashboard period navigation data for widgets.
101 * Fix: Improve email summary recipient validation and persist the separate test recipient setting.
102 * Tweak: Constrain total post view lookups to the total period.
103
104 = 1.7.11 =
105 * New: Weekly email summaries with scheduling, test send, and template-based rendering.
106
107 = 1.7.10 =
108 * New: Session-based counting migration with legacy compatibility.
109 * Fix: Admin post views ordering fallback.
110 * Tweak: Normalize Count Interval to hours-only.
111
112 = 1.7.9 =
113 * New: Lazy-load widgets loading.
114 * New (Pro): Add Kadence Blocks integration for Posts block ordering by views
115 * New (Pro): Add CoBlocks integration for Posts and Post Carousel ordering by views
116
117 = 1.7.8 =
118 * Fix: Harden option-backed in_array() checks to prevent PHP 8.x TypeErrors.
119 * Fix: Add IPv6 support for excluded IP matching in settings and counting.
120 * Tweak: Update internal build tooling.
121
122 = 1.7.7 =
123 * Fix: Prevent undefined array key warnings when saving Display settings menu position.
124
125 = 1.7.6 =
126 * Fix: Prevent SQL errors in pvc_get_post_views function.
127
128 = 1.7.5 =
129 * Tweak: Optimize traffic signals database query performance.
130 * Tweak: Admin columns display priority and traffic signals comparison alignment.
131
132 = 1.7.4 =
133 * New: Month-over-Month anomaly detection traffic signals in admin columns.
134 * Tweak: Add loading state UI to modal charts.
135 * Fix: Month period rollover calculation in chart navigation.
136 * Fix: Cookie validation for empty or malformed segments in frontend.
137
138 = 1.7.3 =
139 * Fix: Settings validation for exclude/restrict display checkbox fields.
140 * Fix: Map nested array format to flat field keys before validation.
141 * Fix: Restrict display merge logic using correct field names.
142
143 = 1.7.2 =
144 * Fix: jQuery wrapper applied to vanilla JS files in build output.
145
146 = 1.7.1 =
147 * New: Enhanced settings UI with modern theme and improved visual design.
148 * Tweak: Improved settings field conditional visibility and validation.
149 * Tweak: Better taxonomy display controls and IP exclusion field descriptions.
150 * Fix: JS redeclaration errors by wrapping editor bundles in IIFE.
151 * Fix: Conditional visibility for nested import settings fields.
152
153 = 1.7.0 =
154 * New: Integrations page with user-controlled handling for third-party plugins.
155 * New (Pro): Beaver Builder integration for ordering posts by views in modules.
156 * New (Pro): Improved JetEngine integration copy and settings UI.
157 * Tweak: Refactored settings into modular page classes with backward compatibility.
158 * Fix: Editor JS scope collisions by wrapping editor bundles in IIFE.
159
160 = 1.6.1 =
161 * Tweak: Switch to Vite build system for improved development workflow.
162 * Fix (Pro): Fixed empty user agent handling in Fast AJAX mode.
163 * Tweak: Additional UI improvements for settings pages.
164
165 = 1.6.0 =
166 * New: Dedicated import framework with provider-aware analysis/reporting and strategy selector.
167 * New: Option to import views from Statify and Page Views Count plugins.
168 * New (Pro): Additional import strategies (skip existing, keep higher count, fill empty-only).
169 * New: Plugin Status panel now surfaces detected PVC database tables for easier troubleshooting.
170 * Tweak: Settings UI reorganized with refreshed copy, clearer visitor exclusion controls, and a polished Other tab experience.
171 * Tweak: Menu placement option moved to Display settings and mirrored for backward compatibility.
172
173 = 1.5.9 =
174 * New: Admin column modal chart with post views data
175 * New: Extended admin column modal with yearly and weekly views data (Pro)
176 * New: Admin column modal chart for terms and users (Pro)
177
178 = 1.5.8 =
179 * Tweak: Updated default value for object cache flushing interval
180 * Tweak: Treat empty or missing user agent as bot
181
182 = 1.5.7 =
183 * New: Count visits by referrer (Pro)
184 * Prevent duplicate AJAX calls in REST API mode
185 * Fix: Major improvements for FastAjax handling (Pro)
186 * Fix: Major object cache support improvements (Pro)
187 * Fix: Apply crawler/bot check filter for REST API endpoints
188 * Tweak: Remove unused storage and mutator methods
189
190 = 1.5.6 =
191 * New: Count visits by device, browser and OS (Pro)
192 * New: Count visits by browser language (Pro)
193 * New: Traffic Information dashboard widget (Pro)
194 * New: HTTP request improvements for caching and security (Pro)
195 * New: Client size bot detection (Pro)
196 * Tweak: Fix and simplify post views shortcode for loops
197 * Tweak: Adjust the post views display in Gutenberg editor
198 * Tweak: Check db query results and log error
199
200 = 1.5.5 =
201 * New: Count Time option to store the views in GMT or Local time (Pro)
202 * New: Reports extended with Author Posts and Author Archive (Pro)
203 * New: Counting Jet Engine Profile Builder user profiles as archive view (Pro)
204 * Tweak: Improved logic for Admin Display and Admin Edit
205 * Tweak: Settings UI improvements
206
207 = 1.5.4 =
208 * New: Caching compatibility option (Pro)
209
210 = 1.5.3 =
211 * Tweak: WordPress 6.8 compatibility
212 * Tweak: Move admin column options to Display settings
213 * Tweak: Added pvc_current_scheme_color filter hook to adjust chart colors
214
215 = 1.5.2 =
216 * Tweak: Updated crawlers list
217 * Tweak: Updated Chart.js to 4.4.8
218 * New: Add orderby post_views support to Elementor Pro posts query (Pro)
219 * New: Add orderby post_views support to Divi theme blog module (Pro)
220 * New: Add orderby post_views support to GenerateBlocks query (Pro)
221 * New: Option to exclude AI bots visits from counting (Pro)
222
223 = 1.5.1 =
224 * Fix: Undefined variable $post_type warning in admin columns
225
226 = 1.5.0 =
227 * Fix: Deprecated DateTime dynamic property
228 * Tweak:Implement AJAX queue for saving dashboard user options
229 * Tweak: Update bot detection class
230 * Tweak: Add widget loaded JS event
231 * Tweak: Fix typo in widget tooltip
232 * Tweak: Improve dahboard widgets UI
233 * New: Dashboard widgets revamp (Pro)
234 * New: Added weekly and yearly dashboard widgets navigation (Pro)
235 * New: Added trend (increase/decrease) to dashboard widget charts (Pro)
236 * New: Taxonomy & Terms selection in Views by Post reports (Pro)
237
238 = 1.4.8 =
239 * New: Introducing Post Views block
240 * New: Introducing Most Viewed Posts block
241 * Tweak: Updated Chart.js to 4.4.6
242
243 = 1.4.7 =
244 * New: Dynamic views loading option (Pro)
245 * Fix: Multi-sorting queries with post_views orderby parameter
246
247 = 1.4.6 =
248 * Fix: Bulk posts selection
249 * Fix: Additional SQL queries escaping
250 * Tweak: Call to undefined function is_favicon()
251 * Tweak: Enqueue main script in header instead of footer
252 * Tweak: Better JS error handling
253 * Tweak: Updated Chart.js to 4.4.2
254
255 = 1.4.5 =
256 * Fix: Post views bulk saving security
257 * Tweak: Removed WP Rocket as bot in crawler detection
258
259 = 1.4.4 =
260 * New: Option to enter meta_key for importing the views
261 * New: Revamped Reports for Views by Date, Views by Post and Views by Author (Pro)
262 * New: REST API support for post, site, term and user views (Pro)
263 * New: Views Period option to display views from a selected time period instead of total (Pro)
264 * New: [site-views] shortcode for total site views display (Pro)
265 * Tweak: Improved icon handling
266 * Tweak: Updated crawler detection
267
268 = 1.4.3 =
269 * Tweak: Update languages file
270
271 = 1.4.2 =
272 * New: Option to select position of the plugin menu
273
274 = 1.4.1 =
275 * Fix: Frontpage views not recorded properly
276
277 = 1.4 =
278 * New: Introducing Post Views Counter Pro
279 * New: Fast Ajax views counting mode (Pro)
280 * New: Google AMP support (Pro)
281 * New: Taxonomy term views (Pro)
282 * New: Author archive views (Pro)
283 * New: Cookies/Cookieless data storage option (Pro)
284 * New: Dedicated Reports page (Pro)
285 * New: Exporting views to CSV or XML files (Pro)
286 * Tweak: Improved validation and sanitization
287 * Tweak: Chart.js updated to 4.3.0
288
289 = 1.3.13 =
290 * New: Compatibility with WP 6.2 and PHP 8.2
291 * Fix: Invalid year in seconds
292 * Fix: Possible invalid cookie data in views storage
293 * Fix: Default database prefix
294 * Tweak: Switch from wp_localize_script to wp_add_inline_script
295 * Tweak: Updated bot detection
296
297
298 = 1.3.12 =
299 * Fix: Frontend Javascript rewritten from jQuery to Vanilla JS
300 * Fix: Admin Bar Style loading on every page
301 * Fix: Network initialization process for new sites
302 * Fix: IP address encryption
303 * Fix: REST API endpoints
304 * Fix: Removed couple of deprecated functions
305 * Tweak: Updated chart.js script to version 3.9.1
306 * Tweak: Added SameSite attribute to cookie
307
308 = 1.3.11 =
309 * Fix: Potentailly incorrect counting of post views in edge case db queries
310 * Fix: Possible empty chart in dashboard
311 * Fix: Incorrect saving of dashboard widget user options
312 * Tweak: Updated Chart.js to version 3.7.0
313
314 = 1.3.10 =
315 * Fix: Post views column not working properly
316 * Tweak: Switched to openssl_encrypt method for IP encryption
317 * Tweak: Improved user input escaping
318
319 = 1.3.9 =
320 * Tweak: Remove unnecessary plugin files
321
322 = 1.3.8 =
323 * Tweak: Improved user input escaping
324
325 = 1.3.7 =
326 * Tweak: Implemented internal settings API
327
328 = 1.3.6 =
329 * Fix: Option to hide admin bar chart
330
331 = 1.3.5 =
332 * New: Option to hide admin bar chart
333 * Fix: Small security bug with views label
334 * Tweak: Remove unnecessary CSS on every page
335
336 = 1.3.4 =
337 * New: Post Views stats preview in the admin bar
338 * New: Top Posts data available in the dashboard widget
339 * Tweak: Improved privacy using IP encrypting
340 * Tweak: PHP 8.x compatibility
341
342 = 1.3.3 =
343 * Fix: PHP Notice: Trying to get property 'colors' of non-object
344 * Fix: PHP Notice: register_rest_route was called incorrectly
345
346 = 1.3.2 =
347 * New: Introducing dashboard widget navigation
348 * New: Counter support for Media (attachments)
349 * Tweak: Extended views query for handling complex date/time requests
350
351 = 1.3.1 =
352 * Fix: Gutenberg CSS file missing
353 * Tweak: POT translation file update
354
355 = 1.3 =
356 * New: Gutenberg compatibility
357 * New: Additional options in widgets: post author and display style
358 * Fix: Undefined variables when IP saving enabled
359 * Fix: Check cookie not being triggered in Fast Ajax mode
360 * Fix: Invalid arguments in implode function causing warning
361 * Fix: Thumbnail size option did not show up after thumbnail checkbox was checked
362 * Fix: Saving post (in quick edit mode too) did not update post views
363
364 = 1.2.14 =
365 * Fix: Bulk edit post views count reset issue
366
367 = 1.2.13 =
368 * New: Experimental Fast AJAX counter method (10+ times faster)
369
370 = 1.2.12 =
371 * New: GDPR compatibility with Cookie Notice plugin
372
373 = 1.2.11 =
374 * Tweak: Additional IP expiration checks added as an option
375
376 = 1.2.10 =
377 * New: Additional transient based IP expiration checks
378 * Tweak: Chart.js script update to 2.7.1
379
380 = 1.2.9 =
381 * Fix: WooCommerce products list table broken
382
383 = 1.2.8 =
384 * New: Multisite compatibility
385 * Fix: Undefined index post_views_column on post_views_counter/includes/settings.php
386 * Tweak: Improved user IP handling
387
388 = 1.2.7 =
389 * Fix: Chart data not updating for object cached installs due to missing expire parameter
390 * Fix: Bug preventing hiding the counter based on user role.
391 * Fix: Undefined notice in the admin dashboard request
392
393 = 1.2.6 =
394 * Fix: Hardcoded post_views database table prefix
395
396 = 1.2.5 =
397 * New: REST API counter mode
398 * New: Adjust dashboard chart colors to admin color scheme
399 * Tweak: Dashboard chart query optimization
400 * Tweak: post_views database table optimization
401 * Tweak: Added plugin documentation link
402
403 = 1.2.4 =
404 * New: Advanced crawler detection
405 * Tweak: Chart.js script update to 2.4.0
406
407 = 1.2.3 =
408 * New: IP wildcard support
409 * Tweak: Delete post_views database table on deactivation
410
411 = 1.2.2 =
412 * Fix: Notice undefined variable: post_ids, thanks to [zytzagoo](https://github.com/zytzagoo)
413 * Tweak: Switched translation files storage, from local to WP repository
414
415 = 1.2.1 =
416 * New: Option to display post views on select page types
417 * Tweak: Dashboard widget query optimization
418
419 = 1.2.0 =
420 * New: Dashboard post views stats widget
421 * Fix: A couple of typos in method names
422
423 = 1.1.4 =
424 * Fix: Dashicons link broken.
425 * Tweak: Confirmed WordPress 4.4 compatibility
426
427 = 1.1.3 =
428 * Fix: Duplicated views count in custom post types
429 * Fix: Exclude visitors checkboxes not working
430
431 = 1.1.2 =
432 * Fix: Most viewed posts widget broken
433
434 = 1.1.1 =
435 * Tweak: Enable edit views on new post.
436 * Tweak: Extend WP_Query post data with post_views
437
438 = 1.1.0 =
439 * New: Quick post views edit
440 * New: Bulk post views edit
441 * Tweak: Admin UI improvements
442
443 = 1.0.12 =
444 * New: Italian translation, thanks to [Rene Querin](http://www.q-design.it)
445
446 = 1.0.11 =
447 * New: French translation, thanks to [Theophil Bethel](http://reseau-chretien-gironde.fr/)
448
449 = 1.0.10 =
450 * New: Option to limit post views editing to admins only
451
452 = 1.0.9 =
453 * New: Spanish translation, thanks to [Carlos Rodriguez](http://cglevel.com/)
454
455 = 1.0.8 =
456 * New: Croation translation, thanks to [Tomas Trkulja](http://zytzagoo.net/blog/)
457
458 = 1.0.7 =
459 * New: Possibility to manually set views count for each post
460 * New: Plugin development moved to [dFactory GitHub Repository](https://github.com/dfactoryplugins)
461
462 = 1.0.6 =
463 * New: Object cache support, thanks to [Tomas Trkulja](http://zytzagoo.net/blog/)
464 * New: Hebrew translation, thanks to [Ahrale Shrem](http://atar4u.com/)
465
466 = 1.0.5 =
467 * Tweak: Added number_format_i18n for displayed views count
468 * Tweak: Additional action hook for developers
469
470 = 1.0.4 =
471 * Fix: Possible issue with remove_post_views_count function
472
473 = 1.0.3 =
474 * New: Russian translation, thanks to moonkir
475 * Fix: Remove [post-views] shortcode from post excerpts if excerpt is empty
476
477 = 1.0.2 =
478 * Fix: Pluggable functions initialized too lately
479
480 = 1.0.0 =
481 Initial release
482
483 == Upgrade Notice ==
484
485 = 1.7.13 =
486 Fixes WooCommerce product Quick Edit view saving.