Jeśli używasz wtyczki PDF Invoices & Packing Slips for WooCommerce do generowania faktur zamówień, możesz zauważyć, że niektóre symbole walut — takie jak ₴, ₸, ₺, ₽, € i inne — pojawiają się jako puste pola lub znaki zapytania w generowanych plikach PDF.

🔍 Dlaczego tak się dzieje?

Biblioteki generujące PDF (DomPDF i mPDF, obie używane przez tę wtyczkę) polegają na czcionkach osadzonych w PDF. Domyślna czcionka używana przez te biblioteki nie zawiera glifów dla wielu międzynarodowych symboli walut. W rezultacie te znaki po prostu nie mogą być renderowane i pojawiają się jako uszkodzone.

Rozwiązaniem jest wymuszenie użycia przez silnik PDF czcionki DejaVu Sans — czcionki z szerokim pokryciem Unicode, która zawiera praktycznie wszystkie symbole walut używane na całym świecie.


✅ Rozwiązanie

Dodaj poniższy kod do pliku functions.php twojego motywu lub do wtyczki specyficznej dla witryny.

Krok 1: Dodaj kod

// Napraw symbole walut w fakturach PDF (PDF Invoices & Packing Slips for WooCommerce).
// Wymusza użycie czcionki DejaVu Sans, która ma pełne pokrycie symboli walut Unicode.

add_action('wpo_wcpdf_before_document', function() {
    echo '<style>body, * { font-family: dejavu sans, sans-serif !important; }</style>';
});

add_filter('wpo_wcpdf_dompdf_options', function($options) {
    $options['defaultFont'] = 'DejaVuSans';
    return $options;
});

add_filter('wpo_wcpdf_mpdf_font_data', function($font_data) {
    $font_data['dejavusans'] = [
        'R'  => 'DejaVuSans.ttf',
        'B'  => 'DejaVuSans-Bold.ttf',
        'I'  => 'DejaVuSans-Oblique.ttf',
        'BI' => 'DejaVuSans-BoldOblique.ttf',
    ];
    return $font_data;
});

Krok 2: Prześlij pliki czcionki DejaVu Sans

Pliki czcionek muszą być dostępne na twoim serwerze. Pobierz DejaVu Sans (darmowa, open source) i prześlij poniższe cztery pliki na swój serwer — na przykład do folderu motywu lub dedykowanego katalogu czcionek:

DejaVuSans.ttf
DejaVuSans-Bold.ttf
DejaVuSans-Oblique.ttf
DejaVuSans-BoldOblique.ttf

💡 Skąd pobrać czcionkę: Pobierz z dejavu-fonts.github.io — jest całkowicie darmowa i open source.

💡 Uwaga dotycząca mPDF: Jeśli używasz mPDF jako swojego silnika PDF, zaktualizuj ścieżki plików w filtrze wpo_wcpdf_mpdf_font_data, aby pasowały do rzeczywistej lokalizacji plików czcionek na twoim serwerze.


🔧 Którego silnika PDF używasz?

Wtyczka obsługuje dwa silniki renderujące PDF:

Silnik Hook, który się stosuje
DomPDF (domyślny) wpo_wcpdf_dompdf_options + wpo_wcpdf_before_document
mPDF wpo_wcpdf_mpdf_font_data + wpo_wcpdf_before_document

Powyższy kod obejmuje oba silniki — możesz bezpiecznie dodać wszystkie trzy hooki, niezależnie od tego, który silnik jest aktywny.


✅ Symbole naprawione przez to rozwiązanie

Po zastosowaniu poprawki, następujące symbole walut (i wiele innych) będą poprawnie renderowane w twoich fakturach PDF:

Symbol Waluta
Hrywna ukraińska
Tenge kazachskie
Lira turecka
Rubel rosyjski
Euro
£ Funt brytyjski
¥ Jen japoński / Juan chiński
Won południowokoreański
Dong wietnamski

⚠️ Ważne uwagi

  • Ta poprawka dotyczy tylko plików PDF generowanych przez PDF Invoices & Packing Slips for WooCommerce
  • Nie wpływa na wygląd frontendu twojego sklepu WooCommerce
  • Jeśli zmienisz silniki PDF w ustawieniach wtyczki, poprawka nadal działa — wszystkie trzy hooki są objęte
  • Po dodaniu kodu, wygeneruj ponownie istniejącą fakturę, aby potwierdzić, że symbole są teraz poprawnie renderowane
0
Świetnie! 
Błąd!