Skip to content

fix(black-friday): treat active_expired licenses as expired - #3135

Open
Soare-Robert-Daniel wants to merge 1 commit into
developmentfrom
fix/bf-active-expired-status
Open

Soare-Robert-Daniel wants to merge 1 commit into
developmentfrom
fix/bf-active-expired-status

Conversation

@Soare-Robert-Daniel

@Soare-Robert-Daniel Soare-Robert-Daniel commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

Otter Pro users whose licence expired, but is still active on their site, get the free-user Black Friday offer. The status check compared against active-expired, but the SDK and the store send active_expired; the check now accepts both.

Note

The bug was added in 0cceac46 on version v3.1.8 (2026-04-01).

  • Black Friday notice — an active_expired licence now gets the expired offer: "Your Otter Pro features are still here, just locked. Renew at a reduced rate this week." with a Reactivate now button. Before, it got the free-user offer, and the link had no expired=1.

Note

active-expired stays in the check. The test-black-friday helper still writes that value.

QA

You need a test site with Otter and Otter Pro, and no other ThemeIsle product. The SDK shows one Black Friday notice per site, so another product can replace this one.

Add this file to force the 2026 sale window:

<?php
// wp-content/mu-plugins/bf-qa.php
add_filter( 'themeisle_sdk_current_date', function () {
	return new DateTime( '2026-11-27 12:00:00' );
} );
  1. Create a key with the status Active Expired in the dummy licence generator. Activate it:

    wp otter activate <key>

    Expect: this command prints active_expired:

    wp eval 'echo apply_filters( "product_otter_license_status", false );'
  2. Go to WP Admin → Dashboard.

    Expect: the Black Friday notice says "Your Otter Pro features are still here, just locked. Renew at a reduced rate this week." The button says Reactivate now.

  3. Hover the Reactivate now button.

    Expect: the link starts with https://themeisle.link/otter-bf and contains expired=1.

  4. Go to WP Admin → Plugins.

    Expect: the Pro plugin row shows the red link Black Friday Sale - 50% off.

  5. Deactivate the key with wp otter deactivate <key>, then go to WP Admin → Dashboard.

    Expect: the notice shows the free-user offer, with a title that ends in "60% off this week".

Refs Codeinwp/themeisle#2097

🤖 Generated with Claude Code

The SDK reports expired-but-active licenses as `active_expired`, but the
check only matched `active-expired`, so these users got the free offer.
Accept both values.

Refs Codeinwp/themeisle#2097

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Soare-Robert-Daniel
Soare-Robert-Daniel marked this pull request as ready for review October 27, 2026 16:48
@pirate-bot

Copy link
Copy Markdown
Contributor

Bundle Size Diff

Package Old Size New Size Diff
Animations 178.33 KB 178.33 KB 0 B (0.00%)
Blocks 1.65 MB 1.65 MB 1 B (0.00%)
CSS 7.83 KB 7.83 KB 0 B (0.00%)
Dashboard 172.49 KB 172.49 KB 0 B (0.00%)
Onboarding 68.14 KB 68.14 KB 0 B (0.00%)
Export Import 4.73 KB 4.73 KB 0 B (0.00%)
Pro 439.85 KB 439.85 KB 0 B (0.00%)

@pirate-bot

Copy link
Copy Markdown
Contributor

Plugin build for 8340022 is ready 🛎️!

@pirate-bot

Copy link
Copy Markdown
Contributor

E2E Tests

Playwright Test Status: See serial and parallel matrix jobs

Performance Results serverResponse: {"q25":257.74,"q50":268.93,"q75":285.67,"cnt":10}, firstPaint: {"q25":997.62,"q50":1034.88,"q75":1096.27,"cnt":10}, domContentLoaded: {"q25":2662.65,"q50":2723.05,"q75":2782.99,"cnt":10}, loaded: {"q25":2665.47,"q50":2726.07,"q75":2786.03,"cnt":10}, firstContentfulPaint: {"q25":1389.54,"q50":1689.32,"q75":2132.97,"cnt":10}, firstBlock: {"q25":12213.17,"q50":12744.48,"q75":12950.85,"cnt":10}, type: {"q25":17.95,"q50":21.1,"q75":22.23,"cnt":10}, typeWithoutInspector: {"q25":18.59,"q50":20.13,"q75":20.63,"cnt":10}, typeWithTopToolbar: {"q25":27.62,"q50":29.36,"q75":37.04,"cnt":10}, typeContainer: {"q25":12,"q50":12.39,"q75":13.69,"cnt":10}, focus: {"q25":103.28,"q50":106.8,"q75":110.13,"cnt":10}, inserterOpen: {"q25":34.87,"q50":35.22,"q75":38.97,"cnt":10}, inserterSearch: {"q25":24.99,"q50":25.24,"q75":26.05,"cnt":10}, inserterHover: {"q25":4.75,"q50":5.32,"q75":5.72,"cnt":20}, loadPatterns: {"q25":1505.34,"q50":1554.29,"q75":1599.18,"cnt":10}, listViewOpen: {"q25":167.25,"q50":169.75,"q75":182.56,"cnt":10}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants