WordPress Custom Plugin: PDF -экспорт работает на французском языке, но поврежден на английском языкеPhp

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

Сообщение Anonymous »

Я разрабатываю небольшое расширение для управления ваучерами в моем магазине Woocommerce. Создание их учетной записи и повторно загрузите их при необходимости.
Рядом с каждым ваучером есть кнопка «Загрузить». При нажатии на клиент генерируется и возвращается файл 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.
Parcourir les produits
';
}
}
}
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");
}

< /code>
Когда я сбрасываю $ pdf до вывода, будь то на французском или английском языке, я получаю полный объект FPDI с правильной информацией: правый загруженный файл PDF в соответствии с языком, а также Данные клиента. < /p>
Для вашей информации я использую плагин TranslatePress для перевода сайта. может быть от?
Заранее спасибо за вашу помощь.

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

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

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

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

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

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

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