ok
Direktori : /proc/thread-self/root/home2/selectio/www/bharath/application/controllers/ |
Current File : //proc/thread-self/root/home2/selectio/www/bharath/application/controllers/Dashboard_controller.php |
<?php defined('BASEPATH') or exit('No direct script access allowed'); class Dashboard_controller extends Home_Core_Controller { public function __construct() { parent::__construct(); $this->per_page = 15; } /** * Index */ public function index() { $this->check_vendor_permission(); $data['title'] = get_shop_name($this->auth_user); $data['description'] = get_shop_name($this->auth_user) . " - " . $this->app_name; $data['keywords'] = get_shop_name($this->auth_user) . "," . $this->app_name; $data["user"] = $this->auth_user; $data["user_rating"] = calculate_user_rating($this->auth_user->id); $data["active_tab"] = "products"; $data['active_sales_count'] = $this->order_admin_model->get_active_sales_count_by_seller($this->auth_user->id); $data['completed_sales_count'] = $this->order_admin_model->get_completed_sales_count_by_seller($this->auth_user->id); $data['total_sales_count'] = $data['active_sales_count'] + $data['completed_sales_count']; $data['total_pageviews_count'] = $this->product_model->get_vendor_total_pageviews_count($this->auth_user->id); $data['products_count'] = $this->product_model->get_user_products_count($this->auth_user->id); $data['latest_sales'] = $this->order_model->get_limited_sales_by_seller($this->auth_user->id, 6); $data['most_viewed_products'] = $this->product_model->get_vendor_most_viewed_products($this->auth_user->id, 6); $data['latest_comments'] = $this->comment_model->get_paginated_vendor_comments($this->auth_user->id, 6, 0); $data['latest_reviews'] = $this->review_model->get_paginated_vendor_reviews($this->auth_user->id, 6, 0); $data['sales_sum'] = $this->order_admin_model->get_sales_sum_by_month($this->auth_user->id); $this->load->view('dashboard/includes/_header', $data); $this->load->view('dashboard/index', $data); $this->load->view('dashboard/includes/_footer'); } /* *------------------------------------------------------------------------------------------ * PRODUCTS *------------------------------------------------------------------------------------------ */ /** * Add Product */ public function add_product() { $this->check_vendor_permission(); $data['title'] = trans("add_product"); $data['description'] = trans("add_product") . " - " . $this->app_name; $data['keywords'] = trans("add_product") . "," . $this->app_name; $data['modesy_images'] = $this->file_model->get_sess_product_images_array(); $data["file_manager_images"] = $this->file_model->get_user_file_manager_images($this->auth_user->id); $data["active_product_system_array"] = $this->get_activated_product_system(); $view = !$this->membership_model->is_allowed_adding_product() ? 'plan_expired' : 'add_product'; $this->load->view('dashboard/includes/_header', $data); $this->load->view('dashboard/product/' . $view, $data); $this->load->view('dashboard/includes/_footer'); } /** * Add Product Post */ public function add_product_post() { $this->check_vendor_permission(); if (!$this->membership_model->is_allowed_adding_product()) { $this->session->set_flashdata('error', trans("msg_plan_expired")); redirect($this->agent->referrer()); exit(); } //validate title if (empty(trim($this->input->post('title_' . $this->selected_lang->id, true)))) { $this->session->set_flashdata('error', trans("msg_error")); redirect($this->agent->referrer()); } //add product if ($this->product_model->add_product()) { //last id $last_id = $this->db->insert_id(); //add product title and desc $this->product_model->add_product_title_desc($last_id); //update slug $this->product_model->update_slug($last_id); //add product images $this->file_model->add_product_images($last_id); redirect(generate_dash_url("product", "product_details") . '/' . $last_id); } else { $this->session->set_flashdata('error', trans("msg_error")); redirect($this->agent->referrer()); } } /** * Edit Product */ public function edit_product($id) { $this->check_vendor_permission(true); $data["product"] = $this->product_admin_model->get_product($id); if (empty($data["product"])) { redirect($this->agent->referrer()); } if ($data["product"]->is_deleted == 1) { if (!has_permission('products')) { redirect($this->agent->referrer()); exit(); } } if ($data["product"]->user_id != $this->auth_user->id && !has_permission('products')) { redirect($this->agent->referrer()); exit(); } $data['title'] = $data["product"]->is_draft == 1 ? trans("add_product") : trans("edit_product"); $data['description'] = $data['title'] . " - " . $this->app_name; $data['keywords'] = $data['title'] . "," . $this->app_name; $data['category'] = $this->category_model->get_category($data["product"]->category_id); $data['modesy_images'] = $this->file_model->get_product_images($data["product"]->id); $data["file_manager_images"] = $this->file_model->get_user_file_manager_images($this->auth_user->id); $data["active_product_system_array"] = $this->get_activated_product_system(); $this->load->view('dashboard/includes/_header', $data); $this->load->view('dashboard/product/edit_product', $data); $this->load->view('dashboard/includes/_footer'); } /** * Edit Product Post */ public function edit_product_post() { $this->check_vendor_permission(true); //product id $product_id = $this->input->post('id', true); //user id $user_id = 0; $product = $this->product_model->get_product_by_id($product_id); if (!empty($product)) { if ($product->user_id != $this->auth_user->id && !has_permission('products')) { redirect($this->agent->referrer()); exit(); } //check slug is unique $slug = $product->slug; if (is_admin()) { $slug = $this->input->post('slug', true); if (empty($slug)) { $slug = "product-" . $product->id; } if ($this->db->where('id !=', $product->id)->where('slug', $slug)->get('products')->num_rows() > 0) { $this->session->set_flashdata('error', trans("msg_product_slug_used")); redirect($this->agent->referrer()); exit(); } } if ($this->product_model->edit_product($product, $slug)) { //edit product title and desc $this->product_model->edit_product_title_desc($product_id); if ($product->is_draft == 1) { redirect(generate_dash_url("product", "product_details") . '/' . $product_id); } else { //reset cache reset_cache_data_on_change(); reset_user_cache_data($product->user_id); reset_product_img_cache_data($product_id); $this->session->set_flashdata('success', trans("msg_updated")); redirect($this->agent->referrer()); } } } $this->session->set_flashdata('error', trans("msg_error")); redirect($this->agent->referrer()); } /** * Edit Product Details */ public function edit_product_details($id) { $this->check_vendor_permission(true); $data['product'] = $this->product_admin_model->get_product($id); if (empty($data['product'])) { redirect($this->agent->referrer()); exit(); } if (!has_permission('products') && $this->auth_user->id != $data['product']->user_id) { redirect($this->agent->referrer()); exit(); } if ($data['product']->is_draft == 1) { $data['title'] = trans("add_product"); $data['description'] = trans("add_product") . " - " . $this->app_name; $data['keywords'] = trans("add_product") . "," . $this->app_name; } else { $data['title'] = trans("edit_product"); $data['description'] = trans("edit_product") . " - " . $this->app_name; $data['keywords'] = trans("edit_product") . "," . $this->app_name; } $data["custom_fields"] = $this->field_model->get_custom_fields_by_category($data["product"]->category_id); $data["product_variations"] = $this->variation_model->get_product_variations($data["product"]->id); $data["user_variations"] = $this->variation_model->get_variation_by_user_id($data["product"]->user_id); $data['product_settings'] = $this->settings_model->get_product_settings(); $data['license_keys'] = $this->product_model->get_license_keys($data["product"]->id); //shipping $data['shipping_status'] = $this->product_settings->marketplace_shipping; if ($data["product"]->listing_type == 'ordinary_listing' || $data["product"]->product_type != 'physical') { $data['shipping_status'] = 0; } $data['shipping_classes'] = $this->shipping_model->get_active_shipping_classes($this->auth_user->id); $data['shipping_delivery_times'] = $this->shipping_model->get_shipping_delivery_times($this->auth_user->id); $shipping_zones = $this->shipping_model->get_shipping_zones($this->auth_user->id); $data['show_shipping_options_warning'] = false; if ($data['shipping_status'] == 1 && empty($shipping_zones)) { $data['show_shipping_options_warning'] = true; } $this->load->view('dashboard/includes/_header', $data); $this->load->view('dashboard/product/edit_product_details', $data); $this->load->view('dashboard/includes/_footer'); } /** * Edit Product Details Post */ public function edit_product_details_post() { $this->check_vendor_permission(true); $product_id = $this->input->post('id', true); $product = $this->product_admin_model->get_product($product_id); if (empty($product)) { redirect($this->agent->referrer()); exit(); } if (!has_permission('products') && $this->auth_user->id != $product->user_id) { redirect($this->agent->referrer()); exit(); } //check digital file if ($product->product_type == "digital" && $product->listing_type != 'license_key') { if ($this->db->where('product_id', $product->id)->get('digital_files')->num_rows() <= 0) { $this->session->set_flashdata('error', trans("digital_file_required")); redirect($this->agent->referrer()); exit(); } } if ($this->product_model->edit_product_details($product_id)) { //edit custom fields $this->product_model->update_product_custom_fields($product_id); //reset cache reset_cache_data_on_change(); reset_user_cache_data($this->auth_user->id); if ($product->is_draft != 1) { $this->session->set_flashdata('success', trans("msg_updated")); redirect($this->agent->referrer()); } else { //if draft if ($this->input->post('submit', true) == 'save_as_draft') { $this->session->set_flashdata('success', trans("draft_added")); } else { if ($this->general_settings->approve_before_publishing == 1 && !is_admin()) { $this->session->set_flashdata('success', trans("product_added") . " " . trans("product_approve_published") . " <a href='" . generate_product_url($product) . "' class='link-view-product'>" . trans("view_product") . "</a>"); } else { $this->session->set_flashdata('success', trans("product_added") . " <a href='" . generate_product_url($product) . "' class='link-view-product' target='_blank'>" . trans("view_product") . "</a>"); } //send email if ($this->general_settings->send_email_new_product == 1) { $email_data = array( 'email_type' => 'new_product', 'product_id' => $product->id ); $this->session->set_userdata('mds_send_email_data', json_encode($email_data)); } } redirect(generate_dash_url("add_product")); } } else { $this->session->set_flashdata('error', trans("msg_error")); redirect($this->agent->referrer()); } } //get activated product system public function get_activated_product_system() { $array = array( 'active_system_count' => 0, 'active_system_value' => "", ); if ($this->general_settings->marketplace_system == 1) { $array['active_system_count'] = $array['active_system_count'] + 1; $array['active_system_value'] = "sell_on_site"; } if ($this->general_settings->classified_ads_system == 1) { $array['active_system_count'] = $array['active_system_count'] + 1; $array['active_system_value'] = "ordinary_listing"; } if ($this->general_settings->bidding_system == 1) { $array['active_system_count'] = $array['active_system_count'] + 1; $array['active_system_value'] = "bidding"; } return $array; } /** * Products */ public function products() { $this->check_vendor_permission(); $data['title'] = trans("products"); $data['description'] = trans("products") . " - " . $this->app_name; $data['keywords'] = trans("products") . "," . $this->app_name; $data['page_url'] = generate_dash_url("products"); $data['promote_status'] = $this->general_settings->promoted_products == 1 ? 1 : 0; $data['num_rows'] = $this->product_model->get_paginated_user_products_count($this->auth_user->id, 'active'); $pagination = $this->paginate($data['page_url'], $data['num_rows'], $this->per_page); $data['products'] = $this->product_model->get_paginated_user_products($this->auth_user->id, 'active', $pagination['per_page'], $pagination['offset']); $this->load->view('dashboard/includes/_header', $data); $this->load->view('dashboard/product/products', $data); $this->load->view('dashboard/includes/_footer'); } /** * Pending Products */ public function pending_products() { $this->check_vendor_permission(); $data['title'] = trans("pending_products"); $data['description'] = trans("pending_products") . " - " . $this->app_name; $data['keywords'] = trans("pending_products") . "," . $this->app_name; $data['page_url'] = generate_dash_url("pending_products"); $data['num_rows'] = $this->product_model->get_paginated_user_products_count($this->auth_user->id, 'pending'); $pagination = $this->paginate($data['page_url'], $data['num_rows'], $this->per_page); $data['products'] = $this->product_model->get_paginated_user_products($this->auth_user->id, 'pending', $pagination['per_page'], $pagination['offset']); $this->load->view('dashboard/includes/_header', $data); $this->load->view('dashboard/product/pending_products', $data); $this->load->view('dashboard/includes/_footer'); } /** * Hidden Products */ public function hidden_products() { $this->check_vendor_permission(); $data['title'] = trans("hidden_products"); $data['description'] = trans("hidden_products") . " - " . $this->app_name; $data['keywords'] = trans("hidden_products") . "," . $this->app_name; $data['page_url'] = generate_dash_url("hidden_products"); $data['num_rows'] = $this->product_model->get_paginated_user_products_count($this->auth_user->id, 'hidden'); $pagination = $this->paginate($data['page_url'], $data['num_rows'], $this->per_page); $data['products'] = $this->product_model->get_paginated_user_products($this->auth_user->id, 'hidden', $pagination['per_page'], $pagination['offset']); $this->load->view('dashboard/includes/_header', $data); $this->load->view('dashboard/product/products', $data); $this->load->view('dashboard/includes/_footer'); } /** * Sold Products */ public function sold_products() { $this->check_vendor_permission(); $data['title'] = trans("sold_products"); $data['description'] = trans("sold_products") . " - " . $this->app_name; $data['keywords'] = trans("sold_products") . "," . $this->app_name; $data['page_url'] = generate_dash_url("sold_products"); $data['num_rows'] = $this->product_model->get_paginated_user_products_count($this->auth_user->id, 'sold'); $pagination = $this->paginate($data['page_url'], $data['num_rows'], $this->per_page); $data['products'] = $this->product_model->get_paginated_user_products($this->auth_user->id, 'sold', $pagination['per_page'], $pagination['offset']); $this->load->view('dashboard/includes/_header', $data); $this->load->view('dashboard/product/products', $data); $this->load->view('dashboard/includes/_footer'); } /** * Drafts */ public function drafts() { $this->check_vendor_permission(); $data['title'] = trans("drafts"); $data['description'] = trans("drafts") . " - " . $this->app_name; $data['keywords'] = trans("drafts") . "," . $this->app_name; $data['page_url'] = generate_dash_url("drafts"); $data['num_rows'] = $this->product_model->get_paginated_user_products_count($this->auth_user->id, 'draft'); $pagination = $this->paginate($data['page_url'], $data['num_rows'], $this->per_page); $data['products'] = $this->product_model->get_paginated_user_products($this->auth_user->id, 'draft', $pagination['per_page'], $pagination['offset']); $this->load->view('dashboard/includes/_header', $data); $this->load->view('dashboard/product/products', $data); $this->load->view('dashboard/includes/_footer'); } /** * Expired Products */ public function expired_products() { $this->check_vendor_permission(); if ($this->general_settings->membership_plans_system != 1) { redirect(dashboard_url()); exit(); } $data['title'] = trans("expired_products"); $data['description'] = trans("expired_products") . " - " . $this->app_name; $data['keywords'] = trans("expired_products") . "," . $this->app_name; $data['page_url'] = generate_dash_url("expired_products"); $data['num_rows'] = $this->product_model->get_paginated_user_products_count($this->auth_user->id, 'expired'); $pagination = $this->paginate($data['page_url'], $data['num_rows'], $this->per_page); $data['products'] = $this->product_model->get_paginated_user_products($this->auth_user->id, 'expired', $pagination['per_page'], $pagination['offset']); $this->load->view('dashboard/includes/_header', $data); $this->load->view('dashboard/product/products', $data); $this->load->view('dashboard/includes/_footer'); } /** * Delete Product */ public function delete_product() { $this->check_vendor_permission(); $id = $this->input->post('id', true); //user id $user_id = 0; $product = $this->product_admin_model->get_product($id); if (!empty($product)) { $user_id = $product->user_id; } $result = false; if (has_permission('products') || $this->auth_user->id == $user_id) { if ($product->is_draft == 1) { $result = $this->product_admin_model->delete_product_permanently($id); } else { $result = $this->product_model->delete_product($id); } } if ($result) { $this->session->set_flashdata('success', trans("msg_product_deleted")); //reset cache reset_cache_data_on_change(); reset_user_cache_data($user_id); } else { $this->session->set_flashdata('error', trans("msg_error")); } } //get subcategories public function get_subcategories() { $parent_id = $this->input->post('parent_id', true); if (!empty($parent_id)) { $subcategories = $this->category_model->get_subcategories_by_parent_id($parent_id); foreach ($subcategories as $item) { echo '<option value="' . $item->id . '">' . $item->name . '</option>'; } } } /* *------------------------------------------------------------------------------------------ * LICENSE KEYS *------------------------------------------------------------------------------------------ */ //add license keys public function add_license_keys() { post_method(); $this->check_vendor_permission(true); $product_id = $this->input->post('product_id', true); $product = $this->product_model->get_product_by_id($product_id); if (!empty($product)) { if ($this->auth_user->id == $product->user_id || has_permission('products')) { $this->product_model->add_license_keys($product_id); $this->session->set_flashdata('success', trans("msg_add_license_keys")); $data = array( 'result' => 1, 'success_message' => $this->load->view('dashboard/includes/_messages', '', true) ); echo json_encode($data); reset_flash_data(); } } } //delete license key public function delete_license_key() { post_method(); $this->check_vendor_permission(true); $id = $this->input->post('id', true); $product_id = $this->input->post('product_id', true); $product = $this->product_model->get_product_by_id($product_id); if (!empty($product)) { if ($this->auth_user->id == $product->user_id || has_permission('products')) { $this->product_model->delete_license_key($id); } } } //refresh license keys list public function refresh_license_keys_list() { post_method(); $product_id = $this->input->post('product_id', true); $data['product'] = $this->product_model->get_product_by_id($product_id); if (!empty($data['product'])) { if ($this->auth_user->id == $data['product']->user_id || has_permission('products')) { $data['license_keys'] = $this->product_model->get_license_keys($product_id); $this->load->view("dashboard/product/license/_license_keys_list", $data); } } } /* *------------------------------------------------------------------------------------------ * CSV BULK IMPORT *------------------------------------------------------------------------------------------ */ /** * Bulk Product Upload */ public function bulk_product_upload() { $this->check_vendor_permission(); $data['title'] = trans("bulk_product_upload"); $view = !$this->membership_model->is_allowed_adding_product() ? 'plan_expired' : 'bulk_product_upload'; if (!has_permission('products') && $this->general_settings->vendor_bulk_product_upload != 1) { redirect(dashboard_url()); exit(); } $this->load->view('dashboard/includes/_header', $data); $this->load->view('dashboard/product/' . $view, $data); $this->load->view('dashboard/includes/_footer'); } /** * Download CSV Files Post */ public function download_csv_files_post() { post_method(); $this->check_vendor_permission(); $submit = $this->input->post('submit', true); if ($submit == 'csv_template') { $this->load->helper('download'); force_download(FCPATH . "assets/file/csv_product_template.csv", NULL); } elseif ($submit == 'csv_example') { $this->load->helper('download'); force_download(FCPATH . "assets/file/csv_product_example.csv", NULL); } } /** * Generate CSV Object Post */ public function generate_csv_object_post() { $this->check_vendor_permission(); //delete old txt files $files = glob(FCPATH . 'uploads/temp/*.txt'); $now = time(); if (!empty($files)) { foreach ($files as $file) { if (is_file($file)) { if ($now - filemtime($file) >= 60 * 60 * 24) { @unlink($file); } } } } $file = null; if (isset($_FILES['file'])) { if (!empty($_FILES['file']['name'])) { $file = $_FILES['file']; } } $file_path = ""; $config['upload_path'] = './uploads/temp/'; $config['allowed_types'] = 'csv'; $config['file_name'] = uniqid(); $this->load->library('upload', $config); if ($this->upload->do_upload('file')) { $data = $this->upload->data(); if (isset($data['full_path'])) { $file_path = $data['full_path']; } } if (!empty($file_path)) { $csv_object = $this->product_admin_model->generate_csv_object($file_path); if (!empty($csv_object)) { $data = array( 'result' => 1, 'number_of_items' => $csv_object->number_of_items, 'txt_file_name' => $csv_object->txt_file_name, ); echo json_encode($data); exit(); } } $data = array( 'result' => 0 ); echo json_encode($data); } /** * Import CSV Item Post */ public function import_csv_item_post() { $this->check_vendor_permission(); $txt_file_name = $this->input->post('txt_file_name', true); $index = $this->input->post('index', true); $name = $this->product_admin_model->import_csv_item($txt_file_name, $index); if (!empty($name)) { $data = array( 'result' => 1, 'name' => $name, 'index' => $index ); echo json_encode($data); } else { $data = array( 'result' => 0, 'index' => $index ); echo json_encode($data); } } /* *------------------------------------------------------------------------------------------ * PROMOTE *------------------------------------------------------------------------------------------ */ /** * Pricing Post */ public function pricing_post() { $this->check_vendor_permission(); $product_id = $this->input->post('product_id', true); $product = $this->product_model->get_product_by_id($product_id); if (!empty($product)) { if ($product->user_id != $this->auth_user->id) { $this->session->set_flashdata('error', trans("invalid_attempt")); redirect($this->agent->referrer()); exit(); } $plan_type = $this->input->post('plan_type', true); $price_per_day = get_price($this->payment_settings->price_per_day, 'decimal'); $price_per_month = get_price($this->payment_settings->price_per_month, 'decimal'); $day_count = $this->input->post('day_count', true); $month_count = $this->input->post('month_count', true); $total_amount = 0; if ($plan_type == "daily") { $total_amount = number_format($day_count * $price_per_day, 2, ".", "") * 100; $purchased_plan = trans("daily_plan") . " (" . $day_count . " " . trans("days") . ")"; } if ($plan_type == "monthly") { $day_count = $month_count * 30; $total_amount = number_format($month_count * $price_per_month, 2, ".", "") * 100; $purchased_plan = trans("monthly_plan") . " (" . $day_count . " " . trans("days") . ")"; } $data = new stdClass(); $data->plan_type = $this->input->post('plan_type', true); $data->product_id = $product_id; $data->day_count = $day_count; $data->month_count = $month_count; $data->total_amount = get_price($total_amount, 'decimal'); $data->purchased_plan = $purchased_plan; if ($this->payment_settings->free_product_promotion == 1) { $this->promote_model->add_to_promoted_products($data); redirect($this->agent->referrer()); } else { $this->session->set_userdata('modesy_selected_promoted_plan', $data); redirect(generate_url("cart", "payment_method") . "?payment_type=promote"); } } $this->session->set_flashdata('error', trans("invalid_attempt")); redirect($this->agent->referrer()); } /* *------------------------------------------------------------------------------------------ * SALES *------------------------------------------------------------------------------------------ */ /** * Sales */ public function sales() { $this->check_vendor_permission(); if (!$this->is_sale_active) { redirect(dashboard_url()); } $data['title'] = trans("sales"); $data['description'] = trans("sales") . " - " . $this->app_name; $data['keywords'] = trans("sales") . "," . $this->app_name; $data['active_page'] = "sales"; $data['page_url'] = generate_dash_url("sales"); $data['num_rows'] = $this->order_model->get_sales_count($this->auth_user->id); $pagination = $this->paginate($data['page_url'], $data['num_rows'], $this->per_page); $data['sales'] = $this->order_model->get_paginated_sales($this->auth_user->id, $pagination['per_page'], $pagination['offset']); $this->load->view('dashboard/includes/_header', $data); $this->load->view('dashboard/sales/sales', $data); $this->load->view('dashboard/includes/_footer'); } /** * Completed Sales */ public function completed_sales() { $this->check_vendor_permission(); if (!$this->is_sale_active) { redirect(dashboard_url()); } $data['title'] = trans("completed_sales"); $data['description'] = trans("completed_sales") . " - " . $this->app_name; $data['keywords'] = trans("completed_sales") . "," . $this->app_name; $data['active_page'] = "completed_sales"; $data['page_url'] = generate_dash_url("completed_sales"); $data['num_rows'] = $this->order_model->get_completed_sales_count($this->auth_user->id); $pagination = $this->paginate($data['page_url'], $data['num_rows'], $this->per_page); $data['sales'] = $this->order_model->get_paginated_completed_sales($this->auth_user->id, $pagination['per_page'], $pagination['offset']); $this->load->view('dashboard/includes/_header', $data); $this->load->view('dashboard/sales/sales', $data); $this->load->view('dashboard/includes/_footer'); } /** * Cancelled Sales */ public function cancelled_sales() { $this->check_vendor_permission(); if (!$this->is_sale_active) { redirect(dashboard_url()); } $data['title'] = trans("cancelled_sales"); $data['description'] = trans("cancelled_sales") . " - " . $this->app_name; $data['keywords'] = trans("cancelled_sales") . "," . $this->app_name; $data['active_page'] = "cancelled_sales"; $data['page_url'] = generate_dash_url("cancelled_sales"); $data['num_rows'] = $this->order_model->get_cancelled_sales_count($this->auth_user->id); $pagination = $this->paginate($data['page_url'], $data['num_rows'], $this->per_page); $data['sales'] = $this->order_model->get_paginated_cancelled_sales($this->auth_user->id, $pagination['per_page'], $pagination['offset']); $this->load->view('dashboard/includes/_header', $data); $this->load->view('dashboard/sales/sales', $data); $this->load->view('dashboard/includes/_footer'); } /** * Sale */ public function sale($order_number) { $this->check_vendor_permission(); if (!$this->is_sale_active) { redirect(dashboard_url()); } $data['title'] = trans("sales"); $data['description'] = trans("sales") . " - " . $this->app_name; $data['keywords'] = trans("sales") . "," . $this->app_name; $data["active_tab"] = ""; $data["order"] = $this->order_model->get_order_by_order_number($order_number); if (empty($data["order"])) { redirect(dashboard_url()); } if (!$this->order_model->check_order_seller($data["order"]->id)) { redirect(dashboard_url()); } $data["order_products"] = $this->order_model->get_order_products($data["order"]->id); $this->load->view('dashboard/includes/_header', $data); $this->load->view('dashboard/sales/sale', $data); $this->load->view('dashboard/includes/_footer'); } /** * Update Order Product Status Post */ public function update_order_product_status_post() { $this->check_vendor_permission(); $id = $this->input->post('id', true); $order_product = $this->order_model->get_order_product($id); if ($this->auth_user->id != $order_product->seller_id) { redirect($this->agent->referrer()); exit(); } if (!empty($order_product)) { if ($this->order_model->update_order_product_status($id)) { $this->order_admin_model->update_order_status_if_completed($order_product->order_id); } } redirect($this->agent->referrer()); } /* *------------------------------------------------------------------------------------------ * COUPONS *------------------------------------------------------------------------------------------ */ /** * Coupons */ public function coupons() { $this->check_vendor_permission(); $this->load->model('coupon_model'); $data['title'] = trans("coupons"); $data['description'] = trans("coupons") . " - " . $this->app_name; $data['keywords'] = trans("coupons") . "," . $this->app_name; $data['num_rows'] = $this->coupon_model->get_coupons_count($this->auth_user->id); $pagination = $this->paginate(generate_dash_url("coupons"), $data['num_rows'], $this->per_page); $data['coupons'] = $this->coupon_model->get_coupons_paginated($this->auth_user->id, $pagination['per_page'], $pagination['offset']); $this->load->view('dashboard/includes/_header', $data); $this->load->view('dashboard/coupon/coupons', $data); $this->load->view('dashboard/includes/_footer'); } /** * Add Coupon */ public function add_coupon() { $this->check_vendor_permission(); $data['title'] = trans("add_coupon"); $data['description'] = trans("add_coupon") . " - " . $this->app_name; $data['keywords'] = trans("add_coupon") . "," . $this->app_name; $data['parent_categories'] = $this->category_model->get_parent_categories(); $data['categories'] = $this->category_model->get_vendor_categories(null, $this->auth_user->id, true, false); $data['category_ids'] = array(); if (!empty($data['categories']) && !empty($data['categories'][0])) { foreach ($data['categories'] as $item) { array_push($data['category_ids'], $item->id); } } $this->load->view('dashboard/includes/_header', $data); $this->load->view('dashboard/coupon/add_coupon', $data); $this->load->view('dashboard/includes/_footer'); } /** * Add Coupon Post */ public function add_coupon_post() { $this->check_vendor_permission(); $this->load->model('coupon_model'); //validate inputs $this->form_validation->set_rules('coupon_code', trans("coupon_code"), 'required|max_length[49]'); $this->form_validation->set_rules('discount_rate', trans("discount_rate"), 'required'); $this->form_validation->set_rules('coupon_count', trans("number_of_coupons"), 'required'); $this->form_validation->set_rules('expiry_date', trans("expiry_date"), 'required'); if ($this->form_validation->run() === false) { $this->session->set_flashdata('errors', validation_errors()); $this->session->set_flashdata('form_data', $this->coupon_model->input_values()); redirect($this->agent->referrer()); } else { $this->session->set_flashdata('selected_products_ids', $this->coupon_model->get_selected_products_array()); $code = $this->input->post('coupon_code', true); if (!empty($this->coupon_model->get_coupon_by_code($code))) { $this->session->set_flashdata('form_data', $this->coupon_model->input_values()); $this->session->set_flashdata('error', trans("msg_coupon_code_added_before")); redirect($this->agent->referrer()); exit(); } if ($this->coupon_model->add_coupon()) { $this->session->set_flashdata('success', trans("msg_added")); $this->session->set_flashdata('reset_checkbox', 1); } else { $this->session->set_flashdata('error', trans("msg_error")); } } redirect($this->agent->referrer()); } /** * Edit Coupon */ public function edit_coupon($id) { $this->check_vendor_permission(); $this->load->model('coupon_model'); $data['title'] = trans("edit_coupon"); $data['description'] = trans("edit_coupon") . " - " . $this->app_name; $data['keywords'] = trans("edit_coupon") . "," . $this->app_name; $data['coupon'] = $this->coupon_model->get_coupon($id); if (empty($data['coupon'])) { redirect(generate_dash_url("coupons")); exit(); } if ($data['coupon']->seller_id != $this->auth_user->id) { redirect(generate_dash_url("coupons")); exit(); } $data['parent_categories'] = $this->category_model->get_parent_categories(); $data['categories'] = $this->category_model->get_vendor_categories(null, $this->auth_user->id, true, false); $data['category_ids'] = array(); if (!empty($data['categories']) && !empty($data['categories'][0])) { foreach ($data['categories'] as $item) { array_push($data['category_ids'], $item->id); } } $data['selected_categories'] = explode(',', $data['coupon']->category_ids); if (empty($data['selected_categories'])) { $data['selected_categories'] = array(); } $data['selected_products'] = array(); $selected_products = $this->coupon_model->get_coupon_products($data['coupon']->id); if (!empty($selected_products)) { foreach ($selected_products as $item) { array_push($data['selected_products'], $item->product_id); } } $this->load->view('dashboard/includes/_header', $data); $this->load->view('dashboard/coupon/edit_coupon', $data); $this->load->view('dashboard/includes/_footer'); } /** * Edit Coupon Post */ public function edit_coupon_post() { $this->check_vendor_permission(); $this->load->model('coupon_model'); //validate inputs $this->form_validation->set_rules('coupon_code', trans("coupon_code"), 'required|max_length[49]'); $this->form_validation->set_rules('discount_rate', trans("discount_rate"), 'required'); $this->form_validation->set_rules('coupon_count', trans("number_of_coupons"), 'required'); $this->form_validation->set_rules('expiry_date', trans("expiry_date"), 'required'); if ($this->form_validation->run() === false) { $this->session->set_flashdata('errors', validation_errors()); $this->session->set_flashdata('form_data', $this->coupon_model->input_values()); redirect($this->agent->referrer()); } else { $coupon_id = $this->input->post('id', true); $coupon = $this->coupon_model->get_coupon($coupon_id); if (empty($coupon)) { redirect(generate_dash_url("coupons")); exit(); } if ($coupon->seller_id != $this->auth_user->id) { redirect(generate_dash_url("coupons")); exit(); } $code = $this->input->post('coupon_code', true); $coupon_by_code = $this->coupon_model->get_coupon_by_code($code); if (!empty($coupon_by_code) && $coupon_by_code->id != $coupon->id) { $this->session->set_flashdata('error', trans("msg_coupon_code_added_before")); redirect($this->agent->referrer()); exit(); } if ($this->coupon_model->edit_coupon($coupon_id)) { $this->session->set_flashdata('success', trans("msg_updated")); } else { $this->session->set_flashdata('error', trans("msg_error")); } } redirect($this->agent->referrer()); } /** * Delete Coupon Post */ public function delete_coupon_post() { $this->check_vendor_permission(); $this->load->model('coupon_model'); $id = $this->input->post('id', true); $coupon = $this->coupon_model->get_coupon($id); if (empty($coupon)) { exit(); } if ($coupon->seller_id != $this->auth_user->id) { exit(); } if ($this->coupon_model->delete_coupon($coupon)) { $this->session->set_flashdata('success', trans("msg_deleted")); } else { $this->session->set_flashdata('error', trans("msg_error")); } exit(); } /* *------------------------------------------------------------------------------------------ * REFUND *------------------------------------------------------------------------------------------ */ /** * Refund Requests */ public function refund_requests() { $this->check_vendor_permission(); $data['title'] = trans("refund_requests"); $data['description'] = trans("refund_requests") . " - " . $this->app_name; $data['keywords'] = trans("refund_requests") . "," . $this->app_name; $data['num_rows'] = $this->order_model->get_refund_requests_count($this->auth_user->id, 'seller'); $pagination = $this->paginate(generate_dash_url("refund_requests"), $data['num_rows'], $this->per_page); $data['refund_requests'] = $this->order_model->get_refund_requests_paginated($this->auth_user->id, 'seller', $pagination['per_page'], $pagination['offset']); $this->load->view('dashboard/includes/_header', $data); $this->load->view('dashboard/refund/refund_requests', $data); $this->load->view('dashboard/includes/_footer'); } /** * Refund */ public function refund($id) { $this->check_vendor_permission(); $data['title'] = trans("refund"); $data['description'] = trans("refund") . " - " . $this->app_name; $data['keywords'] = trans("refund") . "," . $this->app_name; $data['refund_request'] = $this->order_model->get_refund_request($id); if (empty($data['refund_request']) || $data['refund_request']->seller_id != $this->auth_user->id) { redirect(generate_dash_url("refund_requests")); exit(); } $data['product'] = get_order_product($data['refund_request']->order_product_id); if (empty($data['product'])) { redirect(generate_dash_url("refund_requests")); exit(); } $data['messages'] = $this->order_model->get_refund_messages($id); $this->load->view('dashboard/includes/_header', $data); $this->load->view('dashboard/refund/refund', $data); $this->load->view('dashboard/includes/_footer'); } /** * Approve or Decline Refund Request */ public function approve_decline_refund() { $this->check_vendor_permission(); $this->order_model->approve_decline_refund(); redirect($this->agent->referrer()); } /* *------------------------------------------------------------------------------------------ * EARNINGS *------------------------------------------------------------------------------------------ */ /** * Earnings */ public function earnings() { $this->check_vendor_permission(); if (!$this->is_sale_active) { redirect(dashboard_url()); } $data['title'] = trans("earnings"); $data['description'] = trans("earnings") . " - " . $this->app_name; $data['keywords'] = trans("earnings") . "," . $this->app_name; $data['num_rows'] = $this->earnings_model->get_earnings_count($this->auth_user->id); $pagination = $this->paginate(generate_dash_url('earnings'), $data['num_rows'], $this->per_page); $data['earnings'] = $this->earnings_model->get_paginated_earnings($this->auth_user->id, $pagination['per_page'], $pagination['offset']); $this->load->view('dashboard/includes/_header', $data); $this->load->view('dashboard/earnings/earnings', $data); $this->load->view('dashboard/includes/_footer'); } /** * Payouts */ public function payouts() { $this->check_vendor_permission(); if (!$this->is_sale_active) { redirect(dashboard_url()); } $data['title'] = trans("payouts"); $data['description'] = trans("payouts") . " - " . $this->app_name; $data['keywords'] = trans("payouts") . "," . $this->app_name; $data['num_rows'] = $this->earnings_model->get_payouts_count($this->auth_user->id); $pagination = $this->paginate(generate_dash_url('payouts'), $data['num_rows'], $this->per_page); $data['payouts'] = $this->earnings_model->get_paginated_payouts($this->auth_user->id, $pagination['per_page'], $pagination['offset']); $this->load->view('dashboard/includes/_header', $data); $this->load->view('dashboard/earnings/payouts', $data); $this->load->view('dashboard/includes/_footer'); } /** * Withdraw Money */ public function withdraw_money() { $this->check_vendor_permission(); if (!$this->is_sale_active) { redirect(dashboard_url()); } $data['title'] = trans("withdraw_money"); $data['description'] = trans("withdraw_money") . " - " . $this->app_name; $data['keywords'] = trans("withdraw_money") . "," . $this->app_name; $this->load->view('dashboard/includes/_header', $data); $this->load->view('dashboard/earnings/withdraw_money', $data); $this->load->view('dashboard/includes/_footer'); } /** * Withdraw Money Post */ public function withdraw_money_post() { $this->check_vendor_permission(); if (!$this->is_sale_active) { redirect(dashboard_url()); } $data = array( 'user_id' => $this->auth_user->id, 'payout_method' => $this->input->post('payout_method', true), 'amount' => $this->input->post('amount', true), 'currency' => $this->input->post('currency', true), 'status' => 0, 'created_at' => date('Y-m-d H:i:s') ); $data["amount"] = get_price($data["amount"], 'database'); //check active payouts $active_payouts = $this->earnings_model->get_active_payouts($this->auth_user->id); if (!empty($active_payouts)) { $this->session->set_flashdata('error', trans("active_payment_request_error")); redirect($this->agent->referrer()); } $min = 0; if ($data["payout_method"] == "paypal") { //check PayPal email $payout_paypal_email = $this->earnings_model->get_user_payout_account($this->auth_user->id); if (empty($payout_paypal_email) || empty($payout_paypal_email->payout_paypal_email)) { $this->session->set_flashdata('error', trans("msg_payout_paypal_error")); redirect($this->agent->referrer()); } $min = $this->payment_settings->min_payout_paypal; } if ($data["payout_method"] == "bitcoin") { //check bitcoin address $payout_bitcoin = $this->earnings_model->get_user_payout_account($this->auth_user->id); if (empty($payout_bitcoin) || empty($payout_bitcoin->payout_bitcoin_address)) { $this->session->set_flashdata('error', trans("msg_payout_bitcoin_address_error")); redirect($this->agent->referrer()); } $min = $this->payment_settings->min_payout_bitcoin; } if ($data["payout_method"] == "iban") { $min = $this->payment_settings->min_payout_iban; } if ($data["payout_method"] == "swift") { $min = $this->payment_settings->min_payout_swift; } if ($data["amount"] <= 0) { $this->session->set_flashdata('error', trans("msg_error")); redirect($this->agent->referrer()); } if ($data["amount"] < $min) { $this->session->set_flashdata('error', trans("invalid_withdrawal_amount")); redirect($this->agent->referrer()); } if ($data["amount"] > $this->auth_user->balance) { $this->session->set_flashdata('error', trans("invalid_withdrawal_amount")); redirect($this->agent->referrer()); } if (!$this->earnings_model->withdraw_money($data)) { $this->session->set_flashdata('error', trans("msg_error")); redirect($this->agent->referrer()); } $this->session->set_flashdata('success', trans("msg_request_sent")); redirect($this->agent->referrer()); } /** * Set Payout Account */ public function set_payout_account() { $this->check_vendor_permission(); if (!$this->is_sale_active) { redirect(dashboard_url()); } $data['title'] = trans("set_payout_account"); $data['description'] = trans("set_payout_account") . " - " . $this->app_name; $data['keywords'] = trans("set_payout_account") . "," . $this->app_name; $data['user_payout'] = $this->earnings_model->get_user_payout_account($this->auth_user->id); if (empty($this->session->flashdata('msg_payout'))) { if ($this->payment_settings->payout_paypal_enabled) { $this->session->set_flashdata('msg_payout', "paypal"); } elseif ($this->payment_settings->payout_iban_enabled) { $this->session->set_flashdata('msg_payout', "iban"); } elseif ($this->payment_settings->payout_swift_enabled) { $this->session->set_flashdata('msg_payout', "swift"); } } $this->load->view('dashboard/includes/_header', $data); $this->load->view('dashboard/earnings/set_payout_account', $data); $this->load->view('dashboard/includes/_footer'); } /** * Set Paypal Payout Account Post */ public function set_paypal_payout_account_post() { $this->check_vendor_permission(); if ($this->earnings_model->set_paypal_payout_account($this->auth_user->id)) { $this->session->set_flashdata('msg_payout', "paypal"); $this->session->set_flashdata('success', trans("msg_updated")); } else { $this->session->set_flashdata('msg_payout', "paypal"); $this->session->set_flashdata('error', trans("msg_error")); } redirect($this->agent->referrer()); } /** * Set Bitcoin Payout Account Post */ public function set_bitcoin_payout_account_post() { $this->check_vendor_permission(); if ($this->earnings_model->set_bitcoin_payout_account($this->auth_user->id)) { $this->session->set_flashdata('msg_payout', "bitcoin"); $this->session->set_flashdata('success', trans("msg_updated")); } else { $this->session->set_flashdata('msg_payout', "bitcoin"); $this->session->set_flashdata('error', trans("msg_error")); } redirect($this->agent->referrer()); } /** * Set IBAN Payout Account Post */ public function set_iban_payout_account_post() { $this->check_vendor_permission(); if ($this->earnings_model->set_iban_payout_account($this->auth_user->id)) { $this->session->set_flashdata('msg_payout', "iban"); $this->session->set_flashdata('success', trans("msg_updated")); } else { $this->session->set_flashdata('msg_payout', "iban"); $this->session->set_flashdata('error', trans("msg_error")); } redirect($this->agent->referrer()); } /** * Set SWIFT Payout Account Post */ public function set_swift_payout_account_post() { $this->check_vendor_permission(); if ($this->earnings_model->set_swift_payout_account($this->auth_user->id)) { $this->session->set_flashdata('msg_payout', "swift"); $this->session->set_flashdata('success', trans("msg_updated")); } else { $this->session->set_flashdata('msg_payout', "swift"); $this->session->set_flashdata('error', trans("msg_error")); } redirect($this->agent->referrer()); } /* *------------------------------------------------------------------------------------------ * QUOTE REQUESTS *------------------------------------------------------------------------------------------ */ /** * Quote Requests */ public function quote_requests() { $this->check_vendor_permission(); $this->load->model('bidding_model'); if (!is_bidding_system_active()) { redirect(dashboard_url()); } $data['title'] = trans("quote_requests"); $data['description'] = trans("quote_requests") . " - " . $this->app_name; $data['keywords'] = trans("quote_requests") . "," . $this->app_name; $data['num_rows'] = $this->bidding_model->get_vendor_quote_requests_count($this->auth_user->id); $pagination = $this->paginate(generate_dash_url("quote_requests"), $data['num_rows'], $this->per_page); $data['quote_requests'] = $this->bidding_model->get_paginated_vendor_quote_requests($this->auth_user->id, $pagination['per_page'], $pagination['offset']); $this->load->view('dashboard/includes/_header', $data); $this->load->view('dashboard/quote_requests', $data); $this->load->view('dashboard/includes/_footer'); } /** * Submit Quote */ public function submit_quote() { $this->check_vendor_permission(); $this->load->model('bidding_model'); $id = $this->input->post('id', true); $quote_request = $this->bidding_model->get_quote_request($id); if ($this->bidding_model->submit_quote($quote_request)) { //send email $buyer = get_user($quote_request->buyer_id); if (!empty($buyer) && $this->general_settings->send_email_bidding_system == 1) { $email_data = array( 'email_type' => 'email_general', 'to' => $buyer->email, 'subject' => trans("quote_request"), 'email_content' => trans("your_quote_request_replied") . "<br>" . trans("quote") . ": " . "<strong>#" . $quote_request->id . "</strong>", 'email_link' => generate_url("quote_requests"), 'email_button_text' => trans("view_details") ); $this->session->set_userdata('mds_send_email_data', json_encode($email_data)); } } else { $this->session->set_flashdata('error', trans("msg_error")); } redirect($this->agent->referrer()); } /* *------------------------------------------------------------------------------------------ * MEMBERSHIP *------------------------------------------------------------------------------------------ */ /** * Payment History */ public function payment_history() { $this->check_vendor_permission(); $payment = input_get("payment"); if ($payment == "membership") { if ($this->general_settings->membership_plans_system != 1) { redirect(dashboard_url()); exit(); } $data['title'] = trans("membership_payments"); $data['description'] = trans("membership_payments") . " - " . $this->app_name; $data['keywords'] = trans("membership_payments") . "," . $this->app_name; $data['num_rows'] = $this->membership_model->get_membership_transactions_count($this->auth_user->id); $pagination = $this->paginate(generate_dash_url("payment_history") . '?payment=membership', $data['num_rows'], $this->per_page); $data['transactions'] = $this->membership_model->get_paginated_membership_transactions($this->auth_user->id, $pagination['per_page'], $pagination['offset']); $this->load->view('dashboard/includes/_header', $data); $this->load->view('dashboard/payment_history/membership_transactions', $data); $this->load->view('dashboard/includes/_footer'); } elseif ($payment == "promotion") { $data['title'] = trans("promotion_payments"); $data['description'] = trans("promotion_payments") . " - " . $this->app_name; $data['keywords'] = trans("promotion_payments") . "," . $this->app_name; $data['num_rows'] = $this->promote_model->get_promoted_transactions_count($this->auth_user->id); $pagination = $this->paginate(generate_dash_url("payment_history") . '?payment=promotion', $data['num_rows'], $this->per_page); $data['transactions'] = $this->promote_model->get_paginated_promoted_transactions($this->auth_user->id, $pagination['per_page'], $pagination['offset']); $this->load->view('dashboard/includes/_header', $data); $this->load->view('dashboard/payment_history/promotion_transactions', $data); $this->load->view('dashboard/includes/_footer'); } else { redirect(dashboard_url()); } } /* *------------------------------------------------------------------------------------------ * COMMENTS *------------------------------------------------------------------------------------------ */ /** * Comments */ public function comments() { $this->check_vendor_permission(); if ($this->general_settings->product_comments != 1) { redirect(dashboard_url()); exit(); } $data['title'] = trans("comments"); $data['description'] = trans("comments") . " - " . $this->app_name; $data['keywords'] = trans("comments") . "," . $this->app_name; $data['num_rows'] = $this->comment_model->get_vendor_comments_count($this->auth_user->id); $pagination = $this->paginate(generate_dash_url("comments"), $data['num_rows'], $this->per_page); $data['comments'] = $this->comment_model->get_paginated_vendor_comments($this->auth_user->id, $pagination['per_page'], $pagination['offset']); $this->load->view('dashboard/includes/_header', $data); $this->load->view('dashboard/comments', $data); $this->load->view('dashboard/includes/_footer'); } /** * Reviews */ public function reviews() { $this->check_vendor_permission(); if ($this->general_settings->reviews != 1) { redirect(dashboard_url()); exit(); } $data['title'] = trans("reviews"); $data['description'] = trans("reviews") . " - " . $this->app_name; $data['keywords'] = trans("reviews") . "," . $this->app_name; $data['num_rows'] = $this->review_model->get_vendor_reviews_count($this->auth_user->id); $pagination = $this->paginate(generate_dash_url("reviews"), $data['num_rows'], $this->per_page); $data['reviews'] = $this->review_model->get_paginated_vendor_reviews($this->auth_user->id, $pagination['per_page'], $pagination['offset']); $this->load->view('dashboard/includes/_header', $data); $this->load->view('dashboard/reviews', $data); $this->load->view('dashboard/includes/_footer'); } /* *------------------------------------------------------------------------------------------ * SHOP SETTINGS *------------------------------------------------------------------------------------------ */ /** * Shop Settings */ public function shop_settings() { $this->check_vendor_permission(); $data['title'] = trans("shop_settings"); $data['description'] = trans("shop_settings") . " - " . $this->app_name; $data['keywords'] = trans("shop_settings") . "," . $this->app_name; $data['user_plan'] = $this->membership_model->get_user_plan_by_user_id($this->auth_user->id); $data['days_left'] = $this->membership_model->get_user_plan_remaining_days_count($data['user_plan']); $data['ads_left'] = $this->membership_model->get_user_plan_remaining_ads_count($data['user_plan']); $data["states"] = array(); $data["cities"] = array(); if (!empty($this->auth_user->country_id)) { $data["states"] = $this->location_model->get_states_by_country($this->auth_user->country_id); } if (!empty($this->auth_user->state_id)) { $data["cities"] = $this->location_model->get_cities_by_state($this->auth_user->state_id); } $this->load->view('dashboard/includes/_header', $data); $this->load->view('dashboard/shop_settings', $data); $this->load->view('dashboard/includes/_footer'); } /** * Shop Settings Post */ public function shop_settings_post() { $this->check_vendor_permission(); $submit = $this->input->post('submit', true); if ($submit == 'cash_on_delivery') { if ($this->profile_model->update_cash_on_delivery()) { $this->session->set_flashdata('success', trans("msg_updated")); redirect($this->agent->referrer()); } else { $this->session->set_flashdata('error', trans("msg_error")); redirect($this->agent->referrer()); } } else { $shop_name = remove_special_characters($this->input->post('shop_name', true)); if (!$this->auth_model->is_unique_shop_name($shop_name, $this->auth_user->id)) { $this->session->set_flashdata('form_data', $this->auth_model->input_values()); $this->session->set_flashdata('error', trans("msg_shop_name_unique_error")); redirect($this->agent->referrer()); exit(); } if ($this->profile_model->update_shop_settings($shop_name)) { $this->session->set_flashdata('success', trans("msg_updated")); redirect($this->agent->referrer()); } else { $this->session->set_flashdata('error', trans("msg_error")); redirect($this->agent->referrer()); } } } //show address on map public function show_address_on_map() { $country_text = $this->input->post('country_text', true); $country_val = $this->input->post('country_val', true); $state_text = $this->input->post('state_text', true); $state_val = $this->input->post('state_val', true); $address = $this->input->post('address', true); $zip_code = $this->input->post('zip_code', true); $adress_details = $address . " " . $zip_code; $data["map_address"] = ""; if (!empty($adress_details)) { $data["map_address"] = $adress_details . " "; } if (!empty($state_val)) { $data["map_address"] = $data["map_address"] . $state_text . " "; } if (!empty($country_val)) { $data["map_address"] = $data["map_address"] . $country_text; } $this->load->view('product/_load_map', $data); } /* *------------------------------------------------------------------------------------------ * SHIPPING SETTINGS *------------------------------------------------------------------------------------------ */ /** * Shipping Settings */ public function shipping_settings() { $this->check_vendor_permission(); if (!$this->is_sale_active || $this->general_settings->physical_products_system != 1) { redirect(dashboard_url()); exit(); } $data['title'] = trans("shipping_settings"); $data['description'] = trans("shipping_settings") . " - " . $this->app_name; $data['keywords'] = trans("shipping_settings") . "," . $this->app_name; $data['shipping_zones'] = $this->shipping_model->get_shipping_zones($this->auth_user->id); $data['shipping_classes'] = $this->shipping_model->get_shipping_classes($this->auth_user->id); $data['shipping_delivery_times'] = $this->shipping_model->get_shipping_delivery_times($this->auth_user->id, 'DESC'); $this->load->view('dashboard/includes/_header', $data); $this->load->view('dashboard/shipping/shipping_settings', $data); $this->load->view('dashboard/includes/_footer'); } /** * Add Shipping Zone */ public function add_shipping_zone() { $this->check_vendor_permission(); $data['title'] = trans("add_shipping_zone"); $data['description'] = trans("add_shipping_zone") . " - " . $this->app_name; $data['keywords'] = trans("add_shipping_zone") . "," . $this->app_name; $data['continents'] = get_continents(); $data['shipping_classes'] = $this->shipping_model->get_active_shipping_classes($this->auth_user->id); $this->load->view('dashboard/includes/_header', $data); $this->load->view('dashboard/shipping/add_shipping_zone', $data); $this->load->view('dashboard/includes/_footer'); } /** * Add Shipping Zone Post */ public function add_shipping_zone_post() { $this->check_vendor_permission(); if ($this->shipping_model->add_shipping_zone()) { $this->session->set_flashdata('success', trans("msg_added")); } else { $this->session->set_flashdata('error', trans("msg_error")); } redirect($this->agent->referrer()); } /** * Edit Shipping Zone */ public function edit_shipping_zone($id) { $this->check_vendor_permission(); $data['title'] = trans("edit_shipping_zone"); $data['description'] = trans("edit_shipping_zone") . " - " . $this->app_name; $data['keywords'] = trans("edit_shipping_zone") . "," . $this->app_name; $data['shipping_zone'] = $this->shipping_model->get_shipping_zone($id); if (empty($data['shipping_zone'])) { redirect(dashboard_url()); exit(); } $data['continents'] = get_continents(); $data['shipping_classes'] = $this->shipping_model->get_active_shipping_classes($this->auth_user->id); $this->load->view('dashboard/includes/_header', $data); $this->load->view('dashboard/shipping/edit_shipping_zone', $data); $this->load->view('dashboard/includes/_footer'); } /** * Edit Shipping Zone Post */ public function edit_shipping_zone_post() { $this->check_vendor_permission(); $zone_id = $this->input->post('zone_id', true); $shipping_zone = $this->shipping_model->get_shipping_zone($zone_id); if (empty($shipping_zone)) { redirect(generate_dash_url("shipping_settings")); exit(); } if ($this->shipping_model->edit_shipping_zone($zone_id)) { $this->session->set_flashdata('success', trans("msg_updated")); } else { $this->session->set_flashdata('error', trans("msg_error")); } $this->session->set_flashdata('msg_shipping_zone', 1); redirect($this->agent->referrer()); } /** * Delete Shipping Location */ public function delete_shipping_location_post() { $this->check_vendor_permission(); $id = $this->input->post('id', true); $this->shipping_model->delete_shipping_location($id); } //select shipping method public function select_shipping_method() { $this->check_vendor_permission(); $selected_option = $this->input->post('selected_option', true); $shipping_classes = $this->shipping_model->get_active_shipping_classes($this->auth_user->id); $vars = array('selected_option' => $selected_option, 'option_unique_id' => uniqid(), 'shipping_classes' => $shipping_classes); $html_content = $this->load->view("dashboard/shipping/_response_shipping_method", $vars, true); $data = array( 'result' => 1, 'html_content' => $html_content, ); echo json_encode($data); } /** * Add Shipping Class Post */ public function add_shipping_class_post() { $this->check_vendor_permission(); if ($this->shipping_model->add_shipping_class()) { $this->session->set_flashdata('success', trans("msg_added")); } else { $this->session->set_flashdata('error', trans("msg_error")); } $this->session->set_flashdata('msg_shipping_class', 1); redirect($this->agent->referrer()); } /** * Edit Shipping Class Post */ public function edit_shipping_class_post() { $this->check_vendor_permission(); $id = $this->input->post('id', true); if ($this->shipping_model->edit_shipping_class($id)) { $this->session->set_flashdata('success', trans("msg_updated")); } else { $this->session->set_flashdata('error', trans("msg_error")); } $this->session->set_flashdata('msg_shipping_class', 1); redirect($this->agent->referrer()); } /** * Delete Shipping Class */ public function delete_shipping_class_post() { $this->check_vendor_permission(); $id = $this->input->post('id', true); $this->shipping_model->delete_shipping_class($id); } /** * Add Shipping Delivery Time Post */ public function add_shipping_delivery_time_post() { $this->check_vendor_permission(); if ($this->shipping_model->add_shipping_delivery_time()) { $this->session->set_flashdata('success', trans("msg_added")); } else { $this->session->set_flashdata('error', trans("msg_error")); } $this->session->set_flashdata('msg_delivery_time', 1); redirect($this->agent->referrer()); } /** * Edit Shipping Delivery Time Post */ public function edit_shipping_delivery_time_post() { $this->check_vendor_permission(); $id = $this->input->post('id', true); if ($this->shipping_model->edit_shipping_delivery_time($id)) { $this->session->set_flashdata('success', trans("msg_updated")); } else { $this->session->set_flashdata('error', trans("msg_error")); } $this->session->set_flashdata('msg_delivery_time', 1); redirect($this->agent->referrer()); } /** * Delete Shipping Method */ public function delete_shipping_method_post() { $this->check_vendor_permission(); $id = $this->input->post('id', true); $this->shipping_model->delete_shipping_method($id); } /** * Delete Shipping Delivery Time */ public function delete_shipping_delivery_time_post() { $this->check_vendor_permission(); $id = $this->input->post('id', true); $this->shipping_model->delete_shipping_delivery_time($id); } /** * Delete Shipping Zone */ public function delete_shipping_zone_post() { $this->check_vendor_permission(); $id = $this->input->post('id', true); $this->shipping_model->delete_shipping_zone($id); } /** * Check Vendor Permission */ public function check_vendor_permission($allow_admin = false) { $has_permission = false; if (is_vendor()) { $has_permission = true; } else { if ($allow_admin == true) { if (has_permission('products')) { $has_permission = true; } } } if ($has_permission == false) { if ($this->general_settings->membership_plans_system == 1) { redirect(generate_url("start_selling", "select_membership_plan")); exit(); } redirect(generate_url("start_selling")); exit(); } } }