Categorías
Prestashop

¿Cómo detectar si es un móvil en Prestashop con .tpl?

Descubre cómo utilizar las clases de Prestashop para detectar el dispositivo utilizado y poder mostrar o no textos, imágenes, funciones adicionales de forma correcta y eficaz

Además de utilizar un tema responsive, que se adapta según el tamaño del dispositivo que utilice el usuario, puede ser útil para detectar si el dispositivo es un smartphone, una tablet o un ordenador.

En un tema receptivo, generalmente, usamos la técnica de no mostrar ciertas partes de la página en algunos dispositivos simplemente escondiéndolas a través de algunas reglas de hojas de estilo (css): esta solución no aligera el peso de las páginas porque el código oculto será de todos modos presente en la página y tan cargado por el navegador.

En cambio, mediante la detección del dispositivo utilizado, es posible que se muestren o no textos, imágenes, funciones adicionales, etc. de forma correcta y eficaz.

Prestashop 1.7.x y Prestashop 1.6.1.x

Estas versiones de Prestashop ya utilizan una clase para detectar el dispositivo utilizado (/classes/Context.php), gracias a la cual podemos consultar directamente en los archivos .tpl de nuestro tema.

Detectar un teléfono inteligente

{if Context::getContext()->isMobile() && !Context::getContext()->isTablet()}
  tu contenido
{/if}

o

{if Context::getContext()->getDevice() == 4}
  tu contenido
{/if}

Detectar una tableta

{if Context::getContext()->isTablet()}
  tu contenido
{/if}

o

{if Context::getContext()->getDevice() == 2}
  tu contenido
{/if}

Detectar una computadora

{if !Context::getContext()->isMobile() && !Context::getContext()->isTablet()}
  tu contenido
{/if}

o

{if Context::getContext()->getDevice() == 1}
  tu contenido
{/if}

Prestashop 1.6

Detectar un dispositivo móvil

{if isset($mobile_device) && $mobile_device}
  tu contenido
{/if}

Categorías
HTML5

FAVICONS: Cómo asegurarse de que los navegadores solo descarguen la versión SVG

<link rel="icon" href="/favicon.ico" sizes="any">
<link rel="icon" href="/favicon.svg" type="image/svg+xml">
Categorías
CSS

Como convertir una img SVG a un color HEX con CSS

Nos vamos a esta web, he introducimos nuestro color HEX

Luego ponemos ese filtro generado en nuestro CSS, ejemplo

img{filter:invert(65%) sepia(71%) saturate(5198%) hue-rotate(161deg) brightness(94%) contrast(101%);}
img:hover{filter:invert(65%) sepia(80%) saturate(586%) hue-rotate(2deg) brightness(107%) contrast(107%)}

Recomendable que la imagen en svg, sea con fill negro o currentColor

Categorías
Prestashop

Como se quita del producto «Impuestos incluidos» de Prestashop

En el panel de Gestión de Prestashop en Internacional > Ubicaciones geográficas > Países > Busca el país, seleccionas modificar y luego desmarcas la opción «Mostrar la etiqueta de impuestos (por ejemplo, «Impuestos incl.»)«

Categorías
Prestashop

Descargar PsCleaner para Prestashop 1.7

PrestaShop PsCleaner le ayuda a eliminar su catálogo, pedidos y datos de clientes de una sola vez.

Muy útil recién instalado el prestashop, ya que borrada todos los datos de demo incluidos en la instalación por defecto.

Este módulo no es compatible con multitienda, significa que su configuración se aplica a todas las tiendas.

Actualizado el 11 de Junio de 2020

Categorías
Prestashop

Como insertar style en archivos tpl de prestashop

Para usar estilos en archivos tpl, tiene que englobarlo con estas etiquetas {literal} {/ literal} estas etiquetas son necesarias porque el código de estilos css usa corchetes, por lo que el compilador inteligente trata estos corchetes como una sintaxis inteligente.

{literal}
<style>
.swiper-pagination-progressbar{background:#000}
</style>
{/literal}
Categorías
woocommerce

Como eliminar el rango de precios en woocommerce

En el archivo de funtions.php

function wc_eliminar_precio_mayor( $price, $product ) {
// Main Price
$prices = array( $product->get_variation_price( 'min', true ), $product->get_variation_price( 'max', true ) );
$price = $prices[0] !== $prices[1] ? sprintf( __( '%1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );
// Sale Price
$prices = array( $product->get_variation_regular_price( 'min', true ), $product->get_variation_regular_price( 'max', true ) );
sort( $prices );
$saleprice = $prices[0] !== $prices[1] ? sprintf( __( '%1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );
if ( $price !== $saleprice ) {
$price = '<del>' . $saleprice . '</del> <ins>' . $price . '</ins>';
}
return $price;
}
add_filter( 'woocommerce_variable_sale_price_html', 'wc_eliminar_precio_mayor', 10, 2 );
add_filter( 'woocommerce_variable_price_html', 'wc_eliminar_precio_mayor', 10, 2 );
Categorías
woocommerce

Cambiar estado del pedido en WooCommerce automáticamente

Insertar en funtions.php

// Actualiza automáticamente el estado de los pedidos a COMPLETADO
add_action( 'woocommerce_order_status_processing', 'actualiza_estado_pedidos_a_completado' );
add_action( 'woocommerce_order_status_on-hold', 'actualiza_estado_pedidos_a_completado' );
function actualiza_estado_pedidos_a_completado( $order_id ) {
    global $woocommerce;
    
    //ID's de las pasarelas de pago a las que afecta
    // bacs - Transferencia bancaria directa
    // cheque - Pagos por cheque
    // cod - Contra reembolso
    // redsys - Redsys redirección
    // paytpv - paycomet con Tarjeta
    $paymentMethods = array( 'bacs', 'cheque', 'cod', 'redsys' ,'paytpv' );
    
    if ( !$order_id ) return;
    $order = new WC_Order( $order_id );

    if ( !in_array( $order->payment_method, $paymentMethods ) ) return;
    $order->update_status( 'completed' );
}

El código anterior se activa en la página de agradecimiento, cuando el cliente ya ha finalizado la compra y se le muestra toda la información con el resumen de su pedido.

En ese momento, el código anterior toma el ID del pedido y automáticamente cambia su estado a Completado

Una vez activado el sniper, muy recomendado desactivar el envió de correo Procesando tu pedido, sino llegaran 2 email seguidos el de procesando y el de completado.

Para desactivarlo entrar en Panel de administración > WooCommerce > Ajustes > Emails > Procesando tu pedido y deshabilitarlo.

Con esto conseguirás que no se envíe el primer email.