get_data(); $data = self::_append_country_info($data, $package, $request); if (isset($request['id'])) { $data = self::_append_package_prices($data, $package, $request); $data = self::_append_documents_info($data, $package, $request); $data = self::_append_additional_packages($data, $package, $request); } $response->set_data($data); return $response; } /** * Append package documents * @param $data * @param $package * @param $request * * @return array */ private static function _append_documents_info($data, $package, $request) { unset($data['downloads']); $data['documents'] = array_map(function($download) { return array( 'id' => $download->get_id(), 'name' => $download->get_name(), 'extension' => $download->get_file_extension(), ); }, array_values($package->get_downloads())); return $data; } /** * Append package country and currency info * @param $data * @param $package * @param $request * * @return array */ private static function _append_country_info($data, $package, $request) { $package_country = Wiaas_Countries::get_package_country($package); if (isset($package_country)) { $data['country'] = $package_country['name']; $data['country_code'] = $package_country['code']; $data['currency'] = $package_country['currency']; } return $data; } /** * Append package addons and options * @param $data * @param $package * @param $request * * @return array */ private static function _append_additional_packages($data, $package, $request) { $data['additional_packages'] = array(); $addons = Wiaas_Package_Addon::get_package_addons($package); foreach ($addons as $addon) { $data['additional_packages'][] = array( 'id' => $addon->get_id(), 'name' => $addon->get_name(), 'description' => $addon->get_description(), 'prices' => Wiaas_Pricing::get_addon_package_customer_price($addon, $package), ); } $data['groups'] = array(); $option_groups = Wiaas_Package_Option_Groups::get_package_option_groups($package); foreach ($option_groups as $option_group) { $data['groups'][$option_group['id']] = array( 'id' => $option_group['id'], 'name' => $option_group['name'], 'default' => $option_group['default'], 'options' => array() ); $default_option_id = (int) $option_group['default']; foreach ($option_group['options'] as $option_package) { $data['groups'][$option_group['id']]['options'][] = array( 'id' => $option_package->get_id(), 'name' => $option_package->get_name(), 'description' => $option_package->get_description(), 'default' => $default_option_id === $option_package->get_id(), 'prices' => Wiaas_Pricing::get_option_package_customer_price($option_package, $package), ); } } return $data; } /** * Append configured package prices on package json response * @param $data * @param $package * @param $request * * @return array */ private static function _append_package_prices($data, $package, $request) { $data['prices'] = Wiaas_Pricing::get_standard_package_customer_prices($package); return $data; } } Wiaas_Package::init();