get_id()) ); // retrieve all bundled products from all relevant packages $all_product_ids = array_values( WC_PB_DB::query_bundled_items(array( 'return' => 'id=>product_id', 'bundle_id' => $all_package_ids )) ); $all_object_ids = array_unique(array_merge($all_package_ids, $all_product_ids)); // retrieve document ids from all packages and products $document_ids = array(); foreach ($all_object_ids as $object_id) { $document_ids = array_merge( $document_ids, wiaas_get_object_attached_documents($object_id)); } $document_ids = array_unique($document_ids); // filter only visible if needed and retrieve documents info $documents = array(); foreach ($document_ids as $document_id) { if ($only_visible && Wiaas_Document::is_doc_visible($document_id) || !$only_visible) { $documents[] = Wiaas_Document::get_doc_info($document_id); } } return $documents; } /** * Retrieve all documents for single order standard package item * * @param WC_Order $order * @param int $package_item_id * * @return array */ function wiaas_get_standard_package_order_item_documents($order, $package_item_id) { $order_items = $order->get_items( 'line_item' ); $package_order_item = $order->get_item($package_item_id); // retrieve package order item addons and options $all_package_order_items = array_merge( wiaas_get_order_item_addons($order_items, $package_order_item), wiaas_get_order_item_options($order_items, $package_order_item), array( $package_order_item ) ); $all_order_items = $all_package_order_items; // retrieve bundled product items for each package foreach ($all_package_order_items as $item) { $all_order_items = array_merge( $all_order_items, wc_pb_get_bundled_order_items($item, $order) ); } $order_documents = array(); foreach ($all_order_items as $order_item) { $order_documents = array_merge( $order_documents, isset($order_item['wiaas_documents']) ? $order_item['wiaas_documents'] : array() ); } return array_map(function($doc) { // append document extension and name information $doc['extension'] = wiaas_get_doc_version_extension($doc['version']); $doc['name'] = isset($doc['name']) ? $doc['name'] : wiaas_get_doc_version_filename($doc['version']); return $doc; }, $order_documents); }