-2

I am creating a custom shipping method for opencart, however i am stuck on the catalog model file, which is for PHP 5.4+, but how do i make it working with PHP 5.3 as Opencart Requirement is start from PHP 5.3

catalog/model/shipping/items.php

    $languages = $this->language->get('code');
    $quote_data = array();
    $quote_data['items'] = array(
        'code'         => 'items.items',
        'title'        => $this->config->get('items_shipping_description')[$languages],
        'cost'         => $this->config->get('items_cost'),
        'tax_class_id' => $this->config->get('items_tax_class_id'),
        'text'         => $this->currency->format($this->tax->calculate($items_cost, $this->config->get('items_tax_class_id'), $this->config->get('config_tax')))
    );

this line working fine with PHP 5.4+ but not PHP 5.3

'title'=> $this->config->get('items_shipping_description')[$languages],

I get an error for PHP 5.3 which is

Parse error: syntax error, unexpected '[', expecting ')' in ...

I've also read many duplicate question and tried many different way to make this working with no luck! please help, thank you!

3

3 Answers 3

3

Just assign it to variable: $description = $this->config->get('items_shipping_description') And then use:

$quote_data['items'] = array(
    'code'         => 'items.items',
    'title'        => $description[$languages]
    'cost'         => $this->config->get('items_cost'),
    'tax_class_id' => $this->config->get('items_tax_class_id'),
    'text'         => $this->currency->format($this->tax->calculate($items_cost, $this->config->get('items_tax_class_id'), $this->config->get('config_tax')))
);
Sign up to request clarification or add additional context in comments.

2 Comments

thanks! its working now, never thinking about doing it this way, i was just playing with the array() thing, btw did this code also can be use for PHP5.4+?
@Zulfakar Zukri, yes, it can be used.
1
$this->config->get('items_shipping_description')[$languages]

This is function array dereferencing and was only added in php 5.4

To make it work with php 5.3 you will need to assign that return value to a variable and then use that.

$items = $this->config->get('items_shipping_description');
$items[$languages];

Comments

0

Try this,

$desc = $this->config->get('items_shipping_description');

And

'title'        => $desc[$languages],

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.