Jump to content

[SOLUCIONADO] Limitar campos en la previsualización de la dirección dentro del carrito


Recommended Posts

Buenas tardes,

Actualmente la dirección dentro del carrito se me previsualiza de la siguiente manera

image.png.713d47a7652be127b628ac1194398e22.png

 

Si una dirección tiene menos campos cubiertos el bloque es mas pequeño que otra dirección mas completa, como se ve en el ejemplo anterior.

Por lo que he observado para el carrito la información se obtiene de la variable $address.formatted dentro del tema en el fichero \templates\checkout\_partials\address-selector-bock.tpl

"<div class="address">{$address.formatted nofilter}</div>"

 

Como se podría hacer para limitar los campos que se previsualizan en el bloque de la dirección, por ejemplo solo mostrar "nombre, apellidos, dirección y código postal" y que el resto de campos aunque estén cubiertos no se muestren como si lo hacen ahora.

 

Gracias,

Un saludo!

 

Edited by psled
SOLUCIONADO (see edit history)
Link to comment
Share on other sites

Puedes excluir ciertos elementos, pero para eso tienes que modificar la plantilla y hacer los cambios ahí, en este caso necesitarías excluir ciertos elementos que te pasa PrestaShop a la plantilla para escribir solo los que necesitas.

Link to comment
Share on other sites

26 minutes ago, Yelish said:

Puedes excluir ciertos elementos, pero para eso tienes que modificar la plantilla y hacer los cambios ahí, en este caso necesitarías excluir ciertos elementos que te pasa PrestaShop a la plantilla para escribir solo los que necesitas.

Gracias por tu respuesta. Cual sería la plantilla para la dirección del checkout? No logro ver donde hace referencia a ella.

Link to comment
Share on other sites

Hola, ¿qué tal? El problema es que $address.formatted es en realidad una cadena con todos los datos de la dirección que se mostrarán. Para seleccionar los datos que deseas tienes que investigar la propia variable $address que PrestaShop manda a la plantilla que comentaste anteriormente. Con un fácil truco, estos son todos los campos que tiene la variable $address en la plantilla en comparación con el cliente de prueba [email protected] :array(21) { ["id"]=> string(1) "2" ["alias"]=> string(11) "Mon adresse" ["firstname"]=> string(4) "John" ["lastname"]=> string(3) "DOE" ["company"]=> string(10) "My Company" ["address1"]=> string(15) "16, Main street" ["address2"]=> string(9) "2nd floor" ["postcode"]=> string(5) "75002" ["city"]=> string(6) "Paris " ["id_state"]=> string(1) "0" ["state"]=> NULL ["state_iso"]=> NULL ["id_country"]=> string(1) "8" ["country"]=> string(7) "Francia" ["country_iso"]=> string(2) "FR" ["other"]=> string(0) "" ["phone"]=> string(10) "0102030405" ["phone_mobile"]=> string(0) "" ["vat_number"]=> string(0) "" ["dni"]=> string(0) "" ["formatted"]=> string(94) "John DOE
My Company
16, Main street
2nd floor
75002 Paris
Francia
0102030405" } John DOE
My Company
16, Main street
2nd floor
75002 Paris
Francia
0102030405

Para añadir exclusivamente los campos que desees en vez de $address.formatted, deberías indicar a la plantilla que muestre por ejemplo:

{$address.firstname} {$address.lastname} {$address.address1} ...

Un saludo y que tengas un gran día.

  • Thanks 1
Link to comment
Share on other sites

On 7/20/2023 at 9:50 AM, Yelish said:

Hola, ¿qué tal? El problema es que $address.formatted es en realidad una cadena con todos los datos de la dirección que se mostrarán. Para seleccionar los datos que deseas tienes que investigar la propia variable $address que PrestaShop manda a la plantilla que comentaste anteriormente. Con un fácil truco, estos son todos los campos que tiene la variable $address en la plantilla en comparación con el cliente de prueba [email protected] :array(21) { ["id"]=> string(1) "2" ["alias"]=> string(11) "Mon adresse" ["firstname"]=> string(4) "John" ["lastname"]=> string(3) "DOE" ["company"]=> string(10) "My Company" ["address1"]=> string(15) "16, Main street" ["address2"]=> string(9) "2nd floor" ["postcode"]=> string(5) "75002" ["city"]=> string(6) "Paris " ["id_state"]=> string(1) "0" ["state"]=> NULL ["state_iso"]=> NULL ["id_country"]=> string(1) "8" ["country"]=> string(7) "Francia" ["country_iso"]=> string(2) "FR" ["other"]=> string(0) "" ["phone"]=> string(10) "0102030405" ["phone_mobile"]=> string(0) "" ["vat_number"]=> string(0) "" ["dni"]=> string(0) "" ["formatted"]=> string(94) "John DOE
My Company
16, Main street
2nd floor
75002 Paris
Francia
0102030405" } John DOE
My Company
16, Main street
2nd floor
75002 Paris
Francia
0102030405

Para añadir exclusivamente los campos que desees en vez de $address.formatted, deberías indicar a la plantilla que muestre por ejemplo:

{$address.firstname} {$address.lastname} {$address.address1} ...

Un saludo y que tengas un gran día.

Muchas gracias Yelish,
Efectivamente es tal cual indicas. Indiqué los campos deseados y apliqué una estructura/estilos y lo he dejado justo como quería.

Por curiosidad, como hiciste para ver el contenido de la variable(el objeto)?

 

Un saludo.

 

Link to comment
Share on other sites

Hola, te comento, dentro de la plantilla anteriormente citada y dentro del respectivo {foreach} incluir esta instrucción:

{var_dump($address)}  Tienes que visualizar la plantilla en tu tienda y te dará todos los elementos del array $address.

Un saludo, si el tema está solucionado no olvides marcarlo como SOLUCIONADO para ayudar a otros miembros de la comunidad.

  • Like 1
Link to comment
Share on other sites

  • psled changed the title to [SOLUCIONADO] Limitar campos en la previsualización de la dirección dentro del carrito

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...