Stimmt dieser Code?
Hi, der folgende Code sorgt dafür, das der Nutzer mit einem Formular seine Metadaten updaten kann, jedoch passiert da nichts, woran liegt das? Ich wäre für eure Hilfe sehr dankbar, besonders weil ich seit Tagen an diesem Problem sitze.
Ich nutze Wordpress Elementor Pro.
if ( ! function_exists( 'my_custom_update_metafield_on_form_submission' ) ) {
function my_custom_update_metafield_on_form_submission() {
// Überprüfen Sie hier Ihre Sicherheitsvorkehrungen und Validierungen
// The "field-id" here needs to be the field that has the metafield data
$metafield_value = $_POST['testid'];
// This 'post-id' is the ID of the post where the metafield you want to change is
$post_id = '12779';
// Replace 'metafield-key' with the key of the metafield you want to update
update_post_meta( $post_id, 'field_64a2ef0460f3d', $metafield_value );
// Geben Sie eine Antwort an die AJAX-Anfrage zurück
echo 'Metafeld erfolgreich aktualisiert';
// Beenden Sie die Funktion
wp_die();
}
}
// Für eingeloggte Benutzer
add_action( 'wp_ajax_my_custom_update_metafield', 'my_custom_update_metafield_on_form_submission' );
// Für nicht eingeloggte Benutzer
add_action( 'wp_ajax_nopriv_my_custom_update_metafield', 'my_custom_update_metafield_on_form_submission' );
Ich nutze Elementor Pro, WordPress und ACF
1 Antwort
Es ist schwierig, das Problem genau zu identifizieren, ohne den gesamten Kontext und die Funktionalität deiner WordPress-Elementor-Pro-Umgebung zu kennen. Hier sind jedoch einige mögliche Gründe, warum das Update der Metadaten nicht funktioniert:
- Überprüfe, ob die richtige Funktion im richtigen Kontext aufgerufen wird: Stelle sicher, dass der Code, den du bereitgestellt hast, in der richtigen Datei platziert ist und von Elementor Pro korrekt aufgerufen wird. Überprüfe auch, ob andere Hooks oder Bedingungen möglicherweise den Funktionsaufruf blockieren.
- Überprüfe, ob das Formular korrekt eingerichtet ist: Stelle sicher, dass das Formular ordnungsgemäß konfiguriert ist und die richtigen Feldnamen und Aktionen verwendet werden. Vergewissere dich, dass das Formular die Methode POST verwendet und das Feld mit dem Namen 'testid' vorhanden ist.
- Prüfe, ob Sicherheitsüberprüfungen und Validierungen vorhanden sind: Überprüfe, ob du angemessene Sicherheitsvorkehrungen getroffen hast, um die Daten zu validieren und zu überprüfen, bevor du sie in die Metadaten speicherst. Stelle sicher, dass du die erforderlichen Sicherheitsüberprüfungen wie Nonce-Überprüfungen durchführst, um unbefugten Zugriff oder ungültige Daten zu verhindern.
- Überprüfe die Berechtigungen: Stelle sicher, dass der Benutzer, der das Formular einreicht, die erforderlichen Berechtigungen hat, um die Metadaten zu aktualisieren. Überprüfe, ob du die richtigen Bedingungen für die Aktionen 'wp_ajax_my_custom_update_metafield' und 'wp_ajax_nopriv_my_custom_update_metafield' verwendest.
- Prüfe, ob der Metadaten-Schlüssel korrekt ist: Vergewissere dich, dass du den richtigen Metadaten-Schlüssel ('field_64a2ef0460f3d') verwendest. Stelle sicher, dass dieser Schlüssel mit dem Metafeld übereinstimmt, das du aktualisieren möchtest.
Es könnte auch hilfreich sein, die Fehlerprotokolle und die Netzwerkkonsole deines Browsers zu überprüfen, um eventuelle Fehler oder Warnungen zu identifizieren, die während des Formularabsendevorgangs auftreten könnten.
Wenn das Problem weiterhin besteht, könnte es hilfreich sein, dich an den Support von Elementor Pro oder an das WordPress-Entwicklerforum zu wenden, um eine spezifischere Unterstützung zu erhalten und das Problem genauer zu untersuchen.
LG Leo Kobes
ChatGPT?