WordPress - ページの読み込み時にボタンの onclick 関数を実行します
<p><strong>背景</strong></p>
<p>登録ページを作成しており、ユーザーが [アカウントの作成] ボタンを押したときに関数を実行したいと考えています。次のようなボタンがあります: </p>
<pre class="brush:php;toolbar:false;"><button type="submit" name="wp-submit" onclick="register_process();" data-ppt-btn クラス=「mt-5」>
<?php echo __("アカウントの作成"); ?>
</ボタン></前>
<p>次に、同じ PHP ファイル内に対応する関数があります。</p>
<pre class="brush:php;toolbar:false;">function register_process(){
// チェックボックスでユーザーの種類を確認します
if(!jQuery("#user_type").is(':checked')){
<?php
// ヘッダー
$headers = "MIME バージョン: 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>問題は複数ありますが、1 つ目は、ボタンを押さなくても、ページを読み込むときに関数「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 __("サイトに参加するには、プライバシー ポリシーに同意する必要があります。" ;) ?>");
続行可能 =0;
戻る;
}</pre>
<p>ボタンが押されたときにのみメールを送信するようにするにはどうすればよいですか? </p>