|
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 : |
<?php defined('BASEPATH') or exit('No direct script access allowed');
class Campaign extends Public_Controller
{
public function __construct()
{
parent::__construct();
$this->load->model([
'promotional_campaign_m'
]);
$this->load->helper('url');
if ($this->session->userdata('site_lang') == 'english') {
$this->lang->load('mainpage', 'english');
} else {
$this->lang->load('mainpage', 'indonesian');
}
$this->load->library('CampaignManager');
$this->load->library('GoogleClient');
$loginUrl = $this->googleclient->getLoginUrl();
$this->data_footer['googleUrl'] = $loginUrl;
}
public function index($campaign_code = null)
{
if (!$campaign_code) {
show_404();
return;
}
// Check is campaign available, and is campaign active
// If campaign inactive, redirect to base url
// If campaign active, check due date, if valid set campaign data to session
// Retrieve products for this campaign (check for excluded product first, applicable products, applicable categories)
try {
// Validate campaign
$campaign = $this->campaignmanager->get_active_campaign($campaign_code);
if (!$campaign) {
// Campaign not found or inactive
$this->session->set_flashdata('error', 'Campaign tidak ditemukan atau sudah tidak aktif.');
redirect(base_url());
return;
}
// Check if campaign is within valid date range
if (!$this->campaignmanager->is_campaign_valid($campaign)) {
$this->session->set_flashdata('error', 'Campaign sudah berakhir.');
redirect(base_url());
return;
}
// Check usage limit
if ($this->campaignmanager->is_usage_limit_reached($campaign)) {
$this->session->set_flashdata('error', 'Maaf, kuota campaign sudah habis.');
redirect(base_url());
return;
}
// Set campaign to session for persistent discount
$this->campaignmanager->set_campaign_session($campaign);
// 5. Log campaign access for analytics
$this->campaignmanager->log_campaign_access($campaign->id, 'view');
redirect(base_url('product'));
} catch (Exception $e) {
}
}
}