From 51664e7e108a368b842868a71f4b44f575a9a032 Mon Sep 17 00:00:00 2001 From: Hardeep Asrani Date: Wed, 11 Mar 2026 03:06:26 +0530 Subject: [PATCH 1/2] fix: guard against undefined properties on license object in Library When the license option is stored as a stdClass without `key` or `download_id` properties (e.g. on a free/unlicensed install), PHP 8 throws an undefined-property notice. Add isset() guards so both properties fall back to an empty string. --- classes/Visualizer/Render/Library.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/classes/Visualizer/Render/Library.php b/classes/Visualizer/Render/Library.php index dfb52aa9..5a59d7fb 100644 --- a/classes/Visualizer/Render/Library.php +++ b/classes/Visualizer/Render/Library.php @@ -223,8 +223,8 @@ private function _renderProPopupBlocker() { $license_key = ''; $download_id = ''; if ( ! empty( $license ) && is_object( $license ) ) { - $license_key = $license->key; - $download_id = $license->download_id; + $license_key = isset( $license->key ) ? $license->key : ''; + $download_id = isset( $license->download_id ) ? $license->download_id : ''; } $admin_license_url = admin_url( 'options-general.php#visualizer_pro_license' ); $renew_license_url = tsdk_utmify( Visualizer_Plugin::STORE_URL . '?edd_license_key=' . $license_key . '&download_id=' . $download_id, 'visualizer_license_block' ); From b3fe3224ff22b3ad7e3b8a74678f2b29f99d1021 Mon Sep 17 00:00:00 2001 From: Hardeep Asrani Date: Thu, 12 Mar 2026 09:42:35 +0530 Subject: [PATCH 2/2] fix: fix telemetry error --- index.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.php b/index.php index f167948f..41f50ffb 100644 --- a/index.php +++ b/index.php @@ -169,7 +169,7 @@ function ( $products ) { $license = get_option( 'visualizer_pro_license_data', 'free' ); if ( ! empty( $license ) && is_object( $license ) ) { - $license = $license->key; + $license = $license->key ?? 'free'; } $track_hash = 'free' === $license ? 'free' : wp_hash( $license );