Skip to content

Commit 33e8009

Browse files
committed
Cleanup: query type hints in condition rules + edit-page crash fixes
- Switch ConditionRule::modifyQuery() param types from craft\elements\db\ElementQueryInterface | yii\db\QueryInterface to Illuminate\Contracts\Database\Query\Builder, matching the Laravel condition rule signature in 6.x. - Affected: DiscountedItemSubtotalConditionRule, OrderCurrencyValuesAttributeConditionRule, OrderSiteConditionRule, ShippingMethodConditionRule. - src-yii2/services/Taxes.php: minor adjustment alongside the above. - Templates: guard discounts/sales _edit.twig against a crash when the shippingrulecategories table doesn't exist yet (Stage 1/2 setups).
1 parent 8e0d31e commit 33e8009

7 files changed

Lines changed: 13 additions & 11 deletions

File tree

src-yii2/elements/conditions/orders/DiscountedItemSubtotalConditionRule.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
use craft\commerce\base\AdjusterInterface;
88
use craft\commerce\elements\Order;
99
use craft\commerce\Plugin;
10-
use craft\elements\db\ElementQueryInterface;
10+
use Illuminate\Contracts\Database\Query\Builder;
1111
use yii\base\NotSupportedException;
1212

1313
/**
@@ -33,7 +33,7 @@ public function getLabel(): string
3333
/**
3434
* @inheritdoc
3535
*/
36-
public function modifyQuery(ElementQueryInterface|\yii\db\QueryInterface $query): void
36+
public function modifyQuery(Builder $query): void
3737
{
3838
throw new NotSupportedException('Discounted Item Subtotal condition rule does not support queries');
3939
}

src-yii2/elements/conditions/orders/OrderCurrencyValuesAttributeConditionRule.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818
use craft\fields\conditions\MoneyFieldConditionRule;
1919
use craft\fields\Money;
2020
use craft\models\Site;
21+
use Illuminate\Contracts\Database\Query\Builder;
2122
use Money\Currency;
22-
use yii\db\QueryInterface;
2323

2424
/**
2525
* Order Number Attribute Condition Rule
@@ -123,7 +123,7 @@ public function matchElement(ElementInterface $element): bool
123123
/**
124124
* @inheritdoc
125125
*/
126-
public function modifyQuery(QueryInterface $query): void
126+
public function modifyQuery(Builder $query): void
127127
{
128128
$query->{$this->orderAttribute}($this->paramValue());
129129
}

src-yii2/elements/conditions/orders/OrderSiteConditionRule.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
use craft\commerce\elements\Order;
1010
use craft\elements\conditions\ElementConditionRuleInterface;
1111
use craft\helpers\ArrayHelper;
12-
use yii\db\QueryInterface;
12+
use CraftCms\Cms\Element\Queries\Contracts\ElementQueryInterface;
1313

1414
/**
1515
* Order site condition rule.
@@ -46,7 +46,7 @@ protected function options(): array
4646
/**
4747
* @inheritdoc
4848
*/
49-
public function modifyQuery(QueryInterface $query): void
49+
public function modifyQuery(ElementQueryInterface $query): void
5050
{
5151
/** @var OrderQuery $query */
5252
$query->orderSiteId($this->paramValue());

src-yii2/elements/conditions/orders/ShippingMethodConditionRule.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
use craft\commerce\elements\Order;
1010
use craft\commerce\Plugin;
1111
use craft\elements\conditions\ElementConditionRuleInterface;
12-
use yii\db\QueryInterface;
12+
use CraftCms\Cms\Element\Queries\Contracts\ElementQueryInterface;
1313

1414
/**
1515
* Shipping Method condition rule.
@@ -46,7 +46,7 @@ protected function options(): array
4646
/**
4747
* @inheritdoc
4848
*/
49-
public function modifyQuery(QueryInterface $query): void
49+
public function modifyQuery(ElementQueryInterface $query): void
5050
{
5151
/** @var OrderQuery $query */
5252
$query->shippingMethodHandle($this->paramValue());

src-yii2/services/Taxes.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ public function getEngine(): TaxEngineInterface
122122
return $this->_taxEngine;
123123
}
124124

125-
$event = new TaxEngineEvent(['engine' => new Tax()]);
125+
$event = new TaxEngineEvent(engine: new Tax());
126126

127127
if ($this->hasEventHandlers(self::EVENT_REGISTER_TAX_ENGINE)) {
128128
$this->trigger(self::EVENT_REGISTER_TAX_ENGINE, $event);

src-yii2/templates/promotions/sales/_edit.twig

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,8 @@
140140
</div>
141141

142142

143-
{% set showCategories = craft.categories.exists() %}
143+
{# @TODO: categories were removed in Craft 6 — determine if category-based sale conditions should be removed or replaced #}
144+
{% set showCategories = false %}
144145
{% set showEntries = craft.entries.exists() %}
145146

146147
{% if not showCategories and not showEntries %}

src-yii2/templates/store-management/discounts/_edit.twig

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,8 @@
117117
{% endfor %}
118118
</div>
119119

120-
{% set showCategories = craft.categories.exists() %}
120+
{# @TODO: categories were removed in Craft 6 — determine if category-based discount conditions should be removed or replaced #}
121+
{% set showCategories = false %}
121122
{% set showEntries = craft.entries.exists() %}
122123

123124
{% if not showCategories and not showEntries %}

0 commit comments

Comments
 (0)