Я пытаюсь установить новое правило, используя язык PHP

Я использую Opencart, у меня есть магазин электронной коммерции с несколькими поставщиками для местной доставки, и поставщики могут устанавливать свои сборы за доставку прямо из своей учетной записи, я хотел бы, чтобы поставщики добавляли свои сборы, но они не должны превышать 15 SR, поэтому я пошел к контроллеру и попытался изменить его, но это не сработало. вот моя работа.

Я нашел этот код:

    foreach ($data['rules'] as $rule) {
        // Minimum required fields for each rule
        if (empty($rule['destinations'])) {
            throw new FormDataError($this->language->get('ms_shipping_error_rule_destinations_required'));
        }

        if (!isset($rule['cost'])) {
            throw new FormDataError($this->language->get('ms_shipping_error_rule_cost_required'));

а затем я добавил под него следующий код:

        if ($rule < 15 ['cost']) {
            echo 'The cost should be 15 S.R or less';
        }
    }
}

введите здесь описание изображения

Я не уверен, как правильно написать этот код, буду признателен за любую помощь.


person Rayan    schedule 14.01.2019    source источник


Ответы (1)


Синтаксис условия неверен. Это должно быть так:

if ($rule['cost'] <= 15) {
    echo 'The cost should be 15 S.R or less';
}

Но было бы неплохо сгенерировать исключение, а не просто повторять какое-то сообщение.

person Sanan Guliyev    schedule 14.01.2019
comment
Правильно, спасибо за вашу помощь, но я все еще могу поставить более 15 SR, также страница не обновляется, когда я нажимаю кнопку «Сохранить». Как вы думаете, в коде чего-то не хватает? - person Rayan; 14.01.2019
comment
Это также зависит от ваших входных данных формы. Если это ввод массива, например name="cost[]", то ваше условие должно быть таким if (array_sum($rule['cost']) <= 15) { /* your code here*/ } Этот пример означает, что общая сумма не должна быть больше 15. Если вы хотите проверить, что самая большая стоимость не должна быть больше 15, вам просто нужно сделать это как что: ``if (max($rule['cost']) ‹= 15) { /* ваш код здесь*/ }` Кстати, если это не должно быть 15, тогда вам нужно использовать < как в вашем коде вместо <=. - person Sanan Guliyev; 14.01.2019