vip_plus_amount && $cart->vip_plus_amount > 0) { throw new \Exception('Member discount has already been applied.'); } $discountAmount = core()->convertPrice(self::MEMBER_DISCOUNT_AMOUNT); $cart->vip_plus_amount = $discountAmount; $cart->base_vip_plus_amount = core()->convertToBasePrice($discountAmount); $cart->save(); Cart::collectTotals(); } /** * Remove member discount from cart. */ public function remove(): void { $cart = Cart::getCart(); if (! $cart || ! $cart->vip_plus_amount || $cart->vip_plus_amount <= 0) { return; } $cart->vip_plus_amount = null; $cart->base_vip_plus_amount = null; $cart->save(); Cart::collectTotals(); } }