La clienta pidió que al pulsar en el botón de añadir a la lista de deseos se añadiera la talla seleccionada, no la por defecto.
También pidió que se pudiera añadir desde el listado de la página de carrito.
Modificamos los siguientes ficheros:
<!--custom code natural - /modules/pk_wishlist/views/templates/hook/blockwishlist-extra.tpl - añadimos el enlace con onclick para que siempre se pueda añadir, pero con la clase añadido --> <!--<a href="#" id="wishlist_button" class="icon_checked flex-container align-items-center addToWishlist icon-button" onclick="return false;">--> <a id="wishlist_button" class=" icon_checked flex-container align-items-center addToWishlist icon-button" href="#" onclick="WishlistCart('wishlist_block_list', 'add', '{$id_product|intval}', $('#idCombination').val()); return false;" rel="nofollow" title="{l s='Add to wishlist' mod='pk_wishlist'}"> {$wl_icon nofilter}<span>{l s='Add to wishlist' mod='pk_wishlist'}</span> </a> <!--fin custom code natural-->
<!--custom code natural - /themes/particulares/templates/checkout/_partials/cart-detailed-product-line.tpl - sacamos información de las combinaciones para poder modificar el boton de añadir a la lista de deseos--> {assign var="combinaciones" value=Product::getProductAttributesIds($product->id)} {foreach from=$combinaciones item=comb} {assign var="param" value=Product::getAttributesParams($product->id,$comb.id_product_attribute)} {assign var="idcomb" value=$comb.id_product_attribute} {assign var="tallavalue" value=$param[1].name} <input type="hidden" class="idCombinacion" data-value="{$tallavalue}" data_attribute="{$idcomb}"> {/foreach} <!--añadimos el nombre del atributo para identificar la capa--> {foreach from=$product.attributes key="attribute" item="value"} <div class="product-line-info prod-features {$attribute}"> <span>{$attribute}:</span> <span class="value">{$value}</span> </div> {/foreach} <!--fin custom code natural-->
/themes/particulares/templates/checkout/_partials/cart-detailed-product-line.tpl línea 116
<!--custom code natural - /themes/particulares/templates/checkout/_partials/cart-detailed-product-line.tpl--> <div class="productButtons flex-container align-items-center"> {hook h='displayMoreButtons' product_id=$product.id} </div> <!--fin custom code natural-->
<!--custom code natural - /themes/particulares/templates/catalog/_partials/product-variants.tpl - sacamos id combinacion para añadir a lista de deseos--> {foreach from=$combinations key=idcomb item=combinacion} <input type="hidden" class="idCombinacion" data-value="{$combinacion.attributes_values[5]}" data_attribute="{$idcomb}"> {/foreach} <!--fin custom code natural-->
/themes/particulares/assets/js/custom.js línea 746
//Añadir talla a la lista de deseos, al pulsar en elboton dentro en la ficha de producto function deseoTallaProducto(){ $.ajax({ type:'POST', url: window.location.href, success:function(){ var clickboton = $('#wishlist_button').attr('onclick'); var clickbotonlimpio = clickboton.split(','); var talla = $('.product-variants ul li input:checked + span.radio-label').text(); $('.idCombinacion').each(function(){//Recorremos todos los input hidden para comprobar si la talla checked corresponde con la del input var este = $(this); var valor = este.attr('data-value'); var id = este.attr('data_attribute'); if(talla == valor){//Si corresponde modificamos el onclick del botón de añadir con el id de la combinacion $('#wishlist_button').attr('onclick', clickbotonlimpio[0]+','+clickbotonlimpio[1]+','+clickbotonlimpio[2]+','+id+'); return false;'); } }); } }); } $(document).on('change',function(){ if($('body').is('#product')){ deseoTallaProducto(); } }); //Añadir talla a la lista de deseos, al pulsar en elboton en la página de carrito function deseoTallaCarrito(){ $.ajax({ type:'POST', url: window.location.href, success:function(){ $('.product-line-grid').each(function(){ var linea = $(this); var clickboton = linea.find('#wishlist_button').attr('onclick'); var clickbotonlimpio = clickboton.split(','); var talla = linea.find('.product-line-info.prod-features.Talla .value').text(); linea.find('.idCombinacion').each(function(){//Recorremos todos los input hidden para comprobar si la talla checked corresponde con la del input var este = $(this); var valor = este.attr('data-value'); var id = este.attr('data_attribute'); if(talla == valor){//Si corresponde modificamos el onclick del botón de añadir de esta línea con el id de la combinacion linea.find('#wishlist_button').attr('onclick', clickbotonlimpio[0]+','+clickbotonlimpio[1]+','+clickbotonlimpio[2]+','+id+'); return false;'); } }); //Añadimos clase anadido a todos los botones de los productos añadidos if(linea.find('#wishlist_button').hasClass('icon_checked')){ linea.find('#wishlist_button').addClass('anadido'); } //Al hacer click en uno de lso botones, le pone clase anadido y elimina, de todos los que no tengan anadido la clase de icon_checked linea.find('#wishlist_button').click(function(){ $(this).addClass('anadido'); $.ajax({ type:'POST', url: window.location.href, success:function(){ $('#wishlist_button:not(.anadido)').removeClass('icon_checked'); } }); }); }); } }); } $(document).on('ready',function(){ if($('body').is('#cart')){ deseoTallaCarrito(); } });