composer require phpoffice/phpspreadsheet
composer require dompdf/dompdfuse PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Writer\Pdf\Dompdf;
$inputFileName = "you_exel_file.xlsx";
$spreadsheet = IOFactory::load($inputFileName);
$writer = new Dompdf($spreadsheet);
$writer->save('you_exel_to_pdf_file.pdf');
Читаем внимательно мой ответ. и вопрос.Я и читаю
да проблема в плагине они используют не существующую функцию wp_json_sanitize возможно она была в старых версиях движка, не уверен в этом, но сейчас такой нет совершенно точно
Рекомендую использовать другой плагин или сделать/ заказать свое решение под задачу, посмотрел интереса ради код этого плагина, это творение Аi - весьма кривоеТеперь читайте сами, вдумчиво... что следует из этого ответа...
wp_json_sanitize никогда не было в ядре.$update = json_decode(file_get_contents('php://input'), TRUE);
if( ! function_exists('wp_json_sanitize')) {
require_once ABSPATH . WPINC . '/functions.php';
}ABSPATH . WPINC . '/functions.php'$raw_body и как его подготовить для json_decode.
Если вы не будете знать откуда растут ноги, то дай вам ботинки и вы не будете знать что с ними делатьНадеюсь понятно объяснил.
// Предотвращаем стандартную отправку формыВсё правильно здесь. Соберите данные формы и отправьте данные, очистите форму и покажите сообщение.
const form = document.getElementById('form1');
const confirmationBlock = document.getElementById('confirmation');
// Добавляем обработчик события на отправку формы
form.addEventListener('submit', function(event) {
// Предотвращаем стандартную отправку формы
event.preventDefault();
/**
* Здесь нужна логика по заполненым полям
* ...etc
*/
// Сбрасываем блок информации
confirmationBlock.classList.remove('show', 'successful', 'error');
confirmationBlock.classList.add('hidden');
// создать объект данных из формы
let formData = new FormData(document.getElementById('form1'));
// Объект отправки
let xhr = new XMLHttpRequest();
// Устанавливаем бработчики
// Удачный
xhr.addEventListener("load", function (event) {
// Показываем информацию о успехе
confirmationBlock.classList.remove('hidden');
confirmationBlock.classList.add('show', 'successful');
});
// Ошибка
xhr.addEventListener("error", function (event) {
// Показываем информацию об ошибке
confirmationBlock.classList.remove('hidden');
confirmationBlock.classList.add('show', 'error');
});
// Метод
xhr.open('POST', '/', true);
// Отправляем
xhr.send(formData);
// Очистка формы
form.reset();
// Можно спрятать форму
form.classList.add('hidden');
return !1;
});
"РавшанСтрой"у нас таких нет )))
Когда обратились к подрядчику, он сказалУ вас реально только один подрядчик?
У вас ошибка в базе данных и нужно смотреть именно таблицы, куда пытаетесь вставить запись. Советов может быть куча. Нужно смотреть конкретно ваш случай.
Но решение такое.
Нужно узнать таблицу для которой создаётся запись, проверить в ней существование авто инкремента. Если авто инкремент существует, то проверить, нет ли двойного инкремента (такое может быть из-за ваших откатов, накатов и т.п). Инкремент не может равняться 0. Он должен автоматически создать новый, но у вас неправильное значение AUTO_INCREMENT, он меньше чем может быть и у вас происходит задвоение. Запись не вставляется.
Исправить это дело и выставить максимальный авто инкремент.
Объяснил самыми простыми словами... Не судите )))