https://t.me/RX1948
Server : Apache/2.4.18 (Ubuntu)
System : Linux canvaswebdesign 3.13.0-71-generic #114-Ubuntu SMP Tue Dec 1 02:34:22 UTC 2015 x86_64
User : oppastar ( 1041)
PHP Version : 7.0.33-0ubuntu0.16.04.15
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_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
Directory :  /proc/self/root/var/www/laciasmara.com/public_html/shop/application/controllers/admin/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //proc/self/root/var/www/laciasmara.com/public_html/shop/application/controllers/admin/Wishlist.php
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

class Wishlist extends Admin_Controller
{

	function __construct()
	{
		parent::__construct();
		$this->load->model('wishlist_m');
	}

	//this is to list all wishlist
	public function index()
	{
		//fetch all wishlist
		$this->db->distinct();
		$this->db->select('id_wishlist, customer_id, product_id')->from('wishlist');
		$this->db->order_by('id_wishlist', 'DESC'); // Order by id_wishlist in descending order
		$this->data['wishlists'] = $this->db->get()->result();

		//load view
		$this->data['subview'] = 'admin/wishlist/index';
		$this->load->view('admin/templates/header', $this->data_header);
		$this->load->view('admin/_layout_main', $this->data);
		$this->load->view('admin/templates/footer');
	}

	public function manage()
	{
		$data['userdata'] = $this->session->userdata();
		$data['title'] = 'Daftar Wishlist | Laciasmara';
		$data['wishlists'] = $this->wishlist_m->get_all_wishlists();

		$this->load->view('admin_new/layouts/header', $data);
		$this->load->view('admin_new/wishlists/manage_wishlists');
		$this->load->view('admin_new/layouts/footer');
	}

	public function get_wishlists()
	{
		$sort = $this->input->get('sort', true);
		$dateFilter = $this->input->get('date_filter', true);
		$startDate = $this->input->get('start_date', true);
		$endDate = $this->input->get('end_date', true);

		$page = (int) ($this->input->get('page', true) ?? 1);
		$limit = (int) ($this->input->get('limit', true) ?? 10);
		$offset = ($page - 1) * $limit;

		$searchTerm = $this->input->get('search', true);

		// Query utama
		$this->db->select('w.*, p.title as product_title, c.name as customer_name, c.email as customer_email, IFNULL(c.shipping_phone, "-") as customer_phone');
		$this->db->from('wishlists w');
		$this->db->join('products p', 'p.id_products = w.product_id', 'left');
		$this->db->join('customers c', 'c.id_customers = w.customer_id', 'left');

		// Filter berdasarkan tanggal
		if ($dateFilter) {
			switch ($dateFilter) {
				case 'today':
					$this->db->where('DATE(w.created_at) = CURDATE()');
					break;
				case 'yesterday':
					$this->db->where('DATE(w.created_at) = DATE_SUB(CURDATE(), INTERVAL 1 DAY)');
					break;
				case 'last7days':
					$this->db->where('w.created_at >= DATE_SUB(CURDATE(), INTERVAL 7 DAY)');
					break;
				case 'last30days':
					$this->db->where('w.created_at >= DATE_SUB(CURDATE(), INTERVAL 30 DAY)');
					break;
				case 'thisMonth':
					$this->db->where('MONTH(w.created_at) = MONTH(CURDATE()) AND YEAR(w.created_at) = YEAR(CURDATE())');
					break;
				case 'thisYear':
					$this->db->where('YEAR(w.created_at) = YEAR(CURDATE())');
					break;
				case 'custom':
					if (!empty($startDate) && !empty($endDate)) {
						$this->db->where('w.created_at >=', $startDate);
						$this->db->where('w.created_at <=', $endDate);
					}
					break;
			}
		}

		// Filter berdasarkan tanggal
		if ($dateFilter == 'custom' && !empty($startDate) && !empty($endDate)) {
			$this->db->where('w.created_at >=', $startDate);
			$this->db->where('w.created_at <=', $endDate);
		}

		// Filter berdasarkan pencarian
		if (!empty($searchTerm)) {
			$this->db->group_start();
			$this->db->like('p.title', $searchTerm);
			$this->db->or_like('c.name', $searchTerm);
			$this->db->or_like('c.email', $searchTerm);
			$this->db->or_like('c.shipping_phone', $searchTerm);
			$this->db->or_like('c.phone', $searchTerm);
			$this->db->or_like('w.variant', $searchTerm);
			$this->db->group_end();
		}

		// Menghitung total data
		$totalRecords = $this->db->count_all_results('', false);

		// Sorting
		switch ($sort) {
			case 'paling_baru':
				$this->db->order_by('w.created_at', 'DESC');
				break;
			case 'paling_lama':
				$this->db->order_by('w.created_at', 'ASC');
				break;
			default:
				$this->db->order_by('w.created_at', 'DESC');  // Default sorting
		}

		// Pagination
		$this->db->limit($limit, $offset);

		$query = $this->db->get();
		$wishlists = $query->result();

		// Hasil akhir
		$pagination = [
			'total_records' => $totalRecords,
			'total_pages' => ceil($totalRecords / $limit),
			'current_page' => $page,
			'limit' => $limit
		];

		foreach ($wishlists as $wishlist) {
			$wishlist->_pagination = $pagination;
		}

		echo json_encode($wishlists);
	}
}

https://t.me/RX1948 - 2025