Ich habe versucht, Postdaten des Kontaktformulars 7 zu erhalten, um die Formularübermittlung zu debuggen, damit ich sie für ein Plugin verwenden kann, an dem ich arbeiten möchte. Wenn ich jedoch var_dump oder print_r verwende, kann ich die Daten nirgendwo abrufen.
Ich habe damit angefangen.
add_action( 'wpcf7_before_send_mail', 'my_process_cf7_form_data' );
function my_process_cf7_form_data() {
$submission = WPCF7_Submission::get_instance();
if ( $submission ) {
$posted_data = $submission->get_posted_data();
}
var_dump($posted_data);
}
Aber ich bekomme keine Ausgabe.
Sie können diese Daten nicht einfach auf dem Bildschirm ausgeben, da sie Teil einer Ajax-Funktion sind. Sie können es jedoch in das Fehlerprotokoll ausgeben und es in Bash anhängen oder die Ausgabe des Protokolls mit FTP anzeigen.
Wenn Sie stattdessen Folgendes tun:
add_action( 'wpcf7_before_send_mail', 'my_process_cf7_form_data' );
function my_process_cf7_form_data() {
$submission = WPCF7_Submission::get_instance();
if ( $submission ) {
$posted_data = $submission->get_posted_data();
}
ob_start();
var_dump($posted_data);
error_log(ob_get_clean());
}
Zeigen Sie dann entweder Ihr php_error_log für diese Domain an oder wenn Sie wp-debug aktiviert haben und die Fehlerprotokollierung in einer Datei (in Ihrer wp-config.php) speichern.
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
dann kannst du das debug.log im Ordner wp-content ansehen.
Ich habe das Debuggen geschafft, indem ich den Inhalt der E-Mail geändert und an mich selbst gesendet habe, wie hier beschrieben: Wie ändere ich Daten vor dem Senden in Kontaktformular 7?
add_action('wpcf7_before_send_mail', 'w2p_on_submit', 10, 3);
function w2p_on_submit( $form, &$abort, $submission )
{
$debug="1";
$mail = $form->prop( 'mail' );
$new_mail = str_replace( '[your-name]', $debug, $mail );
$form->set_properties( array( 'mail' => $new_mail ) );
return $form;
}
(Ich konnte das Protokoll nicht zum Laufen bringen.)
9629000cookie-checkVersuch, Kontaktformular 7-Postdaten zum Debuggen auf den Bildschirm zu bekommenyes