angyLe
9/18/2015 - 9:26 AM

ajax working in tag form wordpress

ajax working in tag form wordpress

<?php 
/**
 * Validat of register form
 *
 */	

require($_SERVER['DOCUMENT_ROOT'].'/wp-load.php');


/* Проверяем существуют ли переменные, которые передала форма  
   Если не существуют, то мы их создаем.
   Если форма передала пустые значения мы их удаляем */
if (isset($_POST['name'])) {
	$name = $_POST['name']; 
}
else {
	$name = false;
}

//check if mail exist
if (isset($_POST['email'])) {
	$mail = $_POST['email']; 
	
}
else 
	$mail = false;

// check if password exist
if (isset($_POST['firstps'])) {
	$pass = $_POST['firstps']; 
}
else 
	$pass= false;

// check if password confirmation exist
if (isset($_POST['secondps'])) {
	$pass2 = $_POST['secondps']; 
}
else 
	$pass2= false;

// check if submit button was clicked
if (isset($_POST['submit'])) {
	$submit = $_POST['submit'];
}
else 
	$submit = 0;

registerFormAction ($name, $mail, $pass, $pass2, $submit);

function registerFormAction ($username = false, $email = false, $pasword= false, $pas2 = false, $submit) 
{

	if ($submit == 1)
	{
			global $wpdb;
			$table_temp_new_user = $wpdb->prefix.'reg_temp';
			$user = chekUsername ($username);
			$maill = checkEmail ($email);
			$passw = checkPassword ($pasword, $pas2);
			
			
			if (!isset ($user) && !isset ($maill) && !isset($passw))
			{
				echo "$('#mess').html('sucsess');";
				$ctime = time ();
				$randomCode = wp_generate_password ($length = 12, $include_standart_special_chars=false);
				
				$checkinUrl = home_url() . '/emailcheck?randomCode=' . $randomCode;
				$mailText = "Your login is .For activation go to " . $checkinUrl;
				$hashpas = crypt($pasword);
				$wpdb->insert ($table_temp_new_user, array (
					'username' => $username, 
					'useremail' => $email,
					'password' =>  $hashpas,
					'code' => $randomCode,
					'time' => $ctime,
				), array ('%s','%s','%s','%s','%d',));
				wp_mail ($maill, "post check", $mailText );
				$bra = 'fine' . $checkinUrl;
				echo "$('#m_reg_user_form').html('" . $bra . "');";
			}	 
			else
				return;
			
		
	}
	else {
		if ($username)
		{
			chekUsername ($username);
			return;
		}
		else if ($email){
			checkEmail ($email);
			return;
		}
		else if ($pasword){
			checkPassword ($pasword, $pas2);
			return;
		}
		else if ($pas2){
			checkPassword ($pasword, $pas2);
			return;
		}
			
	}
	
}
function chekUsername ($username)
{
	if ($username)
		{
			if( !validate_username( $username ) )
			{
				$error = __('Invalid username. You must use only english letters, numbers or symbols: _-.* space','newsite2');
				//echo $error;
				echo "$('#nameError').html('" . $error . "');";
				return $error;;
			}
			
			if (strlen ($username) < 4 || strlen ($username) > 60)
			{
				$error = __('The length of username must be more an 5 and less then 60','newsite2'); 
				//echo $error;
				echo "$('#nameError').html('" . $error . "');";
				return $error;;
			}
			// проверка есть ли в бд данное имя пользователя
			if ( username_exists($username) != null)
			{
				$error = __('This username already exists','newsite2'); 
				echo "$('#nameError').html('" . $error . "');";
				return $error;;
			}
			$error = '';
			echo "$('#nameError').html('" . $error . "');";
			return ;
		}
		else {
			$error = __('Enter username, please!','newsite2'); 
			echo "$('#nameError').html('" . $error . "');";
			return $error;	
		}
		
}
function checkEmail ($email)
{
	if ($email)
		{
			if (!is_email ($email)) {
				$error = __('Invalid email','newsite2'); 
				echo "$('#emailError').html('" . $error . "');";
				return $error;
			}
			
			if (strlen ($email)  > 100)
			{
				$error = __('The length of email must be less then 100','newsite2'); 
				echo "$('#emailError').html('" . $error . "');";
				return $error;
			}
			// проверка есть ли в бд данное имя пользователя
			if ( email_exists($email) != null)
			{
				$error = __('This email already exists','newsite2'); 
				echo "$('#emailError').html('" . $error . "');";
				return $error;
			}
			$error = '';
			echo "$('#emailError').html('" . $error . "');";
			return ;
		}
		else {
			$error = __('Enter email, please!','newsite2'); 
			echo "$('#emailError').html('" . $error . "');";
			return $error;	
		}
}
function checkPassword ($pas1, $pas2)
{
	if ($pas1 && $pas2)
		{
			//$template = "/([0-9]*[a-Z]*[_]*[\.]*[\-]*){10,}/";
	
			//if (if (eregi("['\<|\>|\?|\!|\&]", $fname))) 
				
			// if pasword has invalid symbols < > ? ! & 
			if ( preg_match("['\<|\>|\?|\!|\&|\'|\"]", $pas1) == 1){
				$error = __('Password has invalid symbols','newsite2'); 
				echo "$('#passError').html('" . $error . "');";
				return $error;
			}
			// password must be more then 6
			if (strlen ($pas1) < 6)
			{
				$error = __('The length of password must be more then 6','newsite2'); 
				echo "$('#passError').html('" . $error . "');";
				return $error;
			}
			// check if passwords is the same
			if ( strcmp($pas1, $pas2) != 0)
			{
				$error = __('Passwords not the same','newsite2'); 
				echo "$('#passError').html('" . $error . "');";
				return $error;
			}
			$error = '';
			echo "$('#passError').html('" . $error . "');";
			return ;	
		}
		else if (!$pas1) {
			$error = __('Enter password, please!','newsite2'); 
			echo "$('#passError').html('" . $error . "');";
			return $error;	
		}
		else if (!$pas2) {
			$error = __('Enter password confirmation, please!','newsite2'); 
			echo "$('#passError').html('" . $error . "');";
			return $error;	
		}
}
$(document).ready(function() {
// ajax registr form
	$("#m_reg_user_form").submit(function(){ // пeрeхвaтывaeм всe при сoбытии oтпрaвки
		console.log ('in submin js');
		var templateDirectory = objInJs.data + '/modulphp/reg.php';
		var form = $(this); // зaпишeм фoрму, чтoбы пoтoм нe былo прoблeм с this
		//var error = false; // прeдвaритeльнo oшибoк нeт
		/*if form.find('input, textarea').each( function(){ // прoбeжим пo кaждoму пoлю в фoрмe
		($(this).val() == '') { // eсли нaхoдим пустoe
				alert('Зaпoлнитe пoлe "'+$(this).attr('placeholder')+'"!'); // гoвoрим зaпoлняй!
				error = true; // oшибкa
		}
		});
		*/
		//if (!error) { // eсли oшибки нeт
			var data = form.serialize(); // пoдгoтaвливaeм дaнныe
			console.log (data);
			$.ajax({ // инициaлизируeм ajax зaпрoс
			   type: 'POST', // oтпрaвляeм в POST фoрмaтe, мoжнo GET
			   url: templateDirectory, // путь дo oбрaбoтчикa, 
			   dataType: 'script', 
			   data: data, // дaнныe для oтпрaвки
		       beforeSend: function(data) { // сoбытиe дo oтпрaвки
		            form.find('#registerBtn').attr('disabled', 'disabled'); // нaпримeр, oтключим кнoпку, чтoбы нe жaли пo 100 рaз
		       },
		       
		       complete: function(data) { // сoбытиe пoслe любoгo исхoдa
		            form.find('#registerBtn').prop('disabled', false); // в любoм случae включим кнoпку oбрaтнo
					//$('#mess').html('complete');
		        },
				error: function(response) { //Если ошибка
                document.getElementById('mess').innerHTML = "Ошибка ";
                }
		                  
			 });
		//}
		return false; // вырубaeм стaндaртную oтпрaвку фoрмы
	});
}
<?php

echo 
	'<form method="post" action="" id="m_reg_user_form">
		<div id="mess"></div>
		<div id="nameError"></div>
		<div id="emailError"></div>
		<div id="passError"></div>
		<input type="text" name="name" id="Usname" class="regInput" placeholder="' . __('Enter username * ','newsite2') . '"  autocomplete="on" maxlength="30" >
		<input type="email" id="Useremail" class="regInput" name="email" placeholder ="' . __('Enter your email * ','newsite2') . '" autocomplete="on"   >
		<input type="password" class="regInput" id="UserPassword" name="firstps" placeholder ="' . __('Password * ','newsite2') . '" autocomplete="off" maxlength="100" >
		<input type="password" id="PasswordAgain" class="regInput" name="secondps" placeholder ="' . __('Repeat password * ','newsite2') . '" autocomplete="off" maxlength="100" >
		<input id="registerBtn" type="submit" value="' . __('Submit','newsite2') .  '" >
		<input type="hidden" name="submit" value="1">
	</form>';