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' );
}
}
}
}
?>