Sto installando $ _SESSION [ 'showroom'] a 'attivo' quando viene visualizzata una pagina particolare in Wordpress:cambiamenti di sessione PHP inaspettatamente in if e ignora comando echo
if(get_the_ID()==6470||get_the_ID()==252){
$_SESSION['showroom']='active';
}
Ho quindi impostare 2 array di pagine da controllare. Se la pagina successiva visualizzata NON è in uno di questi array, $ _SESSION ['showroom'] viene modificato in 'inattivo'.
$allowed_templates = array('template-A.php',
'template-B.php',
'template-C.php',
'template-E.php',
'template-G.php');
$allowed_ids = array(6470,252);
$template_name = get_page_template_slug();
$page_id = get_the_ID();
if(in_array($template_name,$allowed_templates)==false && in_array($page_id,$allowed_ids)==false){
$_SESSION['showroom']='inactive';
}
L'istruzione if funziona la maggior parte del tempo, ma a volte i miei $ _SESSION [ 'showroom'] modifiche inattivo, anche se uno degli array sta tornando vero! Dopo diverse ore di test non sono in grado di localizzare il problema. Riprendendo le due parti del if mi dà sempre 2 Trues o 1 + 1 vero falso, ma mai 2 falses:
if(in_array($template_name,$allowed_templates)==false){echo 'TFALSE';}
if(in_array($template_name,$allowed_templates)){echo 'TTRUE';}
if(in_array($page_id,$allowed_ids)==false){echo 'IFALSE';}
if(in_array($page_id,$allowed_ids)){echo 'ITRUE';}
Che cosa mi manca qui?
Grazie in anticipo per qualsiasi aiuto!
EDIT: hanno continuato i test ed è risultata la seguente anomalia:
if(in_array($template_name,$allowed_templates)==false && in_array($page_id,$allowed_ids)==false){
$_SESSION['showroom']='inactive';
echo 'SET TO INACTIVE';
}
L'istruzione if cambia $ _SESSION [ 'showroom'] a 'inattivo', ma NON eco out 'impostato su Inattivo'!
C'è qualcosa di strano qui!
'if (in_array ($ template_name, $ allowed_templates) && in_array ($ page_id, $ allowed_ids)) { $ _SESSION ['showroom'] = 'inattivo'; } 'o' if (in_array ($ template_name, $ allowed_templates) === false && in_array ($ page_id, $ allowed_ids) === false) { $ _SESSION ['showroom'] = 'inattivo'; } ' –
Cosa vedi se metti tutte le istruzioni' if..echo' all'interno di 'if' che imposta la variabile di sessione? – Barmar