Merge pull request #20 from wearepixel/task/fix-subtotal-always-being-used-if-the-total-is-$0

Task: Fix subtotal always being used when cart conditions on the total bring it to $0
This commit is contained in:
Joel Male
2024-09-23 07:48:06 +10:00
committed by GitHub
2 changed files with 7 additions and 6 deletions
+6 -5
View File
@@ -458,9 +458,6 @@ public function removeItemCondition($itemId, $conditionName)
}
}
// reset indexes
$item['conditions'] = array_values($item['conditions']);
$this->update($itemId, [
'conditions' => $item['conditions'],
]);
@@ -601,10 +598,14 @@ public function getTotal(): int|float
return Helpers::formatValue($subTotal, $this->config['format_numbers'], $this->config);
}
$conditionsForTotal->each(function (CartCondition $condition) use ($subTotal, &$total) {
$toBeCalculated = $total > 0 ? $total : $subTotal;
$index = 0;
$conditionsForTotal->each(function (CartCondition $condition) use ($subTotal, &$total, &$index) {
$toBeCalculated = ($index > 0) ? $total : $subTotal;
$total = $condition->applyCondition($toBeCalculated);
$index++;
});
return Helpers::formatValue($total, $this->config['format_numbers'], $this->config);
+1 -1
View File
@@ -1310,7 +1310,7 @@
// now we should have only 1 condition left on that item
expect($this->cart->get(1)['conditions'])->toHaveCount(1, 'Item should have one condition left');
expect($this->cart->get(1)['conditions'][0]->getName())->toEqual('Mother\'s Day Gift Pack');
expect($this->cart->get(1)['conditions'][1]->getName())->toEqual('Mother\'s Day Gift Pack');
});
test('can add item with multiple negative item conditions', function () {