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/wp-content/plugins/shootin-school-plugin/add_group.php
<?php

if (!class_exists('WP_List_Table')) {
	require_once(ABSPATH . 'wp-admin/includes/class-wp-list-table.php');
}
global $postNumber;
$postNumber = 1;
function add_package_group(){

	//if(isset($_GET['action'])){
		//if($_GET['action'] == 'edit'){

		//	$id = $_GET['id'];
	     //   global $wpdb;
         //  $data =$wpdb->get_row("select * from " . $wpdb->prefix . "siab_package_groups where id ='$id'");

		//
			// <!--div class="wrap">
		 //  	   <div id="Saveress" class="Saveress below-h2"></div>
			// 	<div class="alert alert-info" role="alert">
			// 		<h3> Package Group </h3>


			// 	</div>
			// 	<h4>
			// 		Edit Package
			// 	</h4>
			// 	<form method="post" id="AddGroups">
			// 		<input type="hidden" name="action" value="save_group">
			// 		<input type="hidden" name="id" value="<?php echo $data->id;
			// 		<div>
			// 			<input type="text" required="" name="group" value="<?php echo $data->name;">
			// 		</div>
			// 		<div class="new_list">
			// 		</div>
			// 		<input type="button" value="Save" onclick="SaveGroupData()">
			//    </form>

			// </div-->

		// }else{
  //         global $wpdb;
		//   $table_name = $wpdb->prefix."siab_package_groups";
		//   $id = $_GET['id'];
		//   $wpdb->query("Delete from ".$table_name." where id='".$id."'");

		//   echo '<div class="updated"><p>Package Group Deleted <strong>Successfully...!</strong></p></div>';

		//   Package_add_html();

		// }



	// }else{

	//    Package_add_html();
 //     }
     Package_add_html();

     class Packages_Group_Table extends WP_List_Table
	{
		/**
		 * Prepare the items for the table to process
		 *
		 * @return Void
		 */

		public function prepare_items()
		{
			$columns = $this->get_columns();
			$sortable = $this->get_sortable_columns();

			$data = $this->table_data();

			function usort_reorder($a,$b){
			  $orderby = (!empty($_REQUEST['orderby'])) ? $_REQUEST['orderby'] : 'id'; //If no sort, default to title
			  $order = (!empty($_REQUEST['order'])) ? $_REQUEST['order'] : 'asc'; //If no order, default to asc
			  $result = strnatcmp($a[$orderby], $b[$orderby]); //Determine sort order
			  return ($order==='asc') ? $result : -$result; //Send final sort direction to usort
			}
            usort($data, 'usort_reorder');

			$perPage = 50;
			$currentPage = $this->get_pagenum();
			$totalItems = count($data);

			$this->set_pagination_args(array(
				'total_items' => $totalItems,
				'per_page'    => $perPage
			));

			$data = array_slice($data, (($currentPage - 1) * $perPage), $perPage);

			$this->_column_headers = array($columns, $hidden, $sortable);
			$this->items = $data;
		}

		/**
		 * Override the parent columns method. Defines the columns to use in your listing table
		 *
		 * @return Array
		 */
		public function get_columns()
		{
			$columns = array(
				'id' => 'Sl No',
				'name'	=> 'Group Name',
				'actions' => 'Actions',
			);

			return $columns;
		}

		/**
		 * Define which columns are hidden
		 *
		 * @return Array
		 */
		public function get_hidden_columns()
		{
			return array();
		}

		/**
		 * Define the sortable columns
		 *
		 * @return Array
		 */
		public function get_sortable_columns()
		{
			return array('name' => array('name', false));
		}

		/**
		 * Get the table data
		 *
		 * @return Array
		 */
		private function table_data()
		{
			global $wpdb;
			$data = $wpdb->get_results("SELECT * FROM " .DB_PACKAGE_GROUP, ARRAY_A);

			return $data;
		}

		/**
		 * Define what data to show on each column of the table
		 *
		 * @param  Array $item        Data
		 * @param  String $column_name - Current column name
		 *
		 * @return Mixed
		 */
		public function column_default($item, $column_name)
		{
			switch ($column_name) {
				case 'id':
				   echo $postNumber;
				case 'name':
				  return $item[$column_name];
				default:
					return print_r($item, true);
			}
			$postNumber++;
		}

		function column_actions($item){

		    $actions = array(
		        'edit'      => sprintf('<a href="#" onclick="EditGroup(this)" data-id="'.$item['id'].'">Edit</a>', $_REQUEST['page'],'edit',$item['id']),
		        // 'delete'    => sprintf('<a href="?page=add_package_group&action=delete&id='.$item['id'].'">Delete</a>', $_REQUEST['page'],'delete',$item['id']),
		    );

		    // return sprintf('%1$s %2$s',
		    // 	urlencode(base64_encode($item['id'])),
		    // 	$this->row_actions($actions)
		    // );

		    return sprintf('%1$s <span style="color:silver">(id:%2$s)</span>%3$s',
		        /*$1%s*/ $item['title'],
		        /*$2%s*/ $item['id'],
		        /*$3%s*/ $this->row_actions($actions)
		    );
		}

		/**
		 * Allows you to sort the data by the variables set in the $_GET
		 *
		 * @return Mixed
		 */
		private function sort_data($a, $b)
		{
			// Set defaults
			$orderby = 'id';
			$order = 'asc';

			// If orderby is set, use this as the sort column
			if (!empty($_GET['orderby'])) {
				$orderby = $_GET['orderby'];
			}

			// If order is set use this as the order
			if (!empty($_GET['order'])) {
				$order = $_GET['order'];
			}

			$result = strcmp($a[$orderby], $b[$orderby]);

			if ($order === 'asc') {
				return $result;
			}

			return -$result;
		}


	}
	$importedListTables = new Packages_Group_Table();
	$importedListTables->prepare_items();
    ?>
 	<div class="wrap">

		<?php $importedListTables->display(); ?>
	</div>
	<?php


}
add_action( 'wp_ajax_nopriv_save_group', 'save_group' );
add_action( 'wp_ajax_save_group', 'save_group' );
add_action( 'wp_ajax_nopriv_get_group_modal', 'get_group_modal' );
add_action( 'wp_ajax_get_group_modal', 'get_group_modal' );



	function get_group_modal() {
		$id = $_POST['id'];
	    global $wpdb;
        $data =$wpdb->get_row("select * from " . DB_PACKAGE_GROUPS . " where id ='$id'");
        $html='<div class="modal-dialog">
               <div class="modal-content">
                    <div class="EditGroups"></div>

				        <div class="modal-header">
				          <button type="button" class="close" data-dismiss="modal">&times;</button>
				          <h4 class="modal-title">Edit Package Group </h4>
				        </div>
				        <div class="modal-body edit_modal">
				        <form method="post" id="EditGroups">
				        	<input type="hidden" name="action" value="save_group">
				        	<label>Name</label>
							<input type="hidden" name="id" value="'.$data->id.'">
							<div class="form-group">
							  <input type="text" required="" name="group[]" form-control" value="'.$data->name.'">
						   </div>
				         </form>
				        </div>
				        <div class="modal-footer">
				          <button type="button" class="btn btn-primary" onclick="EditGroupData()">Save</button>
				          <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
				        </div>

		      </div>

		    </div>';
		$statusArr = array("status" => TRUE,"html" =>$html , "message" => "You have successfully Added");
	    die( json_encode($statusArr));
	}
	function save_group() {
		global $wpdb;

        if($_POST['id']){
        	$args=array(


               "name" =>$_POST['group'],
           );
        	$where=array("id" => $_POST['id']);
        	$sql = $wpdb->update(DB_PACKAGE_GROUPS, $args, $where);

	        $statusArr = array("status" => TRUE,"type" =>1 ,"message" => "You have successfully Updated");
	        die( json_encode($statusArr));


        }else{
        	$qty = $_POST['group'];

			foreach($qty as $value) {


				$args=array(


                  "name" =>$value,
               );
				$sql = $wpdb->insert($table_name, $args);

			}



	        $statusArr = array("status" => TRUE,"type" =>0 , "message" => "You have successfully Added");
	         die( json_encode($statusArr));

        }


	}
	function Package_add_html(){?>
		<div class="wrap">
	  	   <div id="Saveress" class="Saveress below-h2"></div>


			<div class="alert alert-info" role="alert" style="border: 1px solid green;border-radius: 5px;">
				<h3> Package Group </h3><br><br><br>

				<a class="add-new-h2 btn btn-success" href="admin.php?page=siab-packages">Instructor Packages</a>
			</div>

			<label>
				Add Package
			</label>
			<form method="post" id="AddGroups">
				<input type="hidden" name="action" value="save_group">
				<input type="hidden" name="id" value="">
				<div class="primary-block">
                    <div class="form-group">
					   <input type="text" value="" required="" name="group[]" class="form-control">
					</div>
					<div class="new_list">
					</div>
					 <input type="button" onclick="AddNew()" value="Add more" class="add-more btn-sm button-secondary button">





				</div>





				<div class="text-right">
					<input type="button" value="Save" onclick="SaveGroupData()" class="button-primary button">
				</div>
		   </form>


		</div>

<div class="modal fade" id="edit_modal" role="dialog">

  </div>
</div>



<?php }

?>