Skip to content

fix: run on PHP 7.4 and pass the Woo Marketplace checks (2.0.2) - #55

Merged
rockwellll merged 2 commits into
mainfrom
php74-compat
Nov 7, 2026
Merged

rockwellll merged 2 commits into
mainfrom
php74-compat

Conversation

@rockwellll

Copy link
Copy Markdown
Collaborator

The Woo Marketplace runs its Quality Insights Toolkit (QIT) on every upload, and 2.0.1 failed it. The tests run on PHP 7.4, where the plugin did not load: match, union types and mixed are PHP 8 only, so OrderStatus.php was a parse error and activation failed.

PHP 7.4

  • The two match blocks are array lookups now. The union and mixed types are removed from the adapters, Session::decrypt and the hook callbacks; their docblocks keep the types.

Header validation

  • The plugin header declares Requires at least: 6.5, Tested up to: 7.1, Requires PHP: 7.4, WC requires at least: 8.0 and WC tested up to: 11.2, and so does readme.txt for the WordPress versions.
  • Declares High-Performance Order Storage compatibility. Orders are only read and written through $order->get_meta() / update_meta_data().

Security scan

  • The checkout link's products and the Webchat card's hellotext_source go through sanitize_text_field.
  • Failed requests log to the WooCommerce logger (source hellotext) instead of error_log, still only with WP_DEBUG on.

Release zip

  • The Marketplace requires the zip's root folder to be the slug hellotext. The release workflow now builds hellotext.zip from release/hellotext/, and the CI package check verifies that layout.

Bumps the version to 2.0.2.

Testing

  • Every PHP file, including the production vendor autoloader, lints on PHP 7.4.33 (php:7.4-cli), and the classes autoload there.
  • PHPCompatibilityWP (testVersion 7.4-) and WordPress.Security.ValidatedSanitizedInput find nothing. On main they report the same 19 compatibility errors and 2 unsanitized inputs as QIT.
  • Pest passes (90 tests) and php-cs-fixer is clean.
  • Not yet run in a real store. QIT re-runs when the 2.0.2 zip is uploaded.

After merging, tag v2.0.2 on main to publish the release.

🤖 Generated with Claude Code

rockwellll and others added 2 commits November 6, 2026 23:04
The Woo Marketplace tests the upload on PHP 7.4, where 2.0.1 failed to
load: `match`, union types and `mixed` are PHP 8 only. They are now
array lookups and docblock types.

The header declares the supported WordPress, WooCommerce and PHP
versions, and HPOS compatibility (orders only go through the
WooCommerce order API). Failed requests log to the WooCommerce logger
instead of error_log, and the checkout link's products and the Webchat
card's source are sanitized before they are read.

Bumps the version to 2.0.2.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The Woo Marketplace rejects a zip whose root folder is not the plugin
slug, hellotext. The release workflow now packages release/hellotext/
as hellotext.zip, and the CI package check verifies that layout.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 7, 2026 •

Copy link
Copy Markdown
Codex Review Summary: ✅ Completed

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-07T02:06:49.973535Z e80940c PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@rockwellll
rockwellll merged commit f4c0c35 into main Nov 7, 2026
7 checks passed
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.

1 participant