Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
4ccd100
Validación múltiples de pixeles en imagenes subidas
end1996 Apr 16, 2025
a2ed4fb
Validación de campos personalizado y añadir comentarios en codigo de …
end1996 Apr 17, 2025
d737c28
integración de zoom a marcos
end1996 Apr 17, 2025
8625b96
Alerta personalizada de limite de comentarios
end1996 Apr 17, 2025
c25bd13
Ajustes responsive de contenedores
end1996 Apr 18, 2025
fceaaa1
Mostrar precio real en carrito de Woocommerce
end1996 Apr 18, 2025
8588a36
Cambio de thumbnail en admin order y asignar un id unico a la imagen,…
end1996 Apr 21, 2025
ebeab70
Cambio de diseño de toolbar de viewerjs
end1996 Apr 22, 2025
79f0a52
Descuentos por cantidades de imagenes
end1996 Apr 23, 2025
52a3491
Icono para zoom en marcos y desactivacion total de alertas de validac…
end1996 Apr 23, 2025
100dd02
Ajustes responsive de contenedor de comentarios
end1996 Apr 24, 2025
51649e5
Ajustes responsive de contenedor de marcos
end1996 Apr 24, 2025
6e2ef54
Aplicar descuentos de acuerdo a cantidad en carrito de compras
end1996 Apr 24, 2025
1432619
Cantidad implementada para unico pedido, y cambio de limite de imagen…
end1996 Apr 29, 2025
2767a07
Eliminación de código inutilizado de conteo de imágenes
end1996 Apr 30, 2025
ad82ebd
Procesamiento de imagenes en un solo pedido
end1996 Apr 30, 2025
925e538
Cambio en metadatos de imagenes unicas a un array que contiene todas
end1996 Apr 30, 2025
2ec8c1b
Ajuste de imagenes en vista de pedido y administrador
end1996 May 1, 2025
86ce6f9
desactivar picker de precios estandar de acuerdo a boton seleccionado
end1996 May 2, 2025
4f25344
Nueva funcionalidad de precio personalizado
end1996 May 2, 2025
23e58b3
Ajustes en diseño responsive y eliminación de alerta en IOS picker
end1996 May 5, 2025
742321a
eliminar comentario
GIU6 May 5, 2025
f9b28c7
Sincronización de cambios
end1996 May 6, 2025
8c0b211
eliminación de rediccionamiento
GIU6 May 6, 2025
1fed1b1
Merge branch 'diseño-unico' of https://github.com/ReflexoPeru/ArteIde…
GIU6 May 6, 2025
4685d36
Eliminación de eventos duplicados del frame swiper y ajuste de diseño…
end1996 May 7, 2025
4e66680
Mantener estado del carrito de WC y funcion de reset de formulario de…
end1996 May 8, 2025
b37fb82
Merge branch 'diseño-unico' of https://github.com/ReflexoPeru/ArteIde…
GIU6 May 8, 2025
83711db
barra lateral
GIU6 May 8, 2025
63129e1
modificaciones barra lateral
GIU6 May 8, 2025
3332e56
apertura automatica de modal del carrito
GIU6 May 8, 2025
090844a
Manejo de actualización de carrito dinámico de acuerdo al cambio de c…
end1996 May 9, 2025
b215051
Tiempo en notificaciones y barra de carrito
GIU6 May 12, 2025
15a55e6
Merge branch 'diseño-unico' of https://github.com/ReflexoPeru/ArteIde…
GIU6 May 12, 2025
65181fa
Custom checkout form
end1996 May 12, 2025
3ed456d
Merge branch 'diseño-unico' of https://github.com/ReflexoPeru/ArteIde…
end1996 May 12, 2025
1d228ee
Reestructuración de directorios y archivos, integración de precios de…
end1996 May 15, 2025
e1bb2dc
Consumo del precio de marco desde el ambito global e incluirlo en el …
end1996 May 15, 2025
4032b34
Añadir marcos al pedido del carrito, diseño web y responsive para pre…
end1996 May 15, 2025
533eb00
Sincronización de producto variado y cambio en scripts js
end1996 May 16, 2025
fca1b24
Implementación de variaciones y envío de producto variado a carrito
end1996 May 18, 2025
7efa9ba
Eliminar nombres de atributos en el titulo del producto base en vista…
end1996 May 18, 2025
fa99783
inicializar marco con valor inicial
end1996 May 19, 2025
3feaf40
Validación de seleccion de marcos solo con imagen subida y diseño res…
end1996 May 19, 2025
d5f2877
Ocultar precio de marco y atributos de producto variable en nombre de…
end1996 May 19, 2025
65e0189
Manejo de lógica para precios personalizados, se añade como campo adi…
end1996 May 20, 2025
2a8dee4
Eliminación de código de depuración de los archivos js
end1996 May 20, 2025
ba2f6dc
Diseño responsive para página de recuperación de constraña y eliminac…
end1996 May 21, 2025
8acd034
Ordenar lista de dimensiones
zerolling619 May 22, 2025
8f88449
Actualización del requestHttp.js
zerolling619 May 22, 2025
e8fc866
Personalización de checkout para departamento, distrito, region, comu…
end1996 May 22, 2025
374643e
Ajustes responsive en página de pedido, eliminación de padding adicio…
end1996 May 23, 2025
52e6ce9
Funcionalidad de placeholder para el picker de dimensiones
end1996 May 23, 2025
037307b
Mapeo correcto cart-handler.js
end1996 May 23, 2025
6ada9f5
Ocultar menu-cart en vista de carrito y checkout, resetear selección …
end1996 May 26, 2025
1834ee4
Creación de nuevos archivos para noitificaciones y loading personaliz…
end1996 May 26, 2025
bd4ded9
Agrupar marcos por tipo en el carrito, sumar subototales por diferent…
end1996 May 27, 2025
a06635d
Nuevos estilos para mini-cart, eliminación de espacios innecesarios e…
end1996 May 27, 2025
164a0d6
Filtros para ocultar metadatos Tamaño y ocultar variaciones en el nom…
end1996 May 28, 2025
0eab765
Mostrar precio sumado de los marcos con las dimensiones en el boton d…
end1996 May 28, 2025
a1df603
Notificación de advertencia al cargar completamente el picker y diseñ…
end1996 May 29, 2025
26d72d3
cambio de versiones de los archivos modificados
end1996 May 29, 2025
a0ace77
Redireccionamiento de icono de cuenta en base a usuario logueado y re…
end1996 May 30, 2025
287fc3b
Eliminación de atributo de descuento(unidad),cambios de mapeo de dime…
end1996 Jun 4, 2025
e5f1fe9
Quitar cantidad en el precio de descuento aplicado por redundancia, T…
end1996 Jun 4, 2025
8e20da5
Ajuste de cuadricula de imagenes en todo el proceso de compra, estilo…
end1996 Jun 4, 2025
d710f24
Redireccionamiento al login personalizado al intentar finalizar compr…
end1996 Jun 5, 2025
674c4d1
Reesctruturación de archivos en diferentes carpetas
end1996 Jun 5, 2025
5d99bad
Create README.md
zerolling619 Jun 5, 2025
89520dd
Update README.md
zerolling619 Jun 5, 2025
d454c12
Validación completa de input de cantidad en carrito de compras, compa…
end1996 Jun 5, 2025
4bc508a
Merge branch 'diseño-unico' of https://github.com/ReflexoPeru/ArteIde…
end1996 Jun 5, 2025
d9bf17b
Añadir validación por peso por imagen a 40MB, limite de imagenes a 10…
end1996 Jun 6, 2025
ddc06b0
Notificacion para formatos incompatibles de imagen
end1996 Jun 6, 2025
7172c68
Procesamiento detallado y dinámico de las imagenes subidas, indicació…
end1996 Jun 6, 2025
fb15831
Menu de mini-cart personalizado y Cart header
end1996 Jun 9, 2025
65cd0b9
Carpeta adicional que contiene configuraciones necesarias para Elementor
end1996 Jun 9, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions ARCHIVOS DE ELEMENTOR/elementor-2472-2025-06-09.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"content":[{"id":"14291da0","settings":{"flex_direction":"row","flex_gap":{"unit":"px","size":0,"column":"0","row":"0"},"content_width":"full","width":{"unit":"%","size":100},"min_height":{"unit":"px","size":0,"sizes":[]},"flex_align_items":"center","padding":{"unit":"px","top":"0","right":"0","bottom":"0","left":"0","isLinked":true},"background_background":"classic","background_color":"#FFFFFF","background_motion_fx_mouseTrack_effect":"yes","background_motion_fx_mouseTrack_speed":{"unit":"px","size":1.100000000000000088817841970012523233890533447265625,"sizes":[]},"presetTitle":"Contenedor","presetIcon":"eicon-container","width_mobile":{"unit":"%","size":"","sizes":[]},"flex_justify_content_mobile":"center","flex_gap_mobile":{"column":"0","row":"0","isLinked":true,"unit":"px","size":0},"margin_mobile":{"unit":"px","top":"0","right":"0","bottom":"0","left":"0","isLinked":true},"_flex_size":"none","_element_width":"initial"},"elements":[{"id":"1abee252","settings":{"flex_direction":"column","content_width":"full","width":{"unit":"%","size":25},"_flex_size":"none","_element_width":"initial","width_mobile":{"unit":"%","size":20,"sizes":[]},"flex_justify_content_mobile":"center","margin_mobile":{"unit":"px","top":"0","right":"0","bottom":"0","left":"0","isLinked":true},"padding_mobile":{"unit":"px","top":"0","right":"0","bottom":"0","left":"0","isLinked":true}},"elements":[{"id":"46ee95e","settings":{"menu_name":"Menu","menu":"menu-principal","menu_typography_typography":"custom","menu_typography_font_weight":"600","color_menu_item":"#525252","color_menu_item_hover":"#E76F51","pointer_color_menu_item_hover":"#2A9D8F","full_width":"stretch","padding_vertical_menu_item_mobile":{"unit":"px","size":0,"sizes":[]},"background_color_dropdown_item_hover":"#E76F51","toggle_background_color":"#E76F51","toggle_size_mobile":{"unit":"px","size":25,"sizes":[]},"toggle_border_width_mobile":{"unit":"px","size":0,"sizes":[]},"toggle_border_radius_mobile":{"unit":"px","size":0,"sizes":[]},"pointer_width":{"unit":"px","size":0,"sizes":[]},"padding_vertical_menu_item":{"unit":"px","size":18,"sizes":[]},"menu_id":45},"elements":[],"isInner":false,"widgetType":"nav-menu","elType":"widget"}],"isInner":true,"elType":"container"},{"id":"1ba19a2f","settings":{"flex_direction":"column","content_width":"full","width":{"unit":"%","size":61.14399999999999835154085303656756877899169921875},"_flex_size":"none","_element_width":"initial","width_mobile":{"unit":"%","size":51,"sizes":[]},"flex_direction_mobile":"column","flex_justify_content_mobile":"center","flex_align_items_mobile":"center","margin_mobile":{"unit":"px","top":"0","right":"0","bottom":"0","left":"0","isLinked":true},"padding_mobile":{"unit":"px","top":"0","right":"0","bottom":"0","left":"0","isLinked":true}},"elements":[{"id":"5f5e31c","settings":{"__dynamic__":{"image":"[elementor-tag id=\"\" name=\"site-logo\" settings=\"%7B%7D\"]"},"height":{"unit":"px","size":50,"sizes":[]},"align":"center","width":{"unit":"%","size":100,"sizes":[]},"_element_width":"initial","_element_custom_width":{"unit":"%","size":80.22100000000000363797880709171295166015625},"_flex_size":"none","width_mobile":{"unit":"%","size":100,"sizes":[]},"link_to":"custom","link":{"url":"https:\/\/webformwp.reflexoperu.com.pe\/home\/","is_external":"","nofollow":"","custom_attributes":""}},"elements":[],"isInner":false,"widgetType":"theme-site-logo","elType":"widget"}],"isInner":true,"elType":"container"},{"id":"17131b75","settings":{"remove_item_button_position":"bottom","price_quantity_position":"bottom","buttons_position":"top","automatically_open_cart":"yes","product_buttons_typography_typography":"custom","product_buttons_typography_font_size":{"unit":"px","size":14,"sizes":[]},"product_buttons_typography_font_weight":"600","button_border_radius":{"unit":"px","size":5,"sizes":[]},"view_cart_button_background_color":"#E76F51","cart_checkout_button_typography_typography":"custom","cart_checkout_button_typography_font_size":{"unit":"px","size":14,"sizes":[]},"cart_checkout_button_typography_font_weight":"600","alignment_mobile":"center","toggle_button_padding_mobile":{"unit":"px","top":"4","right":"4","bottom":"4","left":"4","isLinked":true},"_margin_mobile":{"unit":"px","top":"0","right":"0","bottom":"0","left":"0","isLinked":true},"_padding_mobile":{"unit":"px","top":"0","right":"0","bottom":"0","left":"0","isLinked":true},"_flex_align_self":"center","_flex_order":"end","toggle_icon_spacing":{"unit":"px","size":5,"sizes":[]},"_margin":{"unit":"px","top":"0","right":"0","bottom":"0","left":"0","isLinked":true},"_element_width":"initial","toggle_button_text_color":"#FFFFFF","toggle_button_icon_color":"#000000","toggle_button_background_color":"#E76F51","toggle_button_hover_text_color":"#FFFFFF","toggle_button_hover_icon_color":"#FFFFFF","toggle_button_hover_background_color":"#E77E51","toggle_button_border_radius":{"unit":"px","size":4,"sizes":[]},"toggle_icon_size":{"unit":"px","size":20,"sizes":[]}},"elements":[],"isInner":false,"widgetType":"woocommerce-menu-cart","elType":"widget"},{"id":"d9b02ee","settings":{"text":"","selected_icon":{"value":{"url":"https:\/\/webformwp.reflexoperu.com.pe\/wp-content\/uploads\/2025\/05\/user-solid.svg","id":2421},"library":"svg"},"align":"right","background_color":"#2A9D8F","text_padding":{"unit":"px","top":"10","right":"10","bottom":"10","left":"10","isLinked":true},"_padding":{"unit":"px","top":"0","right":"0","bottom":"0","left":"0","isLinked":true},"_flex_align_self":"center","_flex_order":"end","hide_tablet":"hidden-tablet","hide_mobile":"hidden-mobile","_element_width":"initial","_element_custom_width":{"unit":"%","size":5,"sizes":[]},"link":{"url":"https:\/\/webformwp.reflexoperu.com.pe\/contact-us\/","is_external":"","nofollow":"","custom_attributes":""}},"elements":[],"isInner":false,"widgetType":"button","elType":"widget"}],"isInner":false,"elType":"container"}],"page_settings":{"margin":{"unit":"px","top":"0","right":"0","bottom":"0","left":"0","isLinked":true},"padding":{"unit":"px","top":"0","right":"0","bottom":"0","left":"0","isLinked":true}},"version":"0.4","title":"Cart Header","type":"container"}
169 changes: 169 additions & 0 deletions ARCHIVOS DE ELEMENTOR/mini-cart.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,169 @@
<?php

defined('ABSPATH') || exit;

if (!function_exists('elementor_pro_render_mini_cart_item')) {
function elementor_pro_render_mini_cart_item($cart_item_key, $cart_item)
{
$_product = apply_filters('woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key);
$is_product_visible = ($_product && $_product->exists() && $cart_item['quantity'] > 0 && apply_filters('woocommerce_widget_cart_item_visible', true, $cart_item, $cart_item_key));

if (!$is_product_visible) {
return;
}

$product_id = apply_filters('woocommerce_cart_item_product_id', $cart_item['product_id'], $cart_item, $cart_item_key);
$product_price = apply_filters('woocommerce_cart_item_price', WC()->cart->get_product_price($_product), $cart_item, $cart_item_key);
$product_permalink = apply_filters('woocommerce_cart_item_permalink', $_product->is_visible() ? $_product->get_permalink($cart_item) : '', $cart_item, $cart_item_key);
?>
<div
class="elementor-menu-cart__product woocommerce-cart-form__cart-item <?php echo esc_attr(apply_filters('woocommerce_cart_item_class', 'cart_item', $cart_item, $cart_item_key)); ?>">

<div class="elementor-menu-cart__product-image product-thumbnail">
<?php
$thumbnail = apply_filters('woocommerce_cart_item_thumbnail', $_product->get_image(), $cart_item, $cart_item_key);

if (!$product_permalink):
echo wp_kses_post($thumbnail);
else:
printf('<a href="%s">%s</a>', esc_url($product_permalink), wp_kses_post($thumbnail));
endif;
?>
</div>

<div class="elementor-menu-cart__product-name product-name"
data-title="<?php echo esc_attr__('Product', 'elementor-pro'); ?>">
<?php
if (!$product_permalink):
echo wp_kses_post(apply_filters('woocommerce_cart_item_name', $_product->get_name(), $cart_item, $cart_item_key) . '&nbsp;');
else:
echo wp_kses_post(apply_filters('woocommerce_cart_item_name', sprintf('<a href="%s">%s</a>', esc_url($product_permalink), $_product->get_name()), $cart_item, $cart_item_key));
endif;

do_action('woocommerce_after_cart_item_name', $cart_item, $cart_item_key);

// Meta data.
echo wc_get_formatted_cart_item_data($cart_item); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
?>
</div>

<div class="elementor-menu-cart__product-price product-price"
data-title="<?php echo esc_attr__('Price', 'elementor-pro'); ?>">
<?php echo apply_filters('woocommerce_widget_cart_item_quantity', '<span class="quantity">' . sprintf('<span class="product-quantity">%s &times;</span> %s', $cart_item['quantity'], $product_price) . '</span>', $cart_item, $cart_item_key); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
</div>

<div class="elementor-menu-cart__product-remove product-remove">
<?php foreach (['elementor_remove_from_cart_button', 'remove_from_cart_button'] as $class) {
echo apply_filters('woocommerce_cart_item_remove_link', sprintf( // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
'<a href="%s" class="%s" aria-label="%s" data-product_id="%s" data-cart_item_key="%s" data-product_sku="%s"></a>',
esc_url(wc_get_cart_remove_url($cart_item_key)),
$class,
__('Remove this item', 'elementor-pro'),
esc_attr($product_id),
esc_attr($cart_item_key),
esc_attr($_product->get_sku())
), $cart_item_key);
} ?>
</div>
</div>
<?php
}
}

$cart_items = WC()->cart->get_cart();

if (empty($cart_items)) { ?>
<div class="woocommerce-mini-cart__empty-message">
<?php echo esc_attr__('No hay productos en el carrito', 'elementor-pro'); ?></div>
<?php } else { ?>
<div class="elementor-menu-cart__products woocommerce-mini-cart cart woocommerce-cart-form__contents">
<?php
do_action('woocommerce_before_mini_cart_contents');

foreach ($cart_items as $cart_item_key => $cart_item) {
elementor_pro_render_mini_cart_item($cart_item_key, $cart_item);
}

do_action('woocommerce_mini_cart_contents');
?>
</div>

<div class="elementor-menu-cart__subtotal">
<strong><?php echo esc_html__('Subtotal', 'woocommerce'); // phpcs:ignore WordPress.WP.I18n ?>:</strong>
<?php echo WC()->cart->get_cart_subtotal(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?>
</div>

<?php
// Add frame fees display
$cart = WC()->cart;
$frame_totals = array();
$frame_quantities = array();

// Agrupar marcos por tipo
foreach ($cart->get_cart() as $cart_item) {
if (!empty($cart_item['frame_price']) && $cart_item['frame'] !== 'sin-marco') {
$frame_type = $cart_item['frame'];
$frame_price = floatval($cart_item['frame_price']);
$quantity = isset($cart_item['quantity']) ? $cart_item['quantity'] : 1;

if ($frame_price > 0) {
// Acumular por tipo de marco
if (!isset($frame_totals[$frame_type])) {
$frame_totals[$frame_type] = 0;
$frame_quantities[$frame_type] = 0;
}

$frame_totals[$frame_type] += $frame_price * $quantity;
$frame_quantities[$frame_type] += $quantity;
}
}
}

// Mostrar cada tipo de marco agrupado
$total_frame_fees = 0;
foreach ($frame_totals as $frame_type => $total_price) {
if ($total_price > 0) {
$quantity_text = $frame_quantities[$frame_type] > 1
? ' (x' . $frame_quantities[$frame_type] . ')'
: '';

$fee_name = 'Marco: ' . esc_html($frame_type) . $quantity_text;
$total_frame_fees += $total_price;
?>
<div class="elementor-menu-cart__subtotal frame-fee">
<strong><?php echo esc_html($fee_name); ?>:</strong>
<?php echo wc_price($total_price); ?>
</div>
<?php
}
}

// Add total row if there are frame fees
if ($total_frame_fees > 0) {
$cart_total = WC()->cart->get_cart_contents_total();
$final_total = $cart_total + $total_frame_fees;
?>
<div class="elementor-menu-cart__subtotal total-row">
<strong><?php echo esc_html__('Total', 'woocommerce'); ?>:</strong>
<?php echo wc_price($final_total); ?>
</div>
<?php
}
?>

<div class="elementor-menu-cart__footer-buttons">
<a href="<?php echo esc_url(wc_get_cart_url()); ?>"
class="elementor-button elementor-button--view-cart elementor-size-md">
<span
class="elementor-button-text"><?php echo esc_html__('View cart', 'woocommerce'); // phpcs:ignore WordPress.WP.I18n ?></span>
</a>
<a href="<?php echo esc_url(wc_get_checkout_url()); ?>"
class="elementor-button elementor-button--checkout elementor-size-md">
<span
class="elementor-button-text"><?php echo esc_html__('Checkout', 'woocommerce'); // phpcs:ignore WordPress.WP.I18n ?></span>
</a>
</div>
<?php
} // empty( $cart_items )

?>
Loading