Исходный код метода:
$this->load->model('account/recurring');
$this->load->language('account/recurring');
if (isset($this->request->get['recurring_id'])) {
$recurring_id = $this->request->get['recurring_id'];
} else {
$recurring_id = 0;
}
if (!$this->customer->isLogged()) {
$this->session->data['redirect'] = $this->url->link('account/recurring/info', 'recurring_id=' . $recurring_id, 'SSL');
$this->redirect($this->url->link('account/login', '', 'SSL'));
}
if(isset($this->session->data['error'])){
$this->data['error'] = $this->session->data['error'];
unset($this->session->data['error']);
}else{
$this->data['error'] = '';
}
if(isset($this->session->data['success'])){
$this->data['success'] = $this->session->data['success'];
unset($this->session->data['success']);
}else{
$this->data['success'] = '';
}
$profile = $this->model_account_recurring->getProfile($this->request->get['recurring_id']);
$profile['transactions'] = $this->model_account_recurring->getProfileTransactions($this->request->get['recurring_id']);
$profile['created'] = date($this->language->get('date_format_short'), strtotime($profile['created']));
$profile['product_link'] = $this->url->link('product/product', 'product_id='.$profile['product_id'], 'SSL');
$profile['order_link'] = $this->url->link('account/order/info', 'order_id='.$profile['order_id'], 'SSL');
if($profile['status'] == 1 || $profile['status'] == 2){
/**
* If the payment profiles payment type has a cancel action then link to that. If not then hide the button.
*/
if(!empty($profile['payment_code']) && $this->hasAction('payment/' . $profile['payment_code'] . '/recurringCancel') == true && $this->config->get($profile['payment_code'] . '_profile_cancel_status')){
$this->data['cancel_link'] = $this->url->link('payment/'.$profile['payment_code'].'/recurringCancel', 'recurring_id='.$this->request->get['recurring_id'], 'SSL');
}else{
$this->data['cancel_link'] = '';
}
}else{
$this->data['cancel_link'] = '';
}
$this->data['status_types'] = array(
1 => $this->language->get('text_status_inactive'),
2 => $this->language->get('text_status_active'),
3 => $this->language->get('text_status_suspended'),
4 => $this->language->get('text_status_cancelled'),
5 => $this->language->get('text_status_expired'),
6 => $this->language->get('text_status_pending'),
);
$this->data['transaction_types'] = array(
0 => $this->language->get('text_transaction_created'),
1 => $this->language->get('text_transaction_payment'),
2 => $this->language->get('text_transaction_outstanding_payment'),
3 => $this->language->get('text_transaction_skipped'),
4 => $this->language->get('text_transaction_failed'),
5 => $this->language->get('text_transaction_cancelled'),
6 => $this->language->get('text_transaction_suspended'),
7 => $this->language->get('text_transaction_suspended_failed'),
8 => $this->language->get('text_transaction_outstanding_failed'),
9 => $this->language->get('text_transaction_expired'),
);
if ($profile) {
$this->document->setTitle($this->language->get('text_recurring'));
$this->data['breadcrumbs'] = array();
$this->data['breadcrumbs'][] = array(
'text' => $this->language->get('text_home'),
'href' => $this->url->link('common/home'),
'separator' => false
);
$this->data['breadcrumbs'][] = array(
'text' => $this->language->get('text_account'),
'href' => $this->url->link('account/account', '', 'SSL'),
'separator' => $this->language->get('text_separator')
);
$url = '';
if (isset($this->request->get['page'])) {
$url .= '&page=' . $this->request->get['page'];
}
$this->data['breadcrumbs'][] = array(
'text' => $this->language->get('heading_title'),
'href' => $this->url->link('account/recurring', $url, 'SSL'),
'separator' => $this->language->get('text_separator')
);
$this->data['breadcrumbs'][] = array(
'text' => $this->language->get('text_recurring'),
'href' => $this->url->link('account/recurring/info', 'recurring_id=' . $this->request->get['recurring_id'] . $url, 'SSL'),
'separator' => $this->language->get('text_separator')
);
$this->data['heading_title'] = $this->language->get('text_recurring');
$this->data['column_created'] = $this->language->get('column_created');
$this->data['column_type'] = $this->language->get('column_type');
$this->data['column_amount'] = $this->language->get('column_amount');
$this->data['text_recurring_id'] = $this->language->get('text_recurring_id');
$this->data['text_date_added'] = $this->language->get('text_date_added');
$this->data['text_empty_transactions'] = $this->language->get('text_empty_transactions');
$this->data['text_payment_method'] = $this->language->get('text_payment_method');
$this->data['text_recurring_detail'] = $this->language->get('text_recurring_detail');
$this->data['text_status'] = $this->language->get('text_status');
$this->data['text_ref'] = $this->language->get('text_ref');
$this->data['text_product'] = $this->language->get('text_product');
$this->data['text_order'] = $this->language->get('text_order');
$this->data['text_quantity'] = $this->language->get('text_quantity');
$this->data['text_transactions'] = $this->language->get('text_transactions');
$this->data['text_recurring_description'] = $this->language->get('text_recurring_description');
$this->data['button_return'] = $this->language->get('button_return');
$this->data['button_continue'] = $this->language->get('button_continue');
$this->data['button_cancel_profile'] = $this->language->get('button_cancel_profile');
$this->data['text_confirm_cancel'] = $this->language->get('text_confirm_cancel');
$this->data['continue'] = $this->url->link('account/recurring', '', 'SSL');
$this->data['profile'] = $profile;
if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/account/recurring_info.tpl')) {
$this->template = $this->config->get('config_template') . '/template/account/recurring_info.tpl';
} else {
$this->template = 'default/template/account/recurring_info.tpl';
}
$this->children = array(
'common/column_left',
'common/column_right',
'common/content_top',
'common/content_bottom',
'common/footer',
'common/header'
);
$this->response->setOutput($this->render());
} else {
$this->redirect($this->url->link('account/recurring', '', 'SSL'));
}