Black Friday: 30% OFF en todos los planes, aplicado automáticamente en el carrito Ver planes

Visitor Traffic Real Time Statistics pro Changelog

Todas las versiones registradas, de la más nueva a la más antigua, con lo que cambió en cada una.

Última 11.2615 versiones

Sin fecha · 15 versiones

  1. 11.26

    Última
    1 mejora1 corrección1 de seguridad7 cambios
    Mejora
    • database schema checks (including ALTER TABLE statements) no longer run on every request, only once after an update. The front end no longer loads jQuery and WordPress Heartbeat for visitors, and the visitor IP is no longer printed into the page HTML.
    Corregido
    • search engine and referral visits were counted twice for every new visit, and once more on every reload of an already-recorded page. Each visit is now counted once.
    Seguridad
    • the visitor IP is now strictly validated before it is stored (forged X-Real-IP / X-Forwarded-For headers could store arbitrary text). The Heartbeat receiver that trusted an IP sent by the browser was removed.
    Cambios
    • Stronger bot filtering: crawlers and automated browsers that run JavaScript but do not call themselves "bot" (GoogleOther, Google-InspectionTool, Chrome-Lighthouse, HeadlessChrome, Puppeteer/Playwright/Selenium, uptime monitors, HTTP libraries, AI crawlers...) are no longer counted. Both the real request User-Agent and the one reported by the page are checked, and automated browsers (navigator.webdriver) are ignored. Real visitors on CUBOT phones are counted again.
    • Pages prerendered by the browser are only counted when the visitor actually opens them. Chrome prerenders top Google results, which was inflating "search engine visits".
    • Accurate time on site: engaged time is measured in the browser (visible tab + recent interaction) and reported per page view. It replaces the Heartbeat-based duration, which kept counting for idle/background tabs and measured the first-to-last request of an IP over the whole day. Single-page visits are part of the average. Visits recorded before 11.26 show "-" instead of an invented value. The "Engaged" journey filter and the duration sort use the new value.
    • "Online now" is kept up to date by a lightweight report every 60 seconds while the visitor's tab is visible (background tabs no longer count as online).
    • Clearer traffic sources: each visit is counted once, under the source of its first page (Organic Search, Direct, Referral, Social Media, UTM Traffic). Google visits now appear under Organic Search, and Gmail, Google Docs, Translate and similar links are no longer counted as search engine visits.
    • More accurate countries: the visitor IP is taken from Cloudflare/CDN headers first, internal proxy addresses are skipped, "IP:port" values are understood, the city is no longer borrowed from a different country, and the location cache now expires after 30 days.
    • Visitors whose IP cannot be determined are no longer counted as a new visitor on every page view.
  2. 11.25

    5 nuevos4 mejoras2 correcciones
    Nuevo
    • "Visitors by Country" map - countries are shaded by their number of visitors, with a ranked list (flag, visitors, share and change vs. the previous period), a hover card per country and a range switcher (today, 7 days, 30 days, all time, online now). Borders ship with the plugin, so the map no longer loads tiles from OpenStreetMap.
    • the [ahcpro_show_google_map] shortcode shows the new map and now honours its map_status attribute; new show_list and height attributes. Older map_status values keep working.
    • "First-time visitors" in the Traffic Report - the new-visitor part of each day's column is shown in orange, with a total in the legend and the share in the hover card. Visitors from before this version are taken from the stored visits, so they are not counted as new.
    • dashboard header with the new plugin logo, the site name and a live clock in the site's time zone (it showed the browser's time before).
    • "Default Traffic Report Range" setting (7 / 14 / 30 days, this month, last month, 12 months) replaces the free day count, and the report opens on it.
    Mejora
    • "Visits by Time of Day" summary cards redesigned (icons, clearer "Right now" card).
    • dashboard layout on phones and tablets - the summary boxes fill the width (4 / 2 / 1 per row), equal side margins, and tables such as "Traffic Sources" fit small screens.
    • statistics are kept for at least 90 days (default 90; the 30-day option was removed, an existing 30-day setting now keeps 90 days).
    • the "Search Engine Statistics" table was removed from the dashboard (the all-time total stays in the top box).
    Corregido
    • the Traffic Report legend could be hidden behind the comparison cards when the range buttons wrapped onto two lines.
    • the Traffic Report showed a duplicate range button when the day count was set to 7 or 30.
  3. 11.24

    6 nuevos3 mejoras5 correcciones
    Nuevo
    • Traffic Report redesign - range buttons (14 / 7 / 30 days, this month, last month, 12 months, custom), visitor columns with a page-views line, and comparison cards (visitors, page views, pages per visitor, best day) against the previous period.
    • "This month" forecast - the rest of the month is estimated from the same weekdays over the last 4 weeks, with an expected month total. Today's still-running day is marked as "Today so far".
    • "Visits by Time of Day" redesign - 24-hour chart, peak / quietest hour, busiest part of the day and "right now" vs. a usual hour, plus a "View more details" window with a weekday x hour heat map and an hourly table.
    • "Recent Visits & Page Journeys" (formerly "Last 30 Days Traffic by IP") - one-line rows with the last page viewed, and each visitor's page journey opens inline when the row is clicked.
    • "Online Now" window (click the Online Users box) - visitors online right now with their current page, device and status, auto-refresh every 10 seconds and pagination.
    • "Browsers & Search Engines" - one panel with ranked bars and shares replaces the two pie charts.
    Mejora
    • "Traffic by Title" table - rank badges, unique visitors, share bars, colour-coded bounce rate and a "View stats" button; the page statistics window was redesigned to fit the screen without scrolling.
    • charts are now drawn by the plugin itself (no extra library) and their axes fit the data closely.
    • "Top Referring Countries" is hidden for now.
    Corregido
    • page URLs were shown with a doubled " in the visitor journey.
    • page statistics showed two identical lines (a page is recorded once per visitor per day); it now shows visitors per day plus visits, unique and returning visitors, uses the site's time zone, filters by site on multisite and no longer falls back to all-time data for an empty period.
    • the dashboard script could keep serving an old cached copy after an update (behind CDNs such as Cloudflare).
    • a details window could flash briefly on every page load.
    • "Visits by Time of Day" no longer builds its SQL from unescaped date input.
  4. 11.23

    3 de seguridad1 cambio
    Seguridad
    • fixed an unauthenticated stored XSS vulnerability via the "page_title" parameter of the visitor-tracking endpoint (ahcpro_track_visitor). A crafted page title could be stored in the title-traffic table and execute in the admin dashboard when the "Traffic by Title" table was loaded. Page titles, user agents and referers are now stripped of any HTML on storage (both in the AJAX handler and in the hit counter itself), and page titles and links are escaped on output, so payloads stored by older versions can no longer execute either. The Excel export keeps clean, readable titles.
    • fixed reflected XSS in the dashboard date-range search fields, which echoed submitted values back into the page without escaping.
    • hardened output escaping in the "Latest Search Words" block and in the mobile-app REST API (page titles, keywords and referers are no longer returned with markup).
    Cambios
    • Hardening: admin redirects now use wp_safe_redirect, and the database index upgrade routine validates table/index identifiers before running.
  5. 11.22

    1 de seguridad
    Seguridad
    • fixed a stored XSS vulnerability in the search-keywords path of the visitor-tracking endpoint. An unauthenticated visitor could submit a crafted "referer" (e.g. a search-engine URL whose query string contained a percent-encoded HTML payload) that survived URL sanitization, was decoded back to markup, stored in the keywords table, and executed in the admin dashboard when viewing the Latest Search Words / keywords report. Extracted keywords are now stripped of any HTML on storage and escaped on output (URL via esc_url, text via esc_html), in both the table view and the Excel export. This completes the 11.19 tracking-endpoint hardening by closing the sibling "referer" parameter.
  6. 11.21

    1 corrección
    Corregido
    • prevented a fatal error on older PHP versions (below 7.1) where autoloading the bundled MaxMind GeoIP2 library could crash the visitor-tracking request (HTTP 500), causing visits to not be recorded. On such servers the plugin now safely skips the local GeoIP database reader and falls back to the other geolocation methods (Cloudflare headers, permanent cache, external API), so tracking keeps working. The reader initialization was also hardened to catch a broader range of runtime errors and log them when WP_DEBUG is enabled.
  7. 11.20

    1 mejora
    Mejora
    • the CanvasJS charting library (~527 KB) is no longer loaded for regular front-end visitors. It is only enqueued in the admin dashboard and, on the front-end, only for logged-in administrators who can see the admin-bar chart. This improves front-end PageSpeed / Total Blocking Time with no change to the charts.
  8. 11.19

    1 de seguridad
    Seguridad
    • fixed a stored XSS vulnerability where an unauthenticated visitor could submit a crafted page URL (and related fields) through the visitor-tracking endpoint that would execute in the admin dashboard when viewing the IP Tracking / visitor path modal. Visitor-supplied URLs, titles and related fields are now sanitized on storage and escaped on output (both server-side and in the admin JavaScript).
  9. 11.18

    2 de seguridad
    Seguridad
    • fixed a SQL injection in the admin "custom duration" statistics AJAX endpoint, where a custom date range (from/to) was used to build a query without validation. Date-range values are now strictly validated as real calendar dates before use.
    • added a login + capability (and nonce) check to the custom-duration statistics AJAX endpoint, which previously had none, so site analytics can no longer be pulled by unauthenticated or low-privilege requests.
  10. 11.17

    2 de seguridad
    Seguridad
    • fixed an authentication-bypass affecting the mobile-app REST API (traffic/statistics/v1). Before the app was paired, the app key was empty and a request sending an empty KEY header could pass the check; the key check now fails closed when no key has been generated or when the supplied key is empty, and uses a timing-safe comparison. Legitimate paired apps are unaffected.
    • hardened all mobile-app REST report queries against SQL injection by ensuring every user-supplied value (IP address, dates, search terms) is parameterized via $wpdb->prepare and all pagination values are cast to integers.
  11. 11.16

    2 mejoras3 correcciones
    Mejora
    • When Google Search Console isn't connected, the "Latest Search Words" widget now shows a cleaner message with a clear "Open API Settings" button that links straight to the Google Console API tab (instead of a brown inline link that opened the general settings tab). The settings page also now opens the correct tab when the URL includes a tab parameter.
    • Simplified the Google Search Console setup guide from six steps down to two. The guide now uses a single Google link that creates the project and enables the Search Console API together, plus a direct link to the Service Account creation page, and the settings page shows the service account email with a one-click Copy button as soon as a valid JSON is added, so it can be pasted into Search Console before testing the connection.
    Corregido
    • The admin dashboard JavaScript is now versioned by the plugin version, so browsers and page-cache/optimization plugins reliably load the latest script after every update instead of serving a stale cached copy. This is why some UI changes previously appeared not to take effect until the cache was cleared by hand.
    • Campaign visits (UTM) now appear in the Traffic Sources report under their own "UTM Traffic" category. Newsletter/email links carry no HTTP referer, so campaign visits were previously counted as "Direct". Campaign visits with no real referer are now tagged and shown as a distinct "UTM Traffic" source (e.g. "newsletter (email)"), separate from Direct and Referral, and are not double-counted. Campaign labels are intentionally kept out of the "Referring Sites" report so that report continues to list only genuine referring domains. Also improved UTM extraction to recover utm_medium from redirect/click-tracking links whose inner url is not URL-encoded.
    • Google Search Console "Sync Now" no longer creates duplicate keyword rows on every run. The duplicate-check queries were reading from prefixed table names that did not exist, so the check never matched and each sync re-inserted the same keywords (plus duplicate source/country lookup rows). The read queries now match the plugin's actual table names.
  12. 11.15

    1 nuevo
    Nuevo
    • UTM campaign support. Visits arriving with utm_source/utm_medium (e.g. from newsletter or email links) are now detected and recorded as a traffic source in the "Referring Sites" report, shown as "source (medium)". This fixes email/newsletter traffic previously appearing as Direct because such links carry no HTTP referer. UTM parameters are also detected inside redirect/click-tracking links.
  13. 11.14

    1 mejora1 corrección
    Mejora
    • front-end script version now follows the plugin version for proper cache-busting on updates.
    Corregido
    • visitor tracking script (front.js) no longer depends on jQuery, so it loads and records visits even on sites that defer or remove jQuery via performance/optimization plugins. This resolves cases where statistics were not being recorded on some sites.
  14. 11.13

    1 mejora
    Mejora
    • page-title traffic is now recorded for custom post types as well, not only built-in posts, pages, and WooCommerce products. Non-content views (home, blog, and archive pages) remain excluded.
  15. 11.12

    1 corrección
    Corregido
    • the IP Tracking modal ("day hits") now uses the raw visit date when looking up page visits, so sessions recorded near midnight no longer show "No page visits found" when the hit counter shows visits.

Changelog publicado por el desarrollador, en su idioma original.