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/mesinpolesshinemate.com/application/controllers/ |
Upload File : |
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Account extends Customer_Controller { public function __construct() { parent::__construct(); $this->load->model('customer_m'); $this->load->library('form_validation'); } public function index() { //get SEO $this->db->select('website_name, meta_keywords')->from('configuration')->where('id_configuration', 1); $website_name = $this->db->get()->row(); $this->data_header['browser_title'] = ucwords($website_name->website_name) . ' - My Account'; $this->data_header['meta_description'] = ucwords($website_name->website_name) . ' - My Account'; $this->data_header['meta_keywords'] = $website_name->meta_keywords; $this->load->view('template/header', $this->data_header); $this->load->view('account/index'); $this->load->view('template/footer', $this->data_footer); } public function profile() { //this is to check whether from summary page want to update shipping details. if yes, then later redirect back to summary page if (isset($_POST['dropship_summarypage'])) { $this->session->set_userdata('dropship_summarypage', TRUE); } $this->data_header['page_title'] = 'My Profile'; $id_customer = (int) $this->session->userdata('customer')['customer_id']; $data['customer'] = $this->customer_m->get_customer($id_customer); //LOAD LANGUAGE FILES FOR profile if($this->session->userdata('site_lang') == 'english') { $this->lang->load('myprofile', 'english'); } else { $this->lang->load('myprofile', 'indonesian'); } //get SEO $this->db->select('website_name, meta_keywords')->from('configuration')->where('id_configuration', 1); $website_name = $this->db->get()->row(); $this->data_header['browser_title'] = ucwords($website_name->website_name) . ' - My Account'; $this->data_header['meta_description'] = ucwords($website_name->website_name) . ' - My Account'; $this->data_header['meta_keywords'] = $website_name->meta_keywords; $this->load->view('template/header', $this->data_header); $this->load->view('account/profile', $data); $this->load->view('template/footer', $this->data_footer); } public function update_profile() { if (!isset($_POST['update_profile'])) { redirect('account/profile'); } //check if dropship active or not $this->db->select('dropship')->from('customers')->where('id_customers', (int) $this->session->userdata('customer')['customer_id']); $dropship_status = $this->db->get()->row()->dropship; //validation in action $rules = array( 'name' => array( 'field'=>'name', 'label'=>'Name', 'rules'=>'trim|required'), 'password' => array( 'field'=>'password', 'label'=>'Password', 'rules'=>'trim'), 'password' => array( 'field'=>'password', 'label'=>'Password', 'rules'=>'trim'), ); if($dropship_status == 'yes') { $rules['dropship_shop_email'] = array( 'field'=>'dropship_shop_email', 'label'=>'dropship shop email', 'rules'=>'trim|valid_email' ); } $this->form_validation->set_rules($rules); if($this->form_validation->run($this) == FALSE) { $this->profile(); } else { if($dropship_status == 'yes') { //check & processing image banner upload files if ($_FILES['userfile']['size'] !== 0) { $config['upload_path'] = './uploads/dropship/'; $config['allowed_types'] = 'jpg|jpeg|png'; $config['max_size'] = '150'; $config['max_width'] = '200'; $config['max_height'] = '200'; $this->load->library('upload', $config); if ( ! $this->upload->do_upload('userfile')) { //echo $this->upload->display_errors(); die(); $this->session->set_flashdata('logo_error', '<br> <p style="background:orange; color:white; padding:5px; font-weight:bold;">Image Upload Error. Wrong format or size.</p>'); redirect('account/profile'); } else { $logo = $this->upload->data(); $logo_filename = $logo['file_name']; } } } $data = array(); $data['name'] = $this->security->xss_clean($this->input->post('name')); if ($this->input->post('password')) { $data['password'] = $this->customer_m->hash($this->input->post('password')); } if($dropship_status == 'yes') { $data['dropship_shop_name'] = $this->security->xss_clean($this->input->post('dropship_shop_name')); $data['dropship_shop_address'] = $this->security->xss_clean($this->input->post('dropship_shop_address')); $data['dropship_shop_phone'] = $this->security->xss_clean($this->input->post('dropship_shop_phone')); $data['dropship_shop_email'] = $this->security->xss_clean($this->input->post('dropship_shop_email')); //logo upload if (isset($logo_filename)) { $data['dropship_shop_logo'] = $logo_filename; } } $id_customer = (int) $this->session->userdata('customer')['customer_id']; $this->customer_m->update_profile($id_customer, $data); $this->session->set_flashdata('success', '<br><p style="background:green; color:white; padding:10px; padding:5px; font-weight:bold;">Profile Edit Successful</p>'); if ($this->session->userdata('dropship_summarypage') == TRUE) { $this->session->unset_userdata('dropship_summarypage'); redirect('summary'); } else { redirect('account/profile'); } } } //To delete brand logo file from server, and from database public function delete_dropship_logo() { //get logo file name for deletion $this->db->select('dropship_shop_logo')->from('customers')->where('id_customers', (int) $this->session->userdata('customer')['customer_id']); $image = $this->db->get()->row(); //Delete the actual image file from server. FCPATH is codeigniter base path unlink(FCPATH .'/uploads/dropship/'. $image->dropship_shop_logo); //Delete image field from database $data = array( 'dropship_shop_logo' => '', ); $this->db->where('id_customers', (int) $this->session->userdata('customer')['customer_id']); $this->db->update('customers', $data); $this->session->set_flashdata('success', '<br><p style="background:green; color:white; padding:5px; font-weight:bold;">Logo Delete Successfully</p>'); redirect('account/profile'); } public function shipping() { //this is to check whether from summary page want to update shipping details. if yes, then later redirect back to summary page if (isset($_POST['shipping_summarypage'])) { $this->session->set_userdata('shipping_summarypage', TRUE); } $this->data_header['page_title'] = 'Change Billing & Shipping Details'; $id_customer = (int) $this->session->userdata('customer')['customer_id']; $data['shipping'] = $this->customer_m->get_shipping($id_customer); //get all countries data from countries table $this->db->select('*')->from('countries')->order_by('id_countries', 'ASC'); $data['countries'] = $this->db->get()->result(); //get all provinces data from provinces table $this->db->select('rajaongkir_province_id, province')->from('indonesia_provinces')->order_by('rajaongkir_province_id', 'ASC'); $data['provinces'] = $this->db->get()->result(); //get all shipping province data $data['shipping_provinces'] = $data['provinces']; $current_province_id = $data['shipping']->id_province; $current_shipping_province_id = $data['shipping']->shipping_id_province; //get all initial districts based on stored province $this->db->select('rajaongkir_id_district, district')->from('indonesia_districts')->where('indonesia_id_province', $current_province_id); $data['district_lists'] = $this->db->get()->result(); //get all initial shipping districts based on stored province $this->db->select('rajaongkir_id_district, district')->from('indonesia_districts')->where('indonesia_id_province', $current_shipping_province_id); $data['shipping_district_lists'] = $this->db->get()->result(); $current_district_id = $data['shipping']->id_district; $current_shipping_district_id = $data['shipping']->shipping_id_district; //get all initial subdistricts lists $this->db->select('rajaongkir_id_subdistrict, subdistrict')->from('indonesia_subdistricts')->where('indonesia_id_district', $current_district_id); $data['subdistrict_lists'] = $this->db->get()->result(); //get all initial shipping subdistricts lists $this->db->select('rajaongkir_id_subdistrict, subdistrict')->from('indonesia_subdistricts')->where('indonesia_id_district', $current_shipping_district_id); $data['shipping_subdistrict_lists'] = $this->db->get()->result(); //get SEO $this->db->select('website_name, meta_keywords')->from('configuration')->where('id_configuration', 1); $website_name = $this->db->get()->row(); $this->data_header['browser_title'] = ucwords($website_name->website_name) . ' - My Account'; $this->data_header['meta_description'] = ucwords($website_name->website_name) . ' - My Account'; $this->data_header['meta_keywords'] = $website_name->meta_keywords; //LOAD LANGUAGE FILES FOR ACCOUNT ADDRESS if($this->session->userdata('site_lang') == 'english') { $this->lang->load('register_login', 'english'); } else { $this->lang->load('register_login', 'indonesian'); } $this->load->view('template/header', $this->data_header); $this->load->view('account/shipping', $data); $this->load->view('template/footer', $this->data_footer); } public function update_shipping() { if (!isset($_POST['update_shipping'])) { redirect('account/shipping'); } //validation in action //if country id 0 (indonesia) regular validation rule if($this->input->post('country') == '0') { $rules = $this->customer_m->shipping_rules; } else { //rules for international country $rules = $this->customer_m->shipping_rules_international; } $this->form_validation->set_rules($rules); if($this->form_validation->run($this) == FALSE) { $this->shipping(); } else { $data = array( 'name' => $this->security->xss_clean($this->input->post('recipient_name')), 'recipient_name' => $this->security->xss_clean($this->input->post('recipient_name')), 'postcode' => $this->security->xss_clean($this->input->post('postcode')), 'phone' => $this->security->xss_clean($this->input->post('phone')), 'address' => $this->security->xss_clean($this->input->post('address')), 'shipping_name' => $this->security->xss_clean($this->input->post('shipping_name')), 'shipping_postcode' => $this->security->xss_clean($this->input->post('shipping_postcode')), 'shipping_phone' => $this->security->xss_clean($this->input->post('shipping_phone')), 'shipping_address' => $this->security->xss_clean($this->input->post('shipping_address')) ); //UPDATE BILLING ADDRESS if($this->input->post('country') == '0') { //this is indonesia $data['id_province'] = (int) $this->input->post('province'); $data['id_district'] = (int) $this->input->post('district'); $data['id_subdistrict'] = (int) $this->input->post('subdistrict'); $data['id_country'] = 0; $data['country'] = 'Indonesia'; //get province name $this->db->select('province')->from('indonesia_provinces')->where('rajaongkir_province_id', (int) $this->input->post('province')); $data['province'] = $this->db->get()->row()->province; //get district name $this->db->select('district')->from('indonesia_districts')->where('rajaongkir_id_district', (int) $this->input->post('district')); $data['district'] = $this->db->get()->row()->district; //get subdistrict name $this->db->select('subdistrict')->from('indonesia_subdistricts')->where('rajaongkir_id_subdistrict', (int) $this->input->post('subdistrict')); $data['subdistrict'] = $this->db->get()->row()->subdistrict; } else { //this is international $this->db->select('country')->from('countries')->where('id_countries', $this->input->post('country')); $data['country'] = $this->db->get()->row()->country; $data['id_country'] = (int) $this->input->post('country'); $data['id_province'] = NULL; $data['id_district'] = NULL; $data['id_subdistrict'] = NULL; $data['province'] = NULL; $data['district'] = NULL; $data['subdistrict'] = NULL; } //UPDATE SHIPPING ADDRESS if($this->input->post('shipping_country') == '0') { //this is indonesia $data['shipping_id_province'] = (int) $this->input->post('shipping_province'); $data['shipping_id_district'] = (int) $this->input->post('shipping_district'); $data['shipping_id_subdistrict'] = (int) $this->input->post('shipping_subdistrict'); $data['shipping_id_country'] = 0; $data['shipping_country'] = 'Indonesia'; //get province name $this->db->select('province')->from('indonesia_provinces')->where('rajaongkir_province_id', (int) $this->input->post('shipping_province')); $data['shipping_province'] = $this->db->get()->row()->province; //get district name $this->db->select('district')->from('indonesia_districts')->where('rajaongkir_id_district', (int) $this->input->post('shipping_district')); $data['shipping_district'] = $this->db->get()->row()->district; //get subdistrict name $this->db->select('subdistrict')->from('indonesia_subdistricts')->where('rajaongkir_id_subdistrict', (int) $this->input->post('shipping_subdistrict')); $data['shipping_subdistrict'] = $this->db->get()->row()->subdistrict; } else { //this is international //get country name $this->db->select('country')->from('countries')->where('id_countries', $this->input->post('shipping_country')); $data['shipping_country'] = $this->db->get()->row()->country; $data['shipping_id_country'] = (int) $this->input->post('shipping_country'); $data['shipping_id_province'] = NULL; $data['shipping_id_district'] = NULL; $data['shipping_id_subdistrict'] = NULL; $data['shipping_province'] = NULL; $data['shipping_district'] = NULL; $data['shipping_subdistrict'] = NULL; } $id_customer = (int) $this->session->userdata('customer')['customer_id']; $this->customer_m->update_shipping($id_customer, $data); $this->session->set_flashdata('success', '<br><p style="background:green; color:white; padding:10px; padding:5px; font-weight:bold;">Address Edit Successful</p>'); if ($this->session->userdata('shipping_summarypage') == TRUE) { $this->session->unset_userdata('shipping_summarypage'); redirect('summary'); } else { redirect('account/shipping'); } } } public function order_history() { $this->load->model('order_m'); $this->data_header['page_title'] = 'Order History'; $id_customer = (int) $this->session->userdata('customer')['customer_id']; $data['order_history'] = $this->order_m->get_order_history($id_customer); //LOAD LANGUAGE FILES if($this->session->userdata('site_lang') == 'english') { $this->lang->load('order_history', 'english'); } else { $this->lang->load('order_history', 'indonesian'); } //get SEO $this->db->select('website_name, meta_keywords')->from('configuration')->where('id_configuration', 1); $website_name = $this->db->get()->row(); $this->data_header['browser_title'] = ucwords($website_name->website_name) . ' - My Account'; $this->data_header['meta_description'] = ucwords($website_name->website_name) . ' - My Account'; $this->data_header['meta_keywords'] = $website_name->meta_keywords; $this->load->view('template/header', $this->data_header); $this->load->view('account/order_history', $data); $this->load->view('template/footer', $this->data_footer); } public function point_rewards() { $this->load->model('order_m'); $this->data_header['page_title'] = 'My Point rewards'; $id_customer = (int) $this->session->userdata('customer')['customer_id']; $data['order_history'] = $this->order_m->get_order_history($id_customer); //get customer current point rewards $this->db->select('current_pointreward')->from('customers')->where('id_customers', $this->session->userdata('customer')['customer_id']); $data['current_point'] = $this->db->get()->row()->current_pointreward; //LOAD LANGUAGE FILES if($this->session->userdata('site_lang') == 'english') { $this->lang->load('pointrewards', 'english'); } else { $this->lang->load('pointrewards', 'indonesian'); } //get SEO $this->db->select('website_name, meta_keywords')->from('configuration')->where('id_configuration', 1); $website_name = $this->db->get()->row(); $this->data_header['browser_title'] = ucwords($website_name->website_name) . ' - My Account'; $this->data_header['meta_description'] = ucwords($website_name->website_name) . ' - My Account'; $this->data_header['meta_keywords'] = $website_name->meta_keywords; $this->load->view('template/header', $this->data_header); $this->load->view('account/point_rewards', $data); $this->load->view('template/footer', $this->data_footer); } public function payment_confirmation() { if (!isset($_POST['confirm_payment'])) { redirect('account/order_history'); } $data['order_id'] = (int) $this->input->post('order_id'); $this->data_header['page_title'] = 'Payment Confirmation'; //LOAD LANGUAGE FILES if($this->session->userdata('site_lang') == 'english') { $this->lang->load('payment_confirmation', 'english'); } else { $this->lang->load('payment_confirmation', 'indonesian'); } //get SEO $this->db->select('website_name, meta_keywords')->from('configuration')->where('id_configuration', 1); $website_name = $this->db->get()->row(); $this->data_header['browser_title'] = ucwords($website_name->website_name) . ' - My Account'; $this->data_header['meta_description'] = ucwords($website_name->website_name) . ' - My Account'; $this->data_header['meta_keywords'] = $website_name->meta_keywords; $this->load->view('template/header', $this->data_header); $this->load->view('account/payment_confirmation', $data); $this->load->view('template/footer', $this->data_footer); } public function update_paymentconfirmation() { if (!isset($_POST['update_paymentconfirmation'])) { redirect('account/order_history'); } //validation in action $config = array( array( 'field' => 'payment_date', 'label' => 'Payment Date', 'rules' => 'trim|required' ), array( 'field' => 'total_amount', 'label' => 'Total Amount', 'rules' => 'trim|required|numeric' ), array( 'field' => 'to_bank', 'label' => 'To Bank', 'rules' => 'trim' ), array( 'field' => 'from_bank', 'label' => 'From Bank', 'rules' => 'trim|required' ), array( 'field' => 'account_name', 'label' => 'Account Name', 'rules' => 'required|trim' ), array( 'field' => 'account_number', 'label' => 'Account Number', 'rules' => 'required|trim' ) ); $this->form_validation->set_rules($config); $this->form_validation->set_error_delimiters('<div class="error">', '</div>'); if($this->form_validation->run($this) == FALSE) { $data['order_id'] = (int) $this->input->post('order_id'); $data_header['page_title'] = 'Payment Confirmation'; //get SEO $this->db->select('website_name, meta_keywords')->from('configuration')->where('id_configuration', 1); $website_name = $this->db->get()->row(); $this->data_header['browser_title'] = ucwords($website_name->website_name) . ' - My Account'; $this->data_header['meta_description'] = ucwords($website_name->website_name) . ' - My Account'; $this->data_header['meta_keywords'] = $website_name->meta_keywords; //LOAD LANGUAGE FILES if($this->session->userdata('site_lang') == 'english') { $this->lang->load('payment_confirmation', 'english'); } else { $this->lang->load('payment_confirmation', 'indonesian'); } $this->load->view('template/header', $this->data_header); $this->load->view('account/payment_confirmation', $data); $this->load->view('template/footer', $this->data_footer); } else { $payment_date = explode('-', $this->input->post('payment_date')); $new_payment_date = $payment_date['2'] . '-' . $payment_date['1'] . '-' . $payment_date['0']; $total_amount = (int) $this->input->post('total_amount'); $to_bank = ucwords($this->input->post('to_bank')); $from_bank = ucwords($this->input->post('from_bank')); $account_name = $this->security->xss_clean(ucwords($this->input->post('account_name'))); $account_number = $this->security->xss_clean(ucwords($this->input->post('account_number'))); $payment_confirm_details = '<p>Payment Date: ' . $new_payment_date . '</p>' . '<p>Payment Amount: Rp ' . number_format($total_amount) . '</p>' . '<p>To Bank: ' . $to_bank . '</p>' . '<p>From Bank: ' . $from_bank . '</p>' . '<p>From Acc Name: ' . $account_name . '</p>' . '<p>From Acc No: ' . $account_number . '</p>'; $data = array( 'payment_confirm' => 1, 'payment_confirm_details' => $payment_confirm_details, ); $order_id = (int) $this->input->post('order_id'); $this->db->where('id_orders', $order_id); $this->db->update('orders', $data); //sending email //----SEND EMAIL TO ADMIN WEBSITE //get customer name $customer_id = (int) $this->session->userdata('customer')['customer_id']; $this->db->select('name')->from('customers')->where('id_customers', $customer_id); $data['customer_name'] = $this->db->get()->row()->name; //get website data $this->db->select('logo, from_email, website_name, email_smtp_host, email_smtp_port, email_smtp_password, email_smtp')->from('configuration')->where('id_configuration', 1); $website_data = $this->db->get()->row(); $data['logo'] = $website_data->logo; $data['website_name'] = $website_data->website_name; $this->load->model('configuration_m'); $data['emails'] = $this->configuration_m->get_emails(); $data['bank'] = $this->configuration_m->get_bank(); $data['title'] = 'Customer Payment Confirmation'; $this->load->library('email'); //get email setting $config['protocol'] = 'smtp'; $config['smtp_host'] = $website_data->email_smtp_host; $config['smtp_port'] = $website_data->email_smtp_port; $config['smtp_user'] = $website_data->email_smtp; $config['smtp_pass'] = $website_data->email_smtp_password; $config['mailtype'] = 'html'; $config['charset'] = 'iso-8859-1'; $config['wordwrap'] = TRUE; $config['newline'] = "\r\n"; //use double quotes to comply with RFC 822 standard $this->email->initialize($config); $this->email->from($data['emails']->from_email, $data['emails']->website_name); $this->email->to($data['emails']->from_email); $this->email->subject('Customer Payment Confirmation'); $myMessage = '<html><body>'; $myMessage .= '<table style="border-color: #666;" cellpadding="10">'; $myMessage .= "<tr><td><strong>Order No:</strong> </td><td>" . $order_id . "</td></tr>"; $myMessage .= "<tr><td><strong>Payment Date:</strong> </td><td>" . $this->input->post('payment_date') . "</td></tr>"; $myMessage .= "<tr><td><strong>Amount: Rp </strong> </td><td>" . number_format($total_amount) . "</td></tr>"; $myMessage .= "<tr><td><strong>To Bank:</strong> </td><td>" . $to_bank . "</td></tr>"; $myMessage .= "<tr><td><strong>From bank:</strong> </td><td>" . $from_bank . "</td></tr>"; $myMessage .= "<tr><td><strong>Account Name:</strong> </td><td>" . $account_name . "</td></tr>"; $myMessage .= "<tr><td><strong>Account Number:</strong> </td><td>" . $account_number . "</td></tr>"; $myMessage .= "</table>"; $myMessage .= "<p>Please verify the payment, and change the payment status at Admin Dashboard.</p>"; $myMessage .= "</body></html>"; $this->email->message($myMessage); $this->email->send(); //----end send email $this->session->set_flashdata('success', '<br><p style="background:green; color:white; padding:10px; padding:5px; font-weight:bold;">Payment Confirmation Success. We will verify your payment and notify You back.</p>'); redirect('account/order_history'); } } }