Salvare i dati di un form personalizzato nel database
Sono un principiante di WordPress. Ho creato un form personalizzato in WordPress e ho bisogno di sapere dove inserire il codice PHP WPDB per salvare i dati del mio form.
Ho provato a inserirlo direttamente nella mia pagina ma non ha funzionato.
Tutte le ricerche che ho fatto dicono di non inserirlo nel file functions.php quindi dove devo metterlo?
Ecco il codice che ho inserito nella mia pagina:
Codice del Form
<form id="myForm" name="myform">
<select id="brandSel" size="1">
<option selected="selected" value="">-- Seleziona Marca --</option>
<option>Abba</option>
<option>AG Hair</option>
</select>
<input type="submit" value="Invia" />
</form>
Codice PHP
<?php
global $wpdb;
$inputValue = $_POST['newValue'];
$wpdb->insert(
'catalog',
array(
'brandSel' => $inputValue
),
array( '%s' // se il tipo di campo è una stringa )
);
?>

OK, ecco come dovresti farlo nel modo corretto...
Nel tuo file template inserisci il tuo modulo:
<form id="myForm" name="myform" action="<?php echo esc_attr( admin_url('admin-post.php') ); ?>" method="POST">
<input type="hidden" name="action" value="save_my_custom_form" />
<select id="brandSel" size="1">
<option selected="selected" value="">-- Seleziona Brand --</option>
<option>Abba</option>
<option>AG Hair</option>
</select>
<input type="submit" value="Invia" />
</form>
E nel file functions.php (o nel tuo plugin) dovrai aggiungere admin_post_{action}
:
function my_save_custom_form() {
global $wpdb;
$inputValue = $_POST['newValue'];
$wpdb->insert(
'catalog',
array( 'brandSel' => $inputValue ),
array( '%s' ),
);
wp_redirect( site_url('/') ); // <-- qui va l'indirizzo del sito a cui l'utente dovrebbe essere reindirizzato dopo l'invio del modulo
die;
}
add_action( 'admin_post_nopriv_save_my_custom_form', 'my_save_custom_form' );
add_action( 'admin_post_save_my_custom_form', 'my_save_custom_form' );

Puoi metterlo nel functions.php del tuo tema. Ma se quel form dovrebbe essere processato da un plugin, allora questo codice dovrebbe essere nel tuo plugin...
