add_meta_data( '_wiaas_standard_package', $cart_item['_wiaas_standard_package'], true ); } } public static function hidden_order_item_meta( $hidden ) { return array_merge( $hidden, array( '_wiaas_standard_package', ) ); } /** * Transform package json response with wiaas information * @param $response * @param $package * @param $request * * @return mixed */ public static function transform_rest_package($response, $package, $request) { $data = $response->get_data(); $data = self::_append_package_prices($data, $package, $request); $data = self::_append_grouped_products($data, $package, $request); $response->set_data($data); return $response; } private static function _append_grouped_products($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' => array_values(Wiaas_Package_Pricing::get_package_prices($addon)) ); } $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'], 'options' => array() ); 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' => 0, 'prices' => array_values(Wiaas_Package_Pricing::get_package_prices($option_package)) ); } } return $data; } /** * Append configured package prices on package json response * @param $data * @param $package * @param $request * * @return mixed */ private static function _append_package_prices($data, $package, $request) { $package_prices = array_values(Wiaas_Package_Pricing::get_package_prices($package)); $data['prices'] = $package_prices; return $data; } } Wiaas_Package::init();