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 :  /var/www/laciasmara.com/public_html/shop/application/controllers/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /var/www/laciasmara.com/public_html/shop/application/controllers/Cart.php
<?php if (!defined('BASEPATH')) {

  exit('No direct script access allowed');

}

class Cart extends Public_Controller

{

  public function __construct()

  {

    parent::__construct();

    $this->load->model('cart_model');

    $this->load->model('product_m');

    $this->load->model('customer_m');

    $this->load->model('Footer_m');

    $this->load->model('Category_m');

    $this->load->model('Statistic_m');

    $this->load->library('VisitorTracking');



    $this->load->library('form_validation');

    $this->load->library('cart');

  }

  public function index()

  {

    $this->load->library('GoogleClient');

    $this->load->model('Top_banner_m');

    $this->visitortracking->trackVisitor();



    $loginUrl = $this->googleclient->getLoginUrl();



    $this->data_footer['googleUrl'] = $loginUrl;

    $website_data = $this->db->select('website_icon, browser_title, meta_description')

      ->from('configuration')

      ->where('id_configuration', 1)

      ->get()

      ->row();

    if ($this->session->userdata('site_lang') == 'english') {

      $this->lang->load('mainpage', 'english');

    } else {

      $this->lang->load('mainpage', 'indonesian');

    }



    $this->visitortracking->trackVisitor();

    if ($this->session->userdata('customer')) {

      $id_customer = (int) $this->session->userdata('customer')['customer_id'];

      $this->data['customer'] = $this->customer_m->get_customer($id_customer);

    }

    $banners = $this->Top_banner_m->get_active_banners();



    $meta_description = ($this->session->userdata('site_lang') == 'english')

      ? "Pleasure is waiting in your cart. Checkout and try your instruments of love today!"

      : "Sensasi nikmat sudah menunggu di keranjang. Checkout dan cobain piranti asmara hari ini!";



    // Prepare header data

    $this->data_header = [

      'website_icon' => $website_data->website_icon,

      'browser_title' => ucwords($website_data->browser_title) . ' - My Cart',

      'meta_description' => $meta_description,

      'banners' => $banners,

      'logo_path' => 'https://storage.googleapis.com/laciasmara-photos/laciaasmara_assets/laciasmara_landing_page/laciasmara_landing_page_logo.webp',

      'footer_categories' => $this->Footer_m->get_all_categories(),

      'footer_social_media' => $this->Footer_m->get_social_media(),

      'footer_payment_methods' => $this->Footer_m->get_payment_methods(),

      'footer_asmaradoor' => $this->Footer_m->get_asmaradoor(),

      'footer_bottom' => $this->Footer_m->get_footer_bottom()

    ];



    $this->data_footer['popular_categories'] = $this->Category_m->get_footer_popular_categories();

    $this->data_footer['trending_searches'] = $this->Statistic_m->get_trending_searches();



    $this->session->set_userdata('is_from_cart', 'yes');

    $this->load->view("themes/3/header_new", $this->data_header);

    $this->load->view('cart_new');

    $this->load->view("themes/3/footer_new", $this->data_footer);

  }



  public function cart_new()

  {

    $this->visitortracking->trackVisitor();

    $this->load->library('GoogleClient');

    $this->load->model('Top_banner_m');



    $loginUrl = $this->googleclient->getLoginUrl();



    $this->data_footer['googleUrl'] = $loginUrl;

    $website_data = $this->db->select('website_icon, browser_title, meta_description')

      ->from('configuration')

      ->where('id_configuration', 1)

      ->get()

      ->row();



    if ($this->session->userdata('site_lang') == 'english') {

      $this->lang->load('mainpage', 'english');

    } else {

      $this->lang->load('mainpage', 'indonesian');

    }



    $this->visitortracking->trackVisitor();

    if ($this->session->userdata('customer')) {

      $id_customer = (int) $this->session->userdata('customer')['customer_id'];

      $this->data['customer'] = $this->customer_m->get_customer($id_customer);

    }

    $banners = $this->Top_banner_m->get_active_banners();



    // Prepare header data

    $this->data_header = [

      'website_icon' => $website_data->website_icon,

      'browser_title' => $website_data->browser_title,

      'meta_description' => $website_data->meta_description,

      'banners' => $banners,

      'logo_path' => 'https://storage.googleapis.com/laciasmara-photos/laciaasmara_assets/laciasmara_landing_page/laciasmara_landing_page_logo.webp',

    ];



    // Load views

    $this->load->view("themes/3/header_new", $this->data_header);

    $this->load->view('cart_new');

    $this->load->view("themes/3/footer_new", $this->data_footer);

  }



  public function add()

  {

    //check if there is post request, if not, reject & redirect

    if (empty($_POST)) {

      redirect('cart');

    }



    $data['id'] = (int) $this->input->post('product_id');

    $data['name'] = ucwords($this->input->post('product_name'));

    $data['qty'] = (int) $this->input->post('qty');

    $data['price'] = (int) $this->input->post('price');

    $data['options']['warehouse_name'] = '';

    $data['options']['warehouse_id'] = null;



    //check if this item has discount

    $discount_price = $this->db

      ->select('discounted_price')

      ->from('product_details')

      ->where('id', (int) $this->input->post('product_id'))

      ->get()

      ->row()->discounted_price;



    if ($discount_price > 0) {

      $data['options']['has_discount'] = 'yes';

    } else {

      $data['options']['has_discount'] = 'no';

    }



    $this->cart->product_name_rules = '[:print:]'; //this is to eliminate cart product name restriction on special characters

    $this->cart->insert($data);

    redirect('cart');

  }



  public function add_to_cart()

  {

    $this->load->library('session');

    $this->load->library('user_agent');

    $this->load->model('Cart_model');



    if ($this->input->server('REQUEST_METHOD') !== 'POST') {

      echo json_encode(['status' => 'error', 'message' => 'Invalid request method.']);

      return;

    }



    $id_customer = $this->session->userdata('customer')['customer_id'] ?? null;

    $cart_items = $this->session->userdata('temp_cart') ?? [];



    // Kirim data POST ke model untuk validasi & mendapatkan detail produk

    $post_data = $this->input->post();

    $product_data = $this->Cart_model->get_product_data($post_data);



    if ($product_data['status'] === 'error') {

      echo json_encode($product_data);

      return;

    }



    // Jika user belum login, simpan ke session sementara

    if (!$id_customer) {

      $cart_items[] = $product_data['data'];

      $this->session->set_userdata('temp_cart', $cart_items);



      echo json_encode([

        'status' => 'error',

        'message' => 'Redirect to login'

      ]);

      return;

    }



    // Jika user sudah login, tambahkan ke keranjang

    $result = $this->Cart_model->add_to_cart($product_data['data'], $id_customer);

    echo json_encode($result);

  }







  public function get_cart_items()

  {



    $cart_items = $this->cart->contents();



    $items = [];



    foreach ($cart_items as $item) {

      $items[] = [

        'rowid' => $item['rowid'],

        'id' => $item['id'],

        'detail_id' => $item['detail_id'],

        'variant' => $item['variant'],

        'name' => $item['name'],

        'stock' => $item['options']['stock'],

        'qty' => $item['qty'],

        'price' => $item['price'],

        'image' => $item['options']['image'],

        'discount_status' => $this->session->userdata('cart_has_discounted_items'),

        'subtotal' => $item['qty'] * $item['price']

      ];

    }



    echo json_encode([

      'status' => 'success',

      'items' => $items,

      'total_items' => $this->cart->total_items(),

    ]);

  }



  public function update_quantity()

  {

    $rowid = $this->input->post('rowid');

    $action = $this->input->post('action');



    if (!$rowid || !$action) {

      echo json_encode(['status' => 'error', 'message' => 'Ada yang aneh nih, coba refresh halaman dulu ya']);

      return;

    }



    $cart_item = $this->cart->get_item($rowid);



    if (empty($cart_item) || !isset($cart_item['options']['stock'])) {

      echo json_encode(['status' => 'error', 'message' => 'Itemnya hilang dari keranjang kamu, coba refresh halaman ini ya']);

      return;

    }



    $current_stock = (int) $cart_item['options']['stock'];

    $stock_keep = (int) $cart_item['options']['stock_keep'];



    $available_stock = $current_stock - $stock_keep;



    $new_qty = $cart_item['qty'];



    if ($action === 'increase') {

      if ($new_qty < $available_stock) {

        $new_qty++;

      } else {

        echo json_encode(['status' => 'error', 'message' => "Yaah engga bisa ditambahin lagi, stoknya udah mentok nih."]);

        return;

      }

    } elseif ($action === 'decrease') {

      if ($new_qty > 1) {

        $new_qty--;

      } else {

        echo json_encode(['status' => 'error', 'message' => 'Jumlah minimal beli 1 ye, kalau mau hapus item, klik tombol hapus']);

        return;

      }

    }



    if (isset($this->session->userdata('customer')['customer_id'])) {

      // Ambil reseller_id dari session customer

      $reseller_id = $this->db->select('reseller_id')

        ->from('customers')

        ->where('id_customers', $this->session->userdata('customer')['customer_id'])

        ->get()

        ->row()

        ->reseller_id;



      if ($reseller_id) {

        // Cek apakah harga reseller dan min_quantity ada

        $this->db->select('price, min_quantity')

          ->from('resellers_price')

          ->where('reseller_id', $reseller_id)

          ->where('product_detail_id', $cart_item['id']);

        $reseller_price_data = $this->db->get()->row();



        if ($reseller_price_data) {

          // Jika harga reseller tersedia, gunakan harga reseller

          $cart_item['price'] = $reseller_price_data->price;



          // Pastikan kuantitas tidak kurang dari min_quantity

          if ($new_qty < $reseller_price_data->min_quantity) {

            echo json_encode([

              'status' => 'error',

              'message' => "Sorry, minimum quantity for reseller is {$reseller_price_data->min_quantity} pcs. Please choose higher quantity."

            ]);

            return;

          }

        } else {

          // Jika harga reseller tidak ada, gunakan harga biasa

          $cart_item['price'] = $cart_item['price'];

        }

      }

    }



    $data = [

      'rowid' => $rowid,

      'qty' => $new_qty,

      'price' => $cart_item['price']

    ];



    if ($this->cart->update($data)) {

      echo json_encode(['status' => 'success']);

    } else {

      echo json_encode(['status' => 'error', 'message' => 'Gagal memperbarui kuantitas']);

    }

  }



  public function remove($rowid)

  {

    $data = [

      'rowid' => $rowid,

      'qty' => 0,

    ];

    $this->cart->update($data);

    redirect('cart');

  }



  public function removes($rowid)

  {

    if ($rowid == "all") {

      $this->cart->destroy();

    } else {

      $data = [

        'rowid' => $rowid,

        'qty' => 0,

      ];

      $this->cart->update($data);

    }

    redirect('category/all-categories', 'refresh');

  }



  // public function remove_item()

  // {

  //   $rowid = $this->input->post('rowid');

  //   $detail_id = $this->input->post('detail_id');

  //   $csrf = $this->security->get_csrf_hash(); // Generate CSRF hash baru



  //   if ($rowid) {

  //     $data = [

  //       'rowid' => $rowid,

  //       'qty' => 0,

  //     ];

  //     $this->cart->update($data);



  //     echo json_encode([

  //       'status' => 'success',

  //       'total_items' => $this->cart->total_items(), // Kirim total items baru

  //       'subtotal' => $this->cart->total(), // Kirim subtotal baru

  //       'csrf' => $csrf // Kirim CSRF hash baru

  //     ]);

  //   } else {

  //     echo json_encode([

  //       'status' => 'error',

  //       'message' => 'Item tidak ditemukan.',

  //       'csrf' => $csrf

  //     ]);

  //   }

  // }





  public function remove_item()

  {

    $this->load->library('cart');

    $this->load->library('session');



    $rowid = $this->input->post('rowid');

    $detail_id = $this->input->post('detail_id');

    $csrf = $this->security->get_csrf_hash(); // Generate CSRF hash baru



    if ($rowid) {

      // Hapus item dari keranjang

      $data = [

        'rowid' => $rowid,

        'qty' => 0,

      ];

      $this->cart->update($data);



      // Periksa apakah masih ada produk dengan diskon di keranjang

      $cart_items = $this->cart->contents();

      $has_discounted_items = false;



      foreach ($cart_items as $item) {

        // Query database untuk memeriksa apakah produk memiliki harga diskon

        $product = $this->db->select('discounted_price')

          ->where('id', $item['id'])

          ->get('product_details')

          ->row();



        if ($product && $product->discounted_price > 0) {

          $has_discounted_items = true;

          break;

        }

      }



      if ($has_discounted_items) {

        $this->session->set_userdata('cart_has_discounted_items', 'yes');

      } else {

        $this->session->unset_userdata('cart_has_discounted_items');

      }



      // Kirim respons dengan data terbaru

      echo json_encode([

        'status' => 'success',

        'total_items' => $this->cart->total_items(), // Kirim total items baru

        'subtotal' => $this->cart->total(), // Kirim subtotal baru

        'csrf' => $csrf // Kirim CSRF hash baru

      ]);

    } else {

      // Jika rowid tidak ditemukan

      echo json_encode([

        'status' => 'error',

        'message' => 'Item tidak ditemukan.',

        'csrf' => $csrf

      ]);

    }

  }





  public function get_suggested_products($product_id)

  {

    $product = $this->db->get_where('products', ['id_products' => $product_id])->row();

    $suggested_products = [];



    if ($product) {

      $product_suggest = $product->product_suggest;

      if (!empty($product_suggest)) {

        $suggested_ids = explode(',', $product_suggest);

        $suggested_products = $this->db->select('

                p.id_products, 

                p.title, 

                p.alias,

                p.brand_id,

                pd.id AS id_detail, 

                pd.price, 

                pd.discounted_price, 

                COALESCE(variants.variants, "No variants available") AS variants,

                pi.image,

                pi_secondary.image AS image_secondary, 

                s.stock, 

                s.stock_keep,

                (COALESCE(s.stock, 0) - COALESCE(s.stock_keep, 0)) AS stock_sell,

                IF(s.stock IS NULL OR s.stock_keep IS NULL OR (s.stock - s.stock_keep) <= 0, 1, 0) as sort_order,

                total_sales.total_sales,

                total_reviews.total_reviews,

                rp.price AS reseller_price,

                rp.min_quantity AS reseller_min_quantity

            ')

          ->from('products p')

          ->join('product_details pd', 'p.id_products = pd.product_id', 'left')

          ->join('product_images pi', 'pd.id = pi.product_details_id AND pi.priority = 1 AND pi.status = 1', 'left')

          ->join('product_images pi_secondary', 'pd.id = pi_secondary.product_details_id AND pi_secondary.priority = 2 AND pi.status = 1', 'left')

          ->join('stock s', 'pd.id = s.id_product_detail', 'left')

          ->join('(SELECT item_id, SUM(quantity) AS total_sales FROM orders_detail WHERE warehouse_id = 1 GROUP BY item_id) total_sales', 'pd.id = total_sales.item_id', 'left')

          ->join('(SELECT product_id, COUNT(id) AS total_reviews FROM product_review GROUP BY product_id) total_reviews', 'p.id_products = total_reviews.product_id', 'left')

          ->join('(SELECT pc.product_details_id, GROUP_CONCAT(DISTINCT CONCAT_WS(": ", pa.product_attribute, pad.attribute_detail) SEPARATOR "; ") AS variants 

                FROM product_combination pc 

                JOIN product_attributes pa ON pc.attribute_id = pa.id 

                JOIN product_attributes_detail pad ON pc.attribute_detail_id = pad.id 

                GROUP BY pc.product_details_id) variants', 'pd.id = variants.product_details_id', 'left')

          ->join('category_product cp', 'p.id_products = cp.id_product', 'inner')

          ->join('resellers_price rp', 'pd.id = rp.product_detail_id', 'left')

          ->where_in('p.id_products', $suggested_ids)

          ->where('p.product_status', '1')

          ->where('p.deleted_at', null)

          ->having('(COALESCE(s.stock, 0) - COALESCE(s.stock_keep, 0)) > 0')

          ->group_by('p.id_products')

          ->order_by('sort_order', 'ASC')

          ->order_by('pd.id', 'ASC')

          ->limit(2)

          ->get()

          ->result_array();



        $suggested_products = $this->prepare_all_products($suggested_products);

      }

    }



    header('Content-Type: application/json');

    echo json_encode([

      'status' => 'success',

      'data' => $suggested_products

    ]);

  }



  private function prepare_all_products($products)

  {

    $customer = $this->session->userdata('customer');

    $is_reseller = false;

    $reseller_price_map = []; // Map produk -> reseller price



    if (!empty($customer['customer_id'])) {

      $customer_id = $customer['customer_id'];

      $customer_data = $this->db->where('id_customers', $customer_id)->get('customers')->row_array();



      if (!empty($customer_data['reseller_id'])) {

        // Cek apakah reseller valid

        $reseller = $this->db->where('id_resellers', $customer_data['reseller_id'])->get('resellers')->row_array();

        if ($reseller) {

          $is_reseller = true;



          // Ambil semua harga reseller untuk produk

          $reseller_prices = $this->db->where('reseller_id', $reseller['id_resellers'])->get('resellers_price')->result_array();

          foreach ($reseller_prices as $price) {

            $reseller_price_map[$price['product_detail_id']] = $price['price'];

          }

        }

      }

    }



    $this->load->model('Review_m');





    // Format data produk

    $formatted_products = [];

    foreach ($products as $product) {

      $is_discounted = $product['discounted_price'] > 0;

      $default_price = $product['price']; // Harga normal di tabel product_details

      $discounted_price = $product['discounted_price'];

      $current_price = $is_discounted ? $discounted_price : $default_price;



      // Jika reseller, gantikan harga dan tambahkan MSRP

      $msrp_price = null;

      if ($is_reseller && isset($reseller_price_map[$product['id_detail']])) {

        $msrp_price = $current_price; // Harga normal jadi MSRP

        $current_price = $reseller_price_map[$product['id_detail']]; // Ganti dengan reseller price

      }



      $review_data = $this->Review_m->get_product_reviews($product['id_products']);

      $average_rating = isset($review_data['average_rating']) ? round($review_data['average_rating'], 1) : 0;

      $total_reviews = isset($review_data['total_reviews']) ? $review_data['total_reviews'] : 0;

      $variants = !empty($product['variants']) ? explode('; ', $product['variants']) : [];



      $formatted_products[] = [

        'id' => $product['id_products'],

        'title' => $product['title'],

        'id_detail' => $product['id_detail'],

        'alias' => $product['alias'],

        'current_price' => $current_price,

        'original_price' => $is_discounted ? $default_price : null, // Hanya untuk customer biasa

        'msrp_price' => $msrp_price, // Hanya untuk reseller

        'image' => $product['image'],

        'image_secondary' => $product['image_secondary'],

        'stock' => $product['stock'],

        'stock_sell' => $product['stock_sell'],

        'average_rating' => $average_rating,

        'total_reviews' => $total_reviews,

        'variants' => $variants,

        'is_wishlisted' => $this->_check_wishlist_status($product['id_products'], $this->session->userdata('customer')['customer_id'])

      ];

    }



    return $formatted_products;

  }

  private function _check_wishlist_status($product_id, $customer_id)

  {

    if (!$customer_id) return false;



    $exists = $this->db->where([

      'customer_id' => $customer_id,

      'product_id' => $product_id

    ])->get('wishlists')->num_rows();



    return $exists > 0;

  }



  public function update_cart()

  {

    //check if there is post request, if not, reject & redirect

    if (!isset($_POST['update_cart'])) {

      redirect('cart');

    }

    // Recieve post values,calcute them and update

    $cart_info = $_POST['cart_array'];

    /* echo '<pre>';

		print_r($cart_info);

		echo '</pre>';

		exit();  */

    foreach ($cart_info as $sku => $cart) {

      //get product detail id

      $this->db

        ->select('id_product_details')

        ->from('product_details')

        ->where('sku', $sku);

      $id_product_detail = $this->db->get()->row()->id_product_details;

      //check the minimum purchase qty required

      if (isset($this->session->userdata('customer')['customer_id'])) {

        //customer is logged in

        //check if customer is a reseller. if reseller use reseller min quantity

        $this->db

          ->select('reseller_id')

          ->from('customers')

          ->where(

            'id_customers',

            $this->session->userdata('customer')['customer_id']

          );

        $reseller_id = $this->db->get()->row()->reseller_id;

        //check if reseller price already available (already input by admin)

        $this->db

          ->select('price')

          ->from('resellers_price')

          ->where('reseller_id', $reseller_id)

          ->where('product_detail_id', $id_product_detail);

        $count_reseller = $this->db->get()->num_rows();

        if ($reseller_id != null && $count_reseller > 0) {

          //customer is reseller, and data already inputtedby admin. so use reseller min quantity

          $this->db

            ->select('min_quantity')

            ->from('resellers_price')

            ->where('reseller_id', $reseller_id)

            ->where('product_detail_id', $id_product_detail);

          $min_quantity = $this->db->get()->row()->min_quantity;

        } elseif ($reseller_id == null) {

          $min_quantity = 1;

        } elseif ($reseller_id != null && $count_reseller == 0) {

          //customer is a reseller, but data not input yet, or customer choose empty option..

          //then give default reseller min quantity

          //get reseller min quantity

          $this->db

            ->select('min_quantity')

            ->from('resellers_price')

            ->where('reseller_id', $reseller_id)

            ->where('product_detail_id', $id_product_detail);

          $min_quantity = $this->db->get()->row()->min_quantity;

        }

        if ($cart['qty'] < $min_quantity) {

          //cart quantity is less than minimum quantity

          $this->session->set_flashdata(

            'no_stock',

            "<br>

					<p style='background:grey; color:white; padding:5px; font-weight:bold;'>Sorry minimum quantity is {$min_quantity} pcs. Please choose higher quantity.</p>"

          );

          redirect('cart');

        }

      }

      //check the available stock for current SKU

      $this->db

        ->select('stock')

        ->from('product_details')

        ->where('sku', $sku);

      $available_stock = (int) $this->db->get()->row()->stock;

      if ($cart['qty'] > $available_stock) {

        //stocks are not enough

        $this->session->set_flashdata(

          'no_stock',

          '<br>

				<p style="background:grey; color:white; padding:5px; font-weight:bold;">Sorry not enough stock for chosen quantity. Please choose smaller quantity.</p>'

        );

        redirect('cart');

      } else {

        //stocks are enough

        $rowid = $cart['rowid'];

        $price = $cart['price'];

        $qty = $cart['qty'];

        $amount = $price * $cart['qty'];

        $data = [

          'rowid' => $rowid,

          'price' => $price,

          'amount' => $amount,

          'qty' => $qty,

        ];

        $this->cart->update($data);

      }

    }

    redirect('cart');

  }

  //callback function validation cek stock available when add to cart

  public function cek_stock()

  {

    $id_product_details = $this->input->post('product_size');

    $chosen_quantity = (int) $this->input->post('qty');

    //get current stock froms product_details table

    $this->db->select('stock');

    $this->db->from('product_details');

    $this->db->where('id_product_details', $id_product_details);

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

    $current_stock = (int) $query->row()->stock;

    //check if quantity is less or equal to current stock

    if ($chosen_quantity > $current_stock) {

      return false;

    } else {

      return true;

    }

  }

  /*email to user if product is available*/

  public function customer_notification()

  {

    $data = [

      'id_products' => (int) $this->input->post('product_id'),

      'email' => $this->security->xss_clean(

        $this->input->post('emailMeAvailable')

      ),

    ];

    $this->db->select('*');

    $this->db->from('customers_notification');

    $this->db->where('id_products', $data['id_products']);

    $this->db->where('email', $data['email']);

    $query1 = $this->db->get();

    $cek = $query1->row();

    if ($cek != null) {

      $this->session->set_flashdata(

        'email_sended1',

        '<br>

				<p style="background:green; color:white; padding:5px; font-weight:bold;">

					Anda sudah mengirim e-mail untuk mengetahui informasi produk ini.<br> 

					Kami akan segera memberi tahu anda apabila stok tersedia.

				</p>'

      );

    } else {

      $this->db->insert('customers_notification', $data);

      $this->session->set_flashdata(

        'email_sended',

        '<br>

				<p style="background:green; color:white; padding:5px; font-weight:bold;">

					Alamat E-mail diterima.<br> 

					Kami akan segera memberi tahu anda apabila stok tersedia.

				</p>'

      );

    }

    redirect($this->input->post('page_url'));

  }

  public function customer_notifications()

  {

    $data = [

      'id_products' => (int) $this->input->post('product_id'),

      'email' => $this->security->xss_clean(

        $this->input->post('emailMeAvailable')

      ),

    ];

    $this->db->select('*');

    $this->db->from('customers_notification');

    $this->db->where('id_products', $data['id_products']);

    $this->db->where('email', $data['email']);

    $query1 = $this->db->get();

    $cek = $query1->row();

    if ($cek != null) {

      $this->session->set_flashdata(

        'email_sended1',

        '<br>

				<p style="background:green; color:white; padding:5px; font-weight:bold;">

					Anda sudah mengirim e-mail untuk mengetahui informasi produk ini.<br> 

					Kami akan segera memberi tahu anda apabila stok tersedia.

				</p>'

      );

    } else {

      $this->db->insert('customers_notification', $data);

      $this->session->set_flashdata(

        'email_sended',

        '<br>

				<p style="background:green; color:white; padding:5px; font-weight:bold;">

					Alamat E-mail diterima.<br> 

					Kami akan segera memberi tahu anda apabila stok tersedia.

				</p>'

      );

    }

    redirect($this->input->post('page_url') . '#' . $data['id_products']);

  }

}


https://t.me/RX1948 - 2025