Post Top Ad

Your Ad Spot

miércoles, 26 de agosto de 2020

Cambio de departamento para hilos de clientes en PrestaShop 1.6

¡Este tutorial también se puede aplicar a ThirtyBees !
Parte de la funcionalidad que necesitamos ya está en PrestaShop, todo lo que tenemos que hacer es agregar algún lugar donde podamos enviar el cambio de tipo de departamento.
Abra AdminCustomerThreadsController.php ubicado en controllers / admin o use una anulación en su lugar (recomendado). Estamos interesados ​​en el método renderView, específicamente donde asigna $ this-> tpl_vars , alrededor de la línea 700 en PrestaShop 1.6.1.7.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
dieciséis
17
18
19
20
$this->tpl_view_vars = array(
    'id_customer_thread' => $id_customer_thread,
    'thread' => $thread,
    'actions' => $actions,
    'employees' => $employees,
    'current_employee' => $this->context->employee,
    'messages' => $messages,
    'first_message' => $first_message,
    'contact' => $contact,
    'contacts' => $contacts, // <-- This is what we added!
    'next_thread' => $next_thread,
    'orders' => isset($orders) ? $orders : false,
    'customer' => isset($customer) ? $customer : false,
    'products' => isset($products) ? $products : false,
    'total_ok' => isset($total_ok) ?  Tools::displayPrice($total_ok, $this->context->currency) : false,
    'orders_ok' => isset($orders_ok) ? $orders_ok : false,
    'count_ok' => isset($orders_ok) ? count($orders_ok) : false,
    'PS_CUSTOMER_SERVICE_SIGNATURE' => str_replace('\r\n', "\n", Configuration::get('PS_CUSTOMER_SERVICE_SIGNATURE', (int)$thread->id_lang)),
    'timeline_items' => $timeline_items,
);
Tenga en cuenta: si usa una anulación, copie todo el método, agregue la variable como se describe anteriormente y asegúrese de cambiar return parent :: renderView () para devolver AdminController :: renderView () al final. Si no lo hace, será imposible que nuestra nueva variable se use en la plantilla, ya que la clase padre simplemente anularía tpl_vars.
Ahora que tenemos la variable que contiene todos los contactos, agreguemos un formulario para enviarlo, en la plantilla view.tpl de ese controlador. El archivo que queremos se encuentra en la carpeta de temas themes \ default \ template \ controllers \ customer_threads \ helpers \ view . Una vez más, se llama view.tpl .
Puede encontrar cualquier lugar que desee para el nuevo botón, lo agregué al principio, antes del div con la clase "bien"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
dieciséis
17
18
19
20
<div class="well">
    <form action="{$link->getAdminLink('AdminCustomerThreads')|escape:'html':'UTF-8'}&amp;viewcustomer_thread&amp;id_customer_thread={$id_customer_thread|intval}" method="post" class="form-horizontal">
        <div class="row">
            <div class="col-sm-3">
                <select name="id_contact">
                    {foreach from=$contacts item=dept}
                        <option value="{$dept.id_contact}" {if $dept.name == $contact}selected="selected"{/if}>
                            {$dept.name}
                        </option>
                    {/foreach}
                </select>
            </div>
            <div class="col-sm-3">
                <button class="btn btn-default" type="submit">
                    {l s='Change Department'}
                </button>
            </div>
        </div>
    </form>
</div>
Guarde y actualice, ¡deberíamos haber terminado! No tuvimos que agregar ningún código de procesamiento posterior, simplemente porque ya está presente, al comienzo del método postProcess del AdminCustomerThreadsController.

No hay comentarios.:

Publicar un comentario

Dejanos tu comentario para seguir mejorando!

outbrain

Páginas