docs/api/source-catalog.controller.account.subscription.html
| 1: | <?php | | 2: | namespace Opencart\Catalog\Controller\Account; | | 3: | /** | | 4: | * Class Subscription | | 5: | * | | 6: | * @package Opencart\Catalog\Controller\Account | | 7: | */ | | 8: | class Subscription extends \Opencart\System\Engine\Controller { | | 9: | /** | | 10: | * @return void | | 11: | */ | | 12: | public function index(): void { | | 13: | $this->load->language('account/subscription'); | | 14: | | | 15: | if (isset($this->request->get['page'])) { | | 16: | $page = (int)$this->request->get['page']; | | 17: | } else { | | 18: | $page = 1; | | 19: | } | | 20: | | | 21: | if (!$this->customer->isLogged() || (!isset($this->request->get['customer_token']) || !isset($this->session->data['customer_token']) || ($this->request->get['customer_token'] != $this->session->data['customer_token']))) { | | 22: | $this->session->data['redirect'] = $this->url->link('account/subscription', 'language=' . $this->config->get('config_language')); | | 23: | | | 24: | $this->response->redirect($this->url->link('account/login', 'language=' . $this->config->get('config_language'), true)); | | 25: | } | | 26: | | | 27: | $this->document->setTitle($this->language->get('heading_title')); | | 28: | | | 29: | $url = ''; | | 30: | | | 31: | if (isset($this->request->get['page'])) { | | 32: | $url .= '&page=' . $this->request->get['page']; | | 33: | } | | 34: | | | 35: | $data['breadcrumbs'] = []; | | 36: | | | 37: | $data['breadcrumbs'][] = [ | | 38: | 'text' => $this->language->get('text_home'), | | 39: | 'href' => $this->url->link('common/home', 'language=' . $this->config->get('config_language')) | | 40: | ]; | | 41: | | | 42: | $data['breadcrumbs'][] = [ | | 43: | 'text' => $this->language->get('text_account'), | | 44: | 'href' => $this->url->link('account/account', 'language=' . $this->config->get('config_language') . '&customer_token=' . $this->session->data['customer_token']) | | 45: | ]; | | 46: | | | 47: | $data['breadcrumbs'][] = [ | | 48: | 'text' => $this->language->get('heading_title'), | | 49: | 'href' => $this->url->link('account/subscription', 'language=' . $this->config->get('config_language') . '&customer_token=' . $this->session->data['customer_token'] . $url) | | 50: | ]; | | 51: | | | 52: | $limit = 10; | | 53: | | | 54: | $data['subscriptions'] = []; | | 55: | | | 56: | $this->load->model('account/subscription'); | | 57: | $this->load->model('account/order'); | | 58: | $this->load->model('catalog/product'); | | 59: | $this->load->model('localisation/currency'); | | 60: | $this->load->model('localisation/subscription_status'); | | 61: | | | 62: | $results = $this->model_account_subscription->getSubscriptions(($page - 1) * $limit, $limit); | | 63: | | | 64: | foreach ($results as $result) { | | 65: | $product_info = $this->model_catalog_product->getProduct($result['product_id']); | | 66: | | | 67: | if ($product_info) { | | 68: | $currency_info = $this->model_localisation_currency->getCurrency($result['currency_id']); | | 69: | | | 70: | if ($currency_info) { | | 71: | $currency = $currency_info['code']; | | 72: | } else { | | 73: | $currency = $this->config->get('config_currency'); | | 74: | } | | 75: | | | 76: | $description = ''; | | 77: | | | 78: | if ($result['trial_status']) { | | 79: | $trial_price = $this->currency->format($this->tax->calculate($result['trial_price'], $product_info['tax_class_id'], $this->config->get('config_tax')), $currency); | | 80: | $trial_cycle = $result['trial_cycle']; | | 81: | $trial_frequency = $this->language->get('text_' . $result['trial_frequency']); | | 82: | $trial_duration = $result['trial_duration']; | | 83: | | | 84: | $description .= sprintf($this->language->get('text_subscription_trial'), $trial_price, $trial_cycle, $trial_frequency, $trial_duration); | | 85: | } | | 86: | | | 87: | $price = $this->currency->format($this->tax->calculate($result['price'], $product_info['tax_class_id'], $this->config->get('config_tax')), $currency); | | 88: | $cycle = $result['cycle']; | | 89: | $frequency = $this->language->get('text_' . $result['frequency']); | | 90: | $duration = $result['duration']; | | 91: | | | 92: | if ($duration) { | | 93: | $description .= sprintf($this->language->get('text_subscription_duration'), $price, $cycle, $frequency, $duration); | | 94: | } else { | | 95: | $description .= sprintf($this->language->get('text_subscription_cancel'), $price, $cycle, $frequency); | | 96: | } | | 97: | | | 98: | $subscription_status_info = $this->model_localisation_subscription_status->getSubscriptionStatus($result['subscription_status_id']); | | 99: | | | 100: | if ($subscription_status_info) { | | 101: | $subscription_status = $subscription_status_info['name']; | | 102: | } else { | | 103: | $subscription_status = ''; | | 104: | } | | 105: | | | 106: | $data['subscriptions'][] = [ | | 107: | 'subscription_id' => $result['subscription_id'], | | 108: | 'product_id' => $result['product_id'], | | 109: | 'product_name' => $product_info['name'], | | 110: | 'description' => $description, | | 111: | 'product' => $this->url->link('product/product', 'language=' . $this->config->get('config_language') . '&product_id=' . $result['product_id']), | | 112: | 'status' => $subscription_status, | | 113: | 'date_added' => date($this->language->get('date_format_short'), strtotime($result['date_added'])), | | 114: | 'view' => $this->url->link('account/subscription.info', 'language=' . $this->config->get('config_language') . '&customer_token=' . $this->session->data['customer_token'] . '&subscription_id=' . $result['subscription_id']) | | 115: | ]; | | 116: | } | | 117: | } | | 118: | | | 119: | $subscription_total = $this->model_account_subscription->getTotalSubscriptions(); | | 120: | | | 121: | $data['pagination'] = $this->load->controller('common/pagination', [ | | 122: | 'total' => $subscription_total, | | 123: | 'page' => $page, | | 124: | 'limit' => $limit, | | 125: | 'url' => $this->url->link('account/subscription', 'language=' . $this->config->get('config_language') . '&customer_token=' . $this->session->data['customer_token'] . '&page={page}') | | 126: | ]); | | 127: | | | 128: | $data['results'] = sprintf($this->language->get('text_pagination'), ($subscription_total) ? (($page - 1) * $limit) + 1 : 0, ((($page - 1) * $limit) > ($subscription_total - $limit)) ? $subscription_total : ((($page - 1) * $limit) + $limit), $subscription_total, ceil($subscription_total / $limit)); | | 129: | | | 130: | $data['continue'] = $this->url->link('account/account', 'language=' . $this->config->get('config_language') . '&customer_token=' . $this->session->data['customer_token']); | | 131: | | | 132: | $data['column_left'] = $this->load->controller('common/column_left'); | | 133: | $data['column_right'] = $this->load->controller('common/column_right'); | | 134: | $data['content_top'] = $this->load->controller('common/content_top'); | | 135: | $data['content_bottom'] = $this->load->controller('common/content_bottom'); | | 136: | $data['footer'] = $this->load->controller('common/footer'); | | 137: | $data['header'] = $this->load->controller('common/header'); | | 138: | | | 139: | $this->response->setOutput($this->load->view('account/subscription_list', $data)); | | 140: | } | | 141: | | | 142: | /** | | 143: | * Info | | 144: | * | | 145: | * @return \Opencart\System\Engine\Action|null | | 146: | */ | | 147: | public function info(): ?\Opencart\System\Engine\Action { | | 148: | $this->load->language('account/subscription'); | | 149: | | | 150: | if (isset($this->request->get['subscription_id'])) { | | 151: | $subscription_id = (int)$this->request->get['subscription_id']; | | 152: | } else { | | 153: | $subscription_id = 0; | | 154: | } | | 155: | | | 156: | if (!$this->customer->isLogged() || (!isset($this->request->get['customer_token']) || !isset($this->session->data['customer_token']) || ($this->request->get['customer_token'] != $this->session->data['customer_token']))) { | | 157: | $this->session->data['redirect'] = $this->url->link('account/subscription', 'language=' . $this->config->get('config_language')); | | 158: | | | 159: | $this->response->redirect($this->url->link('account/login', 'language=' . $this->config->get('config_language'), true)); | | 160: | } | | 161: | | | 162: | $this->load->model('account/subscription'); | | 163: | | | 164: | $subscription_info = $this->model_account_subscription->getSubscription($subscription_id); | | 165: | | | 166: | if ($subscription_info) { | | 167: | $heading_title = sprintf($this->language->get('text_subscription'), $subscription_info['subscription_id']); | | 168: | | | 169: | $this->document->setTitle($heading_title); | | 170: | | | 171: | $data['heading_title'] = $heading_title; | | 172: | | | 173: | $url = ''; | | 174: | | | 175: | if (isset($this->request->get['page'])) { | | 176: | $url .= '&page=' . $this->request->get['page']; | | 177: | } | | 178: | | | 179: | $data['breadcrumbs'] = []; | | 180: | | | 181: | $data['breadcrumbs'][] = [ | | 182: | 'text' => $this->language->get('text_home'), | | 183: | 'href' => $this->url->link('common/home', 'language=' . $this->config->get('config_language')) | | 184: | ]; | | 185: | | | 186: | $data['breadcrumbs'][] = [ | | 187: | 'text' => $this->language->get('text_account'), | | 188: | 'href' => $this->url->link('account/account', 'language=' . $this->config->get('config_language') . '&customer_token=' . $this->session->data['customer_token']) | | 189: | ]; | | 190: | | | 191: | $data['breadcrumbs'][] = [ | | 192: | 'text' => $this->language->get('heading_title'), | | 193: | 'href' => $this->url->link('account/subscription', 'language=' . $this->config->get('config_language') . '&customer_token=' . $this->session->data['customer_token'] . $url) | | 194: | ]; | | 195: | | | 196: | $data['breadcrumbs'][] = [ | | 197: | 'text' => $heading_title, | | 198: | 'href' => $this->url->link('account/subscription.info', 'language=' . $this->config->get('config_language') . '&customer_token=' . $this->session->data['customer_token'] . '&subscription_id=' . $this->request->get['subscription_id'] . $url) | | 199: | ]; | | 200: | | | 201: | $data['subscription_id'] = $subscription_info['subscription_id']; | | 202: | $data['order_id'] = $subscription_info['order_id']; | | 203: | | | 204: | $this->load->model('localisation/subscription_status'); | | 205: | | | 206: | $subscription_status_info = $this->model_localisation_subscription_status->getSubscriptionStatus($subscription_info['subscription_status_id']); | | 207: | | | 208: | if ($subscription_status_info) { | | 209: | $data['subscription_status'] = $subscription_status_info['name']; | | 210: | } else { | | 211: | $data['subscription_status'] = ''; | | 212: | } | | 213: | | | 214: | $data['date_added'] = date($this->language->get('date_format_short'), strtotime($subscription_info['date_added'])); | | 215: | | | 216: | // Payment Address | | 217: | if ($subscription_info['payment_address_id']) { | | 218: | $payment_address_id = $subscription_info['payment_address_id']; | | 219: | } else { | | 220: | $payment_address_id = 0; | | 221: | } | | 222: | | | 223: | $this->load->model('account/address'); | | 224: | | | 225: | $address_info = $this->model_account_address->getAddress($this->customer->getId(), $payment_address_id); | | 226: | | | 227: | if ($address_info) { | | 228: | if ($address_info['address_format']) { | | 229: | $format = $address_info['address_format']; | | 230: | } else { | | 231: | $format = '{firstname} {lastname}' . "\n" . '{company}' . "\n" . '{address_1}' . "\n" . '{address_2}' . "\n" . '{city} {postcode}' . "\n" . '{zone}' . "\n" . '{country}'; | | 232: | } | | 233: | | | 234: | $find = [ | | 235: | '{firstname}', | | 236: | '{lastname}', | | 237: | '{company}', | | 238: | '{address_1}', | | 239: | '{address_2}', | | 240: | '{city}', | | 241: | '{postcode}', | | 242: | '{zone}', | | 243: | '{zone_code}', | | 244: | '{country}' | | 245: | ]; | | 246: | | | 247: | $replace = [ | | 248: | 'firstname' => $address_info['firstname'], | | 249: | 'lastname' => $address_info['lastname'], | | 250: | 'company' => $address_info['company'], | | 251: | 'address_1' => $address_info['address_1'], | | 252: | 'address_2' => $address_info['address_2'], | | 253: | 'city' => $address_info['city'], | | 254: | 'postcode' => $address_info['postcode'], | | 255: | 'zone' => $address_info['zone'], | | 256: | 'zone_code' => $address_info['zone_code'], | | 257: | 'country' => $address_info['country'] | | 258: | ]; | | 259: | | | 260: | $pattern_1 = [ | | 261: | "\r\n", | | 262: | "\r", | | 263: | "\n" | | 264: | ]; | | 265: | | | 266: | $pattern_2 = [ | | 267: | "/\s\s+/", | | 268: | "/\r\r+/", | | 269: | "/\n\n+/" | | 270: | ]; | | 271: | | | 272: | $data['payment_address'] = str_replace($pattern_1, '<br/>', preg_replace($pattern_2, '<br/>', trim(str_replace($find, $replace, $format)))); | | 273: | } else { | | 274: | $data['payment_address'] = ''; | | 275: | } | | 276: | | | 277: | // Shipping Address | | 278: | if ($subscription_info['shipping_address_id']) { | | 279: | $shipping_address_id = $subscription_info['shipping_address_id']; | | 280: | } else { | | 281: | $shipping_address_id = 0; | | 282: | } | | 283: | | | 284: | $this->load->model('account/address'); | | 285: | | | 286: | $address_info = $this->model_account_address->getAddress($this->customer->getId(), $shipping_address_id); | | 287: | | | 288: | if ($address_info) { | | 289: | if ($address_info['address_format']) { | | 290: | $format = $address_info['address_format']; | | 291: | } else { | | 292: | $format = '{firstname} {lastname}' . "\n" . '{company}' . "\n" . '{address_1}' . "\n" . '{address_2}' . "\n" . '{city} {postcode}' . "\n" . '{zone}' . "\n" . '{country}'; | | 293: | } | | 294: | | | 295: | $find = [ | | 296: | '{firstname}', | | 297: | '{lastname}', | | 298: | '{company}', | | 299: | '{address_1}', | | 300: | '{address_2}', | | 301: | '{city}', | | 302: | '{postcode}', | | 303: | '{zone}', | | 304: | '{zone_code}', | | 305: | '{country}' | | 306: | ]; | | 307: | | | 308: | $replace = [ | | 309: | 'firstname' => $address_info['firstname'], | | 310: | 'lastname' => $address_info['lastname'], | | 311: | 'company' => $address_info['company'], | | 312: | 'address_1' => $address_info['address_1'], | | 313: | 'address_2' => $address_info['address_2'], | | 314: | 'city' => $address_info['city'], | | 315: | 'postcode' => $address_info['postcode'], | | 316: | 'zone' => $address_info['zone'], | | 317: | 'zone_code' => $address_info['zone_code'], | | 318: | 'country' => $address_info['country'] | | 319: | ]; | | 320: | | | 321: | $pattern_1 = [ | | 322: | "\r\n", | | 323: | "\r", | | 324: | "\n" | | 325: | ]; | | 326: | | | 327: | $pattern_2 = [ | | 328: | "/\s\s+/", | | 329: | "/\r\r+/", | | 330: | "/\n\n+/" | | 331: | ]; | | 332: | | | 333: | $data['shipping_address'] = str_replace($pattern_1, '<br/>', preg_replace($pattern_2, '<br/>', trim(str_replace($find, $replace, $format)))); | | 334: | } else { | | 335: | $data['shipping_address'] = ''; | | 336: | } | | 337: | | | 338: | if ($subscription_info['shipping_method']) { | | 339: | $data['shipping_method'] = $subscription_info['shipping_method']['name']; | | 340: | } else { | | 341: | $data['shipping_method'] = ''; | | 342: | } | | 343: | | | 344: | if ($subscription_info['payment_method']) { | | 345: | $data['payment_method'] = $subscription_info['payment_method']['name']; | | 346: | } else { | | 347: | $data['payment_method'] = ''; | | 348: | } | | 349: | | | 350: | $this->load->model('catalog/product'); | | 351: | | | 352: | $product_info = $this->model_catalog_product->getProduct($subscription_info['product_id']); | | 353: | | | 354: | if ($product_info) { | | 355: | $data['name'] = $product_info['name']; | | 356: | } else { | | 357: | $data['name'] = ''; | | 358: | } | | 359: | | | 360: | $data['quantity'] = $subscription_info['quantity']; | | 361: | | | 362: | $currency_info = $this->model_localisation_currency->getCurrency($subscription_info['currency_id']); | | 363: | | | 364: | if ($currency_info) { | | 365: | $currency = $currency_info['code']; | | 366: | } else { | | 367: | $currency = $this->config->get('config_currency'); | | 368: | } | | 369: | | | 370: | $this->load->model('localisation/subscription_status'); | | 371: | | | 372: | $subscription_status_info = $this->model_localisation_subscription_status->getSubscriptionStatus($subscription_info['subscription_status_id']); | | 373: | | | 374: | if ($subscription_status_info) { | | 375: | $data['subscription_status'] = $subscription_status_info['name']; | | 376: | } else { | | 377: | $data['subscription_status'] = ''; | | 378: | } | | 379: | | | 380: | $data['description'] = ''; | | 381: | | | 382: | if ($subscription_info['trial_status']) { | | 383: | $trial_price = $this->currency->format($this->tax->calculate($subscription_info['trial_price'], $product_info['tax_class_id'], $this->config->get('config_tax')), $currency); | | 384: | $trial_cycle = $subscription_info['trial_cycle']; | | 385: | $trial_frequency = $this->language->get('text_' . $subscription_info['trial_frequency']); | | 386: | $trial_duration = $subscription_info['trial_duration']; | | 387: | | | 388: | $data['description'] .= sprintf($this->language->get('text_subscription_trial'), $trial_price, $trial_cycle, $trial_frequency, $trial_duration); | | 389: | } | | 390: | | | 391: | $price = $this->currency->format($this->tax->calculate($subscription_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')), $currency); | | 392: | $cycle = $subscription_info['cycle']; | | 393: | $frequency = $this->language->get('text_' . $subscription_info['frequency']); | | 394: | $duration = $subscription_info['duration']; | | 395: | | | 396: | if ($duration) { | | 397: | $data['description'] .= sprintf($this->language->get('text_subscription_duration'), $price, $cycle, $frequency, $duration); | | 398: | } else { | | 399: | $data['description'] .= sprintf($this->language->get('text_subscription_cancel'), $price, $cycle, $frequency); | | 400: | } | | 401: | | | 402: | // Orders | | 403: | $data['history'] = $this->getHistory(); | | 404: | $data['order'] = $this->getOrder(); | | 405: | | | 406: | //$data['order'] = $this->url->link('account/order.info', 'language=' . $this->config->get('config_language') . '&customer_token=' . $this->session->data['customer_token'] . '&order_id=' . $subscription_info['order_id']); | | 407: | $data['product'] = $this->url->link('product/product', 'language=' . $this->config->get('config_language') . '&customer_token=' . $this->session->data['customer_token'] . '&product_id=' . $subscription_info['product_id']); | | 408: | | | 409: | $data['column_left'] = $this->load->controller('common/column_left'); | | 410: | $data['column_right'] = $this->load->controller('common/column_right'); | | 411: | $data['content_top'] = $this->load->controller('common/content_top'); | | 412: | $data['content_bottom'] = $this->load->controller('common/content_bottom'); | | 413: | $data['footer'] = $this->load->controller('common/footer'); | | 414: | $data['header'] = $this->load->controller('common/header'); | | 415: | | | 416: | $this->response->setOutput($this->load->view('account/subscription_info', $data)); | | 417: | } else { | | 418: | return new \Opencart\System\Engine\Action('error/not_found'); | | 419: | } | | 420: | | | 421: | return null; | | 422: | } | | 423: | | | 424: | /** | | 425: | * History | | 426: | * | | 427: | * @return void | | 428: | */ | | 429: | public function history(): void { | | 430: | $this->load->language('account/subscription'); | | 431: | | | 432: | $this->response->setOutput($this->getHistory()); | | 433: | } | | 434: | | | 435: | /** | | 436: | * Get History | | 437: | * | | 438: | * @return string | | 439: | */ | | 440: | public function getHistory(): string { | | 441: | if (isset($this->request->get['subscription_id'])) { | | 442: | $subscription_id = (int)$this->request->get['subscription_id']; | | 443: | } else { | | 444: | $subscription_id = 0; | | 445: | } | | 446: | | | 447: | if (isset($this->request->get['page']) && $this->request->get['route'] == 'account/subscription.history') { | | 448: | $page = (int)$this->request->get['page']; | | 449: | } else { | | 450: | $page = 1; | | 451: | } | | 452: | | | 453: | $limit = 10; | | 454: | | | 455: | $data['histories'] = []; | | 456: | | | 457: | $this->load->model('account/subscription'); | | 458: | | | 459: | $results = $this->model_account_subscription->getHistories($subscription_id, ($page - 1) * $limit, $limit); | | 460: | | | 461: | foreach ($results as $result) { | | 462: | $data['histories'][] = [ | | 463: | 'status' => $result['status'], | | 464: | 'comment' => nl2br($result['comment']), | | 465: | 'date_added' => date($this->language->get('date_format_short'), strtotime($result['date_added'])) | | 466: | ]; | | 467: | } | | 468: | | | 469: | $subscription_total = $this->model_account_subscription->getTotalHistories($subscription_id); | | 470: | | | 471: | $data['pagination'] = $this->load->controller('common/pagination', [ | | 472: | 'total' => $subscription_total, | | 473: | 'page' => $page, | | 474: | 'limit' => $limit, | | 475: | 'url' => $this->url->link('account/subscription.history', 'customer_token=' . $this->session->data['customer_token'] . '&subscription_id=' . $subscription_id . '&page={page}') | | 476: | ]); | | 477: | | | 478: | $data['results'] = sprintf($this->language->get('text_pagination'), ($subscription_total) ? (($page - 1) * $limit) + 1 : 0, ((($page - 1) * $limit) > ($subscription_total - $limit)) ? $subscription_total : ((($page - 1) * $limit) + $limit), $subscription_total, ceil($subscription_total / $limit)); | | 479: | | | 480: | return $this->load->view('account/subscription_history', $data); | | 481: | } | | 482: | | | 483: | /** | | 484: | * Order | | 485: | * | | 486: | * @return void | | 487: | */ | | 488: | public function order(): void { | | 489: | $this->load->language('account/subscription'); | | 490: | | | 491: | $this->response->setOutput($this->getOrder()); | | 492: | } | | 493: | | | 494: | /** | | 495: | * Get Order | | 496: | * | | 497: | * @return string | | 498: | */ | | 499: | public function getOrder(): string { | | 500: | if (isset($this->request->get['subscription_id'])) { | | 501: | $subscription_id = (int)$this->request->get['subscription_id']; | | 502: | } else { | | 503: | $subscription_id = 0; | | 504: | } | | 505: | | | 506: | if (isset($this->request->get['page']) && $this->request->get['route'] == 'account/subscription.order') { | | 507: | $page = (int)$this->request->get['page']; | | 508: | } else { | | 509: | $page = 1; | | 510: | } | | 511: | | | 512: | $limit = 10; | | 513: | | | 514: | $data['orders'] = []; | | 515: | | | 516: | $this->load->model('account/order'); | | 517: | | | 518: | $results = $this->model_account_order->getOrdersBySubscriptionId($subscription_id, ($page - 1) * $limit, $limit); | | 519: | | | 520: | foreach ($results as $result) { | | 521: | $data['orders'][] = [ | | 522: | 'order_id' => $result['order_id'], | | 523: | 'status' => $result['status'], | | 524: | 'total' => $this->currency->format($result['total'], $result['currency_code'], $result['currency_value']), | | 525: | 'date_added' => date($this->language->get('date_format_short'), strtotime($result['date_added'])), | | 526: | 'view' => $this->url->link('sale/subscription.order', 'customer_token=' . $this->session->data['customer_token'] . '&order_id=' . $result['order_id'] . '&page={page}') | | 527: | ]; | | 528: | } | | 529: | | | 530: | $order_total = $this->model_account_order->getTotalOrdersBySubscriptionId($subscription_id); | | 531: | | | 532: | $data['pagination'] = $this->load->controller('common/pagination', [ | | 533: | 'total' => $order_total, | | 534: | 'page' => $page, | | 535: | 'limit' => $limit, | | 536: | 'url' => $this->url->link('sale/subscription.order', 'customer_token=' . $this->session->data['customer_token'] . '&subscription_id=' . $subscription_id . '&page={page}') | | 537: | ]); | | 538: | | | 539: | $data['results'] = sprintf($this->language->get('text_pagination'), ($order_total) ? (($page - 1) * $limit) + 1 : 0, ((($page - 1) * $limit) > ($order_total - $limit)) ? $order_total : ((($page - 1) * $limit) + $limit), $order_total, ceil($order_total / $limit)); | | 540: | | | 541: | return $this->load->view('account/subscription_order', $data); | | 542: | } | | 543: | } | | 544: | |
OpenCart API API documentation generated by ApiGen dev-master