2015-09-09 3 views
0

Я использую Prestashop 1.6 для своего интернет-магазина. И я начал делать некоторые обновления. Теперь я столкнулся с проблемой, чтобы получить название страны для адреса доставки.Prestashop order-checkout отправка страна id

Кто-нибудь знает, как я могу получить название страны с шага № 3 (адрес) заказа-проверки, когда я на шаге 4 («Доставка»)?

В какой переменной ($ cart -> ...) этот тип информации размещен?

Я начинаю менять order-carrier.tpl и добавлять <input type="hidden" value="{$cart->id_address_delivery}"/> Результат Я получаю некоторое число. Я не нашел информацию, на что указывает этот номер.

<div class="delivery_option_price"> 
<input type="hidden" value="{$cart->id_address_delivery}"/> 
{if $option.total_price_with_tax && !$option.is_free && (!isset($free_shipping) || (isset($free_shipping) && !$free_shipping))} 
    {if $use_taxes == 1} 
     {if $priceDisplay == 1} 
      {convertPrice price=$option.total_price_without_tax}{if $display_tax_label} {l s='(tax excl.)'}{/if} 
     {else} 
      {convertPrice price=$option.total_price_with_tax}{if $display_tax_label} {l s='(tax incl.)'}{/if} 
     {/if} 
    {else} 
     {convertPrice price=$option.total_price_without_tax} 
    {/if} 
{else} 
    {l s='Free'} 

Благодаря

+0

делить код и заблуждение/журнал для этого? –

+0

спасибо Shravan Yadav –

ответ

1

По умолчанию Prestashop не держать в сессии целых адресов клиентов для целей исполнения, но сохраняет ссылку с помощью $ cart-> id_address_delivery и $ cart-> id_address_invoice свойств. Эти два свойства будут иметь идентификатор адреса, сохраненного на ps_address стол, так что если вы хотите, чтобы получить всю информацию о адресе все, что вам нужно сделать, это создать new Address() объект с заданным идентификатором. Мы должны выполнить это действие внутри Контроллера, точно в ParentOrderController, где функция проверки берет palce, а функция, которую мы ищем, должна быть _assignCarrier(). (Please remember to extend the controller functionality with the override feature Prestashop offers, to avoid un-upgradable code.)

Внутри функции _assignCarrier() мы создадим наш адрес объекта, а затем получить название страны этим:

, наконец, мы сделали наше название страны доступны для нашего шаблона, поэтому мы просто необходимо показать его, код внутри шаблона станет следующим:

<div class="delivery_option_price"> 
<input type="hidden" value="{$country_name}"/> 
+0

Спасибо, за столь быстрое и отличное объяснение. Все понимается и дает исчерпывающий ответ. Именно то, что мне нужно. Grazie! –

Смежные вопросы