Hallo zusammen,
ich hoffe ihr könnt mir helfe, da ich langsam verzweifel.
In einem Theme existiert eine Funktion zum Versenden von Formulardaten via E-Mail. Innerhalb dieser Funktion existiert ein Hook, um die Daten nicht via E-Mail zu versenden, sondern sie andersweitig auszuwerten:
PHP
//hook to stop execution here and do something different with the data
$proceed = apply_filters('avf_form_send', true, $new_post, $this->form_params);
if(!$proceed) return true;
Ich möchte nun die Formulardaten innerhalb der functions.php durch einen add_filter-Hook modifizieren, um die Daten aus dem Formular aus $new_post in eine Datenbank zu schreiben, anstatt eine E-Mail zu versenden.
Dazu habe ich folgenden Code:
PHP
add_filter('avf_form_send', 'avia_process_form_data', 10, 3);
function avia_process_form_data($send, $new_post, $form_params)
{
$table_name = $wpdb->prefix . "nutzerdaten";
foreach ($new_post as $current_key => $current_post)
{
//loop through all contact form fields. $current_key contains the field name, $current_post the corresponding value.
$wpdb->insert(
$table_name,
array(
'name' => 'TEST',
'vorname' => 'Test',
'strasse' => 'Test',
'hnr' => 'Test',
'plz' => 12345,
'ort' => 'Test',
'email' => 'Test'
),
array(
'%s',
'%s',
'%s',
'%s',
'%d',
'%s',
'%s'
)
);
}
return true;
}
Alles anzeigen
Der Tabellenname in der mysql Datenbank ist wp_nutzerdaten. Irgendwo scheint jedoch ein Fehler zu sein. Es wäre super, wenn mir von euch jemand helfen könnte.
DANKE.
Viele Grüße.