PDF -Export in Französisch und EnglischPhp

PHP-Programmierer chatten hier
Anonymous
 PDF -Export in Französisch und Englisch

Post by Anonymous »

Ich entwickle eine kleine Erweiterung für die Verwaltung von Gutscheinen in meinem WooCommerce -Store, ein benutzerdefiniertes Plugin mit einem PDF -Export. PDF ist leer. Ihr Konto und das erneute Laden Sie sie bei Bedarf erneut herunter. Beim Klicken wird eine PDF -Datei generiert und an den Kunden zurückgegeben. Dies funktioniert perfekt, wenn die Standardsprache meines Geschäfts verwendet wird, aber sobald ich auf Englisch wechsle (mit "/en/" in der URL) ist das zurückgegebene PDF leer.
Hier ist der Code für den Voucher -Abschnitt: < /p>

Code: Select all

function display_vouchers_in_dashboard()
{
$user_id = get_current_user_id();

if ($user_id > 0)
{
$args = array(
'customer_id' => $user_id,
'post_type'   => 'shop_order',
'posts_per_page' => -1,
);

$orders = wc_get_orders($args);

$voucher_found = false;

if ($orders)
{
echo 'Vos Vouchers';
echo '';
echo 'Date d\'achatMontantÀ l\'attention deRéférenceAction';
echo '';

foreach ($orders as $order)
{
foreach ($order->get_items() as $item_id => $item)
{
$product = $item->get_product();

if ($product)
{
$categories = wp_get_post_terms($product->get_id(), 'product_cat');

foreach ($categories as $category)
{

if ($category->slug === 'bons-cadeaux')
{
$voucher_reference = wc_get_order_item_meta($item_id, '_voucher_reference', true);
$recipient_name = wc_get_order_item_meta($item_id, '_gift_card_recipient', true);

$voucher_amount = $item->get_total();

$order_date = $order->get_date_created()->date('Y-m-d');

if (!empty($voucher_reference) && !empty($recipient_name))
{
$voucher_found = true;
echo '';
echo '' . esc_html($order_date) . '';
echo '' . wc_price($voucher_amount) . '';
echo '' . esc_html($recipient_name) . '';
echo '' . esc_html($voucher_reference) . '';
echo '';
echo '';
echo '';
echo '';
echo '';
echo 'Télécharger';
echo '';
echo '';
echo '';
}
}
}
}
}
}

echo '';
echo '';
}

if (!$voucher_found)
{
echo '

Vous n\'avez pas encore acheté de vouchers.
[url=https://radici.lu/boutique/]Parcourir les produits[/url]
';
}
}
}

add_action('woocommerce_account_vouchers_endpoint', 'display_vouchers_in_dashboard');

function process_voucher_download()
{
if (isset($_POST['action']) && $_POST['action'] === 'download_voucher' && isset($_POST['order_id']) && isset($_POST['item_id']))
{
$order_id = absint($_POST['order_id']);
$item_id = absint($_POST['item_id']);
$user_id = get_current_user_id();

$order = wc_get_order($order_id);

if ($order && $order->get_user_id() === $user_id)
{
generate_pdf($order_id, $item_id);
exit;
} else {
wp_redirect(home_url('/404'));
exit;
}
}
}

add_action('template_redirect', 'process_voucher_download');
< /code>
Und hier ist der Code für meine Funktion generate_pdf: < /p>
function generate_pdf($order_id, $item_id)
{
$order = wc_get_order($order_id);
$current_user = wp_get_current_user();
$language = get_locale();

if ($order->get_user_id() != $current_user->ID)
{
wp_die('You are not authorized to generate vouchers for this order');
}

$item = $order->get_item($item_id);
$product_id = $item->get_product_id();
$pdf = new Fpdi();

if ($language === "en_GB")
{
$pdf->setSourceFile(plugin_dir_path(__FILE__) . 'template_voucher_en.pdf');
$tplIdx = $pdf->importPage(1);

if (has_term('bons-cadeaux', 'product_cat', $product_id))
{
$recipient_name = $item->get_meta('_gift_card_recipient', true);
$reference = $item->get_meta('_voucher_reference', true);
$sender_name = $order->get_billing_first_name() . ' ' . $order->get_billing_last_name();

$pdf->AddPage('L');
$pdf->useTemplate($tplIdx);
$pdf->SetFont('Helvetica', '', 14);

$pdf->SetXY(52.5, 13.5);
$pdf->Write(0, $reference);

$pdf->SetXY(93, 136.5);
$pdf->Write(0, $item->get_total() . '€');

$pdf->SetXY(118, 147);
$pdf->Write(0, $recipient_name);

$pdf->SetXY(87.5, 157.5);
$pdf->Write(0, $sender_name);

$pdf->SetXY(103, 168);
$pdf->Write(0, date('d/m/Y', strtotime('+1 year', strtotime($order->get_date_created()))));
}
} else {
$pdf->setSourceFile(plugin_dir_path(__FILE__) . 'template_voucher_fr.pdf');
$tplIdx = $pdf->importPage(1);

if (has_term('bons-cadeaux', 'product_cat', $product_id))
{
$recipient_name = $item->get_meta('_gift_card_recipient', true);
$reference = $item->get_meta('_voucher_reference', true);
$sender_name = $order->get_billing_first_name() . ' ' . $order->get_billing_last_name();

$pdf->AddPage('L');
$pdf->useTemplate($tplIdx);

$pdf->SetFont('Helvetica', '', 14);

$pdf->SetXY(53, 13.5);
$pdf->Write(0, $reference);

$pdf->SetXY(94.5, 136.5);
$pdf->Write(0, $item->get_total() . '€');

$pdf->SetXY(109, 147);
$pdf->Write(0, $recipient_name);

$pdf->SetXY(104, 157.5);
$pdf->Write(0, $sender_name);

$pdf->SetXY(109.5, 168);
$pdf->Write(0, date('d/m/Y', strtotime('+1 year', strtotime($order->get_date_created()))));
}
}

return $pdf->Output("voucher_".$reference.".pdf", "D");
}
Wenn ich $ pdf vor der Ausgabe ein DIMPEN -DURCHEN, erhalte ich das vollständige FPDI -Objekt mit den richtigen Informationen: Die richtig hochgeladene PDF -Datei nach In die Sprache sowie die Daten des Kunden. keine Idee mehr haben, wo die Ausgabe könnte von.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post