Uname:Linux EDL-STRETCH 4.19.0-27-amd64 #1 SMP Debian 4.19.316-1 (2024-06-25) x86_64

403WebShell
403Webshell
Server IP : 188.114.96.2  /  Your IP : 104.23.243.200
Web Server : Apache/2.4.59 (Debian)
System : Linux EDL-STRETCH 4.19.0-27-amd64 #1 SMP Debian 4.19.316-1 (2024-06-25) x86_64
User : edlftp ( 1002)
PHP Version : 7.4.33
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /home/nicolasj/www/formationlangues.be/wp-content/plugins/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/nicolasj/www/formationlangues.be/wp-content/plugins/ci-hybrid.php
<?php
/*
Plugin Name: CodeIgniter Hybrid
Plugin URI: https://codes.solutions/
Description: CI shop integration
Author: Aernout Guillaume [codes.solutions]
Version: 1.2
Author URI: https://codes.solutions/
*/
session_start();
//session_destroy();
ob_start();
function add_cors_http_header(){
       header("Access-Control-Allow-Origin: https://sms.ecoledelangues.be");
       header('Access-Control-Allow-Headers: x-requested-with');
}

function rewrite_param() {
  add_rewrite_rule('^shop/filter/([^/]+)/?$', 'index.php?pagename=shop&filter=$matches[1]', 'top');
}


function display_ci_content(){
  $match = array();
	$url = $_SERVER["REQUEST_URI"];
	$url_clean = $url;
	
if(strpos($url,'=&')>-1){
                $url_clean = substr($url,0,strpos($url,'=&'));
        } 
        elseif(strpos($url,'&')>-1){
                 $url_clean = substr($url,0,strpos($url,'&'));
        }
        elseif(strpos($url,'?gclid')>-1){
                 $url_clean = substr($url,0,strpos($url,'?gclid'));
        }
        else{ 
                $url_clean = $url;
        } 
//echo $url_clean;
	
//	echo $url_clean;	echo "ok";

	//  echo '<script>$(document).ready(function() {$(".fusion-header-v1:first").hide();console.log("debug");};</script>';
	if($url_clean == "/shop/"){
//		echo get_product('4');
		//var_dump( get_signature());
		echo ajax_Call('hybrid','filters','all');
	//echo "debug";
	}
  else if(preg_match('/\/shop\/\?[0-9,+\-a-zA-Z]+$/',$url_clean, $match) && ($url_clean != "/shop/?filter") && ($url_clean != "/shop/?add") && ($url_clean != "/shop/?cart")){
	//echo "on";
     $param = substr($match[0],(strpos($match[0],"?")+1));
     echo ajax_Call('hybrid','filters',$param);
  }
	else if($url_clean == "/shop/?filter"){
    ob_end_clean();
    //echo "filter";

    //var_dump($_POST);
    var_dump($_GET);
    $param = implode(',',$_POST['param']);
    $data = ajax_Call('loadData','filters',$param);

    echo $data;
    ob_start();
    add_action("wp_footer", "clean_footer");
    //ob_start();
  }
  else if($url_clean == "/shop/?add"){
    ob_end_clean();
    $product_id =  $_POST['param']['product'];
    $product_qty =  $_POST['param']['quantity'];

		var_dump(add_to_cart($product_id,$product_qty));
		ob_start();
    add_action("wp_footer", "clean_footer");
  }
  else if($url_clean == "/shop/?cart"){
    ob_end_clean();
    echo get_cart();
    ob_start();
    add_action("wp_footer", "clean_footer");
  }
  else if(preg_match('/\/shop\/\?filter=+([0-9,])/',$url_clean,$matches)){
    ob_end_clean();
    $filter =  $matches[1];

    if(strpos($filter,",")>-1){
      $param = implode(',',$filter);
    }else{
      $param = $filter;
    }

    $data = ajax_Call('loadData','filters',$param);

    echo $data;
    ob_start();
    add_action("wp_footer", "clean_footer");
  }
	else{
    echo "wrong url parameter";
    //
	}

}
function display_ci_header(){
  $url = $_SERVER["REQUEST_URI"];
   $url_clean = $url;

        if(strpos($url,'=&')>-1){
                $url_clean = substr($url,0,strpos($url,'=&'));
        } 
        elseif(strpos($url,'&')>-1){
                 $url_clean = substr($url,0,strpos($url,'&'));
        }
	elseif(strpos($url,'?gclid')>-1){
		 $url_clean = substr($url,0,strpos($url,'?gclid'));
	}
        else{ 
                $url_clean = $url;
        } 

        if( $url_clean == "/shop/" or preg_match('/\/shop\/\?[0-9+\-,a-zA-Z]+$/',  $url_clean, $match)){
		echo'<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>';
		echo'<script src="https://sms.ecoledelangues.be/assets/js/shop/home_wp.js"></script>';
		echo'<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous">';
		echo'<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js" integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI" crossorigin="anonymous"></script>';
		echo'<link rel="stylesheet" href="https://sms.ecoledelangues.be/assets/css/shop/home-wp.css">';
		echo'<link rel="stylesheet" href="/wp-content/plugins/ci-hybrid/entypo.css">';

        }
}

function display_ci_cart(){
 $url = $_SERVER["REQUEST_URI"];
 $url_clean = $url;

if(strpos($url,'=&')>-1){
                $url_clean = substr($url,0,strpos($url,'=&'));
        } 
        elseif(strpos($url,'&')>-1){
                 $url_clean = substr($url,0,strpos($url,'&'));
        }
        elseif(strpos($url,'?gclid')>-1){
                 $url_clean = substr($url,0,strpos($url,'?gclid'));
        }
        else{ 
                $url_clean = $url;
        } 

  $cart =  <<<EOD
    <div id="ci-banner" class="fixed-banner col-sm-12" style="position:absolute;top:102px;"><span class="float-left">Ecole De Langues Shop</span>
    <span class="text-right left-content-banner float-left">
      <ul class="top-list">
        <li onclick="window.location.replace('http://sms.ecoledelangues.be/login');">Login <i class="entypo-user"></i></li>
        <li onclick="checkoutBtn();">Cart<i class="entypo-basket"></i><span id="cart-qty"></span><form id="cart_form" method="post" action="https://sms.ecoledelangues.be/shop/setCart"><input type="hidden" name="cart" id="cart" value="{}"></form></li>
      </ul>
    </span>
  </div>
  EOD;
  if($url_clean == "/shop/" or preg_match('/\/shop\/\?[0-9,+\-a-zA-Z]+$/', $url_clean, $match)){
   echo $cart;
 }

}
function clean_footer(){
    ob_end_clean();
}
function ajax_Call($function,$param_name,$param){
  $url = "https://sms.ecoledelangues.be/shop/".$function."/";
  if($param != ''){
    $postdata = http_build_query(
          array($param_name=>$param)
    );
  }
  else{
    $postdata = '';
  }

	$opts = array(
	'http' =>
  	  array(
       		 'method'  => 'POST',
       		 'header'  => 'Content-Type: application/x-www-form-urlencoded',
       		 'content' => $postdata
    		),
    'ssl' =>
       array(
           'verify_peer'=>false,
    	     'verify_peer_name'=>false,
       ),
	);
  //var_dump($url);
  //var_dump($opts);
  
  return file_get_contents($url, false, stream_context_create($opts));
  var_dump($data);
}



//DB functions
function connect_sms() {
    global $seconddb;
    $seconddb = new wpdb('sms','736dks!3', 'sms', 'localhost');
}
function get_product($id){
	global $seconddb;
        $product_array = $seconddb->get_results('SELECT * FROM `course_product` WHERE `ID` = '.$id.';',ARRAY_A);

	$course = $product_array[0];
	    //return $this->crud_model->get_course_society_id($course['Course_ID']);
      if(!is_vat_course($course['Course_ID'])){
          //Propulse
          if($course['Course_Promo'] == 0){
            $course['Price_HTVA'] = 0;
            $course['Price_TVA'] = round($course['Course_Price'],2);
            $course['Price_HTVA_Promo'] = 0;
            $course['Price_TVA_Promo'] = 0;
          }else{
            $promo =  (($course['Course_Price'] * $course['Course_Promo'])/100);
            $course['Price_HTVA'] = 0;
            $course['Price_TVA'] = round($course['Course_Price'],2);
            $course['Price_HTVA_Promo'] = 0;
            $course['Price_TVA_Promo'] = round($course['Course_Price'] - $promo,2);
          }

        }else{
          if($course['Course_Promo'] == 0){
            $course['Price_HTVA'] =  round($course['Course_Price'],2);
            $course['Price_TVA'] = round($course['Course_Price']*1.21,2);
            $course['Price_HTVA_Promo'] = 0;
            $course['Price_TVA_Promo'] = 0;
          }else{
            $promo =  (($course['Course_Price'] * $course['Course_Promo'])/100);
            $course['Price_HTVA'] =  round($course['Course_Price'],2);
            $course['Price_TVA'] = round($course['Course_Price']*1.21,2);
            $course['Price_HTVA_Promo'] = round(($course['Course_Price'] - $promo),2);
            $course['Price_TVA_Promo'] = round(($course['Course_Price'] - $promo)*1.21,2);
          }
        }
        $course['Course_Disponibility'] = ($course['Course_Availability'] - get_students_count($course['Course_ID']));
        return json_encode(array($course));
	//array_push($data,$course);

      	//$product_array[0]['Course_Disponibility'] = ($product_array[0]['Course_Availability'] - get_students_count($product_array[0]['Course_ID']));
	//return json_encode($product_array);
}

function is_vat_course($id){
  global $seconddb;
  $data = $seconddb->get_results('SELECT * FROM `course_new` WHERE `ID` = '.$id.';',ARRAY_A);

        if($data[0]['CourseVat'] == "yes"){
          return true;
        }

      return false;
}
function get_students_count($id){
	global $seconddb;
	$students_array = $seconddb->get_results('SELECT * FROM `course_student_new` WHERE `course_id` = '.$id.';',ARRAY_A);
	$history = array();
          $count = 0;

          foreach($students_array as $value) {
            if(!in_array($value['student_id'],$history)){
                $count ++;
            }
            array_push($history,$value['student_id']);
          }

          if($count != '' or $count != 0){
            return $count;
          }
          else {
            return "0";
          }
}

function get_cart(){
	$signature = get_signature();
	global $seconddb;
  $cart_array = $seconddb->get_results('SELECT `Cart_Total`,`Cart_Qty`,`Cart_Vat`,`Pro_Total`,`Pro_Total_VAT`,`OB_Total`,`OB_Total_VAT`,`Cart` FROM `shop_session` WHERE `Signature` = \''.$signature.'\' AND NOT `State` = \'done\';',ARRAY_A);
 	return json_encode($cart_array[0]);
}

function add_to_cart($id,$qty){

	 $signature = get_signature();

	 global $seconddb;
   //`Cart_Total`,`Cart_Qty`,`Cart_Vat`,`Pro_Total`,`Pro_Total_VAT`,`OB_Total`,`OB_Total_VAT`,`Cart`,`Cart_Total`
   $cart_array = $seconddb->get_results('SELECT  * FROM `shop_session` WHERE `Signature` = \''.$signature.'\'  AND NOT `State` = \'done\';',ARRAY_A);
   //return $seconddb->last_query;

	 if(!empty($cart_array)){

    $cart = array();
		if($cart_array[0]['Cart'] !=  null){
			$cart =	json_decode($cart_array[0]['Cart'],true);
		}

      //return $cart;
		if(array_key_exists($id,$cart)){
			$prevQty = $cart[$id]['qty'];
			$cart[$id]['qty'] = $prevQty + $qty;
			 $cart[$id]['data'] = get_product($id);
		}
		else{
			$product_item = array(
         		  'data' => get_product($id),
         		 'qty' => $qty,
        		 'option' => null,
       			);
			$cart[$id]= $product_item;
		}


		//resume cart data
    $cart_qty = 0;
    $cart_total = 0;
    $cart_vat = 0;
    $pro = 0;$pro_vat = 0; $ob = 0; $ob_vat = 0;

foreach($cart as $key => $product){


      $data = json_decode($product['data'],true);
//	echo "debug";
	var_dump($data);
      //return $data;
      $price_original = $data[0]['Course_Price'];
      $price = $price_original;
      $target_vat = 0;
      $target_qty = $product['qty'];

	echo "product qty=".$target_qty;
//	 $selector = ($cart[$id]['data']);
     if($data['Price_TVA_Promo'] == 0){
       $price =  $data[0]['Price_TVA'];
     }else{
        $price =  $data[0]['Price_TVA_Promo'];
        //echo "promo";
     }

				if(is_vat_course($data[0]['Course_ID'])){
		  $ob = $ob + ($price * $target_qty);
       }else{
		 $pro = $pro + ($price * $target_qty);
       }
        // update cart data
        $cart_qty = $cart_qty + $target_qty;
       	$cart_vat = $cart_vat + ($target_vat * $target_qty);
       	$cart_total = $cart_total + ($price * $target_qty);
	echo "debug:".$cart_total;		
}

    $data = array(
       "Cart_Qty" => $cart_qty,
       "Cart_Total" => $cart_total,
       "Cart_Vat" => $cart_vat,
       "Pro_Total" => $pro,
       "Pro_Total_Vat" => $pro_vat,
       "OB_Total" => $ob,
       "OB_Total_Vat"=> $ob_vat,
       "Cart" => json_encode($cart)
     );
		//UPDATE
		$seconddb->update('shop_session',$data,array('Signature'=>$signature));


  }else{

		//insert
    $cart = array();
    $product_item = array(
            'data' => get_product($id),
           'qty' => $qty,
           'option' => null,
    );
    $cart[$id]= $product_item;


//	var_dump($cart);
    //resume cart data
    $cart_qty = 0;
    $cart_total = 0;
    $cart_vat = 0;
    $pro = 0;$pro_vat = 0; $ob = 0; $ob_vat = 0;

    foreach($cart as $key => $product){

      $data = json_decode($product['data'],true);

      $price_original = $data[0]['Course_Price'];
      $price = $price_original;
      $target_vat = 0;
      $target_qty = $product['qty'];

      $selector = $data[0];
	var_dump($selector);

     if($selector['Price_TVA_Promo'] == '0'){
        $price =  $selector['Price_TVA'];
      }else{
        $price =  $selector['Price_TVA_Promo'];
        echo "promo";
     }

   if(is_vat_course($data[0]['Course_ID'])){
                  $ob = $ob + ($price * $target_qty);
       }else{
                 $pro = $pro + ($price * $target_qty);
       }


        // update cart data
        $cart_qty = $cart_qty + $target_qty;
       	$cart_vat = $cart_vat + ($target_vat * $target_qty);
       	$cart_total = $cart_total + ($price * $target_qty);

		}

    $data = array(
       "Cart_Qty" => $cart_qty,
       "Cart_Total" => $cart_total,
       "Cart_Vat" => $cart_vat,
       "Pro_Total" => $pro,
       "Pro_Total_Vat" => $pro_vat,
       "OB_Total" => $ob,
       "OB_Total_Vat"=> $ob_vat,
       "Cart" => json_encode($cart),
       "IP" => $_SERVER["HTTP_CF_CONNECTING_IP"],
       "Signature" => get_signature()
     );
     //insert
     	$seconddb->insert('shop_session',$data);
	 }
}

function get_signature(){
         $userAgent = $_SERVER['HTTP_USER_AGENT'];
         $signature = "";
          $browsers = array(
                          array("IE", "Microsoft Internet Explorer"),
                          array("Chrome", "Google Chrome"),
                          array("Firefox", "Mozzila Firefox"),
                          array("Opera", "Opera"),
                          array("Safari", "Apple Safari")
                      );

          foreach($browsers as $browser){
              if (strpos($userAgent, $browser[0]) !== false){
                 $signature = $signature.",".$browser[1];
              }

          }
return md5($_SERVER["HTTP_CF_CONNECTING_IP"]."+".$signature);
}

add_action('init', 'connect_sms');

add_action('init','add_cors_http_header');
add_action("ci_header","display_ci_header");
//add_action('init', 'rewrite_param', 10, 0);
add_action("after_fusion_header","display_ci_cart");
add_action("after_main", "display_ci_content");

//ob_end_clean();
add_action( 'admin_menu', 'ci_menu_page' );

function ci_menu_page() {

	add_menu_page(
		'CI Hybrid Shop', // page <title>Title</title>
		'CI Hybrid', // menu link text
		'manage_options', // capability to access the page
		'ci-hybrid-shop', // page URL slug
		'ci_page_content', // callback function /w content
		'dashicons-star-half', // menu icon
		5 // priority
	);

}

function ci_page_content(){
	echo "<script src='https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js'></script>";
//	echo "<script>$( document ).ready(function() {$('.fusion-header-v1:first').hide()}</script>";
	echo '<div class="col-sm-12 p-4"><h2>CI Hybrid Shop</h2><div class="col-sm-12"><button class="btn btn-info button action" onclick="$.post(\'https://formationlangues.be/wp-content/plugins/ci-hybrid/hook_shop.php\',function(r){console.log(r)});">Re-hook the shop</button></div></div>';

}

Youez - 2016 - github.com/yon3zu
LinuXploit