У меня есть кнопка ссылки на моем веб-сайте, чтобы удалить "Предмет" пользователя.Этот элемент переводится как запись в одной таблице, полностью отдельная таблица и сообщение WP.
Я использую SweetAlert, чтобы получить от пользователя подтверждение на удаление своего элемента.Это подтверждение отправляет запрос AJAX во внешний файл PHP, чтобы удалить запись таблицы, удалить таблицу и удалить сообщение WP, и все это без обновления страницы.
Мой код из внешнего файла PHP работает безупречно, когда явставьте его на страницу моего сайта и опубликуйте на нем переменные, но когда я отправляю значения через запрос AJAX, происходит сбой при удалении WP Post (с помощью wp_delete_post ()) и единственная ошибка, которую я вижу вИнструменты разработчика браузера - это внутренняя ошибка 500.
Вот мой рассматриваемый код.
HTML
<span id="userId" hidden><?php echo $user_id; ?></span>
<span id="Name" hidden><?php echo $name; ?></span>
<span id="blogId" hidden><?php echo $blog_id; ?></span>
<a id="delete" class="btn-cancel" href="">Delete</a>
JQuery /var/www/html/wp-content/themes/custom/js/my.js
(function($){
$('document').ready(function(){
$('#delete').click(function(event){
event.preventDefault();
swal ({
icon: "warning",
title: "Confirm Delete Request",
text: "Are you sure you want to delete '" + $('#Name').html() + "'?\nThis action is not reversible and all associated data will be lost!",
closeOnEsc: false,
closeOnClickOutside: false,
showCloseButton: false,
buttons: {
cancel: {
text: "NO, Get me Out",
value: false,
visible: true,
},
confirm: {
text: "YES, Delete! ME",
value: true,
visible: true,
}
},
})
.then(function(value) {
if (value == true){
var data = 'name=' + $('#Name').html() + '&user_id=' + $('#userId').html() + '&blog_id=' + $('#blogId').html();
$.ajax({
type: 'POST',
url: '../wp-content/themes/onepress-child/includes/delete.php',
data: data,
dataType: 'json',
success: function(r) {
if (r=="2") {
alert('Deleted');
} else if (r=="1") {
alert('Not an Admin');
} else if (r=="0") {
alert('Bad Name');
} else {
alert('Error');
}
}
});
} else {
window.history.back();
}
});
});
PHP / var / www / html / wp-content / themes / custom/include/delete.php
(я пропустил код MySQL, потому что у меня нет проблем с этим
include_once "../../../../wp-includes/post.php"
if (wp_delete_post($blog_id, true)){
echo "2"; //Success
}
Кто-нибудь знает, почему функция wp_delete_post ()Ошибка 500 Внутренняя ошибка не дает мне никакой информации для устранения неполадокses.
Я попытался включить исходный файл, как описано в Кодексе WP (include_once "wp-includes / post.php";), но это не проблема.