PluginProbe ʕ •ᴥ•ʔ
Firebase Authentication / 1.5.3
Firebase Authentication v1.5.3
trunk 1.0.0 1.1.1 1.1.2 1.1.3 1.1.4 1.2.0 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.8 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9
firebase-authentication / firebase-authentication.php
firebase-authentication Last commit date
admin 4 years ago includes 4 years ago languages 4 years ago public 4 years ago views 4 years ago README.txt 4 years ago class-contact-us.php 4 years ago class-mo-firebase-config.php 4 years ago firebase-authentication.php 4 years ago index.php 4 years ago uninstall.php 4 years ago
firebase-authentication.php
517 lines
1 <?php
2
3
4 /**
5 *
6 * @link https://miniorange.com
7 * @since 1.0.0
8 * @package Firebase_Authentication
9 *
10 * @wordpress-plugin
11 * Plugin Name: Firebase Authentication
12 * Plugin URI: firebase-authentication
13 * Description: This plugin allows login into Wordpress using Firebase as Identity provider.
14 * Version: 1.5.3
15 * Author: miniOrange
16 * Author URI: https://miniorange.com
17 * License: MIT/Expat
18 */
19
20
21 // If this file is called directly, abort.
22 if ( ! defined( 'WPINC' ) ) {
23 die;
24 }
25
26 /**
27 * Currently plugin version.
28 * Start at version 1.0.0 and use SemVer - https://semver.org
29 * Rename this for your plugin and update it as you release new versions.
30 */
31 define( 'MO_FIREBASE_AUTHENTICATION_VERSION', '1.5.3' );
32
33 /**
34 * The code that runs during plugin activation.
35 * This action is documented in includes/class-firebase-authentication-activator.php
36 */
37 function mo_firebase_activate_firebase_authentication() {
38 require_once plugin_dir_path( __FILE__ ) . 'includes/class-firebase-authentication-activator.php';
39 MO_Firebase_Authentication_Activator::activate();
40 }
41
42 /**
43 * The code that runs during plugin deactivation.
44 * This action is documented in includes/class-firebase-authentication-deactivator.php
45 */
46 function mo_firebase_deactivate_firebase_authentication() {
47 require_once plugin_dir_path( __FILE__ ) . 'includes/class-firebase-authentication-deactivator.php';
48 MO_Firebase_Authentication_Deactivator::deactivate();
49 }
50
51 register_activation_hook( __FILE__, 'mo_firebase_activate_firebase_authentication' );
52 register_deactivation_hook( __FILE__, 'mo_firebase_deactivate_firebase_authentication' );
53
54 /**
55 * The core plugin class that is used to define internationalization,
56 * admin-specific hooks, and public-facing site hooks.
57 */
58 require plugin_dir_path( __FILE__ ) . 'includes/class-firebase-authentication.php';
59 require_once 'class-mo-firebase-config.php';
60 require('views/feedback_form.php');
61 require('class-contact-us.php');
62 require('admin/class-firebase-authentication-customer.php');
63
64
65 /**
66 * Begins execution of the plugin.
67 *
68 * Since everything within the plugin is registered via hooks,
69 * then kicking off the plugin from this point in the file does
70 * not affect the page life cycle.
71 *
72 * @since 1.0.0
73 */
74 function mo_firebase_run_firebase_authentication() {
75
76 $plugin = new MO_Firebase_Authentication();
77 $plugin->run();
78
79 }
80 mo_firebase_run_firebase_authentication();
81
82 function mo_firebase_authentication_is_customer_registered() {
83 $email = get_option('mo_firebase_authentication_admin_email');
84 // $phone = get_option('mo_firebase_authentication_admin_phone');
85 $customerKey = get_option('mo_firebase_authentication_admin_customer_key');
86 // if( ! $email || ! $phone || ! $customerKey || ! is_numeric( trim( $customerKey ) ) ) {
87 if( ! $email || ! $customerKey || ! is_numeric( trim( $customerKey ) ) ) {
88
89 return 0;
90 } else {
91 return 1;
92 }
93 }
94 function mo_firebase_authentication_is_clv() {
95 $licenseKey = get_option('mo_firebase_authentication_lk');
96 $isverified = get_option('mo_firebase_authentication_lv');
97 if($isverified)
98 $isverified = mo_firebase_authentication_decrypt($isverified);
99
100 if(!empty($licenseKey) && $isverified=="true") {
101 return 1;
102 }
103 return 0;
104 }
105
106 function mo_firebase_authentication_encrypt($str){
107 $pass = get_option("mo_firebase_authentication_customer_token");
108 $pass = str_split(str_pad('', strlen($str), $pass, STR_PAD_RIGHT));
109 $stra = str_split($str);
110 foreach($stra as $k=>$v){
111 $tmp = ord($v)+ord($pass[$k]);
112 $stra[$k] = chr( $tmp > 255 ?($tmp-256):$tmp);
113 }
114 return base64_encode(join('', $stra));
115 }
116
117 function mo_firebase_authentication_decrypt($str){
118 $str = base64_decode($str);
119 $pass = get_option("mo_firebase_authentication_customer_token");
120 $pass = str_split(str_pad('', strlen($str), $pass, STR_PAD_RIGHT));
121 $stra = str_split($str);
122 foreach($stra as $k=>$v){
123 $tmp = ord($v)-ord($pass[$k]);
124 $stra[$k] = chr( $tmp < 0 ?($tmp+256):$tmp);
125 }
126 return join('', $stra);
127 }
128
129
130 class mo_firebase_authentication_login {
131 function __construct() {
132 add_action( 'init', array( $this, 'postResgiter' ) );
133 add_action( 'admin_init', array( $this, 'mo_firebase_auth_deactivate' ) );
134 if ( get_option( 'mo_enable_firebase_auth' ) == 1 ) {
135 if ( strpos( $_SERVER['REQUEST_URI'], '/wp-json' ) === false ) {
136 remove_filter( 'authenticate', 'wp_authenticate_username_password', 20, 3 );
137 remove_filter( 'authenticate', 'wp_authenticate_email_password', 20, 3 );
138 add_filter( 'authenticate', array( $this, 'mo_firebase_auth' ), 0, 3 );
139 }
140 }
141 remove_action( 'admin_notices', array( $this, 'mo_firebase_auth_success_message') );
142 remove_action( 'admin_notices', array( $this, 'mo_firebase_auth_error_message') );
143 add_action( 'admin_footer', array( $this, 'mo_firebase_auth_feedback_request' ) );
144 update_option( 'host_name', 'https://login.xecurify.com' );
145 }
146
147 function postResgiter() {
148 if ( isset( $_POST['verify_user'] ) && isset( $_REQUEST['page'] ) && sanitize_text_field( wp_unslash( $_REQUEST['page'] ) ) == 'mo_firebase_authentication' && wp_verify_nonce( sanitize_text_field( wp_unslash( $_REQUEST['mo_firebase_auth_config_field'] ) ), 'mo_firebase_auth_config_form' ) ) {
149
150 if( current_user_can( 'administrator' ) ) {
151 update_option( 'mo_firebase_auth_disable_wordpress_login', isset( $_POST['disable_wordpress_login'] ) ? (int)filter_var( $_POST['disable_wordpress_login'], FILTER_SANITIZE_NUMBER_INT ) : 0 );
152
153 update_option('mo_firebase_auth_enable_admin_wp_login', isset($_POST['mo_firebase_auth_enable_admin_wp_login']) ? $_POST['mo_firebase_auth_enable_admin_wp_login'] : 0);
154
155 $project_id = isset( $_POST['projectid'] ) ? sanitize_text_field( $_POST['projectid'] ) : '';
156 update_option( 'mo_firebase_auth_project_id', $project_id );
157
158 $api_key = isset( $_POST['apikey'] ) ? sanitize_text_field( $_POST['apikey'] ) : '';
159 update_option( 'mo_firebase_auth_api_key', $api_key );
160
161 $this->mo_firebase_auth_store_certificates();
162 update_option( 'mo_firebase_auth_message', 'Configurations saved successfully. Please <a href="' . admin_url( 'admin.php?page=mo_firebase_authentication&tab=config#test_authentication' ) .'">Test Authentication</a> before trying to Login.');
163 $this->mo_firebase_auth_show_success_message();
164 }
165 }
166 }
167
168 function mo_firebase_auth_store_certificates(){
169 $response = wp_remote_get( 'https://www.googleapis.com/robot/v1/metadata/x509/securetoken@system.gserviceaccount.com' );
170 if ( is_array( $response ) ) {
171 $header = $response['headers']; // array of http header lines
172 $body = $response['body']; // use the content
173
174 $split_result = explode( ":", $body );
175 $count = count( $split_result );
176 $kid1 = substr( $split_result[0], 5, 40 );
177 $s = explode( ",", $split_result[1] );
178 $c1 = substr( $s[0], 2, 1158 );
179 $c1 = str_replace( '\n', '', $c1 );
180 update_option( 'mo_firebase_auth_kid1', $kid1 );
181 update_option( 'mo_firebase_auth_cert1', $c1 );
182 if( $count == 3 ) {
183 $kid2 = substr( $s[1], 4, 40 );
184 $c2 = explode( "}", $split_result[2] );
185 $c2[0] = substr( $c2[0], 2, 1158 );
186 $c2[0] = str_replace( '\n', '', $c2[0] );
187 update_option( 'mo_firebase_auth_kid2', $kid2 );
188 update_option( 'mo_firebase_auth_cert2', $c2[0] );
189 } else if ( $count > 3) {
190 $kid2 = substr( $s[1], 4, 40 );
191 $s2 = explode( ",", $split_result[2] );
192 $c2 = substr( $s2[0], 2, 1158 );
193 $kid3 = substr( $s2[1], 4, 40 );
194 $c3 = explode( "}", $split_result[3] );
195 $c3[0] = substr( $c3[0], 2, 1158 );
196 $c2 = str_replace( '\n', '', $c2 );
197 update_option( 'mo_firebase_auth_kid2', $kid2 );
198 update_option( 'mo_firebase_auth_cert2', $c2 );
199 $c3[0] = str_replace( '\n', '', $c3[0] );
200 update_option( 'mo_firebase_auth_kid3', $kid3 );
201 update_option( 'mo_firebase_auth_cert3', $c3[0] );
202 }
203 } else {
204 if ( is_wp_error( $response ) ) {
205 $error_message = $response->get_error_message();
206 echo "Something went wrong: $error_message";
207 exit();
208 }
209 }
210 }
211
212 function mo_fb_clear_wp_login_errors($errors, $redirect_to){
213 return new WP_Error();
214 }
215
216
217 function mo_firebase_auth( $user, $username, $password ) {
218
219 if( "POST" !== sanitize_text_field( wp_unslash( $_SERVER['REQUEST_METHOD'] ) ) ) {
220 add_filter( 'wp_login_errors', array( $this, 'mo_fb_clear_wp_login_errors' ), 0, 2 );
221 return $user;
222 }
223
224 if ( empty( $username ) || empty ( $password ) ) {
225
226 $error = new WP_Error();
227 //create new error object and add errors to it.
228
229 if ( empty( $username ) ) { //No email
230 $error->add( 'empty_username', __( '<strong>ERROR</strong>: Email field is empty.' ) );
231 }
232
233 else if ( empty( $password ) ) { //No password
234 $error->add( 'empty_password', __( '<strong>ERROR</strong>: Password field is empty.' ) );
235 }
236 return $error;
237 }
238
239 $mo_firebase_config_obj = new Mo_Firebase_Config();
240 $fb_user = $mo_firebase_config_obj->mo_firebase_authenticate_call($username, $password);
241 $fb_user = json_decode($fb_user, true);
242
243 if(isset($fb_user['idToken'])){
244 $response = $mo_firebase_config_obj->mo_fb_login_user($fb_user['idToken']);
245 }
246 else{
247 $error_message = $fb_user['error']['message'];
248 if($error_message == 'INVALID_EMAIL' || $error_message == 'EMAIL_NOT_FOUND'){
249 if ( get_option( 'mo_firebase_auth_disable_wordpress_login' ) == false ) {
250 $user = get_user_by( "login", $username );
251 if ( !$user ) {
252 $user = get_user_by( "email", $username );
253 }
254 if ( $user && wp_check_password( $password, $user->data->user_pass, $user->ID ) ) {
255 return $user;
256 }
257 }
258 else if ( get_option( 'mo_firebase_auth_enable_admin_wp_login' ) ) {
259 $user = get_user_by( "login", $username );
260 if ( !$user ) {
261 $user = get_user_by( "email", $username );
262 }
263 if ( $user && $this->is_administrator_user( $user ) ) {
264 if ( wp_check_password( $password, $user->data->user_pass, $user->ID ) ) {
265 return $user;
266 }
267 }
268 }
269 }else{
270 $error = new WP_Error();
271 if($error_message == 'INVALID_PASSWORD'){
272 $error_message = 'The password is invalid or the user does not have a password.';
273 }
274 $error->add('firebase_error', __( '<strong>ERROR</strong>: '.$error_message ));
275 return $error;
276 }
277 }
278 }
279
280 function mo_firebase_auth_success_message() {
281 $class = "error";
282 $message = get_option('mo_firebase_auth_message');
283 echo "<div class='" . $class . "'> <p>" . $message . "</p></div>";
284 }
285
286 function mo_firebase_auth_error_message() {
287 $class = "updated";
288 $message = get_option('mo_firebase_auth_message');
289 echo "<div class='" . $class . "'><p>" . $message . "</p></div>";
290 }
291
292 function is_administrator_user( $user ) {
293 $userRole = ( $user->roles );
294 if ( ! is_null( $userRole ) && in_array( 'administrator' , $userRole ) ) {
295 return true;
296 }
297 else {
298 return false;
299 }
300 }
301
302 private function mo_firebase_auth_show_success_message() {
303 remove_action( 'admin_notices', array( $this, 'mo_firebase_auth_success_message') );
304 add_action( 'admin_notices', array( $this, 'mo_firebase_auth_error_message') );
305 }
306
307 private function mo_firebase_auth_show_error_message() {
308 remove_action( 'admin_notices', array( $this, 'mo_firebase_auth_error_message') );
309 add_action( 'admin_notices', array( $this, 'mo_firebase_auth_success_message') );
310 }
311
312 function mo_firebase_auth_feedback_request() {
313 mo_firebase_auth_display_feedback_form();
314 }
315
316 private function mo_firebase_authentication_check_empty_or_null( $value ) {
317 if( ! isset( $value ) || empty( $value ) ) {
318 return true;
319 }
320 return false;
321 }
322
323 function mo_firebase_auth_deactivate(){
324
325 if ( isset( $_POST['option'] ) ) {
326
327 if( sanitize_text_field( wp_unslash( $_POST['option'] ) ) == "mo_firebase_authentication_change_email" ) {
328 //Adding back button
329 update_option('mo_firebase_authentication_verify_customer', '');
330 update_option('mo_firebase_authentication_registration_status','');
331 update_option('mo_firebase_authentication_new_registration','true');
332 }
333
334 if ( sanitize_text_field( wp_unslash( $_POST['option'] ) ) == "change_miniorange" ) {
335 require_once plugin_dir_path( __FILE__ ) . 'includes/class-firebase-authentication-deactivator.php';
336 MO_Firebase_Authentication_Deactivator::deactivate();
337 return;
338 }
339
340 if ( sanitize_text_field( wp_unslash( $_POST['option'] ) ) == "mo_firebase_authentication_register_customer" ) { //register the admin to miniOrange
341 //validation and sanitization
342 $email = '';
343 $phone = '';
344 $password = '';
345 $confirmPassword = '';
346 $fname = '';
347 $lname = '';
348 $company = '';
349 if ( $this->mo_firebase_authentication_check_empty_or_null( $_POST['email'] ) || $this->mo_firebase_authentication_check_empty_or_null( $_POST['password'] ) || $this->mo_firebase_authentication_check_empty_or_null( $_POST['confirmPassword'] ) ) {
350 update_option( 'mo_firebase_auth_message', 'All the fields are required. Please enter valid entries.');
351 $this->mo_firebase_auth_show_error_message();
352 return;
353 } else if ( strlen( $_POST['password'] ) < 8 || strlen( $_POST['confirmPassword'] ) < 8) {
354 update_option( 'mo_firebase_auth_message', 'Choose a password with minimum length 8.');
355 $this->mo_firebase_auth_show_error_message();
356 return;
357 } else {
358 $email = sanitize_email( $_POST['email'] );
359 $phone = stripslashes( $_POST['phone'] );
360 $password = stripslashes( $_POST['password'] );
361 $confirmPassword = stripslashes( $_POST['confirmPassword'] );
362 $fname = stripslashes( $_POST['fname'] );
363 $lname = stripslashes( $_POST['lname' ] );
364 $company = stripslashes( $_POST['company'] );
365 }
366
367 update_option( 'mo_firebase_authentication_admin_email', $email );
368 update_option( 'mo_firebase_authentication_admin_phone', $phone );
369 update_option( 'mo_firebase_authentication_admin_fname', $fname );
370 update_option( 'mo_firebase_authentication_admin_lname', $lname );
371 update_option( 'mo_firebase_authentication_admin_company', $company );
372
373 if ( strcmp( $password, $confirmPassword) == 0 ) {
374 update_option( 'password', $password );
375 $customer = new MO_Firebase_Customer();
376 $email = get_option('mo_firebase_authentication_admin_email');
377 $content = json_decode( $customer->check_customer(), true );
378
379 if ( strcasecmp( $content['status'], 'CUSTOMER_NOT_FOUND') == 0 ) {
380 $response = json_decode( $customer->create_customer(), true );
381 if ( strcasecmp( $response['status'], 'SUCCESS' ) != 0 ) {
382 update_option( 'mo_firebase_auth_message', 'Failed to create customer. Try again.' );
383 }
384 $this->mo_firebase_auth_show_success_message();
385 } elseif ( strcasecmp( $content['status'], 'SUCCESS' ) == 0 ) {
386 update_option( 'mo_firebase_auth_message', 'Account already exist. Please Login.' );
387 } else {
388 update_option( 'mo_firebase_auth_message', $content['status'] );
389 }
390 $this->mo_firebase_auth_show_success_message();
391
392 } else {
393 update_option( 'mo_firebase_auth_message', 'Passwords do not match.');
394 delete_option('mo_firebase_authentication_verify_customer');
395 $this->mo_firebase_auth_show_error_message();
396 }
397
398 } if( sanitize_text_field( wp_unslash( $_POST['option'] ) ) == "mo_firebase_authentication_goto_login" && isset( $_REQUEST['mo_firebase_authentication_goto_login_form_field'] ) && wp_verify_nonce( sanitize_text_field( wp_unslash( $_REQUEST['mo_firebase_authentication_goto_login_form_field'] ) ), 'mo_firebase_authentication_goto_login_form' )) {
399 delete_option( 'mo_firebase_authentication_new_registration' );
400 update_option( 'mo_firebase_authentication_verify_customer', 'true' );
401
402 } if ( sanitize_text_field( wp_unslash( $_POST['option'] ) ) == 'mo_enable_firebase_auth' && wp_verify_nonce( $_REQUEST['mo_firebase_auth_enable_field'], 'mo_firebase_auth_enable_form' ) ){
403 update_option( 'mo_enable_firebase_auth', isset( $_POST['mo_enable_firebase_auth'] ) ? (int)filter_var( $_POST['mo_enable_firebase_auth'], FILTER_SANITIZE_NUMBER_INT ) : 0 );
404
405 } else if ( sanitize_text_field( wp_unslash( $_POST['option'] ) ) == 'mo_firebase_auth_contact_us' && isset($_REQUEST['mo_firebase_auth_contact_us_field']) && wp_verify_nonce( $_REQUEST['mo_firebase_auth_contact_us_field'], 'mo_firebase_auth_contact_us_form' ) ) {
406 $email = isset( $_POST['mo_firebase_auth_contact_us_email'] ) ? sanitize_email( $_POST['mo_firebase_auth_contact_us_email'] ) : "";
407 $phone = isset( $_POST['mo_firebase_auth_contact_us_phone'] ) ? "+ ".preg_replace( '/[^0-9]/', '', $_POST['mo_firebase_auth_contact_us_phone'] ) : "";
408 //$phone = sanitize_textarea_field($_POST['mo_firebase_auth_contact_us_phone']);
409 $query = isset( $_POST['mo_firebase_auth_contact_us_query'] ) ? sanitize_textarea_field( $_POST['mo_firebase_auth_contact_us_query'] ) : "";
410 if ( $this->mo_firebase_authentication_check_empty_or_null( $email ) || $this->mo_firebase_authentication_check_empty_or_null( $query ) ) {
411 echo '<br><b style=color:red>Please fill up Email and Query fields to submit your query.</b>';
412 } else {
413 $contact_us = new MO_Firebase_contact_us();
414 $submited = $contact_us->mo_firebase_auth_contact_us( $email, $phone, $query );
415 if ( $submited == false ) {
416 update_option( 'mo_firebase_auth_message', 'Your query could not be submitted. Please try again.' );
417 $this->mo_firebase_auth_show_error_message();
418 } else {
419 update_option( 'mo_firebase_auth_message', 'Thanks for getting in touch! We shall get back to you shortly.' );
420 $this->mo_firebase_auth_show_success_message();
421 }
422 }
423
424 } else if( sanitize_text_field( wp_unslash( $_POST['option'] ) ) == "mo_firebase_authentication_verify_customer" ) {//register the admin to miniOrange
425 //validation and sanitization
426 $email = '';
427 $password = '';
428 if( $this->mo_firebase_authentication_check_empty_or_null( $_POST['email'] ) || $this->mo_firebase_authentication_check_empty_or_null( $_POST['password'] ) ) {
429 update_option( 'mo_firebase_auth_message', 'All the fields are required. Please enter valid entries.');
430 $this->mo_firebase_auth_show_error_message();
431 return;
432 } else{
433 $email = sanitize_email( $_POST['email'] );
434 $password = stripslashes( $_POST['password'] );
435 }
436
437 update_option( 'mo_firebase_authentication_admin_email', $email );
438 update_option( 'password', $password );
439 $customer = new MO_Firebase_Customer();
440 $content = $customer->mo_firebase_auth_get_customer_key();
441 $customerKey = json_decode( $content, true );
442 if( json_last_error() == JSON_ERROR_NONE ) {
443 update_option( 'mo_firebase_authentication_admin_customer_key', $customerKey['id'] );
444 update_option( 'mo_firebase_authentication_admin_api_key', $customerKey['apiKey'] );
445 update_option( 'mo_firebase_authentication_customer_token', $customerKey['token'] );
446 if( isset( $customerKey['phone'] ) )
447 update_option( 'mo_firebase_authentication_admin_phone', $customerKey['phone'] );
448 delete_option( 'password' );
449 update_option( 'mo_firebase_auth_message', 'Customer retrieved successfully');
450 delete_option( 'mo_firebase_authentication_verify_customer' );
451 $this->mo_firebase_auth_show_success_message();
452 } else {
453 update_option( 'mo_firebase_auth_message', 'Invalid username or password. Please try again.');
454 $this->mo_firebase_auth_show_error_message();
455 }
456
457 } else if ( sanitize_text_field( wp_unslash( $_POST['option'] ) ) == 'mo_firebase_auth_skip_feedback' ) {
458 deactivate_plugins( __FILE__ );
459 update_option( 'mo_firebase_auth_message', 'Plugin deactivated successfully' );
460 $this->mo_firebase_auth_show_success_message();
461
462 } else if ( sanitize_text_field( wp_unslash( $_POST['option'] ) ) == 'mo_firebase_auth_feedback' && isset($_REQUEST['mo_firebase_auth_feedback_field']) && wp_verify_nonce( $_REQUEST['mo_firebase_auth_feedback_field'], 'mo_firebase_auth_feedback_form' ) ) {
463 $user = wp_get_current_user();
464 $message = 'Plugin Deactivated:';
465 $deactivate_reason = array_key_exists( 'deactivate_reason_radio', $_POST ) ? $_POST['deactivate_reason_radio'] : false;
466 $deactivate_reason_message = array_key_exists( 'query_feedback', $_POST ) ? $_POST['query_feedback'] : false;
467 if ( $deactivate_reason ) {
468 $message .= $deactivate_reason;
469 if ( isset( $deactivate_reason_message ) ) {
470 $message .= ':' . $deactivate_reason_message;
471 }
472
473 $email = $user->user_email;
474 $contact_us = new MO_Firebase_contact_us();
475 $submited = json_decode( $contact_us->mo_firebase_auth_send_email_alert( $email, $message, "Feedback: WordPress Firebase Authentication" ), true );
476 deactivate_plugins( __FILE__ );
477 update_option( 'mo_firebase_auth_message', 'Thank you for the feedback.' );
478 $this->mo_firebase_auth_show_success_message();
479
480 } else {
481 update_option( 'mo_firebase_auth_message', 'Please Select one of the reasons ,if your reason is not mentioned please select Other Reasons' );
482 $this->mo_firebase_auth_show_error_message();
483 }
484 } else if ( sanitize_text_field( wp_unslash( $_POST['option'] ) ) == 'mo_fb_demo_request_form' && isset($_REQUEST['mo_fb_demo_request_field']) && wp_verify_nonce( $_REQUEST['mo_fb_demo_request_field'], 'mo_fb_demo_request_form' ) ) {
485
486 if( current_user_can( 'administrator' ) ){
487
488 $email = sanitize_email( $_POST['mo_fb_demo_request_email'] );
489 $demo_plan = isset($_POST['mo_fb_demo_request_plan']) ? stripslashes( $_POST['mo_fb_demo_request_plan'] ) : '';
490 $query = stripslashes( $_POST['mo_fb_demo_request_usecase'] );
491
492 if( $this->mo_firebase_authentication_check_empty_or_null( $email ) || $this->mo_firebase_authentication_check_empty_or_null( $demo_plan ) || $this->mo_firebase_authentication_check_empty_or_null( $query ) ){
493
494 update_option( 'mo_firebase_auth_message', 'Please fill up usecase, email field and select a demo plan to submit your query.' );
495 $this->mo_firebase_auth_show_error_message();
496 }else{
497 $contact_us = new MO_Firebase_contact_us();
498 $message = '<b>Demo plan:</b> '.$demo_plan.'<br><b>Use-case:</b> '.$query;
499 $submited = $contact_us->mo_firebase_auth_demo_request_mail( $email, $message, 'Demo Request | Firebase Authentication for WP' );
500 if ( $submited == false ) {
501 update_option( 'mo_firebase_auth_message', 'Your query could not be submitted. Please try again.' );
502 $this->mo_firebase_auth_show_error_message();
503 } else {
504 update_option( 'mo_firebase_auth_message', 'Thanks for getting in touch! We shall get back to you shortly.' );
505 $this->mo_firebase_auth_show_success_message();
506 }
507
508 }
509
510 }
511 }
512 }
513 }
514
515 }
516
517 $mo_firebase_authentication_obj = new mo_firebase_authentication_login();