WordPress - 执行按钮上的onclick函数,当页面加载时
P粉575055974
2023-08-30 00:33:02
<p><strong>背景</strong></p>
<p>我正在创建一个注册页面,并希望在用户按下“创建账户”按钮时运行一个函数。我有一个如下的按钮:</p>
<pre class="brush:php;toolbar:false;"><button type="submit" name="wp-submit" onclick="register_process();" data-ppt-btn class="mt-5">
<?php echo __("创建账户"); ?>
</button></pre>
<p>然后我在同一个PHP文件中有相应的函数:</p>
<pre class="brush:php;toolbar:false;">function register_process(){
// 检查复选框中的用户类型
if(!jQuery("#user_type").is(':checked')){
<?php
// 标头
$headers = "MIME-Version: 1.0" . "\r\n";
$headers = "Content-type:text/html;charset=UTF-8" . "\r\n";
// 获取用户电子邮件
$user_registration_email = "test987"; //$_POST['user_email'];
// 邮件的收件人、主题和正文
$admin_email_address = get_option('admin_email');
$email_subject = "测试标题";
$email_body = "电子邮件:{$user_registration_email}";
// 发送邮件
wp_mail( $admin_email_address, $email_subject, $email_body, $headers);
?>
}
}</pre>
<p><strong>问题</strong></p>
<p>有多个问题,但首先是函数“register_process”在我加载页面时就运行了,甚至没有按下按钮。我在一些地方读到应该从onclick属性中删除(),这解决了这个问题。然而,按下按钮后什么也不会发生。</p>
<p>我还尝试检查用户电子邮件字段是否为空,只有在为空时才发送电子邮件。然而,这样我根本收不到任何邮件。</p>
<p>奇怪的是,我的函数中还有其他的一些东西,比如检查输入字段是否为空。这些错误/警告只有在按下按钮时才会触发,它们看起来像这样:</p>
<pre class="brush:php;toolbar:false;">if(!jQuery("#privacypolicy").is(':checked')){
jQuery("#ppt-form-error").addClass('text-danger mb-4').html("<?php echo __("您必须接受我们的隐私政策才能加入我们的网站。") ?>");
CanContinue =0;
return;
}</pre>
<p>如何使函数只在按下按钮时发送邮件?</p>
在onclick="register_process();"中只需要移除"();"