Как я могу изменить значение $ order-> id_customer в PaymentModule.php, создав переменную в shopping-cart.tpl? - PullRequest
0 голосов
/ 25 августа 2018

У меня есть следующий код в shopping-cart.tpl:

    $(document).ready(function(){
        $.ajax({
            url: document.location.origin+"/univers/themes/leostyl/shopping-cart.php",
            type: 'get',
            success: function(data){
                var array = $.parseJSON(data);
               ch='<select class="form-control" id="customer-id" onchange="myFunction()">';
               for (var i=0;i<array['results'].length;i++) {
                if(array['results'][i].id_default_group== 3)
                  ch=ch+'<option id='+array['results'][i].id_customer+'> '+array['results'][i].firstname+' '+array['results'][i].lastname+'</option>';
                  }
                  ch=ch+'</select>';
                  $( ".customer" ).append(ch);                    
            },
            error: function (xhr, ajaxOptions, thrownError) {
              }
        });

    });

как я могу изменить значение $order->id_customer в PaymentModule.php, создав переменную в shopping-cart.tpl?

$order->id_customer = (int)$this->context->cart->id_customer;

1 Ответ

0 голосов
/ 26 августа 2018

Вы не можете изменить его из простого назначения в шаблоне. Идентификатор клиента извлекается из контекста (Cookie / Session) в функции validateOrder () ...

Назначить заказ другому клиенту довольно опасно, но если вам это действительно нужно, я вижу 2 обходных пути:

  • Переопределите функцию PaymentModule :: validateOrder () , чтобы установить желаемый идентификатор клиента вместо использования одного из контекста, предполагая, что вы сохранили его где-то еще ранее в своем процессе. : Cookie, таблица БД
  • Используйте ловушку (actionObjectOrderAddBefore, actionValidateOrder, ...) для установки или изменения всех данных, связанных с заказами, в базе данных после проверки (будьте осторожны с подпроцессами, такими как подтверждение по электронной почте, которые могут быть отправлено предыдущему клиенту в соответствии с используемым хуком), а также при условии, что вы сохранили хороший идентификатор клиента где-то до

Удачи

...