Skip to content

[5.x] Fix Variant Search product condition rule returning no results#4341

Open
lukeholder wants to merge 2 commits into
5.xfrom
luke/4339-variant-search-condition
Open

[5.x] Fix Variant Search product condition rule returning no results#4341
lukeholder wants to merge 2 commits into
5.xfrom
luke/4339-variant-search-condition

Conversation

@lukeholder

Copy link
Copy Markdown
Member

The rule feeds its value into ElementQuery::search(), but it was using paramValue() from BaseTextConditionRule, which prepends the operator (e.g. "= ") intended for Db::parseParam(). That prefix corrupted the search query, so it matched nothing when used by a custom source (or filter).

Related issues

#4339

The rule feeds its value into ElementQuery::search(), but it was using
paramValue() from BaseTextConditionRule, which prepends the operator
(e.g. "= ") intended for Db::parseParam(). That prefix corrupted the
search query, so it matched nothing when used by a custom source (or
filter).

Use the raw trimmed value instead.

Fixes #4339

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Fixes the Commerce “Variant Search” product condition rule so it passes the raw search string into ElementQuery::search() (rather than the operator-prefixed paramValue() format intended for Db::parseParam()), restoring expected results when used via custom sources/criteria.

Changes:

  • Introduced a raw searchValue() accessor and used it for variant search() calls in both modifyQuery() and matchElement().
  • Added an Unreleased changelog entry referencing issue #4339.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

File Description
src/elements/conditions/products/ProductVariantSearchConditionRule.php Stops using operator-prefixed paramValue() for search queries by switching to a raw trimmed value.
CHANGELOG.md Documents the fix under an Unreleased entry.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/elements/conditions/products/ProductVariantSearchConditionRule.php Outdated
$variantQuery = Variant::find();
$variantQuery->select(['commerce_variants.primaryOwnerId as id']);
$variantQuery->search($this->paramValue());
$variantQuery->search($this->searchValue());
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
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