Я пытался создать форму в Wordpress для отправки данных в базу данных и проверки совпадения данных, и если да, то он переходит к следующей форме, но я не могу заставить ее работать должным образом, тестировал наличие форма, помещенная в папку тем, чтобы обеспечить более прямое тестирование, php выглядит так:
<?php
if (isset($_POST['submit'])) {
global $wpdb;
$ordernumber = $_POST['ordernmbr'];
$orderfirstname = $_POST['firstname'];
$orderpostnumber = $_POST['postnmbr'];
// Sanitizing
$ordernumber = stripslashes_deep($ordernumber);
$orderfirstname = stripslashes_deep($orderfirstname);
$orderpostnumber = stripslashes_deep($orderpostnumber);
$sql = "SELECT * FROM wp_postmeta WHERE 'post_id' = %d";
$sql = $wpdb->prepare($sql, array($ordernumber));
$res = $wpdb->get_results($sql);
if ($res > 0) {
wp_redirect(admin_url('http://localhost/wordpress/index.php/shop/'));
die();
} else {
$error = "Not like this";
echo $error;
}
print_r($res);
}
?>
<?php
get_footer();
?>
}
Проблема в том, что когда я пытаюсь опубликовать данные, появляется сообщение об ошибке
Warning: Cannot modify header information - headers already sent by (output started at /Applications/XAMPP/xamppfiles/htdocs/wordpress/wp-includes/class.wp-styles.php:225) in /Applications/XAMPP/xamppfiles/htdocs/wordpress/wp-includes/pluggable.php on line 1219
как мне это исправить?
@misorude изначально должен был быть плагином, но пока я не смог показать его как таковой, поэтому я попытался показать его на реальной странице, добавив его в качестве шаблона в самой теме и связав его, что способ.
@Vel спасибо, что сработало






Вы не можете перенаправить браузер после того, как контент уже начал обслуживаться.
Этот фрагмент кода должен быть включен до начала загрузки темы, поэтому он должен быть в плагине.
При настройке плагина не забудьте дать ему высокий приоритет и выбрать правильный фильтр / действие, чтобы он загружался раньше (до рендеринга любого контента): Справочник действий WP
Я разберусь, когда смогу, спасибо!
переместите код POST вверху в заголовочном файле