search

Home  >  Q&A  >  body text

WordPress - Execute onclick function on button when page loads

<p><strong>Background</strong></p> <p>I'm creating a registration page and want to run a function when the user presses the "Create Account" button. I have a button like this: </p> <pre class="brush:php;toolbar:false;"><button type="submit" name="wp-submit" onclick="register_process();" data-ppt-btn class ="mt-5"> <?php echo __("Create account"); ?> </button></pre> <p>Then I have the corresponding function in the same PHP file: </p> <pre class="brush:php;toolbar:false;">function register_process(){ // Check the user type in the checkbox if(!jQuery("#user_type").is(':checked')){ <?php // Header $headers = "MIME-Version: 1.0" . "\r\n"; $headers = "Content-type:text/html;charset=UTF-8" . "\r\n"; // Get user email $user_registration_email = "test987"; //$_POST['user_email']; // Recipients, subject and body of the email $admin_email_address = get_option('admin_email'); $email_subject = "Test subject"; $email_body = "Email: {$user_registration_email}"; // send email wp_mail( $admin_email_address, $email_subject, $email_body, $headers); ?> } }</pre> <p><strong>Question</strong></p> <p>There are multiple issues, but the first is that the function "register_process" is running when I load the page, without even pressing the button. I read somewhere that the () should be removed from the onclick attribute and this solved the problem. However, nothing happens when the button is pressed. </p> <p>I also tried checking if the user email field is empty and only sending the email if it is empty. However, this way I don't receive any emails at all. </p> <p>Oddly enough, I have a few other things in my function, like checking if the input field is empty. These errors/warnings only fire when the button is pressed, and they look like this: </p> <pre class="brush:php;toolbar:false;">if(!jQuery("#privacypolicy").is(':checked')){ jQuery("#ppt-form-error").addClass('text-danger mb-4').html("<?php echo __("You must accept our Privacy Policy to join our site .") ?>"); CanContinue =0; return; }</pre> <p>How can I make the function only send the email when the button is pressed? </p>
P粉575055974P粉575055974486 days ago654

reply all(1)I'll reply

  • P粉212114661

    P粉2121146612023-08-30 09:29:02

    Onclick="register_process();" only needs to remove "();"

    reply
    0
  • Cancelreply