settings->get_settings(); $merchant = (array) ( $settings['merchant'] ?? array() ); $currency = function_exists( 'get_woocommerce_currency' ) ? (string) get_woocommerce_currency() : 'BAM'; $labels = $this->sample_labels( $language ); $name = trim( (string) ( $merchant['legal_name'] ?? '' ) ); $address = implode( ', ', array_filter( array_map( 'trim', array( (string) ( $merchant['address'] ?? '' ), (string) ( $merchant['postcode'] ?? '' ), (string) ( $merchant['city'] ?? '' ), (string) ( $merchant['country'] ?? '' ) ) ) ) ); $price = $this->money->format( 49.90, $currency ); $shipping = $this->money->format( 7.00, $currency ); $total = $this->money->format( 56.90, $currency ); $document = new BasicOrderDocument( 0, $labels['number'], gmdate( 'Y-m-d' ), $language, $currency, array( 'name' => '' !== $name ? $name : $labels['merchant'], 'address' => '' !== $address ? $address : $labels['merchant_address'], 'registration_number' => (string) ( $merchant['registration_number'] ?? '' ), 'tax_id' => (string) ( $merchant['tax_id'] ?? '' ), 'vat_number' => (string) ( $merchant['vat_number'] ?? '' ), 'email' => (string) ( $merchant['email'] ?? '' ), 'phone' => (string) ( $merchant['phone'] ?? '' ), ), array( 'name' => $labels['customer'], 'company' => '', 'address' => $labels['billing'], 'email' => 'kupac@example.com', 'phone' => '+387 61 000 000', ), array( 'name' => $labels['customer'], 'company' => '', 'address' => $labels['shipping'], 'email' => '', 'phone' => '', ), array( array( 'name' => $labels['product'], 'sku' => 'PRIMJER-001', 'quantity' => 1, 'unit_price' => $price, 'line_total' => $price, ), ), $price, $this->money->format( 0, $currency ), $shipping, $this->money->format( 0, $currency ), $total, $labels['payment'], $labels['delivery'], $this->texts->get( $language, 'preview_label' ) ); return $this->renderer->render( $document ); } /** @return array */ private function sample_labels( string $language ): array { $all = array( 'bs' => array( 'number' => 'PRIMJER-001', 'merchant' => 'Primjer trgovine d.o.o.', 'merchant_address' => 'Primjer 1, 71000 Sarajevo, BA', 'customer' => 'Ogledni kupac', 'billing' => 'Ulica primjera 2, 71000 Sarajevo, BA', 'shipping' => 'Ulica primjera 2, 71000 Sarajevo, BA', 'product' => 'Ogledni proizvod ć č ž š đ', 'payment' => 'Ogledni način plaćanja', 'delivery' => 'Ogledna dostava', ), 'hr' => array( 'number' => 'PRIMJER-001', 'merchant' => 'Primjer trgovine d.o.o.', 'merchant_address' => 'Primjer 1, 10000 Zagreb, HR', 'customer' => 'Ogledni kupac', 'billing' => 'Ulica primjera 2, 10000 Zagreb, HR', 'shipping' => 'Ulica primjera 2, 10000 Zagreb, HR', 'product' => 'Ogledni proizvod ć č ž š đ', 'payment' => 'Ogledni način plaćanja', 'delivery' => 'Ogledna dostava', ), 'sr' => array( 'number' => 'PRIMER-001', 'merchant' => 'Primer trgovine d.o.o.', 'merchant_address' => 'Primer 1, 11000 Beograd, RS', 'customer' => 'Ogledni kupac', 'billing' => 'Ulica primera 2, 11000 Beograd, RS', 'shipping' => 'Ulica primera 2, 11000 Beograd, RS', 'product' => 'Ogledni proizvod ć č ž š đ', 'payment' => 'Ogledni način plaćanja', 'delivery' => 'Ogledna dostava', ), 'en' => array( 'number' => 'SAMPLE-001', 'merchant' => 'Sample Store Ltd', 'merchant_address' => '1 Sample Street, Sample City', 'customer' => 'Sample Customer', 'billing' => '2 Example Street, Sample City', 'shipping' => '2 Example Street, Sample City', 'product' => 'Sample product ć č ž š đ', 'payment' => 'Sample payment method', 'delivery' => 'Sample delivery', ), ); return $all[ $language ] ?? $all['bs']; } }