public function showKeyVirtualProductPurchased($idProduct, $idOrder, Request $request) { if (!$request->wantsJson()) { return ['message' => trans('globals.error_not_available')]; } $product = Product::find($idProduct); $order = Order::find($idOrder); $virtual = VirtualProduct::select('id')->where('product_id', $idProduct)->get()->toArray(); if (!$product || !$order || !count($virtual)) { return ['message' => trans('globals.error_not_available'), 'id' => false]; } if ($order->user_id != \Auth::id()) { return ['message' => trans('globals.error_not_available'), 'my' => false]; } $virtualOrder = VirtualProductOrder::where('order_id', $order->id)->whereIn('virtual_product_id', $virtual)->get(); if (!count($virtualOrder)) { return ['message' => trans('globals.error_not_available'), 'order' => false]; } $user = User::find(\Auth::id()); $return = ['info' => ['name' => $product->name, 'des' => $product->description, 'num' => count($virtualOrder)]]; foreach ($virtualOrder as $row) { if (isset($return['users'][$row['email']])) { $key = VirtualProduct::find($row['virtual_product_id']); $return['users'][$row['email']]['keys'][] = $key['key']; } else { $key = VirtualProduct::find($row['virtual_product_id']); $return['users'][$row['email']]['keys'][0] = $key['key']; $return['users'][$row['email']]['title'] = $row['email'] == $user['email'] ? 'Your Keys' : 'Keys sent to ' . $row['email']; } } return $return; }