Repository navigation
Releases: duppinstech/landing-page-manager-pro
Releases · duppinstech/landing-page-manager-pro
Release list
v1.0.7
Requirements
- Requires at least: 5.9
- Requires PHP: 7.4
- Tested up to: 7.1
Changes in 1.0.7
Changed
- The Plugins screen names the author Duppins Technology. Settings opens Landing Pages → Tracking for administrators, and Help opens the Landing Page Manager guide in a new tab. Sponsor follows the author. View details and Support are at the end of the row.
- View details shows a banner and tabs for the description, installation, questions, screenshots, and changelog. The changelog tab uses the GitHub release notes when an update check has saved them.
Full Changelog: v1.0.6...v1.0.7
v1.0.6
Requirements
- Requires at least: 5.9
- Requires PHP: 7.4
- Tested up to: 7.1
Changes in 1.0.6
Changed
- One Analytics screen. With Landing Page Manager 1.0.13 or later, Pro's analytics appear on Landing Pages → Analytics: the dashboard with summary cards, charts and report tabs (By Client, By Page, By Template, Link Performance, Engagement, Heatmap, Rage Clicks). Under By Page, select a page title to open its numbers, scroll depth, top links and heatmap grid; Edit opens it in the editor. The separate Pro Analytics menu item is gone, and old links to it redirect.
- Pro Settings is now Tracking (Landing Pages → Tracking). Old links redirect. The settings themselves are unchanged.
- The dashboard's Chart.js is pinned to version 4.4.1 and checked against a fixed integrity hash.
- The dashboard's text can be translated, the heatmap dialog works from the keyboard (focus moves in and back, Escape closes it), heatmap previews load only when the Heatmap tab is opened, and each heatmap card links to the page's heatmap grid with counts.
Security
- The dashboard script escapes quotes in page titles and other text placed inside HTML attributes, so a title written by a user who can publish landing pages can't run script on an administrator's Analytics screen. Landing Page Manager 1.0.12 and earlier have the same issue in their own copy of the script, which Landing Page Manager 1.0.13 removes.
Upgrade notes
- Update Landing Page Manager to 1.0.13 as well; it includes a security fix for its Analytics screen. With an older Landing Page Manager, Pro keeps its own Pro Analytics screen, and Pro Settings appears in the menu as Tracking.
What's Changed
- Record the 1.0.5 release by @oduppinsjr in #7
- One Analytics screen; Pro Settings becomes Tracking (1.0.6) by @oduppinsjr in #8
Full Changelog: v1.0.5...v1.0.6
v1.0.5
Requirements
- Requires at least: 5.9
- Requires PHP: 7.4
- Tested up to: 7.1
Changes in 1.0.5
Fixed
- Counts are no longer lost when several visitors are tracked at the same moment. Every counter is now updated atomically in the database.
Changed
- Analytics are stored in two new database tables (
{prefix}lpmanager_pro_stats, per landing page, day, and metric;{prefix}lpmanager_pro_links, per landing page and link) instead of large settings rows that were rewritten on every event. Existing engagement, heatmap, link-click, and daily data are copied in automatically on the first request after updating. The heatmap is kept as an all-time total. The old settings rows are left in place, so going back to 1.0.4 still shows data up to the update (data recorded on 1.0.5 is not shown by 1.0.4, apart from per-page totals); if you then update again, data recorded while on 1.0.4 is copied in automatically. If the database user cannot create tables, Pro shows a notice and tries again on the next page load. - Numbers shown in Landing Page Manager's dashboard are unchanged.
- Deleting the plugin keeps the analytics tables unless Delete data on uninstall is on, which now removes them too. The per-page totals Landing Page Manager shows are always kept.
What's Changed
- Record the 1.0.4 release by @oduppinsjr in #5
- Release 1.0.5: atomic analytics storage (F6) by @oduppinsjr in #6
Full Changelog: v1.0.4...v1.0.5
v1.0.4
Requirements
- Requires at least: 5.9
- Requires PHP: 7.4
- Tested up to: 7.1
Changes in 1.0.4
Added
- Landing Pages → Pro Analytics: views, conversions, link clicks, average time on page, scroll depth, rage clicks, outbound clicks, CTA views, and form starts and submissions for each landing page, filterable by client and template. Open a page to see its scroll depth, top links, and heatmap grid. Only enabled tracking features are shown. Administrators only. Analytics are part of Pro only.
lpmanager_pro_tracking_options()returns which tracking features are on. Landing Page Manager uses it, when present, instead of its own settings.
Changed
- Tracking options moved to Landing Pages → Pro Settings ("What is tracked"). They were under Landing Page Manager's settings; your existing choices carry over, because Pro uses the same stored values (an option that was never saved stays on, as before). Conversion tracking is always on; excluded visits are not counted. With Landing Page Manager before 1.0.7, its Conversion Tracking tab still shows; both screens change the same settings, and the last save wins.
- When Delete data on uninstall is on, the tracking options are removed too.
- The Conversions screen is folded into Pro Analytics, which shows the same numbers (views, conversions and conversion rate, outbound clicks, CTA views, form starts and submissions) and more. Old links and bookmarks to it open Pro Analytics.
What's Changed
- Record the 1.0.3 release by @oduppinsjr in #3
- Release 1.0.4: tracking options in Pro, Pro Analytics screen by @oduppinsjr in #4
Full Changelog: v1.0.3...v1.0.4
v1.0.3
Requirements
- Requires at least: 5.9
- Requires PHP: 7.4
- Tested up to: 7.1
Changes in 1.0.3
Highlights
- More accurate numbers: views on cached pages are now counted, and previews, your own logged-in users who can edit content, bots, and visitors who send privacy signals are left out by default.
- Outbound clicks, call-to-action views, and form starts and submissions are now recorded and shown on the Conversions page.
- A new Landing Pages → Pro Settings page controls who is tracked, including optional consent through the WP Consent API.
- Updates now come through GitHub Releases, with release notes under "View details".
Upgrade notes
- Counts will change from the day you update. Previews, logged-in users who can edit content (contributors, authors, editors, administrators), bots, and visitors who send Global Privacy Control or Do Not Track are no longer counted. Time on page and heatmap counts are no longer inflated by tab switching. Page views are counted by the tracking script, so pages served from a cache are now counted and visitors without JavaScript are not. Existing data is not changed. Review the exclusions under Landing Pages → Pro Settings.
- Purge your page cache after updating or rolling back, including any CDN and JavaScript minify or combine caches, so pages load the current tracking script. An old script cannot send the session token, and its events are rejected.
- Each landing-page view now makes one uncached
admin-ajax.phprequest. - "Check for updates" moved to Dashboard → Updates → Check again. Two updater filters changed (see Changed).
- The tracking script handle is now
lpmanager-pro-tracking. Update optimization or minification exclusions that namedlpmanager-tracking, and any custom script that listslpmanager-trackingas a dependency or adds inline script to it. - Custom code that calls Pro's recording actions must send the nonce from
lpmanagerTracking.nonce. Requests signed withlpmanager_nonceare now rejected. Pages cached before the update send the old nonce until the cache is purged. - Stored link-click rows are cleaned once, on the first admin page load after updating: query strings and fragments are removed, labels are capped at 100 characters, and rows for the same link and label are merged with their counts added together. The merge cannot be undone, and rolling back does not restore the old rows; take a database backup first if you need them. After a downgrade and re-upgrade, delete the
lpmanager_pro_link_clicks_cleanedoption so rows recorded by the older version are cleaned too. - Tracking requests now need the session token issued when the page loads. Events are dropped if the visitor leaves before the session request answers, or if it takes longer than 5 seconds (events after a late answer are still sent). Very short visits may therefore record no time on page, which can raise the average slightly. A tab left open for more than 50 minutes gets a new token when the visitor returns to it.
- Custom code that posts to the recording actions must send
sessionas well asnonce: POSTaction=lpmanager_pro_session&post_id=<ID>&count_view=0toadmin-ajax.php, then senddata.sessionanddata.noncefrom the response. Tokens last one hour and work only for that page; requests without a valid token returnInvalid session. - Conversions now count for the page where the button was clicked.
data-post-idis ignored, so buttons that pointed at another page credit their own page.
Fixed
- Visitors on Cubot Android phones are no longer treated as bots and excluded.
- CTA views are recorded for call-to-action buttons added after the page loads (for example by page builders or popups).
- Recording endpoints no longer trust the posted page ID: each request must carry a signed session token for that page, which limits how far counts can be inflated or sent to the wrong page. On sites with a persistent object cache, once-per-page-view events are also limited per session.
- Link-click rows recorded before 1.0.3, which kept query strings, are cleaned and merged on update.
- The analytics REST endpoint's
interactionsnow leaves out interaction types whose tracking is off, matching the daily series. - First-activation tracking defaults are now applied. Previously they ran before Carbon Fields registered its fields, so they failed (and raised a Carbon Fields error under
WP_DEBUG). - Deactivating and reactivating Pro no longer turns every tracking option back on.
- Conversions are only recorded for published landing pages; any other post ID is rejected.
- Click, engagement, heatmap, rage-click, and page-view recording now require a published landing page. A malformed (non-string)
hrefno longer causes a PHP error. - Link-click storage is capped at 200 distinct links per page. Stored link addresses are limited to 512 characters and saved without query strings or fragments, which can carry visitor tokens or email addresses; links that differed only by query string are now counted together. Clicks beyond the cap still count toward the page's total clicks.
- Heatmap requests are capped at 600 samples (one page view), and time-on-page values over one hour are dropped.
- Tracking data options (
lpmanager_link_clicks,lpmanager_engagement,lpmanager_heatmap,lpmanager_daily_visits,lpmanager_daily_conversions) are saved with autoload off, so they no longer load on every request. - Empty engagement pings (CTA visibility, form interactions) no longer rewrite the engagement option.
- Time on page is recorded once per page view; previously every tab switch sent another measurement, inflating averages.
- Heatmap data is sent once per page view; previously the grid was re-sent, uncleared, on every tab switch.
- Post previews no longer count as page views.
- Tracking works on pages served from a full-page cache. The script fetches a fresh nonce on load; previously a cached page could carry an expired nonce, and every tracking request from it failed.
- Dashboard charts no longer merge landing pages that share a title; duplicates are labeled with their post ID.
- The Conversions admin page and submenu now use the
landing-page-manager-protext domain and translatable strings. - The analytics REST endpoint's
daily_visitsanddaily_conversionsnow respect the tracking toggles, matching the dashboard. - When the free plugin's template loader is unavailable, analytics group pages under the
defaulttemplate instead of a client-specific slug.
Added
lpmanager_pro_should_count_page_viewfilter to control whether a landing page request counts as a view.- "View details" for Landing Page Manager Pro on the Plugins screen now shows the latest GitHub release notes.
- WordPress's auto-update toggle is now available for the plugin.
Requires at least: 5.9andRequires PHP: 7.4plugin headers.- Privacy options on Pro Settings. Honor privacy signals (on by default) stops tracking visitors whose browser sends Global Privacy Control or Do Not Track. Require consent (off by default) makes tracking wait for WP Consent API "statistics" consent or
window.lpmanagerPro.grantConsent(). Pro registers with the WP Consent API and adds suggested privacy-policy text under Settings → Privacy. New filter:lpmanager_pro_require_consent. - Delete data on uninstall option on Pro Settings (off by default). When on, deleting the plugin also removes Pro's own settings and options on that site (each site of a multisite network decides for itself). Analytics counts shared with Landing Page Manager are always kept. If you reinstall afterwards, Pro starts fresh: Pro Settings return to their defaults and all tracking options are turned on again.
- Pro Settings shows whether a consent or cookie-banner plugin (Complianz, CookieYes, Cookiebot, and others) is active and whether Pro will wait for its consent, and explains how the exclusions affect counts. It also confirms when settings are saved.
- The Conversions and Interactions tables show a message when there are no landing pages.
- Landing Pages → Pro Settings page with tracking exclusions, both on by default: logged-in users who can edit content, and known bots or automation tools (including requests with no user agent). Excluded visitors are not tracked at all. Add custom rules with the
lpmanager_pro_exclude_requestfilter. - Outbound-click, CTA-visibility, and form-interaction tracking now record data (new
lpmanager_record_interactionAJAX action; post meta_lpmanager_outbound_clicks,_lpmanager_cta_views,_lpmanager_form_starts,_lpmanager_form_submits). Counts appear in a new Interactions table on the Conversions page and asinteractionsin the analytics REST response, andtracking_enabledreports the three toggles.
Changed
- Plugin updates now use the Duppins Technology GitHub updater standard v1.1.0 (
LPManager_Pro_GitHub_Updater) and come from the GitHub Releases ofduppinstech/landing-page-manager-pro. TheUpdate URIheader stops WordPress.org from offering updates for this slug.- The updater loads with the plugin, so WP-Cron and background auto-updates see new releases, even while the free plugin is inactive.
- Only the release asset
landing-page-manager-pro.zipis installed (or a release's only.zipasset), never a source zipball. - Results are cached for 6 hours, then rechecked with
If-None-Match. Failures wait 1 hour, and GitHub rate limits wait until their reset (at most 1 day). - The "Check for updates" plugin action link is removed. Use Dashboard → Updates → Check again instead.
- The
lpmanager_pro_github_releases_api_urlandlpmanager_pro_github_update_package_urlfilters are removed. New filters arelpmanager_pro_github_updater_configandlpmanager_pro_github_release_http_args. DefineLPMANAGER_PRO_DISABLE_GITHUB_UPDATERastrueto turn updates off. - The cache moved from the `lpmanager_pro_github_re...
Landing Page Manager Pro v1.0.2
What's changed
- Add back explicit WordPress dependency metadata for the base plugin.
- Keep runtime dependency checks in place and bump plugin version to 1.0.2.
Version
- Landing Page Manager Pro v1.0.2
Landing Page Manager Pro v1.0.1
What's changed
- Replace header-only dependency handling with runtime activation checks for the base plugin.
- Add GitHub update checker support with manual "Check for updates" action.
- Add source-folder normalization so updates install into landing-page-manager-pro consistently.
- Use same-origin AJAX URL for tracking requests to avoid subdomain CORS failures.
Version
- Bump plugin version to 1.0.1.