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-ppt-btn class-ppt-btn class-ppt-btn class-ppt-b ="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();"中只需要移除"();"