PluginProbe
Magic Login – Magic Link & Passwordless Authentication for WordPress – Login Without Password / 2.4
Magic Login – Magic Link & Passwordless Authentication for WordPress – Login Without Password v2.4
2.8.1 2.1 2.1.1 2.1.2 2.1.3 2.2 2.3 2.3.1 2.3.2 2.3.3 2.3.4 2.3.5 2.4 2.4.1 2.4.2 2.5 2.5.1 2.6 2.6.1 2.6.2 2.6.3 2.7 2.7.1 2.8 trunk All 48 releases
magic-login / includes / admin / partials / tabs / sms.php

sms.php in Magic Login – Magic Link & Passwordless Authentication for WordPress – Login Without Password 2.4, at includes/admin/partials/tabs/sms.php

372 lines 15.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Sms settings partial
4 *
5 * @package MagicLogin\Admin
6 */
7
8 use function MagicLogin\Utils\get_doc_url;
9 use function MagicLogin\Utils\mask_string;
10
11
12 if ( ! defined( 'ABSPATH' ) ) {
13 exit; // Exit if accessed directly.
14 }
15
16 // phpcs:disable WordPress.WhiteSpace.PrecisionAlignment.Found
17 // phpcs:disable Generic.WhiteSpace.DisallowSpaceIndent.SpacesUsed
18 // phpcs:disable WordPress.WP.I18n.MissingTranslatorsComment
19
20 ?>
21 <div role="tabpanel" tabindex="0" id="sms__content" class="sui-tab-content magic-login-main-tab-content sui-disabled" aria-labelledby="sms__tab">
22
23 <!-- Twilio Details -->
24 <div class="sui-box-settings-row sui-disabled">
25 <div class="sui-box-settings-col-1">
26 <span class="sui-settings-label" id="twilio_service_label"><?php esc_html_e( 'Twilio Details', 'magic-login' ); ?></span>
27 <span class="sui-description">
28 <?php esc_html_e( 'Twilio is a cloud communications platform that allows you to programmatically send and receive SMS messages.', 'magic-login' ); ?>
29 <?php esc_html_e( 'To use Twilio with Magic Login, you need to provide your Twilio Account SID, Auth Token, and From number.', 'magic-login' ); ?>
30 <?php
31 echo wp_kses_post(
32 sprintf(
33 /* translators: 1: Documentation URL 2: 'Learn More' text */
34 __( '<a href="%1$s" target="_blank" rel="noopener">%2$s</a>', 'magic-login' ),
35 get_doc_url( 'docs/magic-login-twilio-integration/' ),
36 __( 'Learn More.', 'magic-login' )
37 )
38 );
39 ?>
40 </span>
41 </div>
42
43 <div class="sui-box-settings-col-2">
44 <div class="sui-tabs sui-side-tabs">
45 <div class="sui-tabs-content">
46 <div class="sui-tab-content sui-tab-boxed active">
47 <div class="sui-form-field">
48 <label for="twilio_account_sid" id="twilio_account_sid_label" class="sui-label"><?php esc_html_e( 'Account SID', 'magic-login' ); ?></label>
49 <input type="text"
50 name="twilio_account_sid"
51 placeholder="Enter your account SID here"
52 value="<?php echo esc_attr( $settings['sms']['twilio']['account_sid'] ); ?>"
53 id="twilio_account_sid"
54 class="sui-form-control"
55 aria-labelledby="twilio_account_sid_label"
56 >
57 </div>
58
59 <div class="sui-form-field">
60 <label for="twilio_auth_token" id="twilio_auth_token_label" class="sui-label"><?php esc_html_e( 'Auth Token', 'magic-login' ); ?></label>
61 <input type="text"
62 name="twilio_auth_token"
63 placeholder="<?php esc_attr_e( 'Enter your auth token here', 'magic-login' ); ?>"
64 value="<?php echo esc_attr( mask_string( \MagicLogin\Utils\get_decrypted_value( $settings['sms']['twilio']['auth_token'] ), 5 ) ); ?>"
65 id="twilio_auth_token"
66 class="sui-form-control"
67 aria-labelledby="twilio_auth_token_label"
68 >
69 </div>
70
71 <div class="sui-form-field">
72 <label for="twilio_from_number" id="twilio_from_number_label" class="sui-label"><?php esc_html_e( 'From', 'magic-login' ); ?></label>
73 <input type="text"
74 name="twilio_from_number"
75 placeholder="<?php esc_attr_e( 'Enter phone number here', 'magic-login' ); ?>"
76 value="<?php echo esc_attr( $settings['sms']['twilio']['from'] ); ?>"
77 id="twilio_from_number"
78 class="sui-form-control"
79 aria-labelledby="twilio_from_number_label"
80 >
81 </div>
82 </div>
83 </div>
84 </div>
85
86 <button role="button" id="open-magic-login-sms-test-modal" value="run_diognastic" class="sui-button sui-button-ghost sui-button-blue">
87 <?php esc_html_e( 'Send a test SMS', 'magic-login' ); ?>
88 </button>
89
90 </div>
91
92 </div>
93
94 <!-- SMS -->
95 <div class="sui-box-settings-row sui-disabled">
96 <div class="sui-box-settings-col-1">
97 <span class="sui-settings-label"><?php esc_html_e( 'Enable SMS Login', 'magic-login' ); ?></span>
98 <span class="sui-description">
99 <?php
100 echo wp_kses_post(
101 sprintf(
102 /* translators: 1: Documentation URL 2: 'Learn More' text */
103 __( '<a href="%1$s" target="_blank" rel="noopener">%2$s</a>', 'magic-login' ),
104 get_doc_url( 'docs/passwordless-authentication-with-sms/' ),
105 __( 'Learn More', 'magic-login' )
106 )
107 );
108 ?>
109 </span>
110 </div>
111
112 <div class="sui-box-settings-col-2">
113 <div class="sui-form-field">
114 <label for="sms_enable" class="sui-toggle">
115 <input type="checkbox"
116 value="1"
117 name="sms_enable"
118 id="sms_enable"
119 aria-labelledby="sms_enable_label"
120 aria-controls="sms-details"
121 <?php checked( 1, $settings['sms']['enable'] ); ?>
122 >
123 <span class="sui-toggle-slider" aria-hidden="true"></span>
124 <span id="sms_enable_label" class="sui-toggle-label"><?php esc_html_e( 'Allow users to receive Magic Login links via SMS.', 'magic-login' ); ?></span>
125
126 </label>
127 </div>
128 </div>
129 </div>
130
131 <div id="sms-details" style="<?php echo( $settings['sms']['enable'] ? '' : 'display:none' ); ?>" class="sui-box-settings-row sui-disabled">
132 <div class="sui-box-settings-col-1">
133 <span class="sui-settings-label"><?php esc_html_e( 'SMS Sending Strategy', 'magic-login' ); ?></span>
134 <span class="sui-description"><?php esc_html_e( 'Choose how SMS is sent for login requests.', 'magic-login' ); ?></span>
135 </div>
136 <div class="sui-box-settings-col-2">
137 <div class="sui-form-field" role="radiogroup">
138 <label for="sms_phone_only" class="sui-radio sui-radio-stacked">
139 <input
140 type="radio"
141 value="phone_only"
142 name="sms_sending_strategy"
143 id="sms_phone_only"
144 value="phone_only"
145 <?php checked( 'phone_only', $settings['sms']['sms_sending_strategy'] ); ?>
146 >
147 <span aria-hidden="true"></span>
148 <span class="sui-label-inline">
149 <?php esc_html_e( 'Send SMS only when user enters phone number.', 'magic-login' ); ?>
150 </span>
151 </label>
152
153 <label for="sms_and_email" class="sui-radio sui-radio-stacked">
154 <input
155 type="radio"
156 name="sms_sending_strategy"
157 id="sms_and_email"
158 value="sms_and_email"
159
160 <?php checked( 'sms_and_email', $settings['sms']['sms_sending_strategy'] ); ?>
161 >
162 <span aria-hidden="true"></span>
163 <span class="sui-label-inline">
164 <?php esc_html_e( 'If the user has a phone number linked to their account, send both SMS and email.', 'magic-login' ); ?>
165 </span>
166 </label>
167
168 <label for="sms_or_email" class="sui-radio sui-radio-stacked">
169 <input
170 type="radio"
171 name="sms_sending_strategy"
172 id="sms_or_email"
173 value="sms_or_email"
174
175 <?php checked( 'sms_or_email', $settings['sms']['sms_sending_strategy'] ); ?>
176 >
177 <span aria-hidden="true"></span>
178 <span class="sui-label-inline">
179 <?php esc_html_e( 'Send SMS if the user has a linked phone number. If no phone number is found, fallback to email.', 'magic-login' ); ?>
180 </span>
181 </label>
182 </div>
183 </div>
184 </div>
185
186 <div class="sui-box-settings-row sui-disabled">
187 <div class="sui-box-settings-col-1">
188 <span class="sui-settings-label"><?php esc_html_e( 'SMS Message', 'magic-login' ); ?></span>
189 </div>
190
191 <div class="sui-box-settings-col-2">
192 <div class="sui-form-field">
193 <label for="sms_login_message" id="sms_login_message_label" class="sui-label"><?php esc_html_e( 'SMS Message', 'magic-login' ); ?></label>
194 <textarea
195 name="sms_login_message"
196 id="sms_login_message"
197 class="sui-form-control"
198 aria-labelledby="sms_login_message_label"
199 maxlength="300"
200 ><?php echo esc_textarea( $settings['sms']['login_message'] ); ?></textarea>
201 <span class="sui-description">
202 <?php esc_html_e( 'Customize the SMS message that will be sent to the user.', 'magic-login' ); ?>
203 <?php esc_html_e( 'Supported placeholders: {{SITEURL}}, {{USERNAME}}, {{FIRST_NAME}}, {{LAST_NAME}}, {{FULL_NAME}}, {{DISPLAY_NAME}}, {{USER_EMAIL}, {{SITENAME}}, {{EXPIRES}}, {{MAGIC_LINK}}, {{MAGIC_LOGIN_CODE}}, {{EXPIRES_WITH_INTERVAL}}, {{TOKEN_VALIDITY_COUNT}}', 'magic-login' ); ?>
204 </span>
205 </div>
206 </div>
207 </div>
208
209
210 <!-- Registration SMS -->
211 <?php $can_register = get_option( 'users_can_register' ); ?>
212
213 <div class="sui-box-settings-row sui-disabled">
214 <div class="sui-box-settings-col-1">
215 <span class="sui-settings-label"><?php esc_html_e( 'Add Phone Number Field to Registration Forms', 'magic-login' ); ?></span>
216 </div>
217
218 <div class="sui-box-settings-col-2">
219
220 <!-- WordPress Registration Toggle -->
221 <div class="sui-form-field">
222 <label for="sms_wp_registration" class="sui-toggle">
223 <input type="checkbox"
224 value="1"
225 name="sms_wp_registration"
226 id="sms_wp_registration"
227 aria-labelledby="sms_wp_registration_label"
228 aria-controls="wp_registration_phone_field_details"
229 <?php checked( 1, $settings['sms']['wp_registration'] ); ?>
230 <?php echo ! $can_register ? 'disabled' : ''; ?>
231 >
232 <span class="sui-toggle-slider" aria-hidden="true"></span>
233 <span id="sms_wp_registration_label" class="sui-toggle-label">
234 <?php esc_html_e( 'Add a phone number field to WordPress registration.', 'magic-login' ); ?>
235 </span>
236 </label>
237 <p class="sui-description">
238 <?php if ( ! $can_register ) : ?>
239 🛑 <?php esc_html_e( 'WordPress registration is currently disabled. Enable it under **Settings → General → Membership**.', 'magic-login' ); ?>
240 <?php else : ?>
241 <?php esc_html_e( 'This will add a phone number field to the default WordPress registration form.', 'magic-login' ); ?>
242 <?php endif; ?>
243 </p>
244 <!-- Require Phone Field in WP Registration -->
245 <div id="wp_registration_phone_field_details" style="<?php echo ( $settings['sms']['wp_registration'] ? '' : 'display:none' ); ?>">
246 <label for="sms_wp_require_phone" class="sui-toggle">
247 <input type="checkbox"
248 value="1"
249 name="sms_wp_require_phone"
250 id="sms_wp_require_phone"
251 aria-labelledby="sms_wp_require_phone_label"
252 <?php checked( 1, $settings['sms']['wp_require_phone'] ); ?>
253 >
254 <span class="sui-toggle-slider" aria-hidden="true"></span>
255 <span id="sms_wp_require_phone_label" class="sui-toggle-label">
256 <?php esc_html_e( 'Make phone number required for WordPress registration.', 'magic-login' ); ?>
257 </span>
258 </label>
259 </div>
260 </div>
261
262
263
264 <!-- Magic Login Registration Toggle -->
265 <div class="sui-form-field">
266 <label for="sms_magic_registration" class="sui-toggle">
267 <input type="checkbox"
268 value="1"
269 name="sms_magic_registration"
270 id="sms_magic_registration"
271 aria-labelledby="sms_magic_registration_label"
272 aria-controls="magic_registration_phone_field_details"
273 <?php checked( 1, $settings['sms']['magic_registration'] ); ?>
274 <?php echo ! $settings['registration']['enable'] ? 'disabled' : ''; ?>
275 >
276 <span class="sui-toggle-slider" aria-hidden="true"></span>
277 <span id="sms_magic_registration_label" class="sui-toggle-label">
278 <?php esc_html_e( 'Add a phone number field to Magic Login registration.', 'magic-login' ); ?>
279 </span>
280 </label>
281 <p class="sui-description">
282 <?php if ( ! $settings['registration']['enable'] ) : ?>
283 🛑 <?php esc_html_e( 'Magic Login registration is disabled. Enable it in the Registration tab above.', 'magic-login' ); ?>
284 <?php else : ?>
285 <?php esc_html_e( 'This will add a phone number field to the Magic Login registration form.', 'magic-login' ); ?>
286 <?php endif; ?>
287 </p>
288 <!-- Require Phone Field in Magic Login Registration -->
289 <div id="magic_registration_phone_field_details" style="<?php echo ( $settings['sms']['magic_registration'] ? '' : 'display:none' ); ?>">
290 <label for="sms_magic_registration_require_phone" class="sui-toggle">
291 <input type="checkbox"
292 value="1"
293 name="sms_magic_registration_require_phone"
294 id="sms_magic_registration_require_phone"
295 aria-labelledby="sms_magic_registration_require_phone_label"
296 <?php checked( 1, $settings['sms']['magic_registration_require_phone'] ); ?>
297 >
298 <span class="sui-toggle-slider" aria-hidden="true"></span>
299 <span id="sms_magic_registration_require_phone_label" class="sui-toggle-label">
300 <?php esc_html_e( 'Make phone number required for Magic Login registration.', 'magic-login' ); ?>
301 </span>
302 </label>
303 </div>
304 </div>
305
306
307
308 </div>
309 </div>
310
311
312
313 <!-- Registration SMS -->
314 <div class="sui-box-settings-row sui-disabled">
315 <div class="sui-box-settings-col-1">
316 <span class="sui-settings-label"><?php esc_html_e( 'Send SMS After Registration', 'magic-login' ); ?></span>
317 </div>
318
319 <div class="sui-box-settings-col-2">
320 <div class="sui-form-field">
321 <label for="sms_send_registration_message" class="sui-toggle">
322 <input type="checkbox"
323 value="1"
324 name="sms_send_registration_message"
325 id="sms_send_registration_message"
326 aria-labelledby="sms_send_registration_message_label"
327 aria-controls="registration-sms-details"
328 <?php checked( 1, $settings['sms']['send_registration_message'] ); ?>
329 >
330 <span class="sui-toggle-slider" aria-hidden="true"></span>
331 <span id="sms_send_registration_message_enable" class="sui-toggle-label">
332 <?php esc_html_e( 'Automatically send an SMS message when a new user registers with a phone number.', 'magic-login' ); ?>
333 </span>
334 </label>
335 </div>
336 </div>
337 </div>
338
339 <div id="registration-sms-details" style="<?php echo( $settings['sms']['send_registration_message'] ? '' : 'display:none' ); ?>" class="sui-box-settings-row sui-disabled">
340 <div class="sui-box-settings-col-1">
341 <span class="sui-settings-label"><?php esc_html_e( 'Registration SMS', 'magic-login' ); ?></span>
342 </div>
343
344 <div class="sui-box-settings-col-2">
345 <div class="sui-form-field">
346 <label for="sms_registration_message" id="sms_registration_message_label" class="sui-label"><?php esc_html_e( 'SMS Message', 'magic-login' ); ?></label>
347 <textarea
348 cols="50"
349 name="sms_registration_message"
350 id="sms_registration_message"
351 class="sui-form-control"
352 aria-labelledby="sms_registration_message_label"
353 ><?php echo esc_textarea( $settings['sms']['registration_message'] ); ?></textarea>
354 <span class="sui-description">
355 <?php esc_html_e( 'Customize the SMS message sent to new users after registration.', 'magic-login' ); ?>
356 <?php esc_html_e( 'Supported placeholders: {{SITEURL}}, {{USERNAME}}, {{FIRST_NAME}}, {{LAST_NAME}}, {{FULL_NAME}}, {{DISPLAY_NAME}}, {{USER_EMAIL}, {{SITENAME}}, {{EXPIRES}}, {{MAGIC_LINK}}, {{MAGIC_LOGIN_CODE}}, {{EXPIRES_WITH_INTERVAL}}, {{TOKEN_VALIDITY_COUNT}}', 'magic-login' ); ?>
357 </span>
358 </div>
359 </div>
360 </div>
361
362 <!-- Upsell ads -->
363 <div class="sui-box-settings-row sui-upsell-row">
364 <div class="sui-upsell-notice" style="padding-left: 0;">
365 <p><?php esc_html_e( 'Upgrade to the Pro version to enable SMS authentication and gain access to all premium features—plus dedicated support to keep your login experience smooth and secure.' ); ?><br>
366 <a href="https://handyplugins.co/magic-login-pro/?utm_source=wp_admin&utm_medium=plugin&utm_campaign=settings_page_sms" rel="noopener noreferrer nofollow" target="_blank" class="sui-button sui-button-purple" style="margin-top: 10px;color:#fff;"><?php esc_html_e( 'Try Magic Login Pro Today', 'magic-login' ); ?></a>
367 </p>
368 </div>
369 </div>
370
371 </div>
372