WordPress – Onclick-Funktion auf der Schaltfläche ausführen, wenn die Seite geladen wird
<p><strong>Hintergrund</strong></p>
<p>Ich erstelle eine Registrierungsseite und möchte eine Funktion ausführen, wenn der Benutzer auf die Schaltfläche „Konto erstellen“ klickt. Ich habe eine Schaltfläche wie diese: </p>
<pre class="brush:php;toolbar:false;"><button type="submit" name="wp-submit" onclick="register_process();" ="mt-5">
<?php echo __("Konto erstellen");
</button></pre>
<p>Dann habe ich die entsprechende Funktion in derselben PHP-Datei: </p>
<pre class="brush:php;toolbar:false;">function register_process(){
// Überprüfen Sie den Benutzertyp im Kontrollkästchen
if(!jQuery("#user_type").is(':checked')){
<?php
// Header
$headers = "MIME-Version: "rn"
$headers = "Content-type:text/html;charset=UTF-8";
// Benutzer-E-Mail abrufen
$user_registration_email = "test987" //$_POST['user_email'];
// Empfänger, Betreff und Text der E-Mail
$admin_email_address = get_option('admin_email');
$email_subject = "Testsubjekt";
$email_body = "E-Mail: {$user_registration_email}";
// E-Mail senden
wp_mail( $admin_email_address, $email_subject, $email_body, $headers);
?>
}
}</pre>
<p><strong>Frage</strong></p>
<p>Es gibt mehrere Probleme, aber das erste ist, dass die Funktion „register_process“ ausgeführt wird, wenn ich die Seite lade, ohne überhaupt die Schaltfläche zu drücken. Ich habe irgendwo gelesen, dass () aus dem onclick-Attribut entfernt werden sollte, und das hat das Problem gelöst. Beim Drücken der Taste passiert jedoch nichts. </p>
<p>Ich habe auch versucht zu prüfen, ob das Benutzer-E-Mail-Feld leer ist, und die E-Mail nur zu senden, wenn es leer ist. Allerdings erhalte ich auf diese Weise überhaupt keine E-Mails. </p>
<p>Seltsamerweise habe ich noch ein paar andere Dinge in meiner Funktion, wie zum Beispiel die Überprüfung, ob das Eingabefeld leer ist. Diese Fehler/Warnungen werden nur ausgelöst, wenn die Taste gedrückt wird, und sie sehen folgendermaßen aus: </p>
<pre class="brush:php;toolbar:false;">if(!jQuery("#privacypolicy").is(':checked')){
jQuery("#ppt-form-error").addClass('text-danger mb-4').html("<?php echo __("Sie müssen unsere Datenschutzrichtlinie akzeptieren, um unserer Website beizutreten." ;) ?>");
CanContinue =0;
zurückkehren;
}</pre>
<p>Wie kann ich festlegen, dass die Funktion die E-Mail nur sendet, wenn die Schaltfläche gedrückt wird? </p>