wp_redirect() - headers already sent
I am trying to use wp_redirect()
to redirect the user after successfully submitting a signup form on the page.
It's not working and shows the following error:
Warning: Cannot modify header information - headers already sent by (output started at /Applications/MAMP/htdocs/theme/wp-content/themes/test/header.php:10) in /Applications/MAMP/htdocs/theme/wp-includes/pluggable.php on line 1178
I understand there has been already output before, that's why it's not working, but I have no clue how to make this work.
The signup form gets rendered by a function, and is submitted by another function, inside my functions.php.
if ( isset( $_POST['subscribe'] ) ) {
// Submits the form and should then redirect
wp_redirect("/thank-you/");
exit;
}
Then both these functions are used where I want to show the signup form.
I'm afraid that's not the best thing to do. I should be creating some action that does that, but I have no idea how to implement that. Most of the tutorials I found show the results directly on the same page and don't require an additional redirect. Maybe that's why they are working with functions inside the functions.php
Topic wp-redirect headers theme-development Wordpress
Category Web