Your IP : 216.73.216.164


Current Path : /var/www/html/soar-backup/wp-content/plugins/ipray/libraries/
Upload File :
Current File : /var/www/html/soar-backup/wp-content/plugins/ipray/libraries/ipray_utility.php

<?php 
require_once '../../../../wp-load.php';
require_once 'ipray_function.php';
class ipray_utility
{
	public $dbobj;
	public $start;
	public function __construct() {
       global $wpdb;
	   $this->dbObj = $wpdb;
    }
	public function getResponse($data = array())
	{
		switch($this->action)
		{
			case 'ipray-list':
			  return $this->prayerList($data);
			break;
			case 'prayer_submit':
			  return $this->addPrayer();
			break;
			case 'newsletter_subscribe':
			  return $this->prayerSubscribe();
			break;
			case 'iprayed':
			  return $this->iPrayed();
			break;
			default :
			  return $this->prayerList($data);
			break;
		}	
	}
	/* add new prayer*/
	public function addPrayer()
	{
		$post_status = '';
		$result = array('submit' => 0);
		$modification = get_option('prayer_modification');
		/* check email */
		if(!isset($_REQUEST['email']) && empty($_REQUEST['email']) )
		{
			return $result;
		}
		if($modification != NULL && $modification == 1)
		{
			 $post_status = 'pending';
		}
		else 
		{
			$post_status = 'publish';
		}
		/* post prayer data */
		$user_ID = get_current_user_id();
		$new_post = array(
		'post_title' => sanitize_text_field($_REQUEST['name']),
		'post_content' => sanitize_text_field($_REQUEST['prayer']),
		'post_status' => $post_status,
		//'post_date' => date('Y-m-d H:i:s'),
		'post_author' => $user_ID,
		'post_type' => 'prayer',
      );
      $post_id = wp_insert_post($new_post);
	   #insert post meta
	  if ($post_id) {
				add_post_meta($post_id, 'ipray_owner_name', sanitize_text_field($_REQUEST['name']));
				add_post_meta($post_id, 'ipray_owner_email', sanitize_text_field($_REQUEST['email']));
				add_post_meta($post_id, 'ipray_owner_phone', sanitize_text_field($_REQUEST['phone']));
				add_post_meta($post_id, 'ipray_prayer_notifyme', isset($_REQUEST['notifyme'])?1:0);
				add_post_meta($post_id, 'ipray_desired_share_option', sanitize_text_field($_REQUEST['desired_share_option']));
				/* send alert new prayer add */
				if($_REQUEST['desired_share_option'] != 2&&$post_status=='publish')
				{
					$share_option = $_REQUEST['desired_share_option'];
					$name = ($share_option == 0)?$_REQUEST['name']:__('Anonymous','ipray-plugin');
					$prayer_data['name'] = $name;
					$prayer_data['message'] = $_REQUEST['prayer'];
					$prayer_data['reply_mail'] = $_REQUEST['email'];
					/* fetch all subscribers */
					$email_alerts = $this->subscriberMail();
					$prayer_data['unsubscribe_true'] = 1;
					if (!array_key_exists($_REQUEST['email'], $email_alerts)) 
					{
						$email_alerts[$_REQUEST['email']] = date('Y-m-d G:i:s');
						$prayer_data['unsubscribe_true'] = 0;
					}
					if(!empty($email_alerts))
					{
						foreach($email_alerts  as $key=>$value)
						{
							$prayer_data['mail_to'] = $key;
							$prayer_data['time'] = strtotime($value);
							$sendurl                = iprayPageUrl($_REQUEST['requesturi']);
							sendToMail('add_new_prayer',$prayer_data,$sendurl);
						}
						update_post_meta($post_id, 'nativechurch_published_prayer_confirmation', 1);
					}
				}
				$result['submit'] = 1;
				return $result;
       }
	   return $result;
	}
	/* list all prayers */
	public function prayerList($option)
	{
		global $wp_query; 
		$data = array();
        query_posts( 
		       array(
			       'post_type'          =>'prayer',
				   'meta_query'         => array(
				                                array(
												    'relation' => 'AND',
				                                            array(
															   'key' => 'ipray_desired_share_option',
															    'value' => 2,
																'compare' => '!='
																)
														)
				                                 ),
				   'orderby'            => 'date',
				   'order'              => 'DESC',
				   'offset'             =>$_REQUEST['start'],
				   'posts_per_page'     =>$_REQUEST['per_page']
				   )
		);		
		if(isset($option['count']))
		{
            return $wp_query->found_posts;
			//return $GLOBALS['wp_query']->request;
		}
		$success_newsletter_unsubscription = '';
		if($_REQUEST['uid']&&$_REQUEST['uemail'])
		{
			$unsubscribed = ipray_unsubscribeMail($_REQUEST['uemail'], $_REQUEST['uid']);
			$success_newsletter_unsubscription = ($unsubscribed)?'<div class="alert alert-success fade in">'.esc_html__('Successfully unsubscribed for new prayer notifications.', 'ipray-plugin').'</div>':'';
		}
		if (have_posts())
		  {
			$i=0;
            while (have_posts()){
				the_post();
				$share_option = get_post_meta(get_the_ID(),'ipray_desired_share_option',true);
					if($i==0)
					{
						$data[$i]['unsubscribe'] = $success_newsletter_unsubscription;
					}
					else
					{
						$data[$i]['unsubscribe'] = '';
					}
					$data[$i]['ID'] = get_the_ID();
					$name = '';
					if($share_option == 1)
					{
						$name = __('Anonymous','ipray-plugin');
					}
					else
					{
						$name = get_post_meta(get_the_ID(),'ipray_owner_name',true);
					}
					$data[$i]['name'] = $name;
					$data[$i]['is_pray_allow'] = $this->isPrayeredAllow(get_the_ID());
					$data[$i]['prayer'] = get_the_content();
					$data[$i]['date_time'] = get_the_time('F d, Y',get_the_ID());
					$data[$i]['class'] = ($i%2==0)?'even':'odd';
					$prayer_count = $this->prayerCount(get_the_ID());
		      		$time_srting = ($prayer_count> 1)? __('times', 'ipray-plugin'): __('time', 'ipray-plugin');
					$data[$i]['prayer_count'] = $this->prayerCount(get_the_ID());
					$count_msg = sprintf(__('Prayed for %d %s','ipray-plugin'),$prayer_count,$time_srting);
					$data[$i]['prayer_count_msg'] = $count_msg;
					$i++;
			}
		  }
		  return $data;
	}
	/* subscribe prayer */
	public function prayerSubscribe()
	{
		 $table_name = $this->dbObj->prefix.'prayer_newsletter';
		 $result = array('submit' => 0);
		 if(!isset($_REQUEST['email']) && empty($_REQUEST['email']) )
		 {
			return $result;
		 }
			 	if($this->checkmail(trim($_REQUEST['email']))==1)
				{
					$result['submit'] = 2;
					$result['msg'] = __('This email address already exists!','ipray-plugin');
					return $result;
				}
				elseif($this->checkmail(trim($_REQUEST['email']))!=0)
				{
					$result['submit'] = 2;
					$result['msg'] = __('You have been successfully resubscribed!','ipray-plugin');
					return $result;
				}
		 
		  $email       = trim($_REQUEST['email']);
		  $browser     = $_SERVER['HTTP_USER_AGENT'];
		  $ip          = $_SERVER['REMOTE_ADDR'];
		  $created     = date('Y-m-d H:i:s');
						
	  $sql ="INSERT INTO $table_name (id,email, browser,ip,created) VALUES ('','$email','$browser','$ip','$created')" ;
      $response = $this->dbObj->query($sql);
	  if($response)
	  {
		  $result['msg'] = __('You have been successfully subscribed!','ipray-plugin');
		  $result['submit'] = 1;
	  }
	  return $result;
	}
	/* is prayed allowed  */
	public function isPrayeredAllow($prayer_id)
	{
        $table_name = $this->dbObj->prefix.'prayer_prayed';
		if (!isset($_SESSION))
		{ 
		   session_start();
		}
		
		$session_id = session_id();
		$prayer_ip = $_SERVER['REMOTE_ADDR'];
		
        $sql ="SELECT id FROM $table_name WHERE prayer_id =$prayer_id AND prayer_session ='$session_id' AND prayer_ip = '$prayer_ip'" ;
        $response = $this->dbObj->get_row($sql,OBJECT);
		if($response == null)
		{
		   return 1; 
		}
		return 0;
	}
	/* check mail is alreay exist or not */
	private function checkmail($email)
	{
		$table_name = $this->dbObj->prefix.'prayer_newsletter';
    $sql ="SELECT * FROM $table_name WHERE email = '$email'" ;
    $response = $this->dbObj->get_row($sql,OBJECT);
		$s = 0;
		if($response !== NULL)
		{
			$s = 1;
			if($response->status==2)
			{
				$data = array('status'=>1);
				$where = array('email'=>$email);
				$sb = $this->dbObj->update( $table_name, $data, $where);
				$s = 2;
			}
		}
		return $s;
	}
	
	/* fecth all active prayer subscriber user 
	   return all subscriber emails
	*/
	
	private function subscriberMail()
	{
		$data = array();
		$table_name = $this->dbObj->prefix.'prayer_newsletter';
        $sql ="SELECT * FROM $table_name WHERE status = 1" ;
        $all_mail = $this->dbObj->get_results($sql,OBJECT);
		if($all_mail)
		{
			foreach ($all_mail as $data_mail ) 
			{
				$data[$data_mail->email] = $data_mail->created;
			}
		}
		return $data;
	}

	/* prayer count */
	private function prayerCount($prayer_id)
	{
		$table_name = $this->dbObj->prefix.'prayer_prayed';
        $sql ="SELECT COUNT(prayer_id) as total_prayer FROM $table_name WHERE prayer_id = $prayer_id" ;
        $response = $this->dbObj->get_row($sql,OBJECT);
		return $response->total_prayer; 
	}	
	/* any person prayer for The prayer owner */
	public function iPrayed()
	{
		$data = array(); 
		$data['prayer_count'] = 0;
		if(!isset($_REQUEST['prayer_id']))
		{
			return $data;
		}
		if($this->isPrayeredAllow($_REQUEST['prayer_id']))
		{
			if (!isset($_SESSION))
			{ 
			   session_start();
			}
		  $table_name      = $this->dbObj->prefix.'prayer_prayed';
		  $prayer_id       = $_REQUEST['prayer_id'];
		  $prayer_browser  = $_SERVER['HTTP_USER_AGENT'];
		  $prayer_ip       = $_SERVER['REMOTE_ADDR'];
		  $prayed_created  = date('Y-m-d H:i:s');
		  $prayer_session  = session_id();
		  
		   $sql  ="INSERT INTO $table_name(id,prayer_id,prayer_session,prayer_browser, ";
		   $sql .="prayer_ip,prayed_created) VALUES ";
		   $sql .="('',$prayer_id,'$prayer_session','$prayer_browser','$prayer_ip','$prayed_created')" ;
		   $this->dbObj->query($sql);
		   /* iprayed submit */
		   $data['prayer_count'] = $this->prayerCount($prayer_id);
		   $time_srting = ($data['prayer_count']>1)?'times':'time';
		   $data['prayer_count_msg'] = sprintf(__('Prayed for %d %s','ipray-plugin'),$data['prayer_count'],$time_srting);
				/* inform someone prayer */
				$notifyme = get_post_meta($prayer_id,'ipray_prayer_notifyme',true);
				$prayer_owner_email = get_post_meta($prayer_id,'ipray_owner_email',true);
				if($notifyme != NULL && !empty($notifyme) && $notifyme == 'on')
				{
					$content_post = get_post($prayer_id);
					$content = $content_post->post_content;
					$prayer_data['mail_to'] = $prayer_owner_email;
					$prayer_data['message'] = $content;
					$sendurl                = iprayPageUrl($_REQUEST['requesturi']);
					sendToMail('prayed_to_someone',$prayer_data,$sendurl );
				}	
		}
        return $data;
	}
	public function isAjax()
	{
		/* AJAX check  */
		 if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') 
		 {
			 return true;
		 }
		 return false;
	}
	/* clear all memories */
	public function __destruct() {
        unset($this->dbObj);
    }
}
/* perform ajax activity */
$ipray_utility = new ipray_utility();
if(isset($_REQUEST['action']) && $ipray_utility->isAjax())
{
	$data = array();
	$ipray_utility->action = trim($_REQUEST['action']);
	/* prayer list */
	if($_REQUEST['action'] == 'ipray-list')
	{
		$res_count = $ipray_utility->getResponse(array('count'=>true));
		$ipray_data = $ipray_utility->getResponse();
		$data['res_count'] = $res_count;
		$data['display_results'] = $ipray_data;
		$data['setting']['prayer_text'] = __('I prayed for this','ipray-plugin');
		$data['setting']['recieve_text'] = __('Posted:','ipray-plugin');
		$data['per_page'] = trim($_REQUEST['per_page']);
		header('Content-Type: application/json');
		echo json_encode($data);;
	    die;
	}
	/* another actions */
	if($_REQUEST['action'] == 'prayer_submit' ||
	 $_REQUEST['action'] == 'newsletter_subscribe' ||
	 $_REQUEST['action'] == 'iprayed')
	{
	    header('Content-Type: application/json');
		echo json_encode($ipray_utility->getResponse());
		die;
	}
}
die();