Дополнительный параметр в заказе Есть решение

Нужно в заказ добавить доп параметр (пометить заказ что он по карте лояльности, при этом плагин назначает скидку - есть фиксация этого заказ). Как можно реализовать? 

1 ответ

  • 1
    greencity116 27 февраля 2020 17:30 # Решение

    Сделал через создание новой таблицы в бд

    db.php

    <?php
    return [
    'tablename' => [
    'id' => ['int', 11, 'null' => 0, 'autoincrement' => 1],
    'card_number' => ['varchar', 255],
    'order_id' => ['int', 11],
    ':keys' => [
    'PRIMARY' => 'id',
    ],
    ],
    ];

    tablemodel.php

    class tablemodel extends waModel
    {

    protected $table = 'tablename';

    public function __construct()

    {
    parent::__construct();
    }

    public function insert ($data, $type = 0)
    {
    return parent::insert($data, $type);
    }

    public function getCard ($order_id)
    {
    $cardnum = parent::query("SELECT card_number FROM tablename WHERE order_id='".$order_id."'")->fetchAssoc();
    if ($cardnum['card_number'] != "" && !empty($cardnum['card_number']) && preg_match('/[0-9]{13}/', $cardnum['card_number']))
    {
    $result = $cardnum['card_number'];
    }

    else

    {

    $cardnum['card_number']='';

    }

    return $result;
    }

    }

    Затем в экшне (или где-то ещё) получаем данные и применяем

    public function orderActionPay(&$params)
    {
    $model = new tablemodel();
    $order_model = new shopOrderModel();
    $order = $order_model->getCard($params['order_id']);

    }

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите