WordPress, Checkbox nella option page

Negli articoli precedenti abbiamo visto un po di personalizzazioni del tema di wordpress ed in particolare come creare una option page per la sua gestione.
Nel caso in cui inseriamo dei campi di tipo checkbox si possono avere dei problemi nel salvataggio se la checkbox non è spuntata.

In tal caso infatti nella function che si occupa del salvataggio cioè dove viene richiamata la funzione

    update_option($option_name, $value);

non basta andare a scandire le variabili passate in post o in get.
Infatti se decidiamo di non spuntare la ceckbox che stiamo considerando, non verrà passato alcun valore nella pagina successiva quindi nella scansione non risulterà alcuna modifica e il campo non verrà salvato.
Dobbiamo aggiungere un nuovo controllo per i campi di tipo checkbox

$options_names = array("campo1", "campo2", "campo3");
foreach($options_names as $option_name){
    $checked = isset($_POST[$option_name]);
    update_option($option_name, $checked);
}

Se update_option non accetta il valore booleano possiamo aggiungere la seguente riga

	$checked = isset($_POST["$option_name"]) ? 1 : 0;
    update_option($option_name, $checked );




About Mauro De Filippis 19051 Articles
Laureato in Ingegneria Informatica nel 2008 presso l'Università degli Studi di Lecce con una tesi in Processi di Produzione Robotizzati dal titolo "Integrazione delle tecniche di progettazione del ciclo di lavorazione con programmazione della produzione”. Le mie attività principali sono : sviluppo di applicativi ANSI C per terminali POS basati su processori ARM Risc 32Bit con 2-4 MB di Ram (progettazione, sviluppo e test delle applicazioni ) sviluppo in ambiente .NET sviluppo Web in ambiente PHP, ASP Installazione, progettazione, utilizzo di Db MS SQL Server, Mysql, Acces , Oracle Da anni mi occupo di CMS Open Source, in particolare di Joomla e Wordpress. Mia è la Guida Wordpress 3.5, la Guida Joomla 2.5 , il Corso online Joomla! 2.5 ed il Corso online Wordpress Mi occupo anche di LMS in particolare di Moodle e Docebo. Google+ by Mauro De Filippis

Be the first to comment

Leave a Reply

L'indirizzo email non sarà pubblicato.


*