Come reindirizzare l'utente a una pagina dopo l'invio di un modulo
Ho tre filtri a dropdown nel frontend per selezionare paese, territorio e regione e devo reindirizzare l'utente alla pagina paese/territorio/regione in base ai valori selezionati al click del pulsante Invia.
Per info, ho pagine con lo stesso slug. Esempio: example.com/nome-paese/nome-territorio/nome-regione
Sto provando a usare wp_redirect( $final_url ); exit;
ma ottengo un warning:
Warning: Cannot modify header information - headers already sent by (output started at E:\path\to\root-folder\wp-includes\class.wp-styles.php:154) in E:\path\to\root-folder\wp-includes\pluggable.php on line 1121
Qualcuno può aiutarmi?
Potete suggerirmi un metodo migliore?
//Modifica- ecco il mio codice
if(isset($_POST['submit']) and $_POST['action']=='findurl')
{
//Risultato $POST Array ( [countrySelect] => 1 [territorySelect] => 1 [regionSelect] => 2 )
if (isset($_POST['countrySelect'])){
$rows_country_url = $wpdb->get_results("select url from country where id=".$_POST['countrySelect']."");
}
if (isset($_POST['territorySelect'])){
$rows_territory_url = $wpdb->get_results("select url from territory where id=".$_POST['territorySelect']."");
}
if (isset($_POST['regionSelect'])){
$rows_region_url = $wpdb->get_results("select url from region where id=".$_POST['regionSelect']."");
}
if($rows_country_url[0]->url !=''){
$final_url = home_url('/').$rows_country_url[0]->url;}
if($rows_territory_url[0]->url !=''){
$final_url = $final_url.'/'.$rows_territory_url[0]->url;}
if($rows_region_url[0]->url !=''){
$final_url = $final_url.'/'.$rows_region_url[0]->url;}
echo $final_url;
if($final_url!=''){
wp_redirect( home_url() ); exit;
echo "not blank";
}else{ echo "Si prega di selezionare i valori";}
}

Assicurati che non ci siano output di dati o spazi vuoti sopra wp_redirect( $final_url ); exit;
altrimenti questo avviso apparirà sempre.
In alternativa puoi usare
<?php
//Codice PHP
?>
<script type="text/javascript">
document.location.href="http://example.com";
</script>
<?php
//codice php
?>

questo script funziona alla perfezione e ha risolto il mio problema. Non sono sicuro del perché wp_redirect non funzioni dopo aver rimosso le istruzioni echo e gli spazi tra gli argomenti. La mia azione è <?php the_permalink()?> Dovrei chiamare qualche funzione e inserire questo codice al suo interno per utilizzare wp_redirect?

La mia soluzione è.
Crea una funzione per il reindirizzamento JavaScript.
function rm_redirect($url){ $string = ''; $string .= 'window.location = "' . $url . '"'; $string .= ''; echo $string; }
Chiama questa funzione quando vuoi in questo modo.
rm_redirect('<a href="a0">http://example.com</a>');
