Skip to content

Commit 200f545

Browse files
committed
Cleanup
1 parent 582d9d6 commit 200f545

1 file changed

Lines changed: 8 additions & 8 deletions

File tree

src/models/LineItem.php

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
use LitEmoji\LitEmoji;
2828
use yii\base\InvalidConfigException;
2929
use yii\behaviors\AttributeTypecastBehavior;
30+
use yii\validators\Validator;
3031

3132
/**
3233
* Line Item model representing a line item on an order.
@@ -445,7 +446,8 @@ public function defineRules(): array
445446
$purchasable = Craft::$app->getElements()->getElementById($this->purchasableId);
446447
if ($purchasable && !empty($purchasableRules = $purchasable->getLineItemRules($this))) {
447448
foreach ($purchasableRules as $rule) {
448-
$rules[] = $this->_normalizePurchasableRule($rule);
449+
$this->_normalizePurchasableRule($rule);
450+
$rules[] = $rule;
449451
}
450452
}
451453
}
@@ -456,19 +458,17 @@ public function defineRules(): array
456458
/**
457459
* Normalizes a purchasable’s validation rule.
458460
*
459-
* @param mixed $rule
460-
* @return mixed
461+
* @param Validator|array $rule
461462
*/
462-
private function _normalizePurchasableRule($rule)
463+
private function _normalizePurchasableRule(&$rule)
463464
{
464-
if (isset($rule[1]) && $rule[1] instanceof \Closure) {
465+
if (is_array($rule) && isset($rule[1]) && $rule[1] instanceof \Closure) {
466+
// Wrap the closure in another one, so InlineValidator doesn’t bind it to the model
465467
$method = $rule[1];
466-
$rule[1] = function($attribute, $params, $validator, $current) use($method) {
468+
$rule[1] = function($attribute, $params, $validator, $current) use ($method) {
467469
$method($attribute, $params, $validator, $current);
468470
};
469471
}
470-
471-
return $rule;
472472
}
473473

474474
/**

0 commit comments

Comments
 (0)