Skip to content

Releases: duppinstech/landing-page-manager-pro

v1.0.7

Choose a tag to compare

@github-actions github-actions released this 19 Oct 03:19

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

Choose a tag to compare

@github-actions github-actions released this 18 Oct 01:15
2439ef1

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

Full Changelog: v1.0.5...v1.0.6

v1.0.5

Choose a tag to compare

@github-actions github-actions released this 16 Oct 20:50
194de24

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

Full Changelog: v1.0.4...v1.0.5

v1.0.4

Choose a tag to compare

@github-actions github-actions released this 16 Oct 15:06
a520afc

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

Full Changelog: v1.0.3...v1.0.4

v1.0.3

Choose a tag to compare

@github-actions github-actions released this 16 Oct 05:19
c0c3e78

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.php request.
  • "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 named lpmanager-tracking, and any custom script that lists lpmanager-tracking as 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 with lpmanager_nonce are 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_cleaned option 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 session as well as nonce: POST action=lpmanager_pro_session&post_id=<ID>&count_view=0 to admin-ajax.php, then send data.session and data.nonce from the response. Tokens last one hour and work only for that page; requests without a valid token return Invalid session.
  • Conversions now count for the page where the button was clicked. data-post-id is 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 interactions now 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) href no 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-pro text domain and translatable strings.
  • The analytics REST endpoint's daily_visits and daily_conversions now respect the tracking toggles, matching the dashboard.
  • When the free plugin's template loader is unavailable, analytics group pages under the default template instead of a client-specific slug.

Added

  • lpmanager_pro_should_count_page_view filter 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.9 and Requires PHP: 7.4 plugin 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_request filter.
  • Outbound-click, CTA-visibility, and form-interaction tracking now record data (new lpmanager_record_interaction AJAX 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 as interactions in the analytics REST response, and tracking_enabled reports 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 of duppinstech/landing-page-manager-pro. The Update URI header 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.zip is installed (or a release's only .zip asset), 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_url and lpmanager_pro_github_update_package_url filters are removed. New filters are lpmanager_pro_github_updater_config and lpmanager_pro_github_release_http_args. Define LPMANAGER_PRO_DISABLE_GITHUB_UPDATER as true to turn updates off.
    • The cache moved from the `lpmanager_pro_github_re...
Read more

Landing Page Manager Pro v1.0.2

Choose a tag to compare

@oduppinsjr oduppinsjr released this 09 Mar 08:14

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

Choose a tag to compare

@oduppinsjr oduppinsjr released this 09 Mar 07:55

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.