WordPress - Exécuter la fonction onclick sur le bouton lors du chargement de la page
P粉575055974
2023-08-30 00:33:02
<p><strong>Arrière-plan</strong></p>
<p>Je crée une page d'inscription et je souhaite exécuter une fonction lorsque l'utilisateur appuie sur le bouton "Créer un compte". J'ai un bouton comme ceci : </p>
<pre class="brush:php;toolbar:false;"><button type="submit" name="wp-submit" onclick="register_process();" data-ppt-btn class ="mt-5">
<?php echo __("Créer un compte" ?>
</bouton></pre>
<p>Ensuite j'ai la fonction correspondante dans le même fichier PHP : </p>
<pre class="brush:php;toolbar:false;">function register_process(){
// Vérifiez le type d'utilisateur dans la case à cocher
if(!jQuery("#user_type").is(':checked')){
<?php
// Entête
$headers = "Version MIME : 1.0" .
$headers = "Content-type:text/html;charset=UTF-8" .
// Récupère l'e-mail de l'utilisateur
$user_registration_email = "test987" //$_POST['user_email'];
// Destinataires, objet et corps de l'email
$admin_email_address = get_option('admin_email');
$email_subject = "Sujet du test";
$email_body = "E-mail : {$user_registration_email}" ;
// envoyer un email
wp_mail( $admin_email_address, $email_subject, $email_body, $headers);
?>
}
}</pré>
<p><strong>Question</strong></p>
<p>Il y a plusieurs problèmes, mais le premier est que la fonction "register_process" est en cours d'exécution lorsque je charge la page, sans même appuyer sur le bouton. J'ai lu quelque part que le () devait être supprimé de l'attribut onclick et cela a résolu le problème. Cependant, rien ne se passe lorsque vous appuyez sur le bouton. </p>
<p>J'ai également essayé de vérifier si le champ de courrier électronique de l'utilisateur est vide et d'envoyer l'e-mail uniquement s'il est vide. Cependant, de cette façon, je ne reçois aucun e-mail. </p>
<p>Curieusement, j'ai quelques autres choses dans ma fonction, comme vérifier si le champ de saisie est vide. Ces erreurs/avertissements ne se déclenchent que lorsque le bouton est enfoncé et ressemblent à ceci : </p>
<pre class="brush:php;toolbar:false;">if(!jQuery("#privacypolicy").is(':checked')){
jQuery("#ppt-form-error").addClass('text-danger mb-4').html("<?php echo __("Vous devez accepter notre politique de confidentialité pour rejoindre notre site ." ;) ?> );
PeutContinuer =0 ;
retour;
}</pré>
<p>Comment puis-je faire en sorte que la fonction envoie l'e-mail uniquement lorsque le bouton est enfoncé ? </p>
Onclick="register_process();" il suffit de supprimer "();"