PDF -экспорт на французском и английском языкеPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 PDF -экспорт на французском и английском языке

Сообщение Anonymous »

Я разрабатываю небольшое расширение для управления ваучерами в моем магазине Woocommerce, пользовательском плагине с экспортом PDF. PDF пуст. С момента создания их учетной записи и повторной загрузки их, если это необходимо. При нажатии на клиент генерируется и возвращается файл PDF. Это отлично работает при использовании языка по умолчанию моего магазина, но как только я переключаюсь на английский (с «/en/" в URL), возвращаемый PDF пуст.
Здесь Код для разделения ваучеров: < /p>

Код: Выделить всё

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>
А вот код для моей функции 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");
}
Когда я сбрасываю $ pdf перед выводом, будь то на французском или английском на язык, а также данные клиента. не иметь больше представления, где проблема может исходить от.

Подробнее здесь: https://stackoverflow.com/questions/794 ... in-english
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • WordPress Custom Plugin: PDF -экспорт работает на французском языке, но поврежден на английском языке
    Anonymous » » в форуме Php
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • PDF -экспорт на французском и английском языке
    Anonymous » » в форуме Php
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • PDF -экспорт на французском и английском языке
    Anonymous » » в форуме Php
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Локализация строк APK на английском (Великобритания) и английском (США)?
    Anonymous » » в форуме Android
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • Как мне получить названия месяцев на французском языке в PHP в этом существующем скрипте?
    Anonymous » » в форуме Php
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Php»