<?php
	
	  require_once($_SERVER['DOCUMENT_ROOT'] . '/wp-load.php');
///////////////////////////////////////////////////////////////////////set sessions
	//ini_set('session.save_path', __DIR__ . '../sessions');
	//session_start();
	
	if (!function_exists('wp_upload_dir')) 
		die('WordPress not loaded');
	
	$upload_dir = wp_upload_dir();
	  $session_path = $upload_dir['basedir'] . '/login-sessions';
	  
		if (!is_dir($session_path)) {
		  wp_mkdir_p($session_path);
		}

		if ( is_dir($session_path) && is_writable($session_path) ) {
			ini_set('session.save_path', $session_path);
		} else {
			error_log('Custom session path failed.'. $session_path .'  >>Using default path host.');
		}
	  session_start();
	  
////////////////////////////////////////
	
		//require_once MY_PLUGIN_PATH . '/functions/public_fun.php';
		
		//echo convertPersianNumbersToEnglish(1234);

		//check_login function
			if(@$_POST['username'])
				do_login($_POST);


function do_login($postdata)
{
	 if(check_login_register_time('login'))
		{
			$url_prefix=get_site_url();
			$backlink=$postdata['backlink'];
			
			if(strpos($postdata['backlink'], '?'))
				$backlink = substr($postdata['backlink'], 0, strpos($postdata['backlink'], "?")); 
		else
			$backlink = $postdata['backlink']; 	

			if ( is_user_logged_in() )
				{
					wp_redirect($url_prefix.'/panel/');
				}
			else
				{
					$uname=sanitize_text_field (wp_unslash($postdata['username']));
					$pass=convertPersianNumbersToEnglish2(sanitize_text_field (wp_unslash($postdata['password'])));
					

					
					if(isset($_SESSION['x']) && $_SESSION['x']==convertPersianNumbersToEnglish2($postdata['captcha']))
					{
						if(isset($postdata['username']))
							{
									
								$user = wp_authenticate($uname, $pass);
								$login_error=is_wp_error($user);
								
								if(!$login_error)
								 $user_roles = $user->roles;
							 
								if(!$login_error && count($user_roles)>0) 
								{
									$first_name = $user->first_name;
									$user_id = $user->ID;

									if(!check_user_have_role($user))
									{ 
										wp_redirect($backlink.'?msg=pending&username='.$uname);
										die();
										exit();
									}

									unset($_SESSION['user_menu']);
									
									//login
									wp_set_current_user($user_id, $user->user_login);
									wp_set_auth_cookie($user_id);
									do_action('wp_login', $user->user_login);
									wp_redirect($url_prefix.'/panel/');


								} else
									{
										if(isset($user->errors['invalid_username']))
											wp_redirect($backlink.'?msg=username_error&username='.$uname);
										else if(isset($user->errors['incorrect_password']))
											wp_redirect($backlink.'?msg=password_error&username='.$uname);
									}

							}
							else
								{
									wp_redirect($backlink.'?msg=error&username='.$uname);
								}
					}
					else
					wp_redirect($backlink.'?msg=captcha_error&username='.$uname);

				}
	}
	else
	{
		 wp_redirect($backlink.'?msg=error_time&username='.$uname);
	}
}




function convertPersianNumbersToEnglish2($input) {
    $persianNumbers = ['۰','۱','۲','۳','۴','۵','۶','۷','۸','۹'];
    $englishNumbers = ['0','1','2','3','4','5','6','7','8','9'];
    return str_replace($persianNumbers, $englishNumbers, $input);
}


?>