feat: 手动实现表单邮箱验证码功能
This commit is contained in:
@@ -63,6 +63,10 @@ function itstudio_join_get_default_settings() {
|
||||
'photo_public_notice' => 0,
|
||||
'photo_inactive' => 0,
|
||||
'signup_form_shortcode' => '',
|
||||
'otp_enabled' => 0,
|
||||
'otp_form_id' => '',
|
||||
'otp_email_field_id' => '',
|
||||
'otp_code_field_id' => '',
|
||||
);
|
||||
}
|
||||
|
||||
@@ -179,6 +183,10 @@ function itstudio_join_sanitize_settings($input) {
|
||||
'result_second_interview_records' => itstudio_join_sanitize_records_value($input['result_second_interview_records'] ?? ''),
|
||||
'result_admission_records' => itstudio_join_sanitize_records_value($input['result_admission_records'] ?? ''),
|
||||
'signup_form_shortcode' => itstudio_join_sanitize_shortcode_value($input['signup_form_shortcode'] ?? ''),
|
||||
'otp_enabled' => !empty($input['otp_enabled']) ? 1 : 0,
|
||||
'otp_form_id' => absint($input['otp_form_id'] ?? 0),
|
||||
'otp_email_field_id' => absint($input['otp_email_field_id'] ?? 0),
|
||||
'otp_code_field_id' => absint($input['otp_code_field_id'] ?? 0),
|
||||
);
|
||||
|
||||
foreach (itstudio_join_get_photo_field_map() as $field_key) {
|
||||
@@ -2385,6 +2393,23 @@ function itstudio_join_render_settings_page() {
|
||||
<p class="description">示例:<code>[formidable id="12"]</code></p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">邮箱 OTP 验证</th>
|
||||
<td>
|
||||
<label for="itstudio_join_otp_enabled">
|
||||
<input type="checkbox" id="itstudio_join_otp_enabled" name="itstudio_join_settings[otp_enabled]" value="1" <?php checked(!empty($settings['otp_enabled'])); ?>>
|
||||
在报名表单提交前启用邮箱验证码
|
||||
</label>
|
||||
<p class="description">启用后,前台会在指定验证码字段旁自动显示“发送验证码”按钮,不需要手动添加 HTML 按钮。</p>
|
||||
<p style="margin:10px 0 4px;"><label for="itstudio_join_otp_form_id">Formidable 表单 ID</label></p>
|
||||
<input type="number" min="1" step="1" id="itstudio_join_otp_form_id" name="itstudio_join_settings[otp_form_id]" value="<?php echo esc_attr((string) ($settings['otp_form_id'] ?? '')); ?>" class="small-text">
|
||||
<p style="margin:10px 0 4px;"><label for="itstudio_join_otp_email_field_id">邮箱字段 ID</label></p>
|
||||
<input type="number" min="1" step="1" id="itstudio_join_otp_email_field_id" name="itstudio_join_settings[otp_email_field_id]" value="<?php echo esc_attr((string) ($settings['otp_email_field_id'] ?? '')); ?>" class="small-text">
|
||||
<p style="margin:10px 0 4px;"><label for="itstudio_join_otp_code_field_id">验证码字段 ID</label></p>
|
||||
<input type="number" min="1" step="1" id="itstudio_join_otp_code_field_id" name="itstudio_join_settings[otp_code_field_id]" value="<?php echo esc_attr((string) ($settings['otp_code_field_id'] ?? '')); ?>" class="small-text">
|
||||
<p class="description">验证码字段建议使用 Short Text,设置为仅允许数字、最大长度 6。邮箱字段必须是 Email 类型。验证码有效期 10 分钟,同一邮箱 60 秒内不能重复发送,最多尝试 5 次。</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<?php submit_button('保存设置'); ?>
|
||||
</form>
|
||||
|
||||
Reference in New Issue
Block a user