public function submitGiftCard() { //get the giftcards from the database $giftCard = \CI::GiftCards()->getGiftCard(\CI::input()->post('gift_card')); if (!$giftCard) { echo json_encode(['error' => lang('gift_card_not_exist')]); } else { //does the giftcard have any value left? if (\CI::GiftCards()->isValid($giftCard)) { $message = \GC::addGiftCard($giftCard); if ($message['success']) { \GC::saveCart(); echo json_encode(['message' => lang('gift_card_balance_applied')]); } else { echo json_encode($message); } } else { echo json_encode(['error' => lang('gift_card_zero_balance')]); } } }
public function delete($id) { \CI::GiftCards()->delete($id); \CI::session()->set_flashdata('message', lang('message_deleted_gift_card')); redirect('admin/gift-cards'); }
function submitOrder($transaction = false) { foreach ($this->items as $item) { if ($item->type == 'gift card') { //touch giftcard \CI::GiftCards()->updateAmountUsed($item->description, $item->total_price); continue; } elseif ($item->type == 'coupon') { //touch coupon \CI::Coupons()->touchCoupon($item->description); continue; } elseif ($item->type == 'product') { //update inventory if ($item->track_stock) { \CI::Products()->touchInventory($item->product_id, $item->quantity); } //if this is a giftcard purchase, generate it and send it where it needs to go. if ($item->is_giftcard) { //process giftcard $options = CI::Orders()->getItemOptions(GC::getCart()->id); $giftCard = []; foreach ($options[$item->id] as $option) { if ($option->option_name == 'gift_card_amount') { $giftCard[$option->option_name] = $option->price; } else { $giftCard[$option->option_name] = $option->value; } } $giftCard['code'] = generate_code(); $giftCard['activated'] = 1; //save the card \CI::GiftCards()->saveCard($giftCard); //send the gift card notification \GoCart\Emails::giftCardNotification($giftCard); } } } if (!$transaction) { $transaction = $this->transaction(); } //add transaction info to the order $this->cart->order_number = $transaction->order_number; $this->cart->transaction_id = $transaction->id; $this->cart->status = config_item('order_status'); $this->cart->ordered_on = date('Y-m-d H:i:s'); $orderNumber = $this->cart->order_number; $this->saveCart(); //refresh the cart $this->getCart(true); //get the order as it would be on the order complete page $order = \CI::Orders()->getOrder($orderNumber); //send the cart email \GoCart\Emails::Order($order); //return the order number return $orderNumber; }