HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: /var/www/html/shootinschool/woocommerce/woocommerce.php
<?php 
 

 error_log("*********** woocommerce_payment_complete *************");

   
 if ( ! $order_id )
	 return;

 global $wpdb;
 $the_order = wc_get_order( $order_id );


 $customer_id = $the_order->get_customer_id();
 // $customer_id = $the_order->get_user_id();
 error_log("customer_id: " . $customer_id);
 $onecheck = 0;
 $order_items = $the_order->get_items();
 foreach ( $order_items as $order_item ) {
	 $gravity_forms_history = null;
	 $entry_id = false;

	 $meta_data = $order_item->get_meta_data();
	 if ( WC_GFPA_Compatibility::is_wc_version_gte_3_2() ) {
		 foreach ( $meta_data as $meta_data_item ) {
			 $d = $meta_data_item->get_data();
			 if ( $d['key'] == '_gravity_forms_history' ) {
				 $gravity_forms_history = array( $meta_data_item );
				 break;
			 }
		 }
	 } else {
		 $gravity_forms_history = wp_list_filter( $meta_data, array( 'key' => '_gravity_forms_history' ) );
	 }

	 // error_log("**** gravity_forms_history : ");
	 // error_log( print_r($gravity_forms_history, TRUE) );

	 if ( $gravity_forms_history ) {
		 $gravity_forms_history_value = array_pop( $gravity_forms_history );
		 $entry_id = isset( $gravity_forms_history_value->value['_gravity_form_linked_entry_id'] ) && ! empty( $gravity_forms_history_value->value['_gravity_form_linked_entry_id'] ) ?
			 $gravity_forms_history_value->value['_gravity_form_linked_entry_id'] : false;

		 $entry = GFAPI::get_entry( $entry_id );

		 if ( $entry_id && ! is_wp_error( $entry_id ) ) {

			 $form_id = $entry['form_id'];

			  // Restrict only 3 gravity forms
			 if( in_array($form_id, [GF_GROUP_FORM_ID, GF_INDIVIDUAL_FORM_ID, GF_UNLIMITED_FORM_ID]) ){

				 // error_log("**** entry_id : " . $entry_id);
				 // error_log("**** form_id : " . $form_id);

				 // $form = GFFormsModel::get_form_meta( $form_id );
				 $planHiddenName = rgar( $entry, '9' );
				 $planData = rgar( $entry, '1' );
				 $sanitizedPlanData = explode( chr( 1 ), str_replace( array(' ', '|' ), chr( 1 ), $planData ) );

				 $credits = NULL;
				 $expiry = NULL;
				 $billable = 0;
				 $unlimited_type = NULL;
				 $today = date("Y-m-d");

				 if($planHiddenName == 'unlimited'){
					 // $billable = 0;
					 $expiry = date("Y-m-d", strtotime($today ." +1 month"));
					 $unlimited_type = strtolower( $sanitizedPlanData[0] );

				   
					 
				 } else if( in_array($planHiddenName, ['group', 'individual']) ){
					 $credits = (int)$sanitizedPlanData[0] * $order_item->get_quantity();
					 global $woocommerce;
					 $items = $woocommerce->cart->get_cart();
					 error_log("*********** count_of_items *************".count($items));
					 // foreach($items as $item) {
						 // error_log("*********** _gravity_form_lead *************".$item['_gravity_form_lead'][9]);
						 // if( in_array('_gravity_form_lead', $item) ){
					 // $pieces = explode(" ", $item['_gravity_form_lead'][1]);
					 // error_log("*********** count_of_pieces *************".$pieces[0]);
					 $queryCheck = "SELECT id,start_credits FROM " . DB_WC_GF_CUSTOMER_PURCHASES . " WHERE customer_id = $customer_id AND order_id != $order_id  GROUP BY order_id  ORDER BY id DESC";
					 $dataCheck = $wpdb->get_results($queryCheck, ARRAY_A);
					if($onecheck == 0){
					 if(count($dataCheck) == 1){
						 $queryData = "SELECT id,start_credits,order_id,package_hidden_name FROM " . DB_WC_GF_CUSTOMER_PURCHASES . " WHERE customer_id = $customer_id ORDER BY id DESC";
						 $dataList = $wpdb->get_results($queryData, ARRAY_A);
						 $check = 0;
						 $checkValue = 0;
						 foreach($dataList as $listData){
							 if($order_id != $listData['order_id']){
								 error_log("*********** reached here21 *************".$credits);
									 if(($listData['start_credits'] == 1) && (int)$credits != 1 ){
										 error_log("*********** reached here28 *************".$credits);
										 
										 $check = 1;
										 $checkValue = (int)$checkValue+1;
										 $onecheck = 1;
									 }else{
										 $check = 0;
										 $checkValue = 0;
									   
									  
									 }
									 if($listData['start_credits'] > 1){
										 $check = 0;
										 $checkValue = 0;
										 break;
									 }
								
						 }
							 
						 }
						 if($check == 1){
							 error_log("*********** reached here13 *************".$listData['package_hidden_name']);
							 error_log("*********** reached here20 *************".$credits);
							 if(($credits  == 5) || ($credits  == 10)){
								 error_log("*********** reached here14 *************".$credits);
								 $credits = (int)$credits-(int)$checkValue;
							 }
						 }
					 }
				 }
				 // }
						 error_log("*********** reached here3 *************".$check);
						 error_log("*********** reached here10 *************".$listData['package_hidden_name']);
						 
						 
					 // }
				 }
				 $customer_purchase_amt = $the_order->get_total();
				 error_log("*********** reached here2 *************");
				 $args = array(
					 "customer_id" => $customer_id,
					 "order_id" => (int)$order_id,
					 "gf_form_id" => (int)$form_id,
					 "gform_entry_id" => (int)$entry_id,
					 "package_hidden_name" => $planHiddenName,
					 "credits" => $credits,
					 "start_credits" => $credits,
					 "is_unlimited_type" => $unlimited_type,
					 "expiry" => $expiry
				 );

				 $query = "SELECT COUNT(customer_id) FROM " . DB_WC_GF_CUSTOMER_PURCHASES . " WHERE customer_id = $customer_id";
				 $data = $wpdb->get_row($query, ARRAY_A);
				 if($credits == 1 && $data['COUNT(customer_id)'] == 0 ){
					 $args["customer_purchase_amt"] = $customer_purchase_amt;
				 }
				 $sqlInsert = $wpdb->insert(DB_WC_GF_CUSTOMER_PURCHASES, $args);
				 $purchase_id = $wpdb->insert_id;
				  //---------------------mail--------------------------
				  $current_user_id = $customer_id;
				  $query = "SELECT * FROM " . DB_WC_GF_CUSTOMER_PURCHASES . " WHERE customer_id = $current_user_id  ORDER BY id ASC";
				  $purchases = $wpdb->get_results($query, ARRAY_A);
				 //  if (count($purchases) == 1) {
				 //      $email_user = $wpdb->get_row("SELECT * FROM ".DB_EMAILS." WHERE id = 52", ARRAY_A);
				 //              $user = $wpdb->get_row("SELECT * FROM ".DB_USERS." WHERE ID = $current_user_id", ARRAY_A);
				 //              $cust_email = $user['user_email'];
				 //              $cust_msg = $email_user['body'];
				 //              $cust_subject = $email_user['subject'];
				 //              /* Customer */
				 //              preg_match_all('/{(.*?)}/', $cust_msg, $matches);
				 //              if(in_array("customer_name", $matches[1])){
				 //                  $cust_msg = str_replace('{customer_name}',$user['display_name'],$cust_msg);
				 //              }

				 //              $headers[] = 'Content-Type: text/html; charset=UTF-8';
				 //              $headers[] = 'From: ShootInSchool <noreply@shootinschool.com>';
				 //              $headers[] = 'Cc: shootinschool@gmail.com';
				 //              if($email_user['notify_via_email']==1){
				 //                  try {
				 //                      //code...
				 //                      wp_mail($cust_email, $cust_subject, $cust_msg, $headers);
					  
				 //                  } catch (Exception $th) {
				 //                      //throw $th;
				 //                  }
				 //              }
					  
				 //  }
				  //---------------------mail--------------------------
				 // Manage Recurring Subscription for Unlimited Packages
				
				 if($planHiddenName == 'unlimited'){
					 $args = array(
						 "customer_purchase_id" => $wpdb->insert_id,
						 "next_payment_charging_amount" => (int)$customer_purchase_amt
					 );
					 $sqlInsert = $wpdb->insert(DB_WC_GF_CUSTOMER_PURCHASES_RECURRING, $args);
					 $first_name = rgar( $entry, '8.3' );
					 $last_name = rgar( $entry, '8.6' );
					 $query = "SELECT id FROM " . DB_CHILD_DETAILS . " WHERE user_id = '$customer_id' AND LOWER(first_name) = LOWER('$first_name') AND LOWER(last_name) = LOWER('$last_name')";
					 $data = $wpdb->get_row($query);
					 $query2 = "SELECT * FROM ".DB_WC_GF_CUSTOMER_PURCHASES." WHERE order_id=".(int)$order_id;
				  
					 
					 $myCredit = $wpdb->get_row($query2);
					 
					

					 //if($wpdb->num_rows == 0){
						 $args = array(
							 "user_id" => $customer_id,
							 "first_name" => $first_name,
							 "last_name" => $last_name,
							 "grade" => rgar( $entry, '5' ),
							 "jersey_size" => rgar( $entry, '7' ),
							 "child_type" => $planHiddenName,
							 "purchase_id" => $purchase_id,
							 "school_name" => rgar( $entry, '12' ),
							 "child_dob" => rgar( $entry, '14' ),
							 "profile_image" => rgar( $entry, '13' )
							
						 );
						 $sqlInsert = $wpdb->insert(DB_CHILD_DETAILS, $args);
					 //}
				 } else{
					 // Add Child Details
					 $first_name = rgar( $entry, '8.3' );
					 $last_name = rgar( $entry, '8.6' );
					 $query = "SELECT id FROM " . DB_CHILD_DETAILS . " WHERE user_id = '$customer_id' AND LOWER(first_name) = LOWER('$first_name') AND LOWER(last_name) = LOWER('$last_name')";
					 $data = $wpdb->get_row($query);
					 
					 $query2 = "SELECT * FROM ".DB_WC_GF_CUSTOMER_PURCHASES." WHERE order_id=".(int)$order_id;
				  
					 error_log("*********** reached here11 *************".$listData['package_hidden_name']);
					 $myCredit = $wpdb->get_row($query2);

					 //if($wpdb->num_rows == 0){
						 $args = array(
							 "user_id" => $customer_id,
							 "first_name" => $first_name,
							 "last_name" => $last_name,
							 "grade" => rgar( $entry, '5' ),
							 "jersey_size" => rgar( $entry, '7' ),
							 "child_type" => $planHiddenName,
							 "purchase_id" => $purchase_id,
							 "school_name" => rgar( $entry, '12' ),
							 "child_dob" => rgar( $entry, '14' ),
							 "profile_image" => rgar( $entry, '13' )
						 );
						 $sqlInsert = $wpdb->insert(DB_CHILD_DETAILS, $args);
					 //}
				 }

			 } else if( $form_id == GF_TEAM_FORM_ID ){ // Team Instruction

				 // error_log("************** GF_TEAM_FORM_ID : Team Instruction **************");

				 // Handle Dynamic Package Assigning
				 $planHiddenName = rgar( $entry, '9' );
				 $credits = $order_item->get_quantity();
				 $unlimited_type = NULL;
				 $expiry = NULL;
				 
				 $query2 = "SELECT * FROM ".DB_WC_GF_CUSTOMER_PURCHASES." WHERE order_id=".(int)$order_id;
				  
					 
				 $myCredit = $wpdb->get_row($query2);

				 // $queryCheck = "SELECT id,credits FROM " . DB_WC_GF_CUSTOMER_PURCHASES . " WHERE customer_id = $customer_id GROUP BY order_id  ORDER BY id DESC";
				 // $dataCheck = $wpdb->get_results($queryCheck, ARRAY_A);
				 // $query = "SELECT id,credits FROM " . DB_WC_GF_CUSTOMER_PURCHASES . " WHERE customer_id = $customer_id GROUP BY order_id ORDER BY id DESC LIMIT 1";
				 // $data2 = $wpdb->get_row($query, ARRAY_A);
				 // if(count($dataCheck) == 1){
				 //     $queryData = "SELECT id,credits FROM " . DB_WC_GF_CUSTOMER_PURCHASES . " WHERE customer_id = $customer_id ORDER BY id DESC";
				 //     $dataList = $wpdb->get_results($queryData, ARRAY_A);
				 //     foreach($dataList as $listData){
				 //         if($credits  != 1){
						 
				 //             $credits = (int)$credits-1;
				 //         }
				 //     }
					 
				 // }
				 // error_log("*********** reached here1 *************");
				 error_log("*********** reached here12 *************".$listData['package_hidden_name']);
				 $args = array(
					 "customer_id1" => $customer_id,
					 "order_id" => (int)$order_id,
					 "gf_form_id" => (int)$form_id,
					 "gform_entry_id" => (int)$entry_id,
					 "package_hidden_name" => $planHiddenName,
					 "credits" => $credits,
					 "start_credits" => $credits,
					 "is_unlimited_type" => $unlimited_type,
					 "expiry" => $expiry
				 );
				 $sqlInsert = $wpdb->insert(DB_WC_GF_CUSTOMER_PURCHASES, $args);
				  //---------------------mail--------------------------
				  $current_user_id = $customer_id;
				  $query = "SELECT * FROM " . DB_WC_GF_CUSTOMER_PURCHASES . " WHERE customer_id = $current_user_id  ORDER BY id ASC";
				  $purchases = $wpdb->get_results($query, ARRAY_A);
				 //  if (count($purchases) == 1) {
				 //      $email_user = $wpdb->get_row("SELECT * FROM ".DB_EMAILS." WHERE id = 52", ARRAY_A);
				 //              $user = $wpdb->get_row("SELECT * FROM ".DB_USERS." WHERE ID = $current_user_id", ARRAY_A);
				 //              $cust_email = $user['user_email'];
				 //              $cust_msg = $email_user['body'];
				 //              $cust_subject = $email_user['subject'];
				 //              /* Customer */
				 //              preg_match_all('/{(.*?)}/', $cust_msg, $matches);
				 //              if(in_array("customer_name", $matches[1])){
				 //                  $cust_msg = str_replace('{customer_name}',$user['display_name'],$cust_msg);
				 //              }

				 //              $headers[] = 'Content-Type: text/html; charset=UTF-8';
				 //              $headers[] = 'From: ShootInSchool <noreply@shootinschool.com>';
				 //              $headers[] = 'Cc: shootinschool@gmail.com';
				 //              if($email_user['notify_via_email']==1){
				 //                  try {
				 //                      //code...
				 //                      wp_mail($cust_email, $cust_subject, $cust_msg, $headers);
					  
				 //                  } catch (Exception $th) {
				 //                      //throw $th;
				 //                  }
				 //              }
					  
				 //  }
				  //---------------------mail--------------------------
			 }

			 $order = new WC_Order($order_id);

			 if (!empty($order)) {
				 $order->update_status( 'completed' );
			 }
		 }
	 }
 }

?>